@parmana/shared 0.0.0-stage → 2.0.0
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/LICENSE +202 -0
- package/NOTICE +8 -0
- package/README.md +16 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/config/ApiKeyEntry.d.ts +97 -0
- package/dist/config/ApiKeyEntry.d.ts.map +1 -0
- package/dist/config/ApiKeyEntry.js +2 -0
- package/dist/config/ApiKeyEntry.js.map +1 -0
- package/dist/config/Config.d.ts +227 -0
- package/dist/config/Config.d.ts.map +1 -0
- package/dist/config/Config.js +172 -0
- package/dist/config/Config.js.map +1 -0
- package/dist/config/ConfigLoader.d.ts +5 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +8 -0
- package/dist/config/ConfigLoader.js.map +1 -0
- package/dist/config/ConfigUtils.d.ts +6 -0
- package/dist/config/ConfigUtils.d.ts.map +1 -0
- package/dist/config/ConfigUtils.js +8 -0
- package/dist/config/ConfigUtils.js.map +1 -0
- package/dist/config/ConfigValidation.d.ts +30 -0
- package/dist/config/ConfigValidation.d.ts.map +1 -0
- package/dist/config/ConfigValidation.js +191 -0
- package/dist/config/ConfigValidation.js.map +1 -0
- package/dist/config/CryptoAlgorithms.d.ts +38 -0
- package/dist/config/CryptoAlgorithms.d.ts.map +1 -0
- package/dist/config/CryptoAlgorithms.js +38 -0
- package/dist/config/CryptoAlgorithms.js.map +1 -0
- package/dist/config/Doctor.d.ts +46 -0
- package/dist/config/Doctor.d.ts.map +1 -0
- package/dist/config/Doctor.js +781 -0
- package/dist/config/Doctor.js.map +1 -0
- package/dist/config/KeyProviders.d.ts +9 -0
- package/dist/config/KeyProviders.d.ts.map +1 -0
- package/dist/config/KeyProviders.js +8 -0
- package/dist/config/KeyProviders.js.map +1 -0
- package/dist/config/SecretsProviders.d.ts +6 -0
- package/dist/config/SecretsProviders.d.ts.map +1 -0
- package/dist/config/SecretsProviders.js +5 -0
- package/dist/config/SecretsProviders.js.map +1 -0
- package/dist/config/StorageProviders.d.ts +18 -0
- package/dist/config/StorageProviders.d.ts.map +1 -0
- package/dist/config/StorageProviders.js +20 -0
- package/dist/config/StorageProviders.js.map +1 -0
- package/dist/config/TrustProfiles.d.ts +5 -0
- package/dist/config/TrustProfiles.d.ts.map +1 -0
- package/dist/config/TrustProfiles.js +4 -0
- package/dist/config/TrustProfiles.js.map +1 -0
- package/dist/config/index.d.ts +12 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +12 -0
- package/dist/config/index.js.map +1 -0
- package/dist/domain/approval-artifact.d.ts +136 -0
- package/dist/domain/approval-artifact.d.ts.map +1 -0
- package/dist/domain/approval-artifact.js +2 -0
- package/dist/domain/approval-artifact.js.map +1 -0
- package/dist/domain/approval-issuer.d.ts +52 -0
- package/dist/domain/approval-issuer.d.ts.map +1 -0
- package/dist/domain/approval-issuer.js +2 -0
- package/dist/domain/approval-issuer.js.map +1 -0
- package/dist/domain/authority-grant.d.ts +54 -0
- package/dist/domain/authority-grant.d.ts.map +1 -0
- package/dist/domain/authority-grant.js +2 -0
- package/dist/domain/authority-grant.js.map +1 -0
- package/dist/domain/authority.d.ts +42 -0
- package/dist/domain/authority.d.ts.map +1 -0
- package/dist/domain/authority.js +11 -0
- package/dist/domain/authority.js.map +1 -0
- package/dist/domain/authorization.d.ts +54 -0
- package/dist/domain/authorization.d.ts.map +1 -0
- package/dist/domain/authorization.js +2 -0
- package/dist/domain/authorization.js.map +1 -0
- package/dist/domain/business-signal-source.d.ts +52 -0
- package/dist/domain/business-signal-source.d.ts.map +1 -0
- package/dist/domain/business-signal-source.js +2 -0
- package/dist/domain/business-signal-source.js.map +1 -0
- package/dist/domain/business-transaction.d.ts +99 -0
- package/dist/domain/business-transaction.d.ts.map +1 -0
- package/dist/domain/business-transaction.js +16 -0
- package/dist/domain/business-transaction.js.map +1 -0
- package/dist/domain/business-validation.d.ts +177 -0
- package/dist/domain/business-validation.d.ts.map +1 -0
- package/dist/domain/business-validation.js +60 -0
- package/dist/domain/business-validation.js.map +1 -0
- package/dist/domain/challenge-record.d.ts +181 -0
- package/dist/domain/challenge-record.d.ts.map +1 -0
- package/dist/domain/challenge-record.js +2 -0
- package/dist/domain/challenge-record.js.map +1 -0
- package/dist/domain/decision.d.ts +97 -0
- package/dist/domain/decision.d.ts.map +1 -0
- package/dist/domain/decision.js +9 -0
- package/dist/domain/decision.js.map +1 -0
- package/dist/domain/evidence-anchor.d.ts +54 -0
- package/dist/domain/evidence-anchor.d.ts.map +1 -0
- package/dist/domain/evidence-anchor.js +2 -0
- package/dist/domain/evidence-anchor.js.map +1 -0
- package/dist/domain/executable-content.d.ts +45 -0
- package/dist/domain/executable-content.d.ts.map +1 -0
- package/dist/domain/executable-content.js +39 -0
- package/dist/domain/executable-content.js.map +1 -0
- package/dist/domain/execution-audit-event.d.ts +65 -0
- package/dist/domain/execution-audit-event.d.ts.map +1 -0
- package/dist/domain/execution-audit-event.js +2 -0
- package/dist/domain/execution-audit-event.js.map +1 -0
- package/dist/domain/execution-authorization.d.ts +224 -0
- package/dist/domain/execution-authorization.d.ts.map +1 -0
- package/dist/domain/execution-authorization.js +2 -0
- package/dist/domain/execution-authorization.js.map +1 -0
- package/dist/domain/execution-evidence.d.ts +38 -0
- package/dist/domain/execution-evidence.d.ts.map +1 -0
- package/dist/domain/execution-evidence.js +2 -0
- package/dist/domain/execution-evidence.js.map +1 -0
- package/dist/domain/execution-intent.d.ts +92 -0
- package/dist/domain/execution-intent.d.ts.map +1 -0
- package/dist/domain/execution-intent.js +2 -0
- package/dist/domain/execution-intent.js.map +1 -0
- package/dist/domain/execution-metadata.d.ts +8 -0
- package/dist/domain/execution-metadata.d.ts.map +1 -0
- package/dist/domain/execution-metadata.js +2 -0
- package/dist/domain/execution-metadata.js.map +1 -0
- package/dist/domain/execution-outcome-store.d.ts +49 -0
- package/dist/domain/execution-outcome-store.d.ts.map +1 -0
- package/dist/domain/execution-outcome-store.js +10 -0
- package/dist/domain/execution-outcome-store.js.map +1 -0
- package/dist/domain/execution-result.d.ts +49 -0
- package/dist/domain/execution-result.d.ts.map +1 -0
- package/dist/domain/execution-result.js +2 -0
- package/dist/domain/execution-result.js.map +1 -0
- package/dist/domain/execution-trust-record.d.ts +142 -0
- package/dist/domain/execution-trust-record.d.ts.map +1 -0
- package/dist/domain/execution-trust-record.js +2 -0
- package/dist/domain/execution-trust-record.js.map +1 -0
- package/dist/domain/execution.d.ts +108 -0
- package/dist/domain/execution.d.ts.map +1 -0
- package/dist/domain/execution.js +18 -0
- package/dist/domain/execution.js.map +1 -0
- package/dist/domain/external-connector.d.ts +68 -0
- package/dist/domain/external-connector.d.ts.map +1 -0
- package/dist/domain/external-connector.js +2 -0
- package/dist/domain/external-connector.js.map +1 -0
- package/dist/domain/index.d.ts +37 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +37 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/intent.d.ts +66 -0
- package/dist/domain/intent.d.ts.map +1 -0
- package/dist/domain/intent.js +2 -0
- package/dist/domain/intent.js.map +1 -0
- package/dist/domain/metadata.d.ts +53 -0
- package/dist/domain/metadata.d.ts.map +1 -0
- package/dist/domain/metadata.js +11 -0
- package/dist/domain/metadata.js.map +1 -0
- package/dist/domain/override.d.ts +39 -0
- package/dist/domain/override.d.ts.map +1 -0
- package/dist/domain/override.js +2 -0
- package/dist/domain/override.js.map +1 -0
- package/dist/domain/pending-policy-change.d.ts +109 -0
- package/dist/domain/pending-policy-change.d.ts.map +1 -0
- package/dist/domain/pending-policy-change.js +12 -0
- package/dist/domain/pending-policy-change.js.map +1 -0
- package/dist/domain/policy-change-approval-record.d.ts +81 -0
- package/dist/domain/policy-change-approval-record.d.ts.map +1 -0
- package/dist/domain/policy-change-approval-record.js +2 -0
- package/dist/domain/policy-change-approval-record.js.map +1 -0
- package/dist/domain/policy-change-step-up-authorization.d.ts +97 -0
- package/dist/domain/policy-change-step-up-authorization.d.ts.map +1 -0
- package/dist/domain/policy-change-step-up-authorization.js +2 -0
- package/dist/domain/policy-change-step-up-authorization.js.map +1 -0
- package/dist/domain/policy-reference.d.ts +58 -0
- package/dist/domain/policy-reference.d.ts.map +1 -0
- package/dist/domain/policy-reference.js +2 -0
- package/dist/domain/policy-reference.js.map +1 -0
- package/dist/domain/receipt.d.ts +72 -0
- package/dist/domain/receipt.d.ts.map +1 -0
- package/dist/domain/receipt.js +2 -0
- package/dist/domain/receipt.js.map +1 -0
- package/dist/domain/refusal-record.d.ts +110 -0
- package/dist/domain/refusal-record.d.ts.map +1 -0
- package/dist/domain/refusal-record.js +2 -0
- package/dist/domain/refusal-record.js.map +1 -0
- package/dist/domain/release-approval.d.ts +14 -0
- package/dist/domain/release-approval.d.ts.map +1 -0
- package/dist/domain/release-approval.js +2 -0
- package/dist/domain/release-approval.js.map +1 -0
- package/dist/domain/signals.d.ts +10 -0
- package/dist/domain/signals.d.ts.map +1 -0
- package/dist/domain/signals.js +2 -0
- package/dist/domain/signals.js.map +1 -0
- package/dist/domain/signature-entry.d.ts +23 -0
- package/dist/domain/signature-entry.d.ts.map +1 -0
- package/dist/domain/signature-entry.js +2 -0
- package/dist/domain/signature-entry.js.map +1 -0
- package/dist/domain/signature.d.ts +26 -0
- package/dist/domain/signature.d.ts.map +1 -0
- package/dist/domain/signature.js +2 -0
- package/dist/domain/signature.js.map +1 -0
- package/dist/domain/unsigned-execution-trust-record.d.ts +7 -0
- package/dist/domain/unsigned-execution-trust-record.d.ts.map +1 -0
- package/dist/domain/unsigned-execution-trust-record.js +2 -0
- package/dist/domain/unsigned-execution-trust-record.js.map +1 -0
- package/dist/domain/verification.d.ts +48 -0
- package/dist/domain/verification.d.ts.map +1 -0
- package/dist/domain/verification.js +9 -0
- package/dist/domain/verification.js.map +1 -0
- package/dist/errors/approval-issuer-change-not-found-error.d.ts +9 -0
- package/dist/errors/approval-issuer-change-not-found-error.d.ts.map +1 -0
- package/dist/errors/approval-issuer-change-not-found-error.js +11 -0
- package/dist/errors/approval-issuer-change-not-found-error.js.map +1 -0
- package/dist/errors/authority-grant-change-not-found-error.d.ts +9 -0
- package/dist/errors/authority-grant-change-not-found-error.d.ts.map +1 -0
- package/dist/errors/authority-grant-change-not-found-error.js +11 -0
- package/dist/errors/authority-grant-change-not-found-error.js.map +1 -0
- package/dist/errors/authority-required-error.d.ts +5 -0
- package/dist/errors/authority-required-error.d.ts.map +1 -0
- package/dist/errors/authority-required-error.js +7 -0
- package/dist/errors/authority-required-error.js.map +1 -0
- package/dist/errors/authorization-no-longer-valid-error.d.ts +19 -0
- package/dist/errors/authorization-no-longer-valid-error.d.ts.map +1 -0
- package/dist/errors/authorization-no-longer-valid-error.js +23 -0
- package/dist/errors/authorization-no-longer-valid-error.js.map +1 -0
- package/dist/errors/authorization-required-error.d.ts +5 -0
- package/dist/errors/authorization-required-error.d.ts.map +1 -0
- package/dist/errors/authorization-required-error.js +7 -0
- package/dist/errors/authorization-required-error.js.map +1 -0
- package/dist/errors/business-signal-source-change-not-found-error.d.ts +9 -0
- package/dist/errors/business-signal-source-change-not-found-error.d.ts.map +1 -0
- package/dist/errors/business-signal-source-change-not-found-error.js +11 -0
- package/dist/errors/business-signal-source-change-not-found-error.js.map +1 -0
- package/dist/errors/business-transaction-not-found-error.d.ts +5 -0
- package/dist/errors/business-transaction-not-found-error.d.ts.map +1 -0
- package/dist/errors/business-transaction-not-found-error.js +7 -0
- package/dist/errors/business-transaction-not-found-error.js.map +1 -0
- package/dist/errors/challenge-record-not-found-error.d.ts +9 -0
- package/dist/errors/challenge-record-not-found-error.d.ts.map +1 -0
- package/dist/errors/challenge-record-not-found-error.js +11 -0
- package/dist/errors/challenge-record-not-found-error.js.map +1 -0
- package/dist/errors/conflict-error.d.ts +5 -0
- package/dist/errors/conflict-error.d.ts.map +1 -0
- package/dist/errors/conflict-error.js +7 -0
- package/dist/errors/conflict-error.js.map +1 -0
- package/dist/errors/connector-not-registered-error.d.ts +21 -0
- package/dist/errors/connector-not-registered-error.d.ts.map +1 -0
- package/dist/errors/connector-not-registered-error.js +24 -0
- package/dist/errors/connector-not-registered-error.js.map +1 -0
- package/dist/errors/decision-not-approved-error.d.ts +5 -0
- package/dist/errors/decision-not-approved-error.d.ts.map +1 -0
- package/dist/errors/decision-not-approved-error.js +7 -0
- package/dist/errors/decision-not-approved-error.js.map +1 -0
- package/dist/errors/duplicate-business-transaction-error.d.ts +26 -0
- package/dist/errors/duplicate-business-transaction-error.d.ts.map +1 -0
- package/dist/errors/duplicate-business-transaction-error.js +28 -0
- package/dist/errors/duplicate-business-transaction-error.js.map +1 -0
- package/dist/errors/external-connector-change-not-found-error.d.ts +9 -0
- package/dist/errors/external-connector-change-not-found-error.d.ts.map +1 -0
- package/dist/errors/external-connector-change-not-found-error.js +11 -0
- package/dist/errors/external-connector-change-not-found-error.js.map +1 -0
- package/dist/errors/forbidden-error.d.ts +5 -0
- package/dist/errors/forbidden-error.d.ts.map +1 -0
- package/dist/errors/forbidden-error.js +7 -0
- package/dist/errors/forbidden-error.js.map +1 -0
- package/dist/errors/index.d.ts +30 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +30 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/intent-required-error.d.ts +5 -0
- package/dist/errors/intent-required-error.d.ts.map +1 -0
- package/dist/errors/intent-required-error.js +7 -0
- package/dist/errors/intent-required-error.js.map +1 -0
- package/dist/errors/non-human-caller-denied-error.d.ts +10 -0
- package/dist/errors/non-human-caller-denied-error.d.ts.map +1 -0
- package/dist/errors/non-human-caller-denied-error.js +12 -0
- package/dist/errors/non-human-caller-denied-error.js.map +1 -0
- package/dist/errors/nonce-already-consumed-error.d.ts +26 -0
- package/dist/errors/nonce-already-consumed-error.d.ts.map +1 -0
- package/dist/errors/nonce-already-consumed-error.js +29 -0
- package/dist/errors/nonce-already-consumed-error.js.map +1 -0
- package/dist/errors/outcome-unknown-error.d.ts +15 -0
- package/dist/errors/outcome-unknown-error.d.ts.map +1 -0
- package/dist/errors/outcome-unknown-error.js +19 -0
- package/dist/errors/outcome-unknown-error.js.map +1 -0
- package/dist/errors/override-not-allowed-error.d.ts +5 -0
- package/dist/errors/override-not-allowed-error.d.ts.map +1 -0
- package/dist/errors/override-not-allowed-error.js +7 -0
- package/dist/errors/override-not-allowed-error.js.map +1 -0
- package/dist/errors/parmana-error.d.ts +15 -0
- package/dist/errors/parmana-error.d.ts.map +1 -0
- package/dist/errors/parmana-error.js +21 -0
- package/dist/errors/parmana-error.js.map +1 -0
- package/dist/errors/pending-policy-change-not-found-error.d.ts +9 -0
- package/dist/errors/pending-policy-change-not-found-error.d.ts.map +1 -0
- package/dist/errors/pending-policy-change-not-found-error.js +11 -0
- package/dist/errors/pending-policy-change-not-found-error.js.map +1 -0
- package/dist/errors/policy-not-found-error.d.ts +5 -0
- package/dist/errors/policy-not-found-error.d.ts.map +1 -0
- package/dist/errors/policy-not-found-error.js +7 -0
- package/dist/errors/policy-not-found-error.js.map +1 -0
- package/dist/errors/receipt-generation-error.d.ts +5 -0
- package/dist/errors/receipt-generation-error.d.ts.map +1 -0
- package/dist/errors/receipt-generation-error.js +7 -0
- package/dist/errors/receipt-generation-error.js.map +1 -0
- package/dist/errors/same-actor-cannot-approve-own-change-error.d.ts +12 -0
- package/dist/errors/same-actor-cannot-approve-own-change-error.d.ts.map +1 -0
- package/dist/errors/same-actor-cannot-approve-own-change-error.js +15 -0
- package/dist/errors/same-actor-cannot-approve-own-change-error.js.map +1 -0
- package/dist/errors/step-up-authorization-invalid-error.d.ts +25 -0
- package/dist/errors/step-up-authorization-invalid-error.d.ts.map +1 -0
- package/dist/errors/step-up-authorization-invalid-error.js +28 -0
- package/dist/errors/step-up-authorization-invalid-error.js.map +1 -0
- package/dist/errors/trust-chain-validation-error.d.ts +5 -0
- package/dist/errors/trust-chain-validation-error.d.ts.map +1 -0
- package/dist/errors/trust-chain-validation-error.js +7 -0
- package/dist/errors/trust-chain-validation-error.js.map +1 -0
- package/dist/errors/unauthorized-error.d.ts +5 -0
- package/dist/errors/unauthorized-error.d.ts.map +1 -0
- package/dist/errors/unauthorized-error.js +7 -0
- package/dist/errors/unauthorized-error.js.map +1 -0
- package/dist/errors/validation-error.d.ts +5 -0
- package/dist/errors/validation-error.d.ts.map +1 -0
- package/dist/errors/validation-error.js +7 -0
- package/dist/errors/validation-error.js.map +1 -0
- package/dist/errors/verification-failed-error.d.ts +5 -0
- package/dist/errors/verification-failed-error.d.ts.map +1 -0
- package/dist/errors/verification-failed-error.js +7 -0
- package/dist/errors/verification-failed-error.js.map +1 -0
- package/dist/gateway/GatewayAuthentication.d.ts +8 -0
- package/dist/gateway/GatewayAuthentication.d.ts.map +1 -0
- package/dist/gateway/GatewayAuthentication.js +2 -0
- package/dist/gateway/GatewayAuthentication.js.map +1 -0
- package/dist/gateway/GatewayAuthenticationClaims.d.ts +10 -0
- package/dist/gateway/GatewayAuthenticationClaims.d.ts.map +1 -0
- package/dist/gateway/GatewayAuthenticationClaims.js +2 -0
- package/dist/gateway/GatewayAuthenticationClaims.js.map +1 -0
- package/dist/gateway/GatewayAuthenticationPayload.d.ts +15 -0
- package/dist/gateway/GatewayAuthenticationPayload.d.ts.map +1 -0
- package/dist/gateway/GatewayAuthenticationPayload.js +2 -0
- package/dist/gateway/GatewayAuthenticationPayload.js.map +1 -0
- package/dist/gateway/SignedGatewayAuthentication.d.ts +9 -0
- package/dist/gateway/SignedGatewayAuthentication.d.ts.map +1 -0
- package/dist/gateway/SignedGatewayAuthentication.js +2 -0
- package/dist/gateway/SignedGatewayAuthentication.js.map +1 -0
- package/dist/gateway/index.d.ts +4 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +4 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/Logger.d.ts +65 -0
- package/dist/logging/Logger.d.ts.map +1 -0
- package/dist/logging/Logger.js +97 -0
- package/dist/logging/Logger.js.map +1 -0
- package/dist/network/externalEndpointAddress.d.ts +48 -0
- package/dist/network/externalEndpointAddress.d.ts.map +1 -0
- package/dist/network/externalEndpointAddress.js +147 -0
- package/dist/network/externalEndpointAddress.js.map +1 -0
- package/dist/repositories/approval-issuer-repository.d.ts +31 -0
- package/dist/repositories/approval-issuer-repository.d.ts.map +1 -0
- package/dist/repositories/approval-issuer-repository.js +2 -0
- package/dist/repositories/approval-issuer-repository.js.map +1 -0
- package/dist/repositories/authority-grant-repository.d.ts +22 -0
- package/dist/repositories/authority-grant-repository.d.ts.map +1 -0
- package/dist/repositories/authority-grant-repository.js +2 -0
- package/dist/repositories/authority-grant-repository.js.map +1 -0
- package/dist/repositories/business-signal-source-repository.d.ts +17 -0
- package/dist/repositories/business-signal-source-repository.d.ts.map +1 -0
- package/dist/repositories/business-signal-source-repository.js +2 -0
- package/dist/repositories/business-signal-source-repository.js.map +1 -0
- package/dist/repositories/business-transaction-repository.d.ts +34 -0
- package/dist/repositories/business-transaction-repository.d.ts.map +1 -0
- package/dist/repositories/business-transaction-repository.js +2 -0
- package/dist/repositories/business-transaction-repository.js.map +1 -0
- package/dist/repositories/caller-key-revocation-repository.d.ts +26 -0
- package/dist/repositories/caller-key-revocation-repository.d.ts.map +1 -0
- package/dist/repositories/caller-key-revocation-repository.js +2 -0
- package/dist/repositories/caller-key-revocation-repository.js.map +1 -0
- package/dist/repositories/challenge-record-repository.d.ts +67 -0
- package/dist/repositories/challenge-record-repository.d.ts.map +1 -0
- package/dist/repositories/challenge-record-repository.js +76 -0
- package/dist/repositories/challenge-record-repository.js.map +1 -0
- package/dist/repositories/execution-intent-repository.d.ts +38 -0
- package/dist/repositories/execution-intent-repository.d.ts.map +1 -0
- package/dist/repositories/execution-intent-repository.js +2 -0
- package/dist/repositories/execution-intent-repository.js.map +1 -0
- package/dist/repositories/execution-trust-record-repository.d.ts +62 -0
- package/dist/repositories/execution-trust-record-repository.d.ts.map +1 -0
- package/dist/repositories/execution-trust-record-repository.js +2 -0
- package/dist/repositories/execution-trust-record-repository.js.map +1 -0
- package/dist/repositories/external-connector-repository.d.ts +37 -0
- package/dist/repositories/external-connector-repository.d.ts.map +1 -0
- package/dist/repositories/external-connector-repository.js +2 -0
- package/dist/repositories/external-connector-repository.js.map +1 -0
- package/dist/repositories/handbook-download-lead-repository.d.ts +18 -0
- package/dist/repositories/handbook-download-lead-repository.d.ts.map +1 -0
- package/dist/repositories/handbook-download-lead-repository.js +2 -0
- package/dist/repositories/handbook-download-lead-repository.js.map +1 -0
- package/dist/repositories/inbound-decision-repository.d.ts +72 -0
- package/dist/repositories/inbound-decision-repository.d.ts.map +1 -0
- package/dist/repositories/inbound-decision-repository.js +10 -0
- package/dist/repositories/inbound-decision-repository.js.map +1 -0
- package/dist/repositories/inbound-outcome-repository.d.ts +23 -0
- package/dist/repositories/inbound-outcome-repository.d.ts.map +1 -0
- package/dist/repositories/inbound-outcome-repository.js +2 -0
- package/dist/repositories/inbound-outcome-repository.js.map +1 -0
- package/dist/repositories/index.d.ts +17 -0
- package/dist/repositories/index.d.ts.map +1 -0
- package/dist/repositories/index.js +17 -0
- package/dist/repositories/index.js.map +1 -0
- package/dist/repositories/pending-policy-change-repository.d.ts +72 -0
- package/dist/repositories/pending-policy-change-repository.d.ts.map +1 -0
- package/dist/repositories/pending-policy-change-repository.js +46 -0
- package/dist/repositories/pending-policy-change-repository.js.map +1 -0
- package/dist/repositories/policy-change-approval-record-repository.d.ts +39 -0
- package/dist/repositories/policy-change-approval-record-repository.d.ts.map +1 -0
- package/dist/repositories/policy-change-approval-record-repository.js +2 -0
- package/dist/repositories/policy-change-approval-record-repository.js.map +1 -0
- package/dist/repositories/policy-repository.d.ts +15 -0
- package/dist/repositories/policy-repository.d.ts.map +1 -0
- package/dist/repositories/policy-repository.js +2 -0
- package/dist/repositories/policy-repository.js.map +1 -0
- package/dist/repositories/refusal-record-repository.d.ts +13 -0
- package/dist/repositories/refusal-record-repository.d.ts.map +1 -0
- package/dist/repositories/refusal-record-repository.js +2 -0
- package/dist/repositories/refusal-record-repository.js.map +1 -0
- package/dist/types/Json.d.ts +7 -0
- package/dist/types/Json.d.ts.map +1 -0
- package/dist/types/Json.js +2 -0
- package/dist/types/Json.js.map +1 -0
- package/dist/utils/normalize-policy.d.ts +16 -0
- package/dist/utils/normalize-policy.d.ts.map +1 -0
- package/dist/utils/normalize-policy.js +10 -0
- package/dist/utils/normalize-policy.js.map +1 -0
- package/package.json +39 -4
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { PendingPolicyChangeStatus } from "./pending-policy-change.js";
|
|
2
|
+
/**
|
|
3
|
+
* A business system registered to answer policies' sourced facts
|
|
4
|
+
* (RFC-0023 phase 2). Created only by an approved register change; a
|
|
5
|
+
* revoke change marks it revoked. Policies name it by `name` in
|
|
6
|
+
* signalSources.
|
|
7
|
+
*/
|
|
8
|
+
export interface BusinessSignalSourceRegistration {
|
|
9
|
+
/** The changeId of the approved register change that created it. */
|
|
10
|
+
readonly registrationId: string;
|
|
11
|
+
/** The name policies use, such as "orders-system". */
|
|
12
|
+
readonly name: string;
|
|
13
|
+
/** The HTTPS endpoint Parmana sends each signed query to. */
|
|
14
|
+
readonly endpointUrl: string;
|
|
15
|
+
/** How long Parmana waits for an answer, 1000 to 30000 ms. */
|
|
16
|
+
readonly timeoutMs: number;
|
|
17
|
+
/**
|
|
18
|
+
* The source's Ed25519 public key, PEM. When set, every answer must be
|
|
19
|
+
* signed with it, and Parmana verifies the signature before it trusts
|
|
20
|
+
* the answer. When absent, an answer proves only what Parmana observed.
|
|
21
|
+
*/
|
|
22
|
+
readonly publicKeyPem?: string;
|
|
23
|
+
/** A label for that key, carried into each Trusted Signal. */
|
|
24
|
+
readonly keyId?: string;
|
|
25
|
+
readonly status: "active" | "revoked";
|
|
26
|
+
readonly registeredAt: Date;
|
|
27
|
+
readonly revokedByChangeId?: string;
|
|
28
|
+
readonly revokedAt?: Date;
|
|
29
|
+
}
|
|
30
|
+
export type BusinessSignalSourceChangeAction = "register" | "revoke";
|
|
31
|
+
/**
|
|
32
|
+
* A proposal to register or revoke a business signal source. One person
|
|
33
|
+
* proposes, a different person approves or rejects with a step up
|
|
34
|
+
* authorization, the same rules as an external connector change.
|
|
35
|
+
*/
|
|
36
|
+
export interface BusinessSignalSourceChange {
|
|
37
|
+
readonly changeId: string;
|
|
38
|
+
readonly action: BusinessSignalSourceChangeAction;
|
|
39
|
+
readonly name: string;
|
|
40
|
+
readonly endpointUrl?: string;
|
|
41
|
+
readonly timeoutMs?: number;
|
|
42
|
+
readonly publicKeyPem?: string;
|
|
43
|
+
readonly keyId?: string;
|
|
44
|
+
readonly reason: string;
|
|
45
|
+
readonly proposedBy: string;
|
|
46
|
+
readonly proposedAt: Date;
|
|
47
|
+
readonly status: PendingPolicyChangeStatus;
|
|
48
|
+
readonly resolvedBy?: string;
|
|
49
|
+
readonly resolvedAt?: Date;
|
|
50
|
+
readonly rejectionReason?: string;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=business-signal-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-signal-source.d.ts","sourceRoot":"","sources":["../../src/domain/business-signal-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,gCAAgC;IAC/C,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;CAC3B;AAED,MAAM,MAAM,gCAAgC,GAAG,UAAU,GAAG,QAAQ,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,gCAAgC,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-signal-source.js","sourceRoot":"","sources":["../../src/domain/business-signal-source.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Authority } from "./authority.js";
|
|
2
|
+
import { Authorization } from "./authorization.js";
|
|
3
|
+
import { Intent } from "./intent.js";
|
|
4
|
+
import { TransactionMetadata } from "./metadata.js";
|
|
5
|
+
import { PolicyReference } from "./policy-reference.js";
|
|
6
|
+
/**
|
|
7
|
+
* Parmana Trust Core
|
|
8
|
+
*
|
|
9
|
+
* Business Transaction
|
|
10
|
+
*
|
|
11
|
+
* The canonical immutable business context
|
|
12
|
+
* accepted by Parmana for execution.
|
|
13
|
+
*
|
|
14
|
+
* A Business Transaction captures the complete
|
|
15
|
+
* upstream trust chain prior to policy evaluation.
|
|
16
|
+
*
|
|
17
|
+
* Authority
|
|
18
|
+
* ↓
|
|
19
|
+
* Authorization
|
|
20
|
+
* ↓
|
|
21
|
+
* Intent
|
|
22
|
+
* ↓
|
|
23
|
+
* BusinessTransaction
|
|
24
|
+
* ↓
|
|
25
|
+
* PolicyReference
|
|
26
|
+
*
|
|
27
|
+
* The Business Transaction is the immutable input
|
|
28
|
+
* to deterministic policy evaluation.
|
|
29
|
+
*
|
|
30
|
+
* Every Business Transaction produces exactly one
|
|
31
|
+
* Decision, one Execution, and one Execution Trust
|
|
32
|
+
* Record.
|
|
33
|
+
*/
|
|
34
|
+
export interface BusinessTransaction {
|
|
35
|
+
/**
|
|
36
|
+
* Unique Business Transaction identifier.
|
|
37
|
+
*
|
|
38
|
+
* Same value as metadata.businessTransactionId.
|
|
39
|
+
*/
|
|
40
|
+
readonly businessTransactionId: string;
|
|
41
|
+
/**
|
|
42
|
+
* Immutable transaction metadata.
|
|
43
|
+
*/
|
|
44
|
+
readonly metadata: TransactionMetadata;
|
|
45
|
+
/**
|
|
46
|
+
* Authority responsible for this
|
|
47
|
+
* Business Transaction.
|
|
48
|
+
*/
|
|
49
|
+
readonly authority: Authority;
|
|
50
|
+
/**
|
|
51
|
+
* Authorization granted by the Authority.
|
|
52
|
+
*/
|
|
53
|
+
readonly authorization: Authorization;
|
|
54
|
+
/**
|
|
55
|
+
* Intended business action.
|
|
56
|
+
*/
|
|
57
|
+
readonly intent: Intent;
|
|
58
|
+
/**
|
|
59
|
+
* Exact Policy to execute.
|
|
60
|
+
*
|
|
61
|
+
* The PolicyReference is part of the
|
|
62
|
+
* cryptographically verifiable trust chain.
|
|
63
|
+
*/
|
|
64
|
+
readonly policy: PolicyReference;
|
|
65
|
+
/**
|
|
66
|
+
* Runtime signals supplied to the Policy.
|
|
67
|
+
*
|
|
68
|
+
* Signals are opaque runtime facts validated
|
|
69
|
+
* against the Policy's declared Signal Schema.
|
|
70
|
+
*
|
|
71
|
+
* Parmana does not assign business meaning to
|
|
72
|
+
* these values.
|
|
73
|
+
*/
|
|
74
|
+
readonly signals: Readonly<Record<string, unknown>>;
|
|
75
|
+
/**
|
|
76
|
+
* Current Business Transaction lifecycle.
|
|
77
|
+
*/
|
|
78
|
+
readonly status: BusinessTransactionStatus;
|
|
79
|
+
/**
|
|
80
|
+
* UTC timestamp when the Business Transaction
|
|
81
|
+
* was accepted by Parmana.
|
|
82
|
+
*/
|
|
83
|
+
readonly createdAt: Date;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Business Transaction lifecycle.
|
|
87
|
+
*/
|
|
88
|
+
export declare enum BusinessTransactionStatus {
|
|
89
|
+
RECEIVED = "RECEIVED",
|
|
90
|
+
POLICY_EVALUATED = "POLICY_EVALUATED",
|
|
91
|
+
APPROVED = "APPROVED",
|
|
92
|
+
REJECTED = "REJECTED",
|
|
93
|
+
OVERRIDDEN = "OVERRIDDEN",
|
|
94
|
+
EXECUTING = "EXECUTING",
|
|
95
|
+
EXECUTED = "EXECUTED",
|
|
96
|
+
FAILED = "FAILED",
|
|
97
|
+
VERIFIED = "VERIFIED"
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=business-transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-transaction.d.ts","sourceRoot":"","sources":["../../src/domain/business-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAEjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,oBAAY,yBAAyB;IACnC,QAAQ,aAAa;IAErB,gBAAgB,qBAAqB;IAErC,QAAQ,aAAa;IAErB,QAAQ,aAAa;IAErB,UAAU,eAAe;IAEzB,SAAS,cAAc;IAEvB,QAAQ,aAAa;IAErB,MAAM,WAAW;IAEjB,QAAQ,aAAa;CACtB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Business Transaction lifecycle.
|
|
3
|
+
*/
|
|
4
|
+
export var BusinessTransactionStatus;
|
|
5
|
+
(function (BusinessTransactionStatus) {
|
|
6
|
+
BusinessTransactionStatus["RECEIVED"] = "RECEIVED";
|
|
7
|
+
BusinessTransactionStatus["POLICY_EVALUATED"] = "POLICY_EVALUATED";
|
|
8
|
+
BusinessTransactionStatus["APPROVED"] = "APPROVED";
|
|
9
|
+
BusinessTransactionStatus["REJECTED"] = "REJECTED";
|
|
10
|
+
BusinessTransactionStatus["OVERRIDDEN"] = "OVERRIDDEN";
|
|
11
|
+
BusinessTransactionStatus["EXECUTING"] = "EXECUTING";
|
|
12
|
+
BusinessTransactionStatus["EXECUTED"] = "EXECUTED";
|
|
13
|
+
BusinessTransactionStatus["FAILED"] = "FAILED";
|
|
14
|
+
BusinessTransactionStatus["VERIFIED"] = "VERIFIED";
|
|
15
|
+
})(BusinessTransactionStatus || (BusinessTransactionStatus = {}));
|
|
16
|
+
//# sourceMappingURL=business-transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-transaction.js","sourceRoot":"","sources":["../../src/domain/business-transaction.ts"],"names":[],"mappings":"AA8FA;;GAEG;AACH,MAAM,CAAN,IAAY,yBAkBX;AAlBD,WAAY,yBAAyB;IACnC,kDAAqB,CAAA;IAErB,kEAAqC,CAAA;IAErC,kDAAqB,CAAA;IAErB,kDAAqB,CAAA;IAErB,sDAAyB,CAAA;IAEzB,oDAAuB,CAAA;IAEvB,kDAAqB,CAAA;IAErB,8CAAiB,CAAA;IAEjB,kDAAqB,CAAA;AACvB,CAAC,EAlBW,yBAAyB,KAAzB,yBAAyB,QAkBpC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { JsonValue } from "../types/Json.js";
|
|
2
|
+
/**
|
|
3
|
+
* Business validation (RFC-0023).
|
|
4
|
+
*
|
|
5
|
+
* An agent proposes an action and the facts it rests on. Parmana keeps
|
|
6
|
+
* two questions apart and answers each one itself:
|
|
7
|
+
*
|
|
8
|
+
* - Authority: may this caller perform this kind of action at all?
|
|
9
|
+
* - Business validity: is this exact action valid for this exact
|
|
10
|
+
* business object, according to the system that owns the facts?
|
|
11
|
+
*
|
|
12
|
+
* A fact the agent proposed is never a business fact. For every signal
|
|
13
|
+
* a policy declares a source for, Parmana asks that source and records
|
|
14
|
+
* the answer as a TrustedSignal; the policy is evaluated on the trusted
|
|
15
|
+
* value. Every status here is final for its request: nothing converts
|
|
16
|
+
* AUTHORITY_UNCLEAR into AUTHORIZED, MISSING_DATA into VALID, or
|
|
17
|
+
* INVALID into VALID.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Whether the caller may perform this kind of action. AUTHORIZED says
|
|
21
|
+
* nothing about whether this particular action is valid or was
|
|
22
|
+
* executed.
|
|
23
|
+
*/
|
|
24
|
+
export declare enum AuthorityStatus {
|
|
25
|
+
AUTHORIZED = "AUTHORIZED",
|
|
26
|
+
NOT_AUTHORIZED = "NOT_AUTHORIZED",
|
|
27
|
+
AUTHORITY_UNCLEAR = "AUTHORITY_UNCLEAR",
|
|
28
|
+
AUTHORITY_EXPIRED = "AUTHORITY_EXPIRED"
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Whether the business facts the policy needs were established by
|
|
32
|
+
* their sources and support this exact action.
|
|
33
|
+
*
|
|
34
|
+
* NOT_EVALUATED means no validation ran: authority was not
|
|
35
|
+
* established, the proposal did not describe the Intent, or the policy
|
|
36
|
+
* declares no sourced facts. It is never VALID.
|
|
37
|
+
*/
|
|
38
|
+
export declare enum BusinessValidationStatus {
|
|
39
|
+
VALID = "VALID",
|
|
40
|
+
INVALID = "INVALID",
|
|
41
|
+
MISSING_DATA = "MISSING_DATA",
|
|
42
|
+
CONFLICTING_DATA = "CONFLICTING_DATA",
|
|
43
|
+
SOURCE_UNAVAILABLE = "SOURCE_UNAVAILABLE",
|
|
44
|
+
VALIDATION_EXPIRED = "VALIDATION_EXPIRED",
|
|
45
|
+
NOT_EVALUATED = "NOT_EVALUATED"
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* What happened to the action. EXECUTION_UNKNOWN is a release whose
|
|
49
|
+
* outcome could not be established (for example a connector timeout
|
|
50
|
+
* after the request was sent); it is never reported as failed.
|
|
51
|
+
*/
|
|
52
|
+
export declare enum ExecutionAssessmentStatus {
|
|
53
|
+
EXECUTED = "EXECUTED",
|
|
54
|
+
NOT_EXECUTED = "NOT_EXECUTED",
|
|
55
|
+
EXECUTION_FAILED = "EXECUTION_FAILED",
|
|
56
|
+
EXECUTION_UNKNOWN = "EXECUTION_UNKNOWN"
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* How a TrustedSignal's content is bound. `digest` is the SHA-256 of
|
|
60
|
+
* the canonical form of the signal without its integrityProof. It is
|
|
61
|
+
* signed by Parmana as part of the record that carries the signal; it
|
|
62
|
+
* proves what Parmana observed. `sourceProof` is the source's own
|
|
63
|
+
* signature over its answer, when the source is registered with a key;
|
|
64
|
+
* `sourceProofVerified` says Parmana checked it.
|
|
65
|
+
*/
|
|
66
|
+
export interface TrustedSignalIntegrityProof {
|
|
67
|
+
readonly algorithm: "sha256";
|
|
68
|
+
readonly digest: string;
|
|
69
|
+
readonly sourceProof?: string;
|
|
70
|
+
/**
|
|
71
|
+
* The key the source signed its answer with, as registered (RFC-0023
|
|
72
|
+
* phase 2). Present only with a sourceProof.
|
|
73
|
+
*/
|
|
74
|
+
readonly sourceKeyId?: string;
|
|
75
|
+
/**
|
|
76
|
+
* True when Parmana verified sourceProof against the source's
|
|
77
|
+
* registered public key before trusting the answer. A source registered
|
|
78
|
+
* with a key cannot give an answer without one: it is refused as
|
|
79
|
+
* SOURCE_UNAVAILABLE. So a Trusted Signal from such a source proves the
|
|
80
|
+
* source said it, not only that Parmana observed it.
|
|
81
|
+
*/
|
|
82
|
+
readonly sourceProofVerified?: boolean;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* One business fact established by its source, bound to the exact
|
|
86
|
+
* business object and the exact action it supports.
|
|
87
|
+
*/
|
|
88
|
+
export interface TrustedSignal {
|
|
89
|
+
readonly signalId: string;
|
|
90
|
+
/** The policy signal this fact supplies, such as "refundEligible". */
|
|
91
|
+
readonly signalKey: string;
|
|
92
|
+
/** The registered source that answered, such as "orders-system". */
|
|
93
|
+
readonly source: string;
|
|
94
|
+
/** Who answered, as the source reports it (an endpoint, an account). */
|
|
95
|
+
readonly sourceIdentity: string;
|
|
96
|
+
/** What was asked, such as "refund.eligible". */
|
|
97
|
+
readonly claim: string;
|
|
98
|
+
/** The business object the fact is about, read from the Intent. */
|
|
99
|
+
readonly subject: string;
|
|
100
|
+
/** Where in the Intent the subject was read, such as "parameters.orderId". */
|
|
101
|
+
readonly subjectPath: string;
|
|
102
|
+
readonly observedValue: JsonValue;
|
|
103
|
+
readonly observedAt: Date;
|
|
104
|
+
readonly validUntil: Date;
|
|
105
|
+
/** The action and transaction this fact was established for. */
|
|
106
|
+
readonly action: string;
|
|
107
|
+
readonly businessTransactionId: string;
|
|
108
|
+
readonly integrityProof: TrustedSignalIntegrityProof;
|
|
109
|
+
readonly verificationStatus: "VERIFIED";
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Why one declared fact could not be established, or contradicted the
|
|
113
|
+
* proposal.
|
|
114
|
+
*/
|
|
115
|
+
export interface BusinessValidationFailure {
|
|
116
|
+
readonly signalKey: string;
|
|
117
|
+
readonly status: BusinessValidationStatus;
|
|
118
|
+
readonly reason: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* A limit an authority grant sets on one place in the Intent (RFC-0023
|
|
122
|
+
* phase 3). `min` and `max` apply to a number there, inclusive; `oneOf`
|
|
123
|
+
* lists the only values allowed there. A request whose value is missing,
|
|
124
|
+
* of another type, or outside the limit is NOT_AUTHORIZED.
|
|
125
|
+
*/
|
|
126
|
+
export interface AuthorityGrantLimit {
|
|
127
|
+
readonly min?: number;
|
|
128
|
+
readonly max?: number;
|
|
129
|
+
readonly oneOf?: readonly (string | number)[];
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* The grant a decision's authority rests on, as it stood when the
|
|
133
|
+
* request was decided: who it was granted to, for which capability,
|
|
134
|
+
* within which limits, and for how long.
|
|
135
|
+
*/
|
|
136
|
+
export interface AuthorityGrantReference {
|
|
137
|
+
readonly grantId: string;
|
|
138
|
+
/** The authenticated caller the grant was made to. */
|
|
139
|
+
readonly callerId: string;
|
|
140
|
+
readonly capability: string;
|
|
141
|
+
readonly validFrom: Date;
|
|
142
|
+
readonly validUntil: Date;
|
|
143
|
+
/** By Intent path: "target" or "parameters.<name>". */
|
|
144
|
+
readonly limits?: Readonly<Record<string, AuthorityGrantLimit>>;
|
|
145
|
+
}
|
|
146
|
+
export interface AuthorityAssessment {
|
|
147
|
+
readonly status: AuthorityStatus;
|
|
148
|
+
readonly reason: string;
|
|
149
|
+
/**
|
|
150
|
+
* The grant checked, when the policy requires one (phase 3): the grant
|
|
151
|
+
* that authorized the request, or the one that had expired or whose
|
|
152
|
+
* limit the request exceeded. Absent when no grant was found.
|
|
153
|
+
*/
|
|
154
|
+
readonly grant?: AuthorityGrantReference;
|
|
155
|
+
}
|
|
156
|
+
export interface BusinessValidationAssessment {
|
|
157
|
+
readonly status: BusinessValidationStatus;
|
|
158
|
+
readonly reason: string;
|
|
159
|
+
/** Facts established for this request, including any that passed when another failed. */
|
|
160
|
+
readonly signals?: readonly TrustedSignal[];
|
|
161
|
+
readonly failures?: readonly BusinessValidationFailure[];
|
|
162
|
+
}
|
|
163
|
+
export interface ExecutionAssessment {
|
|
164
|
+
readonly status: ExecutionAssessmentStatus;
|
|
165
|
+
readonly reason: string;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* The separate answers behind one Decision. `execution` is present on a
|
|
169
|
+
* refused decision (always NOT_EXECUTED). For an approved decision the
|
|
170
|
+
* Execution Trust Record's executions carry what happened.
|
|
171
|
+
*/
|
|
172
|
+
export interface DecisionAssessment {
|
|
173
|
+
readonly authority: AuthorityAssessment;
|
|
174
|
+
readonly businessValidation: BusinessValidationAssessment;
|
|
175
|
+
readonly execution?: ExecutionAssessment;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=business-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-validation.d.ts","sourceRoot":"","sources":["../../src/domain/business-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Business validation (RFC-0023).
|
|
3
|
+
*
|
|
4
|
+
* An agent proposes an action and the facts it rests on. Parmana keeps
|
|
5
|
+
* two questions apart and answers each one itself:
|
|
6
|
+
*
|
|
7
|
+
* - Authority: may this caller perform this kind of action at all?
|
|
8
|
+
* - Business validity: is this exact action valid for this exact
|
|
9
|
+
* business object, according to the system that owns the facts?
|
|
10
|
+
*
|
|
11
|
+
* A fact the agent proposed is never a business fact. For every signal
|
|
12
|
+
* a policy declares a source for, Parmana asks that source and records
|
|
13
|
+
* the answer as a TrustedSignal; the policy is evaluated on the trusted
|
|
14
|
+
* value. Every status here is final for its request: nothing converts
|
|
15
|
+
* AUTHORITY_UNCLEAR into AUTHORIZED, MISSING_DATA into VALID, or
|
|
16
|
+
* INVALID into VALID.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Whether the caller may perform this kind of action. AUTHORIZED says
|
|
20
|
+
* nothing about whether this particular action is valid or was
|
|
21
|
+
* executed.
|
|
22
|
+
*/
|
|
23
|
+
export var AuthorityStatus;
|
|
24
|
+
(function (AuthorityStatus) {
|
|
25
|
+
AuthorityStatus["AUTHORIZED"] = "AUTHORIZED";
|
|
26
|
+
AuthorityStatus["NOT_AUTHORIZED"] = "NOT_AUTHORIZED";
|
|
27
|
+
AuthorityStatus["AUTHORITY_UNCLEAR"] = "AUTHORITY_UNCLEAR";
|
|
28
|
+
AuthorityStatus["AUTHORITY_EXPIRED"] = "AUTHORITY_EXPIRED";
|
|
29
|
+
})(AuthorityStatus || (AuthorityStatus = {}));
|
|
30
|
+
/**
|
|
31
|
+
* Whether the business facts the policy needs were established by
|
|
32
|
+
* their sources and support this exact action.
|
|
33
|
+
*
|
|
34
|
+
* NOT_EVALUATED means no validation ran: authority was not
|
|
35
|
+
* established, the proposal did not describe the Intent, or the policy
|
|
36
|
+
* declares no sourced facts. It is never VALID.
|
|
37
|
+
*/
|
|
38
|
+
export var BusinessValidationStatus;
|
|
39
|
+
(function (BusinessValidationStatus) {
|
|
40
|
+
BusinessValidationStatus["VALID"] = "VALID";
|
|
41
|
+
BusinessValidationStatus["INVALID"] = "INVALID";
|
|
42
|
+
BusinessValidationStatus["MISSING_DATA"] = "MISSING_DATA";
|
|
43
|
+
BusinessValidationStatus["CONFLICTING_DATA"] = "CONFLICTING_DATA";
|
|
44
|
+
BusinessValidationStatus["SOURCE_UNAVAILABLE"] = "SOURCE_UNAVAILABLE";
|
|
45
|
+
BusinessValidationStatus["VALIDATION_EXPIRED"] = "VALIDATION_EXPIRED";
|
|
46
|
+
BusinessValidationStatus["NOT_EVALUATED"] = "NOT_EVALUATED";
|
|
47
|
+
})(BusinessValidationStatus || (BusinessValidationStatus = {}));
|
|
48
|
+
/**
|
|
49
|
+
* What happened to the action. EXECUTION_UNKNOWN is a release whose
|
|
50
|
+
* outcome could not be established (for example a connector timeout
|
|
51
|
+
* after the request was sent); it is never reported as failed.
|
|
52
|
+
*/
|
|
53
|
+
export var ExecutionAssessmentStatus;
|
|
54
|
+
(function (ExecutionAssessmentStatus) {
|
|
55
|
+
ExecutionAssessmentStatus["EXECUTED"] = "EXECUTED";
|
|
56
|
+
ExecutionAssessmentStatus["NOT_EXECUTED"] = "NOT_EXECUTED";
|
|
57
|
+
ExecutionAssessmentStatus["EXECUTION_FAILED"] = "EXECUTION_FAILED";
|
|
58
|
+
ExecutionAssessmentStatus["EXECUTION_UNKNOWN"] = "EXECUTION_UNKNOWN";
|
|
59
|
+
})(ExecutionAssessmentStatus || (ExecutionAssessmentStatus = {}));
|
|
60
|
+
//# sourceMappingURL=business-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"business-validation.js","sourceRoot":"","sources":["../../src/domain/business-validation.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,oDAAiC,CAAA;IACjC,0DAAuC,CAAA;IACvC,0DAAuC,CAAA;AACzC,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAClC,2CAAe,CAAA;IACf,+CAAmB,CAAA;IACnB,yDAA6B,CAAA;IAC7B,iEAAqC,CAAA;IACrC,qEAAyC,CAAA;IACzC,qEAAyC,CAAA;IACzC,2DAA+B,CAAA;AACjC,CAAC,EARW,wBAAwB,KAAxB,wBAAwB,QAQnC;AAED;;;;GAIG;AACH,MAAM,CAAN,IAAY,yBAKX;AALD,WAAY,yBAAyB;IACnC,kDAAqB,CAAA;IACrB,0DAA6B,CAAA;IAC7B,kEAAqC,CAAA;IACrC,oEAAuC,CAAA;AACzC,CAAC,EALW,yBAAyB,KAAzB,yBAAyB,QAKpC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Challenge Record (RFC-0022).
|
|
3
|
+
*
|
|
4
|
+
* A durable, structured trace of one specific challenge to a Parmana
|
|
5
|
+
* claim or assumption: what was challenged, who/how it surfaced, what
|
|
6
|
+
* was actually checked (the investigation method, not only the
|
|
7
|
+
* conclusion), the finding, what changed as a result (if anything),
|
|
8
|
+
* and whether/where it was disclosed.
|
|
9
|
+
*
|
|
10
|
+
* Deliberately NOT signed — see RFC-0022 § Proposal 3. A
|
|
11
|
+
* ChallengeRecord is evidence of an organizational process (a human
|
|
12
|
+
* or agent deciding what to investigate and what it means), not a
|
|
13
|
+
* runtime transaction outcome; the party who could misrepresent it is
|
|
14
|
+
* the same party who writes it, so a signature would prove
|
|
15
|
+
* tamper-evidence of bytes-on-disk while leaving the actual trust
|
|
16
|
+
* question (was the investigation honest) unaddressed. Trustworthy
|
|
17
|
+
* instead through citation discipline (every investigation step and
|
|
18
|
+
* finding should cite something independently checkable) and, where
|
|
19
|
+
* applicable, public disclosure — the same discipline docs/internal/CLAIMS.md
|
|
20
|
+
* and docs/internal/VERIFICATION-GAPS.md already rely on with no cryptography.
|
|
21
|
+
*
|
|
22
|
+
* Append-only, per ADR-0005-Evidence-Is-Append-Only.md, but unlike
|
|
23
|
+
* RefusalRecord (a single terminal event with nothing to append to),
|
|
24
|
+
* a ChallengeRecord is investigated over real time: investigationSteps
|
|
25
|
+
* accumulates, and status moves forward (open -> investigating ->
|
|
26
|
+
* resolved) without ever reopening by mutating a prior entry — a
|
|
27
|
+
* challenge believed resolved that later needs more work becomes a
|
|
28
|
+
* NEW ChallengeRecord linked via `supersedes`, not an edit to this
|
|
29
|
+
* one. See ChallengeRecordRepository.append, which enforces this.
|
|
30
|
+
*/
|
|
31
|
+
export interface ChallengeRecord {
|
|
32
|
+
/**
|
|
33
|
+
* Unique Challenge Record identifier.
|
|
34
|
+
*/
|
|
35
|
+
readonly challengeRecordId: string;
|
|
36
|
+
/**
|
|
37
|
+
* Lifecycle status. Only ever moves forward (open ->
|
|
38
|
+
* investigating -> resolved); never reopens in place.
|
|
39
|
+
*/
|
|
40
|
+
readonly status: ChallengeRecordStatus;
|
|
41
|
+
/**
|
|
42
|
+
* The specific claim or assumption being challenged, stated
|
|
43
|
+
* precisely enough that someone unfamiliar with the conversation
|
|
44
|
+
* that raised it can tell exactly what's being checked. Where
|
|
45
|
+
* possible, cites the exact claim (a CLAIMS.md line, a doc page, a
|
|
46
|
+
* piece of code, a specific public statement) — the same citation
|
|
47
|
+
* discipline docs/internal/CLAIMS.md already applies to its own claims.
|
|
48
|
+
*/
|
|
49
|
+
readonly claimChallenged: string;
|
|
50
|
+
/**
|
|
51
|
+
* How the challenge surfaced. Set once, at creation; not part of
|
|
52
|
+
* the append-only lifecycle.
|
|
53
|
+
*/
|
|
54
|
+
readonly source: ChallengeRecordSource;
|
|
55
|
+
/**
|
|
56
|
+
* The investigation itself, in order. Append-only: existing entries
|
|
57
|
+
* are never edited or removed, only added to.
|
|
58
|
+
*/
|
|
59
|
+
readonly investigationSteps: readonly ChallengeRecordInvestigationStep[];
|
|
60
|
+
/**
|
|
61
|
+
* The finding, in a fixed, precise vocabulary. Absent while the
|
|
62
|
+
* challenge is still open/investigating. Immutable once set — a
|
|
63
|
+
* later correction is a new ChallengeRecord (see `supersedes`),
|
|
64
|
+
* never an edit here.
|
|
65
|
+
*/
|
|
66
|
+
readonly finding?: ChallengeRecordFinding;
|
|
67
|
+
/**
|
|
68
|
+
* What changed as a result, including the explicit "nothing
|
|
69
|
+
* changed" case. Immutable once set, same as `finding`.
|
|
70
|
+
*/
|
|
71
|
+
readonly outcome?: ChallengeRecordOutcome;
|
|
72
|
+
/**
|
|
73
|
+
* Whether and where this was disclosed publicly. A ChallengeRecord
|
|
74
|
+
* may exist and stay fully internal — disclosure is a separate,
|
|
75
|
+
* explicit fact, never implied by the record's own existence.
|
|
76
|
+
* Immutable once set, same as `finding`.
|
|
77
|
+
*/
|
|
78
|
+
readonly disclosure?: ChallengeRecordDisclosure;
|
|
79
|
+
/**
|
|
80
|
+
* The prior ChallengeRecord this one supersedes or follows up on
|
|
81
|
+
* (e.g. a challenge believed resolved that needed reopening).
|
|
82
|
+
* ADR-0005's "corrections are new artifacts, not edits" discipline
|
|
83
|
+
* applied to this artifact type.
|
|
84
|
+
*/
|
|
85
|
+
readonly supersedes?: string;
|
|
86
|
+
/**
|
|
87
|
+
* UTC timestamp when this Challenge Record was created.
|
|
88
|
+
*/
|
|
89
|
+
readonly createdAt: Date;
|
|
90
|
+
/**
|
|
91
|
+
* UTC timestamp of the most recent append (investigation step,
|
|
92
|
+
* status change, finding, outcome, or disclosure). Equal to
|
|
93
|
+
* createdAt until the first append.
|
|
94
|
+
*/
|
|
95
|
+
readonly updatedAt: Date;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Fixed lifecycle vocabulary. Deliberately closed (not free text) so
|
|
99
|
+
* "is this still being worked on" is always a checkable field, never
|
|
100
|
+
* inferred from prose — the same reasoning behind `finding.outcome`
|
|
101
|
+
* below.
|
|
102
|
+
*/
|
|
103
|
+
export type ChallengeRecordStatus = "open" | "investigating" | "resolved";
|
|
104
|
+
/**
|
|
105
|
+
* Where a challenge came from. A closed, reviewable set covering
|
|
106
|
+
* every source RFC-0022's own survey of this year's informal
|
|
107
|
+
* challenge-handling found in practice.
|
|
108
|
+
*/
|
|
109
|
+
export interface ChallengeRecordSource {
|
|
110
|
+
readonly kind: "public-comment" | "internal-review" | "customer-question" | "adversarial-exercise" | "self-identified";
|
|
111
|
+
/**
|
|
112
|
+
* A URL, a name, or an internal identifier — whatever attribution
|
|
113
|
+
* is actually available and has been explicitly cleared for
|
|
114
|
+
* inclusion. Defaults to withheld: omit this field rather than
|
|
115
|
+
* populate it with a name/identifier that hasn't been explicitly
|
|
116
|
+
* confirmed safe to record (RFC-0022 Open Question 3 resolution —
|
|
117
|
+
* attribution never defaults toward disclosure).
|
|
118
|
+
*/
|
|
119
|
+
readonly attribution?: string;
|
|
120
|
+
readonly raisedAt: Date;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* One discrete investigative step: what was actually examined, not
|
|
124
|
+
* only what was concluded. Mirrors the "cites a file, a line, or a
|
|
125
|
+
* specific test" discipline docs/internal/VERIFICATION-GAPS.md's own Purpose
|
|
126
|
+
* section already states.
|
|
127
|
+
*/
|
|
128
|
+
export interface ChallengeRecordInvestigationStep {
|
|
129
|
+
readonly performedAt: Date;
|
|
130
|
+
/**
|
|
131
|
+
* What was actually examined: a file path, a test name, a command
|
|
132
|
+
* run, a specific log query, a specific data record.
|
|
133
|
+
*/
|
|
134
|
+
readonly method: string;
|
|
135
|
+
readonly observation: string;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* The finding, in a fixed, precise vocabulary — deliberately narrower
|
|
139
|
+
* than free prose so it cannot be quietly rounded up ("inconclusive"
|
|
140
|
+
* becoming "confirmed there's no issue") or down.
|
|
141
|
+
*/
|
|
142
|
+
export interface ChallengeRecordFinding {
|
|
143
|
+
readonly outcome: "confirmed" | "partially-confirmed" | "ruled-out" | "inconclusive";
|
|
144
|
+
/**
|
|
145
|
+
* Precise statement of what, exactly, the outcome means here. A
|
|
146
|
+
* bare enum value with no explanation is exactly the kind of
|
|
147
|
+
* unchecked assertion this record type exists to prevent.
|
|
148
|
+
*/
|
|
149
|
+
readonly statement: string;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* What changed as a result of the challenge. `changed: false` is a
|
|
153
|
+
* first-class, disclosed outcome, not an implicit absence of this
|
|
154
|
+
* field.
|
|
155
|
+
*/
|
|
156
|
+
export interface ChallengeRecordOutcome {
|
|
157
|
+
readonly changed: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* If changed: the design decision, code change, disclosure, or new
|
|
160
|
+
* RFC/gap this produced. If not changed: the reason, stated as
|
|
161
|
+
* precisely as `finding.statement`.
|
|
162
|
+
*/
|
|
163
|
+
readonly description: string;
|
|
164
|
+
/**
|
|
165
|
+
* Cross-links to whatever this produced — a commit hash, an RFC
|
|
166
|
+
* number, a VERIFICATION-GAPS.md gap id, a docs/site page path.
|
|
167
|
+
* Deliberately free-form: the set of things a challenge can produce
|
|
168
|
+
* is open-ended.
|
|
169
|
+
*/
|
|
170
|
+
readonly references: readonly string[];
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Whether and where a Challenge Record was disclosed publicly.
|
|
174
|
+
*/
|
|
175
|
+
export interface ChallengeRecordDisclosure {
|
|
176
|
+
readonly disclosedPublicly: boolean;
|
|
177
|
+
/** A docs/site path, a changelog entry, a public repo file. */
|
|
178
|
+
readonly location?: string;
|
|
179
|
+
readonly disclosedAt?: Date;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=challenge-record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"challenge-record.d.ts","sourceRoot":"","sources":["../../src/domain/challenge-record.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAEnC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,SAAS,gCAAgC,EAAE,CAAC;IAEzE;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAE1C;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAyB,CAAC;IAEhD;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,eAAe,GAAG,UAAU,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EACT,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,iBAAiB,CAAC;IAEtB;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EACd,WAAW,GAAG,qBAAqB,GAAG,WAAW,GAAG,cAAc,CAAC;IAErE;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEpC,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"challenge-record.js","sourceRoot":"","sources":["../../src/domain/challenge-record.ts"],"names":[],"mappings":""}
|