@powerhousedao/codegen 5.1.0-staging.0 → 5.2.0-staging.1

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 (134) hide show
  1. package/dist/src/codegen/__tests__/config.d.ts +1 -1
  2. package/dist/src/codegen/__tests__/config.d.ts.map +1 -1
  3. package/dist/src/codegen/__tests__/config.js +1 -1
  4. package/dist/src/codegen/__tests__/config.js.map +1 -1
  5. package/dist/src/codegen/__tests__/generate-doc-model.test.js +81 -81
  6. package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
  7. package/dist/src/codegen/__tests__/generate-drive-editor.test.js +5 -5
  8. package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -1
  9. package/dist/src/codegen/__tests__/generate-editor.test.js +4 -4
  10. package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -1
  11. package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -1
  12. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts +2 -0
  13. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts.map +1 -0
  14. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +142 -0
  15. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +1 -0
  16. package/dist/src/codegen/generate.d.ts +23 -7
  17. package/dist/src/codegen/generate.d.ts.map +1 -1
  18. package/dist/src/codegen/generate.js +105 -87
  19. package/dist/src/codegen/generate.js.map +1 -1
  20. package/dist/src/codegen/graphql.d.ts +20 -17
  21. package/dist/src/codegen/graphql.d.ts.map +1 -1
  22. package/dist/src/codegen/graphql.js +105 -78
  23. package/dist/src/codegen/graphql.js.map +1 -1
  24. package/dist/src/codegen/hygen.d.ts.map +1 -1
  25. package/dist/src/codegen/hygen.js +0 -1
  26. package/dist/src/codegen/hygen.js.map +1 -1
  27. package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.d.ts.map +1 -1
  28. package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.js +53 -44
  29. package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.js.map +1 -1
  30. package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.js +20 -23
  31. package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.js.map +1 -1
  32. package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.d.ts.map +1 -1
  33. package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.js +209 -21
  34. package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.js.map +1 -1
  35. package/dist/src/ts-morph-utils/file-builders/document-model/types.d.ts +21 -1
  36. package/dist/src/ts-morph-utils/file-builders/document-model/types.d.ts.map +1 -1
  37. package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.d.ts +31 -0
  38. package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.d.ts.map +1 -0
  39. package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.js +136 -0
  40. package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.js.map +1 -0
  41. package/dist/src/ts-morph-utils/file-builders/document-model.d.ts +2 -2
  42. package/dist/src/ts-morph-utils/file-builders/document-model.d.ts.map +1 -1
  43. package/dist/src/ts-morph-utils/file-builders/document-model.js +210 -28
  44. package/dist/src/ts-morph-utils/file-builders/document-model.js.map +1 -1
  45. package/dist/src/ts-morph-utils/file-builders/index-files.d.ts +2 -1
  46. package/dist/src/ts-morph-utils/file-builders/index-files.d.ts.map +1 -1
  47. package/dist/src/ts-morph-utils/file-builders/index-files.js +6 -2
  48. package/dist/src/ts-morph-utils/file-builders/index-files.js.map +1 -1
  49. package/dist/src/ts-morph-utils/file-builders/module-files.d.ts.map +1 -1
  50. package/dist/src/ts-morph-utils/file-builders/module-files.js +20 -8
  51. package/dist/src/ts-morph-utils/file-builders/module-files.js.map +1 -1
  52. package/dist/src/ts-morph-utils/name-builders/get-variable-names.d.ts +5 -23
  53. package/dist/src/ts-morph-utils/name-builders/get-variable-names.d.ts.map +1 -1
  54. package/dist/src/ts-morph-utils/name-builders/get-variable-names.js +26 -34
  55. package/dist/src/ts-morph-utils/name-builders/get-variable-names.js.map +1 -1
  56. package/dist/src/ts-morph-utils/name-builders/types.d.ts +6 -2
  57. package/dist/src/ts-morph-utils/name-builders/types.d.ts.map +1 -1
  58. package/dist/src/ts-morph-utils/syntax-getters.d.ts +1 -0
  59. package/dist/src/ts-morph-utils/syntax-getters.d.ts.map +1 -1
  60. package/dist/src/ts-morph-utils/syntax-getters.js +6 -0
  61. package/dist/src/ts-morph-utils/syntax-getters.js.map +1 -1
  62. package/dist/src/ts-morph-utils/templates/document-model/actions.d.ts +2 -2
  63. package/dist/src/ts-morph-utils/templates/document-model/actions.d.ts.map +1 -1
  64. package/dist/src/ts-morph-utils/templates/document-model/actions.js.map +1 -1
  65. package/dist/src/ts-morph-utils/templates/document-model/gen/actions.d.ts +2 -2
  66. package/dist/src/ts-morph-utils/templates/document-model/gen/actions.d.ts.map +1 -1
  67. package/dist/src/ts-morph-utils/templates/document-model/gen/actions.js.map +1 -1
  68. package/dist/src/ts-morph-utils/templates/document-model/gen/creators.d.ts +2 -2
  69. package/dist/src/ts-morph-utils/templates/document-model/gen/creators.d.ts.map +1 -1
  70. package/dist/src/ts-morph-utils/templates/document-model/gen/creators.js.map +1 -1
  71. package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.d.ts +2 -2
  72. package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.d.ts.map +1 -1
  73. package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.js.map +1 -1
  74. package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.d.ts +2 -2
  75. package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.d.ts.map +1 -1
  76. package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.js +2 -2
  77. package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.js.map +1 -1
  78. package/dist/src/ts-morph-utils/templates/document-model/gen/index.d.ts +2 -2
  79. package/dist/src/ts-morph-utils/templates/document-model/gen/index.d.ts.map +1 -1
  80. package/dist/src/ts-morph-utils/templates/document-model/gen/index.js.map +1 -1
  81. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.d.ts +2 -2
  82. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.d.ts.map +1 -1
  83. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.js.map +1 -1
  84. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.d.ts +2 -2
  85. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.d.ts.map +1 -1
  86. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.js.map +1 -1
  87. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.d.ts +2 -2
  88. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.d.ts.map +1 -1
  89. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.js.map +1 -1
  90. package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.d.ts +2 -2
  91. package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.d.ts.map +1 -1
  92. package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.js.map +1 -1
  93. package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.d.ts +2 -2
  94. package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.d.ts.map +1 -1
  95. package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.js +1 -1
  96. package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.js.map +1 -1
  97. package/dist/src/ts-morph-utils/templates/document-model/gen/types.d.ts +2 -2
  98. package/dist/src/ts-morph-utils/templates/document-model/gen/types.d.ts.map +1 -1
  99. package/dist/src/ts-morph-utils/templates/document-model/gen/types.js +14 -14
  100. package/dist/src/ts-morph-utils/templates/document-model/gen/types.js.map +1 -1
  101. package/dist/src/ts-morph-utils/templates/document-model/gen/utils.d.ts +2 -2
  102. package/dist/src/ts-morph-utils/templates/document-model/gen/utils.d.ts.map +1 -1
  103. package/dist/src/ts-morph-utils/templates/document-model/gen/utils.js +18 -18
  104. package/dist/src/ts-morph-utils/templates/document-model/gen/utils.js.map +1 -1
  105. package/dist/src/ts-morph-utils/templates/document-model/hooks.d.ts +2 -2
  106. package/dist/src/ts-morph-utils/templates/document-model/hooks.d.ts.map +1 -1
  107. package/dist/src/ts-morph-utils/templates/document-model/hooks.js +1 -1
  108. package/dist/src/ts-morph-utils/templates/document-model/hooks.js.map +1 -1
  109. package/dist/src/ts-morph-utils/templates/document-model/module.d.ts +2 -2
  110. package/dist/src/ts-morph-utils/templates/document-model/module.d.ts.map +1 -1
  111. package/dist/src/ts-morph-utils/templates/document-model/module.js +3 -3
  112. package/dist/src/ts-morph-utils/templates/document-model/module.js.map +1 -1
  113. package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.d.ts +2 -2
  114. package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.d.ts.map +1 -1
  115. package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.js +1 -1
  116. package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.js.map +1 -1
  117. package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.d.ts +5 -2
  118. package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.d.ts.map +1 -1
  119. package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.js +24 -4
  120. package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.js.map +1 -1
  121. package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.d.ts +7 -0
  122. package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.d.ts.map +1 -0
  123. package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.js +22 -0
  124. package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.js.map +1 -0
  125. package/dist/src/utils/mock.d.ts +2 -3
  126. package/dist/src/utils/mock.d.ts.map +1 -1
  127. package/dist/src/utils/mock.js +4 -4
  128. package/dist/src/utils/mock.js.map +1 -1
  129. package/dist/tsconfig.tsbuildinfo +1 -1
  130. package/package.json +18 -15
  131. package/dist/src/codegen/__tests__/generate-schemas.test.d.ts +0 -2
  132. package/dist/src/codegen/__tests__/generate-schemas.test.d.ts.map +0 -1
  133. package/dist/src/codegen/__tests__/generate-schemas.test.js +0 -143
  134. package/dist/src/codegen/__tests__/generate-schemas.test.js.map +0 -1
@@ -6,51 +6,48 @@ import { documentModelIndexTemplate } from "../../templates/document-model/index
6
6
  import { documentModelModuleFileTemplate } from "../../templates/document-model/module.js";
7
7
  import { documentModelUtilsTemplate } from "../../templates/document-model/utils.js";
8
8
  export function makeRootDirFiles(fileMakerArgs) {
9
- makeDocumentModelIndexFile(fileMakerArgs);
9
+ makeDocumentModelVersionIndexFile(fileMakerArgs);
10
10
  makeDocumentModelRootActionsFile(fileMakerArgs);
11
11
  makeDocumentModelModuleFile(fileMakerArgs);
12
12
  makeDocumentModelUtilsFile(fileMakerArgs);
13
13
  makeDocumentModelHooksFile(fileMakerArgs);
14
14
  }
15
- function makeDocumentModelIndexFile({ project, ...variableNames }) {
15
+ function makeDocumentModelVersionIndexFile(args) {
16
16
  const template = documentModelIndexTemplate;
17
- const { documentModelDirPath } = variableNames;
18
- const filePath = path.join(documentModelDirPath, "index.ts");
17
+ const { project, documentModelVersionDirPath } = args;
18
+ const filePath = path.join(documentModelVersionDirPath, "index.ts");
19
19
  const { sourceFile } = getOrCreateSourceFile(project, filePath);
20
20
  sourceFile.replaceWithText(template);
21
21
  formatSourceFileWithPrettier(sourceFile);
22
22
  }
23
- function makeDocumentModelUtilsFile({ project, ...variableNames }) {
24
- const template = documentModelUtilsTemplate(variableNames);
25
- const { documentModelDirPath } = variableNames;
26
- const filePath = path.join(documentModelDirPath, "utils.ts");
23
+ function makeDocumentModelUtilsFile(args) {
24
+ const template = documentModelUtilsTemplate(args);
25
+ const { project, documentModelVersionDirPath } = args;
26
+ const filePath = path.join(documentModelVersionDirPath, "utils.ts");
27
27
  const { sourceFile } = getOrCreateSourceFile(project, filePath);
28
28
  sourceFile.replaceWithText(template);
29
29
  formatSourceFileWithPrettier(sourceFile);
30
30
  }
31
- function makeDocumentModelRootActionsFile({ project, ...variableNames }) {
32
- const template = documentModelRootActionsFileTemplate(variableNames);
33
- const { documentModelDirPath } = variableNames;
34
- const filePath = path.join(documentModelDirPath, "actions.ts");
31
+ function makeDocumentModelRootActionsFile(args) {
32
+ const template = documentModelRootActionsFileTemplate(args);
33
+ const { project, documentModelVersionDirPath } = args;
34
+ const filePath = path.join(documentModelVersionDirPath, "actions.ts");
35
35
  const { sourceFile } = getOrCreateSourceFile(project, filePath);
36
36
  sourceFile.replaceWithText(template);
37
37
  formatSourceFileWithPrettier(sourceFile);
38
38
  }
39
- function makeDocumentModelHooksFile({ project, ...variableNames }) {
40
- const template = documentModelHooksFileTemplate(variableNames);
41
- const { documentModelDirPath } = variableNames;
42
- const filePath = path.join(documentModelDirPath, "hooks.ts");
39
+ function makeDocumentModelHooksFile(args) {
40
+ const template = documentModelHooksFileTemplate(args);
41
+ const { project, documentModelVersionDirPath } = args;
42
+ const filePath = path.join(documentModelVersionDirPath, "hooks.ts");
43
43
  const { sourceFile } = getOrCreateSourceFile(project, filePath);
44
44
  sourceFile.replaceWithText(template);
45
45
  formatSourceFileWithPrettier(sourceFile);
46
46
  }
47
- function makeDocumentModelModuleFile({ project, phStateName, pascalCaseDocumentType, documentModelDir, documentModelDirPath, }) {
48
- const template = documentModelModuleFileTemplate({
49
- phStateName,
50
- documentModelDir,
51
- pascalCaseDocumentType,
52
- });
53
- const moduleFilePath = path.join(documentModelDirPath, "module.ts");
47
+ function makeDocumentModelModuleFile(args) {
48
+ const { project, documentModelVersionDirPath } = args;
49
+ const template = documentModelModuleFileTemplate(args);
50
+ const moduleFilePath = path.join(documentModelVersionDirPath, "module.ts");
54
51
  const { sourceFile } = getOrCreateSourceFile(project, moduleFilePath);
55
52
  sourceFile.replaceWithText(template);
56
53
  formatSourceFileWithPrettier(sourceFile);
@@ -1 +1 @@
1
- {"version":3,"file":"root-dir.js","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/root-dir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"root-dir.js","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/root-dir.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"src-dir.d.ts","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/src-dir.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,wBAAgB,eAAe,CAAC,aAAa,EAAE,0BAA0B,QAIxE"}
1
+ {"version":3,"file":"src-dir.d.ts","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/src-dir.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,wBAAgB,eAAe,CAAC,aAAa,EAAE,0BAA0B,QAKxE"}
@@ -1,14 +1,18 @@
1
- import { paramCase } from "change-case";
1
+ import { ts } from "@tmpl/core";
2
+ import { camelCase, paramCase, pascalCase } from "change-case";
2
3
  import path from "path";
4
+ import { SyntaxKind, VariableDeclarationKind } from "ts-morph";
3
5
  import { formatSourceFileWithPrettier, getOrCreateSourceFile, } from "../../file-utils.js";
4
6
  import { getDocumentModelOperationsModuleVariableNames } from "../../name-builders/get-variable-names.js";
7
+ import { getObjectLiteral } from "../../syntax-getters.js";
5
8
  import { documentModelSrcIndexFileTemplate } from "../../templates/document-model/src/index.js";
6
9
  import { documentModelTestFileTemplate } from "../../templates/document-model/src/tests/document-model.test.js";
7
- import { documentModelOperationsModuleTestFileTemplate } from "../../templates/document-model/src/tests/module.test.js";
10
+ import { makeActionImportNames, makeTestCaseForAction, } from "../../templates/document-model/src/tests/module.test.js";
8
11
  import { documentModelSrcUtilsTemplate } from "../../templates/document-model/src/utils.js";
9
12
  export function makeSrcDirFiles(fileMakerArgs) {
10
13
  makeDocumentModelSrcIndexFile(fileMakerArgs);
11
14
  makeDocumentModelSrcUtilsFile(fileMakerArgs);
15
+ makeReducerOperationHandlersForModules(fileMakerArgs);
12
16
  makeSrcDirTestFiles(fileMakerArgs);
13
17
  }
14
18
  function makeSrcDirTestFiles(fileMakerArgs) {
@@ -18,19 +22,194 @@ function makeSrcDirTestFiles(fileMakerArgs) {
18
22
  makeOperationModuleTestFile({ ...fileMakerArgs, module });
19
23
  }
20
24
  }
21
- function makeOperationModuleTestFile({ project, module, ...variableNames }) {
22
- const moduleVariableNames = getDocumentModelOperationsModuleVariableNames(module);
25
+ function makeReducerOperationHandlersForModules(fileMakerArgs) {
26
+ const { modules } = fileMakerArgs;
27
+ for (const module of modules) {
28
+ makeReducerOperationHandlerForModule({
29
+ ...fileMakerArgs,
30
+ module,
31
+ });
32
+ }
33
+ }
34
+ function getPreviousVersionSourceFile(args) {
35
+ const { project, version, filePath } = args;
36
+ const previousVersion = version - 1;
37
+ if (previousVersion < 1)
38
+ return;
39
+ const previousVersionFilePath = filePath.replace(`/v${version}/`, `/v${previousVersion}/`);
40
+ const previousVersionFile = project.getSourceFile(previousVersionFilePath);
41
+ return previousVersionFile;
42
+ }
43
+ function makeReducerOperationHandlerForModule({ project, module, version, reducersDirPath, pascalCaseDocumentType, camelCaseDocumentType, versionedDocumentModelPackageImportPath, }) {
23
44
  const paramCaseModuleName = paramCase(module.name);
24
- const template = documentModelOperationsModuleTestFileTemplate({
25
- ...variableNames,
26
- ...moduleVariableNames,
45
+ const pascalCaseModuleName = pascalCase(module.name);
46
+ const filePath = path.join(reducersDirPath, `${paramCaseModuleName}.ts`);
47
+ const { alreadyExists, sourceFile } = getOrCreateSourceFile(project, filePath);
48
+ if (!alreadyExists) {
49
+ const previousVersionFile = getPreviousVersionSourceFile({
50
+ project,
51
+ version,
52
+ filePath,
53
+ });
54
+ if (previousVersionFile) {
55
+ sourceFile.replaceWithText(previousVersionFile.getText());
56
+ }
57
+ }
58
+ const operationsInterfaceTypeName = `${pascalCaseDocumentType}${pascalCaseModuleName}Operations`;
59
+ const operationsInterfaceVariableName = `${camelCaseDocumentType}${pascalCaseModuleName}Operations`;
60
+ const existingOperationsInterfaceTypeImport = sourceFile.getImportDeclaration((importDeclaration) => !!importDeclaration
61
+ .getNamedImports()
62
+ .find((importSpecifier) => importSpecifier.getName() === operationsInterfaceTypeName));
63
+ if (existingOperationsInterfaceTypeImport) {
64
+ existingOperationsInterfaceTypeImport.remove();
65
+ }
66
+ const operationsInterfaceTypeImport = sourceFile.addImportDeclaration({
67
+ namedImports: [operationsInterfaceTypeName],
68
+ moduleSpecifier: versionedDocumentModelPackageImportPath,
69
+ isTypeOnly: true,
27
70
  });
28
- const { testsDirPath } = variableNames;
71
+ const operationsInterfaceTypeProperties = operationsInterfaceTypeImport
72
+ .getNamedImports()
73
+ .find((value) => value.getName() === operationsInterfaceTypeName)
74
+ ?.getNameNode()
75
+ .getType()
76
+ .getProperties()
77
+ .map((symbol) => symbol.getName());
78
+ if (!operationsInterfaceTypeProperties) {
79
+ throw new Error("Failed to create operation handler object");
80
+ }
81
+ let operationsInterfaceVariableStatement = sourceFile.getVariableStatement(operationsInterfaceVariableName);
82
+ if (!operationsInterfaceVariableStatement) {
83
+ operationsInterfaceVariableStatement = sourceFile.addVariableStatement({
84
+ declarationKind: VariableDeclarationKind.Const,
85
+ isExported: true,
86
+ declarations: [
87
+ {
88
+ name: operationsInterfaceVariableName,
89
+ type: operationsInterfaceTypeName,
90
+ initializer: "{}",
91
+ },
92
+ ],
93
+ });
94
+ }
95
+ const operationsInterfaceObject = getObjectLiteral(operationsInterfaceVariableStatement);
96
+ if (!operationsInterfaceObject) {
97
+ throw new Error("Failed to build reducer object");
98
+ }
99
+ for (const name of operationsInterfaceTypeProperties) {
100
+ if (operationsInterfaceObject.getProperty(name))
101
+ continue;
102
+ operationsInterfaceObject.addMethod({
103
+ name,
104
+ parameters: [{ name: "state" }, { name: "action" }],
105
+ statements: [
106
+ `// TODO: implement ${name} reducer`,
107
+ ts `throw new Error("Reducer for '${name}' not implemented.")`.raw,
108
+ ],
109
+ });
110
+ }
111
+ formatSourceFileWithPrettier(sourceFile);
112
+ }
113
+ function makeOperationModuleTestFile(args) {
114
+ const { project, module, version, testsDirPath, documentModelPackageImportPath, versionedDocumentModelPackageImportPath, isPhDocumentOfTypeFunctionName, } = args;
115
+ const moduleVariableNames = getDocumentModelOperationsModuleVariableNames(module);
116
+ const { actions } = moduleVariableNames;
117
+ const paramCaseModuleName = paramCase(module.name);
118
+ const pascalCaseModuleName = pascalCase(module.name);
119
+ const moduleOperationsTypeName = `${pascalCaseModuleName}Operations`;
29
120
  const filePath = path.join(testsDirPath, `${paramCaseModuleName}.test.ts`);
30
121
  const { alreadyExists, sourceFile } = getOrCreateSourceFile(project, filePath);
31
- if (alreadyExists)
122
+ if (!alreadyExists) {
123
+ const previousVersionSourceFile = getPreviousVersionSourceFile({
124
+ project,
125
+ version,
126
+ filePath,
127
+ });
128
+ if (previousVersionSourceFile) {
129
+ sourceFile.replaceWithText(previousVersionSourceFile.getText());
130
+ }
131
+ else {
132
+ sourceFile.replaceWithText(ts `
133
+ import { generateMock } from "@powerhousedao/codegen";
134
+ import { describe, expect, it } from "vitest";
135
+
136
+ describe("${moduleOperationsTypeName}", () => {
137
+
138
+ });
139
+ `.raw);
140
+ }
141
+ }
142
+ const importNames = makeActionImportNames({
143
+ ...args,
144
+ ...moduleVariableNames,
145
+ });
146
+ const namedImports = importNames.map((name) => ({ name }));
147
+ let actionsImportDeclaration = sourceFile
148
+ .getImportDeclarations()
149
+ .filter((i) => !i.isTypeOnly())
150
+ .find((importDeclaration) => importDeclaration
151
+ .getModuleSpecifier()
152
+ .getText()
153
+ .includes(documentModelPackageImportPath));
154
+ if (!actionsImportDeclaration) {
155
+ actionsImportDeclaration = sourceFile.addImportDeclaration({
156
+ namedImports,
157
+ moduleSpecifier: versionedDocumentModelPackageImportPath,
158
+ });
159
+ }
160
+ else {
161
+ actionsImportDeclaration.setModuleSpecifier(versionedDocumentModelPackageImportPath);
162
+ const existingNamedImports = actionsImportDeclaration
163
+ .getNamedImports()
164
+ .map((value) => value.getName());
165
+ for (const name of importNames) {
166
+ if (!existingNamedImports.includes(name)) {
167
+ actionsImportDeclaration.addNamedImport(name);
168
+ }
169
+ }
170
+ }
171
+ const describeCall = sourceFile
172
+ .getDescendantsOfKind(SyntaxKind.CallExpression)
173
+ .find((call) => {
174
+ const expressionText = call.getExpression().getText();
175
+ const args = call.getArguments();
176
+ const firstArg = args[0];
177
+ return (expressionText === "describe" &&
178
+ pascalCase(firstArg.getText()).includes(moduleOperationsTypeName));
179
+ });
180
+ if (!describeCall) {
181
+ console.error(`Test file at path ${filePath} has no describe block for ${moduleOperationsTypeName}`);
32
182
  return;
33
- sourceFile.replaceWithText(template);
183
+ }
184
+ const describeCallBody = describeCall
185
+ .getArguments()[1]
186
+ .asKindOrThrow(SyntaxKind.ArrowFunction);
187
+ const testCaseNames = describeCall
188
+ .getDescendantsOfKind(SyntaxKind.CallExpression)
189
+ .filter((call) => {
190
+ const expressionText = call.getExpression().getText();
191
+ return expressionText === "it" || expressionText === "test";
192
+ })
193
+ .map((c) => c.getArguments()[0].getText());
194
+ const actionsWithoutExistingTestCases = actions.filter((action) => {
195
+ const camelCaseActionName = camelCase(action.name);
196
+ return !testCaseNames.some((c) => c.includes(camelCaseActionName));
197
+ });
198
+ const testCasesToAdd = actionsWithoutExistingTestCases.map((action) => makeTestCaseForAction(action, isPhDocumentOfTypeFunctionName));
199
+ describeCallBody.addStatements(testCasesToAdd);
200
+ const GENERATE_MOCK_NAME = "generateMock";
201
+ const GENERATE_MOCK_MODULE_SPECIFIER = "@powerhousedao/codegen";
202
+ const generateMockImport = sourceFile.getImportDeclaration((i) => i.getNamedImports().some((v) => v.getText().includes(GENERATE_MOCK_NAME)));
203
+ const hasGenerateMockInSourceFile = sourceFile
204
+ .getText()
205
+ .includes(GENERATE_MOCK_NAME);
206
+ if (hasGenerateMockInSourceFile && !generateMockImport) {
207
+ sourceFile.addImportDeclaration({
208
+ namedImports: [GENERATE_MOCK_NAME],
209
+ moduleSpecifier: GENERATE_MOCK_MODULE_SPECIFIER,
210
+ });
211
+ }
212
+ sourceFile.fixUnusedIdentifiers();
34
213
  formatSourceFileWithPrettier(sourceFile);
35
214
  }
36
215
  function makeDocumentModelSrcIndexFile({ project, ...variableNames }) {
@@ -41,19 +220,28 @@ function makeDocumentModelSrcIndexFile({ project, ...variableNames }) {
41
220
  sourceFile.replaceWithText(template);
42
221
  formatSourceFileWithPrettier(sourceFile);
43
222
  }
44
- function makeDocumentModelSrcUtilsFile({ project, ...variableNames }) {
223
+ function makeDocumentModelSrcUtilsFile({ project, srcDirPath, version, }) {
45
224
  const template = documentModelSrcUtilsTemplate;
46
- const { srcDirPath } = variableNames;
47
- const utilsFilePath = path.join(srcDirPath, "utils.ts");
48
- const { alreadyExists, sourceFile: utilsSourceFile } = getOrCreateSourceFile(project, utilsFilePath);
49
- if (alreadyExists)
50
- return;
51
- utilsSourceFile.replaceWithText(template);
52
- formatSourceFileWithPrettier(utilsSourceFile);
225
+ const filePath = path.join(srcDirPath, "utils.ts");
226
+ const { alreadyExists, sourceFile } = getOrCreateSourceFile(project, filePath);
227
+ if (!alreadyExists) {
228
+ const previousVersionSourceFile = getPreviousVersionSourceFile({
229
+ project,
230
+ version,
231
+ filePath,
232
+ });
233
+ if (previousVersionSourceFile) {
234
+ sourceFile.replaceWithText(previousVersionSourceFile.getText());
235
+ }
236
+ else {
237
+ sourceFile.replaceWithText(template);
238
+ }
239
+ }
240
+ formatSourceFileWithPrettier(sourceFile);
53
241
  }
54
- function makeDocumentModelTestFile({ project, ...variableNames }) {
55
- const template = documentModelTestFileTemplate(variableNames);
56
- const { testsDirPath } = variableNames;
242
+ function makeDocumentModelTestFile(args) {
243
+ const { project, testsDirPath } = args;
244
+ const template = documentModelTestFileTemplate(args);
57
245
  const filePath = path.join(testsDirPath, "document-model.test.ts");
58
246
  const { alreadyExists, sourceFile } = getOrCreateSourceFile(project, filePath);
59
247
  if (alreadyExists)
@@ -1 +1 @@
1
- {"version":3,"file":"src-dir.js","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/src-dir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"src-dir.js","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/src-dir.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,32 @@
1
- import type { DocumentModelGlobalState } from "document-model";
1
+ import type { DocumentModelGlobalState, ModuleSpecification } from "document-model";
2
2
  import type { Project } from "ts-morph";
3
3
  import type { DocumentModelVariableNames } from "../../name-builders/types.js";
4
4
  export type GenerateDocumentModelArgs = {
5
5
  projectDir: string;
6
6
  packageName: string;
7
7
  documentModelState: DocumentModelGlobalState;
8
+ useVersioning: boolean;
8
9
  };
9
10
  export type DocumentModelFileMakerArgs = DocumentModelVariableNames & GenerateDocumentModelArgs & {
10
11
  project: Project;
12
+ version: number;
13
+ documentTypeId: string;
14
+ modules: ModuleSpecification[];
15
+ initialGlobalState: string;
16
+ initialLocalState: string;
17
+ hasLocalSchema: boolean;
18
+ documentModelsDirPath: string;
19
+ documentModelDirName: string;
20
+ documentModelDirPath: string;
21
+ documentModelVersionDirName: string;
22
+ documentModelVersionDirPath: string;
23
+ documentModelPackageImportPath: string;
24
+ versionedDocumentModelPackageImportPath: string;
25
+ srcDirPath: string;
26
+ genDirPath: string;
27
+ testsDirPath: string;
28
+ schemaDirPath: string;
29
+ reducersDirPath: string;
30
+ fileExtension: string;
11
31
  };
12
32
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE/E,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,wBAAwB,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,0BAA0B,GACjE,yBAAyB,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE/E,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"}
@@ -0,0 +1,31 @@
1
+ import { type Project } from "ts-morph";
2
+ type MakeUpgradeFileArgs = {
3
+ project: Project;
4
+ version: number;
5
+ upgradesDirPath: string;
6
+ documentModelPackageImportPath: string;
7
+ phStateName: string;
8
+ };
9
+ export declare function makeUpgradeFile(args: MakeUpgradeFileArgs): void;
10
+ export declare function createOrUpdateUpgradeManifestFile(args: {
11
+ project: Project;
12
+ specVersions: number[];
13
+ latestVersion: number;
14
+ upgradesDirPath: string;
15
+ documentModelId: string;
16
+ }): void;
17
+ type MakeVersionConstantsFileArgs = {
18
+ project: Project;
19
+ upgradesDirPath: string;
20
+ specVersions: number[];
21
+ latestVersion: number;
22
+ };
23
+ export declare function createOrUpdateVersionConstantsFile({ specVersions, latestVersion, project, upgradesDirPath, }: MakeVersionConstantsFileArgs): void;
24
+ type MakeUpgradesIndexFileArgs = {
25
+ project: Project;
26
+ upgradesDirPath: string;
27
+ specVersions: number[];
28
+ };
29
+ export declare function makeUpgradesIndexFile({ project, upgradesDirPath, specVersions, }: MakeUpgradesIndexFileArgs): void;
30
+ export {};
31
+ //# sourceMappingURL=upgrades-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrades-dir.d.ts","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/upgrades-dir.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAQjE,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B,EAAE,MAAM,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,QA4BxD;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB,QA+BA;AAgCD,KAAK,4BAA4B,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AACF,wBAAgB,kCAAkC,CAAC,EACjD,YAAY,EACZ,aAAa,EACb,OAAO,EACP,eAAe,GAChB,EAAE,4BAA4B,QAkC9B;AAED,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AACF,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,eAAe,EACf,YAAY,GACb,EAAE,yBAAyB,QAmB3B"}
@@ -0,0 +1,136 @@
1
+ import { ts } from "@tmpl/core";
2
+ import path from "path";
3
+ import { VariableDeclarationKind } from "ts-morph";
4
+ import { formatSourceFileWithPrettier, getOrCreateSourceFile, } from "../../file-utils.js";
5
+ import { getObjectLiteral } from "../../syntax-getters.js";
6
+ import { upgradeTransitionTemplate } from "../../templates/document-model/upgrades/upgrade-transition.js";
7
+ export function makeUpgradeFile(args) {
8
+ const { project, version, upgradesDirPath, documentModelPackageImportPath, phStateName, } = args;
9
+ if (version < 2)
10
+ return;
11
+ const filePath = path.join(upgradesDirPath, `v${version}.ts`);
12
+ const { alreadyExists, sourceFile } = getOrCreateSourceFile(project, filePath);
13
+ if (alreadyExists)
14
+ return;
15
+ const previousVersion = version - 1;
16
+ const template = upgradeTransitionTemplate({
17
+ version,
18
+ previousVersion,
19
+ documentModelPackageImportPath,
20
+ phStateName,
21
+ });
22
+ sourceFile.replaceWithText(template);
23
+ formatSourceFileWithPrettier(sourceFile);
24
+ }
25
+ export function createOrUpdateUpgradeManifestFile(args) {
26
+ const { project, specVersions, upgradesDirPath, documentModelId } = args;
27
+ const filePath = path.join(upgradesDirPath, "upgrade-manifest.ts");
28
+ const { sourceFile } = getOrCreateSourceFile(project, filePath);
29
+ const template = ts `
30
+ import type { UpgradeManifest } from "document-model";
31
+ import { latestVersion, supportedVersions } from "./versions.js";
32
+
33
+ export const upgradeManifest: UpgradeManifest<typeof supportedVersions> = {
34
+ documentType: "${documentModelId}",
35
+ latestVersion,
36
+ supportedVersions,
37
+ upgrades: {},
38
+ };
39
+ `.raw;
40
+ sourceFile.replaceWithText(template);
41
+ const upgradeTransitionImports = buildUpgradeTransitionImports(specVersions);
42
+ sourceFile.addImportDeclarations(upgradeTransitionImports);
43
+ const upgradeManifestStatement = sourceFile.getVariableStatementOrThrow("upgradeManifest");
44
+ const objectLiteral = getObjectLiteral(upgradeManifestStatement);
45
+ const upgradesProperty = objectLiteral.getPropertyOrThrow("upgrades");
46
+ const upgrades = buildUpgrades(specVersions);
47
+ upgradesProperty.replaceWithText(upgrades);
48
+ formatSourceFileWithPrettier(sourceFile);
49
+ }
50
+ function buildUpgrades(specVersions) {
51
+ const upgradeStrings = [];
52
+ for (const version of specVersions) {
53
+ if (version < 2)
54
+ continue;
55
+ upgradeStrings.push(`v${version}`);
56
+ }
57
+ return `upgrades: { ${upgradeStrings.join(",\n")} }`;
58
+ }
59
+ function buildUpgradeTransitionImports(specVersions) {
60
+ const imports = [];
61
+ for (const version of specVersions) {
62
+ if (version < 2)
63
+ continue;
64
+ const namedImports = [`v${version}`];
65
+ const moduleSpecifier = `./v${version}.js`;
66
+ imports.push({
67
+ namedImports,
68
+ moduleSpecifier,
69
+ });
70
+ }
71
+ return imports;
72
+ }
73
+ export function createOrUpdateVersionConstantsFile({ specVersions, latestVersion, project, upgradesDirPath, }) {
74
+ const SUPPORTED_VERSIONS = "supportedVersions";
75
+ const LATEST_VERSION = "latestVersion";
76
+ const filePath = path.join(upgradesDirPath, "versions.ts");
77
+ const { sourceFile } = getOrCreateSourceFile(project, filePath);
78
+ sourceFile.replaceWithText("");
79
+ const latestVersionIndex = specVersions.indexOf(latestVersion);
80
+ const versionInitializer = `[${specVersions.join(", ")}] as const;`;
81
+ const latestInitializer = `${SUPPORTED_VERSIONS}[${latestVersionIndex}];`;
82
+ sourceFile.addVariableStatement({
83
+ declarationKind: VariableDeclarationKind.Const,
84
+ isExported: true,
85
+ declarations: [
86
+ {
87
+ name: SUPPORTED_VERSIONS,
88
+ initializer: versionInitializer,
89
+ },
90
+ ],
91
+ });
92
+ sourceFile.addVariableStatement({
93
+ declarationKind: VariableDeclarationKind.Const,
94
+ isExported: true,
95
+ declarations: [
96
+ {
97
+ name: LATEST_VERSION,
98
+ initializer: latestInitializer,
99
+ },
100
+ ],
101
+ });
102
+ formatSourceFileWithPrettier(sourceFile);
103
+ }
104
+ export function makeUpgradesIndexFile({ project, upgradesDirPath, specVersions, }) {
105
+ const filePath = path.join(upgradesDirPath, "index.ts");
106
+ const { sourceFile } = getOrCreateSourceFile(project, filePath);
107
+ sourceFile.replaceWithText("");
108
+ const upgradeReducerExports = makeUpgradeReducerExports(specVersions);
109
+ sourceFile.addExportDeclarations([
110
+ {
111
+ namedExports: ["upgradeManifest"],
112
+ moduleSpecifier: "./upgrade-manifest.js",
113
+ },
114
+ {
115
+ namedExports: ["supportedVersions", "latestVersion"],
116
+ moduleSpecifier: "./versions.js",
117
+ },
118
+ ...upgradeReducerExports,
119
+ ]);
120
+ formatSourceFileWithPrettier(sourceFile);
121
+ }
122
+ function makeUpgradeReducerExports(specVersions) {
123
+ const exports = [];
124
+ for (const version of specVersions) {
125
+ if (version < 2)
126
+ continue;
127
+ const namedExports = [`v${version}`];
128
+ const moduleSpecifier = `./v${version}.js`;
129
+ exports.push({
130
+ namedExports,
131
+ moduleSpecifier,
132
+ });
133
+ }
134
+ return exports;
135
+ }
136
+ //# sourceMappingURL=upgrades-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrades-dir.js","sourceRoot":"","sources":["../../../../../src/ts-morph-utils/file-builders/document-model/upgrades-dir.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { Project } from "ts-morph";
1
+ import { type Project } from "ts-morph";
2
2
  import type { GenerateDocumentModelArgs } from "./document-model/types.js";
3
- export declare function tsMorphGenerateDocumentModel({ projectDir, packageName, documentModelState, }: GenerateDocumentModelArgs): Promise<void>;
3
+ export declare function tsMorphGenerateDocumentModel({ projectDir, packageName, documentModelState, useVersioning, }: GenerateDocumentModelArgs): Promise<void>;
4
4
  export declare function makeDocumentModelModulesFile({ project, projectDir, }: {
5
5
  project: Project;
6
6
  projectDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"document-model.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/document-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAexC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAmC3E,wBAAsB,4BAA4B,CAAC,EACjD,UAAU,EACV,WAAW,EACX,kBAAkB,GACnB,EAAE,yBAAyB,iBAuC3B;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,OAAO,EACP,UAAU,GACX,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,QAYA"}
1
+ {"version":3,"file":"document-model.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/document-model.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAuBxC,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;AA2LnC,wBAAsB,4BAA4B,CAAC,EACjD,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,aAAa,GACd,EAAE,yBAAyB,iBA+H3B;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,OAAO,EACP,UAAU,GACX,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,QAYA"}