@shadow-shard-tools/docs-core 1.0.0 → 1.0.3

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 (41) hide show
  1. package/dist/data/fsDataProvider.d.ts +6 -0
  2. package/dist/data/fsDataProvider.d.ts.map +1 -0
  3. package/dist/data/fsDataProvider.js +20 -0
  4. package/dist/data/fsDataProvider.js.map +1 -0
  5. package/dist/data/httpDataProvider.d.ts +5 -0
  6. package/dist/data/httpDataProvider.d.ts.map +1 -0
  7. package/dist/data/httpDataProvider.js +9 -0
  8. package/dist/data/httpDataProvider.js.map +1 -0
  9. package/dist/utilities/dom/copyToClipboard.d.ts +3 -0
  10. package/dist/utilities/dom/copyToClipboard.d.ts.map +1 -0
  11. package/dist/utilities/dom/copyToClipboard.js +22 -0
  12. package/dist/utilities/dom/copyToClipboard.js.map +1 -0
  13. package/dist/utilities/dom/downloadTextFile.d.ts +3 -0
  14. package/dist/utilities/dom/downloadTextFile.d.ts.map +1 -0
  15. package/dist/utilities/dom/downloadTextFile.js +20 -0
  16. package/dist/utilities/dom/downloadTextFile.js.map +1 -0
  17. package/dist/utilities/index.d.ts +6 -3
  18. package/dist/utilities/index.d.ts.map +1 -1
  19. package/dist/utilities/index.js +7 -3
  20. package/dist/utilities/index.js.map +1 -1
  21. package/dist/utilities/path/resolveAgainstProjectRoot.d.ts +2 -0
  22. package/dist/utilities/path/resolveAgainstProjectRoot.d.ts.map +1 -0
  23. package/dist/utilities/path/resolveAgainstProjectRoot.js +8 -0
  24. package/dist/utilities/path/resolveAgainstProjectRoot.js.map +1 -0
  25. package/dist/utilities/path/resolveDataPath.d.ts +2 -0
  26. package/dist/utilities/path/resolveDataPath.d.ts.map +1 -0
  27. package/dist/utilities/path/resolveDataPath.js +13 -0
  28. package/dist/utilities/path/resolveDataPath.js.map +1 -0
  29. package/dist/utilities/string/normalizeDir.d.ts +2 -0
  30. package/dist/utilities/string/normalizeDir.d.ts.map +1 -0
  31. package/dist/utilities/string/normalizeDir.js +4 -0
  32. package/dist/utilities/string/normalizeDir.js.map +1 -0
  33. package/dist/utilities/string/processListItems.d.ts +3 -0
  34. package/dist/utilities/string/processListItems.d.ts.map +1 -0
  35. package/dist/utilities/string/processListItems.js +7 -0
  36. package/dist/utilities/string/processListItems.js.map +1 -0
  37. package/dist/utilities/system/logger.d.ts +8 -0
  38. package/dist/utilities/system/logger.d.ts.map +1 -0
  39. package/dist/utilities/system/logger.js +37 -0
  40. package/dist/utilities/system/logger.js.map +1 -0
  41. package/package.json +34 -12
@@ -0,0 +1,6 @@
1
+ import type { DataProvider } from "../index.js";
2
+ export declare class FileSystemProvider implements DataProvider {
3
+ readJson<T>(absPath: string): Promise<T>;
4
+ fileExists(absPath: string): Promise<boolean>;
5
+ }
6
+ //# sourceMappingURL=fsDataProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsDataProvider.d.ts","sourceRoot":"","sources":["../../src/data/fsDataProvider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,qBAAa,kBAAmB,YAAW,YAAY;IAC/C,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAKxC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CASpD"}
@@ -0,0 +1,20 @@
1
+ import { readFile, access } from "node:fs/promises";
2
+ import { constants } from "node:fs";
3
+ export class FileSystemProvider {
4
+ async readJson(absPath) {
5
+ const contents = await readFile(absPath, "utf8");
6
+ return JSON.parse(contents);
7
+ }
8
+ async fileExists(absPath) {
9
+ try {
10
+ await access(absPath, constants.F_OK);
11
+ return true;
12
+ }
13
+ catch (err) {
14
+ if (err.code === "ENOENT")
15
+ return false;
16
+ throw err;
17
+ }
18
+ }
19
+ }
20
+ //# sourceMappingURL=fsDataProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsDataProvider.js","sourceRoot":"","sources":["../../src/data/fsDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,MAAM,OAAO,kBAAkB;IAC7B,KAAK,CAAC,QAAQ,CAAI,OAAe;QAC/B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAM,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACnE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import type { DataProvider } from "../index.js";
2
+ export declare class httpDataProvider implements DataProvider {
3
+ readJson<T>(absUrl: string): Promise<T>;
4
+ }
5
+ //# sourceMappingURL=httpDataProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpDataProvider.d.ts","sourceRoot":"","sources":["../../src/data/httpDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,qBAAa,gBAAiB,YAAW,YAAY;IAC7C,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAQ9C"}
@@ -0,0 +1,9 @@
1
+ export class httpDataProvider {
2
+ async readJson(absUrl) {
3
+ const res = await fetch(absUrl);
4
+ if (!res.ok)
5
+ throw new Error(`Failed to fetch ${absUrl}: ${res.status} ${res.statusText}`);
6
+ return res.json();
7
+ }
8
+ }
9
+ //# sourceMappingURL=httpDataProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpDataProvider.js","sourceRoot":"","sources":["../../src/data/httpDataProvider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAC,QAAQ,CAAI,MAAc;QAC9B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAC7D,CAAC;QACJ,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export declare const copyToClipboard: (text: string) => Promise<boolean>;
2
+ export default copyToClipboard;
3
+ //# sourceMappingURL=copyToClipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyToClipboard.d.ts","sourceRoot":"","sources":["../../../src/utilities/dom/copyToClipboard.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,OAAO,CAkBnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,22 @@
1
+ export const copyToClipboard = async (text) => {
2
+ try {
3
+ await navigator.clipboard.writeText(text);
4
+ return true;
5
+ }
6
+ catch {
7
+ // Fallback for older browsers
8
+ const textarea = document.createElement("textarea");
9
+ textarea.value = text;
10
+ document.body.appendChild(textarea);
11
+ textarea.select();
12
+ try {
13
+ const success = document.execCommand("copy");
14
+ return success;
15
+ }
16
+ finally {
17
+ document.body.removeChild(textarea);
18
+ }
19
+ }
20
+ };
21
+ export default copyToClipboard;
22
+ //# sourceMappingURL=copyToClipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyToClipboard.js","sourceRoot":"","sources":["../../../src/utilities/dom/copyToClipboard.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;IACtE,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const downloadTextFile: (content: string, filename: string, mimeType?: string) => void;
2
+ export default downloadTextFile;
3
+ //# sourceMappingURL=downloadTextFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadTextFile.d.ts","sourceRoot":"","sources":["../../../src/utilities/dom/downloadTextFile.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,WAAU,MAAqB,KAC9B,IAkBF,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { sanitizeFilename } from "../string/sanitizeFilename.js";
2
+ export const downloadTextFile = (content, filename, mimeType = "text/plain") => {
3
+ try {
4
+ const blob = new Blob([content], { type: mimeType });
5
+ const url = URL.createObjectURL(blob);
6
+ const link = document.createElement("a");
7
+ link.href = url;
8
+ link.download = sanitizeFilename(filename);
9
+ link.style.display = "none";
10
+ document.body.appendChild(link);
11
+ link.click();
12
+ document.body.removeChild(link);
13
+ setTimeout(() => URL.revokeObjectURL(url), 100);
14
+ }
15
+ catch (error) {
16
+ console.error("Failed to download file:", error);
17
+ }
18
+ };
19
+ export default downloadTextFile;
20
+ //# sourceMappingURL=downloadTextFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadTextFile.js","sourceRoot":"","sources":["../../../src/utilities/dom/downloadTextFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAe,EACf,QAAgB,EAChB,WAAmB,YAAY,EACzB,EAAE;IACR,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAE5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEhC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -2,16 +2,19 @@ export { slugify } from "./string/slugify.js";
2
2
  export { sanitizeFilename } from "./string/sanitizeFilename.js";
3
3
  export { extractYouTubeId } from "./string/extractYouTubeId.js";
4
4
  export { withBasePath } from "./string/withBasePath.js";
5
- export { copyToClipboard } from "./file/copyToClipboard.js";
6
- export { downloadTextFile } from "./file/downloadTextFile.js";
5
+ export { processListItems } from "./string/processListItems.js";
7
6
  export { getFileExtension } from "./file/getFileExtension.js";
7
+ export { resolveDataPath } from "./path/resolveDataPath.js";
8
+ export { resolveAgainstProjectRoot } from "./path/resolveAgainstProjectRoot.js";
8
9
  export { createTimeout } from "./system/createTimeout.js";
9
10
  export { formatTime } from "./system/formatTime.js";
11
+ export { createLogger } from "./system/logger.js";
10
12
  export { isMobileDevice } from "./validation/isMobileDevice.js";
11
13
  export { isValidColor } from "./validation/isValidColor.js";
12
14
  export { isValidImageUrl } from "./validation/isValidImageUrl.js";
13
15
  export { isValidYouTubeId } from "./validation/isValidYouTubeId.js";
14
16
  export { validateScale } from "./validation/validateScale.js";
15
17
  export { getResponsiveWidth } from "./dom/getResponsiveWidth.js";
16
- export { processListItems } from "./dom/processListItems.js";
18
+ export { copyToClipboard } from "./dom/copyToClipboard.js";
19
+ export { downloadTextFile } from "./dom/downloadTextFile.js";
17
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGhF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -3,13 +3,16 @@ export { slugify } from "./string/slugify.js";
3
3
  export { sanitizeFilename } from "./string/sanitizeFilename.js";
4
4
  export { extractYouTubeId } from "./string/extractYouTubeId.js";
5
5
  export { withBasePath } from "./string/withBasePath.js";
6
+ export { processListItems } from "./string/processListItems.js";
6
7
  // file
7
- export { copyToClipboard } from "./file/copyToClipboard.js";
8
- export { downloadTextFile } from "./file/downloadTextFile.js";
9
8
  export { getFileExtension } from "./file/getFileExtension.js";
9
+ //path
10
+ export { resolveDataPath } from "./path/resolveDataPath.js";
11
+ export { resolveAgainstProjectRoot } from "./path/resolveAgainstProjectRoot.js";
10
12
  // system
11
13
  export { createTimeout } from "./system/createTimeout.js";
12
14
  export { formatTime } from "./system/formatTime.js";
15
+ export { createLogger } from "./system/logger.js";
13
16
  // validation
14
17
  export { isMobileDevice } from "./validation/isMobileDevice.js";
15
18
  export { isValidColor } from "./validation/isValidColor.js";
@@ -18,5 +21,6 @@ export { isValidYouTubeId } from "./validation/isValidYouTubeId.js";
18
21
  export { validateScale } from "./validation/validateScale.js";
19
22
  // dom
20
23
  export { getResponsiveWidth } from "./dom/getResponsiveWidth.js";
21
- export { processListItems } from "./dom/processListItems.js";
24
+ export { copyToClipboard } from "./dom/copyToClipboard.js";
25
+ export { downloadTextFile } from "./dom/downloadTextFile.js";
22
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO;AACP,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM;AACN,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO;AACP,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM;AACN,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM;AACN,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function resolveAgainstProjectRoot(candidate: string): string;
2
+ //# sourceMappingURL=resolveAgainstProjectRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveAgainstProjectRoot.d.ts","sourceRoot":"","sources":["../../../src/utilities/path/resolveAgainstProjectRoot.ts"],"names":[],"mappings":"AAGA,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAInE"}
@@ -0,0 +1,8 @@
1
+ import path from "node:path";
2
+ import appRoot from "app-root-path";
3
+ export function resolveAgainstProjectRoot(candidate) {
4
+ return path.isAbsolute(candidate)
5
+ ? candidate
6
+ : path.join(appRoot.path, candidate);
7
+ }
8
+ //# sourceMappingURL=resolveAgainstProjectRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveAgainstProjectRoot.js","sourceRoot":"","sources":["../../../src/utilities/path/resolveAgainstProjectRoot.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IACzD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function resolveDataPath(input?: string): string;
2
+ //# sourceMappingURL=resolveDataPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveDataPath.d.ts","sourceRoot":"","sources":["../../../src/utilities/path/resolveDataPath.ts"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAQtD"}
@@ -0,0 +1,13 @@
1
+ import path from "node:path";
2
+ import { normalizeDir } from "../string/normalizeDir.js";
3
+ import { resolveAgainstProjectRoot } from "./resolveAgainstProjectRoot.js";
4
+ export function resolveDataPath(input) {
5
+ const argv = process.argv.slice(2);
6
+ const i = argv.indexOf("--fsDataPath");
7
+ const fromCli = i !== -1 && argv[i + 1] ? argv[i + 1] : undefined;
8
+ const fromEnv = process.env.FS_DATA_PATH;
9
+ const candidate = input ?? fromCli ?? fromEnv ?? "./public/SST-Docs/data";
10
+ const abs = resolveAgainstProjectRoot(String(candidate));
11
+ return normalizeDir(path.resolve(abs));
12
+ }
13
+ //# sourceMappingURL=resolveDataPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveDataPath.js","sourceRoot":"","sources":["../../../src/utilities/path/resolveDataPath.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,IAAI,OAAO,IAAI,OAAO,IAAI,wBAAwB,CAAC;IAC1E,MAAM,GAAG,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function normalizeDir(p: string): string;
2
+ //# sourceMappingURL=normalizeDir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeDir.d.ts","sourceRoot":"","sources":["../../../src/utilities/string/normalizeDir.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C"}
@@ -0,0 +1,4 @@
1
+ export function normalizeDir(p) {
2
+ return p.replace(/\\/g, "/").replace(/\/+$/, "");
3
+ }
4
+ //# sourceMappingURL=normalizeDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeDir.js","sourceRoot":"","sources":["../../../src/utilities/string/normalizeDir.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const processListItems: (items?: string[]) => string[];
2
+ export default processListItems;
3
+ //# sourceMappingURL=processListItems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processListItems.d.ts","sourceRoot":"","sources":["../../../src/utilities/string/processListItems.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,EAAE,KAAG,MAAM,EAIzD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const processListItems = (items) => {
2
+ return (items ?? [])
3
+ .map((item) => item.trim())
4
+ .filter((item) => item.length > 0);
5
+ };
6
+ export default processListItems;
7
+ //# sourceMappingURL=processListItems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processListItems.js","sourceRoot":"","sources":["../../../src/utilities/string/processListItems.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAY,EAAE;IAC7D,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface Logger {
2
+ debug(message: string): void;
3
+ info(message: string): void;
4
+ warn(message: string): void;
5
+ error(message: string): void;
6
+ }
7
+ export declare const createLogger: (scope: string) => Logger;
8
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utilities/system/logger.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAKD,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,MAyB5C,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { stdout, stderr } from "node:process";
2
+ const levelWeights = {
3
+ debug: 10,
4
+ info: 20,
5
+ warn: 30,
6
+ error: 40,
7
+ };
8
+ function format(scope, level, message) {
9
+ return `[${scope}] ${level.toUpperCase()}: ${message}`;
10
+ }
11
+ const defaultLevel = process.env.HTML_GENERATOR_LOG_LEVEL ?? "info";
12
+ export const createLogger = (scope) => {
13
+ const minWeight = levelWeights[defaultLevel];
14
+ return {
15
+ debug(message) {
16
+ if (levelWeights.debug >= minWeight) {
17
+ stdout.write(`${format(scope, "debug", message)}\n`);
18
+ }
19
+ },
20
+ info(message) {
21
+ if (levelWeights.info >= minWeight) {
22
+ stdout.write(`${format(scope, "info", message)}\n`);
23
+ }
24
+ },
25
+ warn(message) {
26
+ if (levelWeights.warn >= minWeight) {
27
+ stderr.write(`${format(scope, "warn", message)}\n`);
28
+ }
29
+ },
30
+ error(message) {
31
+ if (levelWeights.error >= minWeight) {
32
+ stderr.write(`${format(scope, "error", message)}\n`);
33
+ }
34
+ },
35
+ };
36
+ };
37
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utilities/system/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,YAAY,GAA6B;IAC7C,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,SAAS,MAAM,CAAC,KAAa,EAAE,KAAe,EAAE,OAAe;IAC7D,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;AACzD,CAAC;AASD,MAAM,YAAY,GACf,OAAO,CAAC,GAAG,CAAC,wBAAiD,IAAI,MAAM,CAAC;AAE3E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE;IACpD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAE7C,OAAO;QACL,KAAK,CAAC,OAAe;YACnB,IAAI,YAAY,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAe;YAClB,IAAI,YAAY,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAe;YAClB,IAAI,YAAY,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,KAAK,CAAC,OAAe;YACnB,IAAI,YAAY,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shadow-shard-tools/docs-core",
3
- "version": "1.0.0",
3
+ "version": "1.0.3",
4
4
  "description": "Shared configs, types, and utilities for SST Docs modules and applications.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -86,7 +86,9 @@
86
86
  "shared",
87
87
  "types"
88
88
  ],
89
- "dependencies": {},
89
+ "dependencies": {
90
+ "app-root-path": "^3.1.0"
91
+ },
90
92
  "devDependencies": {
91
93
  "@types/node": "^20.12.7",
92
94
  "rimraf": "^5.0.5",
@@ -94,16 +96,36 @@
94
96
  },
95
97
  "typesVersions": {
96
98
  "*": {
97
- "configs": ["dist/configs/index.d.ts"],
98
- "configs/*": ["dist/configs/*.d.ts"],
99
- "data": ["dist/data/index.d.ts"],
100
- "data/*": ["dist/data/*.d.ts"],
101
- "themes": ["dist/themes/index.d.ts"],
102
- "themes/*": ["dist/themes/*.d.ts"],
103
- "types": ["dist/types/index.d.ts"],
104
- "types/*": ["dist/types/*.d.ts"],
105
- "utilities": ["dist/utilities/index.d.ts"],
106
- "utilities/*": ["dist/utilities/*.d.ts"]
99
+ "configs": [
100
+ "dist/configs/index.d.ts"
101
+ ],
102
+ "configs/*": [
103
+ "dist/configs/*.d.ts"
104
+ ],
105
+ "data": [
106
+ "dist/data/index.d.ts"
107
+ ],
108
+ "data/*": [
109
+ "dist/data/*.d.ts"
110
+ ],
111
+ "themes": [
112
+ "dist/themes/index.d.ts"
113
+ ],
114
+ "themes/*": [
115
+ "dist/themes/*.d.ts"
116
+ ],
117
+ "types": [
118
+ "dist/types/index.d.ts"
119
+ ],
120
+ "types/*": [
121
+ "dist/types/*.d.ts"
122
+ ],
123
+ "utilities": [
124
+ "dist/utilities/index.d.ts"
125
+ ],
126
+ "utilities/*": [
127
+ "dist/utilities/*.d.ts"
128
+ ]
107
129
  }
108
130
  }
109
131
  }