@whiteand/bible-mcp 0.0.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/README.md ADDED
@@ -0,0 +1,6 @@
1
+ ![fallow health](.github/badges/health.svg)
2
+ ![coverage](.github/badges/coverage.svg)
3
+
4
+ # @whiteand/bible-mcp
5
+
6
+ TBD
@@ -0,0 +1 @@
1
+ export {};
package/dist/bin.js ADDED
@@ -0,0 +1,8 @@
1
+ import { t as Repository } from "./repository-BRxOoX1o.js";
2
+ //#region src/bin/index.ts
3
+ var repo = new Repository();
4
+ console.log("executable is run", repo);
5
+ //#endregion
6
+ export {};
7
+
8
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","names":[],"sources":["../src/bin/index.ts"],"sourcesContent":["import { Repository } from \"../lib/repository.ts\";\n\nconst repo = new Repository();\n\nconsole.log(\"executable is run\", repo);\n"],"mappings":";;AAEA,IAAM,OAAO,IAAI,WAAW;AAE5B,QAAQ,IAAI,qBAAqB,IAAI"}
@@ -0,0 +1 @@
1
+ export * from './repository.ts';
@@ -0,0 +1,3 @@
1
+ export declare class Repository {
2
+ constructor();
3
+ }
@@ -0,0 +1 @@
1
+ export {};
package/dist/lib.js ADDED
@@ -0,0 +1,2 @@
1
+ import { t as Repository } from "./repository-BRxOoX1o.js";
2
+ export { Repository };
@@ -0,0 +1,8 @@
1
+ //#region src/lib/repository.ts
2
+ var Repository = class {
3
+ constructor() {}
4
+ };
5
+ //#endregion
6
+ export { Repository as t };
7
+
8
+ //# sourceMappingURL=repository-BRxOoX1o.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-BRxOoX1o.js","names":[],"sources":["../src/lib/repository.ts"],"sourcesContent":["export class Repository {\n constructor() {}\n}\n"],"mappings":";AAAA,IAAa,aAAb,MAAwB;CACtB,cAAc,CAAC;AACjB"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@whiteand/bible-mcp",
3
+ "version": "0.0.0",
4
+ "type": "module",
5
+ "exports": {
6
+ "./lib": {
7
+ "import": "./dist/lib/index.js",
8
+ "types": "./dist/lib/index.d.ts"
9
+ },
10
+ "./bin": {
11
+ "import": "./dist/bin/index.js",
12
+ "types": "./dist/bin/index.d.ts"
13
+ }
14
+ },
15
+ "bin": "./dist/bin",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/whiteand/bible-mcp.git"
19
+ },
20
+ "scripts": {
21
+ "dev": "vite",
22
+ "build": "vite build",
23
+ "badge:fallow": "npx fallow health --format badge > .github/badges/health.svg",
24
+ "badge:coverage": "npm run test:coverage && node ./scripts/coverage-badge.mjs",
25
+ "badge": "npm run badge:fallow && npm run badge:coverage && git add .github/badges && git commit -m 'chore: update badges'",
26
+ "preview": "vite preview",
27
+ "prepublish": "npm run typecheck && npm run test && npm run build",
28
+ "typecheck": "tsc --noEmit",
29
+ "test": "vitest run",
30
+ "test:coverage": "vitest run --coverage"
31
+ },
32
+ "devDependencies": {
33
+ "@types/better-sqlite3": "^9.6.0",
34
+ "@types/node": "^26",
35
+ "@vitest/coverage-v8": "5.0.3",
36
+ "typescript": "6",
37
+ "vite": "^8.3.1",
38
+ "vite-plugin-dts": "^5.1.1",
39
+ "vitest": "^5.0.3"
40
+ },
41
+ "dependencies": {
42
+ "@whiteand/mybible": "^0.0.7"
43
+ },
44
+ "optionalDependencies": {
45
+ "fallow": "^3.30.0"
46
+ }
47
+ }
@@ -0,0 +1,75 @@
1
+ import { readFileSync, writeFileSync } from "node:fs";
2
+
3
+ const summary = JSON.parse(
4
+ readFileSync("coverage/coverage-summary.json", "utf8"),
5
+ );
6
+ const pct = summary.total?.lines?.pct;
7
+ if (typeof pct !== "number") {
8
+ throw new Error("coverage/coverage-summary.json has no total.lines.pct");
9
+ }
10
+
11
+ const value = `${Math.round(pct)}%`;
12
+ const color =
13
+ pct >= 90 ? "#4c1" : pct >= 80 ? "#97ca00" : pct >= 70 ? "#dfb317" : pct >= 60 ? "#fe7d37" : "#e05d44";
14
+
15
+ const label = "coverage";
16
+ const labelWidth = textWidth(label) + 10;
17
+ const valueWidth = textWidth(value) + 10;
18
+ const width = labelWidth + valueWidth;
19
+ const labelTextLength = (labelWidth - 10) * 10;
20
+ const valueTextLength = (valueWidth - 10) * 10;
21
+
22
+ const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="20" role="img" aria-label="${label}: ${value}">
23
+ <title>${label}: ${value}</title>
24
+ <linearGradient id="coverage-smooth" x2="0" y2="100%">
25
+ <stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
26
+ <stop offset="1" stop-opacity=".1"/>
27
+ </linearGradient>
28
+ <clipPath id="coverage-round">
29
+ <rect width="${width}" height="20" rx="3" fill="#fff"/>
30
+ </clipPath>
31
+ <g clip-path="url(#coverage-round)">
32
+ <rect width="${labelWidth}" height="20" fill="#555"/>
33
+ <rect x="${labelWidth}" width="${valueWidth}" height="20" fill="${color}"/>
34
+ <rect width="${width}" height="20" fill="url(#coverage-smooth)"/>
35
+ </g>
36
+ <g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110">
37
+ <text aria-hidden="true" x="${labelWidth * 5}" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="${labelTextLength}">${label}</text>
38
+ <text x="${labelWidth * 5}" y="140" transform="scale(.1)" fill="#fff" textLength="${labelTextLength}">${label}</text>
39
+ <text aria-hidden="true" x="${(labelWidth + valueWidth / 2) * 10}" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="${valueTextLength}">${value}</text>
40
+ <text x="${(labelWidth + valueWidth / 2) * 10}" y="140" transform="scale(.1)" fill="#fff" textLength="${valueTextLength}">${value}</text>
41
+ </g>
42
+ </svg>
43
+ `;
44
+
45
+ writeFileSync(".github/badges/coverage.svg", svg);
46
+
47
+ function textWidth(text) {
48
+ const widths = {
49
+ "%": 11,
50
+ " ": 4,
51
+ a: 7,
52
+ b: 7,
53
+ c: 6,
54
+ d: 7,
55
+ e: 7,
56
+ f: 4,
57
+ g: 7,
58
+ o: 7,
59
+ r: 4,
60
+ v: 6,
61
+ 0: 7,
62
+ 1: 6,
63
+ 2: 7,
64
+ 3: 7,
65
+ 4: 7,
66
+ 5: 7,
67
+ 6: 7,
68
+ 7: 7,
69
+ 8: 7,
70
+ 9: 7,
71
+ };
72
+ let width = 0;
73
+ for (const char of text) width += widths[char] ?? 7;
74
+ return width;
75
+ }
@@ -0,0 +1,5 @@
1
+ import { Repository } from "../lib/repository.ts";
2
+
3
+ const repo = new Repository();
4
+
5
+ console.log("executable is run", repo);
@@ -0,0 +1 @@
1
+ export * from "./repository.ts";
@@ -0,0 +1,8 @@
1
+ import { Repository } from "./repository.ts";
2
+ import { expect, describe } from "vitest";
3
+
4
+ describe("Repository", (it) => {
5
+ it("is a class", () => {
6
+ expect(Repository).toBeTypeOf("function");
7
+ });
8
+ });
@@ -0,0 +1,3 @@
1
+ export class Repository {
2
+ constructor() {}
3
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "compilerOptions": {
3
+ "module": "nodenext",
4
+ "moduleResolution": "nodenext",
5
+ "target": "esnext",
6
+ "lib": [
7
+ "esnext"
8
+ ],
9
+ "types": [
10
+ "node"
11
+ ],
12
+ "moduleDetection": "force",
13
+ "allowImportingTsExtensions": true,
14
+ "verbatimModuleSyntax": true,
15
+ "isolatedModules": true,
16
+ "noUncheckedSideEffectImports": true,
17
+ "resolveJsonModule": true,
18
+ "esModuleInterop": true,
19
+ "skipLibCheck": true,
20
+ "strict": true,
21
+ "noUncheckedIndexedAccess": true,
22
+ "exactOptionalPropertyTypes": true,
23
+ "noEmit": true
24
+ }
25
+ }