Files
template-app/modules/documents/module.shared.ts
T

47 lines
1.6 KiB
TypeScript

// Shared, runtime-neutral documents manifest data. The normal app binds its worker implementation
// of documents.ocr; the Convex profile binds the same payload contract to its dedicated Node action.
import { contribute, type ModuleManifest } from "@conusai-kit/core"
import { repositoryBindings } from "@conusai-kit/data"
import { filesProcessors } from "@conusai-kit/files"
import { proposalTargets } from "@conusai-kit/proposals"
import { DOCUMENT_PROCEDURES } from "./adapters/procedures.js"
import {
DOCUMENTS_ENTITIES,
EXPORT_CREATED,
LINE_EDITED,
OCR_JOB,
PROCESSOR_KEY,
READABLE_CONTENT_TYPES,
} from "./contract/index.js"
import { lineTarget } from "./core/target.js"
import { en, lt } from "./i18n/index.js"
const tables = repositoryBindings(...DOCUMENTS_ENTITIES)
export const DOCUMENTS_MODULE_BASE: ModuleManifest = {
id: "documents",
version: "0.1.0",
kit: "^0.1.0",
requires: ["tenancy", "files", "proposals"],
permissions: {
"documents.document.read": "viewer",
"documents.line.edit": "editor",
"documents.line.approve": "editor",
"documents.export.create": "editor",
},
procedures: DOCUMENT_PROCEDURES,
repositories: { postgres: tables, mariadb: tables, mongodb: tables, convex: tables },
migrations: {
postgres: "migrations",
mariadb: "adapters/kysely/mysql/migrations",
mongodb: "adapters/mongo/migrations",
},
i18n: { en, lt },
audit: [EXPORT_CREATED, LINE_EDITED],
extends: [
contribute(filesProcessors, [{ key: PROCESSOR_KEY, contentTypes: [...READABLE_CONTENT_TYPES], job: OCR_JOB }]),
contribute(proposalTargets, [lineTarget]),
],
}