logicsrc/packages/validators/src/schemas.ts

145 lines
8.9 KiB
TypeScript

import openabtestManifestSchema from "@logicsrc/schemas/openabtest-manifest" with { type: "json" };
import openabtestEventSchema from "@logicsrc/schemas/openabtest-event" with { type: "json" };
/**
* Every LogicSRC JSON Schema, keyed by kind.
*
* Schemas are imported through @logicsrc/schemas package exports rather than by
* a relative path across the repository. A relative import works in the
* monorepo and breaks the moment this package is published: "../../schemas/..."
* resolves outside the published tarball, so an installed @logicsrc/validators
* could not load a single schema.
*/
import agentSchema from "@logicsrc/schemas/agent" with { type: "json" };
import openrentalSchema from "@logicsrc/schemas/openrental" with { type: "json" };
import accountAuditEventSchema from "@logicsrc/schemas/account-audit-event" with { type: "json" };
import accountGrantSchema from "@logicsrc/schemas/account-grant" with { type: "json" };
import accountProviderSchema from "@logicsrc/schemas/account-provider" with { type: "json" };
import connectedAccountSchema from "@logicsrc/schemas/connected-account" with { type: "json" };
import emailMessageSchema from "@logicsrc/schemas/email-message" with { type: "json" };
import eventSchema from "@logicsrc/schemas/event" with { type: "json" };
import pluginSchema from "@logicsrc/schemas/plugin" with { type: "json" };
import pullRequestSchema from "@logicsrc/schemas/pull-request" with { type: "json" };
import repoSchema from "@logicsrc/schemas/repo" with { type: "json" };
import runSchema from "@logicsrc/schemas/run" with { type: "json" };
import socialPostSchema from "@logicsrc/schemas/social-post" with { type: "json" };
import taskSchema from "@logicsrc/schemas/task" with { type: "json" };
import agentadAdSchema from "@logicsrc/schemas/agentad-ad" with { type: "json" };
import agentadPlacementSchema from "@logicsrc/schemas/agentad-placement" with { type: "json" };
import agentadAdRequestSchema from "@logicsrc/schemas/agentad-ad-request" with { type: "json" };
import agentadAdResponseSchema from "@logicsrc/schemas/agentad-ad-response" with { type: "json" };
import agentadImpressionSchema from "@logicsrc/schemas/agentad-impression" with { type: "json" };
import agentadClickSchema from "@logicsrc/schemas/agentad-click" with { type: "json" };
import agentadCampaignSchema from "@logicsrc/schemas/agentad-campaign" with { type: "json" };
import credentialProviderSchema from "@logicsrc/schemas/credential-provider" with { type: "json" };
import credentialSyncPlanSchema from "@logicsrc/schemas/credential-sync-plan" with { type: "json" };
import credentialSyncRunSchema from "@logicsrc/schemas/credential-sync-run" with { type: "json" };
import credentialAuditEventSchema from "@logicsrc/schemas/credential-audit-event" with { type: "json" };
import openprdPrdSchema from "@logicsrc/schemas/openprd-prd" with { type: "json" };
import ontologyManifestSchema from "@logicsrc/schemas/openontology-manifest" with { type: "json" };
import ontologyNamespaceSchema from "@logicsrc/schemas/openontology-namespace" with { type: "json" };
import ontologyEntityTypeSchema from "@logicsrc/schemas/openontology-entity-type" with { type: "json" };
import ontologyPropertySchema from "@logicsrc/schemas/openontology-property" with { type: "json" };
import ontologyRelationshipTypeSchema from "@logicsrc/schemas/openontology-relationship-type" with { type: "json" };
import ontologyConstraintSchema from "@logicsrc/schemas/openontology-constraint" with { type: "json" };
import ontologyQuerySchema from "@logicsrc/schemas/openontology-query" with { type: "json" };
import ontologyActionSchema from "@logicsrc/schemas/openontology-action" with { type: "json" };
import ontologyEntitySchema from "@logicsrc/schemas/openontology-entity" with { type: "json" };
import ontologyClaimSchema from "@logicsrc/schemas/openontology-claim" with { type: "json" };
import ontologySourceSchema from "@logicsrc/schemas/openontology-source" with { type: "json" };
import ontologyEvidenceSchema from "@logicsrc/schemas/openontology-evidence" with { type: "json" };
import ontologyChangeSetSchema from "@logicsrc/schemas/openontology-changeset" with { type: "json" };
import ontologyReviewSchema from "@logicsrc/schemas/openontology-review" with { type: "json" };
import ontologyApprovalSchema from "@logicsrc/schemas/openontology-approval" with { type: "json" };
import ontologyEventSchema from "@logicsrc/schemas/openontology-event" with { type: "json" };
import ontologyPackageSchema from "@logicsrc/schemas/openontology-package" with { type: "json" };
import ocManifestSchema from "@logicsrc/schemas/opencontext-manifest" with { type: "json" };
import ocObjectSchema from "@logicsrc/schemas/opencontext-object" with { type: "json" };
import ocBundleSchema from "@logicsrc/schemas/opencontext-bundle" with { type: "json" };
import ocRoleSchema from "@logicsrc/schemas/opencontext-role" with { type: "json" };
import ocProvenanceSchema from "@logicsrc/schemas/opencontext-provenance" with { type: "json" };
import ocDecisionSchema from "@logicsrc/schemas/opencontext-decision" with { type: "json" };
import ocDiagnosticSchema from "@logicsrc/schemas/opencontext-diagnostic" with { type: "json" };
import ocAuditEventSchema from "@logicsrc/schemas/opencontext-audit-event" with { type: "json" };
// OpenCreds. The database schema $refs the item and manifest schemas by $id,
// so all six are registered together in index.ts before anything is compiled.
import credsItemSchema from "@logicsrc/schemas/opencreds-item" with { type: "json" };
import credsEnvelopeSchema from "@logicsrc/schemas/opencreds-envelope" with { type: "json" };
import credsVaultMetaSchema from "@logicsrc/schemas/opencreds-vault-meta" with { type: "json" };
import credsManifestSchema from "@logicsrc/schemas/opencreds-manifest" with { type: "json" };
import credsDatabaseSchema from "@logicsrc/schemas/opencreds-database" with { type: "json" };
import credsAuditEventSchema from "@logicsrc/schemas/opencreds-audit-event" with { type: "json" };
import openwallMessageSchema from "@logicsrc/schemas/openwall-message" with { type: "json" };
import openwallReceiptSchema from "@logicsrc/schemas/openwall-receipt" with { type: "json" };
export const schemas = {
"openabtest-manifest": openabtestManifestSchema,
"openabtest-event": openabtestEventSchema,
"openwall-message": openwallMessageSchema,
"openwall-receipt": openwallReceiptSchema,
agent: agentSchema,
openrental: openrentalSchema,
"account-audit-event": accountAuditEventSchema,
"account-grant": accountGrantSchema,
"account-provider": accountProviderSchema,
"connected-account": connectedAccountSchema,
"email-message": emailMessageSchema,
event: eventSchema,
plugin: pluginSchema,
"pull-request": pullRequestSchema,
repo: repoSchema,
run: runSchema,
"social-post": socialPostSchema,
task: taskSchema,
"agentad-ad": agentadAdSchema,
"agentad-placement": agentadPlacementSchema,
"agentad-ad-request": agentadAdRequestSchema,
"agentad-ad-response": agentadAdResponseSchema,
"agentad-impression": agentadImpressionSchema,
"agentad-click": agentadClickSchema,
"agentad-campaign": agentadCampaignSchema,
"credential-provider": credentialProviderSchema,
"credential-sync-plan": credentialSyncPlanSchema,
"credential-sync-run": credentialSyncRunSchema,
"credential-audit-event": credentialAuditEventSchema,
"openprd-prd": openprdPrdSchema,
"openontology-manifest": ontologyManifestSchema,
"openontology-namespace": ontologyNamespaceSchema,
"openontology-entity-type": ontologyEntityTypeSchema,
"openontology-property": ontologyPropertySchema,
"openontology-relationship-type": ontologyRelationshipTypeSchema,
"openontology-constraint": ontologyConstraintSchema,
"openontology-query": ontologyQuerySchema,
"openontology-action": ontologyActionSchema,
"openontology-entity": ontologyEntitySchema,
"openontology-claim": ontologyClaimSchema,
"openontology-source": ontologySourceSchema,
"openontology-evidence": ontologyEvidenceSchema,
"openontology-changeset": ontologyChangeSetSchema,
"openontology-review": ontologyReviewSchema,
"openontology-approval": ontologyApprovalSchema,
"openontology-event": ontologyEventSchema,
"openontology-package": ontologyPackageSchema,
"opencontext-manifest": ocManifestSchema,
"opencontext-object": ocObjectSchema,
"opencontext-bundle": ocBundleSchema,
"opencontext-role": ocRoleSchema,
"opencontext-provenance": ocProvenanceSchema,
"opencontext-decision": ocDecisionSchema,
"opencontext-diagnostic": ocDiagnosticSchema,
"opencontext-audit-event": ocAuditEventSchema,
"opencreds-item": credsItemSchema,
"opencreds-envelope": credsEnvelopeSchema,
"opencreds-vault-meta": credsVaultMetaSchema,
"opencreds-manifest": credsManifestSchema,
"opencreds-database": credsDatabaseSchema,
"opencreds-audit-event": credsAuditEventSchema
} as const;
export type SchemaKind = keyof typeof schemas;
export function isSchemaKind(value: string): value is SchemaKind {
return Object.hasOwn(schemas, value);
}