@lownoise-studio/rendershield 0.3.0 → 1.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/CHANGELOG.md +58 -0
- package/CONTRIBUTING.md +41 -0
- package/README.md +209 -138
- package/SECURITY.md +25 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +43 -21
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.d.ts +2 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +10 -9
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +7 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/verify.d.ts +19 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +60 -64
- package/dist/commands/verify.js.map +1 -1
- package/dist/core/generateRobots.d.ts +3 -0
- package/dist/core/generateRobots.d.ts.map +1 -0
- package/dist/core/generateSitemap.d.ts +3 -0
- package/dist/core/generateSitemap.d.ts.map +1 -0
- package/dist/core/generateWorker.d.ts +3 -0
- package/dist/core/generateWorker.d.ts.map +1 -0
- package/dist/core/generateWorker.js +85 -75
- package/dist/core/generateWorker.js.map +1 -1
- package/dist/core/loadConfig.d.ts +3 -0
- package/dist/core/loadConfig.d.ts.map +1 -0
- package/dist/core/loadConfig.js +99 -40
- package/dist/core/loadConfig.js.map +1 -1
- package/dist/core/loadMarkdown.d.ts +3 -0
- package/dist/core/loadMarkdown.d.ts.map +1 -0
- package/dist/core/loadMarkdown.js +4 -3
- package/dist/core/loadMarkdown.js.map +1 -1
- package/dist/core/renderHtml.d.ts +3 -0
- package/dist/core/renderHtml.d.ts.map +1 -0
- package/dist/core/renderHtml.js +30 -11
- package/dist/core/renderHtml.js.map +1 -1
- package/dist/core/validateOutput.d.ts +28 -0
- package/dist/core/validateOutput.d.ts.map +1 -0
- package/dist/core/validateOutput.js +9 -3
- package/dist/core/validateOutput.js.map +1 -1
- package/dist/errors.d.ts +14 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +24 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +53 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/docs/deploy-cloudflare.md +40 -14
- package/package.json +30 -4
- package/src/cli.ts +86 -60
- package/src/commands/build.ts +199 -185
- package/src/commands/init.ts +7 -7
- package/src/commands/verify.ts +266 -233
- package/src/core/generateWorker.ts +97 -87
- package/src/core/loadConfig.ts +261 -142
- package/src/core/loadMarkdown.ts +11 -5
- package/src/core/renderHtml.ts +41 -13
- package/src/core/validateOutput.ts +335 -325
- package/src/errors.ts +48 -0
- package/src/index.ts +40 -0
- package/src/types.ts +4 -1
package/src/errors.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable error codes for programmatic consumers and CI integrations.
|
|
3
|
+
*/
|
|
4
|
+
export type RenderShieldErrorCode =
|
|
5
|
+
| "CONFIG_MISSING"
|
|
6
|
+
| "CONFIG_INVALID"
|
|
7
|
+
| "OUTPUT_PATH_UNSAFE"
|
|
8
|
+
| "CONTENT_INVALID"
|
|
9
|
+
| "BUILD_FAILED"
|
|
10
|
+
| "VALIDATION_FAILED"
|
|
11
|
+
| "VERIFY_FAILED"
|
|
12
|
+
| "CLI_INVALID_ARGS";
|
|
13
|
+
|
|
14
|
+
export class RenderShieldError extends Error {
|
|
15
|
+
readonly code: RenderShieldErrorCode;
|
|
16
|
+
readonly details?: Record<string, unknown>;
|
|
17
|
+
|
|
18
|
+
constructor(
|
|
19
|
+
code: RenderShieldErrorCode,
|
|
20
|
+
message: string,
|
|
21
|
+
details?: Record<string, unknown>
|
|
22
|
+
) {
|
|
23
|
+
super(message);
|
|
24
|
+
this.name = "RenderShieldError";
|
|
25
|
+
this.code = code;
|
|
26
|
+
this.details = details;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function isRenderShieldError(err: unknown): err is RenderShieldError {
|
|
31
|
+
return err instanceof RenderShieldError;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function renderShieldError(
|
|
35
|
+
code: RenderShieldErrorCode,
|
|
36
|
+
message: string,
|
|
37
|
+
details?: Record<string, unknown>
|
|
38
|
+
): RenderShieldError {
|
|
39
|
+
return new RenderShieldError(code, message, details);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** Format an error for CLI output; includes code when available. */
|
|
43
|
+
export function formatCliError(err: unknown): string {
|
|
44
|
+
if (isRenderShieldError(err)) {
|
|
45
|
+
return `[${err.code}] ${err.message}`;
|
|
46
|
+
}
|
|
47
|
+
return err instanceof Error ? err.message : String(err);
|
|
48
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RenderShield programmatic API.
|
|
3
|
+
*
|
|
4
|
+
* CLI usage: `npx rendershield <command>`
|
|
5
|
+
* Library usage: import commands and core helpers from `@lownoise-studio/rendershield`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export { cmdInit } from "./commands/init.js";
|
|
9
|
+
export { cmdBuild } from "./commands/build.js";
|
|
10
|
+
export {
|
|
11
|
+
cmdVerify,
|
|
12
|
+
type VerifyProdOptions,
|
|
13
|
+
type VerifyLocalResult,
|
|
14
|
+
type VerifyProdResult,
|
|
15
|
+
type VerifyResult,
|
|
16
|
+
} from "./commands/verify.js";
|
|
17
|
+
|
|
18
|
+
export { loadConfig } from "./core/loadConfig.js";
|
|
19
|
+
export { loadAllMarkdownDocs } from "./core/loadMarkdown.js";
|
|
20
|
+
export { renderPageHtml } from "./core/renderHtml.js";
|
|
21
|
+
export {
|
|
22
|
+
validatePrerenderHtml,
|
|
23
|
+
checkPrerenderContract,
|
|
24
|
+
type ValidateParams,
|
|
25
|
+
type ContractCheckResult,
|
|
26
|
+
} from "./core/validateOutput.js";
|
|
27
|
+
export { generateSitemapXml } from "./core/generateSitemap.js";
|
|
28
|
+
export { generateRobotsTxt } from "./core/generateRobots.js";
|
|
29
|
+
export { generateWorkerJs } from "./core/generateWorker.js";
|
|
30
|
+
|
|
31
|
+
export type { RenderShieldConfig, MarkdownDoc, SchemaType } from "./types.js";
|
|
32
|
+
export { SCHEMA_TYPES } from "./types.js";
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
RenderShieldError,
|
|
36
|
+
isRenderShieldError,
|
|
37
|
+
renderShieldError,
|
|
38
|
+
formatCliError,
|
|
39
|
+
type RenderShieldErrorCode,
|
|
40
|
+
} from "./errors.js";
|
package/src/types.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
export const SCHEMA_TYPES = ["Article", "BlogPosting", "WebPage"] as const;
|
|
2
|
+
export type SchemaType = (typeof SCHEMA_TYPES)[number];
|
|
3
|
+
|
|
1
4
|
export type RenderShieldConfig = {
|
|
2
5
|
version: 1;
|
|
3
6
|
site: {
|
|
@@ -13,7 +16,7 @@ export type RenderShieldConfig = {
|
|
|
13
16
|
name: string; // blog
|
|
14
17
|
pattern: string; // blog/**/*.md
|
|
15
18
|
routeBase: string; // /blog
|
|
16
|
-
schemaType:
|
|
19
|
+
schemaType: SchemaType;
|
|
17
20
|
}>;
|
|
18
21
|
};
|
|
19
22
|
};
|