@clearproof/content 0.5.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 (57) hide show
  1. package/content/explainers/pilot-proof-public-signals.md +80 -0
  2. package/content/explainers/portable-evidence-review.md +103 -0
  3. package/content/explainers/usd-cents-without-a-price-feed.md +106 -0
  4. package/content/explainers/verify-independently.md +106 -0
  5. package/content/explainers/what-clearproof-does.md +92 -0
  6. package/content/explainers/who-verifies-what.md +86 -0
  7. package/content/recipes/deploy-contracts.md +45 -0
  8. package/content/recipes/full-walkthrough.md +84 -0
  9. package/content/recipes/generate-proof.md +43 -0
  10. package/content/recipes/update-sanctions.md +35 -0
  11. package/content/recipes/verify-onchain.md +41 -0
  12. package/content/recipes/verify-proof.md +36 -0
  13. package/content/signals.yaml +128 -0
  14. package/content/topics/api.md +61 -0
  15. package/content/topics/architecture.md +50 -0
  16. package/content/topics/circuits.md +66 -0
  17. package/content/topics/contracts.md +60 -0
  18. package/content/topics/gdpr.md +36 -0
  19. package/content/topics/quickstart.md +77 -0
  20. package/content/topics/sdk.md +56 -0
  21. package/content/topics/security.md +33 -0
  22. package/content/topics/troubleshooting.md +109 -0
  23. package/content/updates/2026-09-09-adoption-roadmap.md +27 -0
  24. package/content/updates/2026-09-12-full-walkthrough.md +31 -0
  25. package/content/updates/2026-09-12-npm-status.md +27 -0
  26. package/content/updates/2026-09-12-proof-boundaries.md +40 -0
  27. package/content/updates/2026-09-21-sanctions-schedule.md +43 -0
  28. package/content/updates/2026-09-25-pilot-transfer-v3.md +60 -0
  29. package/dist/explainers.d.ts +29 -0
  30. package/dist/explainers.d.ts.map +1 -0
  31. package/dist/explainers.js +71 -0
  32. package/dist/explainers.js.map +1 -0
  33. package/dist/index.d.ts +13 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +25 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/parser.d.ts +25 -0
  38. package/dist/parser.d.ts.map +1 -0
  39. package/dist/parser.js +97 -0
  40. package/dist/parser.js.map +1 -0
  41. package/dist/recipes.d.ts +28 -0
  42. package/dist/recipes.d.ts.map +1 -0
  43. package/dist/recipes.js +103 -0
  44. package/dist/recipes.js.map +1 -0
  45. package/dist/signals.d.ts +18 -0
  46. package/dist/signals.d.ts.map +1 -0
  47. package/dist/signals.js +34 -0
  48. package/dist/signals.js.map +1 -0
  49. package/dist/topics.d.ts +18 -0
  50. package/dist/topics.d.ts.map +1 -0
  51. package/dist/topics.js +41 -0
  52. package/dist/topics.js.map +1 -0
  53. package/dist/updates.d.ts +27 -0
  54. package/dist/updates.d.ts.map +1 -0
  55. package/dist/updates.js +69 -0
  56. package/dist/updates.js.map +1 -0
  57. package/package.json +42 -0
package/dist/index.js ADDED
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getExplainer = exports.listExplainers = exports.getUpdate = exports.listUpdates = exports.getSignal = exports.listSignals = exports.getRecipeSteps = exports.getRecipe = exports.listRecipes = exports.getTopic = exports.listTopics = exports.CONTENT_DIR = exports.listContentSlugs = exports.readContentFile = exports.parseFrontmatter = void 0;
4
+ var parser_js_1 = require("./parser.js");
5
+ Object.defineProperty(exports, "parseFrontmatter", { enumerable: true, get: function () { return parser_js_1.parseFrontmatter; } });
6
+ Object.defineProperty(exports, "readContentFile", { enumerable: true, get: function () { return parser_js_1.readContentFile; } });
7
+ Object.defineProperty(exports, "listContentSlugs", { enumerable: true, get: function () { return parser_js_1.listContentSlugs; } });
8
+ Object.defineProperty(exports, "CONTENT_DIR", { enumerable: true, get: function () { return parser_js_1.CONTENT_DIR; } });
9
+ var topics_js_1 = require("./topics.js");
10
+ Object.defineProperty(exports, "listTopics", { enumerable: true, get: function () { return topics_js_1.listTopics; } });
11
+ Object.defineProperty(exports, "getTopic", { enumerable: true, get: function () { return topics_js_1.getTopic; } });
12
+ var recipes_js_1 = require("./recipes.js");
13
+ Object.defineProperty(exports, "listRecipes", { enumerable: true, get: function () { return recipes_js_1.listRecipes; } });
14
+ Object.defineProperty(exports, "getRecipe", { enumerable: true, get: function () { return recipes_js_1.getRecipe; } });
15
+ Object.defineProperty(exports, "getRecipeSteps", { enumerable: true, get: function () { return recipes_js_1.getRecipeSteps; } });
16
+ var signals_js_1 = require("./signals.js");
17
+ Object.defineProperty(exports, "listSignals", { enumerable: true, get: function () { return signals_js_1.listSignals; } });
18
+ Object.defineProperty(exports, "getSignal", { enumerable: true, get: function () { return signals_js_1.getSignal; } });
19
+ var updates_js_1 = require("./updates.js");
20
+ Object.defineProperty(exports, "listUpdates", { enumerable: true, get: function () { return updates_js_1.listUpdates; } });
21
+ Object.defineProperty(exports, "getUpdate", { enumerable: true, get: function () { return updates_js_1.getUpdate; } });
22
+ var explainers_js_1 = require("./explainers.js");
23
+ Object.defineProperty(exports, "listExplainers", { enumerable: true, get: function () { return explainers_js_1.listExplainers; } });
24
+ Object.defineProperty(exports, "getExplainer", { enumerable: true, get: function () { return explainers_js_1.getExplainer; } });
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA+F;AAAtF,6GAAA,gBAAgB,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,wGAAA,WAAW,OAAA;AAGzE,yCAAmD;AAA1C,uGAAA,UAAU,OAAA;AAAE,qGAAA,QAAQ,OAAA;AAG7B,2CAAsE;AAA7D,yGAAA,WAAW,OAAA;AAAE,uGAAA,SAAS,OAAA;AAAE,4GAAA,cAAc,OAAA;AAG/C,2CAAsD;AAA7C,yGAAA,WAAW,OAAA;AAAE,uGAAA,SAAS,OAAA;AAG/B,2CAAsD;AAA7C,yGAAA,WAAW,OAAA;AAAE,uGAAA,SAAS,OAAA;AAG/B,iDAA+D;AAAtD,+GAAA,cAAc,OAAA;AAAE,6GAAA,YAAY,OAAA"}
@@ -0,0 +1,25 @@
1
+ /** Base directory for all content files, resolved relative to this file's compiled location. */
2
+ declare const CONTENT_DIR: string;
3
+ export interface Frontmatter {
4
+ [key: string]: unknown;
5
+ }
6
+ export interface ParsedFile {
7
+ frontmatter: Frontmatter;
8
+ body: string;
9
+ }
10
+ /**
11
+ * Parse a markdown file with YAML frontmatter delimited by `---`.
12
+ * Uses a simple regex split -- no external frontmatter library needed.
13
+ */
14
+ export declare function parseFrontmatter(raw: string): ParsedFile;
15
+ /**
16
+ * Read and parse a markdown file from the content directory.
17
+ */
18
+ export declare function readContentFile(relativePath: string): ParsedFile;
19
+ /**
20
+ * List all .md files in a subdirectory of the content directory.
21
+ * Returns filenames without extension (slugs).
22
+ */
23
+ export declare function listContentSlugs(subdir: string): string[];
24
+ export { CONTENT_DIR };
25
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,QAAA,MAAM,WAAW,QAAsC,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CA8DxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAIhE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAUzD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
package/dist/parser.js ADDED
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONTENT_DIR = void 0;
4
+ exports.parseFrontmatter = parseFrontmatter;
5
+ exports.readContentFile = readContentFile;
6
+ exports.listContentSlugs = listContentSlugs;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = require("node:path");
9
+ const node_fs_2 = require("node:fs");
10
+ /** Base directory for all content files, resolved relative to this file's compiled location. */
11
+ const CONTENT_DIR = (0, node_path_1.resolve)(__dirname, '..', 'content');
12
+ exports.CONTENT_DIR = CONTENT_DIR;
13
+ /**
14
+ * Parse a markdown file with YAML frontmatter delimited by `---`.
15
+ * Uses a simple regex split -- no external frontmatter library needed.
16
+ */
17
+ function parseFrontmatter(raw) {
18
+ const match = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
19
+ if (!match) {
20
+ return { frontmatter: {}, body: raw };
21
+ }
22
+ const yamlBlock = match[1];
23
+ const body = match[2].trim();
24
+ // Simple YAML key-value parser (handles strings, numbers, arrays)
25
+ const frontmatter = {};
26
+ let currentKey = null;
27
+ let currentArray = null;
28
+ for (const line of yamlBlock.split('\n')) {
29
+ const trimmed = line.trim();
30
+ // Array item continuation
31
+ if (trimmed.startsWith('- ') && currentKey && currentArray !== null) {
32
+ currentArray.push(trimmed.slice(2).trim());
33
+ continue;
34
+ }
35
+ // Flush any pending array
36
+ if (currentKey && currentArray !== null) {
37
+ frontmatter[currentKey] = currentArray;
38
+ currentArray = null;
39
+ currentKey = null;
40
+ }
41
+ // Key-value pair
42
+ const kvMatch = trimmed.match(/^([a-zA-Z0-9_-]+):\s*(.*)$/);
43
+ if (!kvMatch)
44
+ continue;
45
+ const key = kvMatch[1];
46
+ const value = kvMatch[2].trim();
47
+ if (value === '') {
48
+ // Start of an array or empty value -- look ahead
49
+ currentKey = key;
50
+ currentArray = [];
51
+ continue;
52
+ }
53
+ // Parse value types
54
+ if (value === 'true') {
55
+ frontmatter[key] = true;
56
+ }
57
+ else if (value === 'false') {
58
+ frontmatter[key] = false;
59
+ }
60
+ else if (/^\d+$/.test(value)) {
61
+ frontmatter[key] = parseInt(value, 10);
62
+ }
63
+ else {
64
+ frontmatter[key] = value;
65
+ }
66
+ }
67
+ // Flush trailing array
68
+ if (currentKey && currentArray !== null) {
69
+ frontmatter[currentKey] = currentArray;
70
+ }
71
+ return { frontmatter, body };
72
+ }
73
+ /**
74
+ * Read and parse a markdown file from the content directory.
75
+ */
76
+ function readContentFile(relativePath) {
77
+ const fullPath = (0, node_path_1.join)(CONTENT_DIR, relativePath);
78
+ const raw = (0, node_fs_1.readFileSync)(fullPath, 'utf-8');
79
+ return parseFrontmatter(raw);
80
+ }
81
+ /**
82
+ * List all .md files in a subdirectory of the content directory.
83
+ * Returns filenames without extension (slugs).
84
+ */
85
+ function listContentSlugs(subdir) {
86
+ const dir = (0, node_path_1.join)(CONTENT_DIR, subdir);
87
+ try {
88
+ return (0, node_fs_2.readdirSync)(dir)
89
+ .filter((f) => f.endsWith('.md'))
90
+ .map((f) => f.replace(/\.md$/, ''))
91
+ .sort();
92
+ }
93
+ catch {
94
+ return [];
95
+ }
96
+ }
97
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export interface RecipeMeta {
2
+ slug: string;
3
+ title: string;
4
+ prereqs: string[];
5
+ estimatedTime: string;
6
+ }
7
+ export interface Recipe extends RecipeMeta {
8
+ body: string;
9
+ steps: RecipeStep[];
10
+ }
11
+ export interface RecipeStep {
12
+ description: string;
13
+ command: string;
14
+ expected: string;
15
+ }
16
+ /**
17
+ * List all available recipes with metadata (no body or steps).
18
+ */
19
+ export declare function listRecipes(): RecipeMeta[];
20
+ /**
21
+ * Get a single recipe by slug, including body and parsed steps.
22
+ */
23
+ export declare function getRecipe(slug: string): Recipe | null;
24
+ /**
25
+ * Get just the executable steps for a recipe.
26
+ */
27
+ export declare function getRecipeSteps(slug: string): RecipeStep[];
28
+ //# sourceMappingURL=recipes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8DD;;GAEG;AACH,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAe1C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAGzD"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listRecipes = listRecipes;
4
+ exports.getRecipe = getRecipe;
5
+ exports.getRecipeSteps = getRecipeSteps;
6
+ const parser_js_1 = require("./parser.js");
7
+ /**
8
+ * Parse ```bash:run fenced code blocks and the "Expected:" line that follows each one.
9
+ * Returns structured steps with description, command, and expected output.
10
+ */
11
+ function parseSteps(body) {
12
+ const steps = [];
13
+ const lines = body.split('\n');
14
+ let i = 0;
15
+ while (i < lines.length) {
16
+ // Look for ```bash:run
17
+ if (lines[i].trim() === '```bash:run') {
18
+ // Walk backwards to find the description (last non-empty line before the fence)
19
+ let description = '';
20
+ for (let j = i - 1; j >= 0; j--) {
21
+ const trimmed = lines[j].trim();
22
+ if (trimmed !== '') {
23
+ // Strip markdown heading prefix
24
+ description = trimmed.replace(/^#+\s*/, '');
25
+ break;
26
+ }
27
+ }
28
+ // Collect the command (everything between the fences)
29
+ i++;
30
+ const commandLines = [];
31
+ while (i < lines.length && lines[i].trim() !== '```') {
32
+ commandLines.push(lines[i]);
33
+ i++;
34
+ }
35
+ // Skip closing fence
36
+ if (i < lines.length)
37
+ i++;
38
+ const command = commandLines.join('\n').trim();
39
+ // Look for "Expected:" line after the code block
40
+ let expected = '';
41
+ while (i < lines.length) {
42
+ const trimmed = lines[i].trim();
43
+ if (trimmed === '') {
44
+ i++;
45
+ continue;
46
+ }
47
+ if (trimmed.toLowerCase().startsWith('expected:')) {
48
+ expected = trimmed.replace(/^expected:\s*/i, '').trim();
49
+ i++;
50
+ }
51
+ break;
52
+ }
53
+ steps.push({ description, command, expected });
54
+ continue;
55
+ }
56
+ i++;
57
+ }
58
+ return steps;
59
+ }
60
+ /**
61
+ * List all available recipes with metadata (no body or steps).
62
+ */
63
+ function listRecipes() {
64
+ const slugs = (0, parser_js_1.listContentSlugs)('recipes');
65
+ const recipes = [];
66
+ for (const slug of slugs) {
67
+ const { frontmatter } = (0, parser_js_1.readContentFile)(`recipes/${slug}.md`);
68
+ recipes.push({
69
+ slug,
70
+ title: frontmatter['title'] ?? slug,
71
+ prereqs: frontmatter['prereqs'] ?? [],
72
+ estimatedTime: frontmatter['estimated-time'] ?? 'unknown',
73
+ });
74
+ }
75
+ return recipes;
76
+ }
77
+ /**
78
+ * Get a single recipe by slug, including body and parsed steps.
79
+ */
80
+ function getRecipe(slug) {
81
+ try {
82
+ const { frontmatter, body } = (0, parser_js_1.readContentFile)(`recipes/${slug}.md`);
83
+ return {
84
+ slug,
85
+ title: frontmatter['title'] ?? slug,
86
+ prereqs: frontmatter['prereqs'] ?? [],
87
+ estimatedTime: frontmatter['estimated-time'] ?? 'unknown',
88
+ body,
89
+ steps: parseSteps(body),
90
+ };
91
+ }
92
+ catch {
93
+ return null;
94
+ }
95
+ }
96
+ /**
97
+ * Get just the executable steps for a recipe.
98
+ */
99
+ function getRecipeSteps(slug) {
100
+ const recipe = getRecipe(slug);
101
+ return recipe?.steps ?? [];
102
+ }
103
+ //# sourceMappingURL=recipes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipes.js","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface Signal {
2
+ index: number;
3
+ name: string;
4
+ type: string;
5
+ description: string;
6
+ source: string;
7
+ onChainUsage: string;
8
+ isOutput: boolean;
9
+ }
10
+ /**
11
+ * List all 16 public circuit signals.
12
+ */
13
+ export declare function listSignals(): Signal[];
14
+ /**
15
+ * Get a single signal by name.
16
+ */
17
+ export declare function getSignal(name: string): Signal | null;
18
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAgBD;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrD"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.listSignals = listSignals;
7
+ exports.getSignal = getSignal;
8
+ const node_fs_1 = require("node:fs");
9
+ const node_path_1 = require("node:path");
10
+ const js_yaml_1 = __importDefault(require("js-yaml"));
11
+ const parser_js_1 = require("./parser.js");
12
+ /**
13
+ * Read and parse the signals.yaml file.
14
+ */
15
+ function loadSignals() {
16
+ const filePath = (0, node_path_1.resolve)(parser_js_1.CONTENT_DIR, 'signals.yaml');
17
+ const raw = (0, node_fs_1.readFileSync)(filePath, 'utf-8');
18
+ const data = js_yaml_1.default.load(raw);
19
+ return data.signals ?? [];
20
+ }
21
+ /**
22
+ * List all 16 public circuit signals.
23
+ */
24
+ function listSignals() {
25
+ return loadSignals();
26
+ }
27
+ /**
28
+ * Get a single signal by name.
29
+ */
30
+ function getSignal(name) {
31
+ const signals = loadSignals();
32
+ return signals.find((s) => s.name === name) ?? null;
33
+ }
34
+ //# sourceMappingURL=signals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":";;;;;AAgCA,kCAEC;AAKD,8BAGC;AA1CD,qCAAuC;AACvC,yCAAoC;AACpC,sDAA2B;AAC3B,2CAA0C;AAgB1C;;GAEG;AACH,SAAS,WAAW;IAClB,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,uBAAW,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,iBAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,CAAC;IAC3C,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW;IACzB,OAAO,WAAW,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;AACtD,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface TopicMeta {
2
+ slug: string;
3
+ title: string;
4
+ category: string;
5
+ order: number;
6
+ }
7
+ export interface Topic extends TopicMeta {
8
+ body: string;
9
+ }
10
+ /**
11
+ * List all available topics with metadata (no body).
12
+ */
13
+ export declare function listTopics(): TopicMeta[];
14
+ /**
15
+ * Get a single topic by slug, including the markdown body.
16
+ */
17
+ export declare function getTopic(slug: string): Topic | null;
18
+ //# sourceMappingURL=topics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topics.d.ts","sourceRoot":"","sources":["../src/topics.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAM,SAAQ,SAAS;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,SAAS,EAAE,CAexC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAanD"}
package/dist/topics.js ADDED
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listTopics = listTopics;
4
+ exports.getTopic = getTopic;
5
+ const parser_js_1 = require("./parser.js");
6
+ /**
7
+ * List all available topics with metadata (no body).
8
+ */
9
+ function listTopics() {
10
+ const slugs = (0, parser_js_1.listContentSlugs)('topics');
11
+ const topics = [];
12
+ for (const slug of slugs) {
13
+ const { frontmatter } = (0, parser_js_1.readContentFile)(`topics/${slug}.md`);
14
+ topics.push({
15
+ slug,
16
+ title: frontmatter['title'] ?? slug,
17
+ category: frontmatter['category'] ?? 'general',
18
+ order: frontmatter['order'] ?? 999,
19
+ });
20
+ }
21
+ return topics.sort((a, b) => a.order - b.order);
22
+ }
23
+ /**
24
+ * Get a single topic by slug, including the markdown body.
25
+ */
26
+ function getTopic(slug) {
27
+ try {
28
+ const { frontmatter, body } = (0, parser_js_1.readContentFile)(`topics/${slug}.md`);
29
+ return {
30
+ slug,
31
+ title: frontmatter['title'] ?? slug,
32
+ category: frontmatter['category'] ?? 'general',
33
+ order: frontmatter['order'] ?? 999,
34
+ body,
35
+ };
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ }
41
+ //# sourceMappingURL=topics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topics.js","sourceRoot":"","sources":["../src/topics.ts"],"names":[],"mappings":";;AAgBA,gCAeC;AAKD,4BAaC;AAjDD,2CAAgE;AAahE;;GAEG;AACH,SAAgB,UAAU;IACxB,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,2BAAe,EAAC,UAAU,IAAI,KAAK,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,KAAK,EAAG,WAAW,CAAC,OAAO,CAAY,IAAI,IAAI;YAC/C,QAAQ,EAAG,WAAW,CAAC,UAAU,CAAY,IAAI,SAAS;YAC1D,KAAK,EAAG,WAAW,CAAC,OAAO,CAAY,IAAI,GAAG;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAA,2BAAe,EAAC,UAAU,IAAI,KAAK,CAAC,CAAC;QACnE,OAAO;YACL,IAAI;YACJ,KAAK,EAAG,WAAW,CAAC,OAAO,CAAY,IAAI,IAAI;YAC/C,QAAQ,EAAG,WAAW,CAAC,UAAU,CAAY,IAAI,SAAS;YAC1D,KAAK,EAAG,WAAW,CAAC,OAAO,CAAY,IAAI,GAAG;YAC9C,IAAI;SACL,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { CONTENT_DIR } from './parser.js';
2
+ export interface UpdateMeta {
3
+ id: string;
4
+ slug: string;
5
+ title: string;
6
+ date: string;
7
+ /** UTC timestamp after which the update may be published. */
8
+ publishAfter: string;
9
+ /** Source revision the claims were validated against. */
10
+ sourceCommit: string;
11
+ claimRefs: string[];
12
+ status: 'draft' | 'validated' | 'approved' | 'published';
13
+ summary: string;
14
+ }
15
+ export interface Update extends UpdateMeta {
16
+ body: string;
17
+ }
18
+ /**
19
+ * List all updates with metadata (no body), sorted newest first by ISO date.
20
+ */
21
+ export declare function listUpdates(): UpdateMeta[];
22
+ /**
23
+ * Get a single update by slug, including the markdown body.
24
+ */
25
+ export declare function getUpdate(slug: string): Update | null;
26
+ export { CONTENT_DIR };
27
+ //# sourceMappingURL=updates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.d.ts","sourceRoot":"","sources":["../src/updates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC,IAAI,EAAE,MAAM,CAAC;CACd;AAuCD;;GAEG;AACH,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAS1C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQrD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONTENT_DIR = void 0;
4
+ exports.listUpdates = listUpdates;
5
+ exports.getUpdate = getUpdate;
6
+ const parser_js_1 = require("./parser.js");
7
+ Object.defineProperty(exports, "CONTENT_DIR", { enumerable: true, get: function () { return parser_js_1.CONTENT_DIR; } });
8
+ const UPDATE_FIELDS = [
9
+ 'id',
10
+ 'title',
11
+ 'date',
12
+ 'publishAfter',
13
+ 'sourceCommit',
14
+ 'status',
15
+ 'summary',
16
+ ];
17
+ function requiredStringFields(frontmatter) {
18
+ return UPDATE_FIELDS.filter((field) => typeof frontmatter[field] !== 'string' || frontmatter[field] === '');
19
+ }
20
+ function normalizeStatus(value) {
21
+ return ['draft', 'validated', 'approved', 'published'].includes(value)
22
+ ? value
23
+ : 'draft';
24
+ }
25
+ function toMeta(slug, frontmatter) {
26
+ const missing = requiredStringFields(frontmatter);
27
+ if (missing.length > 0)
28
+ return null;
29
+ const claimRefs = frontmatter['claimRefs'];
30
+ return {
31
+ id: frontmatter['id'],
32
+ slug,
33
+ title: frontmatter['title'],
34
+ date: frontmatter['date'],
35
+ publishAfter: frontmatter['publishAfter'],
36
+ sourceCommit: frontmatter['sourceCommit'],
37
+ claimRefs: Array.isArray(claimRefs) ? claimRefs.filter((ref) => typeof ref === 'string') : [],
38
+ status: normalizeStatus(frontmatter['status']),
39
+ summary: frontmatter['summary'],
40
+ };
41
+ }
42
+ /**
43
+ * List all updates with metadata (no body), sorted newest first by ISO date.
44
+ */
45
+ function listUpdates() {
46
+ const slugs = (0, parser_js_1.listContentSlugs)('updates');
47
+ const updates = [];
48
+ for (const slug of slugs) {
49
+ const { frontmatter } = (0, parser_js_1.readContentFile)(`updates/${slug}.md`);
50
+ const meta = toMeta(slug, frontmatter);
51
+ if (meta)
52
+ updates.push(meta);
53
+ }
54
+ return updates.sort((a, b) => (a.date < b.date ? 1 : a.date > b.date ? -1 : a.slug.localeCompare(b.slug)));
55
+ }
56
+ /**
57
+ * Get a single update by slug, including the markdown body.
58
+ */
59
+ function getUpdate(slug) {
60
+ try {
61
+ const { frontmatter, body } = (0, parser_js_1.readContentFile)(`updates/${slug}.md`);
62
+ const meta = toMeta(slug, frontmatter);
63
+ return meta ? { ...meta, body } : null;
64
+ }
65
+ catch {
66
+ return null;
67
+ }
68
+ }
69
+ //# sourceMappingURL=updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updates.js","sourceRoot":"","sources":["../src/updates.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@clearproof/content",
3
+ "version": "0.5.0",
4
+ "description": "Single source of truth for all clearproof developer-facing content",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "license": "Apache-2.0",
8
+ "files": [
9
+ "dist",
10
+ "content"
11
+ ],
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "https://github.com/repfigit/clearproof.git",
15
+ "directory": "packages/content"
16
+ },
17
+ "homepage": "https://github.com/repfigit/clearproof",
18
+ "keywords": [
19
+ "clearproof",
20
+ "content",
21
+ "documentation",
22
+ "zk",
23
+ "compliance"
24
+ ],
25
+ "engines": {
26
+ "node": ">=18"
27
+ },
28
+ "scripts": {
29
+ "build": "tsc",
30
+ "test": "vitest run",
31
+ "test:coverage": "vitest run --coverage --coverage.include=\"src/**/*.ts\" --coverage.reporter=text --coverage.reporter=json-summary --coverage.reporter=lcov --coverage.thresholds.lines=100 --coverage.thresholds.branches=100 --coverage.thresholds.functions=100 --coverage.thresholds.statements=100"
32
+ },
33
+ "dependencies": {
34
+ "js-yaml": "^4.1.0"
35
+ },
36
+ "devDependencies": {
37
+ "@types/js-yaml": "^4.0.9",
38
+ "@vitest/coverage-v8": "^4.1.11",
39
+ "typescript": "^5.4",
40
+ "vitest": "^4.1.5"
41
+ }
42
+ }