@fabricorg/platform 0.1.2 → 0.2.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/dist/actions/index.cjs +48 -0
- package/dist/actions/index.cjs.map +1 -0
- package/dist/actions/index.d.cts +116 -0
- package/dist/adapters/index.cjs +28 -0
- package/dist/adapters/index.cjs.map +1 -0
- package/dist/adapters/index.d.cts +83 -0
- package/dist/chunk-7KJHGAZY.cjs +99 -0
- package/dist/chunk-7KJHGAZY.cjs.map +1 -0
- package/dist/chunk-GB2PSZ33.cjs +74 -0
- package/dist/chunk-GB2PSZ33.cjs.map +1 -0
- package/dist/chunk-JAXDEK5Z.cjs +63 -0
- package/dist/chunk-JAXDEK5Z.cjs.map +1 -0
- package/dist/chunk-KQEBNUZI.cjs +70 -0
- package/dist/chunk-KQEBNUZI.cjs.map +1 -0
- package/dist/chunk-LHCSVEFT.cjs +8 -0
- package/dist/chunk-LHCSVEFT.cjs.map +1 -0
- package/dist/chunk-LYX73U3P.cjs +195 -0
- package/dist/chunk-LYX73U3P.cjs.map +1 -0
- package/dist/chunk-LZSE6QGQ.cjs +60 -0
- package/dist/chunk-LZSE6QGQ.cjs.map +1 -0
- package/dist/chunk-NPVIFZQV.cjs +107 -0
- package/dist/chunk-NPVIFZQV.cjs.map +1 -0
- package/dist/chunk-PG5LYTUX.cjs +4 -0
- package/dist/chunk-PG5LYTUX.cjs.map +1 -0
- package/dist/chunk-Q3WYIWCN.cjs +183 -0
- package/dist/chunk-Q3WYIWCN.cjs.map +1 -0
- package/dist/chunk-QETQGAXJ.cjs +35 -0
- package/dist/chunk-QETQGAXJ.cjs.map +1 -0
- package/dist/chunk-SDXDHVTV.cjs +555 -0
- package/dist/chunk-SDXDHVTV.cjs.map +1 -0
- package/dist/chunk-YZKUEC2J.cjs +31 -0
- package/dist/chunk-YZKUEC2J.cjs.map +1 -0
- package/dist/displays/index.cjs +24 -0
- package/dist/displays/index.cjs.map +1 -0
- package/dist/displays/index.d.cts +34 -0
- package/dist/events/index.cjs +36 -0
- package/dist/events/index.cjs.map +1 -0
- package/dist/events/index.d.cts +35 -0
- package/dist/evidence/index.cjs +6 -0
- package/dist/evidence/index.cjs.map +1 -0
- package/dist/evidence/index.d.cts +43 -0
- package/dist/ids/index.cjs +24 -0
- package/dist/ids/index.cjs.map +1 -0
- package/dist/ids/index.d.cts +19 -0
- package/dist/index.cjs +268 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +13 -0
- package/dist/modules/index.cjs +42 -0
- package/dist/modules/index.cjs.map +1 -0
- package/dist/modules/index.d.cts +73 -0
- package/dist/objects/index.cjs +24 -0
- package/dist/objects/index.cjs.map +1 -0
- package/dist/objects/index.d.cts +7 -0
- package/dist/policies/index.cjs +48 -0
- package/dist/policies/index.cjs.map +1 -0
- package/dist/policies/index.d.cts +143 -0
- package/dist/privacy/index.cjs +12 -0
- package/dist/privacy/index.cjs.map +1 -0
- package/dist/privacy/index.d.cts +77 -0
- package/dist/projections/index.cjs +12 -0
- package/dist/projections/index.cjs.map +1 -0
- package/dist/projections/index.d.cts +52 -0
- package/dist/state-machines/index.cjs +32 -0
- package/dist/state-machines/index.cjs.map +1 -0
- package/dist/state-machines/index.d.cts +60 -0
- package/dist/testing/index.cjs +21 -0
- package/dist/testing/index.cjs.map +1 -0
- package/dist/testing/index.d.cts +19 -0
- package/package.json +196 -111
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../policies/index.ts"],"names":["result","passed"],"mappings":"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","file":"chunk-SDXDHVTV.cjs","sourcesContent":["export type PolicyEvaluationResult = \"pass\" | \"warn\" | \"block\";\n\nexport type PolicyKind = \"code\" | \"data\" | \"hybrid\";\n\nexport type PolicyId = `${string}.v${number}`;\n\nexport type PolicyEvaluationMode = \"preview\" | \"execute\";\n\nexport function assertPolicyId(policyId: string): asserts policyId is PolicyId {\n\tif (!/^[a-z][a-z0-9_-]*(\\.[a-z][a-z0-9_-]*)*\\.v[0-9]+$/.test(policyId)) {\n\t\tthrow new Error(`Invalid policy ID: ${policyId}`);\n\t}\n}\n\nexport interface PolicyContext<TDb = unknown> {\n\ttenantId: string;\n\tspaceId: string;\n\tactionInvocationId: string;\n\tactionId: string;\n\tparameters: unknown;\n\tdb: TDb;\n\tnow?: Date;\n\tmode?: PolicyEvaluationMode;\n}\n\nexport interface PolicyOutcome {\n\tpolicyId: PolicyId;\n\tpolicyVersion: number;\n\tpolicyKind?: PolicyKind;\n\tresult: PolicyEvaluationResult;\n\treason?: string;\n\tmetadata?: Record<string, unknown>;\n\tdispatchEvidence?: PolicyDispatchEvidence;\n}\n\nexport interface PolicyEvaluator<TDb = unknown> {\n\tpolicyId: PolicyId;\n\tversion: number;\n\tkind?: Extract<PolicyKind, \"code\">;\n\tpreviewSafe?: boolean;\n\tevaluate: (ctx: PolicyContext<TDb>) => Promise<PolicyOutcome>;\n}\n\nexport type DataPolicySource = \"parameters\" | \"context\";\n\nexport type DataPolicyLiteral = string | number | boolean | null;\n\nexport type DataPolicyComparisonOperator =\n\t| \"exists\"\n\t| \"equals\"\n\t| \"notEquals\"\n\t| \"gt\"\n\t| \"gte\"\n\t| \"lt\"\n\t| \"lte\";\n\nexport interface DataPolicySourceReference {\n\tsource: DataPolicySource;\n\tpath: string;\n}\n\nexport type DataPolicyCondition =\n\t| {\n\t\t\tconditionId: string;\n\t\t\ttype: \"always\";\n\t\t\tresult: PolicyEvaluationResult;\n\t\t\treason?: string;\n\t\t}\n\t| {\n\t\t\tconditionId: string;\n\t\t\ttype: \"parameter\";\n\t\t\tpath: string;\n\t\t\toperator: DataPolicyComparisonOperator;\n\t\t\tvalue?: DataPolicyLiteral;\n\t\t\tonPass?: PolicyEvaluationResult;\n\t\t\tonFail?: PolicyEvaluationResult;\n\t\t\treason?: string;\n\t\t}\n\t| {\n\t\t\tconditionId: string;\n\t\t\ttype: \"comparison\";\n\t\t\tleft: DataPolicySourceReference;\n\t\t\toperator: DataPolicyComparisonOperator;\n\t\t\tvalue?: DataPolicyLiteral;\n\t\t\tonPass?: PolicyEvaluationResult;\n\t\t\tonFail?: PolicyEvaluationResult;\n\t\t\treason?: string;\n\t\t}\n\t| {\n\t\t\tconditionId: string;\n\t\t\ttype: \"all\" | \"any\";\n\t\t\tconditions: DataPolicyCondition[];\n\t\t\tonPass?: PolicyEvaluationResult;\n\t\t\tonFail?: PolicyEvaluationResult;\n\t\t\treason?: string;\n\t\t}\n\t| {\n\t\t\tconditionId: string;\n\t\t\ttype: \"not\";\n\t\t\tcondition: DataPolicyCondition;\n\t\t\tonPass?: PolicyEvaluationResult;\n\t\t\tonFail?: PolicyEvaluationResult;\n\t\t\treason?: string;\n\t\t};\n\nexport interface DataPolicyDefinition {\n\tconditions: DataPolicyCondition[];\n\tdefaultResult?: PolicyEvaluationResult;\n\treason?: string;\n}\n\nexport interface DataPolicyValidationResult {\n\tvalid: boolean;\n\terrors: string[];\n}\n\nconst DATA_POLICY_MAX_DEPTH = 5;\nconst DATA_POLICY_MAX_CONDITIONS_PER_NODE = 20;\nconst DATA_POLICY_MAX_TOTAL_CONDITIONS = 100;\nconst DATA_POLICY_MAX_PATH_SEGMENTS = 12;\nconst DATA_POLICY_MAX_STRING_LENGTH = 500;\n\nconst DATA_POLICY_CONTEXT_PATHS = new Set([\n\t\"tenantId\",\n\t\"spaceId\",\n\t\"actionInvocationId\",\n\t\"actionId\",\n\t\"mode\",\n]);\n\nconst DATA_POLICY_COMPARISON_OPERATORS = new Set<DataPolicyComparisonOperator>([\n\t\"exists\",\n\t\"equals\",\n\t\"notEquals\",\n\t\"gt\",\n\t\"gte\",\n\t\"lt\",\n\t\"lte\",\n]);\n\nconst POLICY_RESULTS = new Set<PolicyEvaluationResult>([\"pass\", \"warn\", \"block\"]);\n\nexport interface PolicyFallbackDefinition {\n\tcodeEvaluatorPolicyId: PolicyId;\n\tonResults?: PolicyEvaluationResult[];\n\ttriggers?: PolicyFallbackTrigger[];\n\treason?: string;\n}\n\nexport type PolicyFallbackTrigger =\n\t| \"data_result\"\n\t| \"missing_data_definition\"\n\t| \"invalid_data_definition\";\n\nexport interface DataPolicyConditionResult {\n\tconditionId: string;\n\tpassed: boolean;\n\tresult: PolicyEvaluationResult;\n\treason?: string;\n}\n\nexport interface RuntimePolicyDefinition {\n\tpolicyId: PolicyId;\n\tpolicyVersion: number;\n\tkind: PolicyKind;\n\tdataDefinition?: DataPolicyDefinition;\n\tcodeEvaluatorPolicyId?: PolicyId;\n\tfallback?: PolicyFallbackDefinition;\n}\n\nexport interface PolicyDispatchEvidence {\n\tpolicyKind: PolicyKind;\n\tpolicyId?: PolicyId;\n\tpolicyVersion?: number;\n\tdispatchPath: Array<\"data\" | \"code\" | \"fallback\">;\n\tdata?: {\n\t\tdefinitionVersion: number;\n\t\tdefinitionStatus: \"evaluated\" | \"missing\" | \"invalid\";\n\t\tconditionResults: DataPolicyConditionResult[];\n\t\tvalidationErrors?: string[];\n\t};\n\tcode?: {\n\t\trequestedPolicyId?: PolicyId;\n\t\tpolicyId: PolicyId;\n\t\tversion?: number;\n\t\tregistered: boolean;\n\t};\n\tfallback?: {\n\t\tused: boolean;\n\t\ttrigger: PolicyFallbackTrigger | \"not_triggered\";\n\t\treason: string;\n\t\tfromResult?: PolicyEvaluationResult;\n\t\tdefinitionVersion: number;\n\t\tcodeEvaluatorPolicyId: PolicyId;\n\t};\n}\n\nconst registry = new Map<PolicyId, PolicyEvaluator>();\n\nexport function registerPolicy(evaluator: PolicyEvaluator): void {\n\tassertPolicyId(evaluator.policyId);\n\n\tconst existing = registry.get(evaluator.policyId);\n\tif (existing && existing !== evaluator) {\n\t\tthrow new Error(\n\t\t\t`Conflicting policy registration for \"${evaluator.policyId}\". ` +\n\t\t\t\t`A different evaluator is already registered.`,\n\t\t);\n\t}\n\n\tregistry.set(evaluator.policyId, evaluator);\n}\n\nexport function registerPolicyIfMissing(evaluator: PolicyEvaluator): void {\n\tif (!registry.has(evaluator.policyId)) {\n\t\tregisterPolicy(evaluator);\n\t\treturn;\n\t}\n\n\tconst existing = registry.get(evaluator.policyId);\n\tif (existing && existing !== evaluator) {\n\t\tthrow new Error(\n\t\t\t`Conflicting policy registration for \"${evaluator.policyId}\". ` +\n\t\t\t\t`A different evaluator is already registered.`,\n\t\t);\n\t}\n}\n\nexport function resolvePolicy(policyId: PolicyId): PolicyEvaluator | undefined {\n\treturn registry.get(policyId);\n}\n\nexport function getRegisteredPolicyIds(): PolicyId[] {\n\treturn Array.from(registry.keys());\n}\n\nexport async function evaluateRegisteredPolicies(\n\tpolicyIds: PolicyId[],\n\tctx: PolicyContext,\n): Promise<PolicyOutcome[]> {\n\treturn evaluatePolicyDefinitions(\n\t\tpolicyIds.map((policyId) => ({\n\t\t\tpolicyId,\n\t\t\tpolicyVersion: parsePolicyVersion(policyId),\n\t\t\tkind: \"code\",\n\t\t\tcodeEvaluatorPolicyId: policyId,\n\t\t})),\n\t\tctx,\n\t);\n}\n\nexport async function evaluatePolicyDefinitions(\n\tpolicies: RuntimePolicyDefinition[],\n\tctx: PolicyContext,\n): Promise<PolicyOutcome[]> {\n\tconst outcomes: PolicyOutcome[] = [];\n\n\tfor (const policy of policies) {\n\t\tassertPolicyId(policy.policyId);\n\t\toutcomes.push(await evaluatePolicyDefinition(policy, ctx));\n\t}\n\n\treturn outcomes;\n}\n\nexport async function evaluatePolicyDefinition(\n\tpolicy: RuntimePolicyDefinition,\n\tctx: PolicyContext,\n): Promise<PolicyOutcome> {\n\tif (policy.kind === \"data\") {\n\t\treturn evaluateDataPolicy(policy, ctx);\n\t}\n\n\tif (policy.kind === \"code\") {\n\t\treturn evaluateCodePolicy(policy, ctx);\n\t}\n\n\treturn evaluateHybridPolicy(policy, ctx);\n}\n\nasync function evaluateCodePolicy(\n\tpolicy: RuntimePolicyDefinition,\n\tctx: PolicyContext,\n): Promise<PolicyOutcome> {\n\tconst codeEvaluatorPolicyId = policy.codeEvaluatorPolicyId ?? policy.policyId;\n\tconst evaluator = registry.get(codeEvaluatorPolicyId);\n\n\tif (!evaluator) {\n\t\treturn {\n\t\t\tpolicyId: policy.policyId,\n\t\t\tpolicyVersion: policy.policyVersion,\n\t\t\tpolicyKind: policy.kind,\n\t\t\tresult: \"block\",\n\t\t\treason: `No evaluator registered for policy ${codeEvaluatorPolicyId}`,\n\t\t\tmetadata: {\n\t\t\t\tmissingCodeEvaluatorPolicyId: codeEvaluatorPolicyId,\n\t\t\t},\n\t\t\tdispatchEvidence: {\n\t\t\t\tpolicyKind: policy.kind,\n\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\tpolicyVersion: policy.policyVersion,\n\t\t\t\tdispatchPath: [\"code\"],\n\t\t\t\tcode: {\n\t\t\t\t\trequestedPolicyId: codeEvaluatorPolicyId,\n\t\t\t\t\tpolicyId: codeEvaluatorPolicyId,\n\t\t\t\t\tregistered: false,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tconst outcome = await evaluator.evaluate(ctx);\n\treturn normalizeOutcome(policy, outcome, {\n\t\tpolicyKind: policy.kind,\n\t\tpolicyId: policy.policyId,\n\t\tpolicyVersion: policy.policyVersion,\n\t\tdispatchPath: [\"code\"],\n\t\tcode: {\n\t\t\trequestedPolicyId: codeEvaluatorPolicyId,\n\t\t\tpolicyId: evaluator.policyId,\n\t\t\tversion: evaluator.version,\n\t\t\tregistered: true,\n\t\t},\n\t});\n}\n\nasync function evaluateHybridPolicy(\n\tpolicy: RuntimePolicyDefinition,\n\tctx: PolicyContext,\n): Promise<PolicyOutcome> {\n\tconst dataOutcome = evaluateDataPolicy(policy, ctx);\n\tconst fallback = policy.fallback;\n\tconst fallbackDecision = fallback\n\t\t? resolveFallbackDecision(policy, dataOutcome, fallback)\n\t\t: { shouldFallback: false, trigger: \"not_triggered\" as const };\n\n\tif (!fallback || !fallbackDecision.shouldFallback) {\n\t\tif (fallback && dataOutcome.dispatchEvidence) {\n\t\t\treturn {\n\t\t\t\t...dataOutcome,\n\t\t\t\tdispatchEvidence: {\n\t\t\t\t\t...dataOutcome.dispatchEvidence,\n\t\t\t\t\tfallback: {\n\t\t\t\t\t\tused: false,\n\t\t\t\t\t\ttrigger: \"not_triggered\",\n\t\t\t\t\t\treason: \"Data policy result did not trigger fallback\",\n\t\t\t\t\t\tfromResult: dataOutcome.result,\n\t\t\t\t\t\tdefinitionVersion: policy.policyVersion,\n\t\t\t\t\t\tcodeEvaluatorPolicyId: fallback.codeEvaluatorPolicyId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn dataOutcome;\n\t}\n\n\tconst codePolicy: RuntimePolicyDefinition = {\n\t\tpolicyId: policy.policyId,\n\t\tpolicyVersion: policy.policyVersion,\n\t\tkind: \"hybrid\",\n\t\tcodeEvaluatorPolicyId: fallback.codeEvaluatorPolicyId,\n\t};\n\tconst codeOutcome = await evaluateCodePolicy(codePolicy, ctx);\n\n\treturn normalizeOutcome(policy, codeOutcome, {\n\t\t...(codeOutcome.dispatchEvidence ?? {\n\t\t\tpolicyKind: \"hybrid\",\n\t\t\tpolicyId: policy.policyId,\n\t\t\tpolicyVersion: policy.policyVersion,\n\t\t\tdispatchPath: [\"code\"],\n\t\t}),\n\t\tpolicyKind: \"hybrid\",\n\t\tpolicyId: policy.policyId,\n\t\tpolicyVersion: policy.policyVersion,\n\t\tdispatchPath: [\"data\", \"fallback\", \"code\"],\n\t\tdata: dataOutcome.dispatchEvidence?.data,\n\t\tfallback: {\n\t\t\tused: true,\n\t\t\ttrigger: fallbackDecision.trigger,\n\t\t\treason: fallback.reason ?? \"Data policy result triggered code fallback\",\n\t\t\tfromResult: dataOutcome.result,\n\t\t\tdefinitionVersion: policy.policyVersion,\n\t\t\tcodeEvaluatorPolicyId: fallback.codeEvaluatorPolicyId,\n\t\t},\n\t});\n}\n\nfunction resolveFallbackDecision(\n\tpolicy: RuntimePolicyDefinition,\n\tdataOutcome: PolicyOutcome,\n\tfallback: PolicyFallbackDefinition,\n): { shouldFallback: boolean; trigger: PolicyFallbackTrigger | \"not_triggered\" } {\n\tconst allowedTriggers = fallback.triggers ?? [\n\t\t\"data_result\",\n\t\t\"missing_data_definition\",\n\t\t\"invalid_data_definition\",\n\t];\n\tconst definitionStatus = dataOutcome.dispatchEvidence?.data?.definitionStatus;\n\n\tif (definitionStatus === \"missing\") {\n\t\treturn {\n\t\t\tshouldFallback: allowedTriggers.includes(\"missing_data_definition\"),\n\t\t\ttrigger: \"missing_data_definition\",\n\t\t};\n\t}\n\n\tif (definitionStatus === \"invalid\") {\n\t\treturn {\n\t\t\tshouldFallback: allowedTriggers.includes(\"invalid_data_definition\"),\n\t\t\ttrigger: \"invalid_data_definition\",\n\t\t};\n\t}\n\n\tconst fallbackResults = fallback.onResults ?? [\"warn\", \"block\"];\n\treturn {\n\t\tshouldFallback:\n\t\t\tpolicy.kind === \"hybrid\" &&\n\t\t\tallowedTriggers.includes(\"data_result\") &&\n\t\t\tfallbackResults.includes(dataOutcome.result),\n\t\ttrigger: \"data_result\",\n\t};\n}\n\nfunction evaluateDataPolicy(policy: RuntimePolicyDefinition, ctx: PolicyContext): PolicyOutcome {\n\tconst definition = policy.dataDefinition;\n\n\tif (!definition) {\n\t\treturn {\n\t\t\tpolicyId: policy.policyId,\n\t\t\tpolicyVersion: policy.policyVersion,\n\t\t\tpolicyKind: policy.kind,\n\t\t\tresult: \"block\",\n\t\t\treason: \"Data policy definition is missing\",\n\t\t\tdispatchEvidence: {\n\t\t\t\tpolicyKind: policy.kind,\n\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\tpolicyVersion: policy.policyVersion,\n\t\t\t\tdispatchPath: [\"data\"],\n\t\t\t\tdata: {\n\t\t\t\t\tdefinitionVersion: policy.policyVersion,\n\t\t\t\t\tdefinitionStatus: \"missing\",\n\t\t\t\t\tconditionResults: [],\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tconst validation = validateDataPolicyDefinition(definition);\n\tif (!validation.valid) {\n\t\treturn {\n\t\t\tpolicyId: policy.policyId,\n\t\t\tpolicyVersion: policy.policyVersion,\n\t\t\tpolicyKind: policy.kind,\n\t\t\tresult: \"block\",\n\t\t\treason: `Invalid data policy definition: ${validation.errors.join(\"; \")}`,\n\t\t\tmetadata: {\n\t\t\t\tvalidationErrors: validation.errors,\n\t\t\t},\n\t\t\tdispatchEvidence: {\n\t\t\t\tpolicyKind: policy.kind,\n\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\tpolicyVersion: policy.policyVersion,\n\t\t\t\tdispatchPath: [\"data\"],\n\t\t\t\tdata: {\n\t\t\t\t\tdefinitionVersion: policy.policyVersion,\n\t\t\t\t\tdefinitionStatus: \"invalid\",\n\t\t\t\t\tconditionResults: [],\n\t\t\t\t\tvalidationErrors: validation.errors,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tconst evaluations = definition.conditions.map((condition) => evaluateDataPolicyCondition(condition, ctx));\n\tconst conditionResults = evaluations.flatMap((evaluation) => evaluation.evidence);\n\tconst topLevelResults = evaluations.map((evaluation) => evaluation.result);\n\tconst aggregate =\n\t\ttopLevelResults.find((result) => result.result === \"block\") ??\n\t\ttopLevelResults.find((result) => result.result === \"warn\");\n\tconst result = aggregate?.result ?? definition.defaultResult ?? \"pass\";\n\n\treturn {\n\t\tpolicyId: policy.policyId,\n\t\tpolicyVersion: policy.policyVersion,\n\t\tpolicyKind: policy.kind,\n\t\tresult,\n\t\treason: aggregate?.reason ?? definition.reason,\n\t\tmetadata: {\n\t\t\tconditionCount: definition.conditions.length,\n\t\t\tfailedConditionId: aggregate?.conditionId,\n\t\t},\n\t\tdispatchEvidence: {\n\t\t\tpolicyKind: policy.kind,\n\t\t\tpolicyId: policy.policyId,\n\t\t\tpolicyVersion: policy.policyVersion,\n\t\t\tdispatchPath: [\"data\"],\n\t\t\tdata: {\n\t\t\t\tdefinitionVersion: policy.policyVersion,\n\t\t\t\tdefinitionStatus: \"evaluated\",\n\t\t\t\tconditionResults,\n\t\t\t},\n\t\t},\n\t};\n}\n\nexport function validateDataPolicyDefinition(\n\tdefinition: DataPolicyDefinition,\n): DataPolicyValidationResult {\n\tconst errors: string[] = [];\n\n\tif (!Array.isArray(definition.conditions) || definition.conditions.length === 0) {\n\t\terrors.push(\"conditions must contain at least one condition\");\n\t} else if (definition.conditions.length > DATA_POLICY_MAX_CONDITIONS_PER_NODE) {\n\t\terrors.push(\n\t\t\t`conditions must contain at most ${DATA_POLICY_MAX_CONDITIONS_PER_NODE} top-level conditions`,\n\t\t);\n\t}\n\n\tif (definition.defaultResult && !POLICY_RESULTS.has(definition.defaultResult)) {\n\t\terrors.push(\"defaultResult must be pass, warn, or block\");\n\t}\n\n\tlet totalConditions = 0;\n\tfor (const condition of definition.conditions ?? []) {\n\t\tvalidateDataPolicyCondition(condition, errors, 1, () => {\n\t\t\ttotalConditions += 1;\n\t\t});\n\t}\n\n\tif (totalConditions > DATA_POLICY_MAX_TOTAL_CONDITIONS) {\n\t\terrors.push(`policy must contain at most ${DATA_POLICY_MAX_TOTAL_CONDITIONS} total conditions`);\n\t}\n\n\treturn { valid: errors.length === 0, errors };\n}\n\nfunction validateDataPolicyCondition(\n\tcondition: DataPolicyCondition,\n\terrors: string[],\n\tdepth: number,\n\tcount: () => void,\n): void {\n\tcount();\n\n\tif (!condition || typeof condition !== \"object\") {\n\t\terrors.push(\"condition must be an object\");\n\t\treturn;\n\t}\n\n\tif (depth > DATA_POLICY_MAX_DEPTH) {\n\t\terrors.push(`condition depth must not exceed ${DATA_POLICY_MAX_DEPTH}`);\n\t\treturn;\n\t}\n\n\tif (!isNonEmptyBoundedString(condition.conditionId)) {\n\t\terrors.push(\"conditionId must be a non-empty bounded string\");\n\t}\n\n\tvalidateOptionalPolicyResult(\"onPass\" in condition ? condition.onPass : undefined, \"onPass\", errors);\n\tvalidateOptionalPolicyResult(\"onFail\" in condition ? condition.onFail : undefined, \"onFail\", errors);\n\n\tif (condition.reason !== undefined && !isNonEmptyBoundedString(condition.reason)) {\n\t\terrors.push(`condition ${condition.conditionId} reason must be a bounded string`);\n\t}\n\n\tif (condition.type === \"always\") {\n\t\tif (!POLICY_RESULTS.has(condition.result)) {\n\t\t\terrors.push(`condition ${condition.conditionId} result must be pass, warn, or block`);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (condition.type === \"parameter\") {\n\t\tvalidatePath(condition.path, `condition ${condition.conditionId} path`, errors);\n\t\tvalidateComparison(condition.operator, condition.value, condition.conditionId, errors);\n\t\treturn;\n\t}\n\n\tif (condition.type === \"comparison\") {\n\t\tvalidateSourceReference(condition.left, condition.conditionId, errors);\n\t\tvalidateComparison(condition.operator, condition.value, condition.conditionId, errors);\n\t\treturn;\n\t}\n\n\tif (condition.type === \"all\" || condition.type === \"any\") {\n\t\tif (!Array.isArray(condition.conditions) || condition.conditions.length === 0) {\n\t\t\terrors.push(`condition ${condition.conditionId} must contain child conditions`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (condition.conditions.length > DATA_POLICY_MAX_CONDITIONS_PER_NODE) {\n\t\t\terrors.push(\n\t\t\t\t`condition ${condition.conditionId} must contain at most ${DATA_POLICY_MAX_CONDITIONS_PER_NODE} child conditions`,\n\t\t\t);\n\t\t}\n\n\t\tfor (const child of condition.conditions) {\n\t\t\tvalidateDataPolicyCondition(child, errors, depth + 1, count);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (condition.type === \"not\") {\n\t\tvalidateDataPolicyCondition(condition.condition, errors, depth + 1, count);\n\t\treturn;\n\t}\n\n\terrors.push(`condition ${condition.conditionId} has unsupported type`);\n}\n\nfunction validateOptionalPolicyResult(\n\tresult: PolicyEvaluationResult | undefined,\n\tfieldName: string,\n\terrors: string[],\n): void {\n\tif (result !== undefined && !POLICY_RESULTS.has(result)) {\n\t\terrors.push(`${fieldName} must be pass, warn, or block`);\n\t}\n}\n\nfunction validateSourceReference(\n\treference: DataPolicySourceReference,\n\tconditionId: string,\n\terrors: string[],\n): void {\n\tif (!reference || typeof reference !== \"object\") {\n\t\terrors.push(`condition ${conditionId} left must be a source reference`);\n\t\treturn;\n\t}\n\n\tif (reference.source !== \"parameters\" && reference.source !== \"context\") {\n\t\terrors.push(`condition ${conditionId} source must be parameters or context`);\n\t}\n\n\tvalidatePath(reference.path, `condition ${conditionId} left.path`, errors);\n\n\tif (reference.source === \"context\" && !DATA_POLICY_CONTEXT_PATHS.has(reference.path)) {\n\t\terrors.push(`condition ${conditionId} uses an unsupported context path`);\n\t}\n}\n\nfunction validateComparison(\n\toperator: DataPolicyComparisonOperator,\n\tvalue: DataPolicyLiteral | undefined,\n\tconditionId: string,\n\terrors: string[],\n): void {\n\tif (!DATA_POLICY_COMPARISON_OPERATORS.has(operator)) {\n\t\terrors.push(`condition ${conditionId} has unsupported operator`);\n\t\treturn;\n\t}\n\n\tif (operator === \"exists\") {\n\t\treturn;\n\t}\n\n\tif (!isDataPolicyLiteral(value)) {\n\t\terrors.push(`condition ${conditionId} comparison value must be a bounded literal`);\n\t\treturn;\n\t}\n\n\tif ([\"gt\", \"gte\", \"lt\", \"lte\"].includes(operator) && typeof value !== \"number\") {\n\t\terrors.push(`condition ${conditionId} numeric comparison requires a number value`);\n\t}\n}\n\nfunction validatePath(path: string, fieldName: string, errors: string[]): void {\n\tif (!isNonEmptyBoundedString(path)) {\n\t\terrors.push(`${fieldName} must be a non-empty bounded string`);\n\t\treturn;\n\t}\n\n\tconst segments = path.split(\".\");\n\tif (segments.length > DATA_POLICY_MAX_PATH_SEGMENTS) {\n\t\terrors.push(`${fieldName} must contain at most ${DATA_POLICY_MAX_PATH_SEGMENTS} segments`);\n\t\treturn;\n\t}\n\n\tfor (const segment of segments) {\n\t\tif (!/^[A-Za-z][A-Za-z0-9_-]*$/.test(segment)) {\n\t\t\terrors.push(`${fieldName} contains an invalid path segment`);\n\t\t\treturn;\n\t\t}\n\n\t\tif ([\"__proto__\", \"constructor\", \"prototype\"].includes(segment)) {\n\t\t\terrors.push(`${fieldName} contains a forbidden path segment`);\n\t\t\treturn;\n\t\t}\n\t}\n}\n\nfunction isDataPolicyLiteral(value: unknown): value is DataPolicyLiteral {\n\tif (value === null || typeof value === \"number\" || typeof value === \"boolean\") {\n\t\treturn true;\n\t}\n\n\treturn typeof value === \"string\" && value.length <= DATA_POLICY_MAX_STRING_LENGTH;\n}\n\nfunction isNonEmptyBoundedString(value: unknown): value is string {\n\treturn typeof value === \"string\" && value.length > 0 && value.length <= DATA_POLICY_MAX_STRING_LENGTH;\n}\n\nfunction evaluateDataPolicyCondition(\n\tcondition: DataPolicyCondition,\n\tctx: PolicyContext,\n): { result: DataPolicyConditionResult; evidence: DataPolicyConditionResult[] } {\n\tif (condition.type === \"always\") {\n\t\tconst result = {\n\t\t\tconditionId: condition.conditionId,\n\t\t\tpassed: condition.result === \"pass\",\n\t\t\tresult: condition.result,\n\t\t\treason: condition.reason,\n\t\t};\n\t\treturn { result, evidence: [result] };\n\t}\n\n\tif (condition.type === \"all\" || condition.type === \"any\") {\n\t\tconst childEvaluations = condition.conditions.map((child) => evaluateDataPolicyCondition(child, ctx));\n\t\tconst passed =\n\t\t\tcondition.type === \"all\"\n\t\t\t\t? childEvaluations.every((evaluation) => evaluation.result.passed)\n\t\t\t\t: childEvaluations.some((evaluation) => evaluation.result.passed);\n\t\tconst result = {\n\t\t\tconditionId: condition.conditionId,\n\t\t\tpassed,\n\t\t\tresult: passed ? (condition.onPass ?? \"pass\") : (condition.onFail ?? \"block\"),\n\t\t\treason: passed ? undefined : condition.reason,\n\t\t};\n\n\t\treturn {\n\t\t\tresult,\n\t\t\tevidence: [result, ...childEvaluations.flatMap((evaluation) => evaluation.evidence)],\n\t\t};\n\t}\n\n\tif (condition.type === \"not\") {\n\t\tconst childEvaluation = evaluateDataPolicyCondition(condition.condition, ctx);\n\t\tconst passed = !childEvaluation.result.passed;\n\t\tconst result = {\n\t\t\tconditionId: condition.conditionId,\n\t\t\tpassed,\n\t\t\tresult: passed ? (condition.onPass ?? \"pass\") : (condition.onFail ?? \"block\"),\n\t\t\treason: passed ? undefined : condition.reason,\n\t\t};\n\n\t\treturn { result, evidence: [result, ...childEvaluation.evidence] };\n\t}\n\n\tif (condition.type !== \"parameter\" && condition.type !== \"comparison\") {\n\t\tconst result: DataPolicyConditionResult = {\n\t\t\tconditionId: condition.conditionId,\n\t\t\tpassed: false,\n\t\t\tresult: \"block\",\n\t\t\treason: \"Unsupported data policy condition type\",\n\t\t};\n\t\treturn { result, evidence: [result] };\n\t}\n\n\tconst value =\n\t\tcondition.type === \"parameter\"\n\t\t\t? readPath(ctx.parameters, condition.path)\n\t\t\t: readDataPolicySource(ctx, condition.left);\n\tconst operator = condition.operator;\n\tconst expected = condition.value;\n\tconst passed = evaluateOperator(value, operator, expected);\n\tconst result = {\n\t\tconditionId: condition.conditionId,\n\t\tpassed,\n\t\tresult: passed ? (condition.onPass ?? \"pass\") : (condition.onFail ?? \"block\"),\n\t\treason: passed ? undefined : condition.reason,\n\t};\n\treturn { result, evidence: [result] };\n}\n\nfunction evaluateOperator(\n\tactual: unknown,\n\toperator: DataPolicyComparisonOperator,\n\texpected: unknown,\n): boolean {\n\tswitch (operator) {\n\t\tcase \"exists\":\n\t\t\treturn actual !== undefined && actual !== null && actual !== \"\";\n\t\tcase \"equals\":\n\t\t\treturn actual === expected;\n\t\tcase \"notEquals\":\n\t\t\treturn actual !== expected;\n\t\tcase \"gt\":\n\t\t\treturn typeof actual === \"number\" && typeof expected === \"number\" && actual > expected;\n\t\tcase \"gte\":\n\t\t\treturn typeof actual === \"number\" && typeof expected === \"number\" && actual >= expected;\n\t\tcase \"lt\":\n\t\t\treturn typeof actual === \"number\" && typeof expected === \"number\" && actual < expected;\n\t\tcase \"lte\":\n\t\t\treturn typeof actual === \"number\" && typeof expected === \"number\" && actual <= expected;\n\t}\n}\n\nfunction readDataPolicySource(ctx: PolicyContext, reference: DataPolicySourceReference): unknown {\n\tif (reference.source === \"parameters\") {\n\t\treturn readPath(ctx.parameters, reference.path);\n\t}\n\n\treturn readPath(\n\t\t{\n\t\t\ttenantId: ctx.tenantId,\n\t\t\tspaceId: ctx.spaceId,\n\t\t\tactionInvocationId: ctx.actionInvocationId,\n\t\t\tactionId: ctx.actionId,\n\t\t\tmode: ctx.mode,\n\t\t},\n\t\treference.path,\n\t);\n}\n\nfunction readPath(source: unknown, path: string): unknown {\n\tif (!source || typeof source !== \"object\") {\n\t\treturn undefined;\n\t}\n\n\treturn path.split(\".\").reduce<unknown>((current, segment) => {\n\t\tif (!current || typeof current !== \"object\") {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn (current as Record<string, unknown>)[segment];\n\t}, source);\n}\n\nfunction normalizeOutcome(\n\tpolicy: RuntimePolicyDefinition,\n\toutcome: PolicyOutcome,\n\tdispatchEvidence: PolicyDispatchEvidence,\n): PolicyOutcome {\n\treturn {\n\t\t...outcome,\n\t\tpolicyId: policy.policyId,\n\t\tpolicyVersion: policy.policyVersion,\n\t\tpolicyKind: policy.kind,\n\t\tmetadata: {\n\t\t\t...(outcome.metadata ?? {}),\n\t\t\tcodePolicyId: dispatchEvidence.code?.policyId ?? outcome.policyId,\n\t\t\tcodePolicyVersion: dispatchEvidence.code?.version ?? outcome.policyVersion,\n\t\t},\n\t\tdispatchEvidence,\n\t};\n}\n\nfunction parsePolicyVersion(policyId: PolicyId): number {\n\tconst segments = policyId.split(\".v\");\n\treturn Number(segments[segments.length - 1] ?? 1);\n}\n\nexport function aggregatePolicyOutcomes(outcomes: PolicyOutcome[]): PolicyOutcome | undefined {\n\treturn (\n\t\toutcomes.find((outcome) => outcome.result === \"block\") ??\n\t\toutcomes.find((outcome) => outcome.result === \"warn\")\n\t);\n}\n\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkNPVIFZQV_cjs = require('./chunk-NPVIFZQV.cjs');
|
|
4
|
+
|
|
5
|
+
// testing/index.ts
|
|
6
|
+
function createFakeActionContext(options = {}) {
|
|
7
|
+
return {
|
|
8
|
+
actionInvocationId: options.actionInvocationId ?? "act_test",
|
|
9
|
+
tenantId: options.tenantId ?? "tenant-test",
|
|
10
|
+
spaceId: options.spaceId ?? "space-test",
|
|
11
|
+
actorId: options.actorId ?? "actor-test",
|
|
12
|
+
actorType: options.actorType ?? "system",
|
|
13
|
+
correlationId: options.correlationId ?? "corr-test",
|
|
14
|
+
causationId: options.causationId,
|
|
15
|
+
db: options.db ?? {},
|
|
16
|
+
services: options.services ?? {}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function createInMemoryAdapterRegistry() {
|
|
20
|
+
return new chunkNPVIFZQV_cjs.AdapterRegistry();
|
|
21
|
+
}
|
|
22
|
+
function createDeterministicIdFactory(prefix = "test") {
|
|
23
|
+
let sequence = 0;
|
|
24
|
+
return () => `${prefix}_${String(++sequence).padStart(6, "0")}`;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
exports.createDeterministicIdFactory = createDeterministicIdFactory;
|
|
28
|
+
exports.createFakeActionContext = createFakeActionContext;
|
|
29
|
+
exports.createInMemoryAdapterRegistry = createInMemoryAdapterRegistry;
|
|
30
|
+
//# sourceMappingURL=chunk-YZKUEC2J.cjs.map
|
|
31
|
+
//# sourceMappingURL=chunk-YZKUEC2J.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../testing/index.ts"],"names":["AdapterRegistry"],"mappings":";;;;;AAeO,SAAS,uBAAA,CACf,OAAA,GAAyC,EAAC,EACrB;AACrB,EAAA,OAAO;AAAA,IACN,kBAAA,EAAoB,QAAQ,kBAAA,IAAsB,UAAA;AAAA,IAClD,QAAA,EAAU,QAAQ,QAAA,IAAY,aAAA;AAAA,IAC9B,OAAA,EAAS,QAAQ,OAAA,IAAW,YAAA;AAAA,IAC5B,OAAA,EAAS,QAAQ,OAAA,IAAW,YAAA;AAAA,IAC5B,SAAA,EAAW,QAAQ,SAAA,IAAa,QAAA;AAAA,IAChC,aAAA,EAAe,QAAQ,aAAA,IAAiB,WAAA;AAAA,IACxC,aAAa,OAAA,CAAQ,WAAA;AAAA,IACrB,EAAA,EAAI,OAAA,CAAQ,EAAA,IAAO,EAAC;AAAA,IACpB,QAAA,EAAU,OAAA,CAAQ,QAAA,IAAY;AAAC,GAChC;AACD;AAEO,SAAS,6BAAA,GAAiD;AAChE,EAAA,OAAO,IAAIA,iCAAA,EAAgB;AAC5B;AAEO,SAAS,4BAAA,CAA6B,SAAS,MAAA,EAAsB;AAC3E,EAAA,IAAI,QAAA,GAAW,CAAA;AACf,EAAA,OAAO,MAAM,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAA,CAAO,EAAE,QAAQ,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAC9D","file":"chunk-YZKUEC2J.cjs","sourcesContent":["import { AdapterRegistry } from \"../adapters\";\nimport type { ActionContext, ActorType } from \"../actions\";\n\nexport interface FakeActionContextOptions<TDb = Record<string, never>> {\n\tactionInvocationId?: string;\n\ttenantId?: string;\n\tspaceId?: string;\n\tactorId?: string;\n\tactorType?: ActorType;\n\tcorrelationId?: string;\n\tcausationId?: string;\n\tdb?: TDb;\n\tservices?: Record<string, unknown>;\n}\n\nexport function createFakeActionContext<TDb = Record<string, never>>(\n\toptions: FakeActionContextOptions<TDb> = {},\n): ActionContext<TDb> {\n\treturn {\n\t\tactionInvocationId: options.actionInvocationId ?? \"act_test\",\n\t\ttenantId: options.tenantId ?? \"tenant-test\",\n\t\tspaceId: options.spaceId ?? \"space-test\",\n\t\tactorId: options.actorId ?? \"actor-test\",\n\t\tactorType: options.actorType ?? \"system\",\n\t\tcorrelationId: options.correlationId ?? \"corr-test\",\n\t\tcausationId: options.causationId,\n\t\tdb: options.db ?? ({} as TDb),\n\t\tservices: options.services ?? {},\n\t};\n}\n\nexport function createInMemoryAdapterRegistry(): AdapterRegistry {\n\treturn new AdapterRegistry();\n}\n\nexport function createDeterministicIdFactory(prefix = \"test\"): () => string {\n\tlet sequence = 0;\n\treturn () => `${prefix}_${String(++sequence).padStart(6, \"0\")}`;\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk7KJHGAZY_cjs = require('../chunk-7KJHGAZY.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "denormalizeDisplaySnapshot", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunk7KJHGAZY_cjs.denormalizeDisplaySnapshot; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "registerDisplayRenderer", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunk7KJHGAZY_cjs.registerDisplayRenderer; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "renderEventDisplay", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunk7KJHGAZY_cjs.renderEventDisplay; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "resolveDisplayRenderer", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunk7KJHGAZY_cjs.resolveDisplayRenderer; }
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=index.cjs.map
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
interface DisplayDescriptor {
|
|
2
|
+
title: string;
|
|
3
|
+
subtitle?: string;
|
|
4
|
+
stateLabel?: string;
|
|
5
|
+
primaryFacts?: Array<{
|
|
6
|
+
label: string;
|
|
7
|
+
value: string;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
interface CachedDisplayDescriptor extends DisplayDescriptor {
|
|
11
|
+
_cachedDisplay?: {
|
|
12
|
+
source: "event_payload" | "projection_snapshot";
|
|
13
|
+
cursor?: string | null;
|
|
14
|
+
checksum?: string;
|
|
15
|
+
generatedAt?: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
type DisplayDatabaseClient = any;
|
|
19
|
+
interface DisplayContext<TDb = DisplayDatabaseClient> {
|
|
20
|
+
tenantId: string;
|
|
21
|
+
spaceId: string;
|
|
22
|
+
db: TDb;
|
|
23
|
+
}
|
|
24
|
+
type DisplayRenderer = (payload: unknown, ctx?: DisplayContext) => DisplayDescriptor | Promise<DisplayDescriptor>;
|
|
25
|
+
interface DisplayRendererRegistration {
|
|
26
|
+
eventType: string;
|
|
27
|
+
renderer: DisplayRenderer;
|
|
28
|
+
}
|
|
29
|
+
declare function registerDisplayRenderer(eventType: string, renderer: DisplayRenderer): void;
|
|
30
|
+
declare function resolveDisplayRenderer(eventType: string): DisplayRenderer | undefined;
|
|
31
|
+
declare function denormalizeDisplaySnapshot(payload: unknown): CachedDisplayDescriptor | undefined;
|
|
32
|
+
declare function renderEventDisplay(eventType: string, payload: unknown, ctx?: DisplayContext): Promise<CachedDisplayDescriptor>;
|
|
33
|
+
|
|
34
|
+
export { type CachedDisplayDescriptor, type DisplayContext, type DisplayDatabaseClient, type DisplayDescriptor, type DisplayRenderer, type DisplayRendererRegistration, denormalizeDisplaySnapshot, registerDisplayRenderer, renderEventDisplay, resolveDisplayRenderer };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkJAXDEK5Z_cjs = require('../chunk-JAXDEK5Z.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "createEventTypeRegistry", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkJAXDEK5Z_cjs.createEventTypeRegistry; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "getRegisteredEventTypes", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkJAXDEK5Z_cjs.getRegisteredEventTypes; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "getRegisteredSubjectTypes", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunkJAXDEK5Z_cjs.getRegisteredSubjectTypes; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "isValidEventType", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunkJAXDEK5Z_cjs.isValidEventType; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "isValidSubjectType", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return chunkJAXDEK5Z_cjs.isValidSubjectType; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "registerEventType", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return chunkJAXDEK5Z_cjs.registerEventType; }
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "registerSubjectType", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () { return chunkJAXDEK5Z_cjs.registerSubjectType; }
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=index.cjs.map
|
|
36
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
interface AssetEventEnvelope<TPayload = unknown> {
|
|
2
|
+
id: string;
|
|
3
|
+
tenantId: string;
|
|
4
|
+
spaceId: string;
|
|
5
|
+
eventType: string;
|
|
6
|
+
eventSchemaVersion: number;
|
|
7
|
+
subjectType: string;
|
|
8
|
+
subjectId: string;
|
|
9
|
+
actorId: string;
|
|
10
|
+
actorType: string;
|
|
11
|
+
actionInvocationId?: string;
|
|
12
|
+
payload: TPayload;
|
|
13
|
+
sequence: number;
|
|
14
|
+
occurredAt: Date;
|
|
15
|
+
recordedAt: Date;
|
|
16
|
+
correlationId: string;
|
|
17
|
+
causationId?: string;
|
|
18
|
+
}
|
|
19
|
+
type AssetEventSubjectType = string;
|
|
20
|
+
type AssetEventType = string;
|
|
21
|
+
type AssetEventActorType = "natural_person" | "agent" | "adapter" | "system" | "service_account" | "external_system" | "integration";
|
|
22
|
+
declare function registerSubjectType(type: string): void;
|
|
23
|
+
declare function isValidSubjectType(type: string): boolean;
|
|
24
|
+
declare function getRegisteredSubjectTypes(): string[];
|
|
25
|
+
declare function registerEventType(type: string): void;
|
|
26
|
+
declare function isValidEventType(type: string): boolean;
|
|
27
|
+
declare function getRegisteredEventTypes(): string[];
|
|
28
|
+
interface EventTypeRegistry {
|
|
29
|
+
register(eventType: string): void;
|
|
30
|
+
has(eventType: string): boolean;
|
|
31
|
+
list(): string[];
|
|
32
|
+
}
|
|
33
|
+
declare function createEventTypeRegistry(initialEventTypes?: string[]): EventTypeRegistry;
|
|
34
|
+
|
|
35
|
+
export { type AssetEventActorType, type AssetEventEnvelope, type AssetEventSubjectType, type AssetEventType, type EventTypeRegistry, createEventTypeRegistry, getRegisteredEventTypes, getRegisteredSubjectTypes, isValidEventType, isValidSubjectType, registerEventType, registerSubjectType };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
type EvidencePacketStatus = "draft" | "sealed" | "superseded";
|
|
2
|
+
interface EvidencePacketSubject {
|
|
3
|
+
subjectType: string;
|
|
4
|
+
subjectId: string;
|
|
5
|
+
}
|
|
6
|
+
interface EvidencePacketReference {
|
|
7
|
+
referenceType: "action_invocation" | "asset_event" | "policy_evaluation" | "adapter_invocation" | "document" | "external_observation";
|
|
8
|
+
referenceId: string;
|
|
9
|
+
checksum?: string;
|
|
10
|
+
uri?: string;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
interface EvidencePacketEnvelope<TPayload = Record<string, unknown>> {
|
|
14
|
+
id: string;
|
|
15
|
+
tenantId: string;
|
|
16
|
+
spaceId: string;
|
|
17
|
+
packetType: string;
|
|
18
|
+
status: EvidencePacketStatus;
|
|
19
|
+
subjects: EvidencePacketSubject[];
|
|
20
|
+
references: EvidencePacketReference[];
|
|
21
|
+
payload: TPayload;
|
|
22
|
+
generatedAt: Date | string;
|
|
23
|
+
generatedBy: string;
|
|
24
|
+
policyVersion?: string;
|
|
25
|
+
checksum?: string;
|
|
26
|
+
correlationId: string;
|
|
27
|
+
causationId?: string;
|
|
28
|
+
}
|
|
29
|
+
interface EvidenceGenerationContext<TDb = unknown> {
|
|
30
|
+
tenantId: string;
|
|
31
|
+
spaceId: string;
|
|
32
|
+
actorId: string;
|
|
33
|
+
correlationId: string;
|
|
34
|
+
causationId?: string;
|
|
35
|
+
db: TDb;
|
|
36
|
+
now?: Date;
|
|
37
|
+
}
|
|
38
|
+
interface EvidenceRenderer<TInput = unknown, TPayload = Record<string, unknown>, TDb = unknown> {
|
|
39
|
+
packetType: string;
|
|
40
|
+
render: (input: TInput, context: EvidenceGenerationContext<TDb>) => Promise<EvidencePacketEnvelope<TPayload>> | EvidencePacketEnvelope<TPayload>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export type { EvidenceGenerationContext, EvidencePacketEnvelope, EvidencePacketReference, EvidencePacketStatus, EvidencePacketSubject, EvidenceRenderer };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkLZSE6QGQ_cjs = require('../chunk-LZSE6QGQ.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "FABRIC_ID_PREFIXES", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkLZSE6QGQ_cjs.FABRIC_ID_PREFIXES; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "createFabricId", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkLZSE6QGQ_cjs.createFabricId; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "isFabricId", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunkLZSE6QGQ_cjs.isFabricId; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "parseFabricId", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunkLZSE6QGQ_cjs.parseFabricId; }
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=index.cjs.map
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare const FABRIC_ID_PREFIXES: {
|
|
2
|
+
readonly assetEvent: "evt";
|
|
3
|
+
readonly actionInvocation: "act";
|
|
4
|
+
readonly policyEvaluation: "pol";
|
|
5
|
+
readonly adapterInvocation: "adp";
|
|
6
|
+
readonly adapterDeadLetterQueue: "dlq";
|
|
7
|
+
readonly accessEvent: "acc";
|
|
8
|
+
readonly projectionSnapshot: "psn";
|
|
9
|
+
readonly complianceEvidencePacket: "cep";
|
|
10
|
+
};
|
|
11
|
+
type FabricIdPrefix = (typeof FABRIC_ID_PREFIXES)[keyof typeof FABRIC_ID_PREFIXES] | string;
|
|
12
|
+
declare function createFabricId(prefix: FabricIdPrefix): string;
|
|
13
|
+
declare function isFabricId(id: string, prefix?: FabricIdPrefix): boolean;
|
|
14
|
+
declare function parseFabricId(id: string): {
|
|
15
|
+
prefix: string;
|
|
16
|
+
ulid: string;
|
|
17
|
+
} | null;
|
|
18
|
+
|
|
19
|
+
export { FABRIC_ID_PREFIXES, type FabricIdPrefix, createFabricId, isFabricId, parseFabricId };
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkLHCSVEFT_cjs = require('./chunk-LHCSVEFT.cjs');
|
|
4
|
+
var chunkQ3WYIWCN_cjs = require('./chunk-Q3WYIWCN.cjs');
|
|
5
|
+
var chunkYZKUEC2J_cjs = require('./chunk-YZKUEC2J.cjs');
|
|
6
|
+
var chunkNPVIFZQV_cjs = require('./chunk-NPVIFZQV.cjs');
|
|
7
|
+
require('./chunk-PG5LYTUX.cjs');
|
|
8
|
+
var chunkLZSE6QGQ_cjs = require('./chunk-LZSE6QGQ.cjs');
|
|
9
|
+
var chunkLYX73U3P_cjs = require('./chunk-LYX73U3P.cjs');
|
|
10
|
+
var chunkQETQGAXJ_cjs = require('./chunk-QETQGAXJ.cjs');
|
|
11
|
+
var chunkSDXDHVTV_cjs = require('./chunk-SDXDHVTV.cjs');
|
|
12
|
+
var chunkGB2PSZ33_cjs = require('./chunk-GB2PSZ33.cjs');
|
|
13
|
+
var chunkKQEBNUZI_cjs = require('./chunk-KQEBNUZI.cjs');
|
|
14
|
+
var chunk7KJHGAZY_cjs = require('./chunk-7KJHGAZY.cjs');
|
|
15
|
+
var chunkJAXDEK5Z_cjs = require('./chunk-JAXDEK5Z.cjs');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
Object.defineProperty(exports, "PLATFORM_PRIVACY_POLICY_VERSION", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunkLHCSVEFT_cjs.PLATFORM_PRIVACY_POLICY_VERSION; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "replayEvents", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return chunkQ3WYIWCN_cjs.replayEvents; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "createDeterministicIdFactory", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return chunkYZKUEC2J_cjs.createDeterministicIdFactory; }
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "createFakeActionContext", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () { return chunkYZKUEC2J_cjs.createFakeActionContext; }
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(exports, "createInMemoryAdapterRegistry", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () { return chunkYZKUEC2J_cjs.createInMemoryAdapterRegistry; }
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "AdapterRegistry", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () { return chunkNPVIFZQV_cjs.AdapterRegistry; }
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "MissingAdapterRegistrationError", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () { return chunkNPVIFZQV_cjs.MissingAdapterRegistrationError; }
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(exports, "executeWithAdapterRetry", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
get: function () { return chunkNPVIFZQV_cjs.executeWithAdapterRetry; }
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(exports, "getRetryDelayMs", {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function () { return chunkNPVIFZQV_cjs.getRetryDelayMs; }
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, "resolveAdapterRetryPolicy", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function () { return chunkNPVIFZQV_cjs.resolveAdapterRetryPolicy; }
|
|
58
|
+
});
|
|
59
|
+
Object.defineProperty(exports, "FABRIC_ID_PREFIXES", {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
get: function () { return chunkLZSE6QGQ_cjs.FABRIC_ID_PREFIXES; }
|
|
62
|
+
});
|
|
63
|
+
Object.defineProperty(exports, "createFabricId", {
|
|
64
|
+
enumerable: true,
|
|
65
|
+
get: function () { return chunkLZSE6QGQ_cjs.createFabricId; }
|
|
66
|
+
});
|
|
67
|
+
Object.defineProperty(exports, "isFabricId", {
|
|
68
|
+
enumerable: true,
|
|
69
|
+
get: function () { return chunkLZSE6QGQ_cjs.isFabricId; }
|
|
70
|
+
});
|
|
71
|
+
Object.defineProperty(exports, "parseFabricId", {
|
|
72
|
+
enumerable: true,
|
|
73
|
+
get: function () { return chunkLZSE6QGQ_cjs.parseFabricId; }
|
|
74
|
+
});
|
|
75
|
+
Object.defineProperty(exports, "createModuleRegistry", {
|
|
76
|
+
enumerable: true,
|
|
77
|
+
get: function () { return chunkLYX73U3P_cjs.createModuleRegistry; }
|
|
78
|
+
});
|
|
79
|
+
Object.defineProperty(exports, "getEventTypeName", {
|
|
80
|
+
enumerable: true,
|
|
81
|
+
get: function () { return chunkLYX73U3P_cjs.getEventTypeName; }
|
|
82
|
+
});
|
|
83
|
+
Object.defineProperty(exports, "getModuleDependencyNamespace", {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
get: function () { return chunkLYX73U3P_cjs.getModuleDependencyNamespace; }
|
|
86
|
+
});
|
|
87
|
+
Object.defineProperty(exports, "getObjectTypeName", {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () { return chunkLYX73U3P_cjs.getObjectTypeName; }
|
|
90
|
+
});
|
|
91
|
+
Object.defineProperty(exports, "registerFabricModule", {
|
|
92
|
+
enumerable: true,
|
|
93
|
+
get: function () { return chunkLYX73U3P_cjs.registerFabricModule; }
|
|
94
|
+
});
|
|
95
|
+
Object.defineProperty(exports, "registerFabricModules", {
|
|
96
|
+
enumerable: true,
|
|
97
|
+
get: function () { return chunkLYX73U3P_cjs.registerFabricModules; }
|
|
98
|
+
});
|
|
99
|
+
Object.defineProperty(exports, "validateModuleNamespace", {
|
|
100
|
+
enumerable: true,
|
|
101
|
+
get: function () { return chunkLYX73U3P_cjs.validateModuleNamespace; }
|
|
102
|
+
});
|
|
103
|
+
Object.defineProperty(exports, "assertObjectType", {
|
|
104
|
+
enumerable: true,
|
|
105
|
+
get: function () { return chunkQETQGAXJ_cjs.assertObjectType; }
|
|
106
|
+
});
|
|
107
|
+
Object.defineProperty(exports, "getRegisteredObjectTypes", {
|
|
108
|
+
enumerable: true,
|
|
109
|
+
get: function () { return chunkQETQGAXJ_cjs.getRegisteredObjectTypes; }
|
|
110
|
+
});
|
|
111
|
+
Object.defineProperty(exports, "isValidObjectType", {
|
|
112
|
+
enumerable: true,
|
|
113
|
+
get: function () { return chunkQETQGAXJ_cjs.isValidObjectType; }
|
|
114
|
+
});
|
|
115
|
+
Object.defineProperty(exports, "registerObjectType", {
|
|
116
|
+
enumerable: true,
|
|
117
|
+
get: function () { return chunkQETQGAXJ_cjs.registerObjectType; }
|
|
118
|
+
});
|
|
119
|
+
Object.defineProperty(exports, "aggregatePolicyOutcomes", {
|
|
120
|
+
enumerable: true,
|
|
121
|
+
get: function () { return chunkSDXDHVTV_cjs.aggregatePolicyOutcomes; }
|
|
122
|
+
});
|
|
123
|
+
Object.defineProperty(exports, "assertPolicyId", {
|
|
124
|
+
enumerable: true,
|
|
125
|
+
get: function () { return chunkSDXDHVTV_cjs.assertPolicyId; }
|
|
126
|
+
});
|
|
127
|
+
Object.defineProperty(exports, "evaluatePolicyDefinition", {
|
|
128
|
+
enumerable: true,
|
|
129
|
+
get: function () { return chunkSDXDHVTV_cjs.evaluatePolicyDefinition; }
|
|
130
|
+
});
|
|
131
|
+
Object.defineProperty(exports, "evaluatePolicyDefinitions", {
|
|
132
|
+
enumerable: true,
|
|
133
|
+
get: function () { return chunkSDXDHVTV_cjs.evaluatePolicyDefinitions; }
|
|
134
|
+
});
|
|
135
|
+
Object.defineProperty(exports, "evaluateRegisteredPolicies", {
|
|
136
|
+
enumerable: true,
|
|
137
|
+
get: function () { return chunkSDXDHVTV_cjs.evaluateRegisteredPolicies; }
|
|
138
|
+
});
|
|
139
|
+
Object.defineProperty(exports, "getRegisteredPolicyIds", {
|
|
140
|
+
enumerable: true,
|
|
141
|
+
get: function () { return chunkSDXDHVTV_cjs.getRegisteredPolicyIds; }
|
|
142
|
+
});
|
|
143
|
+
Object.defineProperty(exports, "registerPolicy", {
|
|
144
|
+
enumerable: true,
|
|
145
|
+
get: function () { return chunkSDXDHVTV_cjs.registerPolicy; }
|
|
146
|
+
});
|
|
147
|
+
Object.defineProperty(exports, "registerPolicyIfMissing", {
|
|
148
|
+
enumerable: true,
|
|
149
|
+
get: function () { return chunkSDXDHVTV_cjs.registerPolicyIfMissing; }
|
|
150
|
+
});
|
|
151
|
+
Object.defineProperty(exports, "resolvePolicy", {
|
|
152
|
+
enumerable: true,
|
|
153
|
+
get: function () { return chunkSDXDHVTV_cjs.resolvePolicy; }
|
|
154
|
+
});
|
|
155
|
+
Object.defineProperty(exports, "validateDataPolicyDefinition", {
|
|
156
|
+
enumerable: true,
|
|
157
|
+
get: function () { return chunkSDXDHVTV_cjs.validateDataPolicyDefinition; }
|
|
158
|
+
});
|
|
159
|
+
Object.defineProperty(exports, "getAllowedTransitions", {
|
|
160
|
+
enumerable: true,
|
|
161
|
+
get: function () { return chunkGB2PSZ33_cjs.getAllowedTransitions; }
|
|
162
|
+
});
|
|
163
|
+
Object.defineProperty(exports, "getEntityStateClass", {
|
|
164
|
+
enumerable: true,
|
|
165
|
+
get: function () { return chunkGB2PSZ33_cjs.getEntityStateClass; }
|
|
166
|
+
});
|
|
167
|
+
Object.defineProperty(exports, "registerStateMachine", {
|
|
168
|
+
enumerable: true,
|
|
169
|
+
get: function () { return chunkGB2PSZ33_cjs.registerStateMachine; }
|
|
170
|
+
});
|
|
171
|
+
Object.defineProperty(exports, "registerStateMachineIfMissing", {
|
|
172
|
+
enumerable: true,
|
|
173
|
+
get: function () { return chunkGB2PSZ33_cjs.registerStateMachineIfMissing; }
|
|
174
|
+
});
|
|
175
|
+
Object.defineProperty(exports, "resolveStateMachine", {
|
|
176
|
+
enumerable: true,
|
|
177
|
+
get: function () { return chunkGB2PSZ33_cjs.resolveStateMachine; }
|
|
178
|
+
});
|
|
179
|
+
Object.defineProperty(exports, "validateTransition", {
|
|
180
|
+
enumerable: true,
|
|
181
|
+
get: function () { return chunkGB2PSZ33_cjs.validateTransition; }
|
|
182
|
+
});
|
|
183
|
+
Object.defineProperty(exports, "ACTOR_TYPES", {
|
|
184
|
+
enumerable: true,
|
|
185
|
+
get: function () { return chunkKQEBNUZI_cjs.ACTOR_TYPES; }
|
|
186
|
+
});
|
|
187
|
+
Object.defineProperty(exports, "assertActionId", {
|
|
188
|
+
enumerable: true,
|
|
189
|
+
get: function () { return chunkKQEBNUZI_cjs.assertActionId; }
|
|
190
|
+
});
|
|
191
|
+
Object.defineProperty(exports, "assertActorType", {
|
|
192
|
+
enumerable: true,
|
|
193
|
+
get: function () { return chunkKQEBNUZI_cjs.assertActorType; }
|
|
194
|
+
});
|
|
195
|
+
Object.defineProperty(exports, "getRegisteredActionIds", {
|
|
196
|
+
enumerable: true,
|
|
197
|
+
get: function () { return chunkKQEBNUZI_cjs.getRegisteredActionIds; }
|
|
198
|
+
});
|
|
199
|
+
Object.defineProperty(exports, "isActorType", {
|
|
200
|
+
enumerable: true,
|
|
201
|
+
get: function () { return chunkKQEBNUZI_cjs.isActorType; }
|
|
202
|
+
});
|
|
203
|
+
Object.defineProperty(exports, "isRegisteredActionId", {
|
|
204
|
+
enumerable: true,
|
|
205
|
+
get: function () { return chunkKQEBNUZI_cjs.isRegisteredActionId; }
|
|
206
|
+
});
|
|
207
|
+
Object.defineProperty(exports, "registerAction", {
|
|
208
|
+
enumerable: true,
|
|
209
|
+
get: function () { return chunkKQEBNUZI_cjs.registerAction; }
|
|
210
|
+
});
|
|
211
|
+
Object.defineProperty(exports, "registerActionIfMissing", {
|
|
212
|
+
enumerable: true,
|
|
213
|
+
get: function () { return chunkKQEBNUZI_cjs.registerActionIfMissing; }
|
|
214
|
+
});
|
|
215
|
+
Object.defineProperty(exports, "resolveAction", {
|
|
216
|
+
enumerable: true,
|
|
217
|
+
get: function () { return chunkKQEBNUZI_cjs.resolveAction; }
|
|
218
|
+
});
|
|
219
|
+
Object.defineProperty(exports, "resolveRegisteredAction", {
|
|
220
|
+
enumerable: true,
|
|
221
|
+
get: function () { return chunkKQEBNUZI_cjs.resolveRegisteredAction; }
|
|
222
|
+
});
|
|
223
|
+
Object.defineProperty(exports, "denormalizeDisplaySnapshot", {
|
|
224
|
+
enumerable: true,
|
|
225
|
+
get: function () { return chunk7KJHGAZY_cjs.denormalizeDisplaySnapshot; }
|
|
226
|
+
});
|
|
227
|
+
Object.defineProperty(exports, "registerDisplayRenderer", {
|
|
228
|
+
enumerable: true,
|
|
229
|
+
get: function () { return chunk7KJHGAZY_cjs.registerDisplayRenderer; }
|
|
230
|
+
});
|
|
231
|
+
Object.defineProperty(exports, "renderEventDisplay", {
|
|
232
|
+
enumerable: true,
|
|
233
|
+
get: function () { return chunk7KJHGAZY_cjs.renderEventDisplay; }
|
|
234
|
+
});
|
|
235
|
+
Object.defineProperty(exports, "resolveDisplayRenderer", {
|
|
236
|
+
enumerable: true,
|
|
237
|
+
get: function () { return chunk7KJHGAZY_cjs.resolveDisplayRenderer; }
|
|
238
|
+
});
|
|
239
|
+
Object.defineProperty(exports, "createEventTypeRegistry", {
|
|
240
|
+
enumerable: true,
|
|
241
|
+
get: function () { return chunkJAXDEK5Z_cjs.createEventTypeRegistry; }
|
|
242
|
+
});
|
|
243
|
+
Object.defineProperty(exports, "getRegisteredEventTypes", {
|
|
244
|
+
enumerable: true,
|
|
245
|
+
get: function () { return chunkJAXDEK5Z_cjs.getRegisteredEventTypes; }
|
|
246
|
+
});
|
|
247
|
+
Object.defineProperty(exports, "getRegisteredSubjectTypes", {
|
|
248
|
+
enumerable: true,
|
|
249
|
+
get: function () { return chunkJAXDEK5Z_cjs.getRegisteredSubjectTypes; }
|
|
250
|
+
});
|
|
251
|
+
Object.defineProperty(exports, "isValidEventType", {
|
|
252
|
+
enumerable: true,
|
|
253
|
+
get: function () { return chunkJAXDEK5Z_cjs.isValidEventType; }
|
|
254
|
+
});
|
|
255
|
+
Object.defineProperty(exports, "isValidSubjectType", {
|
|
256
|
+
enumerable: true,
|
|
257
|
+
get: function () { return chunkJAXDEK5Z_cjs.isValidSubjectType; }
|
|
258
|
+
});
|
|
259
|
+
Object.defineProperty(exports, "registerEventType", {
|
|
260
|
+
enumerable: true,
|
|
261
|
+
get: function () { return chunkJAXDEK5Z_cjs.registerEventType; }
|
|
262
|
+
});
|
|
263
|
+
Object.defineProperty(exports, "registerSubjectType", {
|
|
264
|
+
enumerable: true,
|
|
265
|
+
get: function () { return chunkJAXDEK5Z_cjs.registerSubjectType; }
|
|
266
|
+
});
|
|
267
|
+
//# sourceMappingURL=index.cjs.map
|
|
268
|
+
//# sourceMappingURL=index.cjs.map
|