@geenius/docs 0.8.10 → 0.11.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 +18 -0
- package/package.json +32 -20
- package/packages/convex/dist/index.d.ts +4 -4
- package/packages/convex/dist/index.js.map +1 -1
- package/packages/react/dist/index.css +2 -0
- package/packages/react/dist/index.css.map +1 -0
- package/packages/react/dist/index.d.ts +67 -49
- package/packages/react/dist/index.js +267 -172
- package/packages/react/dist/index.js.map +1 -1
- package/packages/react-css/dist/index.css +30 -18
- package/packages/react-css/dist/index.css.map +1 -1
- package/packages/react-css/dist/index.d.ts +68 -33
- package/packages/react-css/dist/index.js +61 -38
- package/packages/react-css/dist/index.js.map +1 -1
- package/packages/shared/dist/{chunk-BR2XBF64.js → chunk-QKKVTCRJ.js} +2 -2
- package/packages/shared/dist/{chunk-BR2XBF64.js.map → chunk-QKKVTCRJ.js.map} +1 -1
- package/packages/shared/dist/index.d.ts +55 -10
- package/packages/shared/dist/index.js +52 -6
- package/packages/shared/dist/index.js.map +1 -1
- package/packages/shared/dist/providers.d.ts +4 -4
- package/packages/shared/dist/providers.js +1 -1
- package/packages/shared/dist/providers.js.map +1 -1
- package/packages/shared/dist/{types-n-Ryn258.d.ts → types-D8ITXVwj.d.ts} +1 -1
- package/packages/solidjs/dist/index.css +2 -0
- package/packages/solidjs/dist/index.css.map +1 -0
- package/packages/solidjs/dist/index.d.ts +57 -27
- package/packages/solidjs/dist/index.js +231 -154
- package/packages/solidjs/dist/index.js.map +1 -1
- package/packages/solidjs-css/dist/index.css +30 -18
- package/packages/solidjs-css/dist/index.css.map +1 -1
- package/packages/solidjs-css/dist/index.d.ts +55 -20
- package/packages/solidjs-css/dist/index.js +34 -25
- package/packages/solidjs-css/dist/index.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.11.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Bring package to A+++ golden-standard compliance with full documentation, cleanup, and structural alignment.
|
|
8
|
+
|
|
9
|
+
## 0.10.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- Bring package to A+++ golden-standard compliance with full documentation, cleanup, and structural alignment.
|
|
14
|
+
|
|
15
|
+
## 0.9.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- Bring package to A+++ golden-standard compliance with full documentation, cleanup, and structural alignment
|
|
20
|
+
|
|
3
21
|
## 0.5.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geenius/docs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Geenius Docs — Provider-based documentation primitives and Storybook review apps for React, SolidJS, and Convex.",
|
|
6
6
|
"author": "Mehdi Nabhani",
|
|
@@ -32,29 +32,14 @@
|
|
|
32
32
|
"LICENSE",
|
|
33
33
|
"CHANGELOG.md"
|
|
34
34
|
],
|
|
35
|
-
"scripts": {
|
|
36
|
-
"changeset": "changeset",
|
|
37
|
-
"build": "pnpm --filter ./packages/shared build && pnpm -r --filter './packages/*' --filter '!./packages/shared' build",
|
|
38
|
-
"lint": "pnpm exec biome check package.json vitest.config.ts __tests__ packages && pnpm --filter ./packages/shared type-check && pnpm -r --filter './packages/*' --filter '!./packages/shared' type-check",
|
|
39
|
-
"type-check": "pnpm --filter ./packages/shared type-check && pnpm -r --filter './packages/*' --filter '!./packages/shared' type-check",
|
|
40
|
-
"test:unit": "pnpm -r --filter './packages/*' test && vitest run __tests__/parity.test.ts",
|
|
41
|
-
"test:exports": "vitest run __tests__/exports.test.ts --passWithNoTests",
|
|
42
|
-
"test:types": "pnpm exec tsc -p tsconfig.type-tests.json --noEmit && npm_config_cache=/tmp/.npm-cache attw --pack --ignore-rules cjs-resolves-to-esm",
|
|
43
|
-
"test": "pnpm build && pnpm run test:unit && pnpm run test:exports && pnpm run test:types",
|
|
44
|
-
"clean": "pnpm -r --filter './packages/*' clean",
|
|
45
|
-
"storybook:react": "pnpm --filter @geenius/docs-storybook-react dev",
|
|
46
|
-
"storybook:solidjs": "pnpm --filter @geenius/docs-storybook-solidjs dev",
|
|
47
|
-
"lint:pub": "publint",
|
|
48
|
-
"prepublishOnly": "pnpm build"
|
|
49
|
-
},
|
|
50
35
|
"dependencies": {
|
|
51
|
-
"@geenius/motion": "
|
|
52
|
-
"@geenius/tools": "workspace:*",
|
|
36
|
+
"@geenius/motion": "^0.10.0",
|
|
53
37
|
"clsx": "^2.1.1",
|
|
54
38
|
"gray-matter": "^4.0.3",
|
|
55
39
|
"react-markdown": "^10.1.0",
|
|
56
40
|
"remark-gfm": "^4.0.1",
|
|
57
|
-
"solid-markdown": "^2.1.1"
|
|
41
|
+
"solid-markdown": "^2.1.1",
|
|
42
|
+
"tailwind-merge": "^3.4.0"
|
|
58
43
|
},
|
|
59
44
|
"peerDependencies": {
|
|
60
45
|
"convex": ">=1.34.0",
|
|
@@ -77,11 +62,23 @@
|
|
|
77
62
|
}
|
|
78
63
|
},
|
|
79
64
|
"devDependencies": {
|
|
65
|
+
"@geenius/storybook": "^0.9.0",
|
|
66
|
+
"@playwright/test": "^1.59.1",
|
|
67
|
+
"@solidjs/testing-library": "^0.8.10",
|
|
68
|
+
"@storybook/test": "^8.6.14",
|
|
69
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
70
|
+
"@testing-library/react": "^16.3.2",
|
|
71
|
+
"@testing-library/user-event": "^14.6.1",
|
|
80
72
|
"@arethetypeswrong/cli": "^0.18.2",
|
|
81
73
|
"@biomejs/biome": "^2.4.11",
|
|
82
74
|
"@changesets/cli": "^2.30.0",
|
|
75
|
+
"jsdom": "^29.0.2",
|
|
83
76
|
"publint": "^0.3.18",
|
|
77
|
+
"react": "^19.2.5",
|
|
78
|
+
"react-dom": "^19.2.5",
|
|
79
|
+
"solid-js": "^1.9.12",
|
|
84
80
|
"typescript": "~6.0.2",
|
|
81
|
+
"vite-plugin-solid": "^2.11.12",
|
|
85
82
|
"vitest": "^4.1.4"
|
|
86
83
|
},
|
|
87
84
|
"engines": {
|
|
@@ -150,5 +147,20 @@
|
|
|
150
147
|
"types": "./packages/shared/dist/index.d.ts",
|
|
151
148
|
"publishConfig": {
|
|
152
149
|
"access": "public"
|
|
150
|
+
},
|
|
151
|
+
"scripts": {
|
|
152
|
+
"changeset": "changeset",
|
|
153
|
+
"build": "pnpm --filter ./packages/shared build && pnpm -r --filter './packages/*' --filter '!./packages/shared' build",
|
|
154
|
+
"lint": "pnpm exec biome check package.json vitest.config.ts __tests__ packages && pnpm --filter ./packages/shared type-check && pnpm -r --filter './packages/*' --filter '!./packages/shared' type-check",
|
|
155
|
+
"type-check": "pnpm --filter ./packages/shared type-check && pnpm -r --filter './packages/*' --filter '!./packages/shared' type-check",
|
|
156
|
+
"test:unit": "pnpm -r --filter './packages/*' test && vitest run __tests__/parity.test.ts __tests__/convex-docs.test.ts",
|
|
157
|
+
"test:exports": "vitest run __tests__/exports.test.ts --passWithNoTests",
|
|
158
|
+
"test:dist-contract": "vitest run __tests__/dist-contract.test.ts --passWithNoTests",
|
|
159
|
+
"test:types": "pnpm exec tsc -p tsconfig.type-tests.json --noEmit && npm_config_cache=/tmp/.npm-cache attw --pack --ignore-rules cjs-resolves-to-esm",
|
|
160
|
+
"test": "pnpm build && pnpm run test:unit && pnpm run test:exports && pnpm run test:dist-contract && pnpm run test:types",
|
|
161
|
+
"clean": "pnpm -r --filter './packages/*' clean",
|
|
162
|
+
"storybook:react": "pnpm --filter @geenius/docs-storybook-react dev",
|
|
163
|
+
"storybook:solidjs": "pnpm --filter @geenius/docs-storybook-solidjs dev",
|
|
164
|
+
"lint:pub": "publint"
|
|
153
165
|
}
|
|
154
|
-
}
|
|
166
|
+
}
|
|
@@ -3,7 +3,7 @@ import * as convex_values from 'convex/values';
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @module docsConvexConfig
|
|
6
|
-
* @package @geenius/docs
|
|
6
|
+
* @package @geenius/docs/convex
|
|
7
7
|
* @description Declares the Convex component identity for the docs package so
|
|
8
8
|
* consuming apps can register the component under the canonical docs name.
|
|
9
9
|
*/
|
|
@@ -14,7 +14,7 @@ declare const component: convex_server.ComponentDefinition<any>;
|
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* @module docsConvexMutations
|
|
17
|
-
* @package @geenius/docs
|
|
17
|
+
* @package @geenius/docs/convex
|
|
18
18
|
* @description Declares the typed Convex mutation surface for creating,
|
|
19
19
|
* updating, reordering, publishing, and deleting docs sections and pages.
|
|
20
20
|
*/
|
|
@@ -134,7 +134,7 @@ declare const movePage: convex_server.RegisteredMutation<"public", {
|
|
|
134
134
|
|
|
135
135
|
/**
|
|
136
136
|
* @module docsConvexQueries
|
|
137
|
-
* @package @geenius/docs
|
|
137
|
+
* @package @geenius/docs/convex
|
|
138
138
|
* @description Declares the typed Convex query surface used by the docs
|
|
139
139
|
* package. The validators mirror the schema so consumers never fall back to
|
|
140
140
|
* `v.any()` for docs sections, pages, or tree payloads.
|
|
@@ -439,7 +439,7 @@ declare const getPageVersions: convex_server.RegisteredQuery<"public", {
|
|
|
439
439
|
|
|
440
440
|
/**
|
|
441
441
|
* @module docsConvexSchema
|
|
442
|
-
* @package @geenius/docs
|
|
442
|
+
* @package @geenius/docs/convex
|
|
443
443
|
* @description Declares the docs Convex schema and exports the reusable
|
|
444
444
|
* tables object so consuming apps can merge it into larger schemas.
|
|
445
445
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/convex.config.ts","../src/_generated/server.js","../src/mutations.ts","../src/queries.ts","../src/schema.ts"],"names":["v"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @module docsConvexConfig\n * @package @geenius/docs-convex\n * @description Declares the Convex component identity for the docs package so\n * consuming apps can register the component under the canonical docs name.\n */\n\nimport { defineComponent } from 'convex/server'\n\n/**\n * Convex component definition for the docs package.\n */\nconst component = defineComponent('docs')\n\n/**\n * Default Convex component registration exported by the docs package.\n */\nexport default component\n","/**\n * THIS CODE IS AUTOMATICALLY GENERATED by @geenius/docs codegen.\n *\n * Template version: 1.34-r3\n * Generated at: 2026-04-13\n * Convex SDK: ^1.34.0\n *\n * DO NOT EDIT THIS FILE MANUALLY.\n * To regenerate, run: pnpm codegen\n * @module\n */\n\nimport {\n actionGeneric,\n httpActionGeneric,\n internalActionGeneric,\n internalMutationGeneric,\n internalQueryGeneric,\n mutationGeneric,\n queryGeneric,\n} from \"convex/server\";\n\nexport const query = queryGeneric;\nexport const internalQuery = internalQueryGeneric;\nexport const mutation = mutationGeneric;\nexport const internalMutation = internalMutationGeneric;\nexport const action = actionGeneric;\nexport const internalAction = internalActionGeneric;\nexport const httpAction = httpActionGeneric;\n","/**\n * @module docsConvexMutations\n * @package @geenius/docs-convex\n * @description Declares the typed Convex mutation surface for creating,\n * updating, reordering, publishing, and deleting docs sections and pages.\n */\n\nimport { v } from 'convex/values'\nimport { mutation } from './_generated/server.js'\n\n/**\n * Creates a docs section record.\n */\nexport const createSection = mutation({\n args: {\n title: v.string(),\n slug: v.string(),\n parentId: v.optional(v.id('doc_sections')),\n order: v.number(),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: v.union(v.literal('public'), v.literal('team'), v.literal('admin')),\n },\n returns: v.id('doc_sections'),\n handler: async (ctx, args) => {\n return await ctx.db.insert('doc_sections', {\n ...args,\n createdAt: Date.now(),\n })\n },\n})\n\n/**\n * Updates mutable fields on a docs section.\n */\nexport const updateSection = mutation({\n args: {\n sectionId: v.id('doc_sections'),\n title: v.optional(v.string()),\n slug: v.optional(v.string()),\n order: v.optional(v.number()),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: v.optional(\n v.union(v.literal('public'), v.literal('team'), v.literal('admin'))\n ),\n },\n returns: v.null(),\n handler: async (ctx, args) => {\n const { sectionId, ...updates } = args\n const clean = Object.fromEntries(\n Object.entries(updates).filter(([, val]) => val !== undefined)\n )\n await ctx.db.patch(sectionId, clean)\n return null\n },\n})\n\n/**\n * Deletes a docs section and its dependent pages and search index entries.\n */\nexport const deleteSection = mutation({\n args: { sectionId: v.id('doc_sections') },\n returns: v.null(),\n handler: async (ctx, args) => {\n const pages = await ctx.db\n .query('doc_pages')\n .withIndex('by_sectionId', (q) => q.eq('sectionId', args.sectionId))\n .collect()\n\n for (const page of pages) {\n const indexEntries = await ctx.db\n .query('doc_search_index')\n .withIndex('by_pageId', (q) => q.eq('pageId', page._id))\n .collect()\n for (const entry of indexEntries) {\n await ctx.db.delete(entry._id)\n }\n await ctx.db.delete(page._id)\n }\n\n await ctx.db.delete(args.sectionId)\n return null\n },\n})\n\n/**\n * Reorders sections according to the provided id sequence.\n */\nexport const reorderSections = mutation({\n args: { sectionIds: v.array(v.id('doc_sections')) },\n returns: v.null(),\n handler: async (ctx, args) => {\n for (let i = 0; i < args.sectionIds.length; i++) {\n await ctx.db.patch(args.sectionIds[i], { order: i })\n }\n return null\n },\n})\n\n/**\n * Creates a docs page and derives reading-time metadata from its content.\n */\nexport const createPage = mutation({\n args: {\n title: v.string(),\n slug: v.string(),\n content: v.string(),\n sectionId: v.id('doc_sections'),\n access: v.union(v.literal('public'), v.literal('team'), v.literal('admin')),\n tags: v.optional(v.array(v.string())),\n version: v.optional(v.string()),\n status: v.optional(\n v.union(v.literal('draft'), v.literal('published'), v.literal('archived'))\n ),\n author: v.optional(\n v.object({ name: v.string(), avatar: v.optional(v.string()) })\n ),\n excerpt: v.optional(v.string()),\n order: v.optional(v.number()),\n },\n returns: v.id('doc_pages'),\n handler: async (ctx, args) => {\n const now = Date.now()\n const stripped = args.content\n .replace(/```[\\s\\S]*?```/g, '')\n .replace(/[#*_~>|-]/g, '')\n .trim()\n const words = stripped.split(/\\s+/).filter(Boolean)\n const wordCount = words.length\n const readingTime = Math.max(1, Math.ceil(wordCount / 225))\n\n return await ctx.db.insert('doc_pages', {\n title: args.title,\n slug: args.slug,\n content: args.content,\n excerpt: args.excerpt,\n sectionId: args.sectionId,\n order: args.order ?? 0,\n author: args.author ?? { name: \"Anonymous\" },\n version: args.version,\n access: args.access,\n tags: args.tags ?? [],\n status: args.status ?? 'draft',\n createdAt: now,\n updatedAt: now,\n wordCount,\n readingTime,\n viewCount: 0,\n })\n },\n})\n\n/**\n * Updates an existing docs page and recalculates derived metadata when needed.\n */\nexport const updatePage = mutation({\n args: {\n pageId: v.id('doc_pages'),\n title: v.optional(v.string()),\n slug: v.optional(v.string()),\n content: v.optional(v.string()),\n excerpt: v.optional(v.string()),\n sectionId: v.optional(v.id('doc_sections')),\n order: v.optional(v.number()),\n access: v.optional(\n v.union(v.literal('public'), v.literal('team'), v.literal('admin'))\n ),\n tags: v.optional(v.array(v.string())),\n version: v.optional(v.string()),\n status: v.optional(\n v.union(v.literal('draft'), v.literal('published'), v.literal('archived'))\n ),\n lastEditedBy: v.optional(\n v.object({ name: v.string(), editedAt: v.string() })\n ),\n },\n returns: v.null(),\n handler: async (ctx, args) => {\n const { pageId, ...updates } = args\n const clean: Record<string, unknown> = Object.fromEntries(\n Object.entries(updates).filter(([, val]) => val !== undefined)\n )\n\n if (typeof clean.content === 'string') {\n const stripped = clean.content\n .replace(/```[\\s\\S]*?```/g, '')\n .replace(/[#*_~>|-]/g, '')\n .trim()\n const words = stripped.split(/\\s+/).filter(Boolean)\n clean.wordCount = words.length\n clean.readingTime = Math.max(1, Math.ceil(words.length / 225))\n }\n\n clean.updatedAt = Date.now()\n await ctx.db.patch(pageId, clean)\n return null\n },\n})\n\n/**\n * Publishes a docs page.\n */\nexport const publishPage = mutation({\n args: { pageId: v.id('doc_pages') },\n returns: v.null(),\n handler: async (ctx, args) => {\n await ctx.db.patch(args.pageId, {\n status: 'published',\n updatedAt: Date.now(),\n })\n return null\n },\n})\n\n/**\n * Archives a docs page.\n */\nexport const archivePage = mutation({\n args: { pageId: v.id('doc_pages') },\n returns: v.null(),\n handler: async (ctx, args) => {\n await ctx.db.patch(args.pageId, {\n status: 'archived',\n updatedAt: Date.now(),\n })\n return null\n },\n})\n\n/**\n * Deletes a docs page and its search index entries.\n */\nexport const deletePage = mutation({\n args: { pageId: v.id('doc_pages') },\n returns: v.null(),\n handler: async (ctx, args) => {\n const indexEntries = await ctx.db\n .query('doc_search_index')\n .withIndex('by_pageId', (q) => q.eq('pageId', args.pageId))\n .collect()\n for (const entry of indexEntries) {\n await ctx.db.delete(entry._id)\n }\n await ctx.db.delete(args.pageId)\n return null\n },\n})\n\n/**\n * Reorders pages within a section according to the provided id sequence.\n */\nexport const reorderPages = mutation({\n args: { pageIds: v.array(v.id('doc_pages')) },\n returns: v.null(),\n handler: async (ctx, args) => {\n for (let i = 0; i < args.pageIds.length; i++) {\n await ctx.db.patch(args.pageIds[i], { order: i })\n }\n return null\n },\n})\n\n/**\n * Increments the view count for a docs page.\n */\nexport const incrementViewCount = mutation({\n args: { pageId: v.id('doc_pages') },\n returns: v.null(),\n handler: async (ctx, args) => {\n const page = await ctx.db.get(args.pageId)\n if (page) {\n await ctx.db.patch(args.pageId, { viewCount: (page.viewCount ?? 0) + 1 })\n }\n return null\n },\n})\n\n/**\n * Moves a docs page into a new section and order slot.\n */\nexport const movePage = mutation({\n args: {\n pageId: v.id('doc_pages'),\n newSectionId: v.id('doc_sections'),\n newOrder: v.number(),\n },\n returns: v.null(),\n handler: async (ctx, args) => {\n await ctx.db.patch(args.pageId, {\n sectionId: args.newSectionId,\n order: args.newOrder,\n updatedAt: Date.now(),\n })\n return null\n },\n})\n","/**\n * @module docsConvexQueries\n * @package @geenius/docs-convex\n * @description Declares the typed Convex query surface used by the docs\n * package. The validators mirror the schema so consumers never fall back to\n * `v.any()` for docs sections, pages, or tree payloads.\n */\n\nimport { v } from \"convex/values\";\nimport { query } from \"./_generated/server.js\";\n\nconst docAccessValidator = v.union(\n v.literal(\"public\"),\n v.literal(\"team\"),\n v.literal(\"admin\"),\n);\n\nconst docStatusValidator = v.union(\n v.literal(\"draft\"),\n v.literal(\"published\"),\n v.literal(\"archived\"),\n);\n\nconst docAuthorValidator = v.object({\n name: v.string(),\n avatar: v.optional(v.string()),\n});\n\nconst docRevisionValidator = v.object({\n name: v.string(),\n editedAt: v.string(),\n});\n\nconst docSectionValidator = v.object({\n _id: v.id(\"doc_sections\"),\n _creationTime: v.number(),\n title: v.string(),\n slug: v.string(),\n parentId: v.optional(v.id(\"doc_sections\")),\n order: v.number(),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: docAccessValidator,\n createdAt: v.number(),\n});\n\nconst docPageValidator = v.object({\n _id: v.id(\"doc_pages\"),\n _creationTime: v.number(),\n title: v.string(),\n slug: v.string(),\n content: v.string(),\n excerpt: v.optional(v.string()),\n sectionId: v.id(\"doc_sections\"),\n order: v.number(),\n author: docAuthorValidator,\n lastEditedBy: v.optional(docRevisionValidator),\n version: v.optional(v.string()),\n access: docAccessValidator,\n tags: v.array(v.string()),\n status: docStatusValidator,\n createdAt: v.number(),\n updatedAt: v.number(),\n wordCount: v.number(),\n readingTime: v.number(),\n viewCount: v.number(),\n});\n\nconst hydratedPageValidator = v.object({\n _id: v.id(\"doc_pages\"),\n _creationTime: v.number(),\n id: v.id(\"doc_pages\"),\n title: v.string(),\n slug: v.string(),\n content: v.string(),\n excerpt: v.optional(v.string()),\n sectionId: v.id(\"doc_sections\"),\n order: v.number(),\n author: docAuthorValidator,\n lastEditedBy: v.optional(docRevisionValidator),\n version: v.optional(v.string()),\n access: docAccessValidator,\n tags: v.array(v.string()),\n status: docStatusValidator,\n createdAt: v.number(),\n updatedAt: v.number(),\n wordCount: v.number(),\n readingTime: v.number(),\n viewCount: v.number(),\n});\n\nconst sectionTreeItemValidator = v.object({\n _id: v.id(\"doc_sections\"),\n _creationTime: v.number(),\n id: v.id(\"doc_sections\"),\n title: v.string(),\n slug: v.string(),\n parentId: v.optional(v.id(\"doc_sections\")),\n order: v.number(),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: docAccessValidator,\n createdAt: v.number(),\n pages: v.array(hydratedPageValidator),\n pageCount: v.number(),\n});\n\n/**\n * Lists docs sections, optionally filtered by access level.\n *\n * @returns A sorted array of section records matching the requested access scope.\n */\nexport const listSections = query({\n args: { access: v.optional(docAccessValidator) },\n returns: v.array(docSectionValidator),\n handler: async (ctx, args) => {\n let sections = await ctx.db\n .query(\"doc_sections\")\n .withIndex(\"by_order\")\n .collect();\n\n if (args.access) {\n sections = sections.filter((s) => s.access === args.access);\n }\n\n return sections.sort((a, b) => a.order - b.order);\n },\n});\n\n/**\n * Resolves a single docs section by its identifier.\n *\n * @returns The matching section record, or `null` when the section is missing.\n */\nexport const getSection = query({\n args: { sectionId: v.id(\"doc_sections\") },\n returns: v.union(v.null(), docSectionValidator),\n handler: async (ctx, args) => {\n return await ctx.db.get(args.sectionId);\n },\n});\n\n/**\n * Lists docs pages that belong to one section.\n *\n * @returns A sorted array of pages for the requested section and optional status.\n */\nexport const listPagesBySection = query({\n args: {\n sectionId: v.id(\"doc_sections\"),\n status: v.optional(docStatusValidator),\n },\n returns: v.array(docPageValidator),\n handler: async (ctx, args) => {\n let pages = await ctx.db\n .query(\"doc_pages\")\n .withIndex(\"by_sectionId\", (q) => q.eq(\"sectionId\", args.sectionId))\n .collect();\n\n if (args.status) {\n pages = pages.filter((p) => p.status === args.status);\n }\n\n return pages.sort((a, b) => a.order - b.order);\n },\n});\n\n/**\n * Resolves a docs page by section identifier and slug.\n *\n * @returns The matching page record, or `null` when no page matches the slug.\n */\nexport const getPage = query({\n args: {\n sectionId: v.id(\"doc_sections\"),\n slug: v.string(),\n },\n returns: v.union(v.null(), docPageValidator),\n handler: async (ctx, args) => {\n const pages = await ctx.db\n .query(\"doc_pages\")\n .withIndex(\"by_sectionId\", (q) => q.eq(\"sectionId\", args.sectionId))\n .collect();\n\n return pages.find((p) => p.slug === args.slug) ?? null;\n },\n});\n\n/**\n * Resolves a docs page by its unique identifier.\n *\n * @returns The matching page record, or `null` when the page is missing.\n */\nexport const getPageById = query({\n args: { pageId: v.id(\"doc_pages\") },\n returns: v.union(v.null(), docPageValidator),\n handler: async (ctx, args) => {\n return await ctx.db.get(args.pageId);\n },\n});\n\n/**\n * Searches published docs pages by title, content, and tags.\n *\n * @returns A ranked list of matching page records limited to the first 20 hits.\n */\nexport const searchPages = query({\n args: {\n query: v.string(),\n access: v.optional(docAccessValidator),\n },\n returns: v.array(docPageValidator),\n handler: async (ctx, args) => {\n const q = args.query.toLowerCase();\n if (!q) return [];\n\n let pages = await ctx.db.query(\"doc_pages\").collect();\n\n if (args.access) {\n pages = pages.filter((p) => p.access === args.access);\n }\n\n const results = pages\n .filter(\n (p) =>\n p.title.toLowerCase().includes(q) ||\n p.content.toLowerCase().includes(q) ||\n p.tags.some((t: string) => t.toLowerCase().includes(q))\n )\n .slice(0, 20);\n\n return results;\n },\n});\n\n/**\n * Builds the full docs tree with published pages attached to each section.\n *\n * @returns A sorted section tree ready for docs navigation and page shells.\n */\nexport const getFullTree = query({\n args: { access: v.optional(docAccessValidator) },\n returns: v.array(sectionTreeItemValidator),\n handler: async (ctx, args) => {\n let sections = await ctx.db\n .query(\"doc_sections\")\n .withIndex(\"by_order\")\n .collect();\n\n if (args.access) {\n sections = sections.filter((s) => s.access === args.access);\n }\n\n sections.sort((a, b) => a.order - b.order);\n\n const tree = [];\n for (const section of sections) {\n const pages = await ctx.db\n .query(\"doc_pages\")\n .withIndex(\"by_sectionId\", (q) => q.eq(\"sectionId\", section._id))\n .collect();\n\n const publishedPages = pages\n .filter((p) => p.status === \"published\")\n .sort((a, b) => a.order - b.order);\n\n tree.push({\n ...section,\n id: section._id,\n pages: publishedPages.map((p) => ({ ...p, id: p._id })),\n pageCount: publishedPages.length,\n });\n }\n\n return tree;\n },\n});\n\n/**\n * Lists recently updated published docs pages.\n *\n * @returns A descending list of recently updated pages capped by the requested limit.\n */\nexport const getRecentPages = query({\n args: {\n limit: v.optional(v.number()),\n access: v.optional(docAccessValidator),\n },\n returns: v.array(hydratedPageValidator),\n handler: async (ctx, args) => {\n let pages = await ctx.db.query(\"doc_pages\").collect();\n\n pages = pages.filter((p) => p.status === \"published\");\n\n if (args.access) {\n pages = pages.filter((p) => p.access === args.access);\n }\n\n pages.sort((a, b) => b.updatedAt - a.updatedAt);\n\n return pages.slice(0, args.limit ?? 10).map((p) => ({ ...p, id: p._id }));\n },\n});\n\n/**\n * Lists versioned pages that share the same slug.\n *\n * @returns A descending array of versioned page records for the requested slug.\n */\nexport const getPageVersions = query({\n args: { slug: v.string() },\n returns: v.array(hydratedPageValidator),\n handler: async (ctx, args) => {\n const pages = await ctx.db\n .query(\"doc_pages\")\n .withIndex(\"by_slug\", (q) => q.eq(\"slug\", args.slug))\n .collect();\n\n return pages\n .filter((p) => p.version)\n .sort((a, b) => (b.version ?? \"\").localeCompare(a.version ?? \"\"))\n .map((p) => ({ ...p, id: p._id }));\n },\n});\n","/**\n * @module docsConvexSchema\n * @package @geenius/docs-convex\n * @description Declares the docs Convex schema and exports the reusable\n * tables object so consuming apps can merge it into larger schemas.\n */\n\nimport { defineSchema, defineTable } from 'convex/server'\nimport { v } from 'convex/values'\n\n/**\n * Reusable Convex tables for the docs package.\n */\nexport const docsTables = {\n doc_sections: defineTable({\n title: v.string(),\n slug: v.string(),\n parentId: v.optional(v.id('doc_sections')),\n order: v.number(),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: v.union(v.literal('public'), v.literal('team'), v.literal('admin')),\n createdAt: v.number(),\n })\n .index('by_slug', ['slug'])\n .index('by_parentId', ['parentId'])\n .index('by_order', ['order']),\n\n doc_pages: defineTable({\n title: v.string(),\n slug: v.string(),\n content: v.string(),\n excerpt: v.optional(v.string()),\n sectionId: v.id('doc_sections'),\n order: v.number(),\n author: v.object({ name: v.string(), avatar: v.optional(v.string()) }),\n lastEditedBy: v.optional(\n v.object({ name: v.string(), editedAt: v.string() })\n ),\n version: v.optional(v.string()),\n access: v.union(v.literal('public'), v.literal('team'), v.literal('admin')),\n tags: v.array(v.string()),\n status: v.union(\n v.literal('draft'),\n v.literal('published'),\n v.literal('archived')\n ),\n createdAt: v.number(),\n updatedAt: v.number(),\n wordCount: v.number(),\n readingTime: v.number(),\n viewCount: v.number(),\n })\n .index('by_sectionId', ['sectionId'])\n .index('by_slug', ['slug'])\n .index('by_status', ['status'])\n .index('by_access', ['access']),\n\n doc_search_index: defineTable({\n pageId: v.id('doc_pages'),\n sectionId: v.id('doc_sections'),\n tokens: v.array(v.string()),\n updatedAt: v.number(),\n }).index('by_pageId', ['pageId']),\n}\n\n/**\n * Canonical docs schema composed from the package tables.\n */\nconst docsSchema = defineSchema(docsTables)\n\n/**\n * Default Convex schema exported for consumers that mount the full docs tables.\n */\nexport default docsSchema\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/convex.config.ts","../src/_generated/server.js","../src/mutations.ts","../src/queries.ts","../src/schema.ts"],"names":["v"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @module docsConvexConfig\n * @package @geenius/docs/convex\n * @description Declares the Convex component identity for the docs package so\n * consuming apps can register the component under the canonical docs name.\n */\n\nimport { defineComponent } from 'convex/server'\n\n/**\n * Convex component definition for the docs package.\n */\nconst component = defineComponent('docs')\n\n/**\n * Default Convex component registration exported by the docs package.\n */\nexport default component\n","/**\n * THIS CODE IS AUTOMATICALLY GENERATED by @geenius/docs codegen.\n *\n * Template version: 1.34-r3\n * Generated at: 2026-04-13\n * Convex SDK: ^1.34.0\n *\n * DO NOT EDIT THIS FILE MANUALLY.\n * To regenerate, run: pnpm codegen\n * @module\n */\n\nimport {\n actionGeneric,\n httpActionGeneric,\n internalActionGeneric,\n internalMutationGeneric,\n internalQueryGeneric,\n mutationGeneric,\n queryGeneric,\n} from \"convex/server\";\n\nexport const query = queryGeneric;\nexport const internalQuery = internalQueryGeneric;\nexport const mutation = mutationGeneric;\nexport const internalMutation = internalMutationGeneric;\nexport const action = actionGeneric;\nexport const internalAction = internalActionGeneric;\nexport const httpAction = httpActionGeneric;\n","/**\n * @module docsConvexMutations\n * @package @geenius/docs/convex\n * @description Declares the typed Convex mutation surface for creating,\n * updating, reordering, publishing, and deleting docs sections and pages.\n */\n\nimport { v } from 'convex/values'\nimport { mutation } from './_generated/server.js'\n\n/**\n * Creates a docs section record.\n */\nexport const createSection = mutation({\n args: {\n title: v.string(),\n slug: v.string(),\n parentId: v.optional(v.id('doc_sections')),\n order: v.number(),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: v.union(v.literal('public'), v.literal('team'), v.literal('admin')),\n },\n returns: v.id('doc_sections'),\n handler: async (ctx, args) => {\n return await ctx.db.insert('doc_sections', {\n ...args,\n createdAt: Date.now(),\n })\n },\n})\n\n/**\n * Updates mutable fields on a docs section.\n */\nexport const updateSection = mutation({\n args: {\n sectionId: v.id('doc_sections'),\n title: v.optional(v.string()),\n slug: v.optional(v.string()),\n order: v.optional(v.number()),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: v.optional(\n v.union(v.literal('public'), v.literal('team'), v.literal('admin'))\n ),\n },\n returns: v.null(),\n handler: async (ctx, args) => {\n const { sectionId, ...updates } = args\n const clean = Object.fromEntries(\n Object.entries(updates).filter(([, val]) => val !== undefined)\n )\n await ctx.db.patch(sectionId, clean)\n return null\n },\n})\n\n/**\n * Deletes a docs section and its dependent pages and search index entries.\n */\nexport const deleteSection = mutation({\n args: { sectionId: v.id('doc_sections') },\n returns: v.null(),\n handler: async (ctx, args) => {\n const pages = await ctx.db\n .query('doc_pages')\n .withIndex('by_sectionId', (q) => q.eq('sectionId', args.sectionId))\n .collect()\n\n for (const page of pages) {\n const indexEntries = await ctx.db\n .query('doc_search_index')\n .withIndex('by_pageId', (q) => q.eq('pageId', page._id))\n .collect()\n for (const entry of indexEntries) {\n await ctx.db.delete(entry._id)\n }\n await ctx.db.delete(page._id)\n }\n\n await ctx.db.delete(args.sectionId)\n return null\n },\n})\n\n/**\n * Reorders sections according to the provided id sequence.\n */\nexport const reorderSections = mutation({\n args: { sectionIds: v.array(v.id('doc_sections')) },\n returns: v.null(),\n handler: async (ctx, args) => {\n for (let i = 0; i < args.sectionIds.length; i++) {\n await ctx.db.patch(args.sectionIds[i], { order: i })\n }\n return null\n },\n})\n\n/**\n * Creates a docs page and derives reading-time metadata from its content.\n */\nexport const createPage = mutation({\n args: {\n title: v.string(),\n slug: v.string(),\n content: v.string(),\n sectionId: v.id('doc_sections'),\n access: v.union(v.literal('public'), v.literal('team'), v.literal('admin')),\n tags: v.optional(v.array(v.string())),\n version: v.optional(v.string()),\n status: v.optional(\n v.union(v.literal('draft'), v.literal('published'), v.literal('archived'))\n ),\n author: v.optional(\n v.object({ name: v.string(), avatar: v.optional(v.string()) })\n ),\n excerpt: v.optional(v.string()),\n order: v.optional(v.number()),\n },\n returns: v.id('doc_pages'),\n handler: async (ctx, args) => {\n const now = Date.now()\n const stripped = args.content\n .replace(/```[\\s\\S]*?```/g, '')\n .replace(/[#*_~>|-]/g, '')\n .trim()\n const words = stripped.split(/\\s+/).filter(Boolean)\n const wordCount = words.length\n const readingTime = Math.max(1, Math.ceil(wordCount / 225))\n\n return await ctx.db.insert('doc_pages', {\n title: args.title,\n slug: args.slug,\n content: args.content,\n excerpt: args.excerpt,\n sectionId: args.sectionId,\n order: args.order ?? 0,\n author: args.author ?? { name: \"Anonymous\" },\n version: args.version,\n access: args.access,\n tags: args.tags ?? [],\n status: args.status ?? 'draft',\n createdAt: now,\n updatedAt: now,\n wordCount,\n readingTime,\n viewCount: 0,\n })\n },\n})\n\n/**\n * Updates an existing docs page and recalculates derived metadata when needed.\n */\nexport const updatePage = mutation({\n args: {\n pageId: v.id('doc_pages'),\n title: v.optional(v.string()),\n slug: v.optional(v.string()),\n content: v.optional(v.string()),\n excerpt: v.optional(v.string()),\n sectionId: v.optional(v.id('doc_sections')),\n order: v.optional(v.number()),\n access: v.optional(\n v.union(v.literal('public'), v.literal('team'), v.literal('admin'))\n ),\n tags: v.optional(v.array(v.string())),\n version: v.optional(v.string()),\n status: v.optional(\n v.union(v.literal('draft'), v.literal('published'), v.literal('archived'))\n ),\n lastEditedBy: v.optional(\n v.object({ name: v.string(), editedAt: v.string() })\n ),\n },\n returns: v.null(),\n handler: async (ctx, args) => {\n const { pageId, ...updates } = args\n const clean: Record<string, unknown> = Object.fromEntries(\n Object.entries(updates).filter(([, val]) => val !== undefined)\n )\n\n if (typeof clean.content === 'string') {\n const stripped = clean.content\n .replace(/```[\\s\\S]*?```/g, '')\n .replace(/[#*_~>|-]/g, '')\n .trim()\n const words = stripped.split(/\\s+/).filter(Boolean)\n clean.wordCount = words.length\n clean.readingTime = Math.max(1, Math.ceil(words.length / 225))\n }\n\n clean.updatedAt = Date.now()\n await ctx.db.patch(pageId, clean)\n return null\n },\n})\n\n/**\n * Publishes a docs page.\n */\nexport const publishPage = mutation({\n args: { pageId: v.id('doc_pages') },\n returns: v.null(),\n handler: async (ctx, args) => {\n await ctx.db.patch(args.pageId, {\n status: 'published',\n updatedAt: Date.now(),\n })\n return null\n },\n})\n\n/**\n * Archives a docs page.\n */\nexport const archivePage = mutation({\n args: { pageId: v.id('doc_pages') },\n returns: v.null(),\n handler: async (ctx, args) => {\n await ctx.db.patch(args.pageId, {\n status: 'archived',\n updatedAt: Date.now(),\n })\n return null\n },\n})\n\n/**\n * Deletes a docs page and its search index entries.\n */\nexport const deletePage = mutation({\n args: { pageId: v.id('doc_pages') },\n returns: v.null(),\n handler: async (ctx, args) => {\n const indexEntries = await ctx.db\n .query('doc_search_index')\n .withIndex('by_pageId', (q) => q.eq('pageId', args.pageId))\n .collect()\n for (const entry of indexEntries) {\n await ctx.db.delete(entry._id)\n }\n await ctx.db.delete(args.pageId)\n return null\n },\n})\n\n/**\n * Reorders pages within a section according to the provided id sequence.\n */\nexport const reorderPages = mutation({\n args: { pageIds: v.array(v.id('doc_pages')) },\n returns: v.null(),\n handler: async (ctx, args) => {\n for (let i = 0; i < args.pageIds.length; i++) {\n await ctx.db.patch(args.pageIds[i], { order: i })\n }\n return null\n },\n})\n\n/**\n * Increments the view count for a docs page.\n */\nexport const incrementViewCount = mutation({\n args: { pageId: v.id('doc_pages') },\n returns: v.null(),\n handler: async (ctx, args) => {\n const page = await ctx.db.get(args.pageId)\n if (page) {\n await ctx.db.patch(args.pageId, { viewCount: (page.viewCount ?? 0) + 1 })\n }\n return null\n },\n})\n\n/**\n * Moves a docs page into a new section and order slot.\n */\nexport const movePage = mutation({\n args: {\n pageId: v.id('doc_pages'),\n newSectionId: v.id('doc_sections'),\n newOrder: v.number(),\n },\n returns: v.null(),\n handler: async (ctx, args) => {\n await ctx.db.patch(args.pageId, {\n sectionId: args.newSectionId,\n order: args.newOrder,\n updatedAt: Date.now(),\n })\n return null\n },\n})\n","/**\n * @module docsConvexQueries\n * @package @geenius/docs/convex\n * @description Declares the typed Convex query surface used by the docs\n * package. The validators mirror the schema so consumers never fall back to\n * `v.any()` for docs sections, pages, or tree payloads.\n */\n\nimport { v } from \"convex/values\";\nimport { query } from \"./_generated/server.js\";\n\nconst docAccessValidator = v.union(\n v.literal(\"public\"),\n v.literal(\"team\"),\n v.literal(\"admin\"),\n);\n\nconst docStatusValidator = v.union(\n v.literal(\"draft\"),\n v.literal(\"published\"),\n v.literal(\"archived\"),\n);\n\nconst docAuthorValidator = v.object({\n name: v.string(),\n avatar: v.optional(v.string()),\n});\n\nconst docRevisionValidator = v.object({\n name: v.string(),\n editedAt: v.string(),\n});\n\nconst docSectionValidator = v.object({\n _id: v.id(\"doc_sections\"),\n _creationTime: v.number(),\n title: v.string(),\n slug: v.string(),\n parentId: v.optional(v.id(\"doc_sections\")),\n order: v.number(),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: docAccessValidator,\n createdAt: v.number(),\n});\n\nconst docPageValidator = v.object({\n _id: v.id(\"doc_pages\"),\n _creationTime: v.number(),\n title: v.string(),\n slug: v.string(),\n content: v.string(),\n excerpt: v.optional(v.string()),\n sectionId: v.id(\"doc_sections\"),\n order: v.number(),\n author: docAuthorValidator,\n lastEditedBy: v.optional(docRevisionValidator),\n version: v.optional(v.string()),\n access: docAccessValidator,\n tags: v.array(v.string()),\n status: docStatusValidator,\n createdAt: v.number(),\n updatedAt: v.number(),\n wordCount: v.number(),\n readingTime: v.number(),\n viewCount: v.number(),\n});\n\nconst hydratedPageValidator = v.object({\n _id: v.id(\"doc_pages\"),\n _creationTime: v.number(),\n id: v.id(\"doc_pages\"),\n title: v.string(),\n slug: v.string(),\n content: v.string(),\n excerpt: v.optional(v.string()),\n sectionId: v.id(\"doc_sections\"),\n order: v.number(),\n author: docAuthorValidator,\n lastEditedBy: v.optional(docRevisionValidator),\n version: v.optional(v.string()),\n access: docAccessValidator,\n tags: v.array(v.string()),\n status: docStatusValidator,\n createdAt: v.number(),\n updatedAt: v.number(),\n wordCount: v.number(),\n readingTime: v.number(),\n viewCount: v.number(),\n});\n\nconst sectionTreeItemValidator = v.object({\n _id: v.id(\"doc_sections\"),\n _creationTime: v.number(),\n id: v.id(\"doc_sections\"),\n title: v.string(),\n slug: v.string(),\n parentId: v.optional(v.id(\"doc_sections\")),\n order: v.number(),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: docAccessValidator,\n createdAt: v.number(),\n pages: v.array(hydratedPageValidator),\n pageCount: v.number(),\n});\n\n/**\n * Lists docs sections, optionally filtered by access level.\n *\n * @returns A sorted array of section records matching the requested access scope.\n */\nexport const listSections = query({\n args: { access: v.optional(docAccessValidator) },\n returns: v.array(docSectionValidator),\n handler: async (ctx, args) => {\n let sections = await ctx.db\n .query(\"doc_sections\")\n .withIndex(\"by_order\")\n .collect();\n\n if (args.access) {\n sections = sections.filter((s) => s.access === args.access);\n }\n\n return sections.sort((a, b) => a.order - b.order);\n },\n});\n\n/**\n * Resolves a single docs section by its identifier.\n *\n * @returns The matching section record, or `null` when the section is missing.\n */\nexport const getSection = query({\n args: { sectionId: v.id(\"doc_sections\") },\n returns: v.union(v.null(), docSectionValidator),\n handler: async (ctx, args) => {\n return await ctx.db.get(args.sectionId);\n },\n});\n\n/**\n * Lists docs pages that belong to one section.\n *\n * @returns A sorted array of pages for the requested section and optional status.\n */\nexport const listPagesBySection = query({\n args: {\n sectionId: v.id(\"doc_sections\"),\n status: v.optional(docStatusValidator),\n },\n returns: v.array(docPageValidator),\n handler: async (ctx, args) => {\n let pages = await ctx.db\n .query(\"doc_pages\")\n .withIndex(\"by_sectionId\", (q) => q.eq(\"sectionId\", args.sectionId))\n .collect();\n\n if (args.status) {\n pages = pages.filter((p) => p.status === args.status);\n }\n\n return pages.sort((a, b) => a.order - b.order);\n },\n});\n\n/**\n * Resolves a docs page by section identifier and slug.\n *\n * @returns The matching page record, or `null` when no page matches the slug.\n */\nexport const getPage = query({\n args: {\n sectionId: v.id(\"doc_sections\"),\n slug: v.string(),\n },\n returns: v.union(v.null(), docPageValidator),\n handler: async (ctx, args) => {\n const pages = await ctx.db\n .query(\"doc_pages\")\n .withIndex(\"by_sectionId\", (q) => q.eq(\"sectionId\", args.sectionId))\n .collect();\n\n return pages.find((p) => p.slug === args.slug) ?? null;\n },\n});\n\n/**\n * Resolves a docs page by its unique identifier.\n *\n * @returns The matching page record, or `null` when the page is missing.\n */\nexport const getPageById = query({\n args: { pageId: v.id(\"doc_pages\") },\n returns: v.union(v.null(), docPageValidator),\n handler: async (ctx, args) => {\n return await ctx.db.get(args.pageId);\n },\n});\n\n/**\n * Searches published docs pages by title, content, and tags.\n *\n * @returns A ranked list of matching page records limited to the first 20 hits.\n */\nexport const searchPages = query({\n args: {\n query: v.string(),\n access: v.optional(docAccessValidator),\n },\n returns: v.array(docPageValidator),\n handler: async (ctx, args) => {\n const q = args.query.toLowerCase();\n if (!q) return [];\n\n let pages = await ctx.db.query(\"doc_pages\").collect();\n\n if (args.access) {\n pages = pages.filter((p) => p.access === args.access);\n }\n\n const results = pages\n .filter(\n (p) =>\n p.title.toLowerCase().includes(q) ||\n p.content.toLowerCase().includes(q) ||\n p.tags.some((t: string) => t.toLowerCase().includes(q))\n )\n .slice(0, 20);\n\n return results;\n },\n});\n\n/**\n * Builds the full docs tree with published pages attached to each section.\n *\n * @returns A sorted section tree ready for docs navigation and page shells.\n */\nexport const getFullTree = query({\n args: { access: v.optional(docAccessValidator) },\n returns: v.array(sectionTreeItemValidator),\n handler: async (ctx, args) => {\n let sections = await ctx.db\n .query(\"doc_sections\")\n .withIndex(\"by_order\")\n .collect();\n\n if (args.access) {\n sections = sections.filter((s) => s.access === args.access);\n }\n\n sections.sort((a, b) => a.order - b.order);\n\n const tree = [];\n for (const section of sections) {\n const pages = await ctx.db\n .query(\"doc_pages\")\n .withIndex(\"by_sectionId\", (q) => q.eq(\"sectionId\", section._id))\n .collect();\n\n const publishedPages = pages\n .filter((p) => p.status === \"published\")\n .sort((a, b) => a.order - b.order);\n\n tree.push({\n ...section,\n id: section._id,\n pages: publishedPages.map((p) => ({ ...p, id: p._id })),\n pageCount: publishedPages.length,\n });\n }\n\n return tree;\n },\n});\n\n/**\n * Lists recently updated published docs pages.\n *\n * @returns A descending list of recently updated pages capped by the requested limit.\n */\nexport const getRecentPages = query({\n args: {\n limit: v.optional(v.number()),\n access: v.optional(docAccessValidator),\n },\n returns: v.array(hydratedPageValidator),\n handler: async (ctx, args) => {\n let pages = await ctx.db.query(\"doc_pages\").collect();\n\n pages = pages.filter((p) => p.status === \"published\");\n\n if (args.access) {\n pages = pages.filter((p) => p.access === args.access);\n }\n\n pages.sort((a, b) => b.updatedAt - a.updatedAt);\n\n return pages.slice(0, args.limit ?? 10).map((p) => ({ ...p, id: p._id }));\n },\n});\n\n/**\n * Lists versioned pages that share the same slug.\n *\n * @returns A descending array of versioned page records for the requested slug.\n */\nexport const getPageVersions = query({\n args: { slug: v.string() },\n returns: v.array(hydratedPageValidator),\n handler: async (ctx, args) => {\n const pages = await ctx.db\n .query(\"doc_pages\")\n .withIndex(\"by_slug\", (q) => q.eq(\"slug\", args.slug))\n .collect();\n\n return pages\n .filter((p) => p.version)\n .sort((a, b) => (b.version ?? \"\").localeCompare(a.version ?? \"\"))\n .map((p) => ({ ...p, id: p._id }));\n },\n});\n","/**\n * @module docsConvexSchema\n * @package @geenius/docs/convex\n * @description Declares the docs Convex schema and exports the reusable\n * tables object so consuming apps can merge it into larger schemas.\n */\n\nimport { defineSchema, defineTable } from 'convex/server'\nimport { v } from 'convex/values'\n\n/**\n * Reusable Convex tables for the docs package.\n */\nexport const docsTables = {\n doc_sections: defineTable({\n title: v.string(),\n slug: v.string(),\n parentId: v.optional(v.id('doc_sections')),\n order: v.number(),\n icon: v.optional(v.string()),\n description: v.optional(v.string()),\n access: v.union(v.literal('public'), v.literal('team'), v.literal('admin')),\n createdAt: v.number(),\n })\n .index('by_slug', ['slug'])\n .index('by_parentId', ['parentId'])\n .index('by_order', ['order']),\n\n doc_pages: defineTable({\n title: v.string(),\n slug: v.string(),\n content: v.string(),\n excerpt: v.optional(v.string()),\n sectionId: v.id('doc_sections'),\n order: v.number(),\n author: v.object({ name: v.string(), avatar: v.optional(v.string()) }),\n lastEditedBy: v.optional(\n v.object({ name: v.string(), editedAt: v.string() })\n ),\n version: v.optional(v.string()),\n access: v.union(v.literal('public'), v.literal('team'), v.literal('admin')),\n tags: v.array(v.string()),\n status: v.union(\n v.literal('draft'),\n v.literal('published'),\n v.literal('archived')\n ),\n createdAt: v.number(),\n updatedAt: v.number(),\n wordCount: v.number(),\n readingTime: v.number(),\n viewCount: v.number(),\n })\n .index('by_sectionId', ['sectionId'])\n .index('by_slug', ['slug'])\n .index('by_status', ['status'])\n .index('by_access', ['access']),\n\n doc_search_index: defineTable({\n pageId: v.id('doc_pages'),\n sectionId: v.id('doc_sections'),\n tokens: v.array(v.string()),\n updatedAt: v.number(),\n }).index('by_pageId', ['pageId']),\n}\n\n/**\n * Canonical docs schema composed from the package tables.\n */\nconst docsSchema = defineSchema(docsTables)\n\n/**\n * Default Convex schema exported for consumers that mount the full docs tables.\n */\nexport default docsSchema\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|