@powerhousedao/codegen 6.0.0-dev.35 → 6.0.0-dev.37

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 (40) hide show
  1. package/dist/src/codegen/__tests__/generate-doc-model.test.js +170 -164
  2. package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
  3. package/dist/src/codegen/__tests__/generate-processor.test.js +238 -55
  4. package/dist/src/codegen/__tests__/generate-processor.test.js.map +1 -1
  5. package/dist/src/codegen/__tests__/global-setup.d.ts +1 -1
  6. package/dist/src/codegen/__tests__/global-setup.d.ts.map +1 -1
  7. package/dist/src/codegen/__tests__/global-setup.js +3 -15
  8. package/dist/src/codegen/__tests__/global-setup.js.map +1 -1
  9. package/dist/src/codegen/generate.d.ts +9 -1
  10. package/dist/src/codegen/generate.d.ts.map +1 -1
  11. package/dist/src/codegen/generate.js +8 -9
  12. package/dist/src/codegen/generate.js.map +1 -1
  13. package/dist/src/file-builders/processors/analytics.d.ts.map +1 -1
  14. package/dist/src/file-builders/processors/analytics.js +2 -1
  15. package/dist/src/file-builders/processors/analytics.js.map +1 -1
  16. package/dist/src/file-builders/processors/processor.d.ts +2 -1
  17. package/dist/src/file-builders/processors/processor.d.ts.map +1 -1
  18. package/dist/src/file-builders/processors/processor.js +69 -94
  19. package/dist/src/file-builders/processors/processor.js.map +1 -1
  20. package/dist/src/file-builders/processors/types.d.ts +1 -1
  21. package/dist/src/file-builders/processors/types.d.ts.map +1 -1
  22. package/dist/src/templates/boilerplate/package.json.d.ts.map +1 -1
  23. package/dist/src/templates/boilerplate/package.json.js +8 -0
  24. package/dist/src/templates/boilerplate/package.json.js.map +1 -1
  25. package/dist/src/templates/processors/analytics/factory.d.ts +1 -0
  26. package/dist/src/templates/processors/analytics/factory.d.ts.map +1 -1
  27. package/dist/src/templates/processors/analytics/factory.js +1 -1
  28. package/dist/src/templates/processors/analytics/factory.js.map +1 -1
  29. package/dist/src/templates/processors/factory.d.ts.map +1 -1
  30. package/dist/src/templates/processors/factory.js +31 -4
  31. package/dist/src/templates/processors/factory.js.map +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/dist/vitest.config.d.ts.map +1 -1
  34. package/dist/vitest.config.js +2 -0
  35. package/dist/vitest.config.js.map +1 -1
  36. package/package.json +12 -9
  37. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts +0 -2
  38. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts.map +0 -1
  39. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +0 -159
  40. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAEA,wBAgBG"}
1
+ {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAEA,wBAkBG"}
@@ -8,6 +8,8 @@ export default defineConfig({
8
8
  exclude: [
9
9
  "src/codegen/__tests__/data/**/*",
10
10
  "src/codegen/__tests__/.test-output/**/*",
11
+ "src/codegen/__tests__/generate-doc-model.test.ts",
12
+ "src/codegen/__tests__/generate-processor.test.ts",
11
13
  ],
12
14
  fileParallelism: false,
13
15
  globalSetup: "./src/codegen/__tests__/global-setup.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,oCAAoC;YACpC,gCAAgC;SACjC;QACD,OAAO,EAAE;YACP,iCAAiC;YACjC,yCAAyC;SAC1C;QACD,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,yCAAyC;KACvD;IACD,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,SAAS,CAAC;KACpB;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,oCAAoC;YACpC,gCAAgC;SACjC;QACD,OAAO,EAAE;YACP,iCAAiC;YACjC,yCAAyC;YACzC,kDAAkD;YAClD,kDAAkD;SACnD;QACD,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,yCAAyC;KACvD;IACD,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,SAAS,CAAC;KACpB;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerhousedao/codegen",
3
- "version": "6.0.0-dev.35",
3
+ "version": "6.0.0-dev.37",
4
4
  "license": "AGPL-3.0-only",
5
5
  "private": false,
6
6
  "type": "module",
@@ -59,14 +59,15 @@
59
59
  "semver": "^7.7.3",
60
60
  "ts-morph": "^27.0.2",
61
61
  "zocker": "^3.0.0",
62
- "@powerhousedao/common": "6.0.0-dev.35",
63
- "@powerhousedao/config": "6.0.0-dev.35",
64
- "@powerhousedao/design-system": "6.0.0-dev.35",
65
- "@powerhousedao/reactor-browser": "6.0.0-dev.35",
66
- "document-model": "6.0.0-dev.35"
62
+ "@powerhousedao/common": "6.0.0-dev.37",
63
+ "@powerhousedao/config": "6.0.0-dev.37",
64
+ "@powerhousedao/design-system": "6.0.0-dev.37",
65
+ "@powerhousedao/reactor-browser": "6.0.0-dev.37",
66
+ "document-model": "6.0.0-dev.37"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@powerhousedao/analytics-engine-core": "^0.5.0",
70
+ "@types/bun": "^1.3.7",
70
71
  "@types/react": "^19.2.0",
71
72
  "@types/react-dom": "^19.2.0",
72
73
  "copyfiles": "^2.4.1",
@@ -76,8 +77,8 @@
76
77
  "react-dom": "^19.2.0",
77
78
  "vitest": "^3.2.4",
78
79
  "zod": "^4.3.5",
79
- "@powerhousedao/reactor": "6.0.0-dev.35",
80
- "document-drive": "6.0.0-dev.35"
80
+ "@powerhousedao/reactor": "6.0.0-dev.37",
81
+ "document-drive": "6.0.0-dev.37"
81
82
  },
82
83
  "scripts": {
83
84
  "tsc": "tsc",
@@ -88,7 +89,9 @@
88
89
  "publish:create-lib": "npm publish --cwd ./src/create-lib/",
89
90
  "start": "tsx src/cli.ts",
90
91
  "pretest": "pnpm build:misc",
91
- "test": "vitest --run",
92
+ "test:bun": "bun test --concurrent --timeout 1000000",
93
+ "test:vitest": "vitest --run",
94
+ "test": "pnpm test:bun generate-doc-model.test.ts generate-processor.test.ts && pnpm test:vitest",
92
95
  "test:keep": "KEEP_TEST_OUTPUT=true pnpm test",
93
96
  "test:hygen": "USE_TS_MORPH=false pnpm test",
94
97
  "test:keep:hygen": "USE_TS_MORPH=false KEEP_TEST_OUTPUT=true pnpm test"
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=generate-versioned-document-model.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-versioned-document-model.test.d.ts","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-versioned-document-model.test.ts"],"names":[],"mappings":""}
@@ -1,159 +0,0 @@
1
- import { paramCase } from "change-case";
2
- import { readdir, readFile } from "fs/promises";
3
- import path from "path";
4
- import { describe, expect, it } from "vitest";
5
- import { generateDocumentModel } from "../generate.js";
6
- import { loadDocumentModel } from "../utils.js";
7
- import { runGeneratedTests } from "./fixtures/run-generated-tests.js";
8
- import { compile } from "./fixtures/typecheck.js";
9
- import { copyAllFiles, purgeDirAfterTest, resetDirForTest } from "./utils.js";
10
- let testCount = 1;
11
- const parentOutDirName = "versioned-document-models";
12
- const testsDir = import.meta.dirname;
13
- const testOutputParentDir = path.join(testsDir, ".test-output", parentOutDirName);
14
- const testsDataDir = path.join(testsDir, "data", "versioned-document-models");
15
- function getDirInTestDataDir(dirName) {
16
- return path.join(testsDataDir, dirName);
17
- }
18
- function getTestOutDir(context) {
19
- const testDirName = `${testCount++}-${paramCase(context.task.name)}`;
20
- return path.join(testOutputParentDir, testDirName);
21
- }
22
- function getDocumentModelJsonFilePath(basePath, dirName) {
23
- return path.join(basePath, dirName, `${dirName}.json`);
24
- }
25
- async function loadDocumentModelsInDir(inDirName, testOutDir) {
26
- const documentModelsInDir = getDirInTestDataDir(inDirName);
27
- const documentModelsOutDir = path.join(testOutDir, "document-models");
28
- const documentModelDirs = (await readdir(documentModelsInDir, {
29
- withFileTypes: true,
30
- }))
31
- .filter((value) => value.isDirectory())
32
- .map((value) => value.name);
33
- const documentModelStates = await Promise.all(documentModelDirs.map(async (dirName) => await loadDocumentModel(getDocumentModelJsonFilePath(documentModelsInDir, dirName))));
34
- for (const documentModelState of documentModelStates) {
35
- await generateDocumentModel({
36
- documentModelState,
37
- dir: documentModelsOutDir,
38
- useTsMorph: true,
39
- useVersioning: true,
40
- specifiedPackageName: "test",
41
- });
42
- }
43
- }
44
- async function loadBaseProjectFromDir(dirName, testOutDir) {
45
- const projectDir = getDirInTestDataDir(dirName);
46
- await copyAllFiles(projectDir, testOutDir);
47
- }
48
- describe("versioned document models", () => {
49
- describe("spec version 1", () => {
50
- it("should generate new document models as v1", {
51
- timeout: 10000000,
52
- }, async (context) => {
53
- const testOutDir = getTestOutDir(context);
54
- await resetDirForTest(testOutDir);
55
- await loadBaseProjectFromDir("empty-project", testOutDir);
56
- await loadDocumentModelsInDir("spec-version-1", testOutDir);
57
- await compile(testOutDir);
58
- await runGeneratedTests(testOutDir);
59
- await purgeDirAfterTest(testOutDir);
60
- });
61
- it("should persist existing reducers, tests, utils, and custom files when generating for the same spec version", {
62
- timeout: 10000000,
63
- }, async (context) => {
64
- const testOutDir = getTestOutDir(context);
65
- await resetDirForTest(testOutDir);
66
- await loadBaseProjectFromDir("project-with-existing-document-models-at-spec-1", testOutDir);
67
- await loadDocumentModelsInDir("spec-version-1-with-more-operations", testOutDir);
68
- await compile(testOutDir);
69
- await runGeneratedTests(testOutDir);
70
- await purgeDirAfterTest(testOutDir);
71
- });
72
- });
73
- describe("spec version 2", () => {
74
- it("should handle generating document models as v2", {
75
- timeout: 10000000,
76
- }, async (context) => {
77
- const testOutDir = getTestOutDir(context);
78
- await resetDirForTest(testOutDir);
79
- await loadBaseProjectFromDir("empty-project", testOutDir);
80
- await loadDocumentModelsInDir("spec-version-2", testOutDir);
81
- await compile(testOutDir);
82
- await runGeneratedTests(testOutDir);
83
- await purgeDirAfterTest(testOutDir);
84
- });
85
- it("should persist existing reducers, tests, utils, and custom files when generating a new spec version", {
86
- timeout: 10000000,
87
- }, async (context) => {
88
- const testOutDir = getTestOutDir(context);
89
- await resetDirForTest(testOutDir);
90
- await loadBaseProjectFromDir("project-with-existing-document-models-at-spec-1", testOutDir);
91
- await loadDocumentModelsInDir("spec-version-2", testOutDir);
92
- await compile(testOutDir);
93
- await runGeneratedTests(testOutDir);
94
- await purgeDirAfterTest(testOutDir);
95
- });
96
- it("should throw a typescript error in upgrades when new state does not match old state", {
97
- timeout: 10000000,
98
- }, async (context) => {
99
- const testOutDir = getTestOutDir(context);
100
- await resetDirForTest(testOutDir);
101
- await loadBaseProjectFromDir("project-with-existing-document-models-at-spec-1", testOutDir);
102
- await loadDocumentModelsInDir("spec-version-2-with-state-changes", testOutDir);
103
- await expect(() => compile(testOutDir)).rejects.toThrow();
104
- await purgeDirAfterTest(testOutDir);
105
- });
106
- it("should set version field on generated DocumentModelModule", {
107
- timeout: 10000000,
108
- }, async (context) => {
109
- const testOutDir = getTestOutDir(context);
110
- await resetDirForTest(testOutDir);
111
- await loadBaseProjectFromDir("empty-project", testOutDir);
112
- await loadDocumentModelsInDir("spec-version-2", testOutDir);
113
- const v1ModulePath = path.join(testOutDir, "document-models", "test-doc", "v1", "module.ts");
114
- const v2ModulePath = path.join(testOutDir, "document-models", "test-doc", "v2", "module.ts");
115
- const v1ModuleContent = await readFile(v1ModulePath, "utf-8");
116
- const v2ModuleContent = await readFile(v2ModulePath, "utf-8");
117
- expect(v1ModuleContent).toContain("version: 1,");
118
- expect(v2ModuleContent).toContain("version: 2,");
119
- await compile(testOutDir);
120
- await runGeneratedTests(testOutDir);
121
- await purgeDirAfterTest(testOutDir);
122
- });
123
- });
124
- describe("spec version 3", () => {
125
- it("should handle generating document models as v3", {
126
- timeout: 10000000,
127
- }, async (context) => {
128
- const testOutDir = getTestOutDir(context);
129
- await resetDirForTest(testOutDir);
130
- await loadBaseProjectFromDir("empty-project", testOutDir);
131
- await loadDocumentModelsInDir("spec-version-3", testOutDir);
132
- await compile(testOutDir);
133
- await runGeneratedTests(testOutDir);
134
- await purgeDirAfterTest(testOutDir);
135
- });
136
- it("should persist existing reducers, tests, utils, and custom files when generating a new spec version", {
137
- timeout: 10000000,
138
- }, async (context) => {
139
- const testOutDir = getTestOutDir(context);
140
- await resetDirForTest(testOutDir);
141
- await loadBaseProjectFromDir("project-with-existing-document-models-at-spec-2", testOutDir);
142
- await loadDocumentModelsInDir("spec-version-3", testOutDir);
143
- await compile(testOutDir);
144
- await runGeneratedTests(testOutDir);
145
- await purgeDirAfterTest(testOutDir);
146
- });
147
- it("should throw a typescript error in upgrades when new state does not match old state", {
148
- timeout: 10000000,
149
- }, async (context) => {
150
- const testOutDir = getTestOutDir(context);
151
- await resetDirForTest(testOutDir);
152
- await loadBaseProjectFromDir("project-with-existing-document-models-at-spec-2", testOutDir);
153
- await loadDocumentModelsInDir("spec-version-3-with-state-changes", testOutDir);
154
- await expect(() => compile(testOutDir)).rejects.toThrow();
155
- await purgeDirAfterTest(testOutDir);
156
- });
157
- });
158
- });
159
- //# sourceMappingURL=generate-versioned-document-model.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-versioned-document-model.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-versioned-document-model.test.ts"],"names":[],"mappings":"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"}