@enterprisestandard/esv 0.0.5-beta.20260114.2 → 0.0.5-beta.20260115.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/iam/index.js +3 -3
- package/dist/iam/index.js.map +4 -4
- package/dist/index.js +7 -7
- package/dist/index.js.map +6 -6
- package/dist/runner.js +118 -74
- package/dist/runner.js.map +7 -7
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +3 -3
- package/dist/sso/index.js.map +2 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/workload/index.js +4 -4
- package/dist/workload/index.js.map +4 -4
- package/package.json +1 -1
package/dist/runner.js.map
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utils.ts", "../../../node_modules/valibot/dist/index.mjs", "../../react-validators-valibot/dist/index.js", "../../../node_modules/zod/v3/helpers/util.js", "../../../node_modules/zod/v3/ZodError.js", "../../../node_modules/zod/v3/locales/en.js", "../../../node_modules/zod/v3/errors.js", "../../../node_modules/zod/v3/helpers/parseUtil.js", "../../../node_modules/zod/v3/helpers/errorUtil.js", "../../../node_modules/zod/v3/types.js", "../../../node_modules/zod/v3/external.js", "../../../node_modules/zod/index.js", "../../react-validators-zod/dist/index.js", "../src/iam/index.ts", "../src/sso/index.ts", "../src/workload/index.ts", "../src/tenant/index.ts", "../../../node_modules/react/cjs/react.development.js", "../../../node_modules/react/index.js", "../../../node_modules/react/cjs/react-jsx-dev-runtime.development.js", "../../../node_modules/react/jsx-dev-runtime.js", "../src/index.ts", "../../react/dist/index.js", "../src/runner.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\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: (value: unknown)
|
|
5
|
+
"/**\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",
|
|
6
6
|
"//#region src/storages/globalConfig/globalConfig.ts\nlet store$4;\n/**\n* Sets the global configuration.\n*\n* @param config The configuration.\n*/\nfunction setGlobalConfig(config$1) {\n\tstore$4 = {\n\t\t...store$4,\n\t\t...config$1\n\t};\n}\n/**\n* Returns the global configuration.\n*\n* @param config The config to merge.\n*\n* @returns The configuration.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getGlobalConfig(config$1) {\n\treturn {\n\t\tlang: config$1?.lang ?? store$4?.lang,\n\t\tmessage: config$1?.message,\n\t\tabortEarly: config$1?.abortEarly ?? store$4?.abortEarly,\n\t\tabortPipeEarly: config$1?.abortPipeEarly ?? store$4?.abortPipeEarly\n\t};\n}\n/**\n* Deletes the global configuration.\n*/\nfunction deleteGlobalConfig() {\n\tstore$4 = void 0;\n}\n\n//#endregion\n//#region src/storages/globalMessage/globalMessage.ts\nlet store$3;\n/**\n* Sets a global error message.\n*\n* @param message The error message.\n* @param lang The language of the message.\n*/\nfunction setGlobalMessage(message$1, lang) {\n\tif (!store$3) store$3 = /* @__PURE__ */ new Map();\n\tstore$3.set(lang, message$1);\n}\n/**\n* Returns a global error message.\n*\n* @param lang The language of the message.\n*\n* @returns The error message.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getGlobalMessage(lang) {\n\treturn store$3?.get(lang);\n}\n/**\n* Deletes a global error message.\n*\n* @param lang The language of the message.\n*/\nfunction deleteGlobalMessage(lang) {\n\tstore$3?.delete(lang);\n}\n\n//#endregion\n//#region src/storages/schemaMessage/schemaMessage.ts\nlet store$2;\n/**\n* Sets a schema error message.\n*\n* @param message The error message.\n* @param lang The language of the message.\n*/\nfunction setSchemaMessage(message$1, lang) {\n\tif (!store$2) store$2 = /* @__PURE__ */ new Map();\n\tstore$2.set(lang, message$1);\n}\n/**\n* Returns a schema error message.\n*\n* @param lang The language of the message.\n*\n* @returns The error message.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getSchemaMessage(lang) {\n\treturn store$2?.get(lang);\n}\n/**\n* Deletes a schema error message.\n*\n* @param lang The language of the message.\n*/\nfunction deleteSchemaMessage(lang) {\n\tstore$2?.delete(lang);\n}\n\n//#endregion\n//#region src/storages/specificMessage/specificMessage.ts\nlet store$1;\n/**\n* Sets a specific error message.\n*\n* @param reference The identifier reference.\n* @param message The error message.\n* @param lang The language of the message.\n*/\nfunction setSpecificMessage(reference, message$1, lang) {\n\tif (!store$1) store$1 = /* @__PURE__ */ new Map();\n\tif (!store$1.get(reference)) store$1.set(reference, /* @__PURE__ */ new Map());\n\tstore$1.get(reference).set(lang, message$1);\n}\n/**\n* Returns a specific error message.\n*\n* @param reference The identifier reference.\n* @param lang The language of the message.\n*\n* @returns The error message.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getSpecificMessage(reference, lang) {\n\treturn store$1?.get(reference)?.get(lang);\n}\n/**\n* Deletes a specific error message.\n*\n* @param reference The identifier reference.\n* @param lang The language of the message.\n*/\nfunction deleteSpecificMessage(reference, lang) {\n\tstore$1?.get(reference)?.delete(lang);\n}\n\n//#endregion\n//#region src/utils/_stringify/_stringify.ts\n/**\n* Stringifies an unknown input to a literal or type string.\n*\n* @param input The unknown input.\n*\n* @returns A literal or type string.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _stringify(input) {\n\tconst type = typeof input;\n\tif (type === \"string\") return `\"${input}\"`;\n\tif (type === \"number\" || type === \"bigint\" || type === \"boolean\") return `${input}`;\n\tif (type === \"object\" || type === \"function\") return (input && Object.getPrototypeOf(input)?.constructor?.name) ?? \"null\";\n\treturn type;\n}\n\n//#endregion\n//#region src/utils/_addIssue/_addIssue.ts\n/**\n* Adds an issue to the dataset.\n*\n* @param context The issue context.\n* @param label The issue label.\n* @param dataset The input dataset.\n* @param config The configuration.\n* @param other The optional props.\n*\n* @internal\n*/\nfunction _addIssue(context, label, dataset, config$1, other) {\n\tconst input = other && \"input\" in other ? other.input : dataset.value;\n\tconst expected = other?.expected ?? context.expects ?? null;\n\tconst received = other?.received ?? /* @__PURE__ */ _stringify(input);\n\tconst issue = {\n\t\tkind: context.kind,\n\t\ttype: context.type,\n\t\tinput,\n\t\texpected,\n\t\treceived,\n\t\tmessage: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : \"R\"}eceived ${received}`,\n\t\trequirement: context.requirement,\n\t\tpath: other?.path,\n\t\tissues: other?.issues,\n\t\tlang: config$1.lang,\n\t\tabortEarly: config$1.abortEarly,\n\t\tabortPipeEarly: config$1.abortPipeEarly\n\t};\n\tconst isSchema = context.kind === \"schema\";\n\tconst message$1 = other?.message ?? context.message ?? /* @__PURE__ */ getSpecificMessage(context.reference, issue.lang) ?? (isSchema ? /* @__PURE__ */ getSchemaMessage(issue.lang) : null) ?? config$1.message ?? /* @__PURE__ */ getGlobalMessage(issue.lang);\n\tif (message$1 !== void 0) issue.message = typeof message$1 === \"function\" ? message$1(issue) : message$1;\n\tif (isSchema) dataset.typed = false;\n\tif (dataset.issues) dataset.issues.push(issue);\n\telse dataset.issues = [issue];\n}\n\n//#endregion\n//#region src/utils/_getByteCount/_getByteCount.ts\nlet textEncoder;\n/**\n* Returns the byte count of the input.\n*\n* @param input The input to be measured.\n*\n* @returns The byte count.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getByteCount(input) {\n\tif (!textEncoder) textEncoder = new TextEncoder();\n\treturn textEncoder.encode(input).length;\n}\n\n//#endregion\n//#region src/utils/_getGraphemeCount/_getGraphemeCount.ts\nlet segmenter;\n/**\n* Returns the grapheme count of the input.\n*\n* @param input The input to be measured.\n*\n* @returns The grapheme count.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getGraphemeCount(input) {\n\tif (!segmenter) segmenter = new Intl.Segmenter();\n\tconst segments = segmenter.segment(input);\n\tlet count = 0;\n\tfor (const _ of segments) count++;\n\treturn count;\n}\n\n//#endregion\n//#region src/utils/_getLastMetadata/_getLastMetadata.ts\n/**\n* Returns the last top-level value of a given metadata type from a schema\n* using a breadth-first search that starts with the last item in the pipeline.\n*\n* @param schema The schema to search.\n* @param type The metadata type.\n*\n* @returns The value, if any.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getLastMetadata(schema, type) {\n\tif (\"pipe\" in schema) {\n\t\tconst nestedSchemas = [];\n\t\tfor (let index = schema.pipe.length - 1; index >= 0; index--) {\n\t\t\tconst item = schema.pipe[index];\n\t\t\tif (item.kind === \"schema\" && \"pipe\" in item) nestedSchemas.push(item);\n\t\t\telse if (item.kind === \"metadata\" && item.type === type) return item[type];\n\t\t}\n\t\tfor (const nestedSchema of nestedSchemas) {\n\t\t\tconst result = /* @__PURE__ */ _getLastMetadata(nestedSchema, type);\n\t\t\tif (result !== void 0) return result;\n\t\t}\n\t}\n}\n\n//#endregion\n//#region src/utils/_getStandardProps/_getStandardProps.ts\n/**\n* Returns the Standard Schema properties.\n*\n* @param context The schema context.\n*\n* @returns The Standard Schema properties.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getStandardProps(context) {\n\treturn {\n\t\tversion: 1,\n\t\tvendor: \"valibot\",\n\t\tvalidate(value$1) {\n\t\t\treturn context[\"~run\"]({ value: value$1 }, /* @__PURE__ */ getGlobalConfig());\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/utils/_getWordCount/_getWordCount.ts\nlet store;\n/**\n* Returns the word count of the input.\n*\n* @param locales The locales to be used.\n* @param input The input to be measured.\n*\n* @returns The word count.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _getWordCount(locales, input) {\n\tif (!store) store = /* @__PURE__ */ new Map();\n\tif (!store.get(locales)) store.set(locales, new Intl.Segmenter(locales, { granularity: \"word\" }));\n\tconst segments = store.get(locales).segment(input);\n\tlet count = 0;\n\tfor (const segment of segments) if (segment.isWordLike) count++;\n\treturn count;\n}\n\n//#endregion\n//#region src/utils/_isLuhnAlgo/_isLuhnAlgo.ts\n/**\n* Non-digit regex.\n*/\nconst NON_DIGIT_REGEX = /\\D/gu;\n/**\n* Checks whether a string with numbers corresponds to the luhn algorithm.\n*\n* @param input The input to be checked.\n*\n* @returns Whether input is valid.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _isLuhnAlgo(input) {\n\tconst number$1 = input.replace(NON_DIGIT_REGEX, \"\");\n\tlet length$1 = number$1.length;\n\tlet bit = 1;\n\tlet sum = 0;\n\twhile (length$1) {\n\t\tconst value$1 = +number$1[--length$1];\n\t\tbit ^= 1;\n\t\tsum += bit ? [\n\t\t\t0,\n\t\t\t2,\n\t\t\t4,\n\t\t\t6,\n\t\t\t8,\n\t\t\t1,\n\t\t\t3,\n\t\t\t5,\n\t\t\t7,\n\t\t\t9\n\t\t][value$1] : value$1;\n\t}\n\treturn sum % 10 === 0;\n}\n\n//#endregion\n//#region src/utils/_isValidObjectKey/_isValidObjectKey.ts\n/**\n* Disallows inherited object properties and prevents object prototype\n* pollution by disallowing certain keys.\n*\n* @param object The object to check.\n* @param key The key to check.\n*\n* @returns Whether the key is allowed.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _isValidObjectKey(object$1, key) {\n\treturn Object.hasOwn(object$1, key) && key !== \"__proto__\" && key !== \"prototype\" && key !== \"constructor\";\n}\n\n//#endregion\n//#region src/utils/_joinExpects/_joinExpects.ts\n/**\n* Joins multiple `expects` values with the given separator.\n*\n* @param values The `expects` values.\n* @param separator The separator.\n*\n* @returns The joined `expects` property.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _joinExpects(values$1, separator) {\n\tconst list = [...new Set(values$1)];\n\tif (list.length > 1) return `(${list.join(` ${separator} `)})`;\n\treturn list[0] ?? \"never\";\n}\n\n//#endregion\n//#region src/utils/entriesFromList/entriesFromList.ts\n/**\n* Creates an object entries definition from a list of keys and a schema.\n*\n* @param list A list of keys.\n* @param schema The schema of the keys.\n*\n* @returns The object entries.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction entriesFromList(list, schema) {\n\tconst entries$1 = {};\n\tfor (const key of list) entries$1[key] = schema;\n\treturn entries$1;\n}\n\n//#endregion\n//#region src/utils/entriesFromObjects/entriesFromObjects.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction entriesFromObjects(schemas) {\n\tconst entries$1 = {};\n\tfor (const schema of schemas) Object.assign(entries$1, schema.entries);\n\treturn entries$1;\n}\n\n//#endregion\n//#region src/utils/getDotPath/getDotPath.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction getDotPath(issue) {\n\tif (issue.path) {\n\t\tlet key = \"\";\n\t\tfor (const item of issue.path) if (typeof item.key === \"string\" || typeof item.key === \"number\") if (key) key += `.${item.key}`;\n\t\telse key += item.key;\n\t\telse return null;\n\t\treturn key;\n\t}\n\treturn null;\n}\n\n//#endregion\n//#region src/utils/isOfKind/isOfKind.ts\n/**\n* A generic type guard to check the kind of an object.\n*\n* @param kind The kind to check for.\n* @param object The object to check.\n*\n* @returns Whether it matches.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction isOfKind(kind, object$1) {\n\treturn object$1.kind === kind;\n}\n\n//#endregion\n//#region src/utils/isOfType/isOfType.ts\n/**\n* A generic type guard to check the type of an object.\n*\n* @param type The type to check for.\n* @param object The object to check.\n*\n* @returns Whether it matches.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction isOfType(type, object$1) {\n\treturn object$1.type === type;\n}\n\n//#endregion\n//#region src/utils/isValiError/isValiError.ts\n/**\n* A type guard to check if an error is a ValiError.\n*\n* @param error The error to check.\n*\n* @returns Whether its a ValiError.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction isValiError(error) {\n\treturn error instanceof ValiError;\n}\n\n//#endregion\n//#region src/utils/ValiError/ValiError.ts\n/**\n* A Valibot error with useful information.\n*/\nvar ValiError = class extends Error {\n\t/**\n\t* Creates a Valibot error with useful information.\n\t*\n\t* @param issues The error issues.\n\t*/\n\tconstructor(issues) {\n\t\tsuper(issues[0].message);\n\t\tthis.name = \"ValiError\";\n\t\tthis.issues = issues;\n\t}\n};\n\n//#endregion\n//#region src/actions/args/args.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction args(schema) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"args\",\n\t\treference: args,\n\t\tasync: false,\n\t\tschema,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst func = dataset.value;\n\t\t\tdataset.value = (...args_) => {\n\t\t\t\tconst argsDataset = this.schema[\"~run\"]({ value: args_ }, config$1);\n\t\t\t\tif (argsDataset.issues) throw new ValiError(argsDataset.issues);\n\t\t\t\treturn func(...argsDataset.value);\n\t\t\t};\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/args/argsAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction argsAsync(schema) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"args\",\n\t\treference: argsAsync,\n\t\tasync: false,\n\t\tschema,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst func = dataset.value;\n\t\t\tdataset.value = async (...args$1) => {\n\t\t\t\tconst argsDataset = await schema[\"~run\"]({ value: args$1 }, config$1);\n\t\t\t\tif (argsDataset.issues) throw new ValiError(argsDataset.issues);\n\t\t\t\treturn func(...argsDataset.value);\n\t\t\t};\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/await/awaitAsync.ts\n/**\n* Creates an await transformation action.\n*\n* @returns An await action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction awaitAsync() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"await\",\n\t\treference: awaitAsync,\n\t\tasync: true,\n\t\tasync \"~run\"(dataset) {\n\t\t\tdataset.value = await dataset.value;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/regex.ts\n/**\n* [Base64](https://en.wikipedia.org/wiki/Base64) regex.\n*/\nconst BASE64_REGEX = /^(?:[\\da-z+/]{4})*(?:[\\da-z+/]{2}==|[\\da-z+/]{3}=)?$/iu;\n/**\n* [BIC](https://en.wikipedia.org/wiki/ISO_9362) regex.\n*/\nconst BIC_REGEX = /^[A-Z]{6}(?!00)[\\dA-Z]{2}(?:[\\dA-Z]{3})?$/u;\n/**\n* [Cuid2](https://github.com/paralleldrive/cuid2) regex.\n*/\nconst CUID2_REGEX = /^[a-z][\\da-z]*$/u;\n/**\n* [Decimal](https://en.wikipedia.org/wiki/Decimal) regex.\n*/\nconst DECIMAL_REGEX = /^[+-]?(?:\\d*\\.)?\\d+$/u;\n/**\n* [Digits](https://en.wikipedia.org/wiki/Numerical_digit) regex.\n*/\nconst DIGITS_REGEX = /^\\d+$/u;\n/**\n* [Email address](https://en.wikipedia.org/wiki/Email_address) regex.\n*/\nconst EMAIL_REGEX = /^[\\w+-]+(?:\\.[\\w+-]+)*@[\\da-z]+(?:[.-][\\da-z]+)*\\.[a-z]{2,}$/iu;\n/**\n* Emoji regex from [emoji-regex-xs](https://github.com/slevithan/emoji-regex-xs) v1.0.0 (MIT license).\n*\n* Hint: We decided against the newer `/^\\p{RGI_Emoji}+$/v` regex because it is\n* not supported in older runtimes and does not match all emoji.\n*/\nconst EMOJI_REGEX = /^(?:[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|(?![\\p{Emoji_Modifier_Base}\\u{1F1E6}-\\u{1F1FF}])\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|(?![\\p{Emoji_Modifier_Base}\\u{1F1E6}-\\u{1F1FF}])\\p{Emoji_Presentation}))*)+$/u;\n/**\n* [Hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal) regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n*/\nconst HEXADECIMAL_REGEX = /^(?:0[hx])?[\\da-fA-F]+$/u;\n/**\n* [Hex color](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet) regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n*/\nconst HEX_COLOR_REGEX = /^#(?:[\\da-fA-F]{3,4}|[\\da-fA-F]{6}|[\\da-fA-F]{8})$/u;\n/**\n* [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity) regex.\n*/\nconst IMEI_REGEX = /^\\d{15}$|^\\d{2}-\\d{6}-\\d{6}-\\d$/u;\n/**\n* [IPv4](https://en.wikipedia.org/wiki/IPv4) regex.\n*/\nconst IPV4_REGEX = /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$/u;\n/**\n* [IPv6](https://en.wikipedia.org/wiki/IPv6) regex.\n*/\nconst IPV6_REGEX = /^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\n/**\n* [IP](https://en.wikipedia.org/wiki/IP_address) regex.\n*/\nconst IP_REGEX = /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$|^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date regex.\n*/\nconst ISO_DATE_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time regex.\n*/\nconst ISO_DATE_TIME_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])[T ](?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time regex.\n*/\nconst ISO_TIME_REGEX = /^(?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time with seconds regex.\n*/\nconst ISO_TIME_SECOND_REGEX = /^(?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) timestamp regex.\n*/\nconst ISO_TIMESTAMP_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])[T ](?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}(?:\\.\\d{1,9})?(?:Z|[+-](?:0\\d|1\\d|2[0-3])(?::?[0-5]\\d)?)$/u;\n/**\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) week regex.\n*/\nconst ISO_WEEK_REGEX = /^\\d{4}-W(?:0[1-9]|[1-4]\\d|5[0-3])$/u;\n/**\n* [MAC](https://en.wikipedia.org/wiki/MAC_address) 48 bit regex.\n*/\nconst MAC48_REGEX = /^(?:[\\da-f]{2}:){5}[\\da-f]{2}$|^(?:[\\da-f]{2}-){5}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){2}[\\da-f]{4}$/iu;\n/**\n* [MAC](https://en.wikipedia.org/wiki/MAC_address) 64 bit regex.\n*/\nconst MAC64_REGEX = /^(?:[\\da-f]{2}:){7}[\\da-f]{2}$|^(?:[\\da-f]{2}-){7}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){3}[\\da-f]{4}$|^(?:[\\da-f]{4}:){3}[\\da-f]{4}$/iu;\n/**\n* [MAC](https://en.wikipedia.org/wiki/MAC_address) regex.\n*/\nconst MAC_REGEX = /^(?:[\\da-f]{2}:){5}[\\da-f]{2}$|^(?:[\\da-f]{2}-){5}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){2}[\\da-f]{4}$|^(?:[\\da-f]{2}:){7}[\\da-f]{2}$|^(?:[\\da-f]{2}-){7}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){3}[\\da-f]{4}$|^(?:[\\da-f]{4}:){3}[\\da-f]{4}$/iu;\n/**\n* [Nano ID](https://github.com/ai/nanoid) regex.\n*/\nconst NANO_ID_REGEX = /^[\\w-]+$/u;\n/**\n* [Octal](https://en.wikipedia.org/wiki/Octal) regex.\n*/\nconst OCTAL_REGEX = /^(?:0o)?[0-7]+$/u;\n/**\n* [RFC 5322 email address](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) regex.\n*\n* Hint: This regex was taken from the [HTML Living Standard Specification](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address) and does not perfectly represent RFC 5322.\n*/\nconst RFC_EMAIL_REGEX = /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/**\n* [Slug](https://en.wikipedia.org/wiki/Clean_URL#Slug) regex.\n*/\nconst SLUG_REGEX = /^[\\da-z]+(?:[-_][\\da-z]+)*$/u;\n/**\n* [ULID](https://github.com/ulid/spec) regex.\n*\n* Hint: We decided against the `i` flag for better JSON Schema compatibility.\n*/\nconst ULID_REGEX = /^[\\da-hjkmnp-tv-zA-HJKMNP-TV-Z]{26}$/u;\n/**\n* [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) regex.\n*/\nconst UUID_REGEX = /^[\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12}$/iu;\n\n//#endregion\n//#region src/actions/base64/base64.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction base64(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"base64\",\n\t\treference: base64,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: BASE64_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"Base64\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/bic/bic.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction bic(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"bic\",\n\t\treference: bic,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: BIC_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"BIC\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/brand/brand.ts\n/**\n* Creates a brand transformation action.\n*\n* @param name The brand name.\n*\n* @returns A brand action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction brand(name) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"brand\",\n\t\treference: brand,\n\t\tasync: false,\n\t\tname,\n\t\t\"~run\"(dataset) {\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/bytes/bytes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction bytes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"bytes\",\n\t\treference: bytes,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst length$1 = /* @__PURE__ */ _getByteCount(dataset.value);\n\t\t\t\tif (length$1 !== this.requirement) _addIssue(this, \"bytes\", dataset, config$1, { received: `${length$1}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/check/check.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction check(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"check\",\n\t\treference: check,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"input\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/check/checkAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction checkAsync(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"check\",\n\t\treference: checkAsync,\n\t\tasync: true,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !await this.requirement(dataset.value)) _addIssue(this, \"input\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/checkItems/checkItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction checkItems(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"check_items\",\n\t\treference: checkItems,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) for (let index = 0; index < dataset.value.length; index++) {\n\t\t\t\tconst item = dataset.value[index];\n\t\t\t\tif (!this.requirement(item, index, dataset.value)) _addIssue(this, \"item\", dataset, config$1, {\n\t\t\t\t\tinput: item,\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput: dataset.value,\n\t\t\t\t\t\tkey: index,\n\t\t\t\t\t\tvalue: item\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/checkItems/checkItemsAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction checkItemsAsync(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"check_items\",\n\t\treference: checkItemsAsync,\n\t\tasync: true,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst requirementResults = await Promise.all(dataset.value.map(this.requirement));\n\t\t\t\tfor (let index = 0; index < dataset.value.length; index++) if (!requirementResults[index]) {\n\t\t\t\t\tconst item = dataset.value[index];\n\t\t\t\t\t_addIssue(this, \"item\", dataset, config$1, {\n\t\t\t\t\t\tinput: item,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput: dataset.value,\n\t\t\t\t\t\t\tkey: index,\n\t\t\t\t\t\t\tvalue: item\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/creditCard/creditCard.ts\n/**\n* Credit card regex.\n*/\nconst CREDIT_CARD_REGEX = /^(?:\\d{14,19}|\\d{4}(?: \\d{3,6}){2,4}|\\d{4}(?:-\\d{3,6}){2,4})$/u;\n/**\n* Sanitize regex.\n*/\nconst SANITIZE_REGEX = /[- ]/gu;\n/**\n* Provider regex list.\n*/\nconst PROVIDER_REGEX_LIST = [\n\t/^3[47]\\d{13}$/u,\n\t/^3(?:0[0-5]|[68]\\d)\\d{11,13}$/u,\n\t/^6(?:011|5\\d{2})\\d{12,15}$/u,\n\t/^(?:2131|1800|35\\d{3})\\d{11}$/u,\n\t/^5[1-5]\\d{2}|(?:222\\d|22[3-9]\\d|2[3-6]\\d{2}|27[01]\\d|2720)\\d{12}$/u,\n\t/^(?:6[27]\\d{14,17}|81\\d{14,17})$/u,\n\t/^4\\d{12}(?:\\d{3,6})?$/u\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction creditCard(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"credit_card\",\n\t\treference: creditCard,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement(input) {\n\t\t\tlet sanitized;\n\t\t\treturn CREDIT_CARD_REGEX.test(input) && (sanitized = input.replace(SANITIZE_REGEX, \"\")) && PROVIDER_REGEX_LIST.some((regex$1) => regex$1.test(sanitized)) && /* @__PURE__ */ _isLuhnAlgo(sanitized);\n\t\t},\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"credit card\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/cuid2/cuid2.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction cuid2(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"cuid2\",\n\t\treference: cuid2,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: CUID2_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"Cuid2\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/decimal/decimal.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction decimal(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"decimal\",\n\t\treference: decimal,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: DECIMAL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"decimal\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/description/description.ts\n/**\n* Creates a description metadata action.\n*\n* @param description_ The description text.\n*\n* @returns A description action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction description(description_) {\n\treturn {\n\t\tkind: \"metadata\",\n\t\ttype: \"description\",\n\t\treference: description,\n\t\tdescription: description_\n\t};\n}\n\n//#endregion\n//#region src/actions/digits/digits.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction digits(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"digits\",\n\t\treference: digits,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: DIGITS_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"digits\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/email/email.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction email(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"email\",\n\t\treference: email,\n\t\texpects: null,\n\t\tasync: false,\n\t\trequirement: EMAIL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"email\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/emoji/emoji.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction emoji(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"emoji\",\n\t\treference: emoji,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: EMOJI_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"emoji\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/empty/empty.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction empty(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"empty\",\n\t\treference: empty,\n\t\tasync: false,\n\t\texpects: \"0\",\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length > 0) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/endsWith/endsWith.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction endsWith(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ends_with\",\n\t\treference: endsWith,\n\t\tasync: false,\n\t\texpects: `\"${requirement}\"`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.endsWith(this.requirement)) _addIssue(this, \"end\", dataset, config$1, { received: `\"${dataset.value.slice(-this.requirement.length)}\"` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/entries/entries.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction entries(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"entries\",\n\t\treference: entries,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!dataset.typed) return dataset;\n\t\t\tconst count = Object.keys(dataset.value).length;\n\t\t\tif (dataset.typed && count !== this.requirement) _addIssue(this, \"entries\", dataset, config$1, { received: `${count}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/everyItem/everyItem.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction everyItem(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"every_item\",\n\t\treference: everyItem,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.every(this.requirement)) _addIssue(this, \"item\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/examples/examples.ts\n/**\n* Creates an examples metadata action.\n*\n* @param examples_ The examples.\n*\n* @returns An examples action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction examples(examples_) {\n\treturn {\n\t\tkind: \"metadata\",\n\t\ttype: \"examples\",\n\t\treference: examples,\n\t\texamples: examples_\n\t};\n}\n\n//#endregion\n//#region src/actions/excludes/excludes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction excludes(requirement, message$1) {\n\tconst received = /* @__PURE__ */ _stringify(requirement);\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"excludes\",\n\t\treference: excludes,\n\t\tasync: false,\n\t\texpects: `!${received}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.includes(this.requirement)) _addIssue(this, \"content\", dataset, config$1, { received });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/filterItems/filterItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction filterItems(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"filter_items\",\n\t\treference: filterItems,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.filter(this.operation);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/findItem/findItem.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction findItem(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"find_item\",\n\t\treference: findItem,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.find(this.operation);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/finite/finite.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction finite(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"finite\",\n\t\treference: finite,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: Number.isFinite,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"finite\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/flavor/flavor.ts\n/**\n* Creates a flavor transformation action.\n*\n* @param name The flavor name.\n*\n* @returns A flavor action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction flavor(name) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"flavor\",\n\t\treference: flavor,\n\t\tasync: false,\n\t\tname,\n\t\t\"~run\"(dataset) {\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/graphemes/graphemes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction graphemes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"graphemes\",\n\t\treference: graphemes,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getGraphemeCount(dataset.value);\n\t\t\t\tif (count !== this.requirement) _addIssue(this, \"graphemes\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/gtValue/gtValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction gtValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"gt_value\",\n\t\treference: gtValue,\n\t\tasync: false,\n\t\texpects: `>${requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(dataset.value > this.requirement)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/hash/hash.ts\n/**\n* Hash lengths object.\n*/\nconst HASH_LENGTHS = {\n\tmd4: 32,\n\tmd5: 32,\n\tsha1: 40,\n\tsha256: 64,\n\tsha384: 96,\n\tsha512: 128,\n\tripemd128: 32,\n\tripemd160: 40,\n\ttiger128: 32,\n\ttiger160: 40,\n\ttiger192: 48,\n\tcrc32: 8,\n\tcrc32b: 8,\n\tadler32: 8\n};\n/* @__NO_SIDE_EFFECTS__ */\nfunction hash(types, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"hash\",\n\t\treference: hash,\n\t\texpects: null,\n\t\tasync: false,\n\t\trequirement: RegExp(types.map((type) => `^[a-f0-9]{${HASH_LENGTHS[type]}}$`).join(\"|\"), \"iu\"),\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"hash\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/hexadecimal/hexadecimal.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction hexadecimal(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"hexadecimal\",\n\t\treference: hexadecimal,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: HEXADECIMAL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"hexadecimal\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/hexColor/hexColor.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction hexColor(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"hex_color\",\n\t\treference: hexColor,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: HEX_COLOR_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"hex color\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/imei/imei.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction imei(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"imei\",\n\t\treference: imei,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement(input) {\n\t\t\treturn IMEI_REGEX.test(input) && /* @__PURE__ */ _isLuhnAlgo(input);\n\t\t},\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"IMEI\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/includes/includes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction includes(requirement, message$1) {\n\tconst expects = /* @__PURE__ */ _stringify(requirement);\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"includes\",\n\t\treference: includes,\n\t\tasync: false,\n\t\texpects,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.includes(this.requirement)) _addIssue(this, \"content\", dataset, config$1, { received: `!${expects}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/integer/integer.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction integer(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"integer\",\n\t\treference: integer,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: Number.isInteger,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"integer\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ip/ip.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ip(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ip\",\n\t\treference: ip,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: IP_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"IP\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ipv4/ipv4.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ipv4(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ipv4\",\n\t\treference: ipv4,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: IPV4_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"IPv4\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ipv6/ipv6.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ipv6(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ipv6\",\n\t\treference: ipv6,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: IPV6_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"IPv6\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoDate/isoDate.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoDate(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_date\",\n\t\treference: isoDate,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_DATE_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"date\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoDateTime/isoDateTime.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoDateTime(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_date_time\",\n\t\treference: isoDateTime,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_DATE_TIME_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"date-time\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoTime/isoTime.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoTime(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_time\",\n\t\treference: isoTime,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_TIME_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"time\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoTimeSecond/isoTimeSecond.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoTimeSecond(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_time_second\",\n\t\treference: isoTimeSecond,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_TIME_SECOND_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"time-second\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoTimestamp/isoTimestamp.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoTimestamp(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_timestamp\",\n\t\treference: isoTimestamp,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_TIMESTAMP_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"timestamp\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/isoWeek/isoWeek.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction isoWeek(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"iso_week\",\n\t\treference: isoWeek,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ISO_WEEK_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"week\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/length/length.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction length(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"length\",\n\t\treference: length,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length !== this.requirement) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ltValue/ltValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ltValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"lt_value\",\n\t\treference: ltValue,\n\t\tasync: false,\n\t\texpects: `<${requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(dataset.value < this.requirement)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/mac/mac.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mac(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"mac\",\n\t\treference: mac,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: MAC_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"MAC\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/mac48/mac48.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mac48(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"mac48\",\n\t\treference: mac48,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: MAC48_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"48-bit MAC\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/mac64/mac64.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mac64(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"mac64\",\n\t\treference: mac64,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: MAC64_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"64-bit MAC\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/mapItems/mapItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mapItems(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"map_items\",\n\t\treference: mapItems,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.map(this.operation);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxBytes/maxBytes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxBytes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_bytes\",\n\t\treference: maxBytes,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst length$1 = /* @__PURE__ */ _getByteCount(dataset.value);\n\t\t\t\tif (length$1 > this.requirement) _addIssue(this, \"bytes\", dataset, config$1, { received: `${length$1}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxEntries/maxEntries.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxEntries(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_entries\",\n\t\treference: maxEntries,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!dataset.typed) return dataset;\n\t\t\tconst count = Object.keys(dataset.value).length;\n\t\t\tif (dataset.typed && count > this.requirement) _addIssue(this, \"entries\", dataset, config$1, { received: `${count}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxGraphemes/maxGraphemes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxGraphemes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_graphemes\",\n\t\treference: maxGraphemes,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getGraphemeCount(dataset.value);\n\t\t\t\tif (count > this.requirement) _addIssue(this, \"graphemes\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxLength/maxLength.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxLength(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_length\",\n\t\treference: maxLength,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length > this.requirement) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxSize/maxSize.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxSize(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_size\",\n\t\treference: maxSize,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.size > this.requirement) _addIssue(this, \"size\", dataset, config$1, { received: `${dataset.value.size}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxValue/maxValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_value\",\n\t\treference: maxValue,\n\t\tasync: false,\n\t\texpects: `<=${requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(dataset.value <= this.requirement)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/maxWords/maxWords.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction maxWords(locales, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"max_words\",\n\t\treference: maxWords,\n\t\tasync: false,\n\t\texpects: `<=${requirement}`,\n\t\tlocales,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getWordCount(this.locales, dataset.value);\n\t\t\t\tif (count > this.requirement) _addIssue(this, \"words\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/metadata/metadata.ts\n/**\n* Creates a custom metadata action.\n*\n* @param metadata_ The metadata object.\n*\n* @returns A metadata action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction metadata(metadata_) {\n\treturn {\n\t\tkind: \"metadata\",\n\t\ttype: \"metadata\",\n\t\treference: metadata,\n\t\tmetadata: metadata_\n\t};\n}\n\n//#endregion\n//#region src/actions/mimeType/mimeType.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mimeType(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"mime_type\",\n\t\treference: mimeType,\n\t\tasync: false,\n\t\texpects: /* @__PURE__ */ _joinExpects(requirement.map((option) => `\"${option}\"`), \"|\"),\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.includes(dataset.value.type)) _addIssue(this, \"MIME type\", dataset, config$1, { received: `\"${dataset.value.type}\"` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minBytes/minBytes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minBytes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_bytes\",\n\t\treference: minBytes,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst length$1 = /* @__PURE__ */ _getByteCount(dataset.value);\n\t\t\t\tif (length$1 < this.requirement) _addIssue(this, \"bytes\", dataset, config$1, { received: `${length$1}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minEntries/minEntries.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minEntries(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_entries\",\n\t\treference: minEntries,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!dataset.typed) return dataset;\n\t\t\tconst count = Object.keys(dataset.value).length;\n\t\t\tif (dataset.typed && count < this.requirement) _addIssue(this, \"entries\", dataset, config$1, { received: `${count}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minGraphemes/minGraphemes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minGraphemes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_graphemes\",\n\t\treference: minGraphemes,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getGraphemeCount(dataset.value);\n\t\t\t\tif (count < this.requirement) _addIssue(this, \"graphemes\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minLength/minLength.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minLength(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_length\",\n\t\treference: minLength,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length < this.requirement) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minSize/minSize.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minSize(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_size\",\n\t\treference: minSize,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.size < this.requirement) _addIssue(this, \"size\", dataset, config$1, { received: `${dataset.value.size}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minValue/minValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_value\",\n\t\treference: minValue,\n\t\tasync: false,\n\t\texpects: `>=${requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(dataset.value >= this.requirement)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/minWords/minWords.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction minWords(locales, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"min_words\",\n\t\treference: minWords,\n\t\tasync: false,\n\t\texpects: `>=${requirement}`,\n\t\tlocales,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getWordCount(this.locales, dataset.value);\n\t\t\t\tif (count < this.requirement) _addIssue(this, \"words\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/multipleOf/multipleOf.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction multipleOf(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"multiple_of\",\n\t\treference: multipleOf,\n\t\tasync: false,\n\t\texpects: `%${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value % this.requirement != 0) _addIssue(this, \"multiple\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/nanoid/nanoid.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nanoid(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"nanoid\",\n\t\treference: nanoid,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: NANO_ID_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"Nano ID\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/nonEmpty/nonEmpty.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonEmpty(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"non_empty\",\n\t\treference: nonEmpty,\n\t\tasync: false,\n\t\texpects: \"!0\",\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length === 0) _addIssue(this, \"length\", dataset, config$1, { received: \"0\" });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/normalize/normalize.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction normalize(form) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"normalize\",\n\t\treference: normalize,\n\t\tasync: false,\n\t\tform,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.normalize(this.form);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notBytes/notBytes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notBytes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_bytes\",\n\t\treference: notBytes,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst length$1 = /* @__PURE__ */ _getByteCount(dataset.value);\n\t\t\t\tif (length$1 === this.requirement) _addIssue(this, \"bytes\", dataset, config$1, { received: `${length$1}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notEntries/notEntries.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notEntries(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_entries\",\n\t\treference: notEntries,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!dataset.typed) return dataset;\n\t\t\tconst count = Object.keys(dataset.value).length;\n\t\t\tif (dataset.typed && count === this.requirement) _addIssue(this, \"entries\", dataset, config$1, { received: `${count}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notGraphemes/notGraphemes.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notGraphemes(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_graphemes\",\n\t\treference: notGraphemes,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getGraphemeCount(dataset.value);\n\t\t\t\tif (count === this.requirement) _addIssue(this, \"graphemes\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notLength/notLength.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notLength(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_length\",\n\t\treference: notLength,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.length === this.requirement) _addIssue(this, \"length\", dataset, config$1, { received: `${dataset.value.length}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notSize/notSize.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notSize(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_size\",\n\t\treference: notSize,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.size === this.requirement) _addIssue(this, \"size\", dataset, config$1, { received: `${dataset.value.size}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notValue/notValue.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notValue(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_value\",\n\t\treference: notValue,\n\t\tasync: false,\n\t\texpects: requirement instanceof Date ? `!${requirement.toJSON()}` : `!${/* @__PURE__ */ _stringify(requirement)}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && this.requirement <= dataset.value && this.requirement >= dataset.value) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notValues/notValues.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notValues(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_values\",\n\t\treference: notValues,\n\t\tasync: false,\n\t\texpects: `!${/* @__PURE__ */ _joinExpects(requirement.map((value$1) => value$1 instanceof Date ? value$1.toJSON() : /* @__PURE__ */ _stringify(value$1)), \"|\")}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && this.requirement.some((value$1) => value$1 <= dataset.value && value$1 >= dataset.value)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/notWords/notWords.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction notWords(locales, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"not_words\",\n\t\treference: notWords,\n\t\tasync: false,\n\t\texpects: `!${requirement}`,\n\t\tlocales,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getWordCount(this.locales, dataset.value);\n\t\t\t\tif (count === this.requirement) _addIssue(this, \"words\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/octal/octal.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction octal(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"octal\",\n\t\treference: octal,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: OCTAL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"octal\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/parseJson/parseJson.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction parseJson(config$1, message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"parse_json\",\n\t\treference: parseJson,\n\t\tconfig: config$1,\n\t\tmessage: message$1,\n\t\tasync: false,\n\t\t\"~run\"(dataset, config$2) {\n\t\t\ttry {\n\t\t\t\tdataset.value = JSON.parse(dataset.value, this.config?.reviver);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\t_addIssue(this, \"JSON\", dataset, config$2, { received: `\"${error.message}\"` });\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t} else throw error;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/partialCheck/utils/_isPartiallyTyped/_isPartiallyTyped.ts\n/**\n* Checks if a dataset is partially typed.\n*\n* @param dataset The dataset to check.\n* @param paths The paths to check.\n*\n* @returns Whether it is partially typed.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _isPartiallyTyped(dataset, paths) {\n\tif (dataset.issues) for (const path of paths) for (const issue of dataset.issues) {\n\t\tlet typed = false;\n\t\tconst bound = Math.min(path.length, issue.path?.length ?? 0);\n\t\tfor (let index = 0; index < bound; index++) if (path[index] !== issue.path[index].key && (path[index] !== \"$\" || issue.path[index].type !== \"array\")) {\n\t\t\ttyped = true;\n\t\t\tbreak;\n\t\t}\n\t\tif (!typed) return false;\n\t}\n\treturn true;\n}\n\n//#endregion\n//#region src/actions/partialCheck/partialCheck.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction partialCheck(paths, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"partial_check\",\n\t\treference: partialCheck,\n\t\tasync: false,\n\t\texpects: null,\n\t\tpaths,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif ((dataset.typed || /* @__PURE__ */ _isPartiallyTyped(dataset, paths)) && !this.requirement(dataset.value)) _addIssue(this, \"input\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/partialCheck/partialCheckAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction partialCheckAsync(paths, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"partial_check\",\n\t\treference: partialCheckAsync,\n\t\tasync: true,\n\t\texpects: null,\n\t\tpaths,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif ((dataset.typed || /* @__PURE__ */ _isPartiallyTyped(dataset, paths)) && !await this.requirement(dataset.value)) _addIssue(this, \"input\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rawCheck/rawCheck.ts\n/**\n* Creates a raw check validation action.\n*\n* @param action The validation action.\n*\n* @returns A raw check action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction rawCheck(action) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"raw_check\",\n\t\treference: rawCheck,\n\t\tasync: false,\n\t\texpects: null,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\taction({\n\t\t\t\tdataset,\n\t\t\t\tconfig: config$1,\n\t\t\t\taddIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config$1, info)\n\t\t\t});\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rawCheck/rawCheckAsync.ts\n/**\n* Creates a raw check validation action.\n*\n* @param action The validation action.\n*\n* @returns A raw check action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction rawCheckAsync(action) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"raw_check\",\n\t\treference: rawCheckAsync,\n\t\tasync: true,\n\t\texpects: null,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tawait action({\n\t\t\t\tdataset,\n\t\t\t\tconfig: config$1,\n\t\t\t\taddIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config$1, info)\n\t\t\t});\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rawTransform/rawTransform.ts\n/**\n* Creates a raw transformation action.\n*\n* @param action The transformation action.\n*\n* @returns A raw transform action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction rawTransform(action) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"raw_transform\",\n\t\treference: rawTransform,\n\t\tasync: false,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst output = action({\n\t\t\t\tdataset,\n\t\t\t\tconfig: config$1,\n\t\t\t\taddIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config$1, info),\n\t\t\t\tNEVER: null\n\t\t\t});\n\t\t\tif (dataset.issues) dataset.typed = false;\n\t\t\telse dataset.value = output;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rawTransform/rawTransformAsync.ts\n/**\n* Creates a raw transformation action.\n*\n* @param action The transformation action.\n*\n* @returns A raw transform action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction rawTransformAsync(action) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"raw_transform\",\n\t\treference: rawTransformAsync,\n\t\tasync: true,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst output = await action({\n\t\t\t\tdataset,\n\t\t\t\tconfig: config$1,\n\t\t\t\taddIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config$1, info),\n\t\t\t\tNEVER: null\n\t\t\t});\n\t\t\tif (dataset.issues) dataset.typed = false;\n\t\t\telse dataset.value = output;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/readonly/readonly.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction readonly() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"readonly\",\n\t\treference: readonly,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/reduceItems/reduceItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction reduceItems(operation, initial) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"reduce_items\",\n\t\treference: reduceItems,\n\t\tasync: false,\n\t\toperation,\n\t\tinitial,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.reduce(this.operation, this.initial);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/regex/regex.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction regex(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"regex\",\n\t\treference: regex,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"format\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/returns/returns.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction returns(schema) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"returns\",\n\t\treference: returns,\n\t\tasync: false,\n\t\tschema,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst func = dataset.value;\n\t\t\tdataset.value = (...args_) => {\n\t\t\t\tconst returnsDataset = this.schema[\"~run\"]({ value: func(...args_) }, config$1);\n\t\t\t\tif (returnsDataset.issues) throw new ValiError(returnsDataset.issues);\n\t\t\t\treturn returnsDataset.value;\n\t\t\t};\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/returns/returnsAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction returnsAsync(schema) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"returns\",\n\t\treference: returnsAsync,\n\t\tasync: false,\n\t\tschema,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst func = dataset.value;\n\t\t\tdataset.value = async (...args_) => {\n\t\t\t\tconst returnsDataset = await this.schema[\"~run\"]({ value: await func(...args_) }, config$1);\n\t\t\t\tif (returnsDataset.issues) throw new ValiError(returnsDataset.issues);\n\t\t\t\treturn returnsDataset.value;\n\t\t\t};\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/rfcEmail/rfcEmail.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction rfcEmail(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"rfc_email\",\n\t\treference: rfcEmail,\n\t\texpects: null,\n\t\tasync: false,\n\t\trequirement: RFC_EMAIL_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"email\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/safeInteger/safeInteger.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction safeInteger(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"safe_integer\",\n\t\treference: safeInteger,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: Number.isSafeInteger,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"safe integer\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/size/size.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction size(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"size\",\n\t\treference: size,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && dataset.value.size !== this.requirement) _addIssue(this, \"size\", dataset, config$1, { received: `${dataset.value.size}` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/slug/slug.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction slug(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"slug\",\n\t\treference: slug,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: SLUG_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"slug\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/someItem/someItem.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction someItem(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"some_item\",\n\t\treference: someItem,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.some(this.requirement)) _addIssue(this, \"item\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/sortItems/sortItems.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction sortItems(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"sort_items\",\n\t\treference: sortItems,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.sort(this.operation);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/startsWith/startsWith.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction startsWith(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"starts_with\",\n\t\treference: startsWith,\n\t\tasync: false,\n\t\texpects: `\"${requirement}\"`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !dataset.value.startsWith(this.requirement)) _addIssue(this, \"start\", dataset, config$1, { received: `\"${dataset.value.slice(0, this.requirement.length)}\"` });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/stringifyJson/stringifyJson.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction stringifyJson(config$1, message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"stringify_json\",\n\t\treference: stringifyJson,\n\t\tmessage: message$1,\n\t\tconfig: config$1,\n\t\tasync: false,\n\t\t\"~run\"(dataset, config$2) {\n\t\t\ttry {\n\t\t\t\tconst output = JSON.stringify(dataset.value, this.config?.replacer, this.config?.space);\n\t\t\t\tif (output === void 0) {\n\t\t\t\t\t_addIssue(this, \"JSON\", dataset, config$2);\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t}\n\t\t\t\tdataset.value = output;\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\t_addIssue(this, \"JSON\", dataset, config$2, { received: `\"${error.message}\"` });\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t} else throw error;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/title/title.ts\n/**\n* Creates a title metadata action.\n*\n* @param title_ The title text.\n*\n* @returns A title action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction title(title_) {\n\treturn {\n\t\tkind: \"metadata\",\n\t\ttype: \"title\",\n\t\treference: title,\n\t\ttitle: title_\n\t};\n}\n\n//#endregion\n//#region src/actions/toBigint/toBigint.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction toBigint(message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_bigint\",\n\t\treference: toBigint,\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\ttry {\n\t\t\t\tdataset.value = BigInt(dataset.value);\n\t\t\t} catch {\n\t\t\t\t_addIssue(this, \"bigint\", dataset, config$1);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toBoolean/toBoolean.ts\n/**\n* Creates a to boolean transformation action.\n*\n* @returns A to boolean action.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toBoolean() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_boolean\",\n\t\treference: toBoolean,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = Boolean(dataset.value);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toDate/toDate.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction toDate(message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_date\",\n\t\treference: toDate,\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\ttry {\n\t\t\t\tdataset.value = new Date(dataset.value);\n\t\t\t\tif (isNaN(dataset.value)) {\n\t\t\t\t\t_addIssue(this, \"date\", dataset, config$1, { received: \"\\\"Invalid Date\\\"\" });\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t_addIssue(this, \"date\", dataset, config$1);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toLowerCase/toLowerCase.ts\n/**\n* Creates a to lower case transformation action.\n*\n* @returns A to lower case action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toLowerCase() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_lower_case\",\n\t\treference: toLowerCase,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.toLowerCase();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toMaxValue/toMaxValue.ts\n/**\n* Creates a to max value transformation action.\n*\n* @param requirement The maximum value.\n*\n* @returns A to max value action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toMaxValue(requirement) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_max_value\",\n\t\treference: toMaxValue,\n\t\tasync: false,\n\t\trequirement,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value > this.requirement ? this.requirement : dataset.value;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toMinValue/toMinValue.ts\n/**\n* Creates a to min value transformation action.\n*\n* @param requirement The minimum value.\n*\n* @returns A to min value action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toMinValue(requirement) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_min_value\",\n\t\treference: toMinValue,\n\t\tasync: false,\n\t\trequirement,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value < this.requirement ? this.requirement : dataset.value;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toNumber/toNumber.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction toNumber(message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_number\",\n\t\treference: toNumber,\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\ttry {\n\t\t\t\tdataset.value = Number(dataset.value);\n\t\t\t\tif (isNaN(dataset.value)) {\n\t\t\t\t\t_addIssue(this, \"number\", dataset, config$1);\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t_addIssue(this, \"number\", dataset, config$1);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toString/toString.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction toString(message$1) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_string\",\n\t\treference: toString,\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\ttry {\n\t\t\t\tdataset.value = String(dataset.value);\n\t\t\t} catch {\n\t\t\t\t_addIssue(this, \"string\", dataset, config$1);\n\t\t\t\tdataset.typed = false;\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/toUpperCase/toUpperCase.ts\n/**\n* Creates a to upper case transformation action.\n*\n* @returns A to upper case action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction toUpperCase() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"to_upper_case\",\n\t\treference: toUpperCase,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.toUpperCase();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/transform/transform.ts\n/**\n* Creates a custom transformation action.\n*\n* @param operation The transformation operation.\n*\n* @returns A transform action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction transform(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"transform\",\n\t\treference: transform,\n\t\tasync: false,\n\t\toperation,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = this.operation(dataset.value);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/transform/transformAsync.ts\n/**\n* Creates a custom transformation action.\n*\n* @param operation The transformation operation.\n*\n* @returns A transform action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction transformAsync(operation) {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"transform\",\n\t\treference: transformAsync,\n\t\tasync: true,\n\t\toperation,\n\t\tasync \"~run\"(dataset) {\n\t\t\tdataset.value = await this.operation(dataset.value);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/trim/trim.ts\n/**\n* Creates a trim transformation action.\n*\n* @returns A trim action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction trim() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"trim\",\n\t\treference: trim,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.trim();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/trimEnd/trimEnd.ts\n/**\n* Creates a trim end transformation action.\n*\n* @returns A trim end action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction trimEnd() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"trim_end\",\n\t\treference: trimEnd,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.trimEnd();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/trimStart/trimStart.ts\n/**\n* Creates a trim start transformation action.\n*\n* @returns A trim start action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction trimStart() {\n\treturn {\n\t\tkind: \"transformation\",\n\t\ttype: \"trim_start\",\n\t\treference: trimStart,\n\t\tasync: false,\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.value = dataset.value.trimStart();\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/ulid/ulid.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction ulid(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"ulid\",\n\t\treference: ulid,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: ULID_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"ULID\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/url/url.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction url(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"url\",\n\t\treference: url,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement(input) {\n\t\t\ttry {\n\t\t\t\tnew URL(input);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement(dataset.value)) _addIssue(this, \"URL\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/uuid/uuid.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction uuid(message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"uuid\",\n\t\treference: uuid,\n\t\tasync: false,\n\t\texpects: null,\n\t\trequirement: UUID_REGEX,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.test(dataset.value)) _addIssue(this, \"UUID\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/value/value.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction value(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"value\",\n\t\treference: value,\n\t\tasync: false,\n\t\texpects: requirement instanceof Date ? requirement.toJSON() : /* @__PURE__ */ _stringify(requirement),\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !(this.requirement <= dataset.value && this.requirement >= dataset.value)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/values/values.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction values(requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"values\",\n\t\treference: values,\n\t\tasync: false,\n\t\texpects: `${/* @__PURE__ */ _joinExpects(requirement.map((value$1) => value$1 instanceof Date ? value$1.toJSON() : /* @__PURE__ */ _stringify(value$1)), \"|\")}`,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed && !this.requirement.some((value$1) => value$1 <= dataset.value && value$1 >= dataset.value)) _addIssue(this, \"value\", dataset, config$1, { received: dataset.value instanceof Date ? dataset.value.toJSON() : /* @__PURE__ */ _stringify(dataset.value) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/actions/words/words.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction words(locales, requirement, message$1) {\n\treturn {\n\t\tkind: \"validation\",\n\t\ttype: \"words\",\n\t\treference: words,\n\t\tasync: false,\n\t\texpects: `${requirement}`,\n\t\tlocales,\n\t\trequirement,\n\t\tmessage: message$1,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.typed) {\n\t\t\t\tconst count = /* @__PURE__ */ _getWordCount(this.locales, dataset.value);\n\t\t\t\tif (count !== this.requirement) _addIssue(this, \"words\", dataset, config$1, { received: `${count}` });\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/assert/assert.ts\n/**\n* Checks if the input matches the schema. As this is an assertion function, it\n* can be used as a type guard.\n*\n* @param schema The schema to be used.\n* @param input The input to be tested.\n*/\nfunction assert(schema, input) {\n\tconst issues = schema[\"~run\"]({ value: input }, { abortEarly: true }).issues;\n\tif (issues) throw new ValiError(issues);\n}\n\n//#endregion\n//#region src/methods/config/config.ts\n/**\n* Changes the local configuration of a schema.\n*\n* @param schema The schema to configure.\n* @param config The parse configuration.\n*\n* @returns The configured schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction config(schema, config$1) {\n\treturn {\n\t\t...schema,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config_) {\n\t\t\treturn schema[\"~run\"](dataset, {\n\t\t\t\t...config_,\n\t\t\t\t...config$1\n\t\t\t});\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/getFallback/getFallback.ts\n/**\n* Returns the fallback value of the schema.\n*\n* @param schema The schema to get it from.\n* @param dataset The output dataset if available.\n* @param config The config if available.\n*\n* @returns The fallback value.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getFallback(schema, dataset, config$1) {\n\treturn typeof schema.fallback === \"function\" ? schema.fallback(dataset, config$1) : schema.fallback;\n}\n\n//#endregion\n//#region src/methods/fallback/fallback.ts\n/**\n* Returns a fallback value as output if the input does not match the schema.\n*\n* @param schema The schema to catch.\n* @param fallback The fallback value.\n*\n* @returns The passed schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction fallback(schema, fallback$1) {\n\treturn {\n\t\t...schema,\n\t\tfallback: fallback$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst outputDataset = schema[\"~run\"](dataset, config$1);\n\t\t\treturn outputDataset.issues ? {\n\t\t\t\ttyped: true,\n\t\t\t\tvalue: /* @__PURE__ */ getFallback(this, outputDataset, config$1)\n\t\t\t} : outputDataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/fallback/fallbackAsync.ts\n/**\n* Returns a fallback value as output if the input does not match the schema.\n*\n* @param schema The schema to catch.\n* @param fallback The fallback value.\n*\n* @returns The passed schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction fallbackAsync(schema, fallback$1) {\n\treturn {\n\t\t...schema,\n\t\tfallback: fallback$1,\n\t\tasync: true,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst outputDataset = await schema[\"~run\"](dataset, config$1);\n\t\t\treturn outputDataset.issues ? {\n\t\t\t\ttyped: true,\n\t\t\t\tvalue: await /* @__PURE__ */ getFallback(this, outputDataset, config$1)\n\t\t\t} : outputDataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/flatten/flatten.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction flatten(issues) {\n\tconst flatErrors = {};\n\tfor (const issue of issues) if (issue.path) {\n\t\tconst dotPath = /* @__PURE__ */ getDotPath(issue);\n\t\tif (dotPath) {\n\t\t\tif (!flatErrors.nested) flatErrors.nested = {};\n\t\t\tif (flatErrors.nested[dotPath]) flatErrors.nested[dotPath].push(issue.message);\n\t\t\telse flatErrors.nested[dotPath] = [issue.message];\n\t\t} else if (flatErrors.other) flatErrors.other.push(issue.message);\n\t\telse flatErrors.other = [issue.message];\n\t} else if (flatErrors.root) flatErrors.root.push(issue.message);\n\telse flatErrors.root = [issue.message];\n\treturn flatErrors;\n}\n\n//#endregion\n//#region src/methods/forward/forward.ts\n/**\n* Forwards the issues of the passed validation action.\n*\n* @param action The validation action.\n* @param path The path to forward the issues to.\n*\n* @returns The modified action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction forward(action, path) {\n\treturn {\n\t\t...action,\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst prevIssues = dataset.issues && [...dataset.issues];\n\t\t\tdataset = action[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.issues) {\n\t\t\t\tfor (const issue of dataset.issues) if (!prevIssues?.includes(issue)) {\n\t\t\t\t\tlet pathInput = dataset.value;\n\t\t\t\t\tfor (const key of path) {\n\t\t\t\t\t\tconst pathValue = pathInput[key];\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"unknown\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput: pathInput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: pathValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (issue.path) issue.path.push(pathItem);\n\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\tif (!pathValue) break;\n\t\t\t\t\t\tpathInput = pathValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/forward/forwardAsync.ts\n/**\n* Forwards the issues of the passed validation action.\n*\n* @param action The validation action.\n* @param path The path to forward the issues to.\n*\n* @returns The modified action.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction forwardAsync(action, path) {\n\treturn {\n\t\t...action,\n\t\tasync: true,\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst prevIssues = dataset.issues && [...dataset.issues];\n\t\t\tdataset = await action[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.issues) {\n\t\t\t\tfor (const issue of dataset.issues) if (!prevIssues?.includes(issue)) {\n\t\t\t\t\tlet pathInput = dataset.value;\n\t\t\t\t\tfor (const key of path) {\n\t\t\t\t\t\tconst pathValue = pathInput[key];\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"unknown\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput: pathInput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: pathValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (issue.path) issue.path.push(pathItem);\n\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\tif (!pathValue) break;\n\t\t\t\t\t\tpathInput = pathValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/getDefault/getDefault.ts\n/**\n* Returns the default value of the schema.\n*\n* @param schema The schema to get it from.\n* @param dataset The input dataset if available.\n* @param config The config if available.\n*\n* @returns The default value.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getDefault(schema, dataset, config$1) {\n\treturn typeof schema.default === \"function\" ? schema.default(dataset, config$1) : schema.default;\n}\n\n//#endregion\n//#region src/methods/getDefaults/getDefaults.ts\n/**\n* Returns the default values of the schema.\n*\n* Hint: The difference to `getDefault` is that for object and tuple schemas\n* this function recursively returns the default values of the subschemas\n* instead of `undefined`.\n*\n* @param schema The schema to get them from.\n*\n* @returns The default values.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getDefaults(schema) {\n\tif (\"entries\" in schema) {\n\t\tconst object$1 = {};\n\t\tfor (const key in schema.entries) object$1[key] = /* @__PURE__ */ getDefaults(schema.entries[key]);\n\t\treturn object$1;\n\t}\n\tif (\"items\" in schema) return schema.items.map(getDefaults);\n\treturn /* @__PURE__ */ getDefault(schema);\n}\n\n//#endregion\n//#region src/methods/getDefaults/getDefaultsAsync.ts\n/**\n* Returns the default values of the schema.\n*\n* Hint: The difference to `getDefault` is that for object and tuple schemas\n* this function recursively returns the default values of the subschemas\n* instead of `undefined`.\n*\n* @param schema The schema to get them from.\n*\n* @returns The default values.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nasync function getDefaultsAsync(schema) {\n\tif (\"entries\" in schema) return Object.fromEntries(await Promise.all(Object.entries(schema.entries).map(async ([key, value$1]) => [key, await /* @__PURE__ */ getDefaultsAsync(value$1)])));\n\tif (\"items\" in schema) return Promise.all(schema.items.map(getDefaultsAsync));\n\treturn /* @__PURE__ */ getDefault(schema);\n}\n\n//#endregion\n//#region src/methods/getDescription/getDescription.ts\n/**\n* Returns the description of the schema.\n*\n* If multiple descriptions are defined, the last one of the highest level is\n* returned. If no description is defined, `undefined` is returned.\n*\n* @param schema The schema to get the description from.\n*\n* @returns The description, if any.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getDescription(schema) {\n\treturn /* @__PURE__ */ _getLastMetadata(schema, \"description\");\n}\n\n//#endregion\n//#region src/methods/getExamples/getExamples.ts\n/**\n* Returns the examples of a schema.\n*\n* If multiple examples are defined, it concatenates them using depth-first\n* search. If no examples are defined, an empty array is returned.\n*\n* @param schema The schema to get the examples from.\n*\n* @returns The examples, if any.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getExamples(schema) {\n\tconst examples$1 = [];\n\tfunction depthFirstCollect(schema$1) {\n\t\tif (\"pipe\" in schema$1) {\n\t\t\tfor (const item of schema$1.pipe) if (item.kind === \"schema\" && \"pipe\" in item) depthFirstCollect(item);\n\t\t\telse if (item.kind === \"metadata\" && item.type === \"examples\") examples$1.push(...item.examples);\n\t\t}\n\t}\n\tdepthFirstCollect(schema);\n\treturn examples$1;\n}\n\n//#endregion\n//#region src/methods/getFallbacks/getFallbacks.ts\n/**\n* Returns the fallback values of the schema.\n*\n* Hint: The difference to `getFallback` is that for object and tuple schemas\n* this function recursively returns the fallback values of the subschemas\n* instead of `undefined`.\n*\n* @param schema The schema to get them from.\n*\n* @returns The fallback values.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getFallbacks(schema) {\n\tif (\"entries\" in schema) {\n\t\tconst object$1 = {};\n\t\tfor (const key in schema.entries) object$1[key] = /* @__PURE__ */ getFallbacks(schema.entries[key]);\n\t\treturn object$1;\n\t}\n\tif (\"items\" in schema) return schema.items.map(getFallbacks);\n\treturn /* @__PURE__ */ getFallback(schema);\n}\n\n//#endregion\n//#region src/methods/getFallbacks/getFallbacksAsync.ts\n/**\n* Returns the fallback values of the schema.\n*\n* Hint: The difference to `getFallback` is that for object and tuple schemas\n* this function recursively returns the fallback values of the subschemas\n* instead of `undefined`.\n*\n* @param schema The schema to get them from.\n*\n* @returns The fallback values.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nasync function getFallbacksAsync(schema) {\n\tif (\"entries\" in schema) return Object.fromEntries(await Promise.all(Object.entries(schema.entries).map(async ([key, value$1]) => [key, await /* @__PURE__ */ getFallbacksAsync(value$1)])));\n\tif (\"items\" in schema) return Promise.all(schema.items.map(getFallbacksAsync));\n\treturn /* @__PURE__ */ getFallback(schema);\n}\n\n//#endregion\n//#region src/methods/getMetadata/getMetadata.ts\n/**\n* Returns the metadata of a schema.\n*\n* If multiple metadata are defined, it shallowly merges them using depth-first\n* search. If no metadata is defined, an empty object is returned.\n*\n* @param schema Schema to get the metadata from.\n*\n* @returns The metadata, if any.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getMetadata(schema) {\n\tconst result = {};\n\tfunction depthFirstMerge(schema$1) {\n\t\tif (\"pipe\" in schema$1) {\n\t\t\tfor (const item of schema$1.pipe) if (item.kind === \"schema\" && \"pipe\" in item) depthFirstMerge(item);\n\t\t\telse if (item.kind === \"metadata\" && item.type === \"metadata\") Object.assign(result, item.metadata);\n\t\t}\n\t}\n\tdepthFirstMerge(schema);\n\treturn result;\n}\n\n//#endregion\n//#region src/methods/getTitle/getTitle.ts\n/**\n* Returns the title of the schema.\n*\n* If multiple titles are defined, the last one of the highest level is\n* returned. If no title is defined, `undefined` is returned.\n*\n* @param schema The schema to get the title from.\n*\n* @returns The title, if any.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction getTitle(schema) {\n\treturn /* @__PURE__ */ _getLastMetadata(schema, \"title\");\n}\n\n//#endregion\n//#region src/methods/is/is.ts\n/**\n* Checks if the input matches the schema. By using a type predicate, this\n* function can be used as a type guard.\n*\n* @param schema The schema to be used.\n* @param input The input to be tested.\n*\n* @returns Whether the input matches the schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction is(schema, input) {\n\treturn !schema[\"~run\"]({ value: input }, { abortEarly: true }).issues;\n}\n\n//#endregion\n//#region src/schemas/any/any.ts\n/**\n* Creates an any schema.\n*\n* Hint: This schema function exists only for completeness and is not\n* recommended in practice. Instead, `unknown` should be used to accept\n* unknown data.\n*\n* @returns An any schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction any() {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"any\",\n\t\treference: any,\n\t\texpects: \"any\",\n\t\tasync: false,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.typed = true;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/array/array.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction array(item, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"array\",\n\t\treference: array,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titem,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < input.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.item[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/array/arrayAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction arrayAsync(item, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"array\",\n\t\treference: arrayAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titem,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst itemDatasets = await Promise.all(input.map((value$1) => this.item[\"~run\"]({ value: value$1 }, config$1)));\n\t\t\t\tfor (let key = 0; key < itemDatasets.length; key++) {\n\t\t\t\t\tconst itemDataset = itemDatasets[key];\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/bigint/bigint.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction bigint(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"bigint\",\n\t\treference: bigint,\n\t\texpects: \"bigint\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"bigint\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/blob/blob.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction blob(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"blob\",\n\t\treference: blob,\n\t\texpects: \"Blob\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof Blob) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/boolean/boolean.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction boolean(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"boolean\",\n\t\treference: boolean,\n\t\texpects: \"boolean\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"boolean\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/custom/custom.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction custom(check$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"custom\",\n\t\treference: custom,\n\t\texpects: \"unknown\",\n\t\tasync: false,\n\t\tcheck: check$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (this.check(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/custom/customAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction customAsync(check$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"custom\",\n\t\treference: customAsync,\n\t\texpects: \"unknown\",\n\t\tasync: true,\n\t\tcheck: check$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (await this.check(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/date/date.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction date(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"date\",\n\t\treference: date,\n\t\texpects: \"Date\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof Date) if (!isNaN(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1, { received: \"\\\"Invalid Date\\\"\" });\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/enum/enum.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction enum_(enum__, message$1) {\n\tconst options = [];\n\tfor (const key in enum__) if (`${+key}` !== key || typeof enum__[key] !== \"string\" || !Object.is(enum__[enum__[key]], +key)) options.push(enum__[key]);\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"enum\",\n\t\treference: enum_,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map(_stringify), \"|\"),\n\t\tasync: false,\n\t\tenum: enum__,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (this.options.includes(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/exactOptional/exactOptional.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction exactOptional(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"exact_optional\",\n\t\treference: exactOptional,\n\t\texpects: wrapped.expects,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/exactOptional/exactOptionalAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction exactOptionalAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"exact_optional\",\n\t\treference: exactOptionalAsync,\n\t\texpects: wrapped.expects,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/file/file.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction file(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"file\",\n\t\treference: file,\n\t\texpects: \"File\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof File) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/function/function.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction function_(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"function\",\n\t\treference: function_,\n\t\texpects: \"Function\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"function\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/instance/instance.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction instance(class_, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"instance\",\n\t\treference: instance,\n\t\texpects: class_.name,\n\t\tasync: false,\n\t\tclass: class_,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof this.class) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/intersect/utils/_merge/_merge.ts\n/**\n* Merges two values into one single output.\n*\n* @param value1 First value.\n* @param value2 Second value.\n*\n* @returns The merge dataset.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _merge(value1, value2) {\n\tif (typeof value1 === typeof value2) {\n\t\tif (value1 === value2 || value1 instanceof Date && value2 instanceof Date && +value1 === +value2) return { value: value1 };\n\t\tif (value1 && value2 && value1.constructor === Object && value2.constructor === Object) {\n\t\t\tfor (const key in value2) if (key in value1) {\n\t\t\t\tconst dataset = /* @__PURE__ */ _merge(value1[key], value2[key]);\n\t\t\t\tif (dataset.issue) return dataset;\n\t\t\t\tvalue1[key] = dataset.value;\n\t\t\t} else value1[key] = value2[key];\n\t\t\treturn { value: value1 };\n\t\t}\n\t\tif (Array.isArray(value1) && Array.isArray(value2)) {\n\t\t\tif (value1.length === value2.length) {\n\t\t\t\tfor (let index = 0; index < value1.length; index++) {\n\t\t\t\t\tconst dataset = /* @__PURE__ */ _merge(value1[index], value2[index]);\n\t\t\t\t\tif (dataset.issue) return dataset;\n\t\t\t\t\tvalue1[index] = dataset.value;\n\t\t\t\t}\n\t\t\t\treturn { value: value1 };\n\t\t\t}\n\t\t}\n\t}\n\treturn { issue: true };\n}\n\n//#endregion\n//#region src/schemas/intersect/intersect.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction intersect(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"intersect\",\n\t\treference: intersect,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map((option) => option.expects), \"&\"),\n\t\tasync: false,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (this.options.length) {\n\t\t\t\tconst input = dataset.value;\n\t\t\t\tlet outputs;\n\t\t\t\tdataset.typed = true;\n\t\t\t\tfor (const schema of this.options) {\n\t\t\t\t\tconst optionDataset = schema[\"~run\"]({ value: input }, config$1);\n\t\t\t\t\tif (optionDataset.issues) {\n\t\t\t\t\t\tif (dataset.issues) dataset.issues.push(...optionDataset.issues);\n\t\t\t\t\t\telse dataset.issues = optionDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!optionDataset.typed) dataset.typed = false;\n\t\t\t\t\tif (dataset.typed) if (outputs) outputs.push(optionDataset.value);\n\t\t\t\t\telse outputs = [optionDataset.value];\n\t\t\t\t}\n\t\t\t\tif (dataset.typed) {\n\t\t\t\t\tdataset.value = outputs[0];\n\t\t\t\t\tfor (let index = 1; index < outputs.length; index++) {\n\t\t\t\t\t\tconst mergeDataset = /* @__PURE__ */ _merge(dataset.value, outputs[index]);\n\t\t\t\t\t\tif (mergeDataset.issue) {\n\t\t\t\t\t\t\t_addIssue(this, \"type\", dataset, config$1, { received: \"unknown\" });\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdataset.value = mergeDataset.value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/intersect/intersectAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction intersectAsync(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"intersect\",\n\t\treference: intersectAsync,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map((option) => option.expects), \"&\"),\n\t\tasync: true,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (this.options.length) {\n\t\t\t\tconst input = dataset.value;\n\t\t\t\tlet outputs;\n\t\t\t\tdataset.typed = true;\n\t\t\t\tconst optionDatasets = await Promise.all(this.options.map((schema) => schema[\"~run\"]({ value: input }, config$1)));\n\t\t\t\tfor (const optionDataset of optionDatasets) {\n\t\t\t\t\tif (optionDataset.issues) {\n\t\t\t\t\t\tif (dataset.issues) dataset.issues.push(...optionDataset.issues);\n\t\t\t\t\t\telse dataset.issues = optionDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!optionDataset.typed) dataset.typed = false;\n\t\t\t\t\tif (dataset.typed) if (outputs) outputs.push(optionDataset.value);\n\t\t\t\t\telse outputs = [optionDataset.value];\n\t\t\t\t}\n\t\t\t\tif (dataset.typed) {\n\t\t\t\t\tdataset.value = outputs[0];\n\t\t\t\t\tfor (let index = 1; index < outputs.length; index++) {\n\t\t\t\t\t\tconst mergeDataset = /* @__PURE__ */ _merge(dataset.value, outputs[index]);\n\t\t\t\t\t\tif (mergeDataset.issue) {\n\t\t\t\t\t\t\t_addIssue(this, \"type\", dataset, config$1, { received: \"unknown\" });\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdataset.value = mergeDataset.value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/lazy/lazy.ts\n/**\n* Creates a lazy schema.\n*\n* @param getter The schema getter.\n*\n* @returns A lazy schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction lazy(getter) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"lazy\",\n\t\treference: lazy,\n\t\texpects: \"unknown\",\n\t\tasync: false,\n\t\tgetter,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\treturn this.getter(dataset.value)[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/lazy/lazyAsync.ts\n/**\n* Creates a lazy schema.\n*\n* @param getter The schema getter.\n*\n* @returns A lazy schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction lazyAsync(getter) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"lazy\",\n\t\treference: lazyAsync,\n\t\texpects: \"unknown\",\n\t\tasync: true,\n\t\tgetter,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\treturn (await this.getter(dataset.value))[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/literal/literal.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction literal(literal_, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"literal\",\n\t\treference: literal,\n\t\texpects: /* @__PURE__ */ _stringify(literal_),\n\t\tasync: false,\n\t\tliteral: literal_,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === this.literal) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/looseObject/looseObject.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction looseObject(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"loose_object\",\n\t\treference: looseObject,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const key in this.entries) {\n\t\t\t\t\tconst valueSchema = this.entries[key];\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\tconst valueDataset = valueSchema[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (/* @__PURE__ */ _isValidObjectKey(input, key) && !(key in this.entries)) dataset.value[key] = input[key];\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/looseObject/looseObjectAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction looseObjectAsync(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"loose_object\",\n\t\treference: looseObjectAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst valueDatasets = await Promise.all(Object.entries(this.entries).map(async ([key, valueSchema]) => {\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : await /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\t\tawait valueSchema[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tinput[key],\n\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\tnull\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, valueSchema, valueDataset] of valueDatasets) if (valueDataset) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = await /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (/* @__PURE__ */ _isValidObjectKey(input, key) && !(key in this.entries)) dataset.value[key] = input[key];\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/looseTuple/looseTuple.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction looseTuple(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"loose_tuple\",\n\t\treference: looseTuple,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < this.items.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.items[key][\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (let key = this.items.length; key < input.length; key++) dataset.value.push(input[key]);\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/looseTuple/looseTupleAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction looseTupleAsync(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"loose_tuple\",\n\t\treference: looseTupleAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst itemDatasets = await Promise.all(this.items.map(async (item, key) => {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait item[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, itemDataset] of itemDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (let key = this.items.length; key < input.length; key++) dataset.value.push(input[key]);\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/map/map.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction map(key, value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"map\",\n\t\treference: map,\n\t\texpects: \"Map\",\n\t\tasync: false,\n\t\tkey,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input instanceof Map) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = /* @__PURE__ */ new Map();\n\t\t\t\tfor (const [inputKey, inputValue] of input) {\n\t\t\t\t\tconst keyDataset = this.key[\"~run\"]({ value: inputKey }, config$1);\n\t\t\t\t\tif (keyDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"map\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: inputKey,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of keyDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = keyDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst valueDataset = this.value[\"~run\"]({ value: inputValue }, config$1);\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"map\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: inputKey,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.set(keyDataset.value, valueDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/map/mapAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction mapAsync(key, value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"map\",\n\t\treference: mapAsync,\n\t\texpects: \"Map\",\n\t\tasync: true,\n\t\tkey,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input instanceof Map) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = /* @__PURE__ */ new Map();\n\t\t\t\tconst datasets = await Promise.all([...input].map(([inputKey, inputValue]) => Promise.all([\n\t\t\t\t\tinputKey,\n\t\t\t\t\tinputValue,\n\t\t\t\t\tthis.key[\"~run\"]({ value: inputKey }, config$1),\n\t\t\t\t\tthis.value[\"~run\"]({ value: inputValue }, config$1)\n\t\t\t\t])));\n\t\t\t\tfor (const [inputKey, inputValue, keyDataset, valueDataset] of datasets) {\n\t\t\t\t\tif (keyDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"map\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: inputKey,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of keyDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = keyDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"map\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: inputKey,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.set(keyDataset.value, valueDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nan/nan.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nan(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nan\",\n\t\treference: nan,\n\t\texpects: \"NaN\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (Number.isNaN(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/never/never.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction never(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"never\",\n\t\treference: never,\n\t\texpects: \"never\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\t_addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonNullable/nonNullable.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonNullable(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_nullable\",\n\t\treference: nonNullable,\n\t\texpects: \"!null\",\n\t\tasync: false,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value !== null) dataset = this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === null) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonNullable/nonNullableAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonNullableAsync(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_nullable\",\n\t\treference: nonNullableAsync,\n\t\texpects: \"!null\",\n\t\tasync: true,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value !== null) dataset = await this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === null) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonNullish/nonNullish.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonNullish(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_nullish\",\n\t\treference: nonNullish,\n\t\texpects: \"(!null & !undefined)\",\n\t\tasync: false,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (!(dataset.value === null || dataset.value === void 0)) dataset = this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === null || dataset.value === void 0) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonNullish/nonNullishAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonNullishAsync(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_nullish\",\n\t\treference: nonNullishAsync,\n\t\texpects: \"(!null & !undefined)\",\n\t\tasync: true,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (!(dataset.value === null || dataset.value === void 0)) dataset = await this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === null || dataset.value === void 0) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonOptional/nonOptional.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonOptional(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_optional\",\n\t\treference: nonOptional,\n\t\texpects: \"!undefined\",\n\t\tasync: false,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value !== void 0) dataset = this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === void 0) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nonOptional/nonOptionalAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nonOptionalAsync(wrapped, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"non_optional\",\n\t\treference: nonOptionalAsync,\n\t\texpects: \"!undefined\",\n\t\tasync: true,\n\t\twrapped,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value !== void 0) dataset = await this.wrapped[\"~run\"](dataset, config$1);\n\t\t\tif (dataset.value === void 0) _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/null/null.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction null_(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"null\",\n\t\treference: null_,\n\t\texpects: \"null\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nullable/nullable.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nullable(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nullable\",\n\t\treference: nullable,\n\t\texpects: `(${wrapped.expects} | null)`,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null) {\n\t\t\t\tif (this.default !== void 0) dataset.value = /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === null) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nullable/nullableAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nullableAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nullable\",\n\t\treference: nullableAsync,\n\t\texpects: `(${wrapped.expects} | null)`,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null) {\n\t\t\t\tif (this.default !== void 0) dataset.value = await /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === null) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nullish/nullish.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nullish(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nullish\",\n\t\treference: nullish,\n\t\texpects: `(${wrapped.expects} | null | undefined)`,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null || dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === null || dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/nullish/nullishAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction nullishAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"nullish\",\n\t\treference: nullishAsync,\n\t\texpects: `(${wrapped.expects} | null | undefined)`,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === null || dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = await /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === null || dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/number/number.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction number(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"number\",\n\t\treference: number,\n\t\texpects: \"number\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"number\" && !isNaN(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/object/object.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction object(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"object\",\n\t\treference: object,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const key in this.entries) {\n\t\t\t\t\tconst valueSchema = this.entries[key];\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\tconst valueDataset = valueSchema[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/object/objectAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction objectAsync(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"object\",\n\t\treference: objectAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst valueDatasets = await Promise.all(Object.entries(this.entries).map(async ([key, valueSchema]) => {\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : await /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\t\tawait valueSchema[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tinput[key],\n\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\tnull\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, valueSchema, valueDataset] of valueDatasets) if (valueDataset) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = await /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/objectWithRest/objectWithRest.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction objectWithRest(entries$1, rest, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"object_with_rest\",\n\t\treference: objectWithRest,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tentries: entries$1,\n\t\trest,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const key in this.entries) {\n\t\t\t\t\tconst valueSchema = this.entries[key];\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\tconst valueDataset = valueSchema[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (/* @__PURE__ */ _isValidObjectKey(input, key) && !(key in this.entries)) {\n\t\t\t\t\t\tconst valueDataset = this.rest[\"~run\"]({ value: input[key] }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/objectWithRest/objectWithRestAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction objectWithRestAsync(entries$1, rest, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"object_with_rest\",\n\t\treference: objectWithRestAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tentries: entries$1,\n\t\trest,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst [normalDatasets, restDatasets] = await Promise.all([Promise.all(Object.entries(this.entries).map(async ([key, valueSchema]) => {\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : await /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\t\tawait valueSchema[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tinput[key],\n\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\tnull\n\t\t\t\t\t];\n\t\t\t\t})), Promise.all(Object.entries(input).filter(([key]) => /* @__PURE__ */ _isValidObjectKey(input, key) && !(key in this.entries)).map(async ([key, value$1]) => [\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue$1,\n\t\t\t\t\tawait this.rest[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t]))]);\n\t\t\t\tfor (const [key, value$1, valueSchema, valueDataset] of normalDatasets) if (valueDataset) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = await /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (const [key, value$1, valueDataset] of restDatasets) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/optional/optional.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction optional(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"optional\",\n\t\treference: optional,\n\t\texpects: `(${wrapped.expects} | undefined)`,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/optional/optionalAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction optionalAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"optional\",\n\t\treference: optionalAsync,\n\t\texpects: `(${wrapped.expects} | undefined)`,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = await /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/picklist/picklist.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction picklist(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"picklist\",\n\t\treference: picklist,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map(_stringify), \"|\"),\n\t\tasync: false,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (this.options.includes(dataset.value)) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/promise/promise.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction promise(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"promise\",\n\t\treference: promise,\n\t\texpects: \"Promise\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value instanceof Promise) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/record/record.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction record(key, value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"record\",\n\t\treference: record,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tkey,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const entryKey in input) if (/* @__PURE__ */ _isValidObjectKey(input, entryKey)) {\n\t\t\t\t\tconst entryValue = input[entryKey];\n\t\t\t\t\tconst keyDataset = this.key[\"~run\"]({ value: entryKey }, config$1);\n\t\t\t\t\tif (keyDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: entryKey,\n\t\t\t\t\t\t\tvalue: entryValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of keyDataset.issues) {\n\t\t\t\t\t\t\tissue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = keyDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst valueDataset = this.value[\"~run\"]({ value: entryValue }, config$1);\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: entryKey,\n\t\t\t\t\t\t\tvalue: entryValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tif (keyDataset.typed) dataset.value[keyDataset.value] = valueDataset.value;\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/record/recordAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction recordAsync(key, value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"record\",\n\t\treference: recordAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tkey,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst datasets = await Promise.all(Object.entries(input).filter(([key$1]) => /* @__PURE__ */ _isValidObjectKey(input, key$1)).map(([entryKey, entryValue]) => Promise.all([\n\t\t\t\t\tentryKey,\n\t\t\t\t\tentryValue,\n\t\t\t\t\tthis.key[\"~run\"]({ value: entryKey }, config$1),\n\t\t\t\t\tthis.value[\"~run\"]({ value: entryValue }, config$1)\n\t\t\t\t])));\n\t\t\t\tfor (const [entryKey, entryValue, keyDataset, valueDataset] of datasets) {\n\t\t\t\t\tif (keyDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: entryKey,\n\t\t\t\t\t\t\tvalue: entryValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of keyDataset.issues) {\n\t\t\t\t\t\t\tissue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = keyDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: entryKey,\n\t\t\t\t\t\t\tvalue: entryValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!keyDataset.typed || !valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tif (keyDataset.typed) dataset.value[keyDataset.value] = valueDataset.value;\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/set/set.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction set(value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"set\",\n\t\treference: set,\n\t\texpects: \"Set\",\n\t\tasync: false,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input instanceof Set) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = /* @__PURE__ */ new Set();\n\t\t\t\tfor (const inputValue of input) {\n\t\t\t\t\tconst valueDataset = this.value[\"~run\"]({ value: inputValue }, config$1);\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"set\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: null,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.add(valueDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/set/setAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction setAsync(value$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"set\",\n\t\treference: setAsync,\n\t\texpects: \"Set\",\n\t\tasync: true,\n\t\tvalue: value$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input instanceof Set) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = /* @__PURE__ */ new Set();\n\t\t\t\tconst valueDatasets = await Promise.all([...input].map(async (inputValue) => [inputValue, await this.value[\"~run\"]({ value: inputValue }, config$1)]));\n\t\t\t\tfor (const [inputValue, valueDataset] of valueDatasets) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"set\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey: null,\n\t\t\t\t\t\t\tvalue: inputValue\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.add(valueDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/strictObject/strictObject.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction strictObject(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"strict_object\",\n\t\treference: strictObject,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tfor (const key in this.entries) {\n\t\t\t\t\tconst valueSchema = this.entries[key];\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\tconst valueDataset = valueSchema[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (!(key in this.entries)) {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: key,\n\t\t\t\t\t\t\texpected: \"never\",\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/strictObject/strictObjectAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction strictObjectAsync(entries$1, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"strict_object\",\n\t\treference: strictObjectAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tentries: entries$1,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = {};\n\t\t\t\tconst valueDatasets = await Promise.all(Object.entries(this.entries).map(async ([key, valueSchema]) => {\n\t\t\t\t\tif (key in input || (valueSchema.type === \"exact_optional\" || valueSchema.type === \"optional\" || valueSchema.type === \"nullish\") && valueSchema.default !== void 0) {\n\t\t\t\t\t\tconst value$1 = key in input ? input[key] : await /* @__PURE__ */ getDefault(valueSchema);\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\t\tawait valueSchema[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tinput[key],\n\t\t\t\t\t\tvalueSchema,\n\t\t\t\t\t\tnull\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, valueSchema, valueDataset] of valueDatasets) if (valueDataset) {\n\t\t\t\t\tif (valueDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of valueDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = valueDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!valueDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value[key] = valueDataset.value;\n\t\t\t\t} else if (valueSchema.fallback !== void 0) dataset.value[key] = await /* @__PURE__ */ getFallback(valueSchema);\n\t\t\t\telse if (valueSchema.type !== \"exact_optional\" && valueSchema.type !== \"optional\" && valueSchema.type !== \"nullish\") {\n\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\texpected: `\"${key}\"`,\n\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t\t\tif (config$1.abortEarly) break;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) {\n\t\t\t\t\tfor (const key in input) if (!(key in this.entries)) {\n\t\t\t\t\t\t_addIssue(this, \"key\", dataset, config$1, {\n\t\t\t\t\t\t\tinput: key,\n\t\t\t\t\t\t\texpected: \"never\",\n\t\t\t\t\t\t\tpath: [{\n\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\torigin: \"key\",\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\tvalue: input[key]\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/strictTuple/strictTuple.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction strictTuple(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"strict_tuple\",\n\t\treference: strictTuple,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < this.items.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.items[key][\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!(dataset.issues && config$1.abortEarly) && this.items.length < input.length) _addIssue(this, \"type\", dataset, config$1, {\n\t\t\t\t\tinput: input[this.items.length],\n\t\t\t\t\texpected: \"never\",\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tkey: this.items.length,\n\t\t\t\t\t\tvalue: input[this.items.length]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/strictTuple/strictTupleAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction strictTupleAsync(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"strict_tuple\",\n\t\treference: strictTupleAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst itemDatasets = await Promise.all(this.items.map(async (item, key) => {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait item[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, itemDataset] of itemDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!(dataset.issues && config$1.abortEarly) && this.items.length < input.length) _addIssue(this, \"type\", dataset, config$1, {\n\t\t\t\t\tinput: input[this.items.length],\n\t\t\t\t\texpected: \"never\",\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tkey: this.items.length,\n\t\t\t\t\t\tvalue: input[this.items.length]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/string/string.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction string(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"string\",\n\t\treference: string,\n\t\texpects: \"string\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"string\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/symbol/symbol.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction symbol(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"symbol\",\n\t\treference: symbol,\n\t\texpects: \"symbol\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (typeof dataset.value === \"symbol\") dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/tuple/tuple.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction tuple(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"tuple\",\n\t\treference: tuple,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < this.items.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.items[key][\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/tuple/tupleAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction tupleAsync(items, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"tuple\",\n\t\treference: tupleAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titems,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst itemDatasets = await Promise.all(this.items.map(async (item, key) => {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait item[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t}));\n\t\t\t\tfor (const [key, value$1, itemDataset] of itemDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/tupleWithRest/tupleWithRest.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction tupleWithRest(items, rest, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"tuple_with_rest\",\n\t\treference: tupleWithRest,\n\t\texpects: \"Array\",\n\t\tasync: false,\n\t\titems,\n\t\trest,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tfor (let key = 0; key < this.items.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.items[key][\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (let key = this.items.length; key < input.length; key++) {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\tconst itemDataset = this.rest[\"~run\"]({ value: value$1 }, config$1);\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/tupleWithRest/tupleWithRestAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction tupleWithRestAsync(items, rest, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"tuple_with_rest\",\n\t\treference: tupleWithRestAsync,\n\t\texpects: \"Array\",\n\t\tasync: true,\n\t\titems,\n\t\trest,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (Array.isArray(input)) {\n\t\t\t\tdataset.typed = true;\n\t\t\t\tdataset.value = [];\n\t\t\t\tconst [normalDatasets, restDatasets] = await Promise.all([Promise.all(this.items.map(async (item, key) => {\n\t\t\t\t\tconst value$1 = input[key];\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait item[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t})), Promise.all(input.slice(this.items.length).map(async (value$1, key) => {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey + this.items.length,\n\t\t\t\t\t\tvalue$1,\n\t\t\t\t\t\tawait this.rest[\"~run\"]({ value: value$1 }, config$1)\n\t\t\t\t\t];\n\t\t\t\t}))]);\n\t\t\t\tfor (const [key, value$1, itemDataset] of normalDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly) for (const [key, value$1, itemDataset] of restDatasets) {\n\t\t\t\t\tif (itemDataset.issues) {\n\t\t\t\t\t\tconst pathItem = {\n\t\t\t\t\t\t\ttype: \"array\",\n\t\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue: value$1\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (const issue of itemDataset.issues) {\n\t\t\t\t\t\t\tif (issue.path) issue.path.unshift(pathItem);\n\t\t\t\t\t\t\telse issue.path = [pathItem];\n\t\t\t\t\t\t\tdataset.issues?.push(issue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!dataset.issues) dataset.issues = itemDataset.issues;\n\t\t\t\t\t\tif (config$1.abortEarly) {\n\t\t\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!itemDataset.typed) dataset.typed = false;\n\t\t\t\t\tdataset.value.push(itemDataset.value);\n\t\t\t\t}\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/undefined/undefined.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction undefined_(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"undefined\",\n\t\treference: undefined_,\n\t\texpects: \"undefined\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/undefinedable/undefinedable.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction undefinedable(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"undefinedable\",\n\t\treference: undefinedable,\n\t\texpects: `(${wrapped.expects} | undefined)`,\n\t\tasync: false,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/undefinedable/undefinedableAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction undefinedableAsync(wrapped, default_) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"undefinedable\",\n\t\treference: undefinedableAsync,\n\t\texpects: `(${wrapped.expects} | undefined)`,\n\t\tasync: true,\n\t\twrapped,\n\t\tdefault: default_,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) {\n\t\t\t\tif (this.default !== void 0) dataset.value = await /* @__PURE__ */ getDefault(this, dataset, config$1);\n\t\t\t\tif (dataset.value === void 0) {\n\t\t\t\t\tdataset.typed = true;\n\t\t\t\t\treturn dataset;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this.wrapped[\"~run\"](dataset, config$1);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/union/utils/_subIssues/_subIssues.ts\n/**\n* Returns the sub issues of the provided datasets for the union issue.\n*\n* @param datasets The datasets.\n*\n* @returns The sub issues.\n*\n* @internal\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction _subIssues(datasets) {\n\tlet issues;\n\tif (datasets) for (const dataset of datasets) if (issues) issues.push(...dataset.issues);\n\telse issues = dataset.issues;\n\treturn issues;\n}\n\n//#endregion\n//#region src/schemas/union/union.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction union(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"union\",\n\t\treference: union,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map((option) => option.expects), \"|\"),\n\t\tasync: false,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tlet validDataset;\n\t\t\tlet typedDatasets;\n\t\t\tlet untypedDatasets;\n\t\t\tfor (const schema of this.options) {\n\t\t\t\tconst optionDataset = schema[\"~run\"]({ value: dataset.value }, config$1);\n\t\t\t\tif (optionDataset.typed) if (optionDataset.issues) if (typedDatasets) typedDatasets.push(optionDataset);\n\t\t\t\telse typedDatasets = [optionDataset];\n\t\t\t\telse {\n\t\t\t\t\tvalidDataset = optionDataset;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse if (untypedDatasets) untypedDatasets.push(optionDataset);\n\t\t\t\telse untypedDatasets = [optionDataset];\n\t\t\t}\n\t\t\tif (validDataset) return validDataset;\n\t\t\tif (typedDatasets) {\n\t\t\t\tif (typedDatasets.length === 1) return typedDatasets[0];\n\t\t\t\t_addIssue(this, \"type\", dataset, config$1, { issues: /* @__PURE__ */ _subIssues(typedDatasets) });\n\t\t\t\tdataset.typed = true;\n\t\t\t} else if (untypedDatasets?.length === 1) return untypedDatasets[0];\n\t\t\telse _addIssue(this, \"type\", dataset, config$1, { issues: /* @__PURE__ */ _subIssues(untypedDatasets) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/union/unionAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction unionAsync(options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"union\",\n\t\treference: unionAsync,\n\t\texpects: /* @__PURE__ */ _joinExpects(options.map((option) => option.expects), \"|\"),\n\t\tasync: true,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tlet validDataset;\n\t\t\tlet typedDatasets;\n\t\t\tlet untypedDatasets;\n\t\t\tfor (const schema of this.options) {\n\t\t\t\tconst optionDataset = await schema[\"~run\"]({ value: dataset.value }, config$1);\n\t\t\t\tif (optionDataset.typed) if (optionDataset.issues) if (typedDatasets) typedDatasets.push(optionDataset);\n\t\t\t\telse typedDatasets = [optionDataset];\n\t\t\t\telse {\n\t\t\t\t\tvalidDataset = optionDataset;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse if (untypedDatasets) untypedDatasets.push(optionDataset);\n\t\t\t\telse untypedDatasets = [optionDataset];\n\t\t\t}\n\t\t\tif (validDataset) return validDataset;\n\t\t\tif (typedDatasets) {\n\t\t\t\tif (typedDatasets.length === 1) return typedDatasets[0];\n\t\t\t\t_addIssue(this, \"type\", dataset, config$1, { issues: /* @__PURE__ */ _subIssues(typedDatasets) });\n\t\t\t\tdataset.typed = true;\n\t\t\t} else if (untypedDatasets?.length === 1) return untypedDatasets[0];\n\t\t\telse _addIssue(this, \"type\", dataset, config$1, { issues: /* @__PURE__ */ _subIssues(untypedDatasets) });\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/unknown/unknown.ts\n/**\n* Creates a unknown schema.\n*\n* @returns A unknown schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction unknown() {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"unknown\",\n\t\treference: unknown,\n\t\texpects: \"unknown\",\n\t\tasync: false,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset) {\n\t\t\tdataset.typed = true;\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/variant/variant.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction variant(key, options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"variant\",\n\t\treference: variant,\n\t\texpects: \"Object\",\n\t\tasync: false,\n\t\tkey,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tlet outputDataset;\n\t\t\t\tlet maxDiscriminatorPriority = 0;\n\t\t\t\tlet invalidDiscriminatorKey = this.key;\n\t\t\t\tlet expectedDiscriminators = [];\n\t\t\t\tconst parseOptions = (variant$1, allKeys) => {\n\t\t\t\t\tfor (const schema of variant$1.options) {\n\t\t\t\t\t\tif (schema.type === \"variant\") parseOptions(schema, new Set(allKeys).add(schema.key));\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet keysAreValid = true;\n\t\t\t\t\t\t\tlet currentPriority = 0;\n\t\t\t\t\t\t\tfor (const currentKey of allKeys) {\n\t\t\t\t\t\t\t\tconst discriminatorSchema = schema.entries[currentKey];\n\t\t\t\t\t\t\t\tif (currentKey in input ? discriminatorSchema[\"~run\"]({\n\t\t\t\t\t\t\t\t\ttyped: false,\n\t\t\t\t\t\t\t\t\tvalue: input[currentKey]\n\t\t\t\t\t\t\t\t}, { abortEarly: true }).issues : discriminatorSchema.type !== \"exact_optional\" && discriminatorSchema.type !== \"optional\" && discriminatorSchema.type !== \"nullish\") {\n\t\t\t\t\t\t\t\t\tkeysAreValid = false;\n\t\t\t\t\t\t\t\t\tif (invalidDiscriminatorKey !== currentKey && (maxDiscriminatorPriority < currentPriority || maxDiscriminatorPriority === currentPriority && currentKey in input && !(invalidDiscriminatorKey in input))) {\n\t\t\t\t\t\t\t\t\t\tmaxDiscriminatorPriority = currentPriority;\n\t\t\t\t\t\t\t\t\t\tinvalidDiscriminatorKey = currentKey;\n\t\t\t\t\t\t\t\t\t\texpectedDiscriminators = [];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (invalidDiscriminatorKey === currentKey) expectedDiscriminators.push(schema.entries[currentKey].expects);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcurrentPriority++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (keysAreValid) {\n\t\t\t\t\t\t\t\tconst optionDataset = schema[\"~run\"]({ value: input }, config$1);\n\t\t\t\t\t\t\t\tif (!outputDataset || !outputDataset.typed && optionDataset.typed) outputDataset = optionDataset;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (outputDataset && !outputDataset.issues) break;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tparseOptions(this, new Set([this.key]));\n\t\t\t\tif (outputDataset) return outputDataset;\n\t\t\t\t_addIssue(this, \"type\", dataset, config$1, {\n\t\t\t\t\tinput: input[invalidDiscriminatorKey],\n\t\t\t\t\texpected: /* @__PURE__ */ _joinExpects(expectedDiscriminators, \"|\"),\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tkey: invalidDiscriminatorKey,\n\t\t\t\t\t\tvalue: input[invalidDiscriminatorKey]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/variant/variantAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction variantAsync(key, options, message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"variant\",\n\t\treference: variantAsync,\n\t\texpects: \"Object\",\n\t\tasync: true,\n\t\tkey,\n\t\toptions,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tconst input = dataset.value;\n\t\t\tif (input && typeof input === \"object\") {\n\t\t\t\tlet outputDataset;\n\t\t\t\tlet maxDiscriminatorPriority = 0;\n\t\t\t\tlet invalidDiscriminatorKey = this.key;\n\t\t\t\tlet expectedDiscriminators = [];\n\t\t\t\tconst parseOptions = async (variant$1, allKeys) => {\n\t\t\t\t\tfor (const schema of variant$1.options) {\n\t\t\t\t\t\tif (schema.type === \"variant\") await parseOptions(schema, new Set(allKeys).add(schema.key));\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet keysAreValid = true;\n\t\t\t\t\t\t\tlet currentPriority = 0;\n\t\t\t\t\t\t\tfor (const currentKey of allKeys) {\n\t\t\t\t\t\t\t\tconst discriminatorSchema = schema.entries[currentKey];\n\t\t\t\t\t\t\t\tif (currentKey in input ? (await discriminatorSchema[\"~run\"]({\n\t\t\t\t\t\t\t\t\ttyped: false,\n\t\t\t\t\t\t\t\t\tvalue: input[currentKey]\n\t\t\t\t\t\t\t\t}, { abortEarly: true })).issues : discriminatorSchema.type !== \"exact_optional\" && discriminatorSchema.type !== \"optional\" && discriminatorSchema.type !== \"nullish\") {\n\t\t\t\t\t\t\t\t\tkeysAreValid = false;\n\t\t\t\t\t\t\t\t\tif (invalidDiscriminatorKey !== currentKey && (maxDiscriminatorPriority < currentPriority || maxDiscriminatorPriority === currentPriority && currentKey in input && !(invalidDiscriminatorKey in input))) {\n\t\t\t\t\t\t\t\t\t\tmaxDiscriminatorPriority = currentPriority;\n\t\t\t\t\t\t\t\t\t\tinvalidDiscriminatorKey = currentKey;\n\t\t\t\t\t\t\t\t\t\texpectedDiscriminators = [];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (invalidDiscriminatorKey === currentKey) expectedDiscriminators.push(schema.entries[currentKey].expects);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcurrentPriority++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (keysAreValid) {\n\t\t\t\t\t\t\t\tconst optionDataset = await schema[\"~run\"]({ value: input }, config$1);\n\t\t\t\t\t\t\t\tif (!outputDataset || !outputDataset.typed && optionDataset.typed) outputDataset = optionDataset;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (outputDataset && !outputDataset.issues) break;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tawait parseOptions(this, new Set([this.key]));\n\t\t\t\tif (outputDataset) return outputDataset;\n\t\t\t\t_addIssue(this, \"type\", dataset, config$1, {\n\t\t\t\t\tinput: input[invalidDiscriminatorKey],\n\t\t\t\t\texpected: /* @__PURE__ */ _joinExpects(expectedDiscriminators, \"|\"),\n\t\t\t\t\tpath: [{\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\torigin: \"value\",\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tkey: invalidDiscriminatorKey,\n\t\t\t\t\t\tvalue: input[invalidDiscriminatorKey]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t} else _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/schemas/void/void.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction void_(message$1) {\n\treturn {\n\t\tkind: \"schema\",\n\t\ttype: \"void\",\n\t\treference: void_,\n\t\texpects: \"void\",\n\t\tasync: false,\n\t\tmessage: message$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tif (dataset.value === void 0) dataset.typed = true;\n\t\t\telse _addIssue(this, \"type\", dataset, config$1);\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/keyof/keyof.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction keyof(schema, message$1) {\n\treturn /* @__PURE__ */ picklist(Object.keys(schema.entries), message$1);\n}\n\n//#endregion\n//#region src/methods/message/message.ts\n/**\n* Changes the local message configuration of a schema.\n*\n* @param schema The schema to configure.\n* @param message_ The error message.\n*\n* @returns The configured schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction message(schema, message_) {\n\treturn {\n\t\t...schema,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\treturn schema[\"~run\"](dataset, {\n\t\t\t\t...config$1,\n\t\t\t\tmessage: message_\n\t\t\t});\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/omit/omit.ts\n/**\n* Creates a modified copy of an object schema that does not contain the\n* selected entries.\n*\n* @param schema The schema to omit from.\n* @param keys The selected entries.\n*\n* @returns An object schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction omit(schema, keys) {\n\tconst entries$1 = { ...schema.entries };\n\tfor (const key of keys) delete entries$1[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/parse/parse.ts\n/**\n* Parses an unknown input based on a schema.\n*\n* @param schema The schema to be used.\n* @param input The input to be parsed.\n* @param config The parse configuration.\n*\n* @returns The parsed input.\n*/\nfunction parse(schema, input, config$1) {\n\tconst dataset = schema[\"~run\"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));\n\tif (dataset.issues) throw new ValiError(dataset.issues);\n\treturn dataset.value;\n}\n\n//#endregion\n//#region src/methods/parse/parseAsync.ts\n/**\n* Parses an unknown input based on a schema.\n*\n* @param schema The schema to be used.\n* @param input The input to be parsed.\n* @param config The parse configuration.\n*\n* @returns The parsed input.\n*/\nasync function parseAsync(schema, input, config$1) {\n\tconst dataset = await schema[\"~run\"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));\n\tif (dataset.issues) throw new ValiError(dataset.issues);\n\treturn dataset.value;\n}\n\n//#endregion\n//#region src/methods/parser/parser.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction parser(schema, config$1) {\n\tconst func = (input) => parse(schema, input, config$1);\n\tfunc.schema = schema;\n\tfunc.config = config$1;\n\treturn func;\n}\n\n//#endregion\n//#region src/methods/parser/parserAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction parserAsync(schema, config$1) {\n\tconst func = (input) => parseAsync(schema, input, config$1);\n\tfunc.schema = schema;\n\tfunc.config = config$1;\n\treturn func;\n}\n\n//#endregion\n//#region src/methods/partial/partial.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction partial(schema, keys) {\n\tconst entries$1 = {};\n\tfor (const key in schema.entries) entries$1[key] = !keys || keys.includes(key) ? /* @__PURE__ */ optional(schema.entries[key]) : schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/partial/partialAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction partialAsync(schema, keys) {\n\tconst entries$1 = {};\n\tfor (const key in schema.entries) entries$1[key] = !keys || keys.includes(key) ? /* @__PURE__ */ optionalAsync(schema.entries[key]) : schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/pick/pick.ts\n/**\n* Creates a modified copy of an object schema that contains only the selected\n* entries.\n*\n* @param schema The schema to pick from.\n* @param keys The selected entries.\n*\n* @returns An object schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction pick(schema, keys) {\n\tconst entries$1 = {};\n\tfor (const key of keys) entries$1[key] = schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/pipe/pipe.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction pipe(...pipe$1) {\n\treturn {\n\t\t...pipe$1[0],\n\t\tpipe: pipe$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\t\"~run\"(dataset, config$1) {\n\t\t\tfor (const item of pipe$1) if (item.kind !== \"metadata\") {\n\t\t\t\tif (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly && !config$1.abortPipeEarly) dataset = item[\"~run\"](dataset, config$1);\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/pipe/pipeAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction pipeAsync(...pipe$1) {\n\treturn {\n\t\t...pipe$1[0],\n\t\tpipe: pipe$1,\n\t\tasync: true,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t},\n\t\tasync \"~run\"(dataset, config$1) {\n\t\t\tfor (const item of pipe$1) if (item.kind !== \"metadata\") {\n\t\t\t\tif (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n\t\t\t\t\tdataset.typed = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!dataset.issues || !config$1.abortEarly && !config$1.abortPipeEarly) dataset = await item[\"~run\"](dataset, config$1);\n\t\t\t}\n\t\t\treturn dataset;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/required/required.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction required(schema, arg2, arg3) {\n\tconst keys = Array.isArray(arg2) ? arg2 : void 0;\n\tconst message$1 = Array.isArray(arg2) ? arg3 : arg2;\n\tconst entries$1 = {};\n\tfor (const key in schema.entries) entries$1[key] = !keys || keys.includes(key) ? /* @__PURE__ */ nonOptional(schema.entries[key], message$1) : schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/required/requiredAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction requiredAsync(schema, arg2, arg3) {\n\tconst keys = Array.isArray(arg2) ? arg2 : void 0;\n\tconst message$1 = Array.isArray(arg2) ? arg3 : arg2;\n\tconst entries$1 = {};\n\tfor (const key in schema.entries) entries$1[key] = !keys || keys.includes(key) ? /* @__PURE__ */ nonOptionalAsync(schema.entries[key], message$1) : schema.entries[key];\n\treturn {\n\t\t...schema,\n\t\tentries: entries$1,\n\t\tget \"~standard\"() {\n\t\t\treturn /* @__PURE__ */ _getStandardProps(this);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/methods/safeParse/safeParse.ts\n/**\n* Parses an unknown input based on a schema.\n*\n* @param schema The schema to be used.\n* @param input The input to be parsed.\n* @param config The parse configuration.\n*\n* @returns The parse result.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction safeParse(schema, input, config$1) {\n\tconst dataset = schema[\"~run\"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));\n\treturn {\n\t\ttyped: dataset.typed,\n\t\tsuccess: !dataset.issues,\n\t\toutput: dataset.value,\n\t\tissues: dataset.issues\n\t};\n}\n\n//#endregion\n//#region src/methods/safeParse/safeParseAsync.ts\n/**\n* Parses an unknown input based on a schema.\n*\n* @param schema The schema to be used.\n* @param input The input to be parsed.\n* @param config The parse configuration.\n*\n* @returns The parse result.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nasync function safeParseAsync(schema, input, config$1) {\n\tconst dataset = await schema[\"~run\"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));\n\treturn {\n\t\ttyped: dataset.typed,\n\t\tsuccess: !dataset.issues,\n\t\toutput: dataset.value,\n\t\tissues: dataset.issues\n\t};\n}\n\n//#endregion\n//#region src/methods/safeParser/safeParser.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction safeParser(schema, config$1) {\n\tconst func = (input) => /* @__PURE__ */ safeParse(schema, input, config$1);\n\tfunc.schema = schema;\n\tfunc.config = config$1;\n\treturn func;\n}\n\n//#endregion\n//#region src/methods/safeParser/safeParserAsync.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction safeParserAsync(schema, config$1) {\n\tconst func = (input) => /* @__PURE__ */ safeParseAsync(schema, input, config$1);\n\tfunc.schema = schema;\n\tfunc.config = config$1;\n\treturn func;\n}\n\n//#endregion\n//#region src/methods/summarize/summarize.ts\n/**\n* Summarize the error messages of issues in a pretty-printable multi-line string.\n*\n* @param issues The list of issues.\n*\n* @returns A summary of the issues.\n*\n* @beta\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction summarize(issues) {\n\tlet summary = \"\";\n\tfor (const issue of issues) {\n\t\tif (summary) summary += \"\\n\";\n\t\tsummary += `× ${issue.message}`;\n\t\tconst dotPath = /* @__PURE__ */ getDotPath(issue);\n\t\tif (dotPath) summary += `\\n → at ${dotPath}`;\n\t}\n\treturn summary;\n}\n\n//#endregion\n//#region src/methods/unwrap/unwrap.ts\n/**\n* Unwraps the wrapped schema.\n*\n* @param schema The schema to be unwrapped.\n*\n* @returns The unwrapped schema.\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction unwrap(schema) {\n\treturn schema.wrapped;\n}\n\n//#endregion\nexport { BASE64_REGEX, BIC_REGEX, CUID2_REGEX, DECIMAL_REGEX, DIGITS_REGEX, EMAIL_REGEX, EMOJI_REGEX, HEXADECIMAL_REGEX, HEX_COLOR_REGEX, IMEI_REGEX, IPV4_REGEX, IPV6_REGEX, IP_REGEX, ISO_DATE_REGEX, ISO_DATE_TIME_REGEX, ISO_TIMESTAMP_REGEX, ISO_TIME_REGEX, ISO_TIME_SECOND_REGEX, ISO_WEEK_REGEX, MAC48_REGEX, MAC64_REGEX, MAC_REGEX, NANO_ID_REGEX, OCTAL_REGEX, RFC_EMAIL_REGEX, SLUG_REGEX, ULID_REGEX, UUID_REGEX, ValiError, _addIssue, _getByteCount, _getGraphemeCount, _getLastMetadata, _getStandardProps, _getWordCount, _isLuhnAlgo, _isValidObjectKey, _joinExpects, _stringify, any, args, argsAsync, array, arrayAsync, assert, awaitAsync, base64, bic, bigint, blob, boolean, brand, bytes, check, checkAsync, checkItems, checkItemsAsync, config, creditCard, cuid2, custom, customAsync, date, decimal, deleteGlobalConfig, deleteGlobalMessage, deleteSchemaMessage, deleteSpecificMessage, description, digits, email, emoji, empty, endsWith, entries, entriesFromList, entriesFromObjects, enum_ as enum, enum_, everyItem, exactOptional, exactOptionalAsync, examples, excludes, fallback, fallbackAsync, file, filterItems, findItem, finite, flatten, flavor, forward, forwardAsync, function_ as function, function_, getDefault, getDefaults, getDefaultsAsync, getDescription, getDotPath, getExamples, getFallback, getFallbacks, getFallbacksAsync, getGlobalConfig, getGlobalMessage, getMetadata, getSchemaMessage, getSpecificMessage, getTitle, graphemes, gtValue, hash, hexColor, hexadecimal, imei, includes, instance, integer, intersect, intersectAsync, ip, ipv4, ipv6, is, isOfKind, isOfType, isValiError, isoDate, isoDateTime, isoTime, isoTimeSecond, isoTimestamp, isoWeek, keyof, lazy, lazyAsync, length, literal, looseObject, looseObjectAsync, looseTuple, looseTupleAsync, ltValue, mac, mac48, mac64, map, mapAsync, mapItems, maxBytes, maxEntries, maxGraphemes, maxLength, maxSize, maxValue, maxWords, message, metadata, mimeType, minBytes, minEntries, minGraphemes, minLength, minSize, minValue, minWords, multipleOf, nan, nanoid, never, nonEmpty, nonNullable, nonNullableAsync, nonNullish, nonNullishAsync, nonOptional, nonOptionalAsync, normalize, notBytes, notEntries, notGraphemes, notLength, notSize, notValue, notValues, notWords, null_ as null, null_, nullable, nullableAsync, nullish, nullishAsync, number, object, objectAsync, objectWithRest, objectWithRestAsync, octal, omit, optional, optionalAsync, parse, parseAsync, parseJson, parser, parserAsync, partial, partialAsync, partialCheck, partialCheckAsync, pick, picklist, pipe, pipeAsync, promise, rawCheck, rawCheckAsync, rawTransform, rawTransformAsync, readonly, record, recordAsync, reduceItems, regex, required, requiredAsync, returns, returnsAsync, rfcEmail, safeInteger, safeParse, safeParseAsync, safeParser, safeParserAsync, set, setAsync, setGlobalConfig, setGlobalMessage, setSchemaMessage, setSpecificMessage, size, slug, someItem, sortItems, startsWith, strictObject, strictObjectAsync, strictTuple, strictTupleAsync, string, stringifyJson, summarize, symbol, title, toBigint, toBoolean, toDate, toLowerCase, toMaxValue, toMinValue, toNumber, toString, toUpperCase, transform, transformAsync, trim, trimEnd, trimStart, tuple, tupleAsync, tupleWithRest, tupleWithRestAsync, ulid, undefined_ as undefined, undefined_, undefinedable, undefinedableAsync, union, unionAsync, unknown, unwrap, url, uuid, value, values, variant, variantAsync, void_ as void, void_, words };",
|
|
7
7
|
"// packages/react-validators-valibot/src/index.ts\nimport * as v from \"valibot\";\nfunction createValibotValidators() {\n const oidcCallbackParamsSchema = v.object({\n code: v.string(),\n state: v.optional(v.string()),\n session_state: v.optional(v.string()),\n error: v.optional(v.string()),\n error_description: v.optional(v.string()),\n error_uri: v.optional(v.string()),\n iss: v.optional(v.string())\n });\n const idTokenClaimsSchema = v.looseObject({\n sub: v.optional(v.string()),\n iss: v.optional(v.string()),\n aud: v.optional(v.string()),\n exp: v.optional(v.number()),\n iat: v.optional(v.number()),\n sid: v.optional(v.string()),\n name: v.optional(v.string()),\n email: v.optional(v.pipe(v.string(), v.email())),\n preferred_username: v.optional(v.string()),\n picture: v.optional(v.pipe(v.string(), v.url()))\n });\n const tokenResponseSchema = v.object({\n access_token: v.string(),\n id_token: v.string(),\n refresh_token: v.optional(v.string()),\n token_type: v.string(),\n expires_in: v.optional(v.number()),\n scope: v.optional(v.string()),\n refresh_expires_in: v.optional(v.number()),\n session_state: v.optional(v.string()),\n expires: v.optional(v.string())\n });\n return {\n callbackParams: oidcCallbackParamsSchema,\n idTokenClaims: idTokenClaimsSchema,\n tokenResponse: tokenResponseSchema\n };\n}\nvar valibotValidators = {\n oidcCallbackParams: () => v.object({\n code: v.string(),\n state: v.optional(v.string()),\n session_state: v.optional(v.string()),\n error: v.optional(v.string()),\n error_description: v.optional(v.string()),\n error_uri: v.optional(v.string()),\n iss: v.optional(v.string())\n }),\n idTokenClaims: () => v.looseObject({\n sub: v.optional(v.string()),\n iss: v.optional(v.string()),\n aud: v.optional(v.string()),\n exp: v.optional(v.number()),\n iat: v.optional(v.number()),\n sid: v.optional(v.string()),\n name: v.optional(v.string()),\n email: v.optional(v.pipe(v.string(), v.email())),\n preferred_username: v.optional(v.string()),\n picture: v.optional(v.pipe(v.string(), v.url()))\n }),\n tokenResponse: () => v.object({\n access_token: v.string(),\n id_token: v.string(),\n refresh_token: v.optional(v.string()),\n token_type: v.string(),\n expires_in: v.optional(v.number()),\n scope: v.optional(v.string()),\n refresh_expires_in: v.optional(v.number()),\n session_state: v.optional(v.string()),\n expires: v.optional(v.string())\n }),\n scimUser: () => {\n const nameSchema = v.object({\n formatted: v.optional(v.string()),\n familyName: v.optional(v.string()),\n givenName: v.optional(v.string()),\n middleName: v.optional(v.string()),\n honorificPrefix: v.optional(v.string()),\n honorificSuffix: v.optional(v.string())\n });\n const emailSchema = v.object({\n value: v.pipe(v.string(), v.email()),\n display: v.optional(v.string()),\n type: v.optional(v.string()),\n primary: v.optional(v.boolean())\n });\n const phoneNumberSchema = v.object({\n value: v.string(),\n display: v.optional(v.string()),\n type: v.optional(v.string()),\n primary: v.optional(v.boolean())\n });\n const addressSchema = v.object({\n formatted: v.optional(v.string()),\n streetAddress: v.optional(v.string()),\n locality: v.optional(v.string()),\n region: v.optional(v.string()),\n postalCode: v.optional(v.string()),\n country: v.optional(v.string()),\n type: v.optional(v.string()),\n primary: v.optional(v.boolean())\n });\n const groupSchema = v.object({\n value: v.string(),\n $ref: v.optional(v.string()),\n display: v.optional(v.string()),\n type: v.optional(v.string())\n });\n const roleSchema = v.object({\n value: v.string(),\n display: v.optional(v.string()),\n type: v.optional(v.string()),\n primary: v.optional(v.boolean())\n });\n const enterpriseUserSchema = v.object({\n employeeNumber: v.optional(v.string()),\n costCenter: v.optional(v.string()),\n organization: v.optional(v.string()),\n division: v.optional(v.string()),\n department: v.optional(v.string()),\n manager: v.optional(v.object({\n value: v.optional(v.string()),\n $ref: v.optional(v.string()),\n displayName: v.optional(v.string())\n }))\n });\n return v.object({\n id: v.optional(v.string()),\n externalId: v.optional(v.string()),\n meta: v.optional(v.object({\n resourceType: v.optional(v.string()),\n created: v.optional(v.string()),\n lastModified: v.optional(v.string()),\n location: v.optional(v.string()),\n version: v.optional(v.string())\n })),\n userName: v.string(),\n name: v.optional(nameSchema),\n displayName: v.optional(v.string()),\n nickName: v.optional(v.string()),\n profileUrl: v.optional(v.pipe(v.string(), v.url())),\n title: v.optional(v.string()),\n userType: v.optional(v.string()),\n preferredLanguage: v.optional(v.string()),\n locale: v.optional(v.string()),\n timezone: v.optional(v.string()),\n active: v.optional(v.boolean()),\n password: v.optional(v.string()),\n emails: v.optional(v.array(emailSchema)),\n phoneNumbers: v.optional(v.array(phoneNumberSchema)),\n ims: v.optional(v.array(v.object({\n value: v.string(),\n display: v.optional(v.string()),\n type: v.optional(v.string()),\n primary: v.optional(v.boolean())\n }))),\n photos: v.optional(v.array(v.object({\n value: v.string(),\n display: v.optional(v.string()),\n type: v.optional(v.string()),\n primary: v.optional(v.boolean())\n }))),\n addresses: v.optional(v.array(addressSchema)),\n groups: v.optional(v.array(groupSchema)),\n entitlements: v.optional(v.array(v.object({\n value: v.string(),\n display: v.optional(v.string()),\n type: v.optional(v.string()),\n primary: v.optional(v.boolean())\n }))),\n roles: v.optional(v.array(roleSchema)),\n x509Certificates: v.optional(v.array(v.object({\n value: v.string(),\n display: v.optional(v.string()),\n type: v.optional(v.string()),\n primary: v.optional(v.boolean())\n }))),\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\": v.optional(enterpriseUserSchema),\n schemas: v.optional(v.array(v.string()))\n });\n },\n createTenantResponse: () => v.object({\n tenantUrl: v.pipe(v.string(), v.url()),\n status: v.picklist([\"pending\", \"processing\", \"completed\", \"failed\"])\n })\n};\nexport {\n valibotValidators,\n createValibotValidators\n};\n\n//# debugId=ABB0440DEBFD328064756E2164756E21\n",
|
|
8
8
|
"export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n",
|
|
@@ -15,19 +15,19 @@
|
|
|
15
15
|
"export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n",
|
|
16
16
|
"import * as z from \"./v3/external.js\";\nexport * from \"./v3/external.js\";\nexport { z };\nexport default z;\n",
|
|
17
17
|
"// packages/react-validators-zod/src/index.ts\nimport { z } from \"zod\";\nfunction createZodValidators() {\n const oidcCallbackParamsSchema = z.object({\n code: z.string(),\n state: z.string().optional(),\n session_state: z.string().optional(),\n error: z.string().optional(),\n error_description: z.string().optional(),\n error_uri: z.string().optional(),\n iss: z.string().optional()\n });\n const idTokenClaimsSchema = z.object({\n sub: z.string().optional(),\n iss: z.string().optional(),\n aud: z.string().optional(),\n exp: z.number().optional(),\n iat: z.number().optional(),\n sid: z.string().optional(),\n name: z.string().optional(),\n email: z.string().email().optional(),\n preferred_username: z.string().optional(),\n picture: z.string().url().optional()\n }).passthrough();\n const tokenResponseSchema = z.object({\n access_token: z.string(),\n id_token: z.string(),\n refresh_token: z.string().optional(),\n token_type: z.string(),\n expires_in: z.number().optional(),\n scope: z.string().optional(),\n refresh_expires_in: z.number().optional(),\n session_state: z.string().optional(),\n expires: z.string().optional()\n });\n return {\n callbackParams: oidcCallbackParamsSchema,\n idTokenClaims: idTokenClaimsSchema,\n tokenResponse: tokenResponseSchema\n };\n}\nvar zodValidators = {\n oidcCallbackParams: () => z.object({\n code: z.string(),\n state: z.string().optional(),\n session_state: z.string().optional(),\n error: z.string().optional(),\n error_description: z.string().optional(),\n error_uri: z.string().optional(),\n iss: z.string().optional()\n }),\n idTokenClaims: () => z.object({\n sub: z.string().optional(),\n iss: z.string().optional(),\n aud: z.string().optional(),\n exp: z.number().optional(),\n iat: z.number().optional(),\n sid: z.string().optional(),\n name: z.string().optional(),\n email: z.string().email().optional(),\n preferred_username: z.string().optional(),\n picture: z.string().url().optional()\n }).passthrough(),\n tokenResponse: () => z.object({\n access_token: z.string(),\n id_token: z.string(),\n refresh_token: z.string().optional(),\n token_type: z.string(),\n expires_in: z.number().optional(),\n scope: z.string().optional(),\n refresh_expires_in: z.number().optional(),\n session_state: z.string().optional(),\n expires: z.string().optional()\n }),\n scimUser: () => {\n const nameSchema = z.object({\n formatted: z.string().optional(),\n familyName: z.string().optional(),\n givenName: z.string().optional(),\n middleName: z.string().optional(),\n honorificPrefix: z.string().optional(),\n honorificSuffix: z.string().optional()\n });\n const emailSchema = z.object({\n value: z.string().email(),\n display: z.string().optional(),\n type: z.string().optional(),\n primary: z.boolean().optional()\n });\n const phoneNumberSchema = z.object({\n value: z.string(),\n display: z.string().optional(),\n type: z.string().optional(),\n primary: z.boolean().optional()\n });\n const addressSchema = z.object({\n formatted: z.string().optional(),\n streetAddress: z.string().optional(),\n locality: z.string().optional(),\n region: z.string().optional(),\n postalCode: z.string().optional(),\n country: z.string().optional(),\n type: z.string().optional(),\n primary: z.boolean().optional()\n });\n const groupSchema = z.object({\n value: z.string(),\n $ref: z.string().optional(),\n display: z.string().optional(),\n type: z.string().optional()\n });\n const roleSchema = z.object({\n value: z.string(),\n display: z.string().optional(),\n type: z.string().optional(),\n primary: z.boolean().optional()\n });\n const enterpriseUserSchema = z.object({\n employeeNumber: z.string().optional(),\n costCenter: z.string().optional(),\n organization: z.string().optional(),\n division: z.string().optional(),\n department: z.string().optional(),\n manager: z.object({\n value: z.string().optional(),\n $ref: z.string().optional(),\n displayName: z.string().optional()\n }).optional()\n });\n return z.object({\n id: z.string().optional(),\n externalId: z.string().optional(),\n meta: z.object({\n resourceType: z.string().optional(),\n created: z.string().optional(),\n lastModified: z.string().optional(),\n location: z.string().optional(),\n version: z.string().optional()\n }).optional(),\n userName: z.string(),\n name: nameSchema.optional(),\n displayName: z.string().optional(),\n nickName: z.string().optional(),\n profileUrl: z.string().url().optional(),\n title: z.string().optional(),\n userType: z.string().optional(),\n preferredLanguage: z.string().optional(),\n locale: z.string().optional(),\n timezone: z.string().optional(),\n active: z.boolean().optional(),\n password: z.string().optional(),\n emails: z.array(emailSchema).optional(),\n phoneNumbers: z.array(phoneNumberSchema).optional(),\n ims: z.array(z.object({\n value: z.string(),\n display: z.string().optional(),\n type: z.string().optional(),\n primary: z.boolean().optional()\n })).optional(),\n photos: z.array(z.object({\n value: z.string(),\n display: z.string().optional(),\n type: z.string().optional(),\n primary: z.boolean().optional()\n })).optional(),\n addresses: z.array(addressSchema).optional(),\n groups: z.array(groupSchema).optional(),\n entitlements: z.array(z.object({\n value: z.string(),\n display: z.string().optional(),\n type: z.string().optional(),\n primary: z.boolean().optional()\n })).optional(),\n roles: z.array(roleSchema).optional(),\n x509Certificates: z.array(z.object({\n value: z.string(),\n display: z.string().optional(),\n type: z.string().optional(),\n primary: z.boolean().optional()\n })).optional(),\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\": enterpriseUserSchema.optional(),\n schemas: z.array(z.string()).optional()\n });\n },\n createTenantResponse: () => z.object({\n tenantUrl: z.string().url(),\n status: z.enum([\"pending\", \"processing\", \"completed\", \"failed\"])\n })\n};\nexport {\n zodValidators,\n createZodValidators\n};\n\n//# debugId=8150079BAB5B468764756E2164756E21\n",
|
|
18
|
-
"/**\n * IAM Validation Tests\n *\n * These tests validate that an application correctly implements\n * Enterprise Standard IAM (Identity and Access Management) via SCIM.\n *\n * The core IAM tests validate user management operations. Group management\n * has two optional extensions:\n * - `ext.createGroupsOutboundTests()` - Tests app calling external IAM provider\n * - `ext.createGroupsInboundTests()` - Tests external IAM provider calling app\n */\n\nimport type { IAMValidationConfig, TestDef, ValidationResult, ValidationSuiteResult } from '../types';\nimport { assert, assertValid, createFetcher, runTest, skipTest } from '../utils';\n\n/**\n * Gets a SCIM user validator\n * Requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed\n */\nlet cachedScimUserValidator: any = null;\nlet scimUserValidatorPromise: Promise<any> | null = null;\n\nasync function getScimUserValidator(): Promise<any> {\n if (cachedScimUserValidator) {\n return cachedScimUserValidator;\n }\n\n if (scimUserValidatorPromise) {\n return scimUserValidatorPromise;\n }\n\n scimUserValidatorPromise = (async () => {\n try {\n const { valibotValidators } = await import('@enterprisestandard/react-validators-valibot');\n cachedScimUserValidator = valibotValidators.scimUser();\n return cachedScimUserValidator;\n } catch {\n try {\n const { zodValidators } = await import('@enterprisestandard/react-validators-zod');\n cachedScimUserValidator = zodValidators.scimUser();\n return cachedScimUserValidator;\n } catch (error) {\n throw new Error(\n 'IAM validation requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed. Please install one of these packages.',\n );\n }\n }\n })();\n\n return scimUserValidatorPromise;\n}\n\n/**\n * Gets a SCIM group validator (simple inline validator for minimal required fields)\n */\nfunction getScimGroupValidator(): 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 group = value as Record<string, unknown>;\n const issues: Array<{ message: string; path?: ReadonlyArray<PropertyKey> }> = [];\n\n if (typeof group.id !== 'string') {\n issues.push({ message: 'Expected id to be string', path: ['id'] });\n }\n\n if (typeof group.displayName !== 'string') {\n issues.push({ message: 'Expected displayName to be string', path: ['displayName'] });\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 IAM validation\n */\nconst DEFAULT_CONFIG: Partial<IAMValidationConfig> = {\n scimPath: '/api/iam',\n testUser: {\n userName: 'esv-test-user@example.com',\n displayName: 'ESV Test User',\n emails: [{ value: 'esv-test-user@example.com', primary: true }],\n name: {\n givenName: 'ESV Test',\n familyName: 'User',\n },\n },\n testGroup: {\n displayName: 'ESV Test Group',\n externalId: 'esv-test-group-001',\n },\n};\n\n/**\n * Gets authorization header\n */\nasync function getAuthHeader(config: IAMValidationConfig): Promise<string> {\n // Use es.workload.getToken() for authentication\n // es can be a function (for lazy evaluation) or the instance directly\n const esInstance = typeof config.es === 'function' ? config.es() : config.es;\n if (esInstance === null || esInstance === undefined) {\n throw new Error('IAM tests require es (EnterpriseStandard instance) with workload configured');\n }\n if (!esInstance.workload) {\n throw new Error(\n 'Workload management is required for IAM tests. EnterpriseStandard instance provided but workload is not configured.',\n );\n }\n const token = await esInstance.workload.getToken();\n return `Bearer ${token}`;\n}\n\n/**\n * Test: SCIM Users endpoint returns proper schema\n */\nasync function testUsersEndpointSchema(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('IAM Users Endpoint Schema', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Users`, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\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 SCIM list response structure\n assert(Array.isArray(data.schemas), 'Response missing schemas array');\n assert(\n data.schemas.includes('urn:ietf:params:scim:api:messages:2.0:ListResponse'),\n 'Response missing SCIM ListResponse schema',\n );\n assert(typeof data.totalResults === 'number', 'Response missing totalResults');\n assert(Array.isArray(data.Resources), 'Response missing Resources array');\n\n return {\n details: {\n totalResults: data.totalResults,\n resourceCount: data.Resources.length,\n },\n };\n });\n}\n\n/**\n * Test: SCIM Groups endpoint returns proper schema\n */\nasync function testGroupsEndpointSchema(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('IAM Groups Endpoint Schema', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Groups`, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\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 SCIM list response structure\n assert(Array.isArray(data.schemas), 'Response missing schemas array');\n assert(\n data.schemas.includes('urn:ietf:params:scim:api:messages:2.0:ListResponse'),\n 'Response missing SCIM ListResponse schema',\n );\n\n return {\n details: {\n totalResults: data.totalResults,\n resourceCount: data.Resources?.length ?? 0,\n },\n };\n });\n}\n\n/**\n * Test: Create User (SCIM POST /Users)\n */\nasync function testCreateUser(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult & { userId?: string }> {\n if (!config.testUser) {\n return { ...skipTest('IAM Create User', 'No test user configured'), userId: undefined };\n }\n\n const result = await runTest('IAM Create User', async () => {\n const auth = await getAuthHeader(config);\n const userPayload = {\n schemas: [\n 'urn:ietf:params:scim:schemas:core:2.0:User',\n 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User',\n ],\n ...config.testUser,\n };\n\n const response = await fetch(`${config.scimPath}/Users`, {\n method: 'POST',\n headers: {\n Authorization: auth,\n 'Content-Type': 'application/scim+json',\n Accept: 'application/scim+json',\n },\n body: JSON.stringify(userPayload),\n });\n\n // Should return 201 Created\n assert(response.status === 201, `Expected 201 Created, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have SCIM user structure - validate using validator\n const validator = await getScimUserValidator();\n assertValid(data, validator);\n\n assert(Array.isArray(data.schemas), 'Created user missing schemas array');\n assert(\n data.schemas.includes('urn:ietf:params:scim:schemas:core:2.0:User'),\n 'Created user missing SCIM User schema',\n );\n\n return {\n details: {\n userId: data.id,\n userName: data.userName,\n },\n };\n });\n\n return {\n ...result,\n userId: result.details?.userId as string | undefined,\n };\n}\n\n/**\n * Test: Get User by ID (SCIM GET /Users/{id})\n */\nasync function testGetUser(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n userId: string,\n): Promise<ValidationResult> {\n return runTest('IAM Get User', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Users/${userId}`, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\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 SCIM user structure - validate using validator\n const validator = await getScimUserValidator();\n assertValid(data, validator);\n\n assert(data.id === userId, `User ID mismatch: expected ${userId}, got ${data.id}`);\n\n return {\n details: {\n userId: data.id,\n userName: data.userName,\n },\n };\n });\n}\n\n/**\n * Test: Update User (SCIM PATCH /Users/{id})\n */\nasync function testUpdateUser(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n userId: string,\n): Promise<ValidationResult> {\n return runTest('IAM Update User', async () => {\n const auth = await getAuthHeader(config);\n const patchPayload = {\n schemas: ['urn:ietf:params:scim:api:messages:2.0:PatchOp'],\n Operations: [\n {\n op: 'replace',\n path: 'displayName',\n value: 'ESV Test User (Updated)',\n },\n ],\n };\n\n const response = await fetch(`${config.scimPath}/Users/${userId}`, {\n method: 'PATCH',\n headers: {\n Authorization: auth,\n 'Content-Type': 'application/scim+json',\n Accept: 'application/scim+json',\n },\n body: JSON.stringify(patchPayload),\n });\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 assert(data.displayName === 'ESV Test User (Updated)', `displayName was not updated`);\n\n return {\n details: {\n userId: data.id,\n displayName: data.displayName,\n },\n };\n });\n}\n\n/**\n * Test: Delete User (SCIM DELETE /Users/{id})\n */\nasync function testDeleteUser(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n userId: string,\n): Promise<ValidationResult> {\n return runTest('IAM Delete User', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Users/${userId}`, {\n method: 'DELETE',\n headers: {\n Authorization: auth,\n },\n });\n\n // Should return 204 No Content\n assert(response.status === 204, `Expected 204 No Content, got ${response.status}`);\n\n // Verify user is deleted\n const getResponse = await fetch(`${config.scimPath}/Users/${userId}`, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\n\n assert(getResponse.status === 404, `Expected 404 after deletion, got ${getResponse.status}`);\n\n return {\n details: {\n userId,\n deleted: true,\n },\n };\n });\n}\n\n/**\n * Test: Create Group (SCIM POST /Groups)\n */\nasync function testCreateGroup(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult & { groupId?: string }> {\n if (!config.testGroup) {\n return { ...skipTest('IAM Create Group', 'No test group configured'), groupId: undefined };\n }\n\n const result = await runTest('IAM Create Group', async () => {\n const auth = await getAuthHeader(config);\n const groupPayload = {\n schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],\n ...config.testGroup,\n };\n\n const response = await fetch(`${config.scimPath}/Groups`, {\n method: 'POST',\n headers: {\n Authorization: auth,\n 'Content-Type': 'application/scim+json',\n Accept: 'application/scim+json',\n },\n body: JSON.stringify(groupPayload),\n });\n\n // Should return 201 Created\n assert(response.status === 201, `Expected 201 Created, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have SCIM group structure - validate using validator\n const groupValidator = getScimGroupValidator();\n assertValid(data, groupValidator);\n\n return {\n details: {\n groupId: data.id,\n displayName: data.displayName,\n },\n };\n });\n\n return {\n ...result,\n groupId: result.details?.groupId as string | undefined,\n };\n}\n\n/**\n * Test: Delete Group (SCIM DELETE /Groups/{id})\n */\nasync function testDeleteGroup(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n groupId: string,\n): Promise<ValidationResult> {\n return runTest('IAM Delete Group', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Groups/${groupId}`, {\n method: 'DELETE',\n headers: {\n Authorization: auth,\n },\n });\n\n // Should return 204 No Content\n assert(response.status === 204, `Expected 204 No Content, got ${response.status}`);\n\n return {\n details: {\n groupId,\n deleted: true,\n },\n };\n });\n}\n\n/**\n * Test: Users endpoint requires authentication\n */\nasync function testUsersEndpointRequiresAuth(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('IAM Users Endpoint Requires Authentication', async () => {\n // Try to access Users without auth\n const response = await fetch(`${config.scimPath}/Users`, {\n headers: {\n Accept: 'application/scim+json',\n },\n });\n\n assert(response.status === 401, `Expected 401 Unauthorized for Users, got ${response.status}`);\n\n return {\n details: {\n usersRequiresAuth: true,\n },\n };\n });\n}\n\n/**\n * Test: Groups endpoint requires authentication\n */\nasync function testGroupsEndpointRequiresAuth(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('IAM Groups Endpoint Requires Authentication', async () => {\n // Try to access Groups without auth\n const response = await fetch(`${config.scimPath}/Groups`, {\n headers: {\n Accept: 'application/scim+json',\n },\n });\n\n assert(response.status === 401, `Expected 401 Unauthorized for Groups, got ${response.status}`);\n\n return {\n details: {\n groupsRequiresAuth: true,\n },\n };\n });\n}\n\n/**\n * Runs all IAM validation tests (core user tests + optional groups tests)\n */\nexport async function validateIAM(config: IAMValidationConfig): 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 // Check if we have authentication via es\n // es can be a function (for lazy evaluation) or the instance directly\n const esInstance = typeof config.es === 'function' ? config.es() : config.es;\n if (esInstance === null || esInstance === undefined) {\n return {\n suite: 'IAM',\n passed: false,\n tests: [\n {\n name: 'IAM Configuration',\n passed: false,\n error: 'IAM tests require es (EnterpriseStandard instance) with workload configured',\n duration: 0,\n },\n ],\n duration: 0,\n summary: {\n total: 1,\n passed: 0,\n failed: 1,\n skipped: 0,\n },\n };\n }\n if (!esInstance.workload) {\n return {\n suite: 'IAM',\n passed: false,\n tests: [\n {\n name: 'IAM Configuration',\n passed: false,\n error:\n 'Workload management is required for IAM tests. EnterpriseStandard instance provided but workload is not configured.',\n duration: 0,\n },\n ],\n duration: 0,\n summary: {\n total: 1,\n passed: 0,\n failed: 1,\n skipped: 0,\n },\n };\n }\n\n // Test authentication requirement for Users\n tests.push(await testUsersEndpointRequiresAuth(mergedConfig, fetch));\n\n // Test list Users endpoint\n tests.push(await testUsersEndpointSchema(mergedConfig, fetch));\n\n // Test User CRUD cycle\n const createUserResult = await testCreateUser(mergedConfig, fetch);\n tests.push(createUserResult);\n\n if (createUserResult.passed && createUserResult.userId) {\n tests.push(await testGetUser(mergedConfig, fetch, createUserResult.userId));\n tests.push(await testUpdateUser(mergedConfig, fetch, createUserResult.userId));\n tests.push(await testDeleteUser(mergedConfig, fetch, createUserResult.userId));\n }\n\n // Optional: Test Groups if testGroup is configured\n if (config.testGroup) {\n tests.push(await testGroupsEndpointRequiresAuth(mergedConfig, fetch));\n tests.push(await testGroupsEndpointSchema(mergedConfig, fetch));\n\n const createGroupResult = await testCreateGroup(mergedConfig, fetch);\n tests.push(createGroupResult);\n\n if (createGroupResult.passed && createGroupResult.groupId) {\n tests.push(await testDeleteGroup(mergedConfig, fetch, createGroupResult.groupId));\n }\n }\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: 'IAM',\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 IAM validation.\n *\n * Returns `{ tests, ext }` where:\n * - `tests`: Core user management tests (always run)\n * - `ext`: Extension methods for optional functionality:\n * - `createGroupsOutboundTests()` - Tests app calling external IAM provider\n * - `createGroupsInboundTests()` - Tests external IAM provider calling app\n *\n * @example\n * ```ts\n * describe('IAM', () => {\n * const { tests, ext } = createIAMTests({ ... });\n *\n * // Core user tests\n * tests.forEach(({ name, fn }) => it(name, fn));\n *\n * // Optional: Groups Outbound tests (app -> external IAM)\n * describe('Groups Outbound', () => {\n * ext.createGroupsOutboundTests().forEach(({ name, fn }) => it(name, fn));\n * });\n *\n * // Optional: Groups Inbound tests (external IAM -> app)\n * describe('Groups Inbound', () => {\n * ext.createGroupsInboundTests().forEach(({ name, fn }) => it(name, fn));\n * });\n * });\n * ```\n */\nexport function createIAMTests(config: IAMValidationConfig) {\n const mergedConfig = { ...DEFAULT_CONFIG, ...config };\n const fetch = createFetcher(mergedConfig);\n\n // Store IDs for dependent tests\n let createdUserId: string | undefined;\n let createdGroupIdOutbound: string | undefined;\n let createdGroupIdInbound: string | undefined;\n\n // Core user management tests\n const tests: Array<TestDef> = [\n {\n name: 'users endpoint requires authentication',\n fn: async () => {\n const result = await testUsersEndpointRequiresAuth(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'users endpoint returns proper SCIM schema',\n fn: async () => {\n const result = await testUsersEndpointSchema(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'can create a user',\n fn: async () => {\n const result = await testCreateUser(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n createdUserId = result.userId;\n },\n },\n {\n name: 'can get a user by ID',\n fn: async () => {\n if (!createdUserId) throw new Error('No user ID from create test');\n const result = await testGetUser(mergedConfig, fetch, createdUserId);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'can update a user',\n fn: async () => {\n if (!createdUserId) throw new Error('No user ID from create test');\n const result = await testUpdateUser(mergedConfig, fetch, createdUserId);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'can delete a user',\n fn: async () => {\n if (!createdUserId) throw new Error('No user ID from create test');\n const result = await testDeleteUser(mergedConfig, fetch, createdUserId);\n if (!result.passed) throw new Error(result.error);\n },\n },\n ];\n\n // Extension methods for optional functionality\n const ext = {\n /**\n * Create tests for Groups Outbound extension.\n * Tests app calling external IAM provider to create/manage groups.\n * These tests hit the external IAM's SCIM endpoints (proxied through the app).\n */\n createGroupsOutboundTests: (): Array<TestDef> => [\n {\n name: 'can create a group in external IAM',\n fn: async () => {\n const result = await testCreateGroup(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n createdGroupIdOutbound = result.groupId;\n },\n },\n {\n name: 'can delete a group in external IAM',\n fn: async () => {\n if (!createdGroupIdOutbound) throw new Error('No group ID from create test');\n const result = await testDeleteGroup(mergedConfig, fetch, createdGroupIdOutbound);\n if (!result.passed) throw new Error(result.error);\n },\n },\n ],\n\n /**\n * Create tests for Groups Inbound extension.\n * Tests external IAM provider calling app's SCIM endpoints.\n * These tests simulate an external IAM provider (like SailPoint) pushing group changes to the app.\n */\n createGroupsInboundTests: (): Array<TestDef> => {\n // Use a different path for inbound groups (the app's own SCIM server)\n const inboundPath = config.groupsInboundPath ?? `${config.scimPath}/Groups`;\n\n return [\n {\n name: 'inbound endpoint requires authentication',\n fn: async () => {\n const response = await fetch(inboundPath, {\n headers: {\n Accept: 'application/scim+json',\n },\n });\n if (response.status !== 401) {\n throw new Error(`Expected 401 Unauthorized, got ${response.status}`);\n }\n },\n },\n {\n name: 'inbound endpoint returns proper SCIM schema',\n fn: async () => {\n const auth = await getAuthHeader(mergedConfig);\n const response = await fetch(inboundPath, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\n\n if (response.status !== 200) {\n throw new Error(`Expected 200 OK, got ${response.status}`);\n }\n\n const data = await response.json();\n if (!Array.isArray(data.schemas)) {\n throw new Error('Response missing schemas array');\n }\n if (!data.schemas.includes('urn:ietf:params:scim:api:messages:2.0:ListResponse')) {\n throw new Error('Response missing SCIM ListResponse schema');\n }\n },\n },\n {\n name: 'can receive group creation from IAM provider',\n fn: async () => {\n const auth = await getAuthHeader(mergedConfig);\n const groupPayload = {\n schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],\n displayName: 'ESV Inbound Test Group',\n externalId: 'esv-inbound-test-group-001',\n };\n\n const response = await fetch(inboundPath, {\n method: 'POST',\n headers: {\n Authorization: auth,\n 'Content-Type': 'application/scim+json',\n Accept: 'application/scim+json',\n },\n body: JSON.stringify(groupPayload),\n });\n\n if (response.status !== 201) {\n throw new Error(`Expected 201 Created, got ${response.status}`);\n }\n\n const data = await response.json();\n if (!data.id || !data.displayName) {\n throw new Error('Created group missing id or displayName');\n }\n createdGroupIdInbound = data.id;\n },\n },\n {\n name: 'can receive group deletion from IAM provider',\n fn: async () => {\n if (!createdGroupIdInbound) throw new Error('No group ID from create test');\n const auth = await getAuthHeader(mergedConfig);\n\n const response = await fetch(`${inboundPath}/${createdGroupIdInbound}`, {\n method: 'DELETE',\n headers: {\n Authorization: auth,\n },\n });\n\n if (response.status !== 204) {\n throw new Error(`Expected 204 No Content, got ${response.status}`);\n }\n },\n },\n ];\n },\n };\n\n return { tests, ext };\n}\n\nexport type { IAMValidationConfig };\n",
|
|
18
|
+
"/**\n * IAM Validation Tests\n *\n * These tests validate that an application correctly implements\n * Enterprise Standard IAM (Identity and Access Management) via SCIM.\n *\n * The core IAM tests validate user management operations. Group management\n * has two optional extensions:\n * - `ext.createGroupsOutboundTests()` - Tests app calling external IAM provider\n * - `ext.createGroupsInboundTests()` - Tests external IAM provider calling app\n */\n\nimport type { IAMValidationConfig, TestDef, ValidationResult, ValidationSuiteResult } from '../types';\nimport { assert, assertValid, createFetcher, runTest, skipTest } from '../utils';\n\n/**\n * Gets a SCIM user validator\n * Requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed\n */\nlet cachedScimUserValidator: any = null;\nlet scimUserValidatorPromise: Promise<any> | null = null;\n\nasync function getScimUserValidator(): Promise<any> {\n if (cachedScimUserValidator) {\n return cachedScimUserValidator;\n }\n\n if (scimUserValidatorPromise) {\n return scimUserValidatorPromise;\n }\n\n scimUserValidatorPromise = (async () => {\n try {\n const { valibotValidators } = await import('@enterprisestandard/react-validators-valibot');\n cachedScimUserValidator = valibotValidators.scimUser();\n return cachedScimUserValidator;\n } catch {\n try {\n const { zodValidators } = await import('@enterprisestandard/react-validators-zod');\n cachedScimUserValidator = zodValidators.scimUser();\n return cachedScimUserValidator;\n } catch (_error) {\n throw new Error(\n 'IAM validation requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed. Please install one of these packages.',\n );\n }\n }\n })();\n\n return scimUserValidatorPromise;\n}\n\n/**\n * Gets a SCIM group validator (simple inline validator for minimal required fields)\n */\nfunction getScimGroupValidator(): 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 group = value as Record<string, unknown>;\n const issues: Array<{ message: string; path?: ReadonlyArray<PropertyKey> }> = [];\n\n if (typeof group.id !== 'string') {\n issues.push({ message: 'Expected id to be string', path: ['id'] });\n }\n\n if (typeof group.displayName !== 'string') {\n issues.push({ message: 'Expected displayName to be string', path: ['displayName'] });\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 IAM validation\n */\nconst DEFAULT_CONFIG: Partial<IAMValidationConfig> = {\n scimPath: '/api/iam',\n testUser: {\n userName: 'esv-test-user@example.com',\n displayName: 'ESV Test User',\n emails: [{ value: 'esv-test-user@example.com', primary: true }],\n name: {\n givenName: 'ESV Test',\n familyName: 'User',\n },\n },\n testGroup: {\n displayName: 'ESV Test Group',\n externalId: 'esv-test-group-001',\n },\n};\n\n/**\n * Gets authorization header\n */\nasync function getAuthHeader(config: IAMValidationConfig): Promise<string> {\n // Use es.workload.getToken() for authentication\n // es can be a function (for lazy evaluation) or the instance directly\n const esInstance = typeof config.es === 'function' ? config.es() : config.es;\n if (esInstance === null || esInstance === undefined) {\n throw new Error('IAM tests require es (EnterpriseStandard instance) with workload configured');\n }\n if (!esInstance.workload) {\n throw new Error(\n 'Workload management is required for IAM tests. EnterpriseStandard instance provided but workload is not configured.',\n );\n }\n const token = await esInstance.workload.getToken();\n return `Bearer ${token}`;\n}\n\n/**\n * Test: SCIM Users endpoint returns proper schema\n */\nasync function testUsersEndpointSchema(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('IAM Users Endpoint Schema', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Users`, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\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 SCIM list response structure\n assert(Array.isArray(data.schemas), 'Response missing schemas array');\n assert(\n data.schemas.includes('urn:ietf:params:scim:api:messages:2.0:ListResponse'),\n 'Response missing SCIM ListResponse schema',\n );\n assert(typeof data.totalResults === 'number', 'Response missing totalResults');\n assert(Array.isArray(data.Resources), 'Response missing Resources array');\n\n return {\n details: {\n totalResults: data.totalResults,\n resourceCount: data.Resources.length,\n },\n };\n });\n}\n\n/**\n * Test: SCIM Groups endpoint returns proper schema\n */\nasync function testGroupsEndpointSchema(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('IAM Groups Endpoint Schema', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Groups`, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\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 SCIM list response structure\n assert(Array.isArray(data.schemas), 'Response missing schemas array');\n assert(\n data.schemas.includes('urn:ietf:params:scim:api:messages:2.0:ListResponse'),\n 'Response missing SCIM ListResponse schema',\n );\n\n return {\n details: {\n totalResults: data.totalResults,\n resourceCount: data.Resources?.length ?? 0,\n },\n };\n });\n}\n\n/**\n * Test: Create User (SCIM POST /Users)\n */\nasync function testCreateUser(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult & { userId?: string }> {\n if (!config.testUser) {\n return { ...skipTest('IAM Create User', 'No test user configured'), userId: undefined };\n }\n\n const result = await runTest('IAM Create User', async () => {\n const auth = await getAuthHeader(config);\n const userPayload = {\n schemas: [\n 'urn:ietf:params:scim:schemas:core:2.0:User',\n 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User',\n ],\n ...config.testUser,\n };\n\n const response = await fetch(`${config.scimPath}/Users`, {\n method: 'POST',\n headers: {\n Authorization: auth,\n 'Content-Type': 'application/scim+json',\n Accept: 'application/scim+json',\n },\n body: JSON.stringify(userPayload),\n });\n\n // Should return 201 Created\n assert(response.status === 201, `Expected 201 Created, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have SCIM user structure - validate using validator\n const validator = await getScimUserValidator();\n assertValid(data, validator);\n\n assert(Array.isArray(data.schemas), 'Created user missing schemas array');\n assert(\n data.schemas.includes('urn:ietf:params:scim:schemas:core:2.0:User'),\n 'Created user missing SCIM User schema',\n );\n\n return {\n details: {\n userId: data.id,\n userName: data.userName,\n },\n };\n });\n\n return {\n ...result,\n userId: result.details?.userId as string | undefined,\n };\n}\n\n/**\n * Test: Get User by ID (SCIM GET /Users/{id})\n */\nasync function testGetUser(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n userId: string,\n): Promise<ValidationResult> {\n return runTest('IAM Get User', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Users/${userId}`, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\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 SCIM user structure - validate using validator\n const validator = await getScimUserValidator();\n assertValid(data, validator);\n\n assert(data.id === userId, `User ID mismatch: expected ${userId}, got ${data.id}`);\n\n return {\n details: {\n userId: data.id,\n userName: data.userName,\n },\n };\n });\n}\n\n/**\n * Test: Update User (SCIM PATCH /Users/{id})\n */\nasync function testUpdateUser(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n userId: string,\n): Promise<ValidationResult> {\n return runTest('IAM Update User', async () => {\n const auth = await getAuthHeader(config);\n const patchPayload = {\n schemas: ['urn:ietf:params:scim:api:messages:2.0:PatchOp'],\n Operations: [\n {\n op: 'replace',\n path: 'displayName',\n value: 'ESV Test User (Updated)',\n },\n ],\n };\n\n const response = await fetch(`${config.scimPath}/Users/${userId}`, {\n method: 'PATCH',\n headers: {\n Authorization: auth,\n 'Content-Type': 'application/scim+json',\n Accept: 'application/scim+json',\n },\n body: JSON.stringify(patchPayload),\n });\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 assert(data.displayName === 'ESV Test User (Updated)', `displayName was not updated`);\n\n return {\n details: {\n userId: data.id,\n displayName: data.displayName,\n },\n };\n });\n}\n\n/**\n * Test: Delete User (SCIM DELETE /Users/{id})\n */\nasync function testDeleteUser(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n userId: string,\n): Promise<ValidationResult> {\n return runTest('IAM Delete User', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Users/${userId}`, {\n method: 'DELETE',\n headers: {\n Authorization: auth,\n },\n });\n\n // Should return 204 No Content\n assert(response.status === 204, `Expected 204 No Content, got ${response.status}`);\n\n // Verify user is deleted\n const getResponse = await fetch(`${config.scimPath}/Users/${userId}`, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\n\n assert(getResponse.status === 404, `Expected 404 after deletion, got ${getResponse.status}`);\n\n return {\n details: {\n userId,\n deleted: true,\n },\n };\n });\n}\n\n/**\n * Test: Create Group (SCIM POST /Groups)\n */\nasync function testCreateGroup(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult & { groupId?: string }> {\n if (!config.testGroup) {\n return { ...skipTest('IAM Create Group', 'No test group configured'), groupId: undefined };\n }\n\n const result = await runTest('IAM Create Group', async () => {\n const auth = await getAuthHeader(config);\n const groupPayload = {\n schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],\n ...config.testGroup,\n };\n\n const response = await fetch(`${config.scimPath}/Groups`, {\n method: 'POST',\n headers: {\n Authorization: auth,\n 'Content-Type': 'application/scim+json',\n Accept: 'application/scim+json',\n },\n body: JSON.stringify(groupPayload),\n });\n\n // Should return 201 Created\n assert(response.status === 201, `Expected 201 Created, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have SCIM group structure - validate using validator\n const groupValidator = getScimGroupValidator();\n assertValid(data, groupValidator);\n\n return {\n details: {\n groupId: data.id,\n displayName: data.displayName,\n },\n };\n });\n\n return {\n ...result,\n groupId: result.details?.groupId as string | undefined,\n };\n}\n\n/**\n * Test: Delete Group (SCIM DELETE /Groups/{id})\n */\nasync function testDeleteGroup(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n groupId: string,\n): Promise<ValidationResult> {\n return runTest('IAM Delete Group', async () => {\n const auth = await getAuthHeader(config);\n const response = await fetch(`${config.scimPath}/Groups/${groupId}`, {\n method: 'DELETE',\n headers: {\n Authorization: auth,\n },\n });\n\n // Should return 204 No Content\n assert(response.status === 204, `Expected 204 No Content, got ${response.status}`);\n\n return {\n details: {\n groupId,\n deleted: true,\n },\n };\n });\n}\n\n/**\n * Test: Users endpoint requires authentication\n */\nasync function testUsersEndpointRequiresAuth(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('IAM Users Endpoint Requires Authentication', async () => {\n // Try to access Users without auth\n const response = await fetch(`${config.scimPath}/Users`, {\n headers: {\n Accept: 'application/scim+json',\n },\n });\n\n assert(response.status === 401, `Expected 401 Unauthorized for Users, got ${response.status}`);\n\n return {\n details: {\n usersRequiresAuth: true,\n },\n };\n });\n}\n\n/**\n * Test: Groups endpoint requires authentication\n */\nasync function testGroupsEndpointRequiresAuth(\n config: IAMValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('IAM Groups Endpoint Requires Authentication', async () => {\n // Try to access Groups without auth\n const response = await fetch(`${config.scimPath}/Groups`, {\n headers: {\n Accept: 'application/scim+json',\n },\n });\n\n assert(response.status === 401, `Expected 401 Unauthorized for Groups, got ${response.status}`);\n\n return {\n details: {\n groupsRequiresAuth: true,\n },\n };\n });\n}\n\n/**\n * Runs all IAM validation tests (core user tests + optional groups tests)\n */\nexport async function validateIAM(config: IAMValidationConfig): 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 // Check if we have authentication via es\n // es can be a function (for lazy evaluation) or the instance directly\n const esInstance = typeof config.es === 'function' ? config.es() : config.es;\n if (esInstance === null || esInstance === undefined) {\n return {\n suite: 'IAM',\n passed: false,\n tests: [\n {\n name: 'IAM Configuration',\n passed: false,\n error: 'IAM tests require es (EnterpriseStandard instance) with workload configured',\n duration: 0,\n },\n ],\n duration: 0,\n summary: {\n total: 1,\n passed: 0,\n failed: 1,\n skipped: 0,\n },\n };\n }\n if (!esInstance.workload) {\n return {\n suite: 'IAM',\n passed: false,\n tests: [\n {\n name: 'IAM Configuration',\n passed: false,\n error:\n 'Workload management is required for IAM tests. EnterpriseStandard instance provided but workload is not configured.',\n duration: 0,\n },\n ],\n duration: 0,\n summary: {\n total: 1,\n passed: 0,\n failed: 1,\n skipped: 0,\n },\n };\n }\n\n // Test authentication requirement for Users\n tests.push(await testUsersEndpointRequiresAuth(mergedConfig, fetch));\n\n // Test list Users endpoint\n tests.push(await testUsersEndpointSchema(mergedConfig, fetch));\n\n // Test User CRUD cycle\n const createUserResult = await testCreateUser(mergedConfig, fetch);\n tests.push(createUserResult);\n\n if (createUserResult.passed && createUserResult.userId) {\n tests.push(await testGetUser(mergedConfig, fetch, createUserResult.userId));\n tests.push(await testUpdateUser(mergedConfig, fetch, createUserResult.userId));\n tests.push(await testDeleteUser(mergedConfig, fetch, createUserResult.userId));\n }\n\n // Optional: Test Groups if testGroup is configured\n if (config.testGroup) {\n tests.push(await testGroupsEndpointRequiresAuth(mergedConfig, fetch));\n tests.push(await testGroupsEndpointSchema(mergedConfig, fetch));\n\n const createGroupResult = await testCreateGroup(mergedConfig, fetch);\n tests.push(createGroupResult);\n\n if (createGroupResult.passed && createGroupResult.groupId) {\n tests.push(await testDeleteGroup(mergedConfig, fetch, createGroupResult.groupId));\n }\n }\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: 'IAM',\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 IAM validation.\n *\n * Returns `{ tests, ext }` where:\n * - `tests`: Core user management tests (always run)\n * - `ext`: Extension methods for optional functionality:\n * - `createGroupsOutboundTests()` - Tests app calling external IAM provider\n * - `createGroupsInboundTests()` - Tests external IAM provider calling app\n *\n * @example\n * ```ts\n * describe('IAM', () => {\n * const { tests, ext } = createIAMTests({ ... });\n *\n * // Core user tests\n * tests.forEach(({ name, fn }) => it(name, fn));\n *\n * // Optional: Groups Outbound tests (app -> external IAM)\n * describe('Groups Outbound', () => {\n * ext.createGroupsOutboundTests().forEach(({ name, fn }) => it(name, fn));\n * });\n *\n * // Optional: Groups Inbound tests (external IAM -> app)\n * describe('Groups Inbound', () => {\n * ext.createGroupsInboundTests().forEach(({ name, fn }) => it(name, fn));\n * });\n * });\n * ```\n */\nexport function createIAMTests(config: IAMValidationConfig) {\n const mergedConfig = { ...DEFAULT_CONFIG, ...config };\n const fetch = createFetcher(mergedConfig);\n\n // Store IDs for dependent tests\n let createdUserId: string | undefined;\n let createdGroupIdOutbound: string | undefined;\n let createdGroupIdInbound: string | undefined;\n\n // Core user management tests\n const tests: Array<TestDef> = [\n {\n name: 'users endpoint requires authentication',\n fn: async () => {\n const result = await testUsersEndpointRequiresAuth(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'users endpoint returns proper SCIM schema',\n fn: async () => {\n const result = await testUsersEndpointSchema(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'can create a user',\n fn: async () => {\n const result = await testCreateUser(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n createdUserId = result.userId;\n },\n },\n {\n name: 'can get a user by ID',\n fn: async () => {\n if (!createdUserId) throw new Error('No user ID from create test');\n const result = await testGetUser(mergedConfig, fetch, createdUserId);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'can update a user',\n fn: async () => {\n if (!createdUserId) throw new Error('No user ID from create test');\n const result = await testUpdateUser(mergedConfig, fetch, createdUserId);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'can delete a user',\n fn: async () => {\n if (!createdUserId) throw new Error('No user ID from create test');\n const result = await testDeleteUser(mergedConfig, fetch, createdUserId);\n if (!result.passed) throw new Error(result.error);\n },\n },\n ];\n\n // Extension methods for optional functionality\n const ext = {\n /**\n * Create tests for Groups Outbound extension.\n * Tests app calling external IAM provider to create/manage groups.\n * These tests hit the external IAM's SCIM endpoints (proxied through the app).\n */\n createGroupsOutboundTests: (): Array<TestDef> => [\n {\n name: 'can create a group in external IAM',\n fn: async () => {\n const result = await testCreateGroup(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n createdGroupIdOutbound = result.groupId;\n },\n },\n {\n name: 'can delete a group in external IAM',\n fn: async () => {\n if (!createdGroupIdOutbound) throw new Error('No group ID from create test');\n const result = await testDeleteGroup(mergedConfig, fetch, createdGroupIdOutbound);\n if (!result.passed) throw new Error(result.error);\n },\n },\n ],\n\n /**\n * Create tests for Groups Inbound extension.\n * Tests external IAM provider calling app's SCIM endpoints.\n * These tests simulate an external IAM provider (like SailPoint) pushing group changes to the app.\n */\n createGroupsInboundTests: (): Array<TestDef> => {\n // Use a different path for inbound groups (the app's own SCIM server)\n const inboundPath = config.groupsInboundPath ?? `${config.scimPath}/Groups`;\n\n return [\n {\n name: 'inbound endpoint requires authentication',\n fn: async () => {\n const response = await fetch(inboundPath, {\n headers: {\n Accept: 'application/scim+json',\n },\n });\n if (response.status !== 401) {\n throw new Error(`Expected 401 Unauthorized, got ${response.status}`);\n }\n },\n },\n {\n name: 'inbound endpoint returns proper SCIM schema',\n fn: async () => {\n const auth = await getAuthHeader(mergedConfig);\n const response = await fetch(inboundPath, {\n headers: {\n Authorization: auth,\n Accept: 'application/scim+json',\n },\n });\n\n if (response.status !== 200) {\n throw new Error(`Expected 200 OK, got ${response.status}`);\n }\n\n const data = await response.json();\n if (!Array.isArray(data.schemas)) {\n throw new Error('Response missing schemas array');\n }\n if (!data.schemas.includes('urn:ietf:params:scim:api:messages:2.0:ListResponse')) {\n throw new Error('Response missing SCIM ListResponse schema');\n }\n },\n },\n {\n name: 'can receive group creation from IAM provider',\n fn: async () => {\n const auth = await getAuthHeader(mergedConfig);\n const groupPayload = {\n schemas: ['urn:ietf:params:scim:schemas:core:2.0:Group'],\n displayName: 'ESV Inbound Test Group',\n externalId: 'esv-inbound-test-group-001',\n };\n\n const response = await fetch(inboundPath, {\n method: 'POST',\n headers: {\n Authorization: auth,\n 'Content-Type': 'application/scim+json',\n Accept: 'application/scim+json',\n },\n body: JSON.stringify(groupPayload),\n });\n\n if (response.status !== 201) {\n throw new Error(`Expected 201 Created, got ${response.status}`);\n }\n\n const data = await response.json();\n if (!data.id || !data.displayName) {\n throw new Error('Created group missing id or displayName');\n }\n createdGroupIdInbound = data.id;\n },\n },\n {\n name: 'can receive group deletion from IAM provider',\n fn: async () => {\n if (!createdGroupIdInbound) throw new Error('No group ID from create test');\n const auth = await getAuthHeader(mergedConfig);\n\n const response = await fetch(`${inboundPath}/${createdGroupIdInbound}`, {\n method: 'DELETE',\n headers: {\n Authorization: auth,\n },\n });\n\n if (response.status !== 204) {\n throw new Error(`Expected 204 No Content, got ${response.status}`);\n }\n },\n },\n ];\n },\n };\n\n return { tests, ext };\n}\n\nexport type { IAMValidationConfig };\n",
|
|
19
19
|
"/**\n * SSO Validation Tests\n *\n * These tests validate that an application correctly implements\n * Enterprise Standard SSO (Single Sign-On) functionality.\n */\n\nimport type { SSOValidationConfig, TestDef, ValidationResult, ValidationSuiteResult } from '../types';\nimport { assert, buildCookieHeader, createFetcher, parseCookies, runTest, skipTest } from '../utils';\n\n/**\n * Default configuration for SSO validation\n */\nconst DEFAULT_CONFIG: Partial<SSOValidationConfig> = {\n loginPath: '/api/auth/login',\n callbackPath: '/api/auth/callback',\n userPath: '/api/auth/user',\n logoutPath: '/api/auth/logout',\n backChannelLogoutPath: '/api/auth/logout/backchannel',\n tokenPath: '/api/auth/token',\n refreshPath: '/api/auth/refresh',\n};\n\n/**\n * Test: Login endpoint exists and redirects to authorization URL\n */\nasync function testLoginEndpoint(\n config: SSOValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('SSO Login Endpoint', async () => {\n const response = await fetch(config.loginPath!);\n\n // Should return a redirect (302)\n assert(response.status === 302, `Expected 302 redirect, got ${response.status}`);\n\n // Should have a Location header pointing to the authorization URL\n const location = response.headers.get('Location');\n assert(location !== null, 'Missing Location header in redirect');\n\n // If an expected pattern is provided, validate the URL\n if (config.expectedAuthorizationUrlPattern) {\n assert(\n config.expectedAuthorizationUrlPattern.test(location),\n `Authorization URL does not match expected pattern: ${location}`,\n );\n }\n\n // Should have required OIDC parameters\n const url = new URL(location);\n assert(url.searchParams.has('client_id'), 'Missing client_id in authorization URL');\n assert(url.searchParams.has('redirect_uri'), 'Missing redirect_uri in authorization URL');\n assert(url.searchParams.has('response_type'), 'Missing response_type in authorization URL');\n assert(url.searchParams.has('scope'), 'Missing scope in authorization URL');\n assert(url.searchParams.has('state'), 'Missing state in authorization URL');\n assert(url.searchParams.has('code_challenge'), 'Missing code_challenge (PKCE) in authorization URL');\n assert(url.searchParams.has('code_challenge_method'), 'Missing code_challenge_method (PKCE) in authorization URL');\n\n // Should set a state cookie\n const cookies = parseCookies(response.headers);\n const hasStateCookie = Array.from(cookies.keys()).some((name) => name.includes('.state'));\n assert(hasStateCookie, 'Missing state cookie in response');\n\n return {\n details: {\n authorizationUrl: location,\n pkceEnabled: true,\n stateParameter: url.searchParams.get('state'),\n },\n };\n });\n}\n\n/**\n * Test: User endpoint returns 401 when not authenticated\n */\nasync function testUserEndpointUnauthenticated(\n config: SSOValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('SSO User Endpoint (Unauthenticated)', async () => {\n const response = await fetch(config.userPath!);\n\n // Should return 401 Unauthorized\n assert(response.status === 401, `Expected 401 Unauthorized, got ${response.status}`);\n\n return {\n details: {\n status: response.status,\n },\n };\n });\n}\n\n/**\n * Test: Logout endpoint clears cookies\n */\nasync function testLogoutEndpoint(\n config: SSOValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('SSO Logout Endpoint', async () => {\n const response = await fetch(`${config.logoutPath!}?redirect=/`);\n\n // Should return 302 redirect (with redirect param) or 200\n assert(response.status === 302 || response.status === 200, `Expected 302 or 200, got ${response.status}`);\n\n // Should clear cookies\n const cookies = parseCookies(response.headers);\n const clearedCookies: string[] = [];\n\n for (const [name, value] of cookies.entries()) {\n // Check if the cookie is being cleared (Max-Age=0 or empty value)\n if (value === '' || value.includes('Max-Age=0')) {\n clearedCookies.push(name);\n }\n }\n\n // Check for standard SSO cookies being cleared\n const setCookieHeaders = response.headers.getSetCookie?.() ?? [];\n const hasExpiredCookies = setCookieHeaders.some(\n (cookie) => cookie.includes('Max-Age=0') || cookie.includes('expires=Thu, 01 Jan 1970'),\n );\n\n assert(\n hasExpiredCookies || clearedCookies.length > 0 || setCookieHeaders.length === 0,\n 'Logout should clear session cookies',\n );\n\n return {\n details: {\n status: response.status,\n clearedCookies,\n },\n };\n });\n}\n\n/**\n * Test: Back-channel logout endpoint exists\n */\nasync function testBackChannelLogoutEndpoint(\n config: SSOValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('SSO Back-Channel Logout Endpoint', async () => {\n // Send a POST request without a valid logout token\n // The endpoint should exist and return 400 (bad request) for missing token\n const response = await fetch(config.backChannelLogoutPath!, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: '',\n });\n\n // Should return 400 (missing logout_token) or 200 (if session store not configured)\n assert(\n response.status === 400 || response.status === 200 || response.status === 404,\n `Expected 400 or 200, got ${response.status}`,\n );\n\n return {\n details: {\n status: response.status,\n endpointExists: response.status !== 404,\n },\n };\n });\n}\n\n/**\n * Test: Callback endpoint returns error without valid code\n */\nasync function testCallbackEndpointInvalid(\n config: SSOValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('SSO Callback Endpoint (Invalid)', async () => {\n // Send a callback request without proper state/code\n const response = await fetch(`${config.callbackPath!}?code=invalid&state=invalid`);\n\n // Should return 400 or 500 (validation error)\n assert(response.status >= 400, `Expected error status for invalid callback, got ${response.status}`);\n\n return {\n details: {\n status: response.status,\n handlesInvalidCallback: true,\n },\n };\n });\n}\n\n/**\n * Test: Token endpoint returns 401 when not authenticated\n */\nasync function testTokenEndpointUnauthenticated(\n config: SSOValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n if (!config.tokenPath) {\n return skipTest('SSO Token Endpoint (Unauthenticated)', 'Token path not configured');\n }\n\n return runTest('SSO Token Endpoint (Unauthenticated)', async () => {\n const response = await fetch(config.tokenPath!);\n\n // Should return 401 Unauthorized\n assert(\n response.status === 401 || response.status === 404,\n `Expected 401 Unauthorized or 404, got ${response.status}`,\n );\n\n return {\n details: {\n status: response.status,\n },\n };\n });\n}\n\n/**\n * Test: Refresh endpoint returns 401 when not authenticated\n */\nasync function testRefreshEndpointUnauthenticated(\n config: SSOValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n if (!config.refreshPath) {\n return skipTest('SSO Refresh Endpoint (Unauthenticated)', 'Refresh path not configured');\n }\n\n return runTest('SSO Refresh Endpoint (Unauthenticated)', async () => {\n const response = await fetch(config.refreshPath!);\n\n // Should return 401 Unauthorized\n assert(\n response.status === 401 || response.status === 404,\n `Expected 401 Unauthorized or 404, got ${response.status}`,\n );\n\n return {\n details: {\n status: response.status,\n },\n };\n });\n}\n\n/**\n * Helper: Complete a full SSO login flow through the mock server\n *\n * Returns the cookies set after successful authentication\n */\nasync function completeLoginFlow(\n config: SSOValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<{ cookies: Map<string, string>; success: boolean; error?: string }> {\n try {\n // Step 1: Hit the login endpoint to get the authorization redirect\n const loginResponse = await fetch(config.loginPath!);\n\n if (loginResponse.status !== 302) {\n return { cookies: new Map(), success: false, error: `Login did not redirect: ${loginResponse.status}` };\n }\n\n const authUrl = loginResponse.headers.get('Location');\n if (!authUrl) {\n return { cookies: new Map(), success: false, error: 'No redirect location from login' };\n }\n\n // Collect cookies from login response (includes state cookie)\n const loginCookies = parseCookies(loginResponse.headers);\n\n // Step 2: Follow the redirect to the authorization endpoint (mock server auto-authenticates)\n const authResponse = await globalThis.fetch(authUrl, { redirect: 'manual' });\n\n if (authResponse.status !== 302) {\n return { cookies: new Map(), success: false, error: `Auth did not redirect: ${authResponse.status}` };\n }\n\n const callbackUrl = authResponse.headers.get('Location');\n if (!callbackUrl) {\n return { cookies: new Map(), success: false, error: 'No redirect location from auth' };\n }\n\n // Step 3: Complete the callback with the authorization code\n // Extract just the path and query from the callback URL\n const callbackPath = new URL(callbackUrl).pathname + new URL(callbackUrl).search;\n\n const callbackResponse = await fetch(callbackPath, {\n headers: {\n Cookie: buildCookieHeader(loginCookies),\n },\n });\n\n // Should redirect to landing page on success\n if (callbackResponse.status !== 302) {\n return { cookies: new Map(), success: false, error: `Callback did not redirect: ${callbackResponse.status}` };\n }\n\n // Collect all cookies from the callback response\n const allCookies = parseCookies(callbackResponse.headers);\n\n return { cookies: allCookies, success: true };\n } catch (error) {\n return { cookies: new Map(), success: false, error: error instanceof Error ? error.message : String(error) };\n }\n}\n\n/**\n * Test: JIT user provisioning works when enabled\n *\n * This test completes a full SSO flow and verifies the user is authenticated.\n * The actual JIT provisioning behavior depends on the server configuration.\n */\nasync function testJitUserProvisioningFlow(\n config: SSOValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('SSO JIT User Provisioning Flow', async () => {\n // Complete the full login flow\n const { cookies, success, error } = await completeLoginFlow(config, fetch);\n\n assert(success, error || 'Login flow failed');\n\n // Verify we got authentication cookies\n const hasAuthCookies = Array.from(cookies.keys()).some((name) => name.includes('.access') || name.includes('.id'));\n assert(hasAuthCookies, 'No authentication cookies set after login');\n\n // Verify we can now access the user endpoint\n const userResponse = await fetch(config.userPath!, {\n headers: {\n Cookie: buildCookieHeader(cookies),\n },\n });\n\n assert(userResponse.status === 200, `User endpoint returned ${userResponse.status} after login, expected 200`);\n\n const userData = await userResponse.json();\n assert(userData.id, 'User data missing id field');\n\n return {\n details: {\n userId: userData.id,\n userName: userData.userName,\n email: userData.email,\n jitFlowCompleted: true,\n },\n };\n });\n}\n\n/**\n * Runs all SSO validation tests\n */\nexport async function validateSSO(config: SSOValidationConfig): 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 // Run all tests\n tests.push(await testLoginEndpoint(mergedConfig, fetch));\n tests.push(await testUserEndpointUnauthenticated(mergedConfig, fetch));\n tests.push(await testLogoutEndpoint(mergedConfig, fetch));\n tests.push(await testBackChannelLogoutEndpoint(mergedConfig, fetch));\n tests.push(await testCallbackEndpointInvalid(mergedConfig, fetch));\n tests.push(await testTokenEndpointUnauthenticated(mergedConfig, fetch));\n tests.push(await testRefreshEndpointUnauthenticated(mergedConfig, fetch));\n tests.push(await testJitUserProvisioningFlow(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: 'SSO',\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 SSO validation\n */\nexport function createSSOTests(config: SSOValidationConfig) {\n const mergedConfig = { ...DEFAULT_CONFIG, ...config };\n const fetch = createFetcher(mergedConfig);\n\n // Core/mandatory SSO tests\n const tests: Array<TestDef> = [\n {\n name: 'login endpoint redirects to authorization URL',\n fn: async () => {\n const result = await testLoginEndpoint(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'user endpoint returns 401 when unauthenticated',\n fn: async () => {\n const result = await testUserEndpointUnauthenticated(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'callback endpoint rejects invalid requests',\n fn: async () => {\n const result = await testCallbackEndpointInvalid(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'token endpoint returns 401 when unauthenticated',\n fn: async () => {\n const result = await testTokenEndpointUnauthenticated(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'refresh endpoint returns 401 when unauthenticated',\n fn: async () => {\n const result = await testRefreshEndpointUnauthenticated(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n ];\n\n // Extension methods for optional functionality\n const ext = {\n createJITTests: (): Array<TestDef> => [\n {\n name: 'user provisioning flow completes successfully',\n fn: async () => {\n const result = await testJitUserProvisioningFlow(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n ],\n createLogoutTests: (): Array<TestDef> => [\n {\n name: 'logout endpoint clears cookies',\n fn: async () => {\n const result = await testLogoutEndpoint(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n ],\n createBackChannelLogoutTests: (): Array<TestDef> => [\n {\n name: 'endpoint exists',\n fn: async () => {\n const result = await testBackChannelLogoutEndpoint(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n ],\n };\n\n return { tests, ext };\n}\n\nexport type { SSOValidationConfig };\n",
|
|
20
|
-
"/**\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",
|
|
21
|
-
"/**\n * Tenant Validation Tests\n *\n * These tests validate that an application correctly implements\n * Enterprise Standard Tenant Management functionality.\n */\n\nimport type { TenantValidationConfig, TestDef, ValidationResult, ValidationSuiteResult } from '../types';\nimport { assert, assertValid, createFetcher, runTest } from '../utils';\n\n/**\n * Gets a tenant response validator\n * Requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed\n * Uses a cached validator to avoid repeated imports\n */\nlet cachedValidator: any = null;\nlet validatorPromise: Promise<any> | null = null;\n\nasync function getTenantResponseValidator(): Promise<any> {\n // Return cached validator if available\n if (cachedValidator) {\n return cachedValidator;\n }\n\n // If we're already loading, return the existing promise\n if (validatorPromise) {\n return validatorPromise;\n }\n\n // Start loading the validator\n validatorPromise = (async () => {\n // Try valibot first\n try {\n const { valibotValidators } = await import('@enterprisestandard/react-validators-valibot');\n cachedValidator = valibotValidators.createTenantResponse();\n return cachedValidator;\n } catch {\n // Fall back to zod\n try {\n const { zodValidators } = await import('@enterprisestandard/react-validators-zod');\n cachedValidator = zodValidators.createTenantResponse();\n return cachedValidator;\n } catch (error) {\n throw new Error(\n 'Tenant validation requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed. Please install one of these packages.',\n );\n }\n }\n })();\n\n return validatorPromise;\n}\n\n/**\n * Default configuration for Tenant validation\n */\nconst DEFAULT_CONFIG: Partial<TenantValidationConfig> = {\n tenantPath: '/api/tenant',\n};\n\n/**\n * Test: Tenant creation endpoint returns valid response structure\n */\nasync function testCreateTenantResponseShape(\n config: TenantValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n tenantData: TenantValidationConfig['testTenantData'],\n webhookUrl?: string,\n): Promise<ValidationResult & { response?: unknown; tenantUrl?: string; status?: string }> {\n const result = await runTest('Tenant Creation Response Shape', async () => {\n if (!tenantData) {\n return {\n details: {\n skipped: true,\n reason: 'Test tenant data not provided',\n },\n };\n }\n\n const payload = {\n appId: tenantData.appId,\n companyId: tenantData.companyId,\n companyName: tenantData.companyName,\n environmentType: tenantData.environmentType,\n email: tenantData.email,\n webhookUrl: webhookUrl || 'https://example.com/webhook',\n };\n\n const response = await fetch(config.tenantPath!, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n // Should return 201 or 202\n assert(response.status === 201 || response.status === 202, `Expected 201 or 202, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have tenant response structure - validate using validator\n const validator = await getTenantResponseValidator();\n assertValid(data, validator);\n\n return {\n details: {\n status: data.status,\n httpStatus: response.status,\n tenantUrl: data.tenantUrl,\n response: data,\n },\n };\n });\n\n return {\n ...result,\n response: result.details?.response,\n tenantUrl: result.details?.tenantUrl as string | undefined,\n status: result.details?.status as string | undefined,\n };\n}\n\n/**\n * Test: Tenant creation with immediate completion (201)\n */\nasync function testCreateTenantImmediate(\n config: TenantValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n tenantData: TenantValidationConfig['testTenantData'],\n): Promise<ValidationResult> {\n return runTest('Tenant Creation (Immediate - 201)', async () => {\n if (!tenantData) {\n return {\n details: {\n skipped: true,\n reason: 'Test tenant data not provided',\n },\n };\n }\n\n const payload = {\n appId: tenantData.appId,\n companyId: tenantData.companyId,\n companyName: tenantData.companyName,\n environmentType: tenantData.environmentType,\n email: tenantData.email,\n webhookUrl: 'https://example.com/webhook',\n };\n\n const response = await fetch(config.tenantPath!, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n // For immediate creation, we expect either 201 or 202\n // 201 indicates completed, 202 indicates pending/async\n assert(response.status === 201 || response.status === 202, `Expected 201 or 202, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have tenant response structure - validate using validator\n const validator = await getTenantResponseValidator();\n assertValid(data, validator);\n\n // If status is 201, status should be \"completed\"\n if (response.status === 201) {\n assert(data.status === 'completed', `Expected status \"completed\" for 201 response, got ${data.status}`);\n }\n\n return {\n details: {\n httpStatus: response.status,\n status: data.status,\n tenantUrl: data.tenantUrl,\n },\n };\n });\n}\n\n/**\n * Test: Tenant creation with async processing (202)\n */\nasync function testCreateTenantAsync(\n config: TenantValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n tenantData: TenantValidationConfig['testTenantData'],\n webhookUrl?: string,\n): Promise<ValidationResult> {\n return runTest('Tenant Creation (Async - 202)', async () => {\n if (!tenantData) {\n return {\n details: {\n skipped: true,\n reason: 'Test tenant data not provided',\n },\n };\n }\n\n const payload = {\n appId: tenantData.appId,\n companyId: tenantData.companyId,\n companyName: tenantData.companyName,\n environmentType: tenantData.environmentType,\n email: tenantData.email,\n webhookUrl: webhookUrl || 'https://example.com/webhook',\n };\n\n const response = await fetch(config.tenantPath!, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n // For async creation, we expect 202\n // But we also accept 201 (some apps may complete immediately)\n assert(response.status === 201 || response.status === 202, `Expected 201 or 202, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have tenant response structure - validate using validator\n const validator = await getTenantResponseValidator();\n assertValid(data, validator);\n\n // If status is 202, status should be \"pending\" or \"processing\"\n if (response.status === 202) {\n assert(\n data.status === 'pending' || data.status === 'processing',\n `Expected status \"pending\" or \"processing\" for 202 response, got ${data.status}`,\n );\n }\n\n return {\n details: {\n httpStatus: response.status,\n status: data.status,\n tenantUrl: data.tenantUrl,\n isAsync: response.status === 202,\n },\n };\n });\n}\n\n/**\n * Test: Tenant creation endpoint validates required fields\n */\nasync function testCreateTenantValidation(\n config: TenantValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('Tenant Creation (Validation)', async () => {\n // Test with missing required fields\n const invalidPayload = {\n companyId: 'test-company',\n // Missing other required fields\n };\n\n const response = await fetch(config.tenantPath!, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(invalidPayload),\n });\n\n // Should return 400 for invalid request\n assert(response.status === 400, `Expected 400 Bad Request for invalid payload, got ${response.status}`);\n\n return {\n details: {\n status: response.status,\n },\n };\n });\n}\n\n/**\n * Runs all Tenant validation tests\n */\nexport async function validateTenant(config: TenantValidationConfig): 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 validation (invalid payload)\n tests.push(await testCreateTenantValidation(mergedConfig, fetch));\n\n // Test response shape and get response data\n const shapeResult = await testCreateTenantResponseShape(\n mergedConfig,\n fetch,\n mergedConfig.testTenantData,\n mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined,\n );\n tests.push(shapeResult);\n\n // Test immediate creation (201)\n tests.push(await testCreateTenantImmediate(mergedConfig, fetch, mergedConfig.testTenantData));\n\n // Test async creation (202)\n tests.push(\n await testCreateTenantAsync(\n mergedConfig,\n fetch,\n mergedConfig.testTenantData,\n mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined,\n ),\n );\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: 'Tenant',\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 Tenant validation\n */\nexport function createTenantTests(config: TenantValidationConfig): Array<TestDef> {\n const mergedConfig = { ...DEFAULT_CONFIG, ...config };\n const fetch = createFetcher(mergedConfig);\n\n return [\n {\n name: 'tenant creation endpoint validates required fields',\n fn: async () => {\n const result = await testCreateTenantValidation(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'tenant creation returns valid response structure',\n fn: async () => {\n const result = await testCreateTenantResponseShape(\n mergedConfig,\n fetch,\n mergedConfig.testTenantData,\n mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined,\n );\n if (!result.passed && !result.details?.skipped) throw new Error(result.error);\n },\n },\n {\n name: 'tenant creation supports immediate completion (201)',\n fn: async () => {\n const result = await testCreateTenantImmediate(mergedConfig, fetch, mergedConfig.testTenantData);\n if (!result.passed && !result.details?.skipped) throw new Error(result.error);\n },\n },\n {\n name: 'tenant creation supports async processing (202)',\n fn: async () => {\n const result = await testCreateTenantAsync(\n mergedConfig,\n fetch,\n mergedConfig.testTenantData,\n mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined,\n );\n if (!result.passed && !result.details?.skipped) throw new Error(result.error);\n },\n },\n ];\n}\n\nexport type { TenantValidationConfig };\n",
|
|
20
|
+
"/**\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",
|
|
21
|
+
"/**\n * Tenant Validation Tests\n *\n * These tests validate that an application correctly implements\n * Enterprise Standard Tenant Management functionality.\n */\n\nimport type { TenantValidationConfig, TestDef, ValidationResult, ValidationSuiteResult } from '../types';\nimport { assert, assertValid, createFetcher, runTest } from '../utils';\n\n/**\n * Gets a tenant response validator\n * Requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed\n * Uses a cached validator to avoid repeated imports\n */\nlet cachedValidator: any = null;\nlet validatorPromise: Promise<any> | null = null;\n\nasync function getTenantResponseValidator(): Promise<any> {\n // Return cached validator if available\n if (cachedValidator) {\n return cachedValidator;\n }\n\n // If we're already loading, return the existing promise\n if (validatorPromise) {\n return validatorPromise;\n }\n\n // Start loading the validator\n validatorPromise = (async () => {\n // Try valibot first\n try {\n const { valibotValidators } = await import('@enterprisestandard/react-validators-valibot');\n cachedValidator = valibotValidators.createTenantResponse();\n return cachedValidator;\n } catch {\n // Fall back to zod\n try {\n const { zodValidators } = await import('@enterprisestandard/react-validators-zod');\n cachedValidator = zodValidators.createTenantResponse();\n return cachedValidator;\n } catch (_error) {\n throw new Error(\n 'Tenant validation requires either @enterprisestandard/react-validators-valibot or @enterprisestandard/react-validators-zod to be installed. Please install one of these packages.',\n );\n }\n }\n })();\n\n return validatorPromise;\n}\n\n/**\n * Default configuration for Tenant validation\n */\nconst DEFAULT_CONFIG: Partial<TenantValidationConfig> = {\n tenantPath: '/api/tenant',\n};\n\n/**\n * Test: Tenant creation endpoint returns valid response structure\n */\nasync function testCreateTenantResponseShape(\n config: TenantValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n tenantData: TenantValidationConfig['testTenantData'],\n webhookUrl?: string,\n): Promise<ValidationResult & { response?: unknown; tenantUrl?: string; status?: string }> {\n const result = await runTest('Tenant Creation Response Shape', async () => {\n if (!tenantData) {\n return {\n details: {\n skipped: true,\n reason: 'Test tenant data not provided',\n },\n };\n }\n\n const payload = {\n appId: tenantData.appId,\n companyId: tenantData.companyId,\n companyName: tenantData.companyName,\n environmentType: tenantData.environmentType,\n email: tenantData.email,\n webhookUrl: webhookUrl || 'https://example.com/webhook',\n };\n\n const response = await fetch(config.tenantPath!, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n // Should return 201 or 202\n assert(response.status === 201 || response.status === 202, `Expected 201 or 202, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have tenant response structure - validate using validator\n const validator = await getTenantResponseValidator();\n assertValid(data, validator);\n\n return {\n details: {\n status: data.status,\n httpStatus: response.status,\n tenantUrl: data.tenantUrl,\n response: data,\n },\n };\n });\n\n return {\n ...result,\n response: result.details?.response,\n tenantUrl: result.details?.tenantUrl as string | undefined,\n status: result.details?.status as string | undefined,\n };\n}\n\n/**\n * Test: Tenant creation with immediate completion (201)\n */\nasync function testCreateTenantImmediate(\n config: TenantValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n tenantData: TenantValidationConfig['testTenantData'],\n): Promise<ValidationResult> {\n return runTest('Tenant Creation (Immediate - 201)', async () => {\n if (!tenantData) {\n return {\n details: {\n skipped: true,\n reason: 'Test tenant data not provided',\n },\n };\n }\n\n const payload = {\n appId: tenantData.appId,\n companyId: tenantData.companyId,\n companyName: tenantData.companyName,\n environmentType: tenantData.environmentType,\n email: tenantData.email,\n webhookUrl: 'https://example.com/webhook',\n };\n\n const response = await fetch(config.tenantPath!, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n // For immediate creation, we expect either 201 or 202\n // 201 indicates completed, 202 indicates pending/async\n assert(response.status === 201 || response.status === 202, `Expected 201 or 202, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have tenant response structure - validate using validator\n const validator = await getTenantResponseValidator();\n assertValid(data, validator);\n\n // If status is 201, status should be \"completed\"\n if (response.status === 201) {\n assert(data.status === 'completed', `Expected status \"completed\" for 201 response, got ${data.status}`);\n }\n\n return {\n details: {\n httpStatus: response.status,\n status: data.status,\n tenantUrl: data.tenantUrl,\n },\n };\n });\n}\n\n/**\n * Test: Tenant creation with async processing (202)\n */\nasync function testCreateTenantAsync(\n config: TenantValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n tenantData: TenantValidationConfig['testTenantData'],\n webhookUrl?: string,\n): Promise<ValidationResult> {\n return runTest('Tenant Creation (Async - 202)', async () => {\n if (!tenantData) {\n return {\n details: {\n skipped: true,\n reason: 'Test tenant data not provided',\n },\n };\n }\n\n const payload = {\n appId: tenantData.appId,\n companyId: tenantData.companyId,\n companyName: tenantData.companyName,\n environmentType: tenantData.environmentType,\n email: tenantData.email,\n webhookUrl: webhookUrl || 'https://example.com/webhook',\n };\n\n const response = await fetch(config.tenantPath!, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n // For async creation, we expect 202\n // But we also accept 201 (some apps may complete immediately)\n assert(response.status === 201 || response.status === 202, `Expected 201 or 202, got ${response.status}`);\n\n const data = await response.json();\n\n // Should have tenant response structure - validate using validator\n const validator = await getTenantResponseValidator();\n assertValid(data, validator);\n\n // If status is 202, status should be \"pending\" or \"processing\"\n if (response.status === 202) {\n assert(\n data.status === 'pending' || data.status === 'processing',\n `Expected status \"pending\" or \"processing\" for 202 response, got ${data.status}`,\n );\n }\n\n return {\n details: {\n httpStatus: response.status,\n status: data.status,\n tenantUrl: data.tenantUrl,\n isAsync: response.status === 202,\n },\n };\n });\n}\n\n/**\n * Test: Tenant creation endpoint validates required fields\n */\nasync function testCreateTenantValidation(\n config: TenantValidationConfig,\n fetch: ReturnType<typeof createFetcher>,\n): Promise<ValidationResult> {\n return runTest('Tenant Creation (Validation)', async () => {\n // Test with missing required fields\n const invalidPayload = {\n companyId: 'test-company',\n // Missing other required fields\n };\n\n const response = await fetch(config.tenantPath!, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(invalidPayload),\n });\n\n // Should return 400 for invalid request\n assert(response.status === 400, `Expected 400 Bad Request for invalid payload, got ${response.status}`);\n\n return {\n details: {\n status: response.status,\n },\n };\n });\n}\n\n/**\n * Runs all Tenant validation tests\n */\nexport async function validateTenant(config: TenantValidationConfig): 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 validation (invalid payload)\n tests.push(await testCreateTenantValidation(mergedConfig, fetch));\n\n // Test response shape and get response data\n const shapeResult = await testCreateTenantResponseShape(\n mergedConfig,\n fetch,\n mergedConfig.testTenantData,\n mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined,\n );\n tests.push(shapeResult);\n\n // Test immediate creation (201)\n tests.push(await testCreateTenantImmediate(mergedConfig, fetch, mergedConfig.testTenantData));\n\n // Test async creation (202)\n tests.push(\n await testCreateTenantAsync(\n mergedConfig,\n fetch,\n mergedConfig.testTenantData,\n mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined,\n ),\n );\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: 'Tenant',\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 Tenant validation\n */\nexport function createTenantTests(config: TenantValidationConfig): Array<TestDef> {\n const mergedConfig = { ...DEFAULT_CONFIG, ...config };\n const fetch = createFetcher(mergedConfig);\n\n return [\n {\n name: 'tenant creation endpoint validates required fields',\n fn: async () => {\n const result = await testCreateTenantValidation(mergedConfig, fetch);\n if (!result.passed) throw new Error(result.error);\n },\n },\n {\n name: 'tenant creation returns valid response structure',\n fn: async () => {\n const result = await testCreateTenantResponseShape(\n mergedConfig,\n fetch,\n mergedConfig.testTenantData,\n mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined,\n );\n if (!result.passed && !result.details?.skipped) throw new Error(result.error);\n },\n },\n {\n name: 'tenant creation supports immediate completion (201)',\n fn: async () => {\n const result = await testCreateTenantImmediate(mergedConfig, fetch, mergedConfig.testTenantData);\n if (!result.passed && !result.details?.skipped) throw new Error(result.error);\n },\n },\n {\n name: 'tenant creation supports async processing (202)',\n fn: async () => {\n const result = await testCreateTenantAsync(\n mergedConfig,\n fetch,\n mergedConfig.testTenantData,\n mergedConfig.webhookPath ? `${mergedConfig.baseUrl}${mergedConfig.webhookPath}` : undefined,\n );\n if (!result.passed && !result.details?.skipped) throw new Error(result.error);\n },\n },\n ];\n}\n\nexport type { TenantValidationConfig };\n",
|
|
22
22
|
"/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n oldElement.props,\n oldElement._owner,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ioInfo = payload._ioInfo;\n null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());\n ioInfo = payload._result;\n var thenable = ioInfo();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 1;\n payload._result = moduleObject;\n var _ioInfo = payload._ioInfo;\n null != _ioInfo && (_ioInfo.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n }\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 2;\n payload._result = error;\n var _ioInfo2 = payload._ioInfo;\n null != _ioInfo2 && (_ioInfo2.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n }\n );\n ioInfo = payload._ioInfo;\n if (null != ioInfo) {\n ioInfo.value = thenable;\n var displayName = thenable.displayName;\n \"string\" === typeof displayName && (ioInfo.name = displayName);\n }\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status)\n return (\n (ioInfo = payload._result),\n void 0 === ioInfo &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ioInfo\n ),\n \"default\" in ioInfo ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ioInfo\n ),\n ioInfo.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n };\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n actQueue: null,\n asyncTransitions: 0,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n var fnName = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = fnName;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function () {\n return null;\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n props,\n owner,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n validateChildKeys(arguments[key]);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++)\n validateChildKeys(arguments[i]);\n i = {};\n var key = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n key &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n key,\n i,\n getOwner(),\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n ctor = { _status: -1, _result: ctor };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: ctor,\n _init: lazyInitializer\n },\n ioInfo = {\n name: \"lazy\",\n start: -1,\n end: -1,\n value: null,\n owner: null,\n debugStack: Error(\"react-stack-top-frame\"),\n debugTask: console.createTask ? console.createTask(\"lazy()\") : null\n };\n ctor._ioInfo = ioInfo;\n lazyType._debugInfo = [{ awaited: ioInfo }];\n return lazyType;\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(noop, reportGlobalError));\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useEffect(create, deps);\n };\n exports.useEffectEvent = function (callback) {\n return resolveDispatcher().useEffectEvent(callback);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.2.0\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n",
|
|
23
23
|
"'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n",
|
|
24
24
|
"/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = function (type, config, maybeKey, isStaticChildren) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n",
|
|
25
25
|
"'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-dev-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-dev-runtime.development.js');\n}\n",
|
|
26
26
|
"/**\n * Enterprise Standard Validator\n *\n * A validation test suite for verifying correct implementation of\n * Enterprise Standard functionality including SSO, IAM, and Workload Identity.\n *\n * @example\n * ```typescript\n * // In your test file (e.g., esv.test.ts)\n * import { describe, it } from 'vitest';\n * import { createSSOTests, createIAMTests, createWorkloadTests } from '@enterprisestandard/esv';\n *\n * const BASE_URL = 'http://localhost:3000';\n *\n * describe('Enterprise Standard Validation', () => {\n * describe('SSO', () => {\n * const { tests, ext } = createSSOTests({ baseUrl: BASE_URL });\n * tests.forEach(({ name, fn }) => it(name, fn));\n *\n * // Optional extensions\n * describe('JIT', () => {\n * ext.createJITTests().forEach(({ name, fn }) => it(name, fn));\n * });\n * });\n *\n * describe('IAM', () => {\n * const { tests, ext } = createIAMTests({ baseUrl: BASE_URL, getToken: async () => '...' });\n * tests.forEach(({ name, fn }) => it(name, fn));\n *\n * // Optional: Groups Outbound (app -> external IAM)\n * describe('Groups Outbound', () => {\n * ext.createGroupsOutboundTests().forEach(({ name, fn }) => it(name, fn));\n * });\n *\n * // Optional: Groups Inbound (external IAM -> app)\n * describe('Groups Inbound', () => {\n * ext.createGroupsInboundTests().forEach(({ name, fn }) => it(name, fn));\n * });\n * });\n *\n * describe('Workload', () => {\n * const tests = createWorkloadTests({ baseUrl: BASE_URL });\n * tests.map(({name, fn}) => it(name, fn))\n * });\n * });\n * ```\n */\n\n// IAM Validation\nexport { createIAMTests, validateIAM } from './iam';\n\n// SSO Validation\nexport { createSSOTests, validateSSO } from './sso';\n// Tenant Validation\nexport { createTenantTests, validateTenant } from './tenant';\n// Types\nexport type {\n IAMValidationConfig,\n SSOValidationConfig,\n TenantValidationConfig,\n TestDef,\n ValidationConfig,\n ValidationReport,\n ValidationResult,\n ValidationSuiteResult,\n WorkloadValidationConfig,\n} from './types';\n// Utilities\nexport { assert, assertEqual, assertValid, runTest, skipTest } from './utils';\n// Workload Validation\nexport { createWorkloadTests, validateWorkload } from './workload';\n\nimport type {\n IAMValidationConfig,\n SSOValidationConfig,\n TenantValidationConfig,\n TestDef,\n ValidationReport,\n WorkloadValidationConfig,\n} from './types';\n\n/**\n * Helper to create a complete Vitest test suite\n *\n * @example\n * ```typescript\n * import { describe, it } from 'vitest';\n * import { defineESVTests } from '@enterprisestandard/esv';\n *\n * defineESVTests(describe, it, {\n * baseUrl: 'http://localhost:3000',\n * sso: true,\n * workload: true,\n * });\n * ```\n */\nexport function defineESVTests(\n describe: (name: string, fn: () => void) => void,\n it: (name: string, fn: () => Promise<void>) => void,\n config: {\n baseUrl: string;\n sso?: boolean | SSOValidationConfig;\n iam?: IAMValidationConfig;\n workload?: boolean | WorkloadValidationConfig;\n tenant?: boolean | TenantValidationConfig;\n },\n) {\n describe('Enterprise Standard Validation', () => {\n if (config.sso) {\n describe('SSO', () => {\n const { createSSOTests } = require('./sso');\n const ssoConfig =\n typeof config.sso === 'object' ? { ...config.sso, baseUrl: config.baseUrl } : { baseUrl: config.baseUrl };\n const { tests } = createSSOTests(ssoConfig);\n tests.forEach(({ name, fn }: TestDef) => {\n it(name, fn);\n });\n });\n }\n\n if (config.iam) {\n describe('IAM', () => {\n const { createIAMTests } = require('./iam');\n const { tests, ext } = createIAMTests({\n ...config.iam,\n baseUrl: config.baseUrl,\n });\n\n // Core user management tests\n tests.forEach(({ name, fn }: TestDef) => {\n it(name, fn);\n });\n\n // Groups Outbound extension tests (app -> external IAM)\n describe('Groups Outbound', () => {\n ext.createGroupsOutboundTests().forEach(({ name, fn }: TestDef) => {\n it(name, fn);\n });\n });\n\n // Groups Inbound extension tests (external IAM -> app)\n describe('Groups Inbound', () => {\n ext.createGroupsInboundTests().forEach(({ name, fn }: TestDef) => {\n it(name, fn);\n });\n });\n });\n }\n\n if (config.workload) {\n describe('Workload', () => {\n const { createWorkloadTests } = require('./workload');\n const workloadConfig =\n typeof config.workload === 'object'\n ? { ...config.workload, baseUrl: config.baseUrl }\n : { baseUrl: config.baseUrl };\n const tests = createWorkloadTests(workloadConfig);\n tests.map(({ name, fn }: TestDef) => it(name, fn));\n });\n }\n\n if (config.tenant) {\n describe('Tenant', () => {\n const { createTenantTests } = require('./tenant');\n const tenantConfig =\n typeof config.tenant === 'object'\n ? { ...config.tenant, baseUrl: config.baseUrl }\n : { baseUrl: config.baseUrl };\n const tests = createTenantTests(tenantConfig);\n tests.map(({ name, fn }: TestDef) => it(name, fn));\n });\n }\n });\n}\n\n/**\n * Print a validation report to console\n */\nexport function printReport(report: ValidationReport): void {\n console.log('\\n='.repeat(60));\n console.log('Enterprise Standard Validation Report');\n console.log('='.repeat(60));\n console.log(`Timestamp: ${report.timestamp.toISOString()}`);\n console.log(`Base URL: ${report.baseUrl}`);\n console.log(`Duration: ${report.duration.toFixed(2)}ms`);\n console.log(`Overall: ${report.passed ? '✅ PASSED' : '❌ FAILED'}`);\n console.log('');\n\n for (const suite of report.suites) {\n console.log(`\\n${suite.suite} Suite ${suite.passed ? '✅' : '❌'}`);\n console.log('-'.repeat(40));\n console.log(\n ` Passed: ${suite.summary.passed}/${suite.summary.total}` +\n (suite.summary.skipped > 0 ? ` (${suite.summary.skipped} skipped)` : ''),\n );\n console.log(` Duration: ${suite.duration.toFixed(2)}ms`);\n\n for (const test of suite.tests) {\n const status = test.details?.skipped ? '⏭️ ' : test.passed ? '✅' : '❌';\n console.log(` ${status} ${test.name}`);\n if (test.error) {\n console.log(` Error: ${test.error}`);\n }\n }\n }\n\n console.log(`\\n${'='.repeat(60)}\\n`);\n}\n",
|
|
27
|
-
"// packages/react/src/types/scim-schema.ts\nfunction validateString(value, fieldName, required, issues, path) {\n if (value === undefined || value === null) {\n if (required) {\n issues.push({\n message: `${fieldName} is required`,\n path\n });\n }\n return;\n }\n if (typeof value !== \"string\") {\n issues.push({\n message: `${fieldName} must be a string`,\n path\n });\n return;\n }\n return value;\n}\nfunction validateBoolean(value, fieldName, issues, path) {\n if (value === undefined || value === null) {\n return;\n }\n if (typeof value !== \"boolean\") {\n issues.push({\n message: `${fieldName} must be a boolean`,\n path\n });\n return;\n }\n return value;\n}\nfunction validateName(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (typeof value !== \"object\" || value === null) {\n issues.push({\n message: \"name must be an object\",\n path: basePath\n });\n return;\n }\n const name = value;\n const result = {};\n result.formatted = validateString(name.formatted, \"formatted\", false, issues, [...basePath, \"formatted\"]);\n result.familyName = validateString(name.familyName, \"familyName\", false, issues, [...basePath, \"familyName\"]);\n result.givenName = validateString(name.givenName, \"givenName\", false, issues, [...basePath, \"givenName\"]);\n result.middleName = validateString(name.middleName, \"middleName\", false, issues, [...basePath, \"middleName\"]);\n result.honorificPrefix = validateString(name.honorificPrefix, \"honorificPrefix\", false, issues, [\n ...basePath,\n \"honorificPrefix\"\n ]);\n result.honorificSuffix = validateString(name.honorificSuffix, \"honorificSuffix\", false, issues, [\n ...basePath,\n \"honorificSuffix\"\n ]);\n return result;\n}\nfunction validateEmails(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"emails must be an array\",\n path: basePath\n });\n return;\n }\n const emails = [];\n for (let i = 0;i < value.length; i++) {\n const email = value[i];\n const emailPath = [...basePath, i];\n if (typeof email !== \"object\" || email === null) {\n issues.push({\n message: \"email must be an object\",\n path: emailPath\n });\n continue;\n }\n const emailObj = email;\n const emailValue = validateString(emailObj.value, \"value\", true, issues, [...emailPath, \"value\"]);\n if (emailValue) {\n emails.push({\n value: emailValue,\n display: validateString(emailObj.display, \"display\", false, issues, [...emailPath, \"display\"]),\n type: validateString(emailObj.type, \"type\", false, issues, [...emailPath, \"type\"]),\n primary: validateBoolean(emailObj.primary, \"primary\", issues, [...emailPath, \"primary\"])\n });\n }\n }\n return emails.length > 0 ? emails : undefined;\n}\nfunction validatePhoneNumbers(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"phoneNumbers must be an array\",\n path: basePath\n });\n return;\n }\n const phoneNumbers = [];\n for (let i = 0;i < value.length; i++) {\n const phone = value[i];\n const phonePath = [...basePath, i];\n if (typeof phone !== \"object\" || phone === null) {\n issues.push({\n message: \"phoneNumber must be an object\",\n path: phonePath\n });\n continue;\n }\n const phoneObj = phone;\n const phoneValue = validateString(phoneObj.value, \"value\", true, issues, [...phonePath, \"value\"]);\n if (phoneValue) {\n phoneNumbers.push({\n value: phoneValue,\n display: validateString(phoneObj.display, \"display\", false, issues, [...phonePath, \"display\"]),\n type: validateString(phoneObj.type, \"type\", false, issues, [...phonePath, \"type\"]),\n primary: validateBoolean(phoneObj.primary, \"primary\", issues, [...phonePath, \"primary\"])\n });\n }\n }\n return phoneNumbers.length > 0 ? phoneNumbers : undefined;\n}\nfunction validateAddresses(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"addresses must be an array\",\n path: basePath\n });\n return;\n }\n const addresses = [];\n for (let i = 0;i < value.length; i++) {\n const address = value[i];\n const addressPath = [...basePath, i];\n if (typeof address !== \"object\" || address === null) {\n issues.push({\n message: \"address must be an object\",\n path: addressPath\n });\n continue;\n }\n const addressObj = address;\n addresses.push({\n formatted: validateString(addressObj.formatted, \"formatted\", false, issues, [...addressPath, \"formatted\"]),\n streetAddress: validateString(addressObj.streetAddress, \"streetAddress\", false, issues, [\n ...addressPath,\n \"streetAddress\"\n ]),\n locality: validateString(addressObj.locality, \"locality\", false, issues, [...addressPath, \"locality\"]),\n region: validateString(addressObj.region, \"region\", false, issues, [...addressPath, \"region\"]),\n postalCode: validateString(addressObj.postalCode, \"postalCode\", false, issues, [...addressPath, \"postalCode\"]),\n country: validateString(addressObj.country, \"country\", false, issues, [...addressPath, \"country\"]),\n type: validateString(addressObj.type, \"type\", false, issues, [...addressPath, \"type\"]),\n primary: validateBoolean(addressObj.primary, \"primary\", issues, [...addressPath, \"primary\"])\n });\n }\n return addresses.length > 0 ? addresses : undefined;\n}\nfunction validateGroups(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"groups must be an array\",\n path: basePath\n });\n return;\n }\n const groups = [];\n for (let i = 0;i < value.length; i++) {\n const group = value[i];\n const groupPath = [...basePath, i];\n if (typeof group !== \"object\" || group === null) {\n issues.push({\n message: \"group must be an object\",\n path: groupPath\n });\n continue;\n }\n const groupObj = group;\n const groupValue = validateString(groupObj.value, \"value\", true, issues, [...groupPath, \"value\"]);\n if (groupValue) {\n groups.push({\n value: groupValue,\n $ref: validateString(groupObj.$ref, \"$ref\", false, issues, [...groupPath, \"$ref\"]),\n display: validateString(groupObj.display, \"display\", false, issues, [...groupPath, \"display\"]),\n type: validateString(groupObj.type, \"type\", false, issues, [...groupPath, \"type\"])\n });\n }\n }\n return groups.length > 0 ? groups : undefined;\n}\nfunction validateRoles(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"roles must be an array\",\n path: basePath\n });\n return;\n }\n const roles = [];\n for (let i = 0;i < value.length; i++) {\n const role = value[i];\n const rolePath = [...basePath, i];\n if (typeof role !== \"object\" || role === null) {\n issues.push({\n message: \"role must be an object\",\n path: rolePath\n });\n continue;\n }\n const roleObj = role;\n const roleValue = validateString(roleObj.value, \"value\", true, issues, [...rolePath, \"value\"]);\n if (roleValue) {\n roles.push({\n value: roleValue,\n display: validateString(roleObj.display, \"display\", false, issues, [...rolePath, \"display\"]),\n type: validateString(roleObj.type, \"type\", false, issues, [...rolePath, \"type\"]),\n primary: validateBoolean(roleObj.primary, \"primary\", issues, [...rolePath, \"primary\"])\n });\n }\n }\n return roles.length > 0 ? roles : undefined;\n}\nfunction validateEnterpriseUser(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (typeof value !== \"object\" || value === null) {\n issues.push({\n message: \"Enterprise User extension must be an object\",\n path: basePath\n });\n return;\n }\n const enterprise = value;\n const result = {};\n result.employeeNumber = validateString(enterprise.employeeNumber, \"employeeNumber\", false, issues, [\n ...basePath,\n \"employeeNumber\"\n ]);\n result.costCenter = validateString(enterprise.costCenter, \"costCenter\", false, issues, [...basePath, \"costCenter\"]);\n result.organization = validateString(enterprise.organization, \"organization\", false, issues, [\n ...basePath,\n \"organization\"\n ]);\n result.division = validateString(enterprise.division, \"division\", false, issues, [...basePath, \"division\"]);\n result.department = validateString(enterprise.department, \"department\", false, issues, [...basePath, \"department\"]);\n if (enterprise.manager !== undefined && enterprise.manager !== null) {\n if (typeof enterprise.manager !== \"object\" || enterprise.manager === null) {\n issues.push({\n message: \"manager must be an object\",\n path: [...basePath, \"manager\"]\n });\n } else {\n const manager = enterprise.manager;\n result.manager = {\n value: validateString(manager.value, \"value\", false, issues, [...basePath, \"manager\", \"value\"]),\n $ref: validateString(manager.$ref, \"$ref\", false, issues, [...basePath, \"manager\", \"$ref\"]),\n displayName: validateString(manager.displayName, \"displayName\", false, issues, [\n ...basePath,\n \"manager\",\n \"displayName\"\n ])\n };\n }\n }\n return result;\n}\nfunction userSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const user = value;\n const issues = [];\n const result = {};\n const userName = validateString(user.userName, \"userName\", true, issues, [\"userName\"]);\n if (!userName) {\n return { issues };\n }\n result.userName = userName;\n result.id = validateString(user.id, \"id\", false, issues, [\"id\"]);\n result.externalId = validateString(user.externalId, \"externalId\", false, issues, [\"externalId\"]);\n result.displayName = validateString(user.displayName, \"displayName\", false, issues, [\"displayName\"]);\n result.nickName = validateString(user.nickName, \"nickName\", false, issues, [\"nickName\"]);\n result.profileUrl = validateString(user.profileUrl, \"profileUrl\", false, issues, [\"profileUrl\"]);\n result.title = validateString(user.title, \"title\", false, issues, [\"title\"]);\n result.userType = validateString(user.userType, \"userType\", false, issues, [\"userType\"]);\n result.preferredLanguage = validateString(user.preferredLanguage, \"preferredLanguage\", false, issues, [\n \"preferredLanguage\"\n ]);\n result.locale = validateString(user.locale, \"locale\", false, issues, [\"locale\"]);\n result.timezone = validateString(user.timezone, \"timezone\", false, issues, [\"timezone\"]);\n result.password = validateString(user.password, \"password\", false, issues, [\"password\"]);\n result.active = validateBoolean(user.active, \"active\", issues, [\"active\"]);\n result.name = validateName(user.name, issues, [\"name\"]);\n result.emails = validateEmails(user.emails, issues, [\"emails\"]);\n result.phoneNumbers = validatePhoneNumbers(user.phoneNumbers, issues, [\"phoneNumbers\"]);\n result.addresses = validateAddresses(user.addresses, issues, [\"addresses\"]);\n result.groups = validateGroups(user.groups, issues, [\"groups\"]);\n result.roles = validateRoles(user.roles, issues, [\"roles\"]);\n const enterpriseKey = \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\";\n if (user[enterpriseKey] !== undefined) {\n result[enterpriseKey] = validateEnterpriseUser(user[enterpriseKey], issues, [enterpriseKey]);\n }\n if (user.schemas !== undefined) {\n if (Array.isArray(user.schemas)) {\n result.schemas = user.schemas.filter((s) => typeof s === \"string\");\n } else {\n issues.push({\n message: \"schemas must be an array\",\n path: [\"schemas\"]\n });\n }\n }\n if (user.meta !== undefined) {\n if (typeof user.meta === \"object\" && user.meta !== null) {\n const meta = user.meta;\n result.meta = {\n resourceType: typeof meta.resourceType === \"string\" ? meta.resourceType : undefined,\n created: typeof meta.created === \"string\" ? meta.created : undefined,\n lastModified: typeof meta.lastModified === \"string\" ? meta.lastModified : undefined,\n location: typeof meta.location === \"string\" ? meta.location : undefined,\n version: typeof meta.version === \"string\" ? meta.version : undefined\n };\n } else {\n issues.push({\n message: \"meta must be an object\",\n path: [\"meta\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\nfunction validateMembers(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"members must be an array\",\n path: basePath\n });\n return;\n }\n const members = [];\n for (let i = 0;i < value.length; i++) {\n const member = value[i];\n const memberPath = [...basePath, i];\n if (typeof member !== \"object\" || member === null) {\n issues.push({\n message: \"member must be an object\",\n path: memberPath\n });\n continue;\n }\n const memberObj = member;\n const memberValue = validateString(memberObj.value, \"value\", true, issues, [...memberPath, \"value\"]);\n if (memberValue) {\n const memberType = validateString(memberObj.type, \"type\", false, issues, [...memberPath, \"type\"]);\n members.push({\n value: memberValue,\n $ref: validateString(memberObj.$ref, \"$ref\", false, issues, [...memberPath, \"$ref\"]),\n display: validateString(memberObj.display, \"display\", false, issues, [...memberPath, \"display\"]),\n type: memberType === \"User\" || memberType === \"Group\" ? memberType : undefined\n });\n }\n }\n return members.length > 0 ? members : undefined;\n}\nfunction groupResourceSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const group = value;\n const issues = [];\n const result = {};\n const displayName = validateString(group.displayName, \"displayName\", true, issues, [\"displayName\"]);\n if (!displayName) {\n return { issues };\n }\n result.displayName = displayName;\n result.id = validateString(group.id, \"id\", false, issues, [\"id\"]);\n result.externalId = validateString(group.externalId, \"externalId\", false, issues, [\"externalId\"]);\n result.members = validateMembers(group.members, issues, [\"members\"]);\n if (group.schemas !== undefined) {\n if (Array.isArray(group.schemas)) {\n result.schemas = group.schemas.filter((s) => typeof s === \"string\");\n } else {\n issues.push({\n message: \"schemas must be an array\",\n path: [\"schemas\"]\n });\n }\n }\n if (group.meta !== undefined) {\n if (typeof group.meta === \"object\" && group.meta !== null) {\n const meta = group.meta;\n result.meta = {\n resourceType: typeof meta.resourceType === \"string\" ? meta.resourceType : undefined,\n created: typeof meta.created === \"string\" ? meta.created : undefined,\n lastModified: typeof meta.lastModified === \"string\" ? meta.lastModified : undefined,\n location: typeof meta.location === \"string\" ? meta.location : undefined,\n version: typeof meta.version === \"string\" ? meta.version : undefined\n };\n } else {\n issues.push({\n message: \"meta must be an object\",\n path: [\"meta\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\n\n// packages/react/src/iam.ts\nvar SCIM_CONTENT_TYPE = \"application/scim+json\";\nfunction scimErrorResponse(status, detail, scimType) {\n return new Response(JSON.stringify({\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n status: String(status),\n scimType,\n detail\n }), {\n status,\n headers: { \"Content-Type\": SCIM_CONTENT_TYPE }\n });\n}\nfunction scimListResponse(resources) {\n return new Response(JSON.stringify({\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:ListResponse\"],\n totalResults: resources.length,\n startIndex: 1,\n itemsPerPage: resources.length,\n Resources: resources\n }), {\n status: 200,\n headers: { \"Content-Type\": SCIM_CONTENT_TYPE }\n });\n}\nfunction scimResourceResponse(resource, status = 200) {\n return new Response(JSON.stringify(resource), {\n status,\n headers: { \"Content-Type\": SCIM_CONTENT_TYPE }\n });\n}\nfunction storedGroupToResource(group) {\n return {\n schemas: [\"urn:ietf:params:scim:schemas:core:2.0:Group\"],\n id: group.id,\n externalId: group.externalId,\n displayName: group.displayName,\n members: group.members,\n meta: {\n resourceType: \"Group\",\n created: group.createdAt.toISOString(),\n lastModified: group.updatedAt.toISOString()\n }\n };\n}\nfunction generateId() {\n return crypto.randomUUID();\n}\nfunction iam(config, workload) {\n const { url, group_store } = config;\n async function buildHeaders() {\n const token = await workload.getToken();\n return new Headers({\n \"Content-Type\": SCIM_CONTENT_TYPE,\n Accept: SCIM_CONTENT_TYPE,\n Authorization: `Bearer ${token}`\n });\n }\n async function scimRequest(method, endpoint, body, validator) {\n if (!url) {\n return {\n success: false,\n error: {\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n status: \"500\",\n detail: \"IAM URL not configured for outgoing requests\"\n },\n status: 500\n };\n }\n const requestUrl = `${url}${endpoint}`;\n try {\n const headers = await buildHeaders();\n const response = await fetch(requestUrl, {\n method,\n headers,\n body: body ? JSON.stringify(body) : undefined\n });\n const responseData = await response.json();\n if (!response.ok) {\n return {\n success: false,\n error: responseData,\n status: response.status\n };\n }\n if (validator) {\n const validationResult = await validator[\"~standard\"].validate(responseData);\n if (\"issues\" in validationResult) {\n return {\n success: false,\n error: {\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n status: \"400\",\n scimType: \"invalidValue\",\n detail: `Response validation failed: ${validationResult.issues?.map((i) => i.message).join(\"; \")}`\n },\n status: 400\n };\n }\n return {\n success: true,\n data: validationResult.value,\n status: response.status\n };\n }\n return {\n success: true,\n data: responseData,\n status: response.status\n };\n } catch (error) {\n return {\n success: false,\n error: {\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n status: \"500\",\n detail: error instanceof Error ? error.message : \"Unknown error occurred\"\n },\n status: 500\n };\n }\n }\n function getBaseUrl() {\n return url;\n }\n let groups_outbound;\n let createUser;\n if (url) {\n createUser = async (user, options) => {\n const userPayload = {\n ...user,\n schemas: user.schemas ?? [\n \"urn:ietf:params:scim:schemas:core:2.0:User\",\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\"\n ]\n };\n const validator = options?.validation ?? userSchema(\"es-iam\");\n return scimRequest(\"POST\", \"/Users\", userPayload, validator);\n };\n async function createGroup(displayName, options) {\n const groupPayload = {\n schemas: [\"urn:ietf:params:scim:schemas:core:2.0:Group\"],\n displayName,\n externalId: options?.externalId,\n members: options?.members\n };\n const validator = options?.validation ?? groupResourceSchema(\"es-iam\");\n return scimRequest(\"POST\", \"/Groups\", groupPayload, validator);\n }\n groups_outbound = {\n createGroup\n };\n }\n let groups_inbound;\n if (group_store) {\n const store = group_store;\n const validateAuth = async (request) => {\n const auth = request.headers.get(\"Authorization\");\n if (!auth || !auth.startsWith(\"Bearer \")) {\n return false;\n }\n try {\n const token = auth.substring(7);\n const result = await workload.validateToken(token);\n return result.valid;\n } catch {\n return false;\n }\n };\n const handler = async (request, handlerConfig) => {\n const isAuthorized = await validateAuth(request);\n if (!isAuthorized) {\n return scimErrorResponse(401, \"Authorization required\");\n }\n const urlObj = new URL(request.url);\n const basePath = handlerConfig?.basePath ?? \"/Groups\";\n let path = urlObj.pathname;\n if (path.startsWith(basePath)) {\n path = path.substring(basePath.length);\n }\n const groupIdMatch = path.match(/^\\/([^/]+)$/);\n const groupId = groupIdMatch?.[1];\n const method = request.method;\n try {\n if (groupId) {\n switch (method) {\n case \"GET\":\n return await handleGetGroup(groupId);\n case \"PUT\":\n return await handleReplaceGroup(request, groupId);\n case \"PATCH\":\n return await handlePatchGroup(request, groupId);\n case \"DELETE\":\n return await handleDeleteGroup(groupId);\n default:\n return scimErrorResponse(405, \"Method not allowed\");\n }\n } else if (path === \"\" || path === \"/\") {\n switch (method) {\n case \"GET\":\n return await handleListGroups();\n case \"POST\":\n return await handleCreateGroup(request);\n default:\n return scimErrorResponse(405, \"Method not allowed\");\n }\n }\n return scimErrorResponse(404, \"Resource not found\");\n } catch (error) {\n console.error(\"Groups inbound handler error:\", error);\n return scimErrorResponse(500, error instanceof Error ? error.message : \"Internal server error\");\n }\n };\n const handleListGroups = async () => {\n const groups = await store.list();\n const resources = groups.map(storedGroupToResource);\n return scimListResponse(resources);\n };\n const handleGetGroup = async (id) => {\n const group = await store.get(id);\n if (!group) {\n return scimErrorResponse(404, `Group ${id} not found`, \"invalidValue\");\n }\n return scimResourceResponse(storedGroupToResource(group));\n };\n const handleCreateGroup = async (request) => {\n const body = await request.json();\n if (!body.displayName) {\n return scimErrorResponse(400, \"displayName is required\", \"invalidValue\");\n }\n const now = new Date;\n const storedGroup = {\n id: generateId(),\n displayName: body.displayName,\n externalId: body.externalId,\n members: body.members,\n createdAt: now,\n updatedAt: now\n };\n await store.upsert(storedGroup);\n return scimResourceResponse(storedGroupToResource(storedGroup), 201);\n };\n const handleReplaceGroup = async (request, id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `Group ${id} not found`, \"invalidValue\");\n }\n const body = await request.json();\n const updatedGroup = {\n ...existing,\n displayName: body.displayName ?? existing.displayName,\n externalId: body.externalId,\n members: body.members,\n updatedAt: new Date\n };\n await store.upsert(updatedGroup);\n return scimResourceResponse(storedGroupToResource(updatedGroup));\n };\n const handlePatchGroup = async (request, id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `Group ${id} not found`, \"invalidValue\");\n }\n const body = await request.json();\n const operations = body.Operations ?? [];\n const updated = { ...existing };\n for (const op of operations) {\n if (op.op === \"replace\" && op.path && op.value !== undefined) {\n if (op.path === \"displayName\") {\n updated.displayName = op.value;\n }\n } else if (op.op === \"add\" && op.path && op.value !== undefined) {\n if (op.path === \"members\") {\n const newMembers = op.value;\n updated.members = [...updated.members ?? [], ...newMembers];\n }\n } else if (op.op === \"remove\" && op.path) {\n if (op.path.startsWith(\"members[\")) {\n const match = op.path.match(/members\\[value eq \"([^\"]+)\"\\]/);\n if (match) {\n updated.members = (updated.members ?? []).filter((m) => m.value !== match[1]);\n }\n }\n }\n }\n updated.updatedAt = new Date;\n await store.upsert(updated);\n return scimResourceResponse(storedGroupToResource(updated));\n };\n const handleDeleteGroup = async (id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `Group ${id} not found`, \"invalidValue\");\n }\n await store.delete(id);\n return new Response(null, { status: 204 });\n };\n groups_inbound = {\n handler\n };\n }\n let users_inbound;\n if (config.user_store) {\n const store = config.user_store;\n async function validateAuth(request) {\n const auth = request.headers.get(\"Authorization\");\n if (!auth || !auth.startsWith(\"Bearer \")) {\n return false;\n }\n try {\n const token = auth.substring(7);\n const result = await workload.validateToken(token);\n return result.valid;\n } catch {\n return false;\n }\n }\n const storedUserToScimUser = (storedUser) => {\n return {\n schemas: [\n \"urn:ietf:params:scim:schemas:core:2.0:User\",\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\"\n ],\n id: storedUser.id,\n userName: storedUser.userName || storedUser.email || storedUser.id,\n displayName: storedUser.name || storedUser.userName || storedUser.email,\n name: storedUser.name ? {\n givenName: storedUser.name.split(\" \")[0],\n familyName: storedUser.name.split(\" \").slice(1).join(\" \") || undefined\n } : undefined,\n emails: storedUser.email ? [{ value: storedUser.email, primary: true }] : [],\n active: true,\n meta: {\n resourceType: \"User\",\n created: storedUser.createdAt.toISOString(),\n lastModified: storedUser.updatedAt.toISOString()\n }\n };\n };\n const scimUserToStoredUser = (scimUser) => {\n const now = new Date;\n const primaryEmail = scimUser.emails?.find((e) => e.primary)?.value || scimUser.emails?.[0]?.value;\n const name = scimUser.name ? `${scimUser.name.givenName || \"\"} ${scimUser.name.familyName || \"\"}`.trim() : scimUser.displayName;\n const userId = scimUser.id || generateId();\n const userName = scimUser.userName || primaryEmail || userId;\n return {\n id: userId,\n userName,\n name: name || scimUser.displayName || userName,\n email: primaryEmail || userName,\n avatarUrl: scimUser.profileUrl,\n sso: {\n profile: {\n sub: userId,\n iss: \"iam-provisioned\",\n aud: \"iam-provisioned\",\n exp: Math.floor(Date.now() / 1000) + 3600,\n iat: Math.floor(Date.now() / 1000),\n email: primaryEmail || userName,\n email_verified: true,\n name: name || scimUser.displayName || userName,\n preferred_username: userName\n },\n tenant: {\n id: \"iam-provisioned\",\n name: \"IAM Provisioned\"\n },\n scope: \"openid profile email\",\n tokenType: \"Bearer\",\n expires: new Date(Date.now() + 3600 * 1000)\n },\n createdAt: scimUser.meta?.created ? new Date(scimUser.meta.created) : now,\n updatedAt: scimUser.meta?.lastModified ? new Date(scimUser.meta.lastModified) : now\n };\n };\n const handler = async (request, handlerConfig) => {\n const isAuthorized = await validateAuth(request);\n if (!isAuthorized) {\n return scimErrorResponse(401, \"Authorization required\");\n }\n const urlObj = new URL(request.url);\n const basePath = handlerConfig?.basePath ?? \"/Users\";\n let path = urlObj.pathname;\n if (path.startsWith(basePath)) {\n path = path.substring(basePath.length);\n }\n const userIdMatch = path.match(/^\\/([^/]+)$/);\n const userId = userIdMatch?.[1];\n const method = request.method;\n try {\n if (userId) {\n switch (method) {\n case \"GET\":\n return await handleGetUser(userId);\n case \"PUT\":\n return await handleReplaceUser(request, userId);\n case \"PATCH\":\n return await handlePatchUser(request, userId);\n case \"DELETE\":\n return await handleDeleteUser(userId);\n default:\n return scimErrorResponse(405, \"Method not allowed\");\n }\n } else if (path === \"\" || path === \"/\") {\n switch (method) {\n case \"GET\":\n return await handleListUsers();\n case \"POST\":\n return await handleCreateUser(request);\n default:\n return scimErrorResponse(405, \"Method not allowed\");\n }\n }\n return scimErrorResponse(404, \"Resource not found\");\n } catch (error) {\n console.error(\"Users inbound handler error:\", error);\n return scimErrorResponse(500, error instanceof Error ? error.message : \"Internal server error\");\n }\n };\n const handleListUsers = async () => {\n return scimListResponse([]);\n };\n const handleGetUser = async (id) => {\n const user = await store.get(id);\n if (!user) {\n return scimErrorResponse(404, `User ${id} not found`, \"invalidValue\");\n }\n return scimResourceResponse(storedUserToScimUser(user));\n };\n const handleCreateUser = async (request) => {\n const body = await request.json();\n if (!body.userName && !body.emails?.[0]?.value) {\n return scimErrorResponse(400, \"userName or email is required\", \"invalidValue\");\n }\n const storedUser = scimUserToStoredUser(body);\n await store.upsert(storedUser);\n return scimResourceResponse(storedUserToScimUser(storedUser), 201);\n };\n const handleReplaceUser = async (request, id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `User ${id} not found`, \"invalidValue\");\n }\n const body = await request.json();\n const updatedUser = scimUserToStoredUser({ ...body, id });\n updatedUser.createdAt = existing.createdAt;\n updatedUser.updatedAt = new Date;\n await store.upsert(updatedUser);\n return scimResourceResponse(storedUserToScimUser(updatedUser));\n };\n const handlePatchUser = async (request, id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `User ${id} not found`, \"invalidValue\");\n }\n const body = await request.json();\n const operations = body.Operations ?? [];\n const updated = { ...existing };\n for (const op of operations) {\n if (op.op === \"replace\" && op.path && op.value !== undefined) {\n if (op.path === \"displayName\") {\n updated.name = op.value;\n } else if (op.path === \"userName\") {\n updated.userName = op.value;\n } else if (op.path.startsWith(\"name.\")) {\n const namePart = op.path.split(\".\")[1];\n if (!updated.name)\n updated.name = \"\";\n if (namePart === \"givenName\") {\n updated.name = `${op.value} ${updated.name.split(\" \").slice(1).join(\" \")}`.trim();\n } else if (namePart === \"familyName\") {\n updated.name = `${updated.name.split(\" \")[0]} ${op.value}`.trim();\n }\n } else if (op.path === \"emails\") {\n const emails = op.value;\n const primaryEmail = emails?.find((e) => e.primary)?.value || emails?.[0]?.value;\n if (primaryEmail)\n updated.email = primaryEmail;\n }\n } else if (op.op === \"add\" && op.path && op.value !== undefined) {\n if (op.path === \"emails\") {\n const newEmails = op.value;\n const primaryEmail = newEmails?.find((e) => e.primary)?.value || newEmails?.[0]?.value;\n if (primaryEmail)\n updated.email = primaryEmail;\n }\n } else if (op.op === \"remove\" && op.path) {\n if (op.path === \"displayName\") {\n updated.name = \"\";\n }\n }\n }\n updated.updatedAt = new Date;\n await store.upsert(updated);\n return scimResourceResponse(storedUserToScimUser(updated));\n };\n const handleDeleteUser = async (id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `User ${id} not found`, \"invalidValue\");\n }\n await store.delete(id);\n return new Response(null, { status: 204 });\n };\n users_inbound = {\n handler\n };\n }\n async function topLevelHandler(request, handlerConfig) {\n const urlObj = new URL(request.url);\n const path = urlObj.pathname;\n const usersUrl = handlerConfig?.usersUrl ?? config.usersUrl ?? \"/api/iam/Users\";\n const groupsUrl = handlerConfig?.groupsUrl ?? config.groupsUrl ?? \"/api/iam/Groups\";\n if (path.startsWith(usersUrl) && users_inbound) {\n return users_inbound.handler(request, { basePath: usersUrl });\n }\n if (path.startsWith(groupsUrl) && groups_inbound) {\n return groups_inbound.handler(request, { basePath: groupsUrl });\n }\n return scimErrorResponse(404, \"Resource not found\");\n }\n return {\n ...config,\n createUser,\n getBaseUrl,\n groups_outbound,\n groups_inbound,\n users_inbound,\n handler: topLevelHandler\n };\n}\n\n// packages/react/src/types/oidc-schema.ts\nfunction oidcCallbackSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const params = value;\n const issues = [];\n const result = {};\n if (\"code\" in params) {\n if (typeof params.code === \"string\") {\n result.code = params.code;\n } else {\n issues.push({\n message: \"code must be a string\",\n path: [\"code\"]\n });\n }\n } else if (!(\"error\" in params)) {\n issues.push({\n message: \"code is required\",\n path: [\"code\"]\n });\n }\n if (\"state\" in params) {\n if (typeof params.state === \"string\" || params.state === undefined) {\n result.state = params.state;\n } else {\n issues.push({\n message: \"state must be a string\",\n path: [\"state\"]\n });\n }\n }\n if (\"session_state\" in params) {\n if (typeof params.session_state === \"string\" || params.session_state === undefined) {\n result.session_state = params.session_state;\n } else {\n issues.push({\n message: \"session_state must be a string\",\n path: [\"session_state\"]\n });\n }\n }\n if (\"error\" in params) {\n if (typeof params.error === \"string\") {\n result.error = params.error;\n } else {\n issues.push({\n message: \"error must be a string\",\n path: [\"error\"]\n });\n }\n if (\"error_description\" in params) {\n if (typeof params.error_description === \"string\" || params.error_description === undefined) {\n result.error_description = params.error_description;\n } else {\n issues.push({\n message: \"error_description must be a string\",\n path: [\"error_description\"]\n });\n }\n }\n if (\"error_uri\" in params) {\n if (typeof params.error_uri === \"string\" || params.error_uri === undefined) {\n result.error_uri = params.error_uri;\n } else {\n issues.push({\n message: \"error_uri must be a string\",\n path: [\"error_uri\"]\n });\n }\n }\n }\n if (\"iss\" in params) {\n if (typeof params.iss === \"string\" || params.iss === undefined) {\n result.iss = params.iss;\n } else {\n issues.push({\n message: \"iss must be a string\",\n path: [\"iss\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\nfunction tokenResponseSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const response = value;\n const issues = [];\n const result = {};\n if (\"access_token\" in response) {\n if (typeof response.access_token === \"string\") {\n result.access_token = response.access_token;\n } else {\n issues.push({\n message: \"access_token must be a string\",\n path: [\"access_token\"]\n });\n }\n } else {\n issues.push({\n message: \"access_token is required\",\n path: [\"access_token\"]\n });\n }\n if (\"id_token\" in response) {\n if (typeof response.id_token === \"string\") {\n result.id_token = response.id_token;\n } else {\n issues.push({\n message: \"id_token must be a string\",\n path: [\"id_token\"]\n });\n }\n } else {\n issues.push({\n message: \"id_token is required\",\n path: [\"id_token\"]\n });\n }\n if (\"token_type\" in response) {\n if (typeof response.token_type === \"string\") {\n result.token_type = response.token_type;\n } else {\n issues.push({\n message: \"token_type must be a string\",\n path: [\"token_type\"]\n });\n }\n } else {\n issues.push({\n message: \"token_type is required\",\n path: [\"token_type\"]\n });\n }\n if (\"refresh_token\" in response) {\n if (typeof response.refresh_token === \"string\" || response.refresh_token === undefined) {\n result.refresh_token = response.refresh_token;\n } else {\n issues.push({\n message: \"refresh_token must be a string\",\n path: [\"refresh_token\"]\n });\n }\n }\n if (\"scope\" in response) {\n if (typeof response.scope === \"string\" || response.scope === undefined) {\n result.scope = response.scope;\n } else {\n issues.push({\n message: \"scope must be a string\",\n path: [\"scope\"]\n });\n }\n }\n if (\"session_state\" in response) {\n if (typeof response.session_state === \"string\" || response.session_state === undefined) {\n result.session_state = response.session_state;\n } else {\n issues.push({\n message: \"session_state must be a string\",\n path: [\"session_state\"]\n });\n }\n }\n if (\"expires\" in response) {\n if (typeof response.expires === \"string\" || response.expires === undefined) {\n result.expires = response.expires;\n } else {\n issues.push({\n message: \"expires must be a string\",\n path: [\"expires\"]\n });\n }\n }\n if (\"expires_in\" in response) {\n if (typeof response.expires_in === \"number\" || response.expires_in === undefined) {\n result.expires_in = response.expires_in;\n } else {\n issues.push({\n message: \"expires_in must be a number\",\n path: [\"expires_in\"]\n });\n }\n }\n if (\"refresh_expires_in\" in response) {\n if (typeof response.refresh_expires_in === \"number\" || response.refresh_expires_in === undefined) {\n result.refresh_expires_in = response.refresh_expires_in;\n } else {\n issues.push({\n message: \"refresh_expires_in must be a number\",\n path: [\"refresh_expires_in\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\nfunction idTokenClaimsSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const claims = value;\n const issues = [];\n const result = { ...claims };\n const stringFields = [\"iss\", \"aud\", \"sub\", \"sid\", \"name\", \"email\", \"preferred_username\", \"picture\"];\n for (const field of stringFields) {\n if (field in claims && claims[field] !== undefined) {\n if (typeof claims[field] !== \"string\") {\n issues.push({\n message: `${field} must be a string`,\n path: [field]\n });\n }\n }\n }\n const numberFields = [\"exp\", \"iat\"];\n for (const field of numberFields) {\n if (field in claims && claims[field] !== undefined) {\n if (typeof claims[field] !== \"number\") {\n issues.push({\n message: `${field} must be a number`,\n path: [field]\n });\n }\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\n\n// packages/react/src/utils.ts\nvar defaultInstance;\nfunction must(value, message = \"Assertion failed. Required value is null or undefined.\") {\n if (value === undefined || value === null) {\n throw new Error(message);\n }\n return value;\n}\nfunction setDefaultInstance(es) {\n defaultInstance = es;\n}\nfunction getDefaultInstance() {\n return defaultInstance;\n}\nfunction getES(es) {\n if (es)\n return es;\n if (defaultInstance)\n return defaultInstance;\n throw new Error(`TODO standardize the error message when there isn't a default EntepriseStandard`);\n}\n\n// packages/react/src/sso.ts\nvar jwksCache = new Map;\nfunction sso(config) {\n let configWithDefaults;\n const handlerDefaults = {\n loginUrl: config?.loginUrl,\n userUrl: config?.userUrl,\n errorUrl: config?.errorUrl,\n landingUrl: config?.landingUrl,\n tokenUrl: config?.tokenUrl,\n refreshUrl: config?.refreshUrl,\n jwksUrl: config?.jwksUrl,\n logoutUrl: config?.logoutUrl,\n logoutBackChannelUrl: config?.logoutBackChannelUrl,\n validation: config?.validation\n };\n configWithDefaults = !config ? undefined : {\n ...config,\n authority: must(config.authority, \"Missing 'authority' from SSO Config\"),\n token_url: must(config.token_url, \"Missing 'token_url' from SSO Config\"),\n authorization_url: must(config.authorization_url, \"Missing 'authorization_url' from SSO Config\"),\n client_id: must(config.client_id, \"Missing 'client_id' from SSO Config\"),\n redirect_uri: must(config.redirect_uri, \"Missing 'redirect_uri' from SSO Config\"),\n scope: must(config.scope, \"Missing 'scope' from SSO Config\"),\n response_type: config.response_type ?? \"code\",\n cookies_secure: config.cookies_secure !== undefined ? config.cookies_secure : true,\n cookies_same_site: config.cookies_same_site !== undefined ? config.cookies_same_site : \"Strict\",\n cookies_prefix: config.cookies_prefix ?? `es.sso.${config.client_id}`,\n cookies_path: config.cookies_path ?? \"/\"\n };\n async function getUser(request) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n try {\n const { tokens } = await getTokenFromCookies(request);\n if (!tokens)\n return;\n return await parseUser(tokens);\n } catch (error) {\n console.error(\"Error parsing user from cookies:\", error);\n return;\n }\n }\n async function getRequiredUser(request) {\n const user = await getUser(request);\n if (user)\n return user;\n throw new Response(\"Unauthorized\", {\n status: 401,\n statusText: \"Unauthorized\"\n });\n }\n async function initiateLogin({ landingUrl, errorUrl }, requestUrl) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const state = generateRandomString();\n const codeVerifier = generateRandomString(64);\n let normalizedRedirectUri = configWithDefaults.redirect_uri;\n try {\n new URL(normalizedRedirectUri);\n } catch {\n if (requestUrl) {\n try {\n const baseUrl = new URL(requestUrl);\n const path = normalizedRedirectUri.startsWith(\"//\") ? normalizedRedirectUri.slice(1) : normalizedRedirectUri.startsWith(\"/\") ? normalizedRedirectUri : `/${normalizedRedirectUri}`;\n normalizedRedirectUri = new URL(path, baseUrl.origin).toString();\n } catch {\n try {\n const authUrl = new URL(configWithDefaults.authorization_url);\n const path = normalizedRedirectUri.startsWith(\"//\") ? normalizedRedirectUri.slice(1) : normalizedRedirectUri.startsWith(\"/\") ? normalizedRedirectUri : `/${normalizedRedirectUri}`;\n normalizedRedirectUri = new URL(path, authUrl.origin).toString();\n } catch {\n throw new Error(`Invalid redirect_uri: \"${configWithDefaults.redirect_uri}\". It must be a valid absolute URL.`);\n }\n }\n }\n }\n const url = new URL(configWithDefaults.authorization_url);\n url.searchParams.append(\"client_id\", configWithDefaults.client_id);\n url.searchParams.append(\"redirect_uri\", normalizedRedirectUri);\n url.searchParams.append(\"response_type\", \"code\");\n url.searchParams.append(\"scope\", configWithDefaults.scope);\n url.searchParams.append(\"state\", state);\n const codeChallenge = await pkceChallengeFromVerifier(codeVerifier);\n url.searchParams.append(\"code_challenge\", codeChallenge);\n url.searchParams.append(\"code_challenge_method\", \"S256\");\n const val = {\n state,\n codeVerifier,\n landingUrl,\n errorUrl\n };\n return new Response(\"Redirecting to SSO Provider\", {\n status: 302,\n headers: {\n Location: url.toString(),\n \"Set-Cookie\": createCookie(\"state\", val, 86400)\n }\n });\n }\n async function logout(request, _config) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n try {\n const refreshToken2 = getCookie(\"refresh\", request);\n if (refreshToken2) {\n await revokeToken(refreshToken2);\n }\n } catch (error) {\n console.warn(\"Failed to revoke token:\", error);\n }\n if (configWithDefaults.session_store) {\n try {\n const user = await getUser(request);\n if (user?.sso?.profile.sid) {\n const sid = user.sso.profile.sid;\n await configWithDefaults.session_store.delete(sid);\n console.log(`Session ${sid} deleted from store`);\n }\n } catch (error) {\n console.warn(\"Failed to delete session:\", error);\n }\n }\n const clearHeaders = [\n [\"Set-Cookie\", clearCookie(\"access\")],\n [\"Set-Cookie\", clearCookie(\"id\")],\n [\"Set-Cookie\", clearCookie(\"refresh\")],\n [\"Set-Cookie\", clearCookie(\"control\")],\n [\"Set-Cookie\", clearCookie(\"state\")]\n ];\n const url = new URL(request.url);\n const redirectTo = url.searchParams.get(\"redirect\");\n if (redirectTo) {\n return new Response(\"Logged out\", {\n status: 302,\n headers: [[\"Location\", redirectTo], ...clearHeaders]\n });\n }\n const accept = request.headers.get(\"accept\");\n const isAjax = accept?.includes(\"application/json\") || accept?.includes(\"text/javascript\");\n if (isAjax) {\n return new Response(JSON.stringify({ success: true, message: \"Logged out\" }), {\n status: 200,\n headers: [[\"Content-Type\", \"application/json\"], ...clearHeaders]\n });\n } else {\n return new Response(`\n <!DOCTYPE html><html lang=\"en\"><body>\n <h1>Logout Complete</h1>\n <div style=\"display: none\">\n It is not recommended to show the default logout page. Include '?redirect=/someHomePage' or logout asynchronously.\n Check the <a href=\"https://EnterpriseStandard.com/sso#logout\">Enterprise Standard Packages</a> for more information.\n </div>\n </body></html>\n `, {\n status: 200,\n headers: [[\"Content-Type\", \"text/html\"], ...clearHeaders]\n });\n }\n }\n async function logoutBackChannel(request) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n if (!configWithDefaults.session_store) {\n throw new Error(\"Back-Channel Logout requires session_store configuration\");\n }\n try {\n const contentType = request.headers.get(\"content-type\");\n if (!contentType || !contentType.includes(\"application/x-www-form-urlencoded\")) {\n return new Response(\"Invalid Content-Type, expected application/x-www-form-urlencoded\", {\n status: 400\n });\n }\n const body = await request.text();\n const params = new URLSearchParams(body);\n const logoutToken = params.get(\"logout_token\");\n if (!logoutToken) {\n return new Response(\"Missing logout_token parameter\", { status: 400 });\n }\n const claims = await parseJwt(logoutToken);\n const sid = claims.sid;\n if (!sid) {\n console.warn(\"Back-Channel Logout: logout_token missing sid claim\");\n return new Response(\"Invalid logout_token: missing sid claim\", { status: 400 });\n }\n await configWithDefaults.session_store.delete(sid);\n console.log(`Back-Channel Logout: successfully deleted session ${sid}`);\n return new Response(\"OK\", { status: 200 });\n } catch (error) {\n console.error(\"Error during back-channel logout:\", error);\n return new Response(\"Internal Server Error\", { status: 500 });\n }\n }\n async function callbackHandler(request, validation) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const url = new URL(request.url);\n const params = new URLSearchParams(url.search);\n const callbackParamsValidator = validation?.callbackParams ?? oidcCallbackSchema(\"builtin\");\n const paramsObject = Object.fromEntries(params.entries());\n const paramsResult = await callbackParamsValidator[\"~standard\"].validate(paramsObject);\n if (\"issues\" in paramsResult) {\n return new Response(JSON.stringify({\n error: \"validation_failed\",\n message: \"OIDC callback parameters validation failed\",\n issues: paramsResult.issues?.map((i) => ({\n path: i.path?.join(\".\"),\n message: i.message\n }))\n }), {\n status: 400,\n headers: { \"Content-Type\": \"application/json\" }\n });\n }\n const { code: codeFromUrl, state: stateFromUrl } = paramsResult.value;\n try {\n const cookie = getCookie(\"state\", request, true);\n const { codeVerifier, state, landingUrl } = cookie ?? {};\n must(codeVerifier, 'OIDC \"codeVerifier\" was not present in cookies, ensure that the SSO login was initiated correctly');\n must(state, 'OIDC \"stateVerifier\" was not present in cookies, ensure that the SSO login was initiated correctly');\n must(landingUrl, 'OIDC \"landingUrl\" was not present in cookies');\n if (stateFromUrl !== state) {\n throw new Error('SSO State Verifier failed, the \"state\" request parameter does not equal the \"state\" in the SSO cookie');\n }\n const tokenResponse = await exchangeCodeForToken(codeFromUrl, codeVerifier, validation, request.url);\n const user = await parseUser(tokenResponse, validation);\n if (configWithDefaults.session_store) {\n try {\n const sid = user.sso.profile.sid;\n const sub = user.id;\n if (sid && sub) {\n const session = {\n sid,\n sub,\n createdAt: new Date,\n lastActivityAt: new Date\n };\n await configWithDefaults.session_store.create(session);\n } else {\n console.warn(\"Session creation skipped: missing sid or sub in ID token claims\");\n }\n } catch (error) {\n console.warn(\"Failed to create session:\", error);\n }\n }\n if (configWithDefaults.user_store) {\n try {\n const sub = user.id;\n if (sub) {\n const now = new Date;\n const existingUser = await configWithDefaults.user_store.get(sub);\n if (existingUser || configWithDefaults.enable_jit_user_provisioning) {\n const storedUser = {\n ...existingUser ?? {},\n ...user,\n id: sub,\n createdAt: existingUser?.createdAt ?? now,\n updatedAt: now\n };\n await configWithDefaults.user_store.upsert(storedUser);\n } else {\n console.warn(\"JIT user provisioning disabled: user not found in store and will not be created\");\n }\n } else {\n console.warn(\"User storage skipped: missing sub in ID token claims\");\n }\n } catch (error) {\n console.warn(\"Failed to store user:\", error);\n }\n }\n return new Response(\"Authentication successful, redirecting\", {\n status: 302,\n headers: [\n [\"Location\", landingUrl],\n [\"Set-Cookie\", clearCookie(\"state\")],\n ...createJwtCookies(tokenResponse, user.sso.expires)\n ]\n });\n } catch (error) {\n console.error(\"Error during sign-in callback:\", error);\n try {\n const cookie = getCookie(\"state\", request, true);\n const { errorUrl } = cookie ?? {};\n if (errorUrl) {\n return new Response(\"Redirecting to error url\", {\n status: 302,\n headers: [[\"Location\", errorUrl]]\n });\n }\n } catch (_err) {\n console.warn(\"Error parsing the errorUrl from the OIDC cookie\");\n }\n console.warn(\"No error page was found in the cookies. The user will be shown a default error page.\");\n return new Response(\"An error occurred during authentication, please return to the application homepage and try again.\", {\n status: 500\n });\n }\n }\n async function parseUser(token, validation) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const idToken = await parseJwt(token.id_token, validation);\n const expiresIn = Number(token.refresh_expires_in ?? token.expires_in ?? 3600);\n const expires = token.expires ? new Date(token.expires) : new Date(Date.now() + expiresIn * 1000);\n return {\n id: idToken.sub,\n userName: idToken.preferred_username || \"\",\n name: idToken.name || \"\",\n email: idToken.email || \"\",\n emails: [\n {\n value: idToken.email || \"\",\n primary: true\n }\n ],\n avatarUrl: idToken.picture,\n sso: {\n profile: {\n ...idToken,\n iss: idToken.iss || configWithDefaults.authority,\n aud: idToken.aud || configWithDefaults.client_id\n },\n tenant: {\n id: idToken.idp || idToken.iss || configWithDefaults.authority,\n name: idToken.iss || configWithDefaults.authority\n },\n scope: token.scope,\n tokenType: token.token_type,\n sessionState: token.session_state,\n expires\n }\n };\n }\n async function exchangeCodeForToken(code, codeVerifier, validation, requestUrl) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const tokenUrl = configWithDefaults.token_url;\n let normalizedRedirectUri = configWithDefaults.redirect_uri;\n try {\n new URL(normalizedRedirectUri);\n } catch {\n if (requestUrl) {\n try {\n const baseUrl = new URL(requestUrl);\n const path = normalizedRedirectUri.startsWith(\"//\") ? normalizedRedirectUri.slice(1) : normalizedRedirectUri.startsWith(\"/\") ? normalizedRedirectUri : `/${normalizedRedirectUri}`;\n normalizedRedirectUri = new URL(path, baseUrl.origin).toString();\n } catch {\n try {\n const tokenUrlObj = new URL(tokenUrl);\n const path = normalizedRedirectUri.startsWith(\"//\") ? normalizedRedirectUri.slice(1) : normalizedRedirectUri.startsWith(\"/\") ? normalizedRedirectUri : `/${normalizedRedirectUri}`;\n normalizedRedirectUri = new URL(path, tokenUrlObj.origin).toString();\n } catch {\n throw new Error(`Invalid redirect_uri: \"${configWithDefaults.redirect_uri}\". It must be a valid absolute URL.`);\n }\n }\n }\n }\n const body = new URLSearchParams;\n body.append(\"grant_type\", \"authorization_code\");\n body.append(\"code\", code);\n body.append(\"redirect_uri\", normalizedRedirectUri);\n body.append(\"client_id\", configWithDefaults.client_id);\n if (configWithDefaults.client_secret) {\n body.append(\"client_secret\", configWithDefaults.client_secret);\n }\n body.append(\"code_verifier\", codeVerifier);\n try {\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\"\n },\n body: body.toString()\n });\n const data = await response.json();\n if (!response.ok) {\n console.error(\"Token exchange error:\", data);\n throw new Error(`Token exchange failed: ${data.error || response.statusText} - ${data.error_description || \"\"}`.trim());\n }\n const tokenResponseValidator = validation?.tokenResponse ?? tokenResponseSchema(\"builtin\");\n const tokenResult = await tokenResponseValidator[\"~standard\"].validate(data);\n if (\"issues\" in tokenResult) {\n console.error(\"Token response validation failed:\", tokenResult.issues);\n throw new Error(`Token response validation failed: ${tokenResult.issues?.map((i) => i.message).join(\"; \")}`);\n }\n return tokenResult.value;\n } catch (error) {\n console.error(\"Error during token exchange:\", error);\n throw error;\n }\n }\n async function refreshToken(refreshToken2) {\n return retryWithBackoff(async () => {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const tokenUrl = configWithDefaults.token_url;\n const body = new URLSearchParams;\n body.append(\"grant_type\", \"refresh_token\");\n body.append(\"refresh_token\", refreshToken2);\n body.append(\"client_id\", configWithDefaults.client_id);\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\"\n },\n body: body.toString()\n });\n const data = await response.json();\n if (!response.ok) {\n console.error(\"Token refresh error:\", data);\n throw new Error(`Token refresh failed: ${data.error || response.statusText} - ${data.error_description || \"\"}`.trim());\n }\n return data;\n });\n }\n async function revokeToken(token) {\n try {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n if (!configWithDefaults.revocation_endpoint) {\n return;\n }\n const body = new URLSearchParams;\n body.append(\"token\", token);\n body.append(\"token_type_hint\", \"refresh_token\");\n body.append(\"client_id\", configWithDefaults.client_id);\n const response = await fetch(configWithDefaults.revocation_endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: body.toString()\n });\n if (!response.ok) {\n console.warn(\"Token revocation failed:\", response.status, response.statusText);\n } else {\n console.log(\"Token revoked successfully\");\n }\n } catch (error) {\n console.warn(\"Error revoking token:\", error);\n }\n }\n async function fetchJwks() {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const url = configWithDefaults.jwks_uri || `${configWithDefaults.authority}/protocol/openid-connect/certs`;\n const cached = jwksCache.get(url);\n if (cached)\n return cached;\n return retryWithBackoff(async () => {\n if (!configWithDefaults)\n throw new Error(\"SSO Manager not initialized\");\n const response = await fetch(url);\n if (!response.ok)\n throw new Error(\"Failed to fetch JWKS\");\n const jwks = await response.json();\n jwksCache.set(url, jwks);\n return jwks;\n });\n }\n async function retryWithBackoff(operation, maxRetries = 3, baseDelay = 1000, maxDelay = 30000) {\n let lastError = new Error(\"Placeholder Error\");\n for (let attempt = 0;attempt <= maxRetries; attempt++) {\n try {\n return await operation();\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n if (error instanceof Error && error.message.includes(\"400\")) {\n throw error;\n }\n if (attempt === maxRetries) {\n throw lastError;\n }\n const delay = Math.min(baseDelay * 2 ** attempt, maxDelay);\n const jitter = Math.random() * 0.1 * delay;\n await new Promise((resolve) => setTimeout(resolve, delay + jitter));\n console.warn(`Retry attempt ${attempt + 1} after ${delay + jitter}ms delay`);\n }\n }\n throw lastError;\n }\n async function parseJwt(token, validation) {\n try {\n const parts = token.split(\".\");\n if (parts.length !== 3)\n throw new Error(\"Invalid JWT\");\n const header = JSON.parse(atob(parts[0].replace(/-/g, \"+\").replace(/_/g, \"/\")));\n const payload = JSON.parse(atob(parts[1].replace(/-/g, \"+\").replace(/_/g, \"/\")));\n const signature = parts[2].replace(/-/g, \"+\").replace(/_/g, \"/\");\n const publicKey = await getPublicKey(header.kid);\n const encoder = new TextEncoder;\n const data = encoder.encode(`${parts[0]}.${parts[1]}`);\n const isValid = await crypto.subtle.verify(\"RSASSA-PKCS1-v1_5\", publicKey, Uint8Array.from(atob(signature), (c) => c.charCodeAt(0)), data);\n if (!isValid)\n throw new Error(\"Invalid JWT signature\");\n const idTokenClaimsValidator = validation?.idTokenClaims ?? idTokenClaimsSchema(\"builtin\");\n const claimsResult = await idTokenClaimsValidator[\"~standard\"].validate(payload);\n if (\"issues\" in claimsResult) {\n console.error(\"ID token claims validation failed:\", claimsResult.issues);\n throw new Error(`ID token claims validation failed: ${claimsResult.issues?.map((i) => i.message).join(\"; \")}`);\n }\n return claimsResult.value;\n } catch (e) {\n console.error(\"Error verifying JWT:\", e);\n throw e;\n }\n }\n function generateRandomString(length = 32) {\n const array = new Uint8Array(length);\n crypto.getRandomValues(array);\n return Array.from(array, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\").substring(0, length);\n }\n async function pkceChallengeFromVerifier(verifier) {\n const encoder = new TextEncoder;\n const data = encoder.encode(verifier);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashBase64 = btoa(String.fromCharCode(...hashArray)).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n return hashBase64;\n }\n async function getPublicKey(kid) {\n const jwks = await fetchJwks();\n const key = jwks.keys.find((k) => k.kid === kid);\n if (!key)\n throw new Error(\"Public key not found\");\n const publicKey = await crypto.subtle.importKey(\"jwk\", {\n kty: key.kty,\n n: key.n,\n e: key.e\n }, { name: \"RSASSA-PKCS1-v1_5\", hash: \"SHA-256\" }, false, [\"verify\"]);\n return publicKey;\n }\n function createJwtCookies(token, expires) {\n const control = {\n expires_in: token.expires_in,\n refresh_expires_in: token.refresh_expires_in,\n scope: token.scope,\n session_state: token.session_state,\n token_type: token.token_type,\n expires: expires.toISOString()\n };\n return [\n [\"Set-Cookie\", createCookie(\"access\", token.access_token, expires)],\n [\"Set-Cookie\", createCookie(\"id\", token.id_token, expires)],\n [\"Set-Cookie\", createCookie(\"refresh\", token.refresh_token ?? \"\", expires)],\n [\"Set-Cookie\", createCookie(\"control\", control, expires)]\n ];\n }\n async function getTokenFromCookies(req) {\n const access_token = getCookie(\"access\", req);\n const id_token = getCookie(\"id\", req);\n const refresh_token = getCookie(\"refresh\", req);\n const control = getCookie(\"control\", req, true);\n if (!access_token || !id_token || !refresh_token || !control) {\n return { tokens: undefined, refreshHeaders: [] };\n }\n let tokenResponse = {\n access_token,\n id_token,\n refresh_token,\n ...control\n };\n if (control.expires && refresh_token && Date.now() > new Date(control.expires).getTime()) {\n tokenResponse = await refreshToken(refresh_token);\n const user = await parseUser(tokenResponse);\n const refreshHeaders = createJwtCookies(tokenResponse, user.sso.expires);\n return { tokens: tokenResponse, refreshHeaders };\n }\n return { tokens: tokenResponse, refreshHeaders: [] };\n }\n async function getJwt(request) {\n const { tokens } = await getTokenFromCookies(request);\n if (!tokens)\n return;\n return tokens.access_token;\n }\n function createCookie(name, value, expires) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n name = `${configWithDefaults.cookies_prefix}.${name}`;\n if (typeof value !== \"string\") {\n value = btoa(JSON.stringify(value));\n }\n let exp;\n if (expires instanceof Date) {\n exp = `Expires=${expires.toUTCString()}`;\n } else if (typeof expires === \"number\") {\n exp = `Max-Age=${expires}`;\n } else {\n throw new Error(\"Invalid expires type\", expires);\n }\n if (value.length > 4000) {\n throw new Error(`Error setting cookie: ${name}. Cookie length is: ${value.length}`);\n }\n return `${name}=${value}; ${exp}; Path=${configWithDefaults.cookies_path}; HttpOnly;${configWithDefaults.cookies_secure ? \" Secure;\" : \"\"} SameSite=${configWithDefaults.cookies_same_site};`;\n }\n function clearCookie(name) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n return `${configWithDefaults.cookies_prefix}.${name}=; Max-Age=0; Path=${configWithDefaults.cookies_path}; HttpOnly;${configWithDefaults.cookies_secure ? \" Secure;\" : \"\"} SameSite=${configWithDefaults.cookies_same_site};`;\n }\n function getCookie(name, req, parse = false) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const header = req.headers.get(\"cookie\");\n if (!header)\n return null;\n const cookie = header.split(\";\").find((row) => row.trim().startsWith(`${configWithDefaults.cookies_prefix}.${name}=`));\n if (!cookie)\n return null;\n const val = cookie.split(\"=\")[1].trim();\n if (!parse)\n return val;\n const str = atob(val);\n return JSON.parse(str);\n }\n async function handler(request, handlerConfig) {\n const {\n loginUrl,\n userUrl,\n errorUrl,\n landingUrl,\n tokenUrl,\n refreshUrl,\n logoutUrl,\n logoutBackChannelUrl,\n jwksUrl,\n validation\n } = { ...handlerDefaults, ...handlerConfig };\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n if (!loginUrl) {\n console.error(\"loginUrl is required\");\n }\n const path = new URL(request.url).pathname;\n let redirectUriPath;\n try {\n redirectUriPath = new URL(configWithDefaults.redirect_uri).pathname;\n } catch {\n try {\n const requestUrl = new URL(request.url);\n const redirectUri = configWithDefaults.redirect_uri.startsWith(\"//\") ? configWithDefaults.redirect_uri.slice(1) : configWithDefaults.redirect_uri;\n redirectUriPath = new URL(redirectUri, requestUrl.origin).pathname;\n } catch {\n redirectUriPath = configWithDefaults.redirect_uri.startsWith(\"/\") ? configWithDefaults.redirect_uri : `/${configWithDefaults.redirect_uri}`;\n }\n }\n if (redirectUriPath === path) {\n return callbackHandler(request, validation);\n }\n if (loginUrl === path) {\n return initiateLogin({\n landingUrl: landingUrl || \"/\",\n errorUrl\n }, request.url);\n }\n if (userUrl === path) {\n const { tokens, refreshHeaders } = await getTokenFromCookies(request);\n if (!tokens) {\n return new Response(\"User not logged in\", { status: 401 });\n }\n const user = await parseUser(tokens);\n return new Response(JSON.stringify(user), {\n headers: [[\"Content-Type\", \"application/json\"], ...refreshHeaders]\n });\n }\n if (tokenUrl === path) {\n const { tokens, refreshHeaders } = await getTokenFromCookies(request);\n if (!tokens) {\n return new Response(\"User not logged in\", { status: 401 });\n }\n return new Response(JSON.stringify({\n token: tokens.access_token,\n expires: tokens.expires\n }), {\n headers: [[\"Content-Type\", \"application/json\"], ...refreshHeaders]\n });\n }\n if (refreshUrl === path) {\n const refresh_token = getCookie(\"refresh\", request);\n if (!refresh_token) {\n return new Response(\"User not logged in\", { status: 401 });\n }\n const newTokenResponse = await refreshToken(refresh_token);\n const user = await parseUser(newTokenResponse);\n const refreshHeaders = createJwtCookies(newTokenResponse, user.sso.expires);\n return new Response(\"Refresh Complete\", {\n status: 200,\n headers: refreshHeaders\n });\n }\n if (logoutUrl === path) {\n return logout(request, { landingUrl: landingUrl || \"/\" });\n }\n if (logoutBackChannelUrl === path) {\n return logoutBackChannel(request);\n }\n if (jwksUrl === path) {\n const jwks = await fetchJwks();\n return new Response(JSON.stringify(jwks), {\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n return new Response(\"Not Found\", { status: 404 });\n }\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n return {\n ...configWithDefaults,\n getUser,\n getRequiredUser,\n getJwt,\n initiateLogin,\n logout,\n callbackHandler,\n handler\n };\n}\n\n// packages/react/src/vault.ts\nfunction vault(url) {\n async function getFullSecret(path, token) {\n const resp = await fetch(`${url}/${path}`, { headers: { \"X-Vault-Token\": token } });\n if (resp.status !== 200) {\n throw new Error(`Vault returned invalid status, ${resp.status}: '${resp.statusText}' from URL: ${url}`);\n }\n try {\n const secret = await resp.json();\n return secret.data;\n } catch (cause) {\n throw new Error(\"Error retrieving secret\", { cause });\n }\n }\n return {\n url,\n getFullSecret,\n getSecret: async (path, token) => {\n return (await getFullSecret(path, token)).data;\n }\n };\n}\n\n// packages/react/src/types/workload-schema.ts\nfunction jwtAssertionClaimsSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const claims = value;\n const issues = [];\n const result = { ...claims };\n const requiredStringFields = [\"iss\", \"sub\"];\n for (const field of requiredStringFields) {\n if (field in claims) {\n if (typeof claims[field] !== \"string\") {\n issues.push({\n message: `${field} must be a string`,\n path: [field]\n });\n }\n } else {\n issues.push({\n message: `${field} is required`,\n path: [field]\n });\n }\n }\n if (\"aud\" in claims && claims.aud !== undefined) {\n const aud = claims.aud;\n if (typeof aud !== \"string\" && !Array.isArray(aud)) {\n issues.push({\n message: \"aud must be a string or array of strings\",\n path: [\"aud\"]\n });\n } else if (Array.isArray(aud) && !aud.every((a) => typeof a === \"string\")) {\n issues.push({\n message: \"aud array must contain only strings\",\n path: [\"aud\"]\n });\n }\n }\n const optionalStringFields = [\"jti\", \"scope\"];\n for (const field of optionalStringFields) {\n if (field in claims && claims[field] !== undefined) {\n if (typeof claims[field] !== \"string\") {\n issues.push({\n message: `${field} must be a string`,\n path: [field]\n });\n }\n }\n }\n const requiredNumberFields = [\"exp\", \"iat\"];\n for (const field of requiredNumberFields) {\n if (field in claims) {\n if (typeof claims[field] !== \"number\") {\n issues.push({\n message: `${field} must be a number`,\n path: [field]\n });\n }\n } else {\n issues.push({\n message: `${field} is required`,\n path: [field]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\nfunction workloadTokenResponseSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const response = value;\n const issues = [];\n const result = {};\n if (\"access_token\" in response) {\n if (typeof response.access_token === \"string\") {\n result.access_token = response.access_token;\n } else {\n issues.push({\n message: \"access_token must be a string\",\n path: [\"access_token\"]\n });\n }\n } else {\n issues.push({\n message: \"access_token is required\",\n path: [\"access_token\"]\n });\n }\n if (\"token_type\" in response) {\n if (typeof response.token_type === \"string\") {\n result.token_type = response.token_type;\n } else {\n issues.push({\n message: \"token_type must be a string\",\n path: [\"token_type\"]\n });\n }\n } else {\n issues.push({\n message: \"token_type is required\",\n path: [\"token_type\"]\n });\n }\n if (\"scope\" in response) {\n if (typeof response.scope === \"string\" || response.scope === undefined) {\n result.scope = response.scope;\n } else {\n issues.push({\n message: \"scope must be a string\",\n path: [\"scope\"]\n });\n }\n }\n if (\"refresh_token\" in response) {\n if (typeof response.refresh_token === \"string\" || response.refresh_token === undefined) {\n result.refresh_token = response.refresh_token;\n } else {\n issues.push({\n message: \"refresh_token must be a string\",\n path: [\"refresh_token\"]\n });\n }\n }\n if (\"expires\" in response) {\n if (typeof response.expires === \"string\" || response.expires === undefined) {\n result.expires = response.expires;\n } else {\n issues.push({\n message: \"expires must be a string\",\n path: [\"expires\"]\n });\n }\n }\n if (\"expires_in\" in response) {\n if (typeof response.expires_in === \"number\" || response.expires_in === undefined) {\n result.expires_in = response.expires_in;\n } else {\n issues.push({\n message: \"expires_in must be a number\",\n path: [\"expires_in\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\n\n// packages/react/src/workload-token-store.ts\nclass InMemoryWorkloadTokenStore {\n tokens = new Map;\n async set(token) {\n this.tokens.set(token.workload_id, token);\n }\n async get(workload_id) {\n const token = this.tokens.get(workload_id);\n if (!token)\n return null;\n if (Date.now() > token.expires_at.getTime()) {\n this.tokens.delete(workload_id);\n return null;\n }\n return token;\n }\n async delete(workload_id) {\n this.tokens.delete(workload_id);\n }\n async isValid(workload_id) {\n const token = await this.get(workload_id);\n return token !== null;\n }\n async cleanup() {\n const now = Date.now();\n for (const [workload_id, token] of this.tokens.entries()) {\n if (now > token.expires_at.getTime()) {\n this.tokens.delete(workload_id);\n }\n }\n }\n}\n\n// packages/react/src/workload.ts\nvar jwksCache2 = new Map;\nfunction isJwtBearerConfig(config) {\n return \"workload_id\" in config || \"private_key\" in config;\n}\nfunction isClientCredentialsConfig(config) {\n return \"client_id\" in config || \"client_secret\" in config;\n}\nfunction isServerOnlyConfig(config) {\n return \"jwks_uri\" in config && !(\"workload_id\" in config) && !(\"client_id\" in config);\n}\nfunction validateWorkloadConfig(config) {\n const hasJwtBearer = \"workload_id\" in config && \"private_key\" in config;\n const hasClientCreds = \"client_id\" in config && \"client_secret\" in config;\n const hasServerOnly = \"jwks_uri\" in config;\n if (!hasJwtBearer && !hasClientCreds && !hasServerOnly) {\n throw new Error(\"Invalid WorkloadConfig: must provide either (workload_id + private_key) for JWT Bearer Grant, \" + \"(client_id + client_secret) for OAuth2 Client Credentials, or (jwks_uri) for server-only token validation\");\n }\n}\nfunction workload(config) {\n validateWorkloadConfig(config);\n let configWithDefaults;\n if (isJwtBearerConfig(config)) {\n configWithDefaults = {\n ...config,\n token_url: must(config.token_url, \"Missing 'token_url' from Workload Config\"),\n workload_id: must(config.workload_id, \"Missing 'workload_id' from Workload Config\"),\n audience: must(config.audience, \"Missing 'audience' from Workload Config\"),\n scope: config.scope ?? \"\",\n algorithm: config.algorithm ?? \"RS256\",\n token_lifetime: config.token_lifetime ?? 300,\n refresh_threshold: config.refresh_threshold ?? 60,\n auto_refresh: config.auto_refresh !== undefined ? config.auto_refresh : true,\n token_store: config.token_store ?? new InMemoryWorkloadTokenStore\n };\n } else if (isClientCredentialsConfig(config)) {\n configWithDefaults = {\n ...config,\n token_url: must(config.token_url, \"Missing 'token_url' from Workload Config\"),\n client_id: must(config.client_id, \"Missing 'client_id' from Workload Config\"),\n client_secret: must(config.client_secret, \"Missing 'client_secret' from Workload Config\"),\n scope: config.scope ?? \"\",\n token_lifetime: config.token_lifetime ?? 300,\n refresh_threshold: config.refresh_threshold ?? 60,\n auto_refresh: config.auto_refresh !== undefined ? config.auto_refresh : true,\n token_store: config.token_store ?? new InMemoryWorkloadTokenStore\n };\n } else {\n configWithDefaults = config;\n }\n const initialized = true;\n function ensureInitialized() {\n if (!initialized) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n }\n function generateJTI() {\n const array = new Uint8Array(16);\n crypto.getRandomValues(array);\n return Array.from(array, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n }\n function base64UrlEncode(data) {\n let base64;\n if (typeof data === \"string\") {\n base64 = btoa(data);\n } else {\n base64 = btoa(String.fromCharCode(...data));\n }\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n }\n function base64UrlDecode(base64url) {\n let base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n while (base64.length % 4) {\n base64 += \"=\";\n }\n return atob(base64);\n }\n function getAlgorithmParams(alg) {\n if (alg.startsWith(\"RS\")) {\n const hash = alg === \"RS256\" ? \"SHA-256\" : alg === \"RS384\" ? \"SHA-384\" : \"SHA-512\";\n return { name: \"RSASSA-PKCS1-v1_5\", hash };\n } else if (alg.startsWith(\"ES\")) {\n const namedCurve = alg === \"ES256\" ? \"P-256\" : alg === \"ES384\" ? \"P-384\" : \"P-521\";\n const hash = alg === \"ES256\" ? \"SHA-256\" : alg === \"ES384\" ? \"SHA-384\" : \"SHA-512\";\n return { name: \"ECDSA\", namedCurve, hash };\n }\n throw new Error(`Unsupported algorithm: ${alg}`);\n }\n async function importPrivateKey(pemKey, algorithm) {\n const pemContents = pemKey.replace(/-----BEGIN PRIVATE KEY-----/, \"\").replace(/-----END PRIVATE KEY-----/, \"\").replace(/\\s/g, \"\");\n const binaryDer = Uint8Array.from(atob(pemContents), (c) => c.charCodeAt(0));\n const algorithmParams = getAlgorithmParams(algorithm);\n return crypto.subtle.importKey(\"pkcs8\", binaryDer, algorithmParams, false, [\"sign\"]);\n }\n async function signJWT(data, privateKeyPEM, algorithm) {\n const privateKey = await importPrivateKey(privateKeyPEM, algorithm);\n const encoder = new TextEncoder;\n const dataBuffer = encoder.encode(data);\n const algorithmParams = getAlgorithmParams(algorithm);\n const signatureBuffer = await crypto.subtle.sign(algorithmParams, privateKey, dataBuffer);\n return base64UrlEncode(new Uint8Array(signatureBuffer));\n }\n async function retryWithBackoff(operation, maxRetries = 3, baseDelay = 1000, maxDelay = 30000) {\n let lastError = new Error(\"Placeholder Error\");\n for (let attempt = 0;attempt <= maxRetries; attempt++) {\n try {\n return await operation();\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n if (lastError.message.includes(\"400\") || lastError.message.includes(\"401\") || lastError.message.includes(\"403\") || lastError.message.includes(\"404\")) {\n throw lastError;\n }\n if (attempt < maxRetries) {\n const delay = Math.min(baseDelay * 2 ** attempt, maxDelay);\n const jitter = Math.random() * delay * 0.1;\n await new Promise((resolve) => setTimeout(resolve, delay + jitter));\n }\n }\n }\n throw lastError;\n }\n async function generateJWTAssertion(scope) {\n ensureInitialized();\n if (!isJwtBearerConfig(config)) {\n throw new Error(\"generateJWTAssertion is only available in JWT Bearer Grant mode\");\n }\n const cfg = configWithDefaults;\n const now = Math.floor(Date.now() / 1000);\n const claims = {\n iss: cfg.workload_id,\n sub: cfg.workload_id,\n aud: cfg.audience ?? \"\",\n exp: now + cfg.token_lifetime,\n iat: now,\n jti: generateJTI(),\n scope: scope ?? cfg.scope\n };\n const header = {\n alg: cfg.algorithm,\n typ: \"JWT\",\n kid: cfg.key_id\n };\n const encodedHeader = base64UrlEncode(JSON.stringify(header));\n const encodedPayload = base64UrlEncode(JSON.stringify(claims));\n const signatureInput = `${encodedHeader}.${encodedPayload}`;\n const signature = await signJWT(signatureInput, cfg.private_key, cfg.algorithm);\n return `${signatureInput}.${signature}`;\n }\n async function acquireTokenJwtBearer(scope, validation) {\n const cfg = configWithDefaults;\n return retryWithBackoff(async () => {\n const tokenUrl = cfg.token_url;\n const assertion = await generateJWTAssertion(scope);\n const body = new URLSearchParams;\n body.append(\"grant_type\", \"urn:ietf:params:oauth:grant-type:jwt-bearer\");\n body.append(\"assertion\", assertion);\n if (scope)\n body.append(\"scope\", scope);\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\"\n },\n body: body.toString()\n });\n const data = await response.json();\n if (!response.ok) {\n console.error(\"Token acquisition error:\", data);\n throw new Error(`Token acquisition failed: ${data.error || response.statusText} - ${data.error_description || \"\"}`.trim());\n }\n const validator = validation?.tokenResponse ?? workloadTokenResponseSchema(\"builtin\");\n const result = await validator[\"~standard\"].validate(data);\n if (\"issues\" in result) {\n console.error(\"Token response validation failed:\", result.issues);\n throw new Error(`Token response validation failed: ${result.issues?.map((i) => i.message).join(\"; \")}`);\n }\n if (cfg.token_store) {\n const expiresAt = new Date(Date.now() + (result.value.expires_in ?? 300) * 1000);\n const cachedToken = {\n workload_id: cfg.workload_id,\n access_token: result.value.access_token,\n token_type: result.value.token_type,\n scope: result.value.scope,\n expires_at: expiresAt,\n created_at: new Date,\n refresh_token: result.value.refresh_token\n };\n await cfg.token_store.set(cachedToken);\n }\n return result.value;\n });\n }\n async function acquireTokenClientCredentials(scope, validation) {\n const cfg = configWithDefaults;\n return retryWithBackoff(async () => {\n const tokenUrl = cfg.token_url;\n const body = new URLSearchParams;\n body.append(\"grant_type\", \"client_credentials\");\n body.append(\"client_id\", cfg.client_id);\n body.append(\"client_secret\", cfg.client_secret);\n if (scope)\n body.append(\"scope\", scope);\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\"\n },\n body: body.toString()\n });\n const data = await response.json();\n if (!response.ok) {\n console.error(\"Token acquisition error:\", data);\n throw new Error(`Token acquisition failed: ${data.error || response.statusText} - ${data.error_description || \"\"}`.trim());\n }\n const validator = validation?.tokenResponse ?? workloadTokenResponseSchema(\"builtin\");\n const result = await validator[\"~standard\"].validate(data);\n if (\"issues\" in result) {\n console.error(\"Token response validation failed:\", result.issues);\n throw new Error(`Token response validation failed: ${result.issues?.map((i) => i.message).join(\"; \")}`);\n }\n if (cfg.token_store) {\n const expiresAt = new Date(Date.now() + (result.value.expires_in ?? 300) * 1000);\n const cachedToken = {\n workload_id: cfg.client_id,\n access_token: result.value.access_token,\n token_type: result.value.token_type,\n scope: result.value.scope,\n expires_at: expiresAt,\n created_at: new Date,\n refresh_token: result.value.refresh_token\n };\n await cfg.token_store.set(cachedToken);\n }\n return result.value;\n });\n }\n async function getToken(scope) {\n ensureInitialized();\n if (isServerOnlyConfig(config)) {\n throw new Error(\"Cannot acquire tokens: Workload is configured in server-only mode (validation only). \" + \"To acquire tokens, configure client_id + client_secret for OAuth2 Client Credentials, \" + \"or workload_id + private_key for JWT Bearer Grant.\");\n }\n if (!configWithDefaults.token_url) {\n throw new Error(\"Cannot acquire tokens: Missing token_url in WorkloadConfig. \" + \"Client role requires token_url to be configured in vault.\");\n }\n if (isJwtBearerConfig(configWithDefaults)) {\n if (!configWithDefaults.private_key) {\n throw new Error(\"Cannot acquire tokens: Missing private_key in WorkloadConfig. \" + \"JWT Bearer Grant client role requires private_key to be configured in vault.\");\n }\n } else if (isClientCredentialsConfig(configWithDefaults)) {\n if (!configWithDefaults.client_secret) {\n throw new Error(\"Cannot acquire tokens: Missing client_secret in WorkloadConfig. \" + \"OAuth2 Client Credentials client role requires client_secret to be configured in vault.\");\n }\n }\n const requestedScope = scope ?? configWithDefaults.scope ?? \"\";\n let cacheKey;\n if (isJwtBearerConfig(configWithDefaults)) {\n cacheKey = configWithDefaults.workload_id;\n } else if (isClientCredentialsConfig(configWithDefaults)) {\n cacheKey = configWithDefaults.client_id;\n } else {\n throw new Error(\"Invalid WorkloadConfig\");\n }\n const cfg = configWithDefaults;\n if (cfg.token_store) {\n const cachedToken = await cfg.token_store.get(cacheKey);\n if (cachedToken) {\n const now = Date.now();\n const expiresAt = cachedToken.expires_at.getTime();\n const refreshThreshold = cfg.refresh_threshold * 1000;\n if (now + refreshThreshold < expiresAt) {\n return cachedToken.access_token;\n }\n if (cfg.auto_refresh) {\n try {\n const newToken = isJwtBearerConfig(config) ? await acquireTokenJwtBearer(requestedScope) : await acquireTokenClientCredentials(requestedScope);\n return newToken.access_token;\n } catch (error) {\n if (now < expiresAt) {\n console.warn(\"Token refresh failed, using cached token:\", error);\n return cachedToken.access_token;\n }\n throw error;\n }\n }\n }\n }\n const tokenResponse = isJwtBearerConfig(config) ? await acquireTokenJwtBearer(requestedScope) : await acquireTokenClientCredentials(requestedScope);\n return tokenResponse.access_token;\n }\n async function refreshToken() {\n ensureInitialized();\n if (isServerOnlyConfig(config)) {\n throw new Error(\"Cannot refresh tokens: Workload is configured in server-only mode (validation only).\");\n }\n const cfg = configWithDefaults;\n return isJwtBearerConfig(cfg) ? await acquireTokenJwtBearer(cfg.scope) : await acquireTokenClientCredentials(cfg.scope);\n }\n async function revokeToken(token) {\n ensureInitialized();\n try {\n if (!config.revocation_endpoint) {\n return;\n }\n const body = new URLSearchParams;\n body.append(\"token\", token);\n body.append(\"token_type_hint\", \"access_token\");\n if (isJwtBearerConfig(config)) {\n const cfg = configWithDefaults;\n body.append(\"client_id\", cfg.workload_id);\n } else if (isClientCredentialsConfig(config)) {\n const cfg = configWithDefaults;\n body.append(\"client_id\", cfg.client_id);\n body.append(\"client_secret\", cfg.client_secret);\n }\n const response = await fetch(config.revocation_endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: body.toString()\n });\n if (!response.ok) {\n console.warn(\"Token revocation failed:\", response.status, response.statusText);\n } else {\n console.log(\"Token revoked successfully\");\n }\n if (config.token_store) {\n let cacheKey;\n if (isJwtBearerConfig(config)) {\n cacheKey = configWithDefaults.workload_id;\n } else if (isClientCredentialsConfig(config)) {\n cacheKey = configWithDefaults.client_id;\n } else {\n return;\n }\n await config.token_store.delete(cacheKey);\n }\n } catch (error) {\n console.warn(\"Error revoking token:\", error);\n }\n }\n async function fetchJwks() {\n ensureInitialized();\n const url = config.jwks_uri;\n if (!url) {\n throw new Error(\"Cannot validate tokens: Missing jwks_uri in WorkloadConfig. \" + \"Server role requires jwks_uri to be configured in vault to fetch public keys for token validation.\");\n }\n const cached = jwksCache2.get(url);\n if (cached)\n return cached;\n return retryWithBackoff(async () => {\n const response = await fetch(url);\n if (!response.ok)\n throw new Error(\"Failed to fetch JWKS\");\n const jwks = await response.json();\n jwksCache2.set(url, jwks);\n return jwks;\n });\n }\n async function getPublicKey(kid) {\n const jwks = await fetchJwks();\n const key = jwks.keys.find((k) => k.kid === kid);\n if (!key)\n throw new Error(\"Public key not found\");\n const defaultAlg = isJwtBearerConfig(config) ? configWithDefaults.algorithm : \"RS256\";\n const algorithmParams = getAlgorithmParams(key.alg || defaultAlg);\n return crypto.subtle.importKey(\"jwk\", key, algorithmParams, false, [\"verify\"]);\n }\n async function parseJWT(token, validation) {\n ensureInitialized();\n try {\n const parts = token.split(\".\");\n if (parts.length !== 3)\n throw new Error(\"Invalid JWT\");\n const header = JSON.parse(base64UrlDecode(parts[0]));\n const payload = JSON.parse(base64UrlDecode(parts[1]));\n const publicKey = await getPublicKey(header.kid);\n const signature = parts[2];\n const encoder = new TextEncoder;\n const data = encoder.encode(`${parts[0]}.${parts[1]}`);\n const signatureBytes = Uint8Array.from(base64UrlDecode(signature), (c) => c.charCodeAt(0));\n const algorithmParams = getAlgorithmParams(header.alg);\n const isValid = await crypto.subtle.verify(algorithmParams, publicKey, signatureBytes, data);\n if (!isValid)\n throw new Error(\"Invalid JWT signature\");\n const validator = validation?.jwtAssertionClaims ?? jwtAssertionClaimsSchema(\"builtin\");\n const result = await validator[\"~standard\"].validate(payload);\n if (\"issues\" in result) {\n console.error(\"JWT claims validation failed:\", result.issues);\n throw new Error(`JWT claims validation failed: ${result.issues?.map((i) => i.message).join(\"; \")}`);\n }\n return result.value;\n } catch (error) {\n console.error(\"Error verifying JWT:\", error);\n throw error;\n }\n }\n async function validateToken(token, validation) {\n ensureInitialized();\n try {\n const claims = await parseJWT(token, validation);\n const now = Math.floor(Date.now() / 1000);\n if (claims.exp && claims.exp < now) {\n return { valid: false, error: \"Token expired\" };\n }\n if (isJwtBearerConfig(config)) {\n if (config.audience && claims.aud !== config.audience) {\n return { valid: false, error: \"Invalid audience\" };\n }\n } else if (isClientCredentialsConfig(config)) {\n if (config.issuer && claims.iss !== config.issuer) {\n return { valid: false, error: \"Invalid issuer\" };\n }\n if (config.audience && claims.aud !== config.audience) {\n return { valid: false, error: \"Invalid audience\" };\n }\n } else {\n const serverConfig = config;\n if (serverConfig.issuer && claims.iss !== serverConfig.issuer) {\n return { valid: false, error: \"Invalid issuer\" };\n }\n }\n return {\n valid: true,\n claims,\n expiresAt: claims.exp ? new Date(claims.exp * 1000) : undefined\n };\n } catch (error) {\n return {\n valid: false,\n error: error instanceof Error ? error.message : String(error)\n };\n }\n }\n async function getWorkload(request) {\n ensureInitialized();\n if (!config.jwks_uri) {\n throw new Error(\"Cannot validate tokens: Missing jwks_uri in WorkloadConfig. \" + \"Server role requires jwks_uri to be configured in vault to fetch public keys for token validation.\");\n }\n const authHeader = request.headers.get(\"Authorization\");\n if (!authHeader || !authHeader.startsWith(\"Bearer \")) {\n return;\n }\n const token = authHeader.substring(7);\n const result = await validateToken(token, configWithDefaults.validation);\n if (!result.valid || !result.claims) {\n return;\n }\n return {\n workload_id: result.claims.sub,\n client_id: typeof result.claims.client_id === \"string\" ? result.claims.client_id : undefined,\n scope: result.claims.scope,\n claims: result.claims\n };\n }\n async function handler(request) {\n ensureInitialized();\n const tokenUrl = configWithDefaults.tokenUrl;\n const validateUrl = configWithDefaults.validateUrl;\n const jwksUrl = configWithDefaults.jwksUrl;\n const refreshUrl = configWithDefaults.refreshUrl;\n const validation = configWithDefaults.validation;\n const path = new URL(request.url).pathname;\n if (tokenUrl === path && request.method === \"GET\") {\n const url = new URL(request.url);\n const scope = url.searchParams.get(\"scope\") || undefined;\n const token = await getToken(scope);\n return new Response(JSON.stringify({ access_token: token, token_type: \"Bearer\" }), {\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n if (validateUrl === path && request.method === \"POST\") {\n const authHeader = request.headers.get(\"Authorization\");\n if (!authHeader || !authHeader.startsWith(\"Bearer \")) {\n return new Response(JSON.stringify({ valid: false, error: \"Missing Authorization header\" }), {\n status: 401,\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n const token = authHeader.substring(7);\n const result = await validateToken(token, validation);\n return new Response(JSON.stringify(result), {\n status: result.valid ? 200 : 401,\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n if (jwksUrl === path && request.method === \"GET\") {\n const jwks = await fetchJwks();\n return new Response(JSON.stringify(jwks), {\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n if (refreshUrl === path && request.method === \"POST\") {\n const tokenResponse = await refreshToken();\n return new Response(JSON.stringify(tokenResponse), {\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n return new Response(\"Not Found\", { status: 404 });\n }\n return {\n ...configWithDefaults,\n getToken,\n refreshToken,\n generateJWTAssertion,\n revokeToken,\n validateToken,\n getWorkload,\n parseJWT,\n handler\n };\n}\n\n// packages/react/src/group-store.ts\nclass InMemoryGroupStore {\n groups = new Map;\n externalIdIndex = new Map;\n displayNameIndex = new Map;\n async get(id) {\n return this.groups.get(id) ?? null;\n }\n async getByExternalId(externalId) {\n const id = this.externalIdIndex.get(externalId);\n if (!id)\n return null;\n return this.groups.get(id) ?? null;\n }\n async getByDisplayName(displayName) {\n const id = this.displayNameIndex.get(displayName.toLowerCase());\n if (!id)\n return null;\n return this.groups.get(id) ?? null;\n }\n async list() {\n return Array.from(this.groups.values());\n }\n async upsert(group) {\n const existing = this.groups.get(group.id);\n if (existing) {\n if (existing.externalId && existing.externalId !== group.externalId) {\n this.externalIdIndex.delete(existing.externalId);\n }\n if (existing.displayName.toLowerCase() !== group.displayName.toLowerCase()) {\n this.displayNameIndex.delete(existing.displayName.toLowerCase());\n }\n }\n this.groups.set(group.id, group);\n if (group.externalId) {\n this.externalIdIndex.set(group.externalId, group.id);\n }\n this.displayNameIndex.set(group.displayName.toLowerCase(), group.id);\n }\n async delete(id) {\n const group = this.groups.get(id);\n if (group) {\n if (group.externalId) {\n this.externalIdIndex.delete(group.externalId);\n }\n this.displayNameIndex.delete(group.displayName.toLowerCase());\n }\n this.groups.delete(id);\n }\n async addMember(groupId, member) {\n const group = this.groups.get(groupId);\n if (!group) {\n throw new Error(`Group ${groupId} not found`);\n }\n const members = group.members ?? [];\n if (!members.some((m) => m.value === member.value)) {\n members.push(member);\n group.members = members;\n group.updatedAt = new Date;\n }\n }\n async removeMember(groupId, memberId) {\n const group = this.groups.get(groupId);\n if (!group) {\n throw new Error(`Group ${groupId} not found`);\n }\n if (group.members) {\n group.members = group.members.filter((m) => m.value !== memberId);\n group.updatedAt = new Date;\n }\n }\n}\n// packages/react/src/tenant.ts\nclass TenantRequestError extends Error {\n constructor(message) {\n super(message);\n this.name = \"TenantRequestError\";\n }\n}\nfunction serializeESConfig(configOrES) {\n if (configOrES && typeof configOrES === \"object\" && \"sso\" in configOrES && \"workload\" in configOrES && \"iam\" in configOrES) {\n const config2 = {\n defaultInstance: configOrES.defaultInstance,\n sso: configOrES.sso ? serializeESConfig(configOrES.sso) : undefined,\n iam: configOrES.iam ? serializeESConfig(configOrES.iam) : undefined,\n workload: configOrES.workload ? serializeESConfig(configOrES.workload) : undefined,\n validation: configOrES.validation\n };\n return config2;\n }\n const config = configOrES;\n if (config === null || config === undefined) {\n return config;\n }\n if (typeof config !== \"object\") {\n return config;\n }\n if (Array.isArray(config)) {\n return config.map((item) => serializeESConfig(item));\n }\n const isStore = typeof config.get === \"function\" || typeof config.set === \"function\" || typeof config.create === \"function\" || typeof config.delete === \"function\" || typeof config.upsert === \"function\" || typeof config.list === \"function\";\n const isValidator = config[\"~standard\"] !== undefined;\n if (typeof config === \"function\" || isStore || isValidator) {\n return;\n }\n if (config instanceof Date) {\n return config.toISOString();\n }\n const serialized = {};\n for (const key in config) {\n if (Object.prototype.hasOwnProperty.call(config, key)) {\n if (key === \"session_store\" || key === \"user_store\" || key === \"token_store\" || key === \"group_store\" || key === \"validation\" || key === \"vault\" || key === \"getUser\" || key === \"getRequiredUser\" || key === \"getJwt\" || key === \"initiateLogin\" || key === \"logout\" || key === \"callbackHandler\" || key === \"handler\" || key === \"getToken\" || key === \"refreshToken\" || key === \"generateJWTAssertion\" || key === \"revokeToken\" || key === \"validateToken\" || key === \"getWorkload\" || key === \"parseJWT\" || key === \"createUser\" || key === \"getBaseUrl\" || key === \"groups_outbound\" || key === \"groups_inbound\") {\n continue;\n }\n const value = serializeESConfig(config[key]);\n if (value !== undefined) {\n serialized[key] = value;\n }\n }\n }\n return serialized;\n}\nasync function parseTenantRequest(request) {\n if (request.method !== \"POST\") {\n throw new TenantRequestError(\"Only POST method is supported\");\n }\n let body;\n try {\n body = await request.json();\n } catch (_error) {\n throw new TenantRequestError(\"Invalid JSON in request body\");\n }\n if (typeof body !== \"object\" || body === null) {\n throw new TenantRequestError(\"Request body must be an object\");\n }\n const tenantRequest = body;\n if (!tenantRequest.appId) {\n throw new TenantRequestError(\"Missing required field: appId\");\n }\n if (!tenantRequest.companyId) {\n throw new TenantRequestError(\"Missing required field: companyId\");\n }\n if (!tenantRequest.companyName) {\n throw new TenantRequestError(\"Missing required field: companyName\");\n }\n if (!tenantRequest.environmentType) {\n throw new TenantRequestError(\"Missing required field: environmentType\");\n }\n if (!tenantRequest.email) {\n throw new TenantRequestError(\"Missing required field: email\");\n }\n if (!tenantRequest.webhookUrl) {\n throw new TenantRequestError(\"Missing required field: webhookUrl\");\n }\n const validEnvironmentTypes = [\"POC\", \"DEV\", \"QA\", \"PROD\"];\n if (!validEnvironmentTypes.includes(tenantRequest.environmentType)) {\n throw new TenantRequestError(`Invalid environmentType: ${tenantRequest.environmentType}. Must be one of: ${validEnvironmentTypes.join(\", \")}`);\n }\n try {\n new URL(tenantRequest.webhookUrl);\n } catch {\n throw new TenantRequestError(\"Invalid webhookUrl: must be a valid URL\");\n }\n const appId = tenantRequest.appId;\n const companyId = tenantRequest.companyId;\n const companyName = tenantRequest.companyName;\n const environmentType = tenantRequest.environmentType;\n const email = tenantRequest.email;\n const webhookUrl = tenantRequest.webhookUrl;\n return {\n appId,\n companyId,\n companyName,\n environmentType,\n email,\n webhookUrl\n };\n}\nasync function sendTenantWebhook(webhookUrl, payload) {\n try {\n const response = await fetch(webhookUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(payload)\n });\n if (!response.ok) {\n console.error(`Failed to send webhook update: ${response.status} ${response.statusText}`);\n }\n } catch (error) {\n console.error(\"Failed to send webhook update:\", error);\n }\n}\n\nclass InMemoryTenantStore {\n tenants = new Map;\n companyIdIndex = new Map;\n async get(appId) {\n return this.tenants.get(appId) ?? null;\n }\n async getByCompanyId(companyId) {\n const appIds = this.companyIdIndex.get(companyId);\n if (!appIds || appIds.size === 0)\n return [];\n const tenants = [];\n for (const appId of appIds) {\n const tenant = this.tenants.get(appId);\n if (tenant) {\n tenants.push(tenant);\n }\n }\n return tenants;\n }\n async list() {\n return Array.from(this.tenants.values());\n }\n async upsert(tenant) {\n const existing = this.tenants.get(tenant.appId);\n if (existing && existing.companyId !== tenant.companyId) {\n const oldAppIds = this.companyIdIndex.get(existing.companyId);\n if (oldAppIds) {\n oldAppIds.delete(tenant.appId);\n if (oldAppIds.size === 0) {\n this.companyIdIndex.delete(existing.companyId);\n }\n }\n }\n this.tenants.set(tenant.appId, tenant);\n let appIds = this.companyIdIndex.get(tenant.companyId);\n if (!appIds) {\n appIds = new Set;\n this.companyIdIndex.set(tenant.companyId, appIds);\n }\n appIds.add(tenant.appId);\n return tenant;\n }\n async delete(appId) {\n const tenant = this.tenants.get(appId);\n if (tenant) {\n const appIds = this.companyIdIndex.get(tenant.companyId);\n if (appIds) {\n appIds.delete(appId);\n if (appIds.size === 0) {\n this.companyIdIndex.delete(tenant.companyId);\n }\n }\n }\n this.tenants.delete(appId);\n }\n}\n// packages/react/src/workload-server.ts\nfunction getWorkloadInstance(config) {\n const es = getES(config?.es);\n if (!es.workload) {\n console.error(\"Workload authentication not configured in EnterpriseStandard\");\n return;\n }\n return es.workload;\n}\nfunction unavailable() {\n return new Response(JSON.stringify({ error: \"Workload authentication unavailable\" }), {\n status: 503,\n statusText: \"Workload authentication unavailable\",\n headers: { \"Content-Type\": \"application/json\" }\n });\n}\nasync function getWorkload(request, config) {\n const workloadAuth = getWorkloadInstance(config);\n if (!workloadAuth) {\n return;\n }\n return workloadAuth.getWorkload(request);\n}\nasync function getWorkloadToken(scope, config) {\n const workloadAuth = getWorkloadInstance(config);\n if (!workloadAuth)\n throw unavailable();\n return workloadAuth.getToken(scope);\n}\nasync function validateWorkloadToken(request, config) {\n const workloadAuth = getWorkloadInstance(config);\n if (!workloadAuth) {\n return { valid: false, error: \"Workload authentication unavailable\" };\n }\n const authHeader = request.headers.get(\"Authorization\");\n if (!authHeader || !authHeader.startsWith(\"Bearer \")) {\n return { valid: false, error: \"Missing or invalid Authorization header\" };\n }\n const token = authHeader.substring(7);\n return workloadAuth.validateToken(token);\n}\nasync function revokeWorkloadToken(token, config) {\n const workloadAuth = getWorkloadInstance(config);\n if (!workloadAuth)\n throw unavailable();\n return workloadAuth.revokeToken(token);\n}\nasync function workloadHandler(request, config) {\n const workloadAuth = getWorkloadInstance(config);\n if (!workloadAuth)\n throw unavailable();\n return workloadAuth.handler(request);\n}\n\n// packages/react/src/server.ts\nfunction getSSO(config) {\n const es = getES(config?.es);\n if (!es.sso) {\n console.error(\"TODO tell them how to connect SSO\");\n return;\n }\n return es.sso;\n}\nfunction unavailable2() {\n new Response(JSON.stringify({ error: \"SSO Unavailable\" }), {\n status: 503,\n statusText: \"SSO Unavailable\",\n headers: { \"Content-Type\": \"application/json\" }\n });\n}\nasync function getUser(request, config) {\n return getSSO(config)?.getUser(request);\n}\nasync function getRequiredUser(request, config) {\n const sso2 = getSSO(config);\n if (!sso2)\n throw unavailable2();\n return sso2.getRequiredUser(request);\n}\nasync function initiateLogin(config) {\n const sso2 = getSSO(config);\n if (!sso2)\n throw unavailable2();\n return sso2.initiateLogin(config);\n}\nasync function callback(request, config) {\n const sso2 = getSSO(config);\n if (!sso2)\n throw unavailable2();\n return sso2.callbackHandler(request);\n}\nasync function handler(request, config) {\n const sso2 = getSSO(config);\n if (!sso2)\n throw unavailable2();\n return sso2.handler(request);\n}\n// packages/react/src/session-store.ts\nclass InMemorySessionStore {\n sessions = new Map;\n async create(session) {\n if (this.sessions.has(session.sid)) {\n throw new Error(`Session with sid ${session.sid} already exists`);\n }\n this.sessions.set(session.sid, session);\n }\n async get(sid) {\n return this.sessions.get(sid) ?? null;\n }\n async update(sid, data) {\n const session = this.sessions.get(sid);\n if (!session) {\n throw new Error(`Session with sid ${sid} not found`);\n }\n const updated = { ...session, ...data };\n this.sessions.set(sid, updated);\n }\n async delete(sid) {\n this.sessions.delete(sid);\n }\n}\n// packages/react/src/ui/sign-in-loading.tsx\nimport { jsxDEV, Fragment } from \"react/jsx-dev-runtime\";\nfunction SignInLoading({ complete = false, children }) {\n const { isLoading } = useUser();\n if (isLoading && !complete)\n return /* @__PURE__ */ jsxDEV(Fragment, {\n children\n }, undefined, false, undefined, this);\n return null;\n}\n// packages/react/src/ui/signed-in.tsx\nimport { jsxDEV as jsxDEV2, Fragment as Fragment2 } from \"react/jsx-dev-runtime\";\nfunction SignedIn({ children }) {\n const { user } = useUser();\n if (user)\n return /* @__PURE__ */ jsxDEV2(Fragment2, {\n children\n }, undefined, false, undefined, this);\n return null;\n}\n// packages/react/src/ui/signed-out.tsx\nimport { jsxDEV as jsxDEV3, Fragment as Fragment3 } from \"react/jsx-dev-runtime\";\nfunction SignedOut({ children }) {\n const { user, isLoading } = useUser();\n if (user || isLoading)\n return null;\n return /* @__PURE__ */ jsxDEV3(Fragment3, {\n children\n }, undefined, false, undefined, this);\n}\n// packages/react/src/ui/sso-provider.tsx\nimport { createContext, useCallback, useContext, useEffect, useState } from \"react\";\nimport { jsxDEV as jsxDEV4 } from \"react/jsx-dev-runtime\";\nvar CTX = createContext(undefined);\nvar generateStorageKey = (tenantId) => {\n return `es-sso-user-${tenantId.replace(/[^a-zA-Z0-9]/g, \"-\").replace(/-+/g, \"-\").replace(/^-|-$/g, \"\")}`;\n};\nfunction SSOProvider({\n tenantId,\n storage = \"memory\",\n storageKey,\n userUrl,\n tokenUrl,\n refreshUrl,\n disableListener = false,\n children\n}) {\n const [user, setUserState] = useState(null);\n const [isLoading, setIsLoading] = useState(!!userUrl);\n const actualStorageKey = storageKey || (tenantId ? generateStorageKey(tenantId) : \"es-sso-user\");\n const isValidUser = useCallback((user2) => {\n if (!user2 || !tenantId)\n return true;\n return user2.sso?.tenant?.id === tenantId;\n }, [tenantId]);\n const loadUserFromStorage = useCallback(() => {\n if (storage === \"memory\" || typeof window === \"undefined\")\n return null;\n try {\n const storageObject = storage === \"local\" ? localStorage : sessionStorage;\n const userData = storageObject.getItem(actualStorageKey);\n if (!userData)\n return null;\n const parsedUser = JSON.parse(userData);\n if (parsedUser.sso?.expires) {\n parsedUser.sso.expires = new Date(parsedUser.sso.expires);\n }\n return isValidUser(parsedUser) ? parsedUser : null;\n } catch (error) {\n console.error(\"Error loading user from storage:\", error);\n return null;\n }\n }, [storage, actualStorageKey, isValidUser]);\n const saveUserToStorage = useCallback((user2) => {\n if (storage === \"memory\" || typeof window === \"undefined\")\n return;\n try {\n const storageObject = storage === \"local\" ? localStorage : sessionStorage;\n if (user2 === null) {\n storageObject.removeItem(actualStorageKey);\n } else {\n storageObject.setItem(actualStorageKey, JSON.stringify(user2));\n }\n } catch (error) {\n console.error(\"Error saving user to storage:\", error);\n }\n }, [storage, actualStorageKey]);\n const setUser = useCallback((newUser) => {\n if (newUser && !isValidUser(newUser))\n return;\n setUserState(newUser);\n saveUserToStorage(newUser);\n }, [isValidUser, saveUserToStorage]);\n const fetchUserFromUrl = useCallback(async () => {\n if (!userUrl)\n return;\n setIsLoading(true);\n try {\n const response = await fetch(userUrl);\n if (response.status === 401) {\n setUserState(null);\n saveUserToStorage(null);\n setIsLoading(false);\n return;\n }\n if (!response.ok) {\n throw new Error(`Failed to fetch user: ${response.status} ${response.statusText}`);\n }\n const userData = await response.json();\n if (userData.sso?.expires && typeof userData.sso.expires === \"string\") {\n userData.sso.expires = new Date(userData.sso.expires);\n }\n if (isValidUser(userData)) {\n setUserState(userData);\n saveUserToStorage(userData);\n }\n } catch (error) {\n console.error(\"Error fetching user from URL:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [userUrl, isValidUser, saveUserToStorage]);\n useEffect(() => {\n const storedUser = loadUserFromStorage();\n if (storedUser) {\n setUserState(storedUser);\n }\n if (userUrl) {\n fetchUserFromUrl();\n } else {\n setIsLoading(false);\n }\n }, [loadUserFromStorage, userUrl, fetchUserFromUrl]);\n useEffect(() => {\n if (disableListener || storage === \"memory\")\n return;\n const handleStorageChange = (event) => {\n if (event.key !== actualStorageKey)\n return;\n if (event.newValue === null) {\n setUserState(null);\n } else {\n try {\n const parsedUser = JSON.parse(event.newValue);\n if (parsedUser.sso?.expires) {\n parsedUser.sso.expires = new Date(parsedUser.sso.expires);\n }\n if (isValidUser(parsedUser)) {\n setUserState(parsedUser);\n }\n } catch (error) {\n console.error(\"Error parsing user from storage event:\", error);\n }\n }\n };\n const handleLogout = () => {\n setUserState(null);\n };\n window.addEventListener(\"storage\", handleStorageChange);\n window.addEventListener(\"es-sso-logout\", handleLogout);\n return () => {\n window.removeEventListener(\"storage\", handleStorageChange);\n window.removeEventListener(\"es-sso-logout\", handleLogout);\n };\n }, [disableListener, storage, actualStorageKey, isValidUser]);\n const contextValue = {\n user,\n setUser,\n isLoading,\n tokenUrl,\n refreshUrl\n };\n return /* @__PURE__ */ jsxDEV4(CTX.Provider, {\n value: contextValue,\n children\n }, undefined, false, undefined, this);\n}\nfunction useUser() {\n const context = useContext(CTX);\n if (context === undefined) {\n throw new Error(\"useUser must be used within a SSOProvider\");\n }\n return context;\n}\nfunction useToken() {\n const context = useContext(CTX);\n if (context === undefined) {\n throw new Error(\"useToken must be used within a SSOProvider\");\n }\n const { tokenUrl, refreshUrl } = context;\n if (!tokenUrl || !refreshUrl) {\n throw new Error('useToken requires that a \"tokenUrl\" and \"refreshUrl\" be set in the SSOProvider');\n }\n const [token, setToken] = useState(null);\n const [expires, setExpires] = useState(null);\n const [isLoading, setIsLoading] = useState(!!tokenUrl);\n const [error, setError] = useState(null);\n const fetchJwt = useCallback(async (url) => {\n setIsLoading(true);\n setError(null);\n try {\n const response = await fetch(url);\n if (response.status === 401) {\n context.setUser(null);\n setToken(null);\n setExpires(null);\n setIsLoading(false);\n return;\n }\n if (!response.ok) {\n throw new Error(`Failed to fetch JWT: ${response.status} ${response.statusText}`);\n }\n const data = await response.json();\n setToken(data.token);\n setExpires(new Date(data.expires));\n } catch (err) {\n const error2 = err instanceof Error ? err : new Error(String(err));\n setError(error2);\n setToken(null);\n setExpires(null);\n console.error(\"Error fetching JWT:\", error2);\n } finally {\n setIsLoading(false);\n }\n }, [context]);\n const refresh = useCallback(async () => {\n const url = refreshUrl || tokenUrl;\n if (!url) {\n console.warn(\"No tokenUrl or refreshUrl provided\");\n return;\n }\n await fetchJwt(url);\n }, [refreshUrl, tokenUrl, fetchJwt]);\n useEffect(() => {\n if (!tokenUrl) {\n setIsLoading(false);\n return;\n }\n fetchJwt(tokenUrl);\n }, [tokenUrl, fetchJwt]);\n useEffect(() => {\n if (!expires || !refreshUrl)\n return;\n const checkExpiration = () => {\n const now = new Date;\n const timeUntilExpiry = expires.getTime() - now.getTime();\n if (timeUntilExpiry <= 60000 && timeUntilExpiry > 0) {\n refresh();\n }\n };\n checkExpiration();\n const interval = setInterval(checkExpiration, 30000);\n return () => clearInterval(interval);\n }, [expires, refreshUrl, refresh]);\n return {\n token,\n isLoading,\n error,\n refresh\n };\n}\nasync function logout(logoutUrl) {\n try {\n const response = await fetch(logoutUrl, {\n headers: { Accept: \"application/json\" }\n });\n if (!response.ok) {\n return { success: false, error: `HTTP ${response.status}` };\n }\n const data = await response.json();\n if (!data.success) {\n return { success: false, error: data.message || \"Logout failed\" };\n }\n if (typeof window !== \"undefined\") {\n for (let i = localStorage.length - 1;i >= 0; i--) {\n const key = localStorage.key(i);\n if (key?.startsWith(\"es-sso-user\")) {\n localStorage.removeItem(key);\n }\n }\n for (let i = sessionStorage.length - 1;i >= 0; i--) {\n const key = sessionStorage.key(i);\n if (key?.startsWith(\"es-sso-user\")) {\n sessionStorage.removeItem(key);\n }\n }\n window.dispatchEvent(new CustomEvent(\"es-sso-logout\"));\n }\n return { success: true };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : \"Network error\"\n };\n }\n}\n// packages/react/src/user-store.ts\nclass InMemoryUserStore {\n users = new Map;\n emailIndex = new Map;\n userNameIndex = new Map;\n async get(sub) {\n return this.users.get(sub) ?? null;\n }\n async getByEmail(email) {\n const sub = this.emailIndex.get(email.toLowerCase());\n if (!sub)\n return null;\n return this.users.get(sub) ?? null;\n }\n async getByUserName(userName) {\n const sub = this.userNameIndex.get(userName.toLowerCase());\n if (!sub)\n return null;\n return this.users.get(sub) ?? null;\n }\n async upsert(user) {\n const existing = this.users.get(user.id);\n if (existing) {\n if (existing.email && existing.email.toLowerCase() !== user.email?.toLowerCase()) {\n this.emailIndex.delete(existing.email.toLowerCase());\n }\n if (existing.userName && existing.userName.toLowerCase() !== user.userName?.toLowerCase()) {\n this.userNameIndex.delete(existing.userName.toLowerCase());\n }\n }\n this.users.set(user.id, user);\n if (user.email) {\n this.emailIndex.set(user.email.toLowerCase(), user.id);\n }\n if (user.userName) {\n this.userNameIndex.set(user.userName.toLowerCase(), user.id);\n }\n }\n async delete(sub) {\n const user = this.users.get(sub);\n if (user) {\n if (user.email) {\n this.emailIndex.delete(user.email.toLowerCase());\n }\n if (user.userName) {\n this.userNameIndex.delete(user.userName.toLowerCase());\n }\n }\n this.users.delete(sub);\n }\n}\n\n// packages/react/src/index.ts\nfunction extractSsoValidation(validation) {\n if (!validation)\n return;\n const val = validation;\n if (val.callbackParams || val.idTokenClaims || val.tokenResponse) {\n return val;\n }\n if (typeof val === \"object\" && \"sso\" in val) {\n return val.sso;\n }\n return;\n}\nfunction extractWorkloadValidation(validation) {\n if (!validation)\n return;\n const val = validation;\n if (val.jwtAssertionClaims || val.tokenResponse) {\n return val;\n }\n if (typeof val === \"object\" && \"workload\" in val) {\n return val.workload;\n }\n return;\n}\nasync function enterpriseStandard(appId, initConfig) {\n const ioniteUrl = process.env.IONITE_URL ?? \"https://ionite.com\";\n let vaultUrl = process.env.ES_VAULT_URL;\n const vaultToken = process.env.ES_VAULT_TOKEN;\n const vaultPath = process.env.ES_VAULT_PATH;\n let secret;\n if (appId?.startsWith(\"IONITE_PUBLIC_DEMO_\") && !vaultUrl) {\n vaultUrl = \"https://vault-ionite.ionite.dev/v1/secret/data\";\n secret = {\n path: `public/${appId}`,\n token: \"hvs.VGhD2hmXDH9PmZjTacZx0G5K\"\n };\n } else if (vaultUrl && vaultToken && vaultPath) {\n secret = {\n path: vaultPath,\n token: vaultToken\n };\n } else if (!vaultUrl || !vaultToken || !vaultPath) {\n console.log(\"NODE_ENV\", \"development\");\n const cmd = `${process.versions.bun ? \"bun\" : \"npm\"} ionite login --app ${appId}`;\n throw new Error(`@enterprisestandard configuration missing.\n For development, login with the ionite CLI using \"${cmd}\" or visit ${ioniteUrl}/api/applications/apiKeys/create?appId=${appId}. If this is a non-development environment, ensure that you are deployed with the correct tenant pattern.`);\n }\n const defaultInstance2 = getDefaultInstance();\n const vaultClient = vault(vaultUrl);\n const ssoValidation = extractSsoValidation(initConfig?.validation);\n const workloadValidation = extractWorkloadValidation(initConfig?.validation);\n let vaultData = {};\n if (secret) {\n vaultData = await vaultClient.getSecret(secret.path, secret.token);\n }\n const workloadConfig = {\n ...vaultData.workload,\n ...initConfig?.workload,\n jwks_uri: initConfig?.workload?.jwks_uri ?? vaultData.workload?.jwks_uri,\n token_url: initConfig?.workload?.token_url ?? vaultData.workload?.token_url,\n validation: initConfig?.workload?.validation ?? workloadValidation\n };\n const workloadInstance = workload(workloadConfig);\n const ssoConfig = {\n ...vaultData.sso,\n ...initConfig?.sso,\n validation: initConfig?.sso?.validation ?? ssoValidation\n };\n const ssoInstance = sso(ssoConfig);\n const iamConfig = {\n ...vaultData.iam,\n ...initConfig?.iam\n };\n const iamInstance = iam(iamConfig, workloadInstance);\n const mergedConfig = {\n defaultInstance: initConfig?.defaultInstance,\n sso: ssoConfig,\n iam: iamConfig,\n workload: workloadConfig,\n validation: initConfig?.validation\n };\n const result = {\n ...mergedConfig,\n defaultInstance: initConfig?.defaultInstance || initConfig?.defaultInstance !== false && !defaultInstance2,\n vault: vaultClient,\n sso: ssoInstance,\n iam: iamInstance,\n workload: workloadInstance\n };\n if (result.defaultInstance) {\n if (defaultInstance2) {\n defaultInstance2.defaultInstance = false;\n }\n setDefaultInstance(result);\n }\n return result;\n}\nexport {\n workloadTokenResponseSchema,\n workloadHandler,\n workload,\n vault,\n validateWorkloadToken,\n userSchema,\n useUser,\n useToken,\n tokenResponseSchema,\n sso,\n serializeESConfig,\n sendTenantWebhook,\n revokeWorkloadToken,\n parseTenantRequest,\n oidcCallbackSchema,\n logout,\n jwtAssertionClaimsSchema,\n initiateLogin,\n idTokenClaimsSchema,\n iam,\n handler,\n groupResourceSchema,\n getWorkloadToken,\n getWorkload,\n getUser,\n getRequiredUser,\n getES,\n getDefaultInstance,\n enterpriseStandard,\n callback,\n TenantRequestError,\n SignedOut,\n SignedIn,\n SignInLoading,\n SSOProvider,\n InMemoryWorkloadTokenStore,\n InMemoryUserStore,\n InMemoryTenantStore,\n InMemorySessionStore,\n InMemoryGroupStore\n};\n\n//# debugId=755D0ECE5A3DFE8164756E2164756E21\n",
|
|
27
|
+
"// packages/react/src/types/scim-schema.ts\nfunction validateString(value, fieldName, required, issues, path) {\n if (value === undefined || value === null) {\n if (required) {\n issues.push({\n message: `${fieldName} is required`,\n path\n });\n }\n return;\n }\n if (typeof value !== \"string\") {\n issues.push({\n message: `${fieldName} must be a string`,\n path\n });\n return;\n }\n return value;\n}\nfunction validateBoolean(value, fieldName, issues, path) {\n if (value === undefined || value === null) {\n return;\n }\n if (typeof value !== \"boolean\") {\n issues.push({\n message: `${fieldName} must be a boolean`,\n path\n });\n return;\n }\n return value;\n}\nfunction validateName(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (typeof value !== \"object\" || value === null) {\n issues.push({\n message: \"name must be an object\",\n path: basePath\n });\n return;\n }\n const name = value;\n const result = {};\n result.formatted = validateString(name.formatted, \"formatted\", false, issues, [...basePath, \"formatted\"]);\n result.familyName = validateString(name.familyName, \"familyName\", false, issues, [...basePath, \"familyName\"]);\n result.givenName = validateString(name.givenName, \"givenName\", false, issues, [...basePath, \"givenName\"]);\n result.middleName = validateString(name.middleName, \"middleName\", false, issues, [...basePath, \"middleName\"]);\n result.honorificPrefix = validateString(name.honorificPrefix, \"honorificPrefix\", false, issues, [\n ...basePath,\n \"honorificPrefix\"\n ]);\n result.honorificSuffix = validateString(name.honorificSuffix, \"honorificSuffix\", false, issues, [\n ...basePath,\n \"honorificSuffix\"\n ]);\n return result;\n}\nfunction validateEmails(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"emails must be an array\",\n path: basePath\n });\n return;\n }\n const emails = [];\n for (let i = 0;i < value.length; i++) {\n const email = value[i];\n const emailPath = [...basePath, i];\n if (typeof email !== \"object\" || email === null) {\n issues.push({\n message: \"email must be an object\",\n path: emailPath\n });\n continue;\n }\n const emailObj = email;\n const emailValue = validateString(emailObj.value, \"value\", true, issues, [...emailPath, \"value\"]);\n if (emailValue) {\n emails.push({\n value: emailValue,\n display: validateString(emailObj.display, \"display\", false, issues, [...emailPath, \"display\"]),\n type: validateString(emailObj.type, \"type\", false, issues, [...emailPath, \"type\"]),\n primary: validateBoolean(emailObj.primary, \"primary\", issues, [...emailPath, \"primary\"])\n });\n }\n }\n return emails.length > 0 ? emails : undefined;\n}\nfunction validatePhoneNumbers(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"phoneNumbers must be an array\",\n path: basePath\n });\n return;\n }\n const phoneNumbers = [];\n for (let i = 0;i < value.length; i++) {\n const phone = value[i];\n const phonePath = [...basePath, i];\n if (typeof phone !== \"object\" || phone === null) {\n issues.push({\n message: \"phoneNumber must be an object\",\n path: phonePath\n });\n continue;\n }\n const phoneObj = phone;\n const phoneValue = validateString(phoneObj.value, \"value\", true, issues, [...phonePath, \"value\"]);\n if (phoneValue) {\n phoneNumbers.push({\n value: phoneValue,\n display: validateString(phoneObj.display, \"display\", false, issues, [...phonePath, \"display\"]),\n type: validateString(phoneObj.type, \"type\", false, issues, [...phonePath, \"type\"]),\n primary: validateBoolean(phoneObj.primary, \"primary\", issues, [...phonePath, \"primary\"])\n });\n }\n }\n return phoneNumbers.length > 0 ? phoneNumbers : undefined;\n}\nfunction validateAddresses(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"addresses must be an array\",\n path: basePath\n });\n return;\n }\n const addresses = [];\n for (let i = 0;i < value.length; i++) {\n const address = value[i];\n const addressPath = [...basePath, i];\n if (typeof address !== \"object\" || address === null) {\n issues.push({\n message: \"address must be an object\",\n path: addressPath\n });\n continue;\n }\n const addressObj = address;\n addresses.push({\n formatted: validateString(addressObj.formatted, \"formatted\", false, issues, [...addressPath, \"formatted\"]),\n streetAddress: validateString(addressObj.streetAddress, \"streetAddress\", false, issues, [\n ...addressPath,\n \"streetAddress\"\n ]),\n locality: validateString(addressObj.locality, \"locality\", false, issues, [...addressPath, \"locality\"]),\n region: validateString(addressObj.region, \"region\", false, issues, [...addressPath, \"region\"]),\n postalCode: validateString(addressObj.postalCode, \"postalCode\", false, issues, [...addressPath, \"postalCode\"]),\n country: validateString(addressObj.country, \"country\", false, issues, [...addressPath, \"country\"]),\n type: validateString(addressObj.type, \"type\", false, issues, [...addressPath, \"type\"]),\n primary: validateBoolean(addressObj.primary, \"primary\", issues, [...addressPath, \"primary\"])\n });\n }\n return addresses.length > 0 ? addresses : undefined;\n}\nfunction validateGroups(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"groups must be an array\",\n path: basePath\n });\n return;\n }\n const groups = [];\n for (let i = 0;i < value.length; i++) {\n const group = value[i];\n const groupPath = [...basePath, i];\n if (typeof group !== \"object\" || group === null) {\n issues.push({\n message: \"group must be an object\",\n path: groupPath\n });\n continue;\n }\n const groupObj = group;\n const groupValue = validateString(groupObj.value, \"value\", true, issues, [...groupPath, \"value\"]);\n if (groupValue) {\n groups.push({\n value: groupValue,\n $ref: validateString(groupObj.$ref, \"$ref\", false, issues, [...groupPath, \"$ref\"]),\n display: validateString(groupObj.display, \"display\", false, issues, [...groupPath, \"display\"]),\n type: validateString(groupObj.type, \"type\", false, issues, [...groupPath, \"type\"])\n });\n }\n }\n return groups.length > 0 ? groups : undefined;\n}\nfunction validateRoles(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"roles must be an array\",\n path: basePath\n });\n return;\n }\n const roles = [];\n for (let i = 0;i < value.length; i++) {\n const role = value[i];\n const rolePath = [...basePath, i];\n if (typeof role !== \"object\" || role === null) {\n issues.push({\n message: \"role must be an object\",\n path: rolePath\n });\n continue;\n }\n const roleObj = role;\n const roleValue = validateString(roleObj.value, \"value\", true, issues, [...rolePath, \"value\"]);\n if (roleValue) {\n roles.push({\n value: roleValue,\n display: validateString(roleObj.display, \"display\", false, issues, [...rolePath, \"display\"]),\n type: validateString(roleObj.type, \"type\", false, issues, [...rolePath, \"type\"]),\n primary: validateBoolean(roleObj.primary, \"primary\", issues, [...rolePath, \"primary\"])\n });\n }\n }\n return roles.length > 0 ? roles : undefined;\n}\nfunction validateEnterpriseUser(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (typeof value !== \"object\" || value === null) {\n issues.push({\n message: \"Enterprise User extension must be an object\",\n path: basePath\n });\n return;\n }\n const enterprise = value;\n const result = {};\n result.employeeNumber = validateString(enterprise.employeeNumber, \"employeeNumber\", false, issues, [\n ...basePath,\n \"employeeNumber\"\n ]);\n result.costCenter = validateString(enterprise.costCenter, \"costCenter\", false, issues, [...basePath, \"costCenter\"]);\n result.organization = validateString(enterprise.organization, \"organization\", false, issues, [\n ...basePath,\n \"organization\"\n ]);\n result.division = validateString(enterprise.division, \"division\", false, issues, [...basePath, \"division\"]);\n result.department = validateString(enterprise.department, \"department\", false, issues, [...basePath, \"department\"]);\n if (enterprise.manager !== undefined && enterprise.manager !== null) {\n if (typeof enterprise.manager !== \"object\" || enterprise.manager === null) {\n issues.push({\n message: \"manager must be an object\",\n path: [...basePath, \"manager\"]\n });\n } else {\n const manager = enterprise.manager;\n result.manager = {\n value: validateString(manager.value, \"value\", false, issues, [...basePath, \"manager\", \"value\"]),\n $ref: validateString(manager.$ref, \"$ref\", false, issues, [...basePath, \"manager\", \"$ref\"]),\n displayName: validateString(manager.displayName, \"displayName\", false, issues, [\n ...basePath,\n \"manager\",\n \"displayName\"\n ])\n };\n }\n }\n return result;\n}\nfunction userSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const user = value;\n const issues = [];\n const result = {};\n const userName = validateString(user.userName, \"userName\", true, issues, [\"userName\"]);\n if (!userName) {\n return { issues };\n }\n result.userName = userName;\n result.id = validateString(user.id, \"id\", false, issues, [\"id\"]);\n result.externalId = validateString(user.externalId, \"externalId\", false, issues, [\"externalId\"]);\n result.displayName = validateString(user.displayName, \"displayName\", false, issues, [\"displayName\"]);\n result.nickName = validateString(user.nickName, \"nickName\", false, issues, [\"nickName\"]);\n result.profileUrl = validateString(user.profileUrl, \"profileUrl\", false, issues, [\"profileUrl\"]);\n result.title = validateString(user.title, \"title\", false, issues, [\"title\"]);\n result.userType = validateString(user.userType, \"userType\", false, issues, [\"userType\"]);\n result.preferredLanguage = validateString(user.preferredLanguage, \"preferredLanguage\", false, issues, [\n \"preferredLanguage\"\n ]);\n result.locale = validateString(user.locale, \"locale\", false, issues, [\"locale\"]);\n result.timezone = validateString(user.timezone, \"timezone\", false, issues, [\"timezone\"]);\n result.password = validateString(user.password, \"password\", false, issues, [\"password\"]);\n result.active = validateBoolean(user.active, \"active\", issues, [\"active\"]);\n result.name = validateName(user.name, issues, [\"name\"]);\n result.emails = validateEmails(user.emails, issues, [\"emails\"]);\n result.phoneNumbers = validatePhoneNumbers(user.phoneNumbers, issues, [\"phoneNumbers\"]);\n result.addresses = validateAddresses(user.addresses, issues, [\"addresses\"]);\n result.groups = validateGroups(user.groups, issues, [\"groups\"]);\n result.roles = validateRoles(user.roles, issues, [\"roles\"]);\n const enterpriseKey = \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\";\n if (user[enterpriseKey] !== undefined) {\n result[enterpriseKey] = validateEnterpriseUser(user[enterpriseKey], issues, [enterpriseKey]);\n }\n if (user.schemas !== undefined) {\n if (Array.isArray(user.schemas)) {\n result.schemas = user.schemas.filter((s) => typeof s === \"string\");\n } else {\n issues.push({\n message: \"schemas must be an array\",\n path: [\"schemas\"]\n });\n }\n }\n if (user.meta !== undefined) {\n if (typeof user.meta === \"object\" && user.meta !== null) {\n const meta = user.meta;\n result.meta = {\n resourceType: typeof meta.resourceType === \"string\" ? meta.resourceType : undefined,\n created: typeof meta.created === \"string\" ? meta.created : undefined,\n lastModified: typeof meta.lastModified === \"string\" ? meta.lastModified : undefined,\n location: typeof meta.location === \"string\" ? meta.location : undefined,\n version: typeof meta.version === \"string\" ? meta.version : undefined\n };\n } else {\n issues.push({\n message: \"meta must be an object\",\n path: [\"meta\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\nfunction validateMembers(value, issues, basePath) {\n if (value === undefined || value === null) {\n return;\n }\n if (!Array.isArray(value)) {\n issues.push({\n message: \"members must be an array\",\n path: basePath\n });\n return;\n }\n const members = [];\n for (let i = 0;i < value.length; i++) {\n const member = value[i];\n const memberPath = [...basePath, i];\n if (typeof member !== \"object\" || member === null) {\n issues.push({\n message: \"member must be an object\",\n path: memberPath\n });\n continue;\n }\n const memberObj = member;\n const memberValue = validateString(memberObj.value, \"value\", true, issues, [...memberPath, \"value\"]);\n if (memberValue) {\n const memberType = validateString(memberObj.type, \"type\", false, issues, [...memberPath, \"type\"]);\n members.push({\n value: memberValue,\n $ref: validateString(memberObj.$ref, \"$ref\", false, issues, [...memberPath, \"$ref\"]),\n display: validateString(memberObj.display, \"display\", false, issues, [...memberPath, \"display\"]),\n type: memberType === \"User\" || memberType === \"Group\" ? memberType : undefined\n });\n }\n }\n return members.length > 0 ? members : undefined;\n}\nfunction groupResourceSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const group = value;\n const issues = [];\n const result = {};\n const displayName = validateString(group.displayName, \"displayName\", true, issues, [\"displayName\"]);\n if (!displayName) {\n return { issues };\n }\n result.displayName = displayName;\n result.id = validateString(group.id, \"id\", false, issues, [\"id\"]);\n result.externalId = validateString(group.externalId, \"externalId\", false, issues, [\"externalId\"]);\n result.members = validateMembers(group.members, issues, [\"members\"]);\n if (group.schemas !== undefined) {\n if (Array.isArray(group.schemas)) {\n result.schemas = group.schemas.filter((s) => typeof s === \"string\");\n } else {\n issues.push({\n message: \"schemas must be an array\",\n path: [\"schemas\"]\n });\n }\n }\n if (group.meta !== undefined) {\n if (typeof group.meta === \"object\" && group.meta !== null) {\n const meta = group.meta;\n result.meta = {\n resourceType: typeof meta.resourceType === \"string\" ? meta.resourceType : undefined,\n created: typeof meta.created === \"string\" ? meta.created : undefined,\n lastModified: typeof meta.lastModified === \"string\" ? meta.lastModified : undefined,\n location: typeof meta.location === \"string\" ? meta.location : undefined,\n version: typeof meta.version === \"string\" ? meta.version : undefined\n };\n } else {\n issues.push({\n message: \"meta must be an object\",\n path: [\"meta\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\n\n// packages/react/src/iam.ts\nvar SCIM_CONTENT_TYPE = \"application/scim+json\";\nfunction scimErrorResponse(status, detail, scimType) {\n return new Response(JSON.stringify({\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n status: String(status),\n scimType,\n detail\n }), {\n status,\n headers: { \"Content-Type\": SCIM_CONTENT_TYPE }\n });\n}\nfunction scimListResponse(resources) {\n return new Response(JSON.stringify({\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:ListResponse\"],\n totalResults: resources.length,\n startIndex: 1,\n itemsPerPage: resources.length,\n Resources: resources\n }), {\n status: 200,\n headers: { \"Content-Type\": SCIM_CONTENT_TYPE }\n });\n}\nfunction scimResourceResponse(resource, status = 200) {\n return new Response(JSON.stringify(resource), {\n status,\n headers: { \"Content-Type\": SCIM_CONTENT_TYPE }\n });\n}\nfunction storedGroupToResource(group) {\n return {\n schemas: [\"urn:ietf:params:scim:schemas:core:2.0:Group\"],\n id: group.id,\n externalId: group.externalId,\n displayName: group.displayName,\n members: group.members,\n meta: {\n resourceType: \"Group\",\n created: group.createdAt.toISOString(),\n lastModified: group.updatedAt.toISOString()\n }\n };\n}\nfunction generateId() {\n return crypto.randomUUID();\n}\nfunction iam(config, workload) {\n const { url, group_store } = config;\n async function buildHeaders() {\n const token = await workload.getToken();\n return new Headers({\n \"Content-Type\": SCIM_CONTENT_TYPE,\n Accept: SCIM_CONTENT_TYPE,\n Authorization: `Bearer ${token}`\n });\n }\n async function scimRequest(method, endpoint, body, validator) {\n if (!url) {\n return {\n success: false,\n error: {\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n status: \"500\",\n detail: \"IAM URL not configured for outgoing requests\"\n },\n status: 500\n };\n }\n const requestUrl = `${url}${endpoint}`;\n try {\n const headers = await buildHeaders();\n const response = await fetch(requestUrl, {\n method,\n headers,\n body: body ? JSON.stringify(body) : undefined\n });\n const responseData = await response.json();\n if (!response.ok) {\n return {\n success: false,\n error: responseData,\n status: response.status\n };\n }\n if (validator) {\n const validationResult = await validator[\"~standard\"].validate(responseData);\n if (\"issues\" in validationResult) {\n return {\n success: false,\n error: {\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n status: \"400\",\n scimType: \"invalidValue\",\n detail: `Response validation failed: ${validationResult.issues?.map((i) => i.message).join(\"; \")}`\n },\n status: 400\n };\n }\n return {\n success: true,\n data: validationResult.value,\n status: response.status\n };\n }\n return {\n success: true,\n data: responseData,\n status: response.status\n };\n } catch (error) {\n return {\n success: false,\n error: {\n schemas: [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n status: \"500\",\n detail: error instanceof Error ? error.message : \"Unknown error occurred\"\n },\n status: 500\n };\n }\n }\n function getBaseUrl() {\n return url;\n }\n let groups_outbound;\n let createUser;\n if (url) {\n createUser = async (user, options) => {\n const userPayload = {\n ...user,\n schemas: user.schemas ?? [\n \"urn:ietf:params:scim:schemas:core:2.0:User\",\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\"\n ]\n };\n const validator = options?.validation ?? userSchema(\"es-iam\");\n return scimRequest(\"POST\", \"/Users\", userPayload, validator);\n };\n async function createGroup(displayName, options) {\n const groupPayload = {\n schemas: [\"urn:ietf:params:scim:schemas:core:2.0:Group\"],\n displayName,\n externalId: options?.externalId,\n members: options?.members\n };\n const validator = options?.validation ?? groupResourceSchema(\"es-iam\");\n return scimRequest(\"POST\", \"/Groups\", groupPayload, validator);\n }\n groups_outbound = {\n createGroup\n };\n }\n let groups_inbound;\n if (group_store) {\n const store = group_store;\n const validateAuth = async (request) => {\n const auth = request.headers.get(\"Authorization\");\n if (!auth || !auth.startsWith(\"Bearer \")) {\n return false;\n }\n try {\n const token = auth.substring(7);\n const result = await workload.validateToken(token);\n return result.valid;\n } catch {\n return false;\n }\n };\n const handler = async (request, handlerConfig) => {\n const isAuthorized = await validateAuth(request);\n if (!isAuthorized) {\n return scimErrorResponse(401, \"Authorization required\");\n }\n const urlObj = new URL(request.url);\n const basePath = handlerConfig?.basePath ?? \"/Groups\";\n let path = urlObj.pathname;\n if (path.startsWith(basePath)) {\n path = path.substring(basePath.length);\n }\n const groupIdMatch = path.match(/^\\/([^/]+)$/);\n const groupId = groupIdMatch?.[1];\n const method = request.method;\n try {\n if (groupId) {\n switch (method) {\n case \"GET\":\n return await handleGetGroup(groupId);\n case \"PUT\":\n return await handleReplaceGroup(request, groupId);\n case \"PATCH\":\n return await handlePatchGroup(request, groupId);\n case \"DELETE\":\n return await handleDeleteGroup(groupId);\n default:\n return scimErrorResponse(405, \"Method not allowed\");\n }\n } else if (path === \"\" || path === \"/\") {\n switch (method) {\n case \"GET\":\n return await handleListGroups();\n case \"POST\":\n return await handleCreateGroup(request);\n default:\n return scimErrorResponse(405, \"Method not allowed\");\n }\n }\n return scimErrorResponse(404, \"Resource not found\");\n } catch (error) {\n console.error(\"Groups inbound handler error:\", error);\n return scimErrorResponse(500, error instanceof Error ? error.message : \"Internal server error\");\n }\n };\n const handleListGroups = async () => {\n const groups = await store.list();\n const resources = groups.map(storedGroupToResource);\n return scimListResponse(resources);\n };\n const handleGetGroup = async (id) => {\n const group = await store.get(id);\n if (!group) {\n return scimErrorResponse(404, `Group ${id} not found`, \"invalidValue\");\n }\n return scimResourceResponse(storedGroupToResource(group));\n };\n const handleCreateGroup = async (request) => {\n const body = await request.json();\n if (!body.displayName) {\n return scimErrorResponse(400, \"displayName is required\", \"invalidValue\");\n }\n const now = new Date;\n const storedGroup = {\n id: generateId(),\n displayName: body.displayName,\n externalId: body.externalId,\n members: body.members,\n createdAt: now,\n updatedAt: now\n };\n await store.upsert(storedGroup);\n return scimResourceResponse(storedGroupToResource(storedGroup), 201);\n };\n const handleReplaceGroup = async (request, id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `Group ${id} not found`, \"invalidValue\");\n }\n const body = await request.json();\n const updatedGroup = {\n ...existing,\n displayName: body.displayName ?? existing.displayName,\n externalId: body.externalId,\n members: body.members,\n updatedAt: new Date\n };\n await store.upsert(updatedGroup);\n return scimResourceResponse(storedGroupToResource(updatedGroup));\n };\n const handlePatchGroup = async (request, id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `Group ${id} not found`, \"invalidValue\");\n }\n const body = await request.json();\n const operations = body.Operations ?? [];\n const updated = { ...existing };\n for (const op of operations) {\n if (op.op === \"replace\" && op.path && op.value !== undefined) {\n if (op.path === \"displayName\") {\n updated.displayName = op.value;\n }\n } else if (op.op === \"add\" && op.path && op.value !== undefined) {\n if (op.path === \"members\") {\n const newMembers = op.value;\n updated.members = [...updated.members ?? [], ...newMembers];\n }\n } else if (op.op === \"remove\" && op.path) {\n if (op.path.startsWith(\"members[\")) {\n const match = op.path.match(/members\\[value eq \"([^\"]+)\"\\]/);\n if (match) {\n updated.members = (updated.members ?? []).filter((m) => m.value !== match[1]);\n }\n }\n }\n }\n updated.updatedAt = new Date;\n await store.upsert(updated);\n return scimResourceResponse(storedGroupToResource(updated));\n };\n const handleDeleteGroup = async (id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `Group ${id} not found`, \"invalidValue\");\n }\n await store.delete(id);\n return new Response(null, { status: 204 });\n };\n groups_inbound = {\n handler\n };\n }\n let users_inbound;\n if (config.user_store) {\n const store = config.user_store;\n async function validateAuth(request) {\n const auth = request.headers.get(\"Authorization\");\n if (!auth || !auth.startsWith(\"Bearer \")) {\n return false;\n }\n try {\n const token = auth.substring(7);\n const result = await workload.validateToken(token);\n return result.valid;\n } catch {\n return false;\n }\n }\n const storedUserToScimUser = (storedUser) => {\n return {\n schemas: [\n \"urn:ietf:params:scim:schemas:core:2.0:User\",\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\"\n ],\n id: storedUser.id,\n userName: storedUser.userName || storedUser.email || storedUser.id,\n displayName: storedUser.name || storedUser.userName || storedUser.email,\n name: storedUser.name ? {\n givenName: storedUser.name.split(\" \")[0],\n familyName: storedUser.name.split(\" \").slice(1).join(\" \") || undefined\n } : undefined,\n emails: storedUser.email ? [{ value: storedUser.email, primary: true }] : [],\n active: true,\n meta: {\n resourceType: \"User\",\n created: storedUser.createdAt.toISOString(),\n lastModified: storedUser.updatedAt.toISOString()\n }\n };\n };\n const scimUserToStoredUser = (scimUser) => {\n const now = new Date;\n const primaryEmail = scimUser.emails?.find((e) => e.primary)?.value || scimUser.emails?.[0]?.value;\n const name = scimUser.name ? `${scimUser.name.givenName || \"\"} ${scimUser.name.familyName || \"\"}`.trim() : scimUser.displayName;\n const userId = scimUser.id || generateId();\n const userName = scimUser.userName || primaryEmail || userId;\n return {\n id: userId,\n userName,\n name: name || scimUser.displayName || userName,\n email: primaryEmail || userName,\n avatarUrl: scimUser.profileUrl,\n sso: {\n profile: {\n sub: userId,\n iss: \"iam-provisioned\",\n aud: \"iam-provisioned\",\n exp: Math.floor(Date.now() / 1000) + 3600,\n iat: Math.floor(Date.now() / 1000),\n email: primaryEmail || userName,\n email_verified: true,\n name: name || scimUser.displayName || userName,\n preferred_username: userName\n },\n tenant: {\n id: \"iam-provisioned\",\n name: \"IAM Provisioned\"\n },\n scope: \"openid profile email\",\n tokenType: \"Bearer\",\n expires: new Date(Date.now() + 3600 * 1000)\n },\n createdAt: scimUser.meta?.created ? new Date(scimUser.meta.created) : now,\n updatedAt: scimUser.meta?.lastModified ? new Date(scimUser.meta.lastModified) : now\n };\n };\n const handler = async (request, handlerConfig) => {\n const isAuthorized = await validateAuth(request);\n if (!isAuthorized) {\n return scimErrorResponse(401, \"Authorization required\");\n }\n const urlObj = new URL(request.url);\n const basePath = handlerConfig?.basePath ?? \"/Users\";\n let path = urlObj.pathname;\n if (path.startsWith(basePath)) {\n path = path.substring(basePath.length);\n }\n const userIdMatch = path.match(/^\\/([^/]+)$/);\n const userId = userIdMatch?.[1];\n const method = request.method;\n try {\n if (userId) {\n switch (method) {\n case \"GET\":\n return await handleGetUser(userId);\n case \"PUT\":\n return await handleReplaceUser(request, userId);\n case \"PATCH\":\n return await handlePatchUser(request, userId);\n case \"DELETE\":\n return await handleDeleteUser(userId);\n default:\n return scimErrorResponse(405, \"Method not allowed\");\n }\n } else if (path === \"\" || path === \"/\") {\n switch (method) {\n case \"GET\":\n return await handleListUsers();\n case \"POST\":\n return await handleCreateUser(request);\n default:\n return scimErrorResponse(405, \"Method not allowed\");\n }\n }\n return scimErrorResponse(404, \"Resource not found\");\n } catch (error) {\n console.error(\"Users inbound handler error:\", error);\n return scimErrorResponse(500, error instanceof Error ? error.message : \"Internal server error\");\n }\n };\n const handleListUsers = async () => {\n return scimListResponse([]);\n };\n const handleGetUser = async (id) => {\n const user = await store.get(id);\n if (!user) {\n return scimErrorResponse(404, `User ${id} not found`, \"invalidValue\");\n }\n return scimResourceResponse(storedUserToScimUser(user));\n };\n const handleCreateUser = async (request) => {\n const body = await request.json();\n if (!body.userName && !body.emails?.[0]?.value) {\n return scimErrorResponse(400, \"userName or email is required\", \"invalidValue\");\n }\n const storedUser = scimUserToStoredUser(body);\n await store.upsert(storedUser);\n return scimResourceResponse(storedUserToScimUser(storedUser), 201);\n };\n const handleReplaceUser = async (request, id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `User ${id} not found`, \"invalidValue\");\n }\n const body = await request.json();\n const updatedUser = scimUserToStoredUser({ ...body, id });\n updatedUser.createdAt = existing.createdAt;\n updatedUser.updatedAt = new Date;\n await store.upsert(updatedUser);\n return scimResourceResponse(storedUserToScimUser(updatedUser));\n };\n const handlePatchUser = async (request, id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `User ${id} not found`, \"invalidValue\");\n }\n const body = await request.json();\n const operations = body.Operations ?? [];\n const updated = { ...existing };\n for (const op of operations) {\n if (op.op === \"replace\" && op.path && op.value !== undefined) {\n if (op.path === \"displayName\") {\n updated.name = op.value;\n } else if (op.path === \"userName\") {\n updated.userName = op.value;\n } else if (op.path.startsWith(\"name.\")) {\n const namePart = op.path.split(\".\")[1];\n if (!updated.name)\n updated.name = \"\";\n if (namePart === \"givenName\") {\n updated.name = `${op.value} ${updated.name.split(\" \").slice(1).join(\" \")}`.trim();\n } else if (namePart === \"familyName\") {\n updated.name = `${updated.name.split(\" \")[0]} ${op.value}`.trim();\n }\n } else if (op.path === \"emails\") {\n const emails = op.value;\n const primaryEmail = emails?.find((e) => e.primary)?.value || emails?.[0]?.value;\n if (primaryEmail)\n updated.email = primaryEmail;\n }\n } else if (op.op === \"add\" && op.path && op.value !== undefined) {\n if (op.path === \"emails\") {\n const newEmails = op.value;\n const primaryEmail = newEmails?.find((e) => e.primary)?.value || newEmails?.[0]?.value;\n if (primaryEmail)\n updated.email = primaryEmail;\n }\n } else if (op.op === \"remove\" && op.path) {\n if (op.path === \"displayName\") {\n updated.name = \"\";\n }\n }\n }\n updated.updatedAt = new Date;\n await store.upsert(updated);\n return scimResourceResponse(storedUserToScimUser(updated));\n };\n const handleDeleteUser = async (id) => {\n const existing = await store.get(id);\n if (!existing) {\n return scimErrorResponse(404, `User ${id} not found`, \"invalidValue\");\n }\n await store.delete(id);\n return new Response(null, { status: 204 });\n };\n users_inbound = {\n handler\n };\n }\n async function topLevelHandler(request, handlerConfig) {\n const urlObj = new URL(request.url);\n const path = urlObj.pathname;\n const usersUrl = handlerConfig?.usersUrl ?? config.usersUrl ?? \"/api/iam/Users\";\n const groupsUrl = handlerConfig?.groupsUrl ?? config.groupsUrl ?? \"/api/iam/Groups\";\n if (path.startsWith(usersUrl) && users_inbound) {\n return users_inbound.handler(request, { basePath: usersUrl });\n }\n if (path.startsWith(groupsUrl) && groups_inbound) {\n return groups_inbound.handler(request, { basePath: groupsUrl });\n }\n return scimErrorResponse(404, \"Resource not found\");\n }\n return {\n ...config,\n createUser,\n getBaseUrl,\n groups_outbound,\n groups_inbound,\n users_inbound,\n handler: topLevelHandler\n };\n}\n\n// packages/react/src/types/oidc-schema.ts\nfunction oidcCallbackSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const params = value;\n const issues = [];\n const result = {};\n if (\"code\" in params) {\n if (typeof params.code === \"string\") {\n result.code = params.code;\n } else {\n issues.push({\n message: \"code must be a string\",\n path: [\"code\"]\n });\n }\n } else if (!(\"error\" in params)) {\n issues.push({\n message: \"code is required\",\n path: [\"code\"]\n });\n }\n if (\"state\" in params) {\n if (typeof params.state === \"string\" || params.state === undefined) {\n result.state = params.state;\n } else {\n issues.push({\n message: \"state must be a string\",\n path: [\"state\"]\n });\n }\n }\n if (\"session_state\" in params) {\n if (typeof params.session_state === \"string\" || params.session_state === undefined) {\n result.session_state = params.session_state;\n } else {\n issues.push({\n message: \"session_state must be a string\",\n path: [\"session_state\"]\n });\n }\n }\n if (\"error\" in params) {\n if (typeof params.error === \"string\") {\n result.error = params.error;\n } else {\n issues.push({\n message: \"error must be a string\",\n path: [\"error\"]\n });\n }\n if (\"error_description\" in params) {\n if (typeof params.error_description === \"string\" || params.error_description === undefined) {\n result.error_description = params.error_description;\n } else {\n issues.push({\n message: \"error_description must be a string\",\n path: [\"error_description\"]\n });\n }\n }\n if (\"error_uri\" in params) {\n if (typeof params.error_uri === \"string\" || params.error_uri === undefined) {\n result.error_uri = params.error_uri;\n } else {\n issues.push({\n message: \"error_uri must be a string\",\n path: [\"error_uri\"]\n });\n }\n }\n }\n if (\"iss\" in params) {\n if (typeof params.iss === \"string\" || params.iss === undefined) {\n result.iss = params.iss;\n } else {\n issues.push({\n message: \"iss must be a string\",\n path: [\"iss\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\nfunction tokenResponseSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const response = value;\n const issues = [];\n const result = {};\n if (\"access_token\" in response) {\n if (typeof response.access_token === \"string\") {\n result.access_token = response.access_token;\n } else {\n issues.push({\n message: \"access_token must be a string\",\n path: [\"access_token\"]\n });\n }\n } else {\n issues.push({\n message: \"access_token is required\",\n path: [\"access_token\"]\n });\n }\n if (\"id_token\" in response) {\n if (typeof response.id_token === \"string\") {\n result.id_token = response.id_token;\n } else {\n issues.push({\n message: \"id_token must be a string\",\n path: [\"id_token\"]\n });\n }\n } else {\n issues.push({\n message: \"id_token is required\",\n path: [\"id_token\"]\n });\n }\n if (\"token_type\" in response) {\n if (typeof response.token_type === \"string\") {\n result.token_type = response.token_type;\n } else {\n issues.push({\n message: \"token_type must be a string\",\n path: [\"token_type\"]\n });\n }\n } else {\n issues.push({\n message: \"token_type is required\",\n path: [\"token_type\"]\n });\n }\n if (\"refresh_token\" in response) {\n if (typeof response.refresh_token === \"string\" || response.refresh_token === undefined) {\n result.refresh_token = response.refresh_token;\n } else {\n issues.push({\n message: \"refresh_token must be a string\",\n path: [\"refresh_token\"]\n });\n }\n }\n if (\"scope\" in response) {\n if (typeof response.scope === \"string\" || response.scope === undefined) {\n result.scope = response.scope;\n } else {\n issues.push({\n message: \"scope must be a string\",\n path: [\"scope\"]\n });\n }\n }\n if (\"session_state\" in response) {\n if (typeof response.session_state === \"string\" || response.session_state === undefined) {\n result.session_state = response.session_state;\n } else {\n issues.push({\n message: \"session_state must be a string\",\n path: [\"session_state\"]\n });\n }\n }\n if (\"expires\" in response) {\n if (typeof response.expires === \"string\" || response.expires === undefined) {\n result.expires = response.expires;\n } else {\n issues.push({\n message: \"expires must be a string\",\n path: [\"expires\"]\n });\n }\n }\n if (\"expires_in\" in response) {\n if (typeof response.expires_in === \"number\" || response.expires_in === undefined) {\n result.expires_in = response.expires_in;\n } else {\n issues.push({\n message: \"expires_in must be a number\",\n path: [\"expires_in\"]\n });\n }\n }\n if (\"refresh_expires_in\" in response) {\n if (typeof response.refresh_expires_in === \"number\" || response.refresh_expires_in === undefined) {\n result.refresh_expires_in = response.refresh_expires_in;\n } else {\n issues.push({\n message: \"refresh_expires_in must be a number\",\n path: [\"refresh_expires_in\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\nfunction idTokenClaimsSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const claims = value;\n const issues = [];\n const result = { ...claims };\n const stringFields = [\"iss\", \"aud\", \"sub\", \"sid\", \"name\", \"email\", \"preferred_username\", \"picture\"];\n for (const field of stringFields) {\n if (field in claims && claims[field] !== undefined) {\n if (typeof claims[field] !== \"string\") {\n issues.push({\n message: `${field} must be a string`,\n path: [field]\n });\n }\n }\n }\n const numberFields = [\"exp\", \"iat\"];\n for (const field of numberFields) {\n if (field in claims && claims[field] !== undefined) {\n if (typeof claims[field] !== \"number\") {\n issues.push({\n message: `${field} must be a number`,\n path: [field]\n });\n }\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\n\n// packages/react/src/utils.ts\nvar defaultInstance;\nfunction must(value, message = \"Assertion failed. Required value is null or undefined.\") {\n if (value === undefined || value === null) {\n throw new Error(message);\n }\n return value;\n}\nfunction setDefaultInstance(es) {\n defaultInstance = es;\n}\nfunction getDefaultInstance() {\n return defaultInstance;\n}\nfunction getES(es) {\n if (es)\n return es;\n if (defaultInstance)\n return defaultInstance;\n throw new Error(`TODO standardize the error message when there isn't a default EntepriseStandard`);\n}\n\n// packages/react/src/sso.ts\nvar jwksCache = new Map;\nfunction sso(config) {\n let configWithDefaults;\n const handlerDefaults = {\n loginUrl: config?.loginUrl,\n userUrl: config?.userUrl,\n errorUrl: config?.errorUrl,\n landingUrl: config?.landingUrl,\n tokenUrl: config?.tokenUrl,\n refreshUrl: config?.refreshUrl,\n jwksUrl: config?.jwksUrl,\n logoutUrl: config?.logoutUrl,\n logoutBackChannelUrl: config?.logoutBackChannelUrl,\n validation: config?.validation\n };\n configWithDefaults = !config ? undefined : {\n ...config,\n authority: must(config.authority, \"Missing 'authority' from SSO Config\"),\n token_url: must(config.token_url, \"Missing 'token_url' from SSO Config\"),\n authorization_url: must(config.authorization_url, \"Missing 'authorization_url' from SSO Config\"),\n client_id: must(config.client_id, \"Missing 'client_id' from SSO Config\"),\n redirect_uri: must(config.redirect_uri, \"Missing 'redirect_uri' from SSO Config\"),\n scope: must(config.scope, \"Missing 'scope' from SSO Config\"),\n response_type: config.response_type ?? \"code\",\n cookies_secure: config.cookies_secure !== undefined ? config.cookies_secure : true,\n cookies_same_site: config.cookies_same_site !== undefined ? config.cookies_same_site : \"Strict\",\n cookies_prefix: config.cookies_prefix ?? `es.sso.${config.client_id}`,\n cookies_path: config.cookies_path ?? \"/\"\n };\n async function getUser(request) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n try {\n const { tokens } = await getTokenFromCookies(request);\n if (!tokens)\n return;\n return await parseUser(tokens);\n } catch (error) {\n console.error(\"Error parsing user from cookies:\", error);\n return;\n }\n }\n async function getRequiredUser(request) {\n const user = await getUser(request);\n if (user)\n return user;\n throw new Response(\"Unauthorized\", {\n status: 401,\n statusText: \"Unauthorized\"\n });\n }\n async function initiateLogin({ landingUrl, errorUrl }, requestUrl) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const state = generateRandomString();\n const codeVerifier = generateRandomString(64);\n let normalizedRedirectUri = configWithDefaults.redirect_uri;\n try {\n new URL(normalizedRedirectUri);\n } catch {\n if (requestUrl) {\n try {\n const baseUrl = new URL(requestUrl);\n const path = normalizedRedirectUri.startsWith(\"//\") ? normalizedRedirectUri.slice(1) : normalizedRedirectUri.startsWith(\"/\") ? normalizedRedirectUri : `/${normalizedRedirectUri}`;\n normalizedRedirectUri = new URL(path, baseUrl.origin).toString();\n } catch {\n try {\n const authUrl = new URL(configWithDefaults.authorization_url);\n const path = normalizedRedirectUri.startsWith(\"//\") ? normalizedRedirectUri.slice(1) : normalizedRedirectUri.startsWith(\"/\") ? normalizedRedirectUri : `/${normalizedRedirectUri}`;\n normalizedRedirectUri = new URL(path, authUrl.origin).toString();\n } catch {\n throw new Error(`Invalid redirect_uri: \"${configWithDefaults.redirect_uri}\". It must be a valid absolute URL.`);\n }\n }\n }\n }\n const url = new URL(configWithDefaults.authorization_url);\n url.searchParams.append(\"client_id\", configWithDefaults.client_id);\n url.searchParams.append(\"redirect_uri\", normalizedRedirectUri);\n url.searchParams.append(\"response_type\", \"code\");\n url.searchParams.append(\"scope\", configWithDefaults.scope);\n url.searchParams.append(\"state\", state);\n const codeChallenge = await pkceChallengeFromVerifier(codeVerifier);\n url.searchParams.append(\"code_challenge\", codeChallenge);\n url.searchParams.append(\"code_challenge_method\", \"S256\");\n const val = {\n state,\n codeVerifier,\n landingUrl,\n errorUrl\n };\n return new Response(\"Redirecting to SSO Provider\", {\n status: 302,\n headers: {\n Location: url.toString(),\n \"Set-Cookie\": createCookie(\"state\", val, 86400)\n }\n });\n }\n async function logout(request, _config) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n try {\n const refreshToken2 = getCookie(\"refresh\", request);\n if (refreshToken2) {\n await revokeToken(refreshToken2);\n }\n } catch (error) {\n console.warn(\"Failed to revoke token:\", error);\n }\n if (configWithDefaults.session_store) {\n try {\n const user = await getUser(request);\n if (user?.sso?.profile.sid) {\n const sid = user.sso.profile.sid;\n await configWithDefaults.session_store.delete(sid);\n console.log(`Session ${sid} deleted from store`);\n }\n } catch (error) {\n console.warn(\"Failed to delete session:\", error);\n }\n }\n const clearHeaders = [\n [\"Set-Cookie\", clearCookie(\"access\")],\n [\"Set-Cookie\", clearCookie(\"id\")],\n [\"Set-Cookie\", clearCookie(\"refresh\")],\n [\"Set-Cookie\", clearCookie(\"control\")],\n [\"Set-Cookie\", clearCookie(\"state\")]\n ];\n const url = new URL(request.url);\n const redirectTo = url.searchParams.get(\"redirect\");\n if (redirectTo) {\n return new Response(\"Logged out\", {\n status: 302,\n headers: [[\"Location\", redirectTo], ...clearHeaders]\n });\n }\n const accept = request.headers.get(\"accept\");\n const isAjax = accept?.includes(\"application/json\") || accept?.includes(\"text/javascript\");\n if (isAjax) {\n return new Response(JSON.stringify({ success: true, message: \"Logged out\" }), {\n status: 200,\n headers: [[\"Content-Type\", \"application/json\"], ...clearHeaders]\n });\n } else {\n return new Response(`\n <!DOCTYPE html><html lang=\"en\"><body>\n <h1>Logout Complete</h1>\n <div style=\"display: none\">\n It is not recommended to show the default logout page. Include '?redirect=/someHomePage' or logout asynchronously.\n Check the <a href=\"https://EnterpriseStandard.com/sso#logout\">Enterprise Standard Packages</a> for more information.\n </div>\n </body></html>\n `, {\n status: 200,\n headers: [[\"Content-Type\", \"text/html\"], ...clearHeaders]\n });\n }\n }\n async function logoutBackChannel(request) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n if (!configWithDefaults.session_store) {\n throw new Error(\"Back-Channel Logout requires session_store configuration\");\n }\n try {\n const contentType = request.headers.get(\"content-type\");\n if (!contentType || !contentType.includes(\"application/x-www-form-urlencoded\")) {\n return new Response(\"Invalid Content-Type, expected application/x-www-form-urlencoded\", {\n status: 400\n });\n }\n const body = await request.text();\n const params = new URLSearchParams(body);\n const logoutToken = params.get(\"logout_token\");\n if (!logoutToken) {\n return new Response(\"Missing logout_token parameter\", { status: 400 });\n }\n const claims = await parseJwt(logoutToken);\n const sid = claims.sid;\n if (!sid) {\n console.warn(\"Back-Channel Logout: logout_token missing sid claim\");\n return new Response(\"Invalid logout_token: missing sid claim\", { status: 400 });\n }\n await configWithDefaults.session_store.delete(sid);\n console.log(`Back-Channel Logout: successfully deleted session ${sid}`);\n return new Response(\"OK\", { status: 200 });\n } catch (error) {\n console.error(\"Error during back-channel logout:\", error);\n return new Response(\"Internal Server Error\", { status: 500 });\n }\n }\n async function callbackHandler(request, validation) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const url = new URL(request.url);\n const params = new URLSearchParams(url.search);\n const callbackParamsValidator = validation?.callbackParams ?? oidcCallbackSchema(\"builtin\");\n const paramsObject = Object.fromEntries(params.entries());\n const paramsResult = await callbackParamsValidator[\"~standard\"].validate(paramsObject);\n if (\"issues\" in paramsResult) {\n return new Response(JSON.stringify({\n error: \"validation_failed\",\n message: \"OIDC callback parameters validation failed\",\n issues: paramsResult.issues?.map((i) => ({\n path: i.path?.join(\".\"),\n message: i.message\n }))\n }), {\n status: 400,\n headers: { \"Content-Type\": \"application/json\" }\n });\n }\n const { code: codeFromUrl, state: stateFromUrl } = paramsResult.value;\n try {\n const cookie = getCookie(\"state\", request, true);\n const { codeVerifier, state, landingUrl } = cookie ?? {};\n must(codeVerifier, 'OIDC \"codeVerifier\" was not present in cookies, ensure that the SSO login was initiated correctly');\n must(state, 'OIDC \"stateVerifier\" was not present in cookies, ensure that the SSO login was initiated correctly');\n must(landingUrl, 'OIDC \"landingUrl\" was not present in cookies');\n if (stateFromUrl !== state) {\n throw new Error('SSO State Verifier failed, the \"state\" request parameter does not equal the \"state\" in the SSO cookie');\n }\n const tokenResponse = await exchangeCodeForToken(codeFromUrl, codeVerifier, validation, request.url);\n const user = await parseUser(tokenResponse, validation);\n if (configWithDefaults.session_store) {\n try {\n const sid = user.sso.profile.sid;\n const sub = user.id;\n if (sid && sub) {\n const session = {\n sid,\n sub,\n createdAt: new Date,\n lastActivityAt: new Date\n };\n await configWithDefaults.session_store.create(session);\n } else {\n console.warn(\"Session creation skipped: missing sid or sub in ID token claims\");\n }\n } catch (error) {\n console.warn(\"Failed to create session:\", error);\n }\n }\n if (configWithDefaults.user_store) {\n try {\n const sub = user.id;\n if (sub) {\n const now = new Date;\n const existingUser = await configWithDefaults.user_store.get(sub);\n if (existingUser || configWithDefaults.enable_jit_user_provisioning) {\n const storedUser = {\n ...existingUser ?? {},\n ...user,\n id: sub,\n createdAt: existingUser?.createdAt ?? now,\n updatedAt: now\n };\n await configWithDefaults.user_store.upsert(storedUser);\n } else {\n console.warn(\"JIT user provisioning disabled: user not found in store and will not be created\");\n }\n } else {\n console.warn(\"User storage skipped: missing sub in ID token claims\");\n }\n } catch (error) {\n console.warn(\"Failed to store user:\", error);\n }\n }\n return new Response(\"Authentication successful, redirecting\", {\n status: 302,\n headers: [\n [\"Location\", landingUrl],\n [\"Set-Cookie\", clearCookie(\"state\")],\n ...createJwtCookies(tokenResponse, user.sso.expires)\n ]\n });\n } catch (error) {\n console.error(\"Error during sign-in callback:\", error);\n try {\n const cookie = getCookie(\"state\", request, true);\n const { errorUrl } = cookie ?? {};\n if (errorUrl) {\n return new Response(\"Redirecting to error url\", {\n status: 302,\n headers: [[\"Location\", errorUrl]]\n });\n }\n } catch (_err) {\n console.warn(\"Error parsing the errorUrl from the OIDC cookie\");\n }\n console.warn(\"No error page was found in the cookies. The user will be shown a default error page.\");\n return new Response(\"An error occurred during authentication, please return to the application homepage and try again.\", {\n status: 500\n });\n }\n }\n async function parseUser(token, validation) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const idToken = await parseJwt(token.id_token, validation);\n const expiresIn = Number(token.refresh_expires_in ?? token.expires_in ?? 3600);\n const expires = token.expires ? new Date(token.expires) : new Date(Date.now() + expiresIn * 1000);\n return {\n id: idToken.sub,\n userName: idToken.preferred_username || \"\",\n name: idToken.name || \"\",\n email: idToken.email || \"\",\n emails: [\n {\n value: idToken.email || \"\",\n primary: true\n }\n ],\n avatarUrl: idToken.picture,\n sso: {\n profile: {\n ...idToken,\n iss: idToken.iss || configWithDefaults.authority,\n aud: idToken.aud || configWithDefaults.client_id\n },\n tenant: {\n id: idToken.idp || idToken.iss || configWithDefaults.authority,\n name: idToken.iss || configWithDefaults.authority\n },\n scope: token.scope,\n tokenType: token.token_type,\n sessionState: token.session_state,\n expires\n }\n };\n }\n async function exchangeCodeForToken(code, codeVerifier, validation, requestUrl) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const tokenUrl = configWithDefaults.token_url;\n let normalizedRedirectUri = configWithDefaults.redirect_uri;\n try {\n new URL(normalizedRedirectUri);\n } catch {\n if (requestUrl) {\n try {\n const baseUrl = new URL(requestUrl);\n const path = normalizedRedirectUri.startsWith(\"//\") ? normalizedRedirectUri.slice(1) : normalizedRedirectUri.startsWith(\"/\") ? normalizedRedirectUri : `/${normalizedRedirectUri}`;\n normalizedRedirectUri = new URL(path, baseUrl.origin).toString();\n } catch {\n try {\n const tokenUrlObj = new URL(tokenUrl);\n const path = normalizedRedirectUri.startsWith(\"//\") ? normalizedRedirectUri.slice(1) : normalizedRedirectUri.startsWith(\"/\") ? normalizedRedirectUri : `/${normalizedRedirectUri}`;\n normalizedRedirectUri = new URL(path, tokenUrlObj.origin).toString();\n } catch {\n throw new Error(`Invalid redirect_uri: \"${configWithDefaults.redirect_uri}\". It must be a valid absolute URL.`);\n }\n }\n }\n }\n const body = new URLSearchParams;\n body.append(\"grant_type\", \"authorization_code\");\n body.append(\"code\", code);\n body.append(\"redirect_uri\", normalizedRedirectUri);\n body.append(\"client_id\", configWithDefaults.client_id);\n if (configWithDefaults.client_secret) {\n body.append(\"client_secret\", configWithDefaults.client_secret);\n }\n body.append(\"code_verifier\", codeVerifier);\n try {\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\"\n },\n body: body.toString()\n });\n const data = await response.json();\n if (!response.ok) {\n console.error(\"Token exchange error:\", data);\n throw new Error(`Token exchange failed: ${data.error || response.statusText} - ${data.error_description || \"\"}`.trim());\n }\n const tokenResponseValidator = validation?.tokenResponse ?? tokenResponseSchema(\"builtin\");\n const tokenResult = await tokenResponseValidator[\"~standard\"].validate(data);\n if (\"issues\" in tokenResult) {\n console.error(\"Token response validation failed:\", tokenResult.issues);\n throw new Error(`Token response validation failed: ${tokenResult.issues?.map((i) => i.message).join(\"; \")}`);\n }\n return tokenResult.value;\n } catch (error) {\n console.error(\"Error during token exchange:\", error);\n throw error;\n }\n }\n async function refreshToken(refreshToken2) {\n return retryWithBackoff(async () => {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const tokenUrl = configWithDefaults.token_url;\n const body = new URLSearchParams;\n body.append(\"grant_type\", \"refresh_token\");\n body.append(\"refresh_token\", refreshToken2);\n body.append(\"client_id\", configWithDefaults.client_id);\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\"\n },\n body: body.toString()\n });\n const data = await response.json();\n if (!response.ok) {\n console.error(\"Token refresh error:\", data);\n throw new Error(`Token refresh failed: ${data.error || response.statusText} - ${data.error_description || \"\"}`.trim());\n }\n return data;\n });\n }\n async function revokeToken(token) {\n try {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n if (!configWithDefaults.revocation_endpoint) {\n return;\n }\n const body = new URLSearchParams;\n body.append(\"token\", token);\n body.append(\"token_type_hint\", \"refresh_token\");\n body.append(\"client_id\", configWithDefaults.client_id);\n const response = await fetch(configWithDefaults.revocation_endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: body.toString()\n });\n if (!response.ok) {\n console.warn(\"Token revocation failed:\", response.status, response.statusText);\n } else {\n console.log(\"Token revoked successfully\");\n }\n } catch (error) {\n console.warn(\"Error revoking token:\", error);\n }\n }\n async function fetchJwks() {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const url = configWithDefaults.jwks_uri || `${configWithDefaults.authority}/protocol/openid-connect/certs`;\n const cached = jwksCache.get(url);\n if (cached)\n return cached;\n return retryWithBackoff(async () => {\n if (!configWithDefaults)\n throw new Error(\"SSO Manager not initialized\");\n const response = await fetch(url);\n if (!response.ok)\n throw new Error(\"Failed to fetch JWKS\");\n const jwks = await response.json();\n jwksCache.set(url, jwks);\n return jwks;\n });\n }\n async function retryWithBackoff(operation, maxRetries = 3, baseDelay = 1000, maxDelay = 30000) {\n let lastError = new Error(\"Placeholder Error\");\n for (let attempt = 0;attempt <= maxRetries; attempt++) {\n try {\n return await operation();\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n if (error instanceof Error && error.message.includes(\"400\")) {\n throw error;\n }\n if (attempt === maxRetries) {\n throw lastError;\n }\n const delay = Math.min(baseDelay * 2 ** attempt, maxDelay);\n const jitter = Math.random() * 0.1 * delay;\n await new Promise((resolve) => setTimeout(resolve, delay + jitter));\n console.warn(`Retry attempt ${attempt + 1} after ${delay + jitter}ms delay`);\n }\n }\n throw lastError;\n }\n async function parseJwt(token, validation) {\n try {\n const parts = token.split(\".\");\n if (parts.length !== 3)\n throw new Error(\"Invalid JWT\");\n const header = JSON.parse(atob(parts[0].replace(/-/g, \"+\").replace(/_/g, \"/\")));\n const payload = JSON.parse(atob(parts[1].replace(/-/g, \"+\").replace(/_/g, \"/\")));\n const signature = parts[2].replace(/-/g, \"+\").replace(/_/g, \"/\");\n const publicKey = await getPublicKey(header.kid);\n const encoder = new TextEncoder;\n const data = encoder.encode(`${parts[0]}.${parts[1]}`);\n const isValid = await crypto.subtle.verify(\"RSASSA-PKCS1-v1_5\", publicKey, Uint8Array.from(atob(signature), (c) => c.charCodeAt(0)), data);\n if (!isValid)\n throw new Error(\"Invalid JWT signature\");\n const idTokenClaimsValidator = validation?.idTokenClaims ?? idTokenClaimsSchema(\"builtin\");\n const claimsResult = await idTokenClaimsValidator[\"~standard\"].validate(payload);\n if (\"issues\" in claimsResult) {\n console.error(\"ID token claims validation failed:\", claimsResult.issues);\n throw new Error(`ID token claims validation failed: ${claimsResult.issues?.map((i) => i.message).join(\"; \")}`);\n }\n return claimsResult.value;\n } catch (e) {\n console.error(\"Error verifying JWT:\", e);\n throw e;\n }\n }\n function generateRandomString(length = 32) {\n const array = new Uint8Array(length);\n crypto.getRandomValues(array);\n return Array.from(array, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\").substring(0, length);\n }\n async function pkceChallengeFromVerifier(verifier) {\n const encoder = new TextEncoder;\n const data = encoder.encode(verifier);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashBase64 = btoa(String.fromCharCode(...hashArray)).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n return hashBase64;\n }\n async function getPublicKey(kid) {\n const jwks = await fetchJwks();\n const key = jwks.keys.find((k) => k.kid === kid);\n if (!key)\n throw new Error(\"Public key not found\");\n const publicKey = await crypto.subtle.importKey(\"jwk\", {\n kty: key.kty,\n n: key.n,\n e: key.e\n }, { name: \"RSASSA-PKCS1-v1_5\", hash: \"SHA-256\" }, false, [\"verify\"]);\n return publicKey;\n }\n function createJwtCookies(token, expires) {\n const control = {\n expires_in: token.expires_in,\n refresh_expires_in: token.refresh_expires_in,\n scope: token.scope,\n session_state: token.session_state,\n token_type: token.token_type,\n expires: expires.toISOString()\n };\n return [\n [\"Set-Cookie\", createCookie(\"access\", token.access_token, expires)],\n [\"Set-Cookie\", createCookie(\"id\", token.id_token, expires)],\n [\"Set-Cookie\", createCookie(\"refresh\", token.refresh_token ?? \"\", expires)],\n [\"Set-Cookie\", createCookie(\"control\", control, expires)]\n ];\n }\n async function getTokenFromCookies(req) {\n const access_token = getCookie(\"access\", req);\n const id_token = getCookie(\"id\", req);\n const refresh_token = getCookie(\"refresh\", req);\n const control = getCookie(\"control\", req, true);\n if (!access_token || !id_token || !refresh_token || !control) {\n return { tokens: undefined, refreshHeaders: [] };\n }\n let tokenResponse = {\n access_token,\n id_token,\n refresh_token,\n ...control\n };\n if (control.expires && refresh_token && Date.now() > new Date(control.expires).getTime()) {\n tokenResponse = await refreshToken(refresh_token);\n const user = await parseUser(tokenResponse);\n const refreshHeaders = createJwtCookies(tokenResponse, user.sso.expires);\n return { tokens: tokenResponse, refreshHeaders };\n }\n return { tokens: tokenResponse, refreshHeaders: [] };\n }\n async function getJwt(request) {\n const { tokens } = await getTokenFromCookies(request);\n if (!tokens)\n return;\n return tokens.access_token;\n }\n function createCookie(name, value, expires) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n name = `${configWithDefaults.cookies_prefix}.${name}`;\n if (typeof value !== \"string\") {\n value = btoa(JSON.stringify(value));\n }\n let exp;\n if (expires instanceof Date) {\n exp = `Expires=${expires.toUTCString()}`;\n } else if (typeof expires === \"number\") {\n exp = `Max-Age=${expires}`;\n } else {\n throw new Error(\"Invalid expires type\", expires);\n }\n if (value.length > 4000) {\n throw new Error(`Error setting cookie: ${name}. Cookie length is: ${value.length}`);\n }\n return `${name}=${value}; ${exp}; Path=${configWithDefaults.cookies_path}; HttpOnly;${configWithDefaults.cookies_secure ? \" Secure;\" : \"\"} SameSite=${configWithDefaults.cookies_same_site};`;\n }\n function clearCookie(name) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n return `${configWithDefaults.cookies_prefix}.${name}=; Max-Age=0; Path=${configWithDefaults.cookies_path}; HttpOnly;${configWithDefaults.cookies_secure ? \" Secure;\" : \"\"} SameSite=${configWithDefaults.cookies_same_site};`;\n }\n function getCookie(name, req, parse = false) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n const header = req.headers.get(\"cookie\");\n if (!header)\n return null;\n const cookie = header.split(\";\").find((row) => row.trim().startsWith(`${configWithDefaults.cookies_prefix}.${name}=`));\n if (!cookie)\n return null;\n const val = cookie.split(\"=\")[1].trim();\n if (!parse)\n return val;\n const str = atob(val);\n return JSON.parse(str);\n }\n async function handler(request, es) {\n const {\n loginUrl,\n userUrl,\n errorUrl,\n landingUrl,\n tokenUrl,\n refreshUrl,\n logoutUrl,\n logoutBackChannelUrl,\n jwksUrl,\n validation\n } = { ...handlerDefaults, ...es?.sso };\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n if (!loginUrl) {\n console.error(\"loginUrl is required\");\n }\n const path = new URL(request.url).pathname;\n let redirectUriPath;\n try {\n redirectUriPath = new URL(configWithDefaults.redirect_uri).pathname;\n } catch {\n try {\n const requestUrl = new URL(request.url);\n const redirectUri = configWithDefaults.redirect_uri.startsWith(\"//\") ? configWithDefaults.redirect_uri.slice(1) : configWithDefaults.redirect_uri;\n redirectUriPath = new URL(redirectUri, requestUrl.origin).pathname;\n } catch {\n redirectUriPath = configWithDefaults.redirect_uri.startsWith(\"/\") ? configWithDefaults.redirect_uri : `/${configWithDefaults.redirect_uri}`;\n }\n }\n if (redirectUriPath === path) {\n return callbackHandler(request, validation);\n }\n if (loginUrl === path) {\n return initiateLogin({\n landingUrl: landingUrl || \"/\",\n errorUrl\n }, request.url);\n }\n if (userUrl === path) {\n const { tokens, refreshHeaders } = await getTokenFromCookies(request);\n if (!tokens) {\n return new Response(\"User not logged in\", { status: 401 });\n }\n const user = await parseUser(tokens);\n return new Response(JSON.stringify(user), {\n headers: [[\"Content-Type\", \"application/json\"], ...refreshHeaders]\n });\n }\n if (tokenUrl === path) {\n const { tokens, refreshHeaders } = await getTokenFromCookies(request);\n if (!tokens) {\n return new Response(\"User not logged in\", { status: 401 });\n }\n return new Response(JSON.stringify({\n token: tokens.access_token,\n expires: tokens.expires\n }), {\n headers: [[\"Content-Type\", \"application/json\"], ...refreshHeaders]\n });\n }\n if (refreshUrl === path) {\n const refresh_token = getCookie(\"refresh\", request);\n if (!refresh_token) {\n return new Response(\"User not logged in\", { status: 401 });\n }\n const newTokenResponse = await refreshToken(refresh_token);\n const user = await parseUser(newTokenResponse);\n const refreshHeaders = createJwtCookies(newTokenResponse, user.sso.expires);\n return new Response(\"Refresh Complete\", {\n status: 200,\n headers: refreshHeaders\n });\n }\n if (logoutUrl === path) {\n return logout(request, { landingUrl: landingUrl || \"/\" });\n }\n if (logoutBackChannelUrl === path) {\n return logoutBackChannel(request);\n }\n if (jwksUrl === path) {\n const jwks = await fetchJwks();\n return new Response(JSON.stringify(jwks), {\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n return new Response(\"Not Found\", { status: 404 });\n }\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard SSO Manager not initialized\");\n }\n return {\n ...configWithDefaults,\n getUser,\n getRequiredUser,\n getJwt,\n initiateLogin,\n logout,\n callbackHandler,\n handler\n };\n}\n\n// packages/react/src/vault.ts\nfunction vault(url) {\n async function getFullSecret(path, token) {\n const resp = await fetch(`${url}/${path}`, { headers: { \"X-Vault-Token\": token } });\n if (resp.status !== 200) {\n throw new Error(`Vault returned invalid status, ${resp.status}: '${resp.statusText}' from URL: ${url}`);\n }\n try {\n const secret = await resp.json();\n return secret.data;\n } catch (cause) {\n throw new Error(\"Error retrieving secret\", { cause });\n }\n }\n return {\n url,\n getFullSecret,\n getSecret: async (path, token) => {\n return (await getFullSecret(path, token)).data;\n }\n };\n}\n\n// packages/react/src/types/workload-schema.ts\nfunction jwtAssertionClaimsSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const claims = value;\n const issues = [];\n const result = { ...claims };\n const requiredStringFields = [\"iss\", \"sub\"];\n for (const field of requiredStringFields) {\n if (field in claims) {\n if (typeof claims[field] !== \"string\") {\n issues.push({\n message: `${field} must be a string`,\n path: [field]\n });\n }\n } else {\n issues.push({\n message: `${field} is required`,\n path: [field]\n });\n }\n }\n if (\"aud\" in claims && claims.aud !== undefined) {\n const aud = claims.aud;\n if (typeof aud !== \"string\" && !Array.isArray(aud)) {\n issues.push({\n message: \"aud must be a string or array of strings\",\n path: [\"aud\"]\n });\n } else if (Array.isArray(aud) && !aud.every((a) => typeof a === \"string\")) {\n issues.push({\n message: \"aud array must contain only strings\",\n path: [\"aud\"]\n });\n }\n }\n const optionalStringFields = [\"jti\", \"scope\"];\n for (const field of optionalStringFields) {\n if (field in claims && claims[field] !== undefined) {\n if (typeof claims[field] !== \"string\") {\n issues.push({\n message: `${field} must be a string`,\n path: [field]\n });\n }\n }\n }\n const requiredNumberFields = [\"exp\", \"iat\"];\n for (const field of requiredNumberFields) {\n if (field in claims) {\n if (typeof claims[field] !== \"number\") {\n issues.push({\n message: `${field} must be a number`,\n path: [field]\n });\n }\n } else {\n issues.push({\n message: `${field} is required`,\n path: [field]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\nfunction workloadTokenResponseSchema(vendor) {\n return {\n \"~standard\": {\n version: 1,\n vendor,\n validate: (value) => {\n if (typeof value !== \"object\" || value === null) {\n return {\n issues: [\n {\n message: \"Expected an object\"\n }\n ]\n };\n }\n const response = value;\n const issues = [];\n const result = {};\n if (\"access_token\" in response) {\n if (typeof response.access_token === \"string\") {\n result.access_token = response.access_token;\n } else {\n issues.push({\n message: \"access_token must be a string\",\n path: [\"access_token\"]\n });\n }\n } else {\n issues.push({\n message: \"access_token is required\",\n path: [\"access_token\"]\n });\n }\n if (\"token_type\" in response) {\n if (typeof response.token_type === \"string\") {\n result.token_type = response.token_type;\n } else {\n issues.push({\n message: \"token_type must be a string\",\n path: [\"token_type\"]\n });\n }\n } else {\n issues.push({\n message: \"token_type is required\",\n path: [\"token_type\"]\n });\n }\n if (\"scope\" in response) {\n if (typeof response.scope === \"string\" || response.scope === undefined) {\n result.scope = response.scope;\n } else {\n issues.push({\n message: \"scope must be a string\",\n path: [\"scope\"]\n });\n }\n }\n if (\"refresh_token\" in response) {\n if (typeof response.refresh_token === \"string\" || response.refresh_token === undefined) {\n result.refresh_token = response.refresh_token;\n } else {\n issues.push({\n message: \"refresh_token must be a string\",\n path: [\"refresh_token\"]\n });\n }\n }\n if (\"expires\" in response) {\n if (typeof response.expires === \"string\" || response.expires === undefined) {\n result.expires = response.expires;\n } else {\n issues.push({\n message: \"expires must be a string\",\n path: [\"expires\"]\n });\n }\n }\n if (\"expires_in\" in response) {\n if (typeof response.expires_in === \"number\" || response.expires_in === undefined) {\n result.expires_in = response.expires_in;\n } else {\n issues.push({\n message: \"expires_in must be a number\",\n path: [\"expires_in\"]\n });\n }\n }\n if (issues.length > 0) {\n return { issues };\n }\n return { value: result };\n }\n }\n };\n}\n\n// packages/react/src/workload-token-store.ts\nclass InMemoryWorkloadTokenStore {\n tokens = new Map;\n async set(token) {\n this.tokens.set(token.workload_id, token);\n }\n async get(workload_id) {\n const token = this.tokens.get(workload_id);\n if (!token)\n return null;\n if (Date.now() > token.expires_at.getTime()) {\n this.tokens.delete(workload_id);\n return null;\n }\n return token;\n }\n async delete(workload_id) {\n this.tokens.delete(workload_id);\n }\n async isValid(workload_id) {\n const token = await this.get(workload_id);\n return token !== null;\n }\n async cleanup() {\n const now = Date.now();\n for (const [workload_id, token] of this.tokens.entries()) {\n if (now > token.expires_at.getTime()) {\n this.tokens.delete(workload_id);\n }\n }\n }\n}\n\n// packages/react/src/workload.ts\nvar jwksCache2 = new Map;\nfunction isJwtBearerConfig(config) {\n return \"workload_id\" in config || \"private_key\" in config;\n}\nfunction isClientCredentialsConfig(config) {\n return \"client_id\" in config || \"client_secret\" in config;\n}\nfunction isServerOnlyConfig(config) {\n return \"jwks_uri\" in config && !(\"workload_id\" in config) && !(\"client_id\" in config);\n}\nfunction validateWorkloadConfig(config) {\n const hasJwtBearer = \"workload_id\" in config && \"private_key\" in config;\n const hasClientCreds = \"client_id\" in config && \"client_secret\" in config;\n const hasServerOnly = \"jwks_uri\" in config;\n if (!hasJwtBearer && !hasClientCreds && !hasServerOnly) {\n throw new Error(\"Invalid WorkloadConfig: must provide either (workload_id + private_key) for JWT Bearer Grant, \" + \"(client_id + client_secret) for OAuth2 Client Credentials, or (jwks_uri) for server-only token validation\");\n }\n}\nfunction workload(config) {\n let configWithDefaults;\n if (!config) {\n configWithDefaults = undefined;\n } else {\n try {\n validateWorkloadConfig(config);\n if (isJwtBearerConfig(config)) {\n configWithDefaults = {\n ...config,\n token_url: must(config.token_url, \"Missing 'token_url' from Workload Config\"),\n workload_id: must(config.workload_id, \"Missing 'workload_id' from Workload Config\"),\n audience: must(config.audience, \"Missing 'audience' from Workload Config\"),\n scope: config.scope ?? \"\",\n algorithm: config.algorithm ?? \"RS256\",\n token_lifetime: config.token_lifetime ?? 300,\n refresh_threshold: config.refresh_threshold ?? 60,\n auto_refresh: config.auto_refresh !== undefined ? config.auto_refresh : true,\n token_store: config.token_store ?? new InMemoryWorkloadTokenStore\n };\n } else if (isClientCredentialsConfig(config)) {\n configWithDefaults = {\n ...config,\n token_url: must(config.token_url, \"Missing 'token_url' from Workload Config\"),\n client_id: must(config.client_id, \"Missing 'client_id' from Workload Config\"),\n client_secret: must(config.client_secret, \"Missing 'client_secret' from Workload Config\"),\n scope: config.scope ?? \"\",\n token_lifetime: config.token_lifetime ?? 300,\n refresh_threshold: config.refresh_threshold ?? 60,\n auto_refresh: config.auto_refresh !== undefined ? config.auto_refresh : true,\n token_store: config.token_store ?? new InMemoryWorkloadTokenStore\n };\n } else {\n configWithDefaults = config;\n }\n } catch {\n configWithDefaults = undefined;\n }\n }\n const initialized = true;\n function _ensureInitialized() {\n if (!initialized || !configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n }\n function generateJTI() {\n const array = new Uint8Array(16);\n crypto.getRandomValues(array);\n return Array.from(array, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n }\n function base64UrlEncode(data) {\n let base64;\n if (typeof data === \"string\") {\n base64 = btoa(data);\n } else {\n base64 = btoa(String.fromCharCode(...data));\n }\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n }\n function base64UrlDecode(base64url) {\n let base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n while (base64.length % 4) {\n base64 += \"=\";\n }\n return atob(base64);\n }\n function getAlgorithmParams(alg) {\n if (alg.startsWith(\"RS\")) {\n const hash = alg === \"RS256\" ? \"SHA-256\" : alg === \"RS384\" ? \"SHA-384\" : \"SHA-512\";\n return { name: \"RSASSA-PKCS1-v1_5\", hash };\n } else if (alg.startsWith(\"ES\")) {\n const namedCurve = alg === \"ES256\" ? \"P-256\" : alg === \"ES384\" ? \"P-384\" : \"P-521\";\n const hash = alg === \"ES256\" ? \"SHA-256\" : alg === \"ES384\" ? \"SHA-384\" : \"SHA-512\";\n return { name: \"ECDSA\", namedCurve, hash };\n }\n throw new Error(`Unsupported algorithm: ${alg}`);\n }\n async function importPrivateKey(pemKey, algorithm) {\n const pemContents = pemKey.replace(/-----BEGIN PRIVATE KEY-----/, \"\").replace(/-----END PRIVATE KEY-----/, \"\").replace(/\\s/g, \"\");\n const binaryDer = Uint8Array.from(atob(pemContents), (c) => c.charCodeAt(0));\n const algorithmParams = getAlgorithmParams(algorithm);\n return crypto.subtle.importKey(\"pkcs8\", binaryDer, algorithmParams, false, [\"sign\"]);\n }\n async function signJWT(data, privateKeyPEM, algorithm) {\n const privateKey = await importPrivateKey(privateKeyPEM, algorithm);\n const encoder = new TextEncoder;\n const dataBuffer = encoder.encode(data);\n const algorithmParams = getAlgorithmParams(algorithm);\n const signatureBuffer = await crypto.subtle.sign(algorithmParams, privateKey, dataBuffer);\n return base64UrlEncode(new Uint8Array(signatureBuffer));\n }\n async function retryWithBackoff(operation, maxRetries = 3, baseDelay = 1000, maxDelay = 30000) {\n let lastError = new Error(\"Placeholder Error\");\n for (let attempt = 0;attempt <= maxRetries; attempt++) {\n try {\n return await operation();\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n if (lastError.message.includes(\"400\") || lastError.message.includes(\"401\") || lastError.message.includes(\"403\") || lastError.message.includes(\"404\")) {\n throw lastError;\n }\n if (attempt < maxRetries) {\n const delay = Math.min(baseDelay * 2 ** attempt, maxDelay);\n const jitter = Math.random() * delay * 0.1;\n await new Promise((resolve) => setTimeout(resolve, delay + jitter));\n }\n }\n }\n throw lastError;\n }\n async function generateJWTAssertion(scope) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n if (!isJwtBearerConfig(configWithDefaults)) {\n throw new Error(\"generateJWTAssertion is only available in JWT Bearer Grant mode\");\n }\n const cfg = configWithDefaults;\n const now = Math.floor(Date.now() / 1000);\n const claims = {\n iss: cfg.workload_id,\n sub: cfg.workload_id,\n aud: cfg.audience ?? \"\",\n exp: now + cfg.token_lifetime,\n iat: now,\n jti: generateJTI(),\n scope: scope ?? cfg.scope\n };\n const header = {\n alg: cfg.algorithm,\n typ: \"JWT\",\n kid: cfg.key_id\n };\n const encodedHeader = base64UrlEncode(JSON.stringify(header));\n const encodedPayload = base64UrlEncode(JSON.stringify(claims));\n const signatureInput = `${encodedHeader}.${encodedPayload}`;\n const signature = await signJWT(signatureInput, cfg.private_key, cfg.algorithm);\n return `${signatureInput}.${signature}`;\n }\n async function acquireTokenJwtBearer(scope, validation) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n const cfg = configWithDefaults;\n return retryWithBackoff(async () => {\n const tokenUrl = cfg.token_url;\n const assertion = await generateJWTAssertion(scope);\n const body = new URLSearchParams;\n body.append(\"grant_type\", \"urn:ietf:params:oauth:grant-type:jwt-bearer\");\n body.append(\"assertion\", assertion);\n if (scope)\n body.append(\"scope\", scope);\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\"\n },\n body: body.toString()\n });\n const data = await response.json();\n if (!response.ok) {\n console.error(\"Token acquisition error:\", data);\n throw new Error(`Token acquisition failed: ${data.error || response.statusText} - ${data.error_description || \"\"}`.trim());\n }\n const validator = validation?.tokenResponse ?? workloadTokenResponseSchema(\"builtin\");\n const result = await validator[\"~standard\"].validate(data);\n if (\"issues\" in result) {\n console.error(\"Token response validation failed:\", result.issues);\n throw new Error(`Token response validation failed: ${result.issues?.map((i) => i.message).join(\"; \")}`);\n }\n if (cfg.token_store) {\n const expiresAt = new Date(Date.now() + (result.value.expires_in ?? 300) * 1000);\n const cachedToken = {\n workload_id: cfg.workload_id,\n access_token: result.value.access_token,\n token_type: result.value.token_type,\n scope: result.value.scope,\n expires_at: expiresAt,\n created_at: new Date,\n refresh_token: result.value.refresh_token\n };\n await cfg.token_store.set(cachedToken);\n }\n return result.value;\n });\n }\n async function acquireTokenClientCredentials(scope, validation) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n const cfg = configWithDefaults;\n return retryWithBackoff(async () => {\n const tokenUrl = cfg.token_url;\n const body = new URLSearchParams;\n body.append(\"grant_type\", \"client_credentials\");\n body.append(\"client_id\", cfg.client_id);\n body.append(\"client_secret\", cfg.client_secret);\n if (scope)\n body.append(\"scope\", scope);\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\"\n },\n body: body.toString()\n });\n const data = await response.json();\n if (!response.ok) {\n console.error(\"Token acquisition error:\", data);\n throw new Error(`Token acquisition failed: ${data.error || response.statusText} - ${data.error_description || \"\"}`.trim());\n }\n const validator = validation?.tokenResponse ?? workloadTokenResponseSchema(\"builtin\");\n const result = await validator[\"~standard\"].validate(data);\n if (\"issues\" in result) {\n console.error(\"Token response validation failed:\", result.issues);\n throw new Error(`Token response validation failed: ${result.issues?.map((i) => i.message).join(\"; \")}`);\n }\n if (cfg.token_store) {\n const expiresAt = new Date(Date.now() + (result.value.expires_in ?? 300) * 1000);\n const cachedToken = {\n workload_id: cfg.client_id,\n access_token: result.value.access_token,\n token_type: result.value.token_type,\n scope: result.value.scope,\n expires_at: expiresAt,\n created_at: new Date,\n refresh_token: result.value.refresh_token\n };\n await cfg.token_store.set(cachedToken);\n }\n return result.value;\n });\n }\n async function getToken(scope) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n if (isServerOnlyConfig(configWithDefaults)) {\n throw new Error(\"Cannot acquire tokens: Workload is configured in server-only mode (validation only). \" + \"To acquire tokens, configure client_id + client_secret for OAuth2 Client Credentials, \" + \"or workload_id + private_key for JWT Bearer Grant.\");\n }\n if (!configWithDefaults.token_url) {\n throw new Error(\"Cannot acquire tokens: Missing token_url in WorkloadConfig. \" + \"Client role requires token_url to be configured in vault.\");\n }\n if (isJwtBearerConfig(configWithDefaults)) {\n if (!configWithDefaults.private_key) {\n throw new Error(\"Cannot acquire tokens: Missing private_key in WorkloadConfig. \" + \"JWT Bearer Grant client role requires private_key to be configured in vault.\");\n }\n } else if (isClientCredentialsConfig(configWithDefaults)) {\n if (!configWithDefaults.client_secret) {\n throw new Error(\"Cannot acquire tokens: Missing client_secret in WorkloadConfig. \" + \"OAuth2 Client Credentials client role requires client_secret to be configured in vault.\");\n }\n }\n const requestedScope = scope ?? configWithDefaults.scope ?? \"\";\n let cacheKey;\n if (isJwtBearerConfig(configWithDefaults)) {\n cacheKey = configWithDefaults.workload_id;\n } else if (isClientCredentialsConfig(configWithDefaults)) {\n cacheKey = configWithDefaults.client_id;\n } else {\n throw new Error(\"Invalid WorkloadConfig\");\n }\n const cfg = configWithDefaults;\n if (cfg.token_store) {\n const cachedToken = await cfg.token_store.get(cacheKey);\n if (cachedToken) {\n const now = Date.now();\n const expiresAt = cachedToken.expires_at.getTime();\n const refreshThreshold = cfg.refresh_threshold * 1000;\n if (now + refreshThreshold < expiresAt) {\n return cachedToken.access_token;\n }\n if (cfg.auto_refresh) {\n try {\n const newToken = isJwtBearerConfig(configWithDefaults) ? await acquireTokenJwtBearer(requestedScope) : await acquireTokenClientCredentials(requestedScope);\n return newToken.access_token;\n } catch (error) {\n if (now < expiresAt) {\n console.warn(\"Token refresh failed, using cached token:\", error);\n return cachedToken.access_token;\n }\n throw error;\n }\n }\n }\n }\n const tokenResponse = isJwtBearerConfig(configWithDefaults) ? await acquireTokenJwtBearer(requestedScope) : await acquireTokenClientCredentials(requestedScope);\n return tokenResponse.access_token;\n }\n async function refreshToken() {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n if (isServerOnlyConfig(configWithDefaults)) {\n throw new Error(\"Cannot refresh tokens: Workload is configured in server-only mode (validation only).\");\n }\n const cfg = configWithDefaults;\n return isJwtBearerConfig(cfg) ? await acquireTokenJwtBearer(cfg.scope) : await acquireTokenClientCredentials(cfg.scope);\n }\n async function revokeToken(token) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n try {\n if (!configWithDefaults.revocation_endpoint) {\n return;\n }\n const body = new URLSearchParams;\n body.append(\"token\", token);\n body.append(\"token_type_hint\", \"access_token\");\n if (isJwtBearerConfig(configWithDefaults)) {\n const cfg = configWithDefaults;\n body.append(\"client_id\", cfg.workload_id);\n } else if (isClientCredentialsConfig(configWithDefaults)) {\n const cfg = configWithDefaults;\n body.append(\"client_id\", cfg.client_id);\n body.append(\"client_secret\", cfg.client_secret);\n }\n const response = await fetch(configWithDefaults.revocation_endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: body.toString()\n });\n if (!response.ok) {\n console.warn(\"Token revocation failed:\", response.status, response.statusText);\n } else {\n console.log(\"Token revoked successfully\");\n }\n if (configWithDefaults.token_store) {\n let cacheKey;\n if (isJwtBearerConfig(configWithDefaults)) {\n cacheKey = configWithDefaults.workload_id;\n } else if (isClientCredentialsConfig(configWithDefaults)) {\n cacheKey = configWithDefaults.client_id;\n } else {\n return;\n }\n await configWithDefaults.token_store.delete(cacheKey);\n }\n } catch (error) {\n console.warn(\"Error revoking token:\", error);\n }\n }\n async function fetchJwks() {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n const url = configWithDefaults.jwks_uri;\n if (!url) {\n throw new Error(\"Cannot validate tokens: Missing jwks_uri in WorkloadConfig. \" + \"Server role requires jwks_uri to be configured in vault to fetch public keys for token validation.\");\n }\n const cached = jwksCache2.get(url);\n if (cached)\n return cached;\n return retryWithBackoff(async () => {\n const response = await fetch(url);\n if (!response.ok)\n throw new Error(\"Failed to fetch JWKS\");\n const jwks = await response.json();\n jwksCache2.set(url, jwks);\n return jwks;\n });\n }\n async function getPublicKey(kid) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n const jwks = await fetchJwks();\n const key = jwks.keys.find((k) => k.kid === kid);\n if (!key)\n throw new Error(\"Public key not found\");\n const defaultAlg = isJwtBearerConfig(configWithDefaults) ? configWithDefaults.algorithm : \"RS256\";\n const algorithmParams = getAlgorithmParams(key.alg || defaultAlg);\n return crypto.subtle.importKey(\"jwk\", key, algorithmParams, false, [\"verify\"]);\n }\n async function parseJWT(token, validation) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n try {\n const parts = token.split(\".\");\n if (parts.length !== 3)\n throw new Error(\"Invalid JWT\");\n const header = JSON.parse(base64UrlDecode(parts[0]));\n const payload = JSON.parse(base64UrlDecode(parts[1]));\n const publicKey = await getPublicKey(header.kid);\n const signature = parts[2];\n const encoder = new TextEncoder;\n const data = encoder.encode(`${parts[0]}.${parts[1]}`);\n const signatureBytes = Uint8Array.from(base64UrlDecode(signature), (c) => c.charCodeAt(0));\n const algorithmParams = getAlgorithmParams(header.alg);\n const isValid = await crypto.subtle.verify(algorithmParams, publicKey, signatureBytes, data);\n if (!isValid)\n throw new Error(\"Invalid JWT signature\");\n const validator = validation?.jwtAssertionClaims ?? jwtAssertionClaimsSchema(\"builtin\");\n const result = await validator[\"~standard\"].validate(payload);\n if (\"issues\" in result) {\n console.error(\"JWT claims validation failed:\", result.issues);\n throw new Error(`JWT claims validation failed: ${result.issues?.map((i) => i.message).join(\"; \")}`);\n }\n return result.value;\n } catch (error) {\n console.error(\"Error verifying JWT:\", error);\n throw error;\n }\n }\n async function validateToken(token, validation) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n try {\n const claims = await parseJWT(token, validation);\n const now = Math.floor(Date.now() / 1000);\n if (claims.exp && claims.exp < now) {\n return { valid: false, error: \"Token expired\" };\n }\n if (isJwtBearerConfig(configWithDefaults)) {\n if (configWithDefaults.audience && claims.aud !== configWithDefaults.audience) {\n return { valid: false, error: \"Invalid audience\" };\n }\n } else if (isClientCredentialsConfig(configWithDefaults)) {\n if (configWithDefaults.issuer && claims.iss !== configWithDefaults.issuer) {\n return { valid: false, error: \"Invalid issuer\" };\n }\n if (configWithDefaults.audience && claims.aud !== configWithDefaults.audience) {\n return { valid: false, error: \"Invalid audience\" };\n }\n } else {\n const serverConfig = configWithDefaults;\n if (serverConfig.issuer && claims.iss !== serverConfig.issuer) {\n return { valid: false, error: \"Invalid issuer\" };\n }\n }\n return {\n valid: true,\n claims,\n expiresAt: claims.exp ? new Date(claims.exp * 1000) : undefined\n };\n } catch (error) {\n return {\n valid: false,\n error: error instanceof Error ? error.message : String(error)\n };\n }\n }\n async function getWorkload(request) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n if (!configWithDefaults.jwks_uri) {\n throw new Error(\"Cannot validate tokens: Missing jwks_uri in WorkloadConfig. \" + \"Server role requires jwks_uri to be configured in vault to fetch public keys for token validation.\");\n }\n const authHeader = request.headers.get(\"Authorization\");\n if (!authHeader || !authHeader.startsWith(\"Bearer \")) {\n return;\n }\n const token = authHeader.substring(7);\n const result = await validateToken(token, configWithDefaults.validation);\n if (!result.valid || !result.claims) {\n return;\n }\n return {\n workload_id: result.claims.sub,\n client_id: typeof result.claims.client_id === \"string\" ? result.claims.client_id : undefined,\n scope: result.claims.scope,\n claims: result.claims\n };\n }\n async function handler(request) {\n if (!configWithDefaults) {\n throw new Error(\"Enterprise Standard Workload Manager not initialized\");\n }\n const tokenUrl = configWithDefaults.tokenUrl;\n const validateUrl = configWithDefaults.validateUrl;\n const jwksUrl = configWithDefaults.jwksUrl;\n const refreshUrl = configWithDefaults.refreshUrl;\n const validation = configWithDefaults.validation;\n const path = new URL(request.url).pathname;\n if (tokenUrl === path && request.method === \"GET\") {\n const url = new URL(request.url);\n const scope = url.searchParams.get(\"scope\") || undefined;\n const token = await getToken(scope);\n return new Response(JSON.stringify({ access_token: token, token_type: \"Bearer\" }), {\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n if (validateUrl === path && request.method === \"POST\") {\n const authHeader = request.headers.get(\"Authorization\");\n if (!authHeader || !authHeader.startsWith(\"Bearer \")) {\n return new Response(JSON.stringify({ valid: false, error: \"Missing Authorization header\" }), {\n status: 401,\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n const token = authHeader.substring(7);\n const result = await validateToken(token, validation);\n return new Response(JSON.stringify(result), {\n status: result.valid ? 200 : 401,\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n if (jwksUrl === path && request.method === \"GET\") {\n const jwks = await fetchJwks();\n return new Response(JSON.stringify(jwks), {\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n if (refreshUrl === path && request.method === \"POST\") {\n const tokenResponse = await refreshToken();\n return new Response(JSON.stringify(tokenResponse), {\n headers: [[\"Content-Type\", \"application/json\"]]\n });\n }\n return new Response(\"Not Found\", { status: 404 });\n }\n return {\n ...configWithDefaults ?? {},\n getToken,\n refreshToken,\n generateJWTAssertion,\n revokeToken,\n validateToken,\n getWorkload,\n parseJWT,\n handler\n };\n}\n\n// packages/react/src/group-store.ts\nclass InMemoryGroupStore {\n groups = new Map;\n externalIdIndex = new Map;\n displayNameIndex = new Map;\n async get(id) {\n return this.groups.get(id) ?? null;\n }\n async getByExternalId(externalId) {\n const id = this.externalIdIndex.get(externalId);\n if (!id)\n return null;\n return this.groups.get(id) ?? null;\n }\n async getByDisplayName(displayName) {\n const id = this.displayNameIndex.get(displayName.toLowerCase());\n if (!id)\n return null;\n return this.groups.get(id) ?? null;\n }\n async list() {\n return Array.from(this.groups.values());\n }\n async upsert(group) {\n const existing = this.groups.get(group.id);\n if (existing) {\n if (existing.externalId && existing.externalId !== group.externalId) {\n this.externalIdIndex.delete(existing.externalId);\n }\n if (existing.displayName.toLowerCase() !== group.displayName.toLowerCase()) {\n this.displayNameIndex.delete(existing.displayName.toLowerCase());\n }\n }\n this.groups.set(group.id, group);\n if (group.externalId) {\n this.externalIdIndex.set(group.externalId, group.id);\n }\n this.displayNameIndex.set(group.displayName.toLowerCase(), group.id);\n }\n async delete(id) {\n const group = this.groups.get(id);\n if (group) {\n if (group.externalId) {\n this.externalIdIndex.delete(group.externalId);\n }\n this.displayNameIndex.delete(group.displayName.toLowerCase());\n }\n this.groups.delete(id);\n }\n async addMember(groupId, member) {\n const group = this.groups.get(groupId);\n if (!group) {\n throw new Error(`Group ${groupId} not found`);\n }\n const members = group.members ?? [];\n if (!members.some((m) => m.value === member.value)) {\n members.push(member);\n group.members = members;\n group.updatedAt = new Date;\n }\n }\n async removeMember(groupId, memberId) {\n const group = this.groups.get(groupId);\n if (!group) {\n throw new Error(`Group ${groupId} not found`);\n }\n if (group.members) {\n group.members = group.members.filter((m) => m.value !== memberId);\n group.updatedAt = new Date;\n }\n }\n}\n// packages/react/src/tenant.ts\nclass TenantRequestError extends Error {\n constructor(message) {\n super(message);\n this.name = \"TenantRequestError\";\n }\n}\nfunction serializeESConfig(configOrES) {\n if (configOrES && typeof configOrES === \"object\" && \"sso\" in configOrES && \"workload\" in configOrES && \"iam\" in configOrES) {\n const config2 = {\n defaultInstance: configOrES.defaultInstance,\n sso: configOrES.sso ? serializeESConfig(configOrES.sso) : undefined,\n iam: configOrES.iam ? serializeESConfig(configOrES.iam) : undefined,\n workload: configOrES.workload ? serializeESConfig(configOrES.workload) : undefined,\n validation: configOrES.validation\n };\n return config2;\n }\n const config = configOrES;\n if (config === null || config === undefined) {\n return config;\n }\n if (typeof config !== \"object\") {\n return config;\n }\n if (Array.isArray(config)) {\n return config.map((item) => serializeESConfig(item));\n }\n const isStore = typeof config.get === \"function\" || typeof config.set === \"function\" || typeof config.create === \"function\" || typeof config.delete === \"function\" || typeof config.upsert === \"function\" || typeof config.list === \"function\";\n const isValidator = config[\"~standard\"] !== undefined;\n if (typeof config === \"function\" || isStore || isValidator) {\n return;\n }\n if (config instanceof Date) {\n return config.toISOString();\n }\n const serialized = {};\n for (const key in config) {\n if (Object.hasOwn(config, key)) {\n if (key === \"session_store\" || key === \"user_store\" || key === \"token_store\" || key === \"group_store\" || key === \"validation\" || key === \"vault\" || key === \"getUser\" || key === \"getRequiredUser\" || key === \"getJwt\" || key === \"initiateLogin\" || key === \"logout\" || key === \"callbackHandler\" || key === \"handler\" || key === \"getToken\" || key === \"refreshToken\" || key === \"generateJWTAssertion\" || key === \"revokeToken\" || key === \"validateToken\" || key === \"getWorkload\" || key === \"parseJWT\" || key === \"createUser\" || key === \"getBaseUrl\" || key === \"groups_outbound\" || key === \"groups_inbound\") {\n continue;\n }\n const value = serializeESConfig(config[key]);\n if (value !== undefined) {\n serialized[key] = value;\n }\n }\n }\n return serialized;\n}\nasync function parseTenantRequest(request) {\n if (request.method !== \"POST\") {\n throw new TenantRequestError(\"Only POST method is supported\");\n }\n let body;\n try {\n body = await request.json();\n } catch (_error) {\n throw new TenantRequestError(\"Invalid JSON in request body\");\n }\n if (typeof body !== \"object\" || body === null) {\n throw new TenantRequestError(\"Request body must be an object\");\n }\n const tenantRequest = body;\n if (!tenantRequest.appId) {\n throw new TenantRequestError(\"Missing required field: appId\");\n }\n if (!tenantRequest.companyId) {\n throw new TenantRequestError(\"Missing required field: companyId\");\n }\n if (!tenantRequest.companyName) {\n throw new TenantRequestError(\"Missing required field: companyName\");\n }\n if (!tenantRequest.environmentType) {\n throw new TenantRequestError(\"Missing required field: environmentType\");\n }\n if (!tenantRequest.email) {\n throw new TenantRequestError(\"Missing required field: email\");\n }\n if (!tenantRequest.webhookUrl) {\n throw new TenantRequestError(\"Missing required field: webhookUrl\");\n }\n const validEnvironmentTypes = [\"POC\", \"DEV\", \"QA\", \"PROD\"];\n if (!validEnvironmentTypes.includes(tenantRequest.environmentType)) {\n throw new TenantRequestError(`Invalid environmentType: ${tenantRequest.environmentType}. Must be one of: ${validEnvironmentTypes.join(\", \")}`);\n }\n try {\n new URL(tenantRequest.webhookUrl);\n } catch {\n throw new TenantRequestError(\"Invalid webhookUrl: must be a valid URL\");\n }\n const appId = tenantRequest.appId;\n const companyId = tenantRequest.companyId;\n const companyName = tenantRequest.companyName;\n const environmentType = tenantRequest.environmentType;\n const email = tenantRequest.email;\n const webhookUrl = tenantRequest.webhookUrl;\n return {\n appId,\n companyId,\n companyName,\n environmentType,\n email,\n webhookUrl\n };\n}\nasync function sendTenantWebhook(webhookUrl, payload) {\n try {\n const response = await fetch(webhookUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(payload)\n });\n if (!response.ok) {\n console.error(`Failed to send webhook update: ${response.status} ${response.statusText}`);\n }\n } catch (error) {\n console.error(\"Failed to send webhook update:\", error);\n }\n}\n\nclass InMemoryTenantStore {\n tenants = new Map;\n companyIdIndex = new Map;\n async get(appId) {\n return this.tenants.get(appId) ?? null;\n }\n async getByCompanyId(companyId) {\n const appIds = this.companyIdIndex.get(companyId);\n if (!appIds || appIds.size === 0)\n return [];\n const tenants = [];\n for (const appId of appIds) {\n const tenant = this.tenants.get(appId);\n if (tenant) {\n tenants.push(tenant);\n }\n }\n return tenants;\n }\n async list() {\n return Array.from(this.tenants.values());\n }\n async upsert(tenant) {\n const existing = this.tenants.get(tenant.appId);\n if (existing && existing.companyId !== tenant.companyId) {\n const oldAppIds = this.companyIdIndex.get(existing.companyId);\n if (oldAppIds) {\n oldAppIds.delete(tenant.appId);\n if (oldAppIds.size === 0) {\n this.companyIdIndex.delete(existing.companyId);\n }\n }\n }\n this.tenants.set(tenant.appId, tenant);\n let appIds = this.companyIdIndex.get(tenant.companyId);\n if (!appIds) {\n appIds = new Set;\n this.companyIdIndex.set(tenant.companyId, appIds);\n }\n appIds.add(tenant.appId);\n return tenant;\n }\n async delete(appId) {\n const tenant = this.tenants.get(appId);\n if (tenant) {\n const appIds = this.companyIdIndex.get(tenant.companyId);\n if (appIds) {\n appIds.delete(appId);\n if (appIds.size === 0) {\n this.companyIdIndex.delete(tenant.companyId);\n }\n }\n }\n this.tenants.delete(appId);\n }\n}\n// packages/react/src/workload-server.ts\nfunction unavailable(error) {\n error = error ?? \"Workload authentication unavailable\";\n new Response(JSON.stringify({ error }), {\n status: 503,\n statusText: error,\n headers: { \"Content-Type\": \"application/json\" }\n });\n}\nasync function getWorkload(request, es) {\n const workloadAuth = getES(es)?.workload;\n if (!workloadAuth) {\n return;\n }\n return workloadAuth.getWorkload(request);\n}\nasync function getWorkloadToken(scope, es) {\n const workloadAuth = getES(es)?.workload;\n if (!workloadAuth)\n throw unavailable();\n return workloadAuth.getToken(scope);\n}\nasync function validateWorkloadToken(request, es) {\n const workloadAuth = getES(es)?.workload;\n if (!workloadAuth) {\n return { valid: false, error: \"Workload authentication unavailable\" };\n }\n const authHeader = request.headers.get(\"Authorization\");\n if (!authHeader || !authHeader.startsWith(\"Bearer \")) {\n return { valid: false, error: \"Missing or invalid Authorization header\" };\n }\n const token = authHeader.substring(7);\n return workloadAuth.validateToken(token);\n}\nasync function revokeWorkloadToken(token, es) {\n const workloadAuth = getES(es)?.workload;\n if (!workloadAuth)\n throw unavailable();\n return workloadAuth.revokeToken(token);\n}\nasync function workloadHandler(request, es) {\n const workloadAuth = getES(es)?.workload;\n if (!workloadAuth)\n throw unavailable();\n return workloadAuth.handler(request);\n}\n\n// packages/react/src/sso-server.ts\nfunction unavailable2(error) {\n error = error ?? \"SSO Unavailable\";\n new Response(JSON.stringify({ error }), {\n status: 503,\n statusText: error,\n headers: { \"Content-Type\": \"application/json\" }\n });\n}\nasync function getUser(request, es) {\n return getES(es)?.sso.getUser(request);\n}\nasync function getRequiredUser(request, es) {\n const sso2 = getES(es)?.sso;\n if (!sso2)\n throw unavailable2();\n return sso2.getRequiredUser(request);\n}\nasync function initiateLogin(config, es) {\n const sso2 = getES(es)?.sso;\n if (!sso2)\n throw unavailable2();\n return sso2.initiateLogin(config);\n}\nasync function callback(request, es) {\n const sso2 = getES(es)?.sso;\n if (!sso2)\n throw unavailable2();\n return sso2.callbackHandler(request);\n}\nasync function handler(request, es) {\n es = getES(es);\n if (!es)\n throw unavailable2();\n return es.sso.handler(request, es);\n}\n// packages/react/src/session-store.ts\nclass InMemorySessionStore {\n sessions = new Map;\n async create(session) {\n if (this.sessions.has(session.sid)) {\n throw new Error(`Session with sid ${session.sid} already exists`);\n }\n this.sessions.set(session.sid, session);\n }\n async get(sid) {\n return this.sessions.get(sid) ?? null;\n }\n async update(sid, data) {\n const session = this.sessions.get(sid);\n if (!session) {\n throw new Error(`Session with sid ${sid} not found`);\n }\n const updated = { ...session, ...data };\n this.sessions.set(sid, updated);\n }\n async delete(sid) {\n this.sessions.delete(sid);\n }\n}\n// packages/react/src/ui/sign-in-loading.tsx\nimport { jsxDEV, Fragment } from \"react/jsx-dev-runtime\";\nfunction SignInLoading({ complete = false, children }) {\n const { isLoading } = useUser();\n if (isLoading && !complete)\n return /* @__PURE__ */ jsxDEV(Fragment, {\n children\n }, undefined, false, undefined, this);\n return null;\n}\n// packages/react/src/ui/signed-in.tsx\nimport { jsxDEV as jsxDEV2, Fragment as Fragment2 } from \"react/jsx-dev-runtime\";\nfunction SignedIn({ children }) {\n const { user } = useUser();\n if (user)\n return /* @__PURE__ */ jsxDEV2(Fragment2, {\n children\n }, undefined, false, undefined, this);\n return null;\n}\n// packages/react/src/ui/signed-out.tsx\nimport { jsxDEV as jsxDEV3, Fragment as Fragment3 } from \"react/jsx-dev-runtime\";\nfunction SignedOut({ children }) {\n const { user, isLoading } = useUser();\n if (user || isLoading)\n return null;\n return /* @__PURE__ */ jsxDEV3(Fragment3, {\n children\n }, undefined, false, undefined, this);\n}\n// packages/react/src/ui/sso-provider.tsx\nimport { createContext, useCallback, useContext, useEffect, useState } from \"react\";\nimport { jsxDEV as jsxDEV4 } from \"react/jsx-dev-runtime\";\nvar CTX = createContext(undefined);\nvar generateStorageKey = (tenantId) => {\n return `es-sso-user-${tenantId.replace(/[^a-zA-Z0-9]/g, \"-\").replace(/-+/g, \"-\").replace(/^-|-$/g, \"\")}`;\n};\nfunction SSOProvider({\n tenantId,\n storage = \"memory\",\n storageKey,\n userUrl,\n tokenUrl,\n refreshUrl,\n disableListener = false,\n children\n}) {\n const [user, setUserState] = useState(null);\n const [isLoading, setIsLoading] = useState(!!userUrl);\n const actualStorageKey = storageKey || (tenantId ? generateStorageKey(tenantId) : \"es-sso-user\");\n const isValidUser = useCallback((user2) => {\n if (!user2 || !tenantId)\n return true;\n return user2.sso?.tenant?.id === tenantId;\n }, [tenantId]);\n const loadUserFromStorage = useCallback(() => {\n if (storage === \"memory\" || typeof window === \"undefined\")\n return null;\n try {\n const storageObject = storage === \"local\" ? localStorage : sessionStorage;\n const userData = storageObject.getItem(actualStorageKey);\n if (!userData)\n return null;\n const parsedUser = JSON.parse(userData);\n if (parsedUser.sso?.expires) {\n parsedUser.sso.expires = new Date(parsedUser.sso.expires);\n }\n return isValidUser(parsedUser) ? parsedUser : null;\n } catch (error) {\n console.error(\"Error loading user from storage:\", error);\n return null;\n }\n }, [storage, actualStorageKey, isValidUser]);\n const saveUserToStorage = useCallback((user2) => {\n if (storage === \"memory\" || typeof window === \"undefined\")\n return;\n try {\n const storageObject = storage === \"local\" ? localStorage : sessionStorage;\n if (user2 === null) {\n storageObject.removeItem(actualStorageKey);\n } else {\n storageObject.setItem(actualStorageKey, JSON.stringify(user2));\n }\n } catch (error) {\n console.error(\"Error saving user to storage:\", error);\n }\n }, [storage, actualStorageKey]);\n const setUser = useCallback((newUser) => {\n if (newUser && !isValidUser(newUser))\n return;\n setUserState(newUser);\n saveUserToStorage(newUser);\n }, [isValidUser, saveUserToStorage]);\n const fetchUserFromUrl = useCallback(async () => {\n if (!userUrl)\n return;\n setIsLoading(true);\n try {\n const response = await fetch(userUrl);\n if (response.status === 401) {\n setUserState(null);\n saveUserToStorage(null);\n setIsLoading(false);\n return;\n }\n if (!response.ok) {\n throw new Error(`Failed to fetch user: ${response.status} ${response.statusText}`);\n }\n const userData = await response.json();\n if (userData.sso?.expires && typeof userData.sso.expires === \"string\") {\n userData.sso.expires = new Date(userData.sso.expires);\n }\n if (isValidUser(userData)) {\n setUserState(userData);\n saveUserToStorage(userData);\n }\n } catch (error) {\n console.error(\"Error fetching user from URL:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [userUrl, isValidUser, saveUserToStorage]);\n useEffect(() => {\n const storedUser = loadUserFromStorage();\n if (storedUser) {\n setUserState(storedUser);\n }\n if (userUrl) {\n fetchUserFromUrl();\n } else {\n setIsLoading(false);\n }\n }, [loadUserFromStorage, userUrl, fetchUserFromUrl]);\n useEffect(() => {\n if (disableListener || storage === \"memory\")\n return;\n const handleStorageChange = (event) => {\n if (event.key !== actualStorageKey)\n return;\n if (event.newValue === null) {\n setUserState(null);\n } else {\n try {\n const parsedUser = JSON.parse(event.newValue);\n if (parsedUser.sso?.expires) {\n parsedUser.sso.expires = new Date(parsedUser.sso.expires);\n }\n if (isValidUser(parsedUser)) {\n setUserState(parsedUser);\n }\n } catch (error) {\n console.error(\"Error parsing user from storage event:\", error);\n }\n }\n };\n const handleLogout = () => {\n setUserState(null);\n };\n window.addEventListener(\"storage\", handleStorageChange);\n window.addEventListener(\"es-sso-logout\", handleLogout);\n return () => {\n window.removeEventListener(\"storage\", handleStorageChange);\n window.removeEventListener(\"es-sso-logout\", handleLogout);\n };\n }, [disableListener, storage, actualStorageKey, isValidUser]);\n const contextValue = {\n user,\n setUser,\n isLoading,\n tokenUrl,\n refreshUrl\n };\n return /* @__PURE__ */ jsxDEV4(CTX.Provider, {\n value: contextValue,\n children\n }, undefined, false, undefined, this);\n}\nfunction useUser() {\n const context = useContext(CTX);\n if (context === undefined) {\n throw new Error(\"useUser must be used within a SSOProvider\");\n }\n return context;\n}\nfunction useToken() {\n const context = useContext(CTX);\n if (context === undefined) {\n throw new Error(\"useToken must be used within a SSOProvider\");\n }\n const { tokenUrl, refreshUrl } = context;\n if (!tokenUrl || !refreshUrl) {\n throw new Error('useToken requires that a \"tokenUrl\" and \"refreshUrl\" be set in the SSOProvider');\n }\n const [token, setToken] = useState(null);\n const [expires, setExpires] = useState(null);\n const [isLoading, setIsLoading] = useState(!!tokenUrl);\n const [error, setError] = useState(null);\n const fetchJwt = useCallback(async (url) => {\n setIsLoading(true);\n setError(null);\n try {\n const response = await fetch(url);\n if (response.status === 401) {\n context.setUser(null);\n setToken(null);\n setExpires(null);\n setIsLoading(false);\n return;\n }\n if (!response.ok) {\n throw new Error(`Failed to fetch JWT: ${response.status} ${response.statusText}`);\n }\n const data = await response.json();\n setToken(data.token);\n setExpires(new Date(data.expires));\n } catch (err) {\n const error2 = err instanceof Error ? err : new Error(String(err));\n setError(error2);\n setToken(null);\n setExpires(null);\n console.error(\"Error fetching JWT:\", error2);\n } finally {\n setIsLoading(false);\n }\n }, [context]);\n const refresh = useCallback(async () => {\n const url = refreshUrl || tokenUrl;\n if (!url) {\n console.warn(\"No tokenUrl or refreshUrl provided\");\n return;\n }\n await fetchJwt(url);\n }, [refreshUrl, tokenUrl, fetchJwt]);\n useEffect(() => {\n if (!tokenUrl) {\n setIsLoading(false);\n return;\n }\n fetchJwt(tokenUrl);\n }, [tokenUrl, fetchJwt]);\n useEffect(() => {\n if (!expires || !refreshUrl)\n return;\n const checkExpiration = () => {\n const now = new Date;\n const timeUntilExpiry = expires.getTime() - now.getTime();\n if (timeUntilExpiry <= 60000 && timeUntilExpiry > 0) {\n refresh();\n }\n };\n checkExpiration();\n const interval = setInterval(checkExpiration, 30000);\n return () => clearInterval(interval);\n }, [expires, refreshUrl, refresh]);\n return {\n token,\n isLoading,\n error,\n refresh\n };\n}\nasync function logout(logoutUrl) {\n try {\n const response = await fetch(logoutUrl, {\n headers: { Accept: \"application/json\" }\n });\n if (!response.ok) {\n return { success: false, error: `HTTP ${response.status}` };\n }\n const data = await response.json();\n if (!data.success) {\n return { success: false, error: data.message || \"Logout failed\" };\n }\n if (typeof window !== \"undefined\") {\n for (let i = localStorage.length - 1;i >= 0; i--) {\n const key = localStorage.key(i);\n if (key?.startsWith(\"es-sso-user\")) {\n localStorage.removeItem(key);\n }\n }\n for (let i = sessionStorage.length - 1;i >= 0; i--) {\n const key = sessionStorage.key(i);\n if (key?.startsWith(\"es-sso-user\")) {\n sessionStorage.removeItem(key);\n }\n }\n window.dispatchEvent(new CustomEvent(\"es-sso-logout\"));\n }\n return { success: true };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : \"Network error\"\n };\n }\n}\n// packages/react/src/user-store.ts\nclass InMemoryUserStore {\n users = new Map;\n emailIndex = new Map;\n userNameIndex = new Map;\n async get(sub) {\n return this.users.get(sub) ?? null;\n }\n async getByEmail(email) {\n const sub = this.emailIndex.get(email.toLowerCase());\n if (!sub)\n return null;\n return this.users.get(sub) ?? null;\n }\n async getByUserName(userName) {\n const sub = this.userNameIndex.get(userName.toLowerCase());\n if (!sub)\n return null;\n return this.users.get(sub) ?? null;\n }\n async upsert(user) {\n const existing = this.users.get(user.id);\n if (existing) {\n if (existing.email && existing.email.toLowerCase() !== user.email?.toLowerCase()) {\n this.emailIndex.delete(existing.email.toLowerCase());\n }\n if (existing.userName && existing.userName.toLowerCase() !== user.userName?.toLowerCase()) {\n this.userNameIndex.delete(existing.userName.toLowerCase());\n }\n }\n this.users.set(user.id, user);\n if (user.email) {\n this.emailIndex.set(user.email.toLowerCase(), user.id);\n }\n if (user.userName) {\n this.userNameIndex.set(user.userName.toLowerCase(), user.id);\n }\n }\n async delete(sub) {\n const user = this.users.get(sub);\n if (user) {\n if (user.email) {\n this.emailIndex.delete(user.email.toLowerCase());\n }\n if (user.userName) {\n this.userNameIndex.delete(user.userName.toLowerCase());\n }\n }\n this.users.delete(sub);\n }\n}\n\n// packages/react/src/index.ts\nfunction extractSsoValidation(validation) {\n if (!validation)\n return;\n const val = validation;\n if (val.callbackParams || val.idTokenClaims || val.tokenResponse) {\n return val;\n }\n if (typeof val === \"object\" && \"sso\" in val) {\n return val.sso;\n }\n return;\n}\nfunction extractWorkloadValidation(validation) {\n if (!validation)\n return;\n const val = validation;\n if (val.jwtAssertionClaims || val.tokenResponse) {\n return val;\n }\n if (typeof val === \"object\" && \"workload\" in val) {\n return val.workload;\n }\n return;\n}\nasync function enterpriseStandard(appId, initConfig) {\n const ioniteUrl = process.env.IONITE_URL ?? \"https://ionite.com\";\n let vaultUrl = process.env.ES_VAULT_URL;\n const vaultToken = process.env.ES_VAULT_TOKEN;\n const vaultPath = process.env.ES_VAULT_PATH;\n let secret;\n if (appId?.startsWith(\"IONITE_PUBLIC_DEMO_\") && !vaultUrl) {\n vaultUrl = \"https://vault-ionite.ionite.dev/v1/secret/data\";\n secret = {\n path: `public/${appId}`,\n token: \"hvs.VGhD2hmXDH9PmZjTacZx0G5K\"\n };\n } else if (vaultUrl && vaultToken && vaultPath) {\n secret = {\n path: vaultPath,\n token: vaultToken\n };\n } else if (!vaultUrl || !vaultToken || !vaultPath) {\n const msg = \"@enterprisestandard configuration missing.\";\n if (true) {\n const cmd = `${process.versions.bun ? \"bun\" : \"npm\"} ionite login --app ${appId}`;\n console.warn(`${msg} For development, login with the ionite CLI using \"${cmd}\" or visit ${ioniteUrl}/api/applications/apiKeys/create?appId=${appId}.`);\n const wl = workload(undefined);\n return {\n defaultInstance: false,\n vault: vault(\"\"),\n sso: sso(undefined),\n iam: iam({}, wl),\n workload: wl\n };\n } else {}\n }\n const defaultInstance2 = getDefaultInstance();\n const vaultClient = vault(vaultUrl);\n const ssoValidation = extractSsoValidation(initConfig?.validation);\n const workloadValidation = extractWorkloadValidation(initConfig?.validation);\n let vaultData = {};\n if (secret) {\n vaultData = await vaultClient.getSecret(secret.path, secret.token);\n }\n const workloadConfig = {\n ...vaultData.workload,\n ...initConfig?.workload,\n jwks_uri: initConfig?.workload?.jwks_uri ?? vaultData.workload?.jwks_uri,\n token_url: initConfig?.workload?.token_url ?? vaultData.workload?.token_url,\n validation: initConfig?.workload?.validation ?? workloadValidation\n };\n const workloadInstance = workload(workloadConfig);\n const ssoConfig = {\n ...vaultData.sso,\n ...initConfig?.sso,\n validation: initConfig?.sso?.validation ?? ssoValidation\n };\n const ssoInstance = sso(ssoConfig);\n const iamConfig = {\n ...vaultData.iam,\n ...initConfig?.iam\n };\n const iamInstance = iam(iamConfig, workloadInstance);\n const mergedConfig = {\n defaultInstance: initConfig?.defaultInstance,\n sso: ssoConfig,\n iam: iamConfig,\n workload: workloadConfig,\n validation: initConfig?.validation\n };\n const result = {\n ...mergedConfig,\n defaultInstance: initConfig?.defaultInstance || initConfig?.defaultInstance !== false && !defaultInstance2,\n vault: vaultClient,\n sso: ssoInstance,\n iam: iamInstance,\n workload: workloadInstance\n };\n if (result.defaultInstance) {\n if (defaultInstance2) {\n defaultInstance2.defaultInstance = false;\n }\n setDefaultInstance(result);\n }\n return result;\n}\nexport {\n workloadTokenResponseSchema,\n workloadHandler,\n workload,\n vault,\n validateWorkloadToken,\n userSchema,\n useUser,\n useToken,\n tokenResponseSchema,\n sso,\n serializeESConfig,\n sendTenantWebhook,\n revokeWorkloadToken,\n parseTenantRequest,\n oidcCallbackSchema,\n logout,\n jwtAssertionClaimsSchema,\n initiateLogin,\n idTokenClaimsSchema,\n iam,\n handler,\n groupResourceSchema,\n getWorkloadToken,\n getWorkload,\n getUser,\n getRequiredUser,\n getDefaultInstance,\n enterpriseStandard,\n callback,\n TenantRequestError,\n SignedOut,\n SignedIn,\n SignInLoading,\n SSOProvider,\n InMemoryWorkloadTokenStore,\n InMemoryUserStore,\n InMemoryTenantStore,\n InMemorySessionStore,\n InMemoryGroupStore\n};\n\n//# debugId=7CF5D49401EA27DC64756E2164756E21\n",
|
|
28
28
|
"#!/usr/bin/env bun\n/**\n * Enterprise Standard Validation Test Runner\n *\n * Standalone test runner that executes validation tests against an external application\n * and posts results to a callback URL.\n *\n * Environment Variables:\n * Required:\n * - TEST_BASE_URL: Base URL of application under test\n * - ES_VAULT_URL: Vault URL for ES config\n * - ES_VAULT_TOKEN: Vault authentication token\n * - ES_VAULT_PATH: Path to ES config in vault\n * - RESULTS_CALLBACK_URL: URL to POST results to\n *\n * Optional:\n * - TEST_TENANT_APP_ID: App ID for tenant tests (defaults to TEST_TENANT_COMPANY_ID if not provided)\n * - TEST_TENANT_COMPANY_ID: Company ID for tenant tests\n * - TEST_TENANT_COMPANY_NAME: Company name for tenant tests\n * - TEST_TENANT_ENVIRONMENT_TYPE: Environment type (POC|DEV|QA|PROD)\n * - TEST_TENANT_PROCUREMENT_ID: Procurement ID for tenant tests\n * - TEST_TENANT_EMAIL: Email for tenant tests\n * - TEST_SSO_LOGIN_PATH: Override default SSO login path\n * - TEST_SSO_CALLBACK_PATH: Override default SSO callback path\n * - TEST_SSO_USER_PATH: Override default SSO user path\n * - TEST_SSO_LOGOUT_PATH: Override default SSO logout path\n * - TEST_SSO_BACKCHANNEL_LOGOUT_PATH: Override default SSO back-channel logout path\n * - TEST_IAM_SCIM_PATH: Override default IAM SCIM path\n * - TEST_IAM_GROUPS_INBOUND_PATH: Override default IAM groups inbound path\n * - TEST_WORKLOAD_TOKEN_PATH: Override default workload token path\n * - TEST_WORKLOAD_VALIDATE_PATH: Override default workload validate path\n * - TEST_WORKLOAD_JWKS_PATH: Override default workload JWKS path\n * - TEST_WORKLOAD_REFRESH_PATH: Override default workload refresh path\n * - TEST_TENANT_PATH: Override default tenant creation path\n */\n\nimport { enterpriseStandard } from '@enterprisestandard/react';\nimport {\n type IAMValidationConfig,\n type SSOValidationConfig,\n type TenantValidationConfig,\n type ValidationReport,\n type ValidationSuiteResult,\n validateIAM,\n validateSSO,\n validateTenant,\n validateWorkload,\n type WorkloadValidationConfig,\n} from './index.js';\n\n/**\n * Validate required environment variables\n */\nfunction validateEnv(): {\n baseUrl: string;\n vaultUrl: string;\n vaultToken: string;\n vaultPath: string;\n callbackUrl: string;\n} {\n const baseUrl = process.env.TEST_BASE_URL;\n const vaultUrl = process.env.ES_VAULT_URL;\n const vaultToken = process.env.ES_VAULT_TOKEN;\n const vaultPath = process.env.ES_VAULT_PATH;\n const callbackUrl = process.env.RESULTS_CALLBACK_URL;\n\n if (!baseUrl) {\n throw new Error('TEST_BASE_URL environment variable is required');\n }\n if (!vaultUrl) {\n throw new Error('ES_VAULT_URL environment variable is required');\n }\n if (!vaultToken) {\n throw new Error('ES_VAULT_TOKEN environment variable is required');\n }\n if (!vaultPath) {\n throw new Error('ES_VAULT_PATH environment variable is required');\n }\n if (!callbackUrl) {\n throw new Error('RESULTS_CALLBACK_URL environment variable is required');\n }\n\n return { baseUrl, vaultUrl, vaultToken, vaultPath, callbackUrl };\n}\n\n/**\n * Build SSO validation config from environment variables\n */\nfunction buildSSOConfig(baseUrl: string): SSOValidationConfig {\n return {\n baseUrl,\n loginPath: process.env.TEST_SSO_LOGIN_PATH,\n callbackPath: process.env.TEST_SSO_CALLBACK_PATH,\n userPath: process.env.TEST_SSO_USER_PATH,\n logoutPath: process.env.TEST_SSO_LOGOUT_PATH,\n backChannelLogoutPath: process.env.TEST_SSO_BACKCHANNEL_LOGOUT_PATH,\n };\n}\n\n/**\n * Build IAM validation config from environment variables\n */\nfunction buildIAMConfig(\n baseUrl: string,\n es: () => Awaited<ReturnType<typeof enterpriseStandard>> | null,\n): IAMValidationConfig {\n return {\n baseUrl,\n es,\n scimPath: process.env.TEST_IAM_SCIM_PATH,\n groupsInboundPath: process.env.TEST_IAM_GROUPS_INBOUND_PATH,\n };\n}\n\n/**\n * Build Workload validation config from environment variables\n */\nfunction buildWorkloadConfig(baseUrl: string): WorkloadValidationConfig {\n return {\n baseUrl,\n tokenPath: process.env.TEST_WORKLOAD_TOKEN_PATH,\n validatePath: process.env.TEST_WORKLOAD_VALIDATE_PATH,\n jwksPath: process.env.TEST_WORKLOAD_JWKS_PATH,\n refreshPath: process.env.TEST_WORKLOAD_REFRESH_PATH,\n };\n}\n\n/**\n * Build Tenant validation config from environment variables\n */\nfunction buildTenantConfig(baseUrl: string): TenantValidationConfig {\n const testTenantData = process.env.TEST_TENANT_COMPANY_ID\n ? {\n appId: process.env.TEST_TENANT_APP_ID || process.env.TEST_TENANT_COMPANY_ID,\n companyId: process.env.TEST_TENANT_COMPANY_ID,\n companyName: process.env.TEST_TENANT_COMPANY_NAME || 'Test Company',\n environmentType: (process.env.TEST_TENANT_ENVIRONMENT_TYPE || 'POC') as 'POC' | 'DEV' | 'QA' | 'PROD',\n email: process.env.TEST_TENANT_EMAIL || 'test@example.com',\n }\n : undefined;\n\n return {\n baseUrl,\n tenantPath: process.env.TEST_TENANT_PATH,\n testTenantData,\n };\n}\n\n/**\n * Post results to callback URL\n */\nasync function postResults(callbackUrl: string, report: ValidationReport): Promise<void> {\n const response = await fetch(callbackUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n ...report,\n timestamp: report.timestamp.toISOString(),\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => 'Unknown error');\n throw new Error(`Failed to post results to callback URL: ${response.status} ${response.statusText} - ${errorText}`);\n }\n}\n\n/**\n * Main runner function\n */\nasync function main(): Promise<void> {\n const startTime = performance.now();\n\n try {\n console.log('🚀 Starting Enterprise Standard Validation Test Runner...\\n');\n\n // Validate environment variables\n const { baseUrl, vaultUrl, vaultToken, vaultPath, callbackUrl } = validateEnv();\n\n console.log(`📋 Configuration:`);\n console.log(` Base URL: ${baseUrl}`);\n console.log(` Vault URL: ${vaultUrl}`);\n console.log(` Vault Path: ${vaultPath}`);\n console.log(` Callback URL: ${callbackUrl}\\n`);\n\n // Set vault environment variables for enterpriseStandard\n process.env.ES_VAULT_URL = vaultUrl;\n process.env.ES_VAULT_TOKEN = vaultToken;\n process.env.ES_VAULT_PATH = vaultPath;\n\n // Initialize EnterpriseStandard instance\n console.log('🔧 Initializing EnterpriseStandard instance...');\n let es: Awaited<ReturnType<typeof enterpriseStandard>> | null = null;\n try {\n es = await enterpriseStandard();\n console.log('✅ EnterpriseStandard initialized\\n');\n } catch (error) {\n console.warn(\n `⚠️ Failed to initialize EnterpriseStandard: ${error instanceof Error ? error.message : String(error)}`,\n );\n console.warn(' Some tests (IAM) may be skipped\\n');\n }\n\n // Build test configurations\n const ssoConfig = buildSSOConfig(baseUrl);\n const iamConfig = buildIAMConfig(baseUrl, () => es);\n const workloadConfig = buildWorkloadConfig(baseUrl);\n const tenantConfig = buildTenantConfig(baseUrl);\n\n // Run validation suites\n const suites: ValidationSuiteResult[] = [];\n\n console.log('🧪 Running validation tests...\\n');\n\n // Run SSO tests\n console.log('📝 Running SSO validation tests...');\n try {\n const ssoResult = await validateSSO(ssoConfig);\n suites.push(ssoResult);\n console.log(\n ` ${ssoResult.passed ? '✅' : '❌'} SSO: ${ssoResult.summary.passed}/${ssoResult.summary.total} passed\\n`,\n );\n } catch (error) {\n console.error(` ❌ SSO tests failed: ${error instanceof Error ? error.message : String(error)}\\n`);\n suites.push({\n suite: 'SSO',\n passed: false,\n tests: [\n {\n name: 'SSO Test Execution',\n passed: false,\n error: error instanceof Error ? error.message : String(error),\n duration: 0,\n },\n ],\n duration: 0,\n summary: { total: 1, passed: 0, failed: 1, skipped: 0 },\n });\n }\n\n // Run IAM tests (requires ES instance with workload)\n console.log('📝 Running IAM validation tests...');\n try {\n const iamResult = await validateIAM(iamConfig);\n suites.push(iamResult);\n console.log(\n ` ${iamResult.passed ? '✅' : '❌'} IAM: ${iamResult.summary.passed}/${iamResult.summary.total} passed\\n`,\n );\n } catch (error) {\n console.error(` ❌ IAM tests failed: ${error instanceof Error ? error.message : String(error)}\\n`);\n suites.push({\n suite: 'IAM',\n passed: false,\n tests: [\n {\n name: 'IAM Test Execution',\n passed: false,\n error: error instanceof Error ? error.message : String(error),\n duration: 0,\n },\n ],\n duration: 0,\n summary: { total: 1, passed: 0, failed: 1, skipped: 0 },\n });\n }\n\n // Run Workload tests\n console.log('📝 Running Workload validation tests...');\n try {\n const workloadResult = await validateWorkload(workloadConfig);\n suites.push(workloadResult);\n console.log(\n ` ${workloadResult.passed ? '✅' : '❌'} Workload: ${workloadResult.summary.passed}/${workloadResult.summary.total} passed\\n`,\n );\n } catch (error) {\n console.error(` ❌ Workload tests failed: ${error instanceof Error ? error.message : String(error)}\\n`);\n suites.push({\n suite: 'Workload',\n passed: false,\n tests: [\n {\n name: 'Workload Test Execution',\n passed: false,\n error: error instanceof Error ? error.message : String(error),\n duration: 0,\n },\n ],\n duration: 0,\n summary: { total: 1, passed: 0, failed: 1, skipped: 0 },\n });\n }\n\n // Run Tenant tests\n console.log('📝 Running Tenant validation tests...');\n try {\n const tenantResult = await validateTenant(tenantConfig);\n suites.push(tenantResult);\n console.log(\n ` ${tenantResult.passed ? '✅' : '❌'} Tenant: ${tenantResult.summary.passed}/${tenantResult.summary.total} passed\\n`,\n );\n } catch (error) {\n console.error(` ❌ Tenant tests failed: ${error instanceof Error ? error.message : String(error)}\\n`);\n suites.push({\n suite: 'Tenant',\n passed: false,\n tests: [\n {\n name: 'Tenant Test Execution',\n passed: false,\n error: error instanceof Error ? error.message : String(error),\n duration: 0,\n },\n ],\n duration: 0,\n summary: { total: 1, passed: 0, failed: 1, skipped: 0 },\n });\n }\n\n // Build validation report\n const duration = performance.now() - startTime;\n const report: ValidationReport = {\n timestamp: new Date(),\n baseUrl,\n passed: suites.every((suite) => suite.passed),\n suites,\n duration,\n };\n\n // Print summary\n console.log('📊 Test Summary:');\n console.log(` Total Suites: ${suites.length}`);\n console.log(` Passed: ${suites.filter((s) => s.passed).length}`);\n console.log(` Failed: ${suites.filter((s) => !s.passed).length}`);\n console.log(` Duration: ${duration.toFixed(2)}ms`);\n console.log(` Overall: ${report.passed ? '✅ PASSED' : '❌ FAILED'}\\n`);\n\n // Post results to callback URL\n console.log(`📤 Posting results to callback URL...`);\n await postResults(callbackUrl, report);\n console.log('✅ Results posted successfully\\n');\n\n // Exit with appropriate status code\n process.exit(report.passed ? 0 : 1);\n } catch (error) {\n console.error('\\n❌ Fatal error:', error instanceof Error ? error.message : String(error));\n if (error instanceof Error && error.stack) {\n console.error(error.stack);\n }\n process.exit(1);\n }\n}\n\n// Run if executed directly\nif (import.meta.main) {\n main();\n}\n"
|
|
29
29
|
],
|
|
30
|
-
"mappings": "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",
|
|
31
|
-
"debugId": "
|
|
30
|
+
"mappings": "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",
|
|
31
|
+
"debugId": "0F8680DE7ED1E84064756E2164756E21",
|
|
32
32
|
"names": []
|
|
33
33
|
}
|