@shadow-shard-tools/docs-core 1.0.9 → 1.0.11

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.
@@ -1,3 +1,4 @@
1
1
  export { CODE_LANGUAGE_CONFIG, type SupportedLanguage, } from "./code-languages-config.js";
2
2
  export { stylesConfig } from "./styles-config.js";
3
+ export { loadSstDocsConfig, loadSstDocsConfigFrom, derivePublicDataPath, SstDocsConfigError, SST_DOCS_CONFIG_FILENAME, } from "./sstDocsConfig.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { CODE_LANGUAGE_CONFIG, } from "./code-languages-config.js";
2
2
  export { stylesConfig } from "./styles-config.js";
3
+ export { loadSstDocsConfig, loadSstDocsConfigFrom, derivePublicDataPath, SstDocsConfigError, SST_DOCS_CONFIG_FILENAME, } from "./sstDocsConfig.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ResolvedSstDocsConfig } from "../types/SstDocsConfig.js";
2
+ export declare const SST_DOCS_CONFIG_FILENAME = "sst-docs.config.json";
3
+ export declare class SstDocsConfigError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ export declare function loadSstDocsConfig(configPath?: string): Promise<ResolvedSstDocsConfig>;
7
+ export declare function derivePublicDataPath(fsDataPath: string): string;
8
+ export declare function loadSstDocsConfigFrom(configDir: string): Promise<ResolvedSstDocsConfig>;
9
+ //# sourceMappingURL=sstDocsConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sstDocsConfig.d.ts","sourceRoot":"","sources":["../../src/configs/sstDocsConfig.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AAKnC,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAID,wBAAsB,iBAAiB,CACrC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC,CAahC;AAqCD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA6B/D;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC,CAGhC"}
@@ -0,0 +1,151 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { resolve } from "node:path";
3
+ import appRoot from "app-root-path";
4
+ import { normalizeSystemPath } from "../utilities/string/normalizeSystemPath.js";
5
+ export const SST_DOCS_CONFIG_FILENAME = "sst-docs.config.json";
6
+ export class SstDocsConfigError extends Error {
7
+ constructor(message) {
8
+ super(message);
9
+ this.name = "SstDocsConfigError";
10
+ }
11
+ }
12
+ const APP_ROOT = appRoot.path;
13
+ export async function loadSstDocsConfig(configPath) {
14
+ const { path: finalPath, contents } = await readConfigFile(configPath);
15
+ let parsed;
16
+ try {
17
+ parsed = JSON.parse(contents);
18
+ }
19
+ catch (error) {
20
+ throw new SstDocsConfigError(`Failed to parse ${SST_DOCS_CONFIG_FILENAME}: ${error.message}`);
21
+ }
22
+ return normalizeConfig(parsed, finalPath);
23
+ }
24
+ function normalizeConfig(value, sourcePath) {
25
+ if (!value || typeof value !== "object") {
26
+ throw new SstDocsConfigError(`Invalid configuration in ${sourcePath}: expected an object`);
27
+ }
28
+ const raw = value;
29
+ if (typeof raw.FS_DATA_PATH !== "string") {
30
+ throw new SstDocsConfigError(`Missing or invalid FS_DATA_PATH in ${sourcePath}`);
31
+ }
32
+ const fsDataPath = normalizeSystemPath(raw.FS_DATA_PATH.trim());
33
+ if (fsDataPath.length === 0) {
34
+ throw new SstDocsConfigError(`FS_DATA_PATH cannot be empty in ${sourcePath}`);
35
+ }
36
+ return {
37
+ FS_DATA_PATH: fsDataPath,
38
+ PUBLIC_DATA_PATH: derivePublicDataPath(fsDataPath),
39
+ HEADER_BRANDING: normalizeHeaderBranding(raw.HEADER_BRANDING, sourcePath),
40
+ HTML_GENERATOR_SETTINGS: normalizeHtmlGeneratorSettings(raw.HTML_GENERATOR_SETTINGS, sourcePath),
41
+ };
42
+ }
43
+ export function derivePublicDataPath(fsDataPath) {
44
+ const normalized = normalizeSystemPath(fsDataPath.trim());
45
+ let candidate = normalized;
46
+ // Strip leading relative markers like "./"
47
+ candidate = candidate.replace(/^\.\/*/, "/");
48
+ // Try to locate the /public segment and drop everything up to it.
49
+ const publicSegmentIndex = candidate.indexOf("/public");
50
+ if (publicSegmentIndex !== -1) {
51
+ candidate = candidate.slice(publicSegmentIndex + "/public".length);
52
+ }
53
+ else if (candidate.startsWith("public/")) {
54
+ candidate = candidate.slice("public".length);
55
+ }
56
+ if (candidate.length === 0 || candidate === "/") {
57
+ return "/";
58
+ }
59
+ if (!candidate.startsWith("/")) {
60
+ candidate = `/${candidate}`;
61
+ }
62
+ if (!candidate.endsWith("/")) {
63
+ candidate = `${candidate}/`;
64
+ }
65
+ return candidate;
66
+ }
67
+ export async function loadSstDocsConfigFrom(configDir) {
68
+ const fullPath = resolve(configDir, SST_DOCS_CONFIG_FILENAME);
69
+ return loadSstDocsConfig(fullPath);
70
+ }
71
+ async function readConfigFile(configPath) {
72
+ const searchPaths = [];
73
+ if (configPath) {
74
+ const explicit = resolve(APP_ROOT, configPath);
75
+ searchPaths.push(explicit);
76
+ if (!explicit.endsWith(".json")) {
77
+ searchPaths.push(resolve(explicit, SST_DOCS_CONFIG_FILENAME));
78
+ }
79
+ }
80
+ else {
81
+ searchPaths.push(resolve(APP_ROOT, SST_DOCS_CONFIG_FILENAME));
82
+ }
83
+ const attempted = [];
84
+ for (const candidate of searchPaths) {
85
+ attempted.push(candidate);
86
+ try {
87
+ const contents = await readFile(candidate, "utf-8");
88
+ return { path: candidate, contents };
89
+ }
90
+ catch (error) {
91
+ const err = error;
92
+ if (err.code === "ENOENT" || err.code === "EISDIR") {
93
+ continue;
94
+ }
95
+ throw new SstDocsConfigError(`Failed to read ${SST_DOCS_CONFIG_FILENAME} at ${candidate}: ${err.message}`);
96
+ }
97
+ }
98
+ throw new SstDocsConfigError(`Unable to locate ${SST_DOCS_CONFIG_FILENAME}. Tried: ${attempted.join(", ")}`);
99
+ }
100
+ function normalizeHeaderBranding(value, sourcePath) {
101
+ if (value === undefined) {
102
+ return {};
103
+ }
104
+ if (!value || typeof value !== "object") {
105
+ throw new SstDocsConfigError(`HEADER_BRANDING must be an object in ${sourcePath}`);
106
+ }
107
+ const { logoSrc, logoAlt, logoText } = value;
108
+ return {
109
+ logoSrc: normalizeOptionalString(logoSrc, "logoSrc", sourcePath),
110
+ logoAlt: normalizeOptionalString(logoAlt, "logoAlt", sourcePath),
111
+ logoText: normalizeOptionalString(logoText, "logoText", sourcePath),
112
+ };
113
+ }
114
+ function normalizeOptionalString(value, key, sourcePath) {
115
+ if (value === undefined || value === null)
116
+ return undefined;
117
+ if (typeof value !== "string") {
118
+ throw new SstDocsConfigError(`HEADER_BRANDING.${key} must be a string in ${sourcePath}`);
119
+ }
120
+ const trimmed = value.trim();
121
+ return trimmed.length > 0 ? trimmed : undefined;
122
+ }
123
+ function normalizeHtmlGeneratorSettings(value, sourcePath) {
124
+ if (value === undefined) {
125
+ return undefined;
126
+ }
127
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
128
+ throw new SstDocsConfigError(`HTML_GENERATOR_SETTINGS must be an object in ${sourcePath}`);
129
+ }
130
+ const { OUTPUT_DIRECTORY, THEME, SEPARATE_BUILD_FOR_HTML_GENERATOR, } = value;
131
+ if (typeof OUTPUT_DIRECTORY !== "string") {
132
+ throw new SstDocsConfigError(`HTML_GENERATOR_SETTINGS.OUTPUT_DIRECTORY must be a string in ${sourcePath}`);
133
+ }
134
+ const outputDirectory = normalizeSystemPath(OUTPUT_DIRECTORY.trim());
135
+ if (outputDirectory.length === 0) {
136
+ throw new SstDocsConfigError(`HTML_GENERATOR_SETTINGS.OUTPUT_DIRECTORY cannot be empty in ${sourcePath}`);
137
+ }
138
+ if (!THEME || typeof THEME !== "object" || Array.isArray(THEME)) {
139
+ throw new SstDocsConfigError(`HTML_GENERATOR_SETTINGS.THEME must be an object in ${sourcePath}`);
140
+ }
141
+ if (SEPARATE_BUILD_FOR_HTML_GENERATOR !== undefined &&
142
+ typeof SEPARATE_BUILD_FOR_HTML_GENERATOR !== "boolean") {
143
+ throw new SstDocsConfigError(`HTML_GENERATOR_SETTINGS.SEPARATE_BUILD_FOR_HTML_GENERATOR must be a boolean in ${sourcePath}`);
144
+ }
145
+ return {
146
+ OUTPUT_DIRECTORY: outputDirectory,
147
+ THEME: THEME,
148
+ SEPARATE_BUILD_FOR_HTML_GENERATOR: SEPARATE_BUILD_FOR_HTML_GENERATOR ?? false,
149
+ };
150
+ }
151
+ //# sourceMappingURL=sstDocsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sstDocsConfig.js","sourceRoot":"","sources":["../../src/configs/sstDocsConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { StyleTheme } from "./StyleTheme.js";
2
+ export interface HtmlGeneratorSettings {
3
+ THEME: StyleTheme;
4
+ OUTPUT_DIRECTORY: string;
5
+ SEPARATE_BUILD_FOR_HTML_GENERATOR: boolean;
6
+ }
7
+ //# sourceMappingURL=HtmlGeneratorSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HtmlGeneratorSettings.d.ts","sourceRoot":"","sources":["../../src/types/HtmlGeneratorSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,UAAU,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iCAAiC,EAAE,OAAO,CAAC;CAC9C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=HtmlGeneratorSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HtmlGeneratorSettings.js","sourceRoot":"","sources":["../../src/types/HtmlGeneratorSettings.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { HeaderBranding } from "./HeaderBranding.js";
2
+ import type { HtmlGeneratorSettings } from "./HtmlGeneratorSettings.js";
3
+ export interface SstDocsConfigFile {
4
+ FS_DATA_PATH: string;
5
+ HEADER_BRANDING?: HeaderBranding;
6
+ HTML_GENERATOR_SETTINGS?: HtmlGeneratorSettings;
7
+ }
8
+ export interface ResolvedSstDocsConfig {
9
+ FS_DATA_PATH: string;
10
+ PUBLIC_DATA_PATH: string;
11
+ HEADER_BRANDING: HeaderBranding;
12
+ HTML_GENERATOR_SETTINGS?: HtmlGeneratorSettings;
13
+ }
14
+ //# sourceMappingURL=SstDocsConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SstDocsConfig.d.ts","sourceRoot":"","sources":["../../src/types/SstDocsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,uBAAuB,CAAC,EAAE,qBAAqB,CAAC;CACjD;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,cAAc,CAAC;IAChC,uBAAuB,CAAC,EAAE,qBAAqB,CAAC;CACjD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SstDocsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SstDocsConfig.js","sourceRoot":"","sources":["../../src/types/SstDocsConfig.ts"],"names":[],"mappings":""}
@@ -20,7 +20,9 @@ export type { TableData } from "./TableData.js";
20
20
  export type { TextData } from "./TextData.js";
21
21
  export type { TitleData } from "./TitleData.js";
22
22
  export type { YoutubeData } from "./YoutubeData.js";
23
+ export type { HeaderBranding } from "./HeaderBranding.js";
23
24
  export type { StyleTheme } from "./StyleTheme.js";
24
25
  export type { StylesConfig } from "./StylesConfig.js";
25
26
  export type { Logger } from "./Logger.js";
27
+ export type { SstDocsConfigFile, ResolvedSstDocsConfig, } from "./SstDocsConfig.js";
26
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shadow-shard-tools/docs-core",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "Shared configs, types, and utilities for SST Docs modules and applications.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -66,8 +66,10 @@
66
66
  "clean": "rimraf dist",
67
67
  "build": "tsc -p tsconfig.json",
68
68
  "test": "vitest run",
69
+ "test:watch": "vitest",
70
+ "test:coverage": "vitest run --coverage",
69
71
  "rebuild": "npm run clean && npm run build",
70
- "prepublishOnly": "npm run clean && npm run test && npm run build"
72
+ "prepublishOnly": "npm version patch && npm run clean && npm run test && npm run build"
71
73
  },
72
74
  "repository": {
73
75
  "type": "git",
@@ -92,6 +94,7 @@
92
94
  },
93
95
  "devDependencies": {
94
96
  "@types/node": "^20.12.7",
97
+ "@vitest/coverage-v8": "^4.0.7",
95
98
  "jsdom": "^27.1.0",
96
99
  "rimraf": "^5.0.5",
97
100
  "typescript": "^5.4.5",