@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.
Files changed (56) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/LICENSE +110 -0
  3. package/README.md +169 -0
  4. package/convex.config.ts +22 -0
  5. package/dist/_generated/api.d.ts +3 -0
  6. package/dist/_generated/api.d.ts.map +1 -0
  7. package/dist/_generated/api.js +13 -0
  8. package/dist/_generated/dataModel.d.ts +13 -0
  9. package/dist/_generated/dataModel.d.ts.map +1 -0
  10. package/dist/_generated/dataModel.js +1 -0
  11. package/dist/_generated/server.d.ts +20 -0
  12. package/dist/_generated/server.d.ts.map +1 -0
  13. package/dist/_generated/server.js +8 -0
  14. package/dist/actions.d.ts +20 -0
  15. package/dist/actions.d.ts.map +1 -0
  16. package/dist/actions.js +176 -0
  17. package/dist/convex.config.d.ts +20 -0
  18. package/dist/convex.config.d.ts.map +1 -0
  19. package/dist/convex.config.js +20 -0
  20. package/dist/index.d.ts +10 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +9 -0
  23. package/dist/mutations.d.ts +84 -0
  24. package/dist/mutations.d.ts.map +1 -0
  25. package/dist/mutations.js +166 -0
  26. package/dist/queries.d.ts +30 -0
  27. package/dist/queries.d.ts.map +1 -0
  28. package/dist/queries.js +117 -0
  29. package/dist/schema.d.ts +97 -0
  30. package/dist/schema.d.ts.map +1 -0
  31. package/dist/schema.js +59 -0
  32. package/dist/src/_generated/api.d.ts +3 -0
  33. package/dist/src/_generated/api.d.ts.map +1 -0
  34. package/dist/src/_generated/api.js +13 -0
  35. package/dist/src/_generated/dataModel.d.ts +13 -0
  36. package/dist/src/_generated/dataModel.d.ts.map +1 -0
  37. package/dist/src/_generated/dataModel.js +1 -0
  38. package/dist/src/_generated/server.d.ts +20 -0
  39. package/dist/src/_generated/server.d.ts.map +1 -0
  40. package/dist/src/_generated/server.js +8 -0
  41. package/dist/src/actions.d.ts +20 -0
  42. package/dist/src/actions.d.ts.map +1 -0
  43. package/dist/src/actions.js +176 -0
  44. package/dist/src/index.d.ts +10 -0
  45. package/dist/src/index.d.ts.map +1 -0
  46. package/dist/src/index.js +9 -0
  47. package/dist/src/mutations.d.ts +84 -0
  48. package/dist/src/mutations.d.ts.map +1 -0
  49. package/dist/src/mutations.js +166 -0
  50. package/dist/src/queries.d.ts +30 -0
  51. package/dist/src/queries.d.ts.map +1 -0
  52. package/dist/src/queries.js +117 -0
  53. package/dist/src/schema.d.ts +97 -0
  54. package/dist/src/schema.d.ts.map +1 -0
  55. package/dist/src/schema.js +59 -0
  56. 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
+ }