@vantageos/convex-doc-forge 0.1.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/CHANGELOG.md +22 -0
- package/LICENSE +110 -0
- package/README.md +169 -0
- package/convex.config.ts +22 -0
- package/dist/_generated/api.d.ts +3 -0
- package/dist/_generated/api.d.ts.map +1 -0
- package/dist/_generated/api.js +13 -0
- package/dist/_generated/dataModel.d.ts +13 -0
- package/dist/_generated/dataModel.d.ts.map +1 -0
- package/dist/_generated/dataModel.js +1 -0
- package/dist/_generated/server.d.ts +20 -0
- package/dist/_generated/server.d.ts.map +1 -0
- package/dist/_generated/server.js +8 -0
- package/dist/actions.d.ts +20 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +176 -0
- package/dist/convex.config.d.ts +20 -0
- package/dist/convex.config.d.ts.map +1 -0
- package/dist/convex.config.js +20 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/mutations.d.ts +84 -0
- package/dist/mutations.d.ts.map +1 -0
- package/dist/mutations.js +166 -0
- package/dist/queries.d.ts +30 -0
- package/dist/queries.d.ts.map +1 -0
- package/dist/queries.js +117 -0
- package/dist/schema.d.ts +97 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +59 -0
- package/dist/src/_generated/api.d.ts +3 -0
- package/dist/src/_generated/api.d.ts.map +1 -0
- package/dist/src/_generated/api.js +13 -0
- package/dist/src/_generated/dataModel.d.ts +13 -0
- package/dist/src/_generated/dataModel.d.ts.map +1 -0
- package/dist/src/_generated/dataModel.js +1 -0
- package/dist/src/_generated/server.d.ts +20 -0
- package/dist/src/_generated/server.d.ts.map +1 -0
- package/dist/src/_generated/server.js +8 -0
- package/dist/src/actions.d.ts +20 -0
- package/dist/src/actions.d.ts.map +1 -0
- package/dist/src/actions.js +176 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +9 -0
- package/dist/src/mutations.d.ts +84 -0
- package/dist/src/mutations.d.ts.map +1 -0
- package/dist/src/mutations.js +166 -0
- package/dist/src/queries.d.ts +30 -0
- package/dist/src/queries.d.ts.map +1 -0
- package/dist/src/queries.js +117 -0
- package/dist/src/schema.d.ts +97 -0
- package/dist/src/schema.d.ts.map +1 -0
- package/dist/src/schema.js +59 -0
- package/package.json +44 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal schema for the @vantageos/convex-doc-forge component.
|
|
3
|
+
*
|
|
4
|
+
* Three tables:
|
|
5
|
+
* - templates : template metadata + asset reference
|
|
6
|
+
* - render_jobs : per-render job tracking (status machine)
|
|
7
|
+
* - render_audit: immutable audit log (who/when/what)
|
|
8
|
+
*/
|
|
9
|
+
declare const _default: import("convex/server").SchemaDefinition<{
|
|
10
|
+
templates: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
11
|
+
metadata?: Record<string, string> | undefined;
|
|
12
|
+
name: string;
|
|
13
|
+
team: string;
|
|
14
|
+
tenant_id: string;
|
|
15
|
+
template_type: "doc-binary";
|
|
16
|
+
renderer_kind: "docxtpl" | "python-pptx" | "jinja2-html";
|
|
17
|
+
input_schema: any;
|
|
18
|
+
asset_storage_id: import("convex/values").GenericId<"_storage">;
|
|
19
|
+
output_formats: string[];
|
|
20
|
+
version: string;
|
|
21
|
+
createdAt: number;
|
|
22
|
+
updatedAt: number;
|
|
23
|
+
}, {
|
|
24
|
+
name: import("convex/values").VString<string, "required">;
|
|
25
|
+
team: import("convex/values").VString<string, "required">;
|
|
26
|
+
tenant_id: import("convex/values").VString<string, "required">;
|
|
27
|
+
template_type: import("convex/values").VLiteral<"doc-binary", "required">;
|
|
28
|
+
renderer_kind: import("convex/values").VUnion<"docxtpl" | "python-pptx" | "jinja2-html", [import("convex/values").VLiteral<"docxtpl", "required">, import("convex/values").VLiteral<"python-pptx", "required">, import("convex/values").VLiteral<"jinja2-html", "required">], "required", never>;
|
|
29
|
+
input_schema: import("convex/values").VAny<any, "required", string>;
|
|
30
|
+
asset_storage_id: import("convex/values").VId<import("convex/values").GenericId<"_storage">, "required">;
|
|
31
|
+
output_formats: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
|
|
32
|
+
metadata: import("convex/values").VRecord<Record<string, string> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VString<string, "required">, "optional", string>;
|
|
33
|
+
version: import("convex/values").VString<string, "required">;
|
|
34
|
+
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
35
|
+
updatedAt: import("convex/values").VFloat64<number, "required">;
|
|
36
|
+
}, "required", "name" | "team" | "tenant_id" | "template_type" | "renderer_kind" | "input_schema" | "asset_storage_id" | "output_formats" | "metadata" | "version" | "createdAt" | "updatedAt" | `input_schema.${string}` | `metadata.${string}`>, {
|
|
37
|
+
by_tenant: ["tenant_id", "_creationTime"];
|
|
38
|
+
by_tenant_team: ["tenant_id", "team", "_creationTime"];
|
|
39
|
+
by_tenant_type: ["tenant_id", "template_type", "_creationTime"];
|
|
40
|
+
}, {}, {}>;
|
|
41
|
+
render_jobs: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
42
|
+
output_storage_id?: import("convex/values").GenericId<"_storage"> | undefined;
|
|
43
|
+
error?: string | undefined;
|
|
44
|
+
completedAt?: number | undefined;
|
|
45
|
+
tenant_id: string;
|
|
46
|
+
createdAt: number;
|
|
47
|
+
template_id: import("convex/values").GenericId<"templates">;
|
|
48
|
+
context: any;
|
|
49
|
+
output_format: string;
|
|
50
|
+
status: "queued" | "rendering" | "done" | "failed";
|
|
51
|
+
createdBy: string;
|
|
52
|
+
}, {
|
|
53
|
+
template_id: import("convex/values").VId<import("convex/values").GenericId<"templates">, "required">;
|
|
54
|
+
tenant_id: import("convex/values").VString<string, "required">;
|
|
55
|
+
context: import("convex/values").VAny<any, "required", string>;
|
|
56
|
+
output_format: import("convex/values").VString<string, "required">;
|
|
57
|
+
status: import("convex/values").VUnion<"queued" | "rendering" | "done" | "failed", [import("convex/values").VLiteral<"queued", "required">, import("convex/values").VLiteral<"rendering", "required">, import("convex/values").VLiteral<"done", "required">, import("convex/values").VLiteral<"failed", "required">], "required", never>;
|
|
58
|
+
output_storage_id: import("convex/values").VId<import("convex/values").GenericId<"_storage"> | undefined, "optional">;
|
|
59
|
+
error: import("convex/values").VString<string | undefined, "optional">;
|
|
60
|
+
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
61
|
+
completedAt: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
62
|
+
createdBy: import("convex/values").VString<string, "required">;
|
|
63
|
+
}, "required", "tenant_id" | "createdAt" | "template_id" | "context" | "output_format" | "status" | "output_storage_id" | "error" | "completedAt" | "createdBy" | `context.${string}`>, {
|
|
64
|
+
by_tenant: ["tenant_id", "_creationTime"];
|
|
65
|
+
by_template: ["template_id", "createdAt", "_creationTime"];
|
|
66
|
+
by_tenant_status: ["tenant_id", "status", "_creationTime"];
|
|
67
|
+
}, {}, {}>;
|
|
68
|
+
render_audit: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
69
|
+
tenant_id: string;
|
|
70
|
+
createdAt: number;
|
|
71
|
+
template_id: import("convex/values").GenericId<"templates">;
|
|
72
|
+
render_job_id: import("convex/values").GenericId<"render_jobs">;
|
|
73
|
+
template_version: string;
|
|
74
|
+
context_hash: string;
|
|
75
|
+
output_signed_url: string;
|
|
76
|
+
expires_at: number;
|
|
77
|
+
actor: string;
|
|
78
|
+
source: "manual" | "workflow" | "agent";
|
|
79
|
+
}, {
|
|
80
|
+
render_job_id: import("convex/values").VId<import("convex/values").GenericId<"render_jobs">, "required">;
|
|
81
|
+
tenant_id: import("convex/values").VString<string, "required">;
|
|
82
|
+
template_id: import("convex/values").VId<import("convex/values").GenericId<"templates">, "required">;
|
|
83
|
+
template_version: import("convex/values").VString<string, "required">;
|
|
84
|
+
context_hash: import("convex/values").VString<string, "required">;
|
|
85
|
+
output_signed_url: import("convex/values").VString<string, "required">;
|
|
86
|
+
expires_at: import("convex/values").VFloat64<number, "required">;
|
|
87
|
+
actor: import("convex/values").VString<string, "required">;
|
|
88
|
+
source: import("convex/values").VUnion<"manual" | "workflow" | "agent", [import("convex/values").VLiteral<"manual", "required">, import("convex/values").VLiteral<"workflow", "required">, import("convex/values").VLiteral<"agent", "required">], "required", never>;
|
|
89
|
+
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
90
|
+
}, "required", "tenant_id" | "createdAt" | "template_id" | "render_job_id" | "template_version" | "context_hash" | "output_signed_url" | "expires_at" | "actor" | "source">, {
|
|
91
|
+
by_tenant: ["tenant_id", "_creationTime"];
|
|
92
|
+
by_template: ["template_id", "createdAt", "_creationTime"];
|
|
93
|
+
by_job: ["render_job_id", "_creationTime"];
|
|
94
|
+
}, {}, {}>;
|
|
95
|
+
}, true>;
|
|
96
|
+
export default _default;
|
|
97
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBA+DG"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { defineSchema, defineTable } from "convex/server";
|
|
2
|
+
import { v } from "convex/values";
|
|
3
|
+
/**
|
|
4
|
+
* Internal schema for the @vantageos/convex-doc-forge component.
|
|
5
|
+
*
|
|
6
|
+
* Three tables:
|
|
7
|
+
* - templates : template metadata + asset reference
|
|
8
|
+
* - render_jobs : per-render job tracking (status machine)
|
|
9
|
+
* - render_audit: immutable audit log (who/when/what)
|
|
10
|
+
*/
|
|
11
|
+
export default defineSchema({
|
|
12
|
+
templates: defineTable({
|
|
13
|
+
name: v.string(),
|
|
14
|
+
team: v.string(),
|
|
15
|
+
tenant_id: v.string(), // Clerk org ID
|
|
16
|
+
template_type: v.literal("doc-binary"),
|
|
17
|
+
renderer_kind: v.union(v.literal("docxtpl"), v.literal("python-pptx"), v.literal("jinja2-html")),
|
|
18
|
+
input_schema: v.any(), // JSON Schema object — validated at runtime
|
|
19
|
+
asset_storage_id: v.id("_storage"),
|
|
20
|
+
output_formats: v.array(v.string()),
|
|
21
|
+
metadata: v.optional(v.record(v.string(), v.string())),
|
|
22
|
+
version: v.string(),
|
|
23
|
+
createdAt: v.number(),
|
|
24
|
+
updatedAt: v.number(),
|
|
25
|
+
})
|
|
26
|
+
.index("by_tenant", ["tenant_id"])
|
|
27
|
+
.index("by_tenant_team", ["tenant_id", "team"])
|
|
28
|
+
.index("by_tenant_type", ["tenant_id", "template_type"]),
|
|
29
|
+
render_jobs: defineTable({
|
|
30
|
+
template_id: v.id("templates"),
|
|
31
|
+
tenant_id: v.string(),
|
|
32
|
+
context: v.any(), // Caller-supplied JSON matching template.input_schema
|
|
33
|
+
output_format: v.string(),
|
|
34
|
+
status: v.union(v.literal("queued"), v.literal("rendering"), v.literal("done"), v.literal("failed")),
|
|
35
|
+
output_storage_id: v.optional(v.id("_storage")),
|
|
36
|
+
error: v.optional(v.string()),
|
|
37
|
+
createdAt: v.number(),
|
|
38
|
+
completedAt: v.optional(v.number()),
|
|
39
|
+
createdBy: v.string(), // Clerk subject (user or service account)
|
|
40
|
+
})
|
|
41
|
+
.index("by_tenant", ["tenant_id"])
|
|
42
|
+
.index("by_template", ["template_id", "createdAt"])
|
|
43
|
+
.index("by_tenant_status", ["tenant_id", "status"]),
|
|
44
|
+
render_audit: defineTable({
|
|
45
|
+
render_job_id: v.id("render_jobs"),
|
|
46
|
+
tenant_id: v.string(),
|
|
47
|
+
template_id: v.id("templates"),
|
|
48
|
+
template_version: v.string(),
|
|
49
|
+
context_hash: v.string(), // SHA-256 hex of JSON.stringify(context)
|
|
50
|
+
output_signed_url: v.string(),
|
|
51
|
+
expires_at: v.number(), // epoch ms
|
|
52
|
+
actor: v.string(), // Clerk subject
|
|
53
|
+
source: v.union(v.literal("manual"), v.literal("workflow"), v.literal("agent")),
|
|
54
|
+
createdAt: v.number(),
|
|
55
|
+
})
|
|
56
|
+
.index("by_tenant", ["tenant_id"])
|
|
57
|
+
.index("by_template", ["template_id", "createdAt"])
|
|
58
|
+
.index("by_job", ["render_job_id"]),
|
|
59
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vantageos/convex-doc-forge",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Convex component — data layer for VantageDocForge (templates, render jobs, audit)",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./convex.config": {
|
|
14
|
+
"import": "./dist/convex.config.js",
|
|
15
|
+
"types": "./dist/convex.config.d.ts"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"convex.config.ts",
|
|
21
|
+
"README.md",
|
|
22
|
+
"CHANGELOG.md"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc --project tsconfig.build.json && tsc --project tsconfig.convex.json",
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"test": "vitest run"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"convex": ">=1.17.0"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@types/node": "^25.9.3",
|
|
34
|
+
"convex": "^1.41.0",
|
|
35
|
+
"typescript": "^5.9.3",
|
|
36
|
+
"vitest": "^2.1.9"
|
|
37
|
+
},
|
|
38
|
+
"license": "FSL-1.1-Apache-2.0",
|
|
39
|
+
"private": false,
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "https://github.com/elpiarthera/vantage-doc-forge"
|
|
43
|
+
}
|
|
44
|
+
}
|