@powerhousedao/codegen 6.0.0-dev.3 → 6.0.0-dev.30
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/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +3 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +1 -1
- package/dist/src/codegen/__tests__/generate-doc-model.test.js +1 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js +35 -10
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-editor.test.js +13 -9
- package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -1
- package/dist/src/codegen/generate.d.ts +10 -10
- package/dist/src/codegen/generate.d.ts.map +1 -1
- package/dist/src/codegen/generate.js +21 -23
- package/dist/src/codegen/generate.js.map +1 -1
- package/dist/src/create-lib/create-project.d.ts.map +1 -1
- package/dist/src/create-lib/create-project.js +10 -2
- package/dist/src/create-lib/create-project.js.map +1 -1
- package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts +2 -0
- package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts.map +1 -0
- package/dist/src/file-builders/boilerplate/ci-templates.test.js +114 -0
- package/dist/src/file-builders/boilerplate/ci-templates.test.js.map +1 -0
- package/dist/src/file-builders/boilerplate/package.json.js +1 -1
- package/dist/src/file-builders/boilerplate/package.json.js.map +1 -1
- package/dist/src/file-builders/clis/generate-cli-docs.d.ts +17 -0
- package/dist/src/file-builders/clis/generate-cli-docs.d.ts.map +1 -0
- package/dist/src/file-builders/clis/generate-cli-docs.js +36 -0
- package/dist/src/file-builders/clis/generate-cli-docs.js.map +1 -0
- package/dist/src/file-builders/index.d.ts +1 -0
- package/dist/src/file-builders/index.d.ts.map +1 -1
- package/dist/src/file-builders/index.js +1 -0
- package/dist/src/file-builders/index.js.map +1 -1
- package/dist/src/file-builders/types.d.ts +18 -0
- package/dist/src/file-builders/types.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/AGENTS.md.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/AGENTS.md.js +41 -0
- package/dist/src/templates/boilerplate/AGENTS.md.js.map +1 -1
- package/dist/src/templates/boilerplate/CLAUDE.md.d.ts +1 -1
- package/dist/src/templates/boilerplate/CLAUDE.md.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/CLAUDE.md.js +1 -407
- package/dist/src/templates/boilerplate/CLAUDE.md.js.map +1 -1
- package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts +2 -0
- package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/docker/Dockerfile.js +144 -0
- package/dist/src/templates/boilerplate/docker/Dockerfile.js.map +1 -0
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts +2 -0
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js +18 -0
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js.map +1 -0
- package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts +2 -0
- package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/docker/nginx.conf.js +79 -0
- package/dist/src/templates/boilerplate/docker/nginx.conf.js.map +1 -0
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts +2 -0
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js +19 -0
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js.map +1 -0
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts +2 -0
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js +376 -0
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js.map +1 -0
- package/dist/src/templates/boilerplate/package.json.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/package.json.js +0 -1
- package/dist/src/templates/boilerplate/package.json.js.map +1 -1
- package/dist/src/templates/boilerplate/powerhouse.config.json.js +2 -2
- package/dist/src/templates/boilerplate/powerhouse.config.json.js.map +1 -1
- package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts +8 -0
- package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts.map +1 -0
- package/dist/src/templates/cli-docs/docs-from-cli-help.js +86 -0
- package/dist/src/templates/cli-docs/docs-from-cli-help.js.map +1 -0
- package/dist/src/templates/document-editor/editor.d.ts.map +1 -1
- package/dist/src/templates/document-editor/editor.js +66 -59
- package/dist/src/templates/document-editor/editor.js.map +1 -1
- package/dist/src/templates/document-model/gen/modules/error.d.ts.map +1 -1
- package/dist/src/templates/document-model/gen/modules/error.js +8 -2
- package/dist/src/templates/document-model/gen/modules/error.js.map +1 -1
- package/dist/src/templates/drive-editor/editor.d.ts.map +1 -1
- package/dist/src/templates/drive-editor/editor.js +3 -1
- package/dist/src/templates/drive-editor/editor.js.map +1 -1
- package/dist/src/templates/index.d.ts +6 -0
- package/dist/src/templates/index.d.ts.map +1 -1
- package/dist/src/templates/index.js +6 -0
- package/dist/src/templates/index.js.map +1 -1
- package/dist/src/utils/constants.d.ts +0 -2
- package/dist/src/utils/constants.d.ts.map +1 -1
- package/dist/src/utils/constants.js +0 -18
- package/dist/src/utils/constants.js.map +1 -1
- package/dist/src/utils/format-with-prettier.d.ts.map +1 -1
- package/dist/src/utils/format-with-prettier.js +2 -2
- package/dist/src/utils/format-with-prettier.js.map +1 -1
- package/dist/src/utils/index.d.ts +0 -2
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +0 -2
- package/dist/src/utils/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -14
- package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts +0 -2
- package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts.map +0 -1
- package/dist/src/file-builders/boilerplate/package-json-versions.test.js +0 -34
- package/dist/src/file-builders/boilerplate/package-json-versions.test.js.map +0 -1
- package/dist/src/utils/dependencies.d.ts +0 -12
- package/dist/src/utils/dependencies.d.ts.map +0 -1
- package/dist/src/utils/dependencies.js +0 -34
- package/dist/src/utils/dependencies.js.map +0 -1
- package/dist/src/utils/spawn-async.d.ts +0 -5
- package/dist/src/utils/spawn-async.d.ts.map +0 -1
- package/dist/src/utils/spawn-async.js +0 -29
- package/dist/src/utils/spawn-async.js.map +0 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { connectEntrypointTemplate } from "../../templates/boilerplate/docker/connect-entrypoint.sh.js";
|
|
3
|
+
import { dockerfileTemplate } from "../../templates/boilerplate/docker/Dockerfile.js";
|
|
4
|
+
import { nginxConfTemplate } from "../../templates/boilerplate/docker/nginx.conf.js";
|
|
5
|
+
import { switchboardEntrypointTemplate } from "../../templates/boilerplate/docker/switchboard-entrypoint.sh.js";
|
|
6
|
+
import { syncAndPublishWorkflowTemplate } from "../../templates/boilerplate/github/sync-and-publish.yml.js";
|
|
7
|
+
describe("CI/CD Templates", () => {
|
|
8
|
+
describe("sync-and-publish.yml", () => {
|
|
9
|
+
test("should be a non-empty string", () => {
|
|
10
|
+
expect(typeof syncAndPublishWorkflowTemplate).toBe("string");
|
|
11
|
+
expect(syncAndPublishWorkflowTemplate.length).toBeGreaterThan(0);
|
|
12
|
+
});
|
|
13
|
+
test("should have correct workflow name", () => {
|
|
14
|
+
expect(syncAndPublishWorkflowTemplate).toContain("name: Sync and Publish");
|
|
15
|
+
});
|
|
16
|
+
test("should contain required jobs", () => {
|
|
17
|
+
expect(syncAndPublishWorkflowTemplate).toContain("prepare:");
|
|
18
|
+
expect(syncAndPublishWorkflowTemplate).toContain("update-and-publish:");
|
|
19
|
+
expect(syncAndPublishWorkflowTemplate).toContain("build-docker:");
|
|
20
|
+
expect(syncAndPublishWorkflowTemplate).toContain("summary:");
|
|
21
|
+
});
|
|
22
|
+
test("should have workflow_dispatch trigger with channel options", () => {
|
|
23
|
+
expect(syncAndPublishWorkflowTemplate).toContain("workflow_dispatch:");
|
|
24
|
+
expect(syncAndPublishWorkflowTemplate).toContain("- dev");
|
|
25
|
+
expect(syncAndPublishWorkflowTemplate).toContain("- staging");
|
|
26
|
+
expect(syncAndPublishWorkflowTemplate).toContain("- latest");
|
|
27
|
+
});
|
|
28
|
+
test("should have repository_dispatch trigger", () => {
|
|
29
|
+
expect(syncAndPublishWorkflowTemplate).toContain("repository_dispatch:");
|
|
30
|
+
expect(syncAndPublishWorkflowTemplate).toContain("powerhouse-release");
|
|
31
|
+
});
|
|
32
|
+
test("should configure Docker and GHCR registries", () => {
|
|
33
|
+
expect(syncAndPublishWorkflowTemplate).toContain("DOCKER_REGISTRY:");
|
|
34
|
+
expect(syncAndPublishWorkflowTemplate).toContain("GHCR_REGISTRY:");
|
|
35
|
+
expect(syncAndPublishWorkflowTemplate).toContain("cr.vetra.io");
|
|
36
|
+
expect(syncAndPublishWorkflowTemplate).toContain("ghcr.io");
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe("Dockerfile", () => {
|
|
40
|
+
test("should be a non-empty string", () => {
|
|
41
|
+
expect(typeof dockerfileTemplate).toBe("string");
|
|
42
|
+
expect(dockerfileTemplate.length).toBeGreaterThan(0);
|
|
43
|
+
});
|
|
44
|
+
test("should contain base stage", () => {
|
|
45
|
+
expect(dockerfileTemplate).toContain("FROM node:24-alpine AS base");
|
|
46
|
+
});
|
|
47
|
+
test("should contain connect-builder stage", () => {
|
|
48
|
+
expect(dockerfileTemplate).toContain("FROM base AS connect-builder");
|
|
49
|
+
});
|
|
50
|
+
test("should contain connect final stage", () => {
|
|
51
|
+
expect(dockerfileTemplate).toContain("FROM nginx:alpine AS connect");
|
|
52
|
+
});
|
|
53
|
+
test("should contain switchboard final stage", () => {
|
|
54
|
+
expect(dockerfileTemplate).toContain("FROM node:24-alpine AS switchboard");
|
|
55
|
+
});
|
|
56
|
+
test("should configure pnpm", () => {
|
|
57
|
+
expect(dockerfileTemplate).toContain("corepack enable");
|
|
58
|
+
expect(dockerfileTemplate).toContain("PNPM_HOME");
|
|
59
|
+
});
|
|
60
|
+
test("should install ph-cmd", () => {
|
|
61
|
+
expect(dockerfileTemplate).toContain("ph-cmd@$TAG");
|
|
62
|
+
});
|
|
63
|
+
test("should have health checks", () => {
|
|
64
|
+
expect(dockerfileTemplate).toContain("HEALTHCHECK");
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe("nginx.conf", () => {
|
|
68
|
+
test("should be a non-empty string", () => {
|
|
69
|
+
expect(typeof nginxConfTemplate).toBe("string");
|
|
70
|
+
expect(nginxConfTemplate.length).toBeGreaterThan(0);
|
|
71
|
+
});
|
|
72
|
+
test("should contain health check endpoint", () => {
|
|
73
|
+
expect(nginxConfTemplate).toContain("location /health");
|
|
74
|
+
});
|
|
75
|
+
test("should configure gzip compression", () => {
|
|
76
|
+
expect(nginxConfTemplate).toContain("gzip on");
|
|
77
|
+
});
|
|
78
|
+
test("should use PORT environment variable", () => {
|
|
79
|
+
expect(nginxConfTemplate).toContain("${PORT}");
|
|
80
|
+
});
|
|
81
|
+
test("should configure caching for assets", () => {
|
|
82
|
+
expect(nginxConfTemplate).toContain("Cache-Control");
|
|
83
|
+
expect(nginxConfTemplate).toContain("/assets/");
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe("connect-entrypoint.sh", () => {
|
|
87
|
+
test("should be a non-empty string", () => {
|
|
88
|
+
expect(typeof connectEntrypointTemplate).toBe("string");
|
|
89
|
+
expect(connectEntrypointTemplate.length).toBeGreaterThan(0);
|
|
90
|
+
});
|
|
91
|
+
test("should start with shebang", () => {
|
|
92
|
+
expect(connectEntrypointTemplate).toMatch(/^#!/);
|
|
93
|
+
});
|
|
94
|
+
test("should use envsubst for nginx config", () => {
|
|
95
|
+
expect(connectEntrypointTemplate).toContain("envsubst");
|
|
96
|
+
});
|
|
97
|
+
test("should start nginx", () => {
|
|
98
|
+
expect(connectEntrypointTemplate).toContain("nginx");
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe("switchboard-entrypoint.sh", () => {
|
|
102
|
+
test("should be a non-empty string", () => {
|
|
103
|
+
expect(typeof switchboardEntrypointTemplate).toBe("string");
|
|
104
|
+
expect(switchboardEntrypointTemplate.length).toBeGreaterThan(0);
|
|
105
|
+
});
|
|
106
|
+
test("should start with shebang", () => {
|
|
107
|
+
expect(switchboardEntrypointTemplate).toMatch(/^#!/);
|
|
108
|
+
});
|
|
109
|
+
test("should start switchboard", () => {
|
|
110
|
+
expect(switchboardEntrypointTemplate).toContain("ph switchboard");
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
//# sourceMappingURL=ci-templates.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-templates.test.js","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/ci-templates.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { packageJsonTemplate } from "@powerhousedao/codegen/templates";
|
|
2
|
-
import { makeVersionedDependencies, VERSIONED_DEPENDENCIES, VERSIONED_DEV_DEPENDENCIES, } from "@powerhousedao/
|
|
2
|
+
import { makeVersionedDependencies, VERSIONED_DEPENDENCIES, VERSIONED_DEV_DEPENDENCIES, } from "@powerhousedao/common/clis";
|
|
3
3
|
export async function buildBoilerplatePackageJson(args) {
|
|
4
4
|
const { name, tag, version } = args;
|
|
5
5
|
const versionedDependencies = await makeVersionedDependencies({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.js","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/package.json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,
|
|
1
|
+
{"version":3,"file":"package.json.js","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/package.json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAIjD;IACC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,qBAAqB,GAAG,MAAM,yBAAyB,CAAC;QAC5D,KAAK,EAAE,sBAAsB;QAC7B,GAAG;QACH,OAAO;KACR,CAAC,CAAC;IACH,MAAM,wBAAwB,GAAG,MAAM,yBAAyB,CAAC;QAC/D,KAAK,EAAE,0BAA0B;QACjC,GAAG;QACH,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,mBAAmB,CAClC,IAAI,EACJ,qBAAqB,EACrB,wBAAwB,CACzB,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CommandEntry, CommandHelpInfo } from "@powerhousedao/codegen";
|
|
2
|
+
export declare function getCommandHelpInfo<TEntry extends CommandEntry>(entry: TEntry): CommandHelpInfo;
|
|
3
|
+
export declare function getCommandsHelpInfo<TEntry extends CommandEntry>(entries: TEntry[]): CommandHelpInfo[];
|
|
4
|
+
export declare function makeCliDocsFromHelp<TEntry extends CommandEntry>(args: {
|
|
5
|
+
cliDescription: string;
|
|
6
|
+
docsTitle: string;
|
|
7
|
+
docsIntroduction: string;
|
|
8
|
+
entries: TEntry[];
|
|
9
|
+
}): string;
|
|
10
|
+
export declare function writeCliDocsMarkdownFile<TEntry extends CommandEntry>(args: {
|
|
11
|
+
filePath: string;
|
|
12
|
+
cliDescription: string;
|
|
13
|
+
docsTitle: string;
|
|
14
|
+
docsIntroduction: string;
|
|
15
|
+
entries: TEntry[];
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=generate-cli-docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-cli-docs.d.ts","sourceRoot":"","sources":["../../../../src/file-builders/clis/generate-cli-docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI5E,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,YAAY,EAC5D,KAAK,EAAE,MAAM,GACZ,eAAe,CASjB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,YAAY,EAC7D,OAAO,EAAE,MAAM,EAAE,qBAGlB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,YAAY,EAAE,IAAI,EAAE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,UAcA;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,SAAS,YAAY,EAC3B,IAAI,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,iBAOA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { docsFromCliHelpTemplate } from "@powerhousedao/codegen/templates";
|
|
2
|
+
import { writeFile } from "node:fs/promises";
|
|
3
|
+
import { stripVTControlCharacters } from "node:util";
|
|
4
|
+
export function getCommandHelpInfo(entry) {
|
|
5
|
+
const name = entry.name;
|
|
6
|
+
const description = entry.command.description ?? "";
|
|
7
|
+
const helpTopics = entry.command.helpTopics?.() ?? [];
|
|
8
|
+
return {
|
|
9
|
+
name,
|
|
10
|
+
description,
|
|
11
|
+
helpTopics,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function getCommandsHelpInfo(entries) {
|
|
15
|
+
return entries.map(getCommandHelpInfo);
|
|
16
|
+
}
|
|
17
|
+
export function makeCliDocsFromHelp(args) {
|
|
18
|
+
const { cliDescription, docsIntroduction, docsTitle, entries } = args;
|
|
19
|
+
const commandsHelpInfo = getCommandsHelpInfo(entries);
|
|
20
|
+
const template = docsFromCliHelpTemplate({
|
|
21
|
+
cliDescription,
|
|
22
|
+
docsIntroduction,
|
|
23
|
+
docsTitle,
|
|
24
|
+
commandsHelpInfo,
|
|
25
|
+
});
|
|
26
|
+
const templateWithAnsiEscapesRemoved = stripVTControlCharacters(template);
|
|
27
|
+
return templateWithAnsiEscapesRemoved;
|
|
28
|
+
}
|
|
29
|
+
export async function writeCliDocsMarkdownFile(args) {
|
|
30
|
+
const { filePath, ...restArgs } = args;
|
|
31
|
+
const markdownFileContent = makeCliDocsFromHelp(restArgs);
|
|
32
|
+
await writeFile(filePath, markdownFileContent, {
|
|
33
|
+
encoding: "utf-8",
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=generate-cli-docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-cli-docs.js","sourceRoot":"","sources":["../../../../src/file-builders/clis/generate-cli-docs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,MAAM,UAAU,kBAAkB,CAChC,KAAa;IAEb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC;IACtD,OAAO;QACL,IAAI;QACJ,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAiB;IAEjB,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAA8B,IAKhE;IACC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACtE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;QACvC,cAAc;QACd,gBAAgB;QAChB,SAAS;QACT,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,8BAA8B,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAE1E,OAAO,8BAA8B,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAE5C,IAMD;IACC,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAE1D,MAAM,SAAS,CAAC,QAAQ,EAAE,mBAAmB,EAAE;QAC7C,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/file-builders/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,mBAAmB,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/file-builders/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,mBAAmB,YAAY,CAAC;AAChC,cAAc,6BAA6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/file-builders/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/file-builders/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,6BAA6B,CAAC"}
|
|
@@ -63,4 +63,22 @@ export type DocumentModelFileMakerArgs = DocumentModelVariableNames & GenerateDo
|
|
|
63
63
|
reducersDirPath: string;
|
|
64
64
|
fileExtension: string;
|
|
65
65
|
};
|
|
66
|
+
export type CommandEntry = {
|
|
67
|
+
name: string;
|
|
68
|
+
command: {
|
|
69
|
+
description?: string;
|
|
70
|
+
helpTopics?: () => HelpTopic[];
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
export type HelpTopic = {
|
|
74
|
+
category: string;
|
|
75
|
+
usage: string;
|
|
76
|
+
description: string;
|
|
77
|
+
defaults: string[];
|
|
78
|
+
};
|
|
79
|
+
export type CommandHelpInfo = {
|
|
80
|
+
name: string;
|
|
81
|
+
description: string;
|
|
82
|
+
helpTopics: HelpTopic[];
|
|
83
|
+
};
|
|
66
84
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/file-builders/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6CAA6C,EAC7C,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,6BAA6B,EAAE,MAAM,CAAC;IACtC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,MAAM,MAAM,0BAA0B,GAAG,UAAU,CACjD,OAAO,6BAA6B,CACrC,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAAG,UAAU,CACjE,OAAO,6CAA6C,CACrD,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,0BAA0B,GAClE,0BAA0B,CAAC;AAE7B,MAAM,MAAM,qCAAqC,GAAG;IAClD,MAAM,EAAE,mBAAmB,CAAC;CAC7B,GAAG,2BAA2B,GAC7B,0CAA0C,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,2BAA2B,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,wBAAwB,CAAC;IAC7C,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,0BAA0B,GACjE,yBAAyB,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,2BAA2B,EAAE,MAAM,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC;IACpC,8BAA8B,EAAE,MAAM,CAAC;IACvC,uCAAuC,EAAE,MAAM,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/file-builders/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AGENTS.md.d.ts","sourceRoot":"","sources":["../../../../src/templates/boilerplate/AGENTS.md.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"AGENTS.md.d.ts","sourceRoot":"","sources":["../../../../src/templates/boilerplate/AGENTS.md.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,QA8btB,CAAC"}
|
|
@@ -264,6 +264,47 @@ throw new MissingIdError("message");
|
|
|
264
264
|
- **InvalidInputError**: Business logic violations
|
|
265
265
|
- **PermissionDeniedError**: Access control violations
|
|
266
266
|
|
|
267
|
+
#### Testing Reducer Errors
|
|
268
|
+
|
|
269
|
+
**CRITICAL**: When a reducer throws an error, the operation is **still added** to the document but with an \`.error\` property containing the error message as a string.
|
|
270
|
+
|
|
271
|
+
**DO NOT** use \`.toThrow()\` or \`expect(() => ...).toThrow()\` patterns when testing reducer errors.
|
|
272
|
+
|
|
273
|
+
##### How Errors Work in Operations
|
|
274
|
+
|
|
275
|
+
1. The reducer throws an error (e.g., \`throw new InvalidNameError("message")\`)
|
|
276
|
+
2. The operation is still recorded in \`document.operations.global\` (or \`.local\`)
|
|
277
|
+
3. The error message is stored in \`operation.error\` as a string
|
|
278
|
+
4. **The state is NOT mutated** - it remains unchanged from before the operation
|
|
279
|
+
|
|
280
|
+
##### Accessing the Correct Operation Index
|
|
281
|
+
|
|
282
|
+
**CRITICAL**: You must access the correct operation index. The index corresponds to how many operations were dispatched before it.
|
|
283
|
+
|
|
284
|
+
- If this is the **first** operation dispatched, access \`[0]\`
|
|
285
|
+
- If 3 operations were dispatched **before** the failing one, access \`[3]\`
|
|
286
|
+
|
|
287
|
+
##### Example
|
|
288
|
+
|
|
289
|
+
~~~typescript
|
|
290
|
+
it("should return error and not mutate state", () => {
|
|
291
|
+
const document = utils.createDocument();
|
|
292
|
+
const initialState = document.state.global.name;
|
|
293
|
+
|
|
294
|
+
const updatedDocument = reducer(document, setName({ name: "invalid" }));
|
|
295
|
+
|
|
296
|
+
// Access the correct operation index (0 = first operation)
|
|
297
|
+
expect(updatedDocument.operations.global[0].error).toBe(
|
|
298
|
+
"Name is not allowed",
|
|
299
|
+
);
|
|
300
|
+
// State remains unchanged
|
|
301
|
+
expect(updatedDocument.state.global.name).toBe(initialState);
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
// ❌ WRONG - Never use toThrow()
|
|
305
|
+
expect(() => reducer(document, setName({ name: "invalid" }))).toThrow();
|
|
306
|
+
~~~
|
|
307
|
+
|
|
267
308
|
## Document Model Structure
|
|
268
309
|
|
|
269
310
|
### Core Components
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AGENTS.md.js","sourceRoot":"","sources":["../../../../src/templates/boilerplate/AGENTS.md.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAA
|
|
1
|
+
{"version":3,"file":"AGENTS.md.js","sourceRoot":"","sources":["../../../../src/templates/boilerplate/AGENTS.md.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8b/B,CAAC,GAAG,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { agentsTemplate as claudeTemplate } from "./AGENTS.md.js";
|
|
2
2
|
//# sourceMappingURL=CLAUDE.md.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CLAUDE.md.d.ts","sourceRoot":"","sources":["../../../../src/templates/boilerplate/CLAUDE.md.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CLAUDE.md.d.ts","sourceRoot":"","sources":["../../../../src/templates/boilerplate/CLAUDE.md.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|