@mdfriday/foundry 25.8.7 → 25.8.9

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 (193) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/internal/application/incremental-build-coordinator.d.ts +3 -0
  6. package/dist/internal/application/incremental-build-coordinator.d.ts.map +1 -1
  7. package/dist/internal/application/incremental-build-coordinator.js +8 -4
  8. package/dist/internal/application/incremental-build-coordinator.js.map +1 -1
  9. package/dist/internal/application/ssg.d.ts +6 -5
  10. package/dist/internal/application/ssg.d.ts.map +1 -1
  11. package/dist/internal/application/ssg.js +12 -11
  12. package/dist/internal/application/ssg.js.map +1 -1
  13. package/dist/internal/domain/config/tests/entity-config.test.d.ts +2 -0
  14. package/dist/internal/domain/config/tests/entity-config.test.d.ts.map +1 -0
  15. package/dist/internal/domain/config/tests/entity-config.test.js +199 -0
  16. package/dist/internal/domain/config/tests/entity-config.test.js.map +1 -0
  17. package/dist/internal/domain/config/tests/entity-root.test.d.ts +2 -0
  18. package/dist/internal/domain/config/tests/entity-root.test.d.ts.map +1 -0
  19. package/dist/internal/domain/config/tests/entity-root.test.js +235 -0
  20. package/dist/internal/domain/config/tests/entity-root.test.js.map +1 -0
  21. package/dist/internal/domain/config/tests/factory-config.test.d.ts +2 -0
  22. package/dist/internal/domain/config/tests/factory-config.test.d.ts.map +1 -0
  23. package/dist/internal/domain/config/tests/factory-config.test.js +84 -0
  24. package/dist/internal/domain/config/tests/factory-config.test.js.map +1 -0
  25. package/dist/internal/domain/config/tests/index.test.d.ts +2 -0
  26. package/dist/internal/domain/config/tests/index.test.d.ts.map +1 -0
  27. package/dist/internal/domain/config/tests/index.test.js +197 -0
  28. package/dist/internal/domain/config/tests/index.test.js.map +1 -0
  29. package/dist/internal/domain/config/tests/mock-fs.d.ts +26 -0
  30. package/dist/internal/domain/config/tests/mock-fs.d.ts.map +1 -0
  31. package/dist/internal/domain/config/tests/mock-fs.js +281 -0
  32. package/dist/internal/domain/config/tests/mock-fs.js.map +1 -0
  33. package/dist/internal/domain/config/tests/type.test.d.ts +2 -0
  34. package/dist/internal/domain/config/tests/type.test.d.ts.map +1 -0
  35. package/dist/internal/domain/config/tests/type.test.js +272 -0
  36. package/dist/internal/domain/config/tests/type.test.js.map +1 -0
  37. package/dist/internal/domain/config/tests/vo-module.test.d.ts +2 -0
  38. package/dist/internal/domain/config/tests/vo-module.test.d.ts.map +1 -0
  39. package/dist/internal/domain/config/tests/vo-module.test.js +267 -0
  40. package/dist/internal/domain/config/tests/vo-module.test.js.map +1 -0
  41. package/dist/internal/domain/config/tests/vo-root.test.d.ts +2 -0
  42. package/dist/internal/domain/config/tests/vo-root.test.d.ts.map +1 -0
  43. package/dist/internal/domain/config/tests/vo-root.test.js +165 -0
  44. package/dist/internal/domain/config/tests/vo-root.test.js.map +1 -0
  45. package/dist/internal/domain/config/tests/vo-service.test.d.ts +2 -0
  46. package/dist/internal/domain/config/tests/vo-service.test.d.ts.map +1 -0
  47. package/dist/internal/domain/config/tests/vo-service.test.js +266 -0
  48. package/dist/internal/domain/config/tests/vo-service.test.js.map +1 -0
  49. package/dist/internal/domain/content/factory/hub.js +1 -1
  50. package/dist/internal/domain/content/factory/hub.js.map +1 -1
  51. package/dist/internal/domain/content/type.d.ts +2 -1
  52. package/dist/internal/domain/content/type.d.ts.map +1 -1
  53. package/dist/internal/domain/content/type.js.map +1 -1
  54. package/dist/internal/domain/fs/entity/overlayfs.js +1 -1
  55. package/dist/internal/domain/fs/entity/overlayfs.js.map +1 -1
  56. package/dist/internal/domain/fs/tests/entity-basefs.test.d.ts +2 -0
  57. package/dist/internal/domain/fs/tests/entity-basefs.test.d.ts.map +1 -0
  58. package/dist/internal/domain/fs/tests/entity-basefs.test.js +279 -0
  59. package/dist/internal/domain/fs/tests/entity-basefs.test.js.map +1 -0
  60. package/dist/internal/domain/fs/tests/entity-fs.test.d.ts +2 -0
  61. package/dist/internal/domain/fs/tests/entity-fs.test.d.ts.map +1 -0
  62. package/dist/internal/domain/fs/tests/entity-fs.test.js +230 -0
  63. package/dist/internal/domain/fs/tests/entity-fs.test.js.map +1 -0
  64. package/dist/internal/domain/fs/tests/entity-originfs.test.d.ts +2 -0
  65. package/dist/internal/domain/fs/tests/entity-originfs.test.d.ts.map +1 -0
  66. package/dist/internal/domain/fs/tests/entity-originfs.test.js +47 -0
  67. package/dist/internal/domain/fs/tests/entity-originfs.test.js.map +1 -0
  68. package/dist/internal/domain/fs/tests/entity-overlaydir.test.d.ts +2 -0
  69. package/dist/internal/domain/fs/tests/entity-overlaydir.test.d.ts.map +1 -0
  70. package/dist/internal/domain/fs/tests/entity-overlaydir.test.js +293 -0
  71. package/dist/internal/domain/fs/tests/entity-overlaydir.test.js.map +1 -0
  72. package/dist/internal/domain/fs/tests/entity-overlayfs.test.d.ts +2 -0
  73. package/dist/internal/domain/fs/tests/entity-overlayfs.test.d.ts.map +1 -0
  74. package/dist/internal/domain/fs/tests/entity-overlayfs.test.js +281 -0
  75. package/dist/internal/domain/fs/tests/entity-overlayfs.test.js.map +1 -0
  76. package/dist/internal/domain/fs/tests/entity-service.test.d.ts +2 -0
  77. package/dist/internal/domain/fs/tests/entity-service.test.d.ts.map +1 -0
  78. package/dist/internal/domain/fs/tests/entity-service.test.js +43 -0
  79. package/dist/internal/domain/fs/tests/entity-service.test.js.map +1 -0
  80. package/dist/internal/domain/fs/tests/factory-fs.test.d.ts +2 -0
  81. package/dist/internal/domain/fs/tests/factory-fs.test.d.ts.map +1 -0
  82. package/dist/internal/domain/fs/tests/factory-fs.test.js +105 -0
  83. package/dist/internal/domain/fs/tests/factory-fs.test.js.map +1 -0
  84. package/dist/internal/domain/fs/tests/type.test.d.ts +2 -0
  85. package/dist/internal/domain/fs/tests/type.test.d.ts.map +1 -0
  86. package/dist/internal/domain/fs/tests/type.test.js +113 -0
  87. package/dist/internal/domain/fs/tests/type.test.js.map +1 -0
  88. package/dist/internal/domain/fs/tests/vo-dir.test.d.ts +2 -0
  89. package/dist/internal/domain/fs/tests/vo-dir.test.d.ts.map +1 -0
  90. package/dist/internal/domain/fs/tests/vo-dir.test.js +211 -0
  91. package/dist/internal/domain/fs/tests/vo-dir.test.js.map +1 -0
  92. package/dist/internal/domain/fs/tests/vo-file.test.d.ts +2 -0
  93. package/dist/internal/domain/fs/tests/vo-file.test.d.ts.map +1 -0
  94. package/dist/internal/domain/fs/tests/vo-file.test.js +256 -0
  95. package/dist/internal/domain/fs/tests/vo-file.test.js.map +1 -0
  96. package/dist/internal/domain/fs/tests/vo-fileinfo.test.d.ts +2 -0
  97. package/dist/internal/domain/fs/tests/vo-fileinfo.test.d.ts.map +1 -0
  98. package/dist/internal/domain/fs/tests/vo-fileinfo.test.js +165 -0
  99. package/dist/internal/domain/fs/tests/vo-fileinfo.test.js.map +1 -0
  100. package/dist/internal/domain/fs/tests/vo-filemeta.test.d.ts +2 -0
  101. package/dist/internal/domain/fs/tests/vo-filemeta.test.d.ts.map +1 -0
  102. package/dist/internal/domain/fs/tests/vo-filemeta.test.js +171 -0
  103. package/dist/internal/domain/fs/tests/vo-filemeta.test.js.map +1 -0
  104. package/dist/internal/domain/fs/tests/vo-filesystemscollector.test.d.ts +2 -0
  105. package/dist/internal/domain/fs/tests/vo-filesystemscollector.test.d.ts.map +1 -0
  106. package/dist/internal/domain/fs/tests/vo-filesystemscollector.test.js +298 -0
  107. package/dist/internal/domain/fs/tests/vo-filesystemscollector.test.js.map +1 -0
  108. package/dist/internal/domain/fs/tests/vo-filevitural.test.d.ts +2 -0
  109. package/dist/internal/domain/fs/tests/vo-filevitural.test.d.ts.map +1 -0
  110. package/dist/internal/domain/fs/tests/vo-filevitural.test.js +167 -0
  111. package/dist/internal/domain/fs/tests/vo-filevitural.test.js.map +1 -0
  112. package/dist/internal/domain/fs/tests/vo-incremental-file-collector.test.d.ts +2 -0
  113. package/dist/internal/domain/fs/tests/vo-incremental-file-collector.test.d.ts.map +1 -0
  114. package/dist/internal/domain/fs/tests/vo-incremental-file-collector.test.js +396 -0
  115. package/dist/internal/domain/fs/tests/vo-incremental-file-collector.test.js.map +1 -0
  116. package/dist/internal/domain/fs/tests/vo-osfs.test.d.ts +2 -0
  117. package/dist/internal/domain/fs/tests/vo-osfs.test.d.ts.map +1 -0
  118. package/dist/internal/domain/fs/tests/vo-osfs.test.js +363 -0
  119. package/dist/internal/domain/fs/tests/vo-osfs.test.js.map +1 -0
  120. package/dist/internal/domain/fs/tests/vo-overlayfs-factory.test.d.ts +2 -0
  121. package/dist/internal/domain/fs/tests/vo-overlayfs-factory.test.d.ts.map +1 -0
  122. package/dist/internal/domain/fs/tests/vo-overlayfs-factory.test.js +430 -0
  123. package/dist/internal/domain/fs/tests/vo-overlayfs-factory.test.js.map +1 -0
  124. package/dist/internal/domain/fs/tests/vo-overlayoptions.test.d.ts +2 -0
  125. package/dist/internal/domain/fs/tests/vo-overlayoptions.test.d.ts.map +1 -0
  126. package/dist/internal/domain/fs/tests/vo-overlayoptions.test.js +402 -0
  127. package/dist/internal/domain/fs/tests/vo-overlayoptions.test.js.map +1 -0
  128. package/dist/internal/domain/fs/tests/vo-static-copier.test.d.ts +2 -0
  129. package/dist/internal/domain/fs/tests/vo-static-copier.test.d.ts.map +1 -0
  130. package/dist/internal/domain/fs/tests/vo-static-copier.test.js +320 -0
  131. package/dist/internal/domain/fs/tests/vo-static-copier.test.js.map +1 -0
  132. package/dist/internal/domain/fs/tests/vo-walkway.test.d.ts +2 -0
  133. package/dist/internal/domain/fs/tests/vo-walkway.test.d.ts.map +1 -0
  134. package/dist/internal/domain/fs/tests/vo-walkway.test.js +295 -0
  135. package/dist/internal/domain/fs/tests/vo-walkway.test.js.map +1 -0
  136. package/dist/internal/domain/markdown/entity/markdown.d.ts +0 -21
  137. package/dist/internal/domain/markdown/entity/markdown.d.ts.map +1 -1
  138. package/dist/internal/domain/markdown/entity/markdown.js +2 -35
  139. package/dist/internal/domain/markdown/entity/markdown.js.map +1 -1
  140. package/dist/internal/domain/markdown/factory/markdown.d.ts +2 -38
  141. package/dist/internal/domain/markdown/factory/markdown.d.ts.map +1 -1
  142. package/dist/internal/domain/markdown/factory/markdown.js +2 -70
  143. package/dist/internal/domain/markdown/factory/markdown.js.map +1 -1
  144. package/dist/internal/domain/markdown/index.d.ts +0 -3
  145. package/dist/internal/domain/markdown/index.d.ts.map +1 -1
  146. package/dist/internal/domain/markdown/index.js +0 -3
  147. package/dist/internal/domain/markdown/index.js.map +1 -1
  148. package/dist/internal/domain/markdown/type.d.ts +1 -16
  149. package/dist/internal/domain/markdown/type.d.ts.map +1 -1
  150. package/dist/internal/domain/markdown/type.js.map +1 -1
  151. package/dist/internal/domain/markdown/vo/parserresult.d.ts +1 -60
  152. package/dist/internal/domain/markdown/vo/parserresult.d.ts.map +1 -1
  153. package/dist/internal/domain/markdown/vo/parserresult.js +1 -174
  154. package/dist/internal/domain/markdown/vo/parserresult.js.map +1 -1
  155. package/dist/pkg/log/logger.d.ts.map +1 -1
  156. package/dist/pkg/log/logger.js +0 -1
  157. package/dist/pkg/log/logger.js.map +1 -1
  158. package/dist/pkg/web/server/electron-livereload-server.d.ts.map +1 -1
  159. package/dist/pkg/web/server/electron-livereload-server.js +0 -2
  160. package/dist/pkg/web/server/electron-livereload-server.js.map +1 -1
  161. package/package.json +1 -15
  162. package/dist/internal/application/test-incremental-ssg.d.ts +0 -9
  163. package/dist/internal/application/test-incremental-ssg.d.ts.map +0 -1
  164. package/dist/internal/application/test-incremental-ssg.js +0 -83
  165. package/dist/internal/application/test-incremental-ssg.js.map +0 -1
  166. package/dist/internal/application/test-ssg.d.ts +0 -8
  167. package/dist/internal/application/test-ssg.d.ts.map +0 -1
  168. package/dist/internal/application/test-ssg.js +0 -30
  169. package/dist/internal/application/test-ssg.js.map +0 -1
  170. package/dist/internal/domain/markdown/test/external-adapter.test.d.ts +0 -2
  171. package/dist/internal/domain/markdown/test/external-adapter.test.d.ts.map +0 -1
  172. package/dist/internal/domain/markdown/test/external-adapter.test.js +0 -150
  173. package/dist/internal/domain/markdown/test/external-adapter.test.js.map +0 -1
  174. package/dist/internal/domain/markdown/test/markdown.test.d.ts +0 -2
  175. package/dist/internal/domain/markdown/test/markdown.test.d.ts.map +0 -1
  176. package/dist/internal/domain/markdown/test/markdown.test.js +0 -88
  177. package/dist/internal/domain/markdown/test/markdown.test.js.map +0 -1
  178. package/dist/internal/domain/markdown/vo/externaladapter.d.ts +0 -63
  179. package/dist/internal/domain/markdown/vo/externaladapter.d.ts.map +0 -1
  180. package/dist/internal/domain/markdown/vo/externaladapter.js +0 -194
  181. package/dist/internal/domain/markdown/vo/externaladapter.js.map +0 -1
  182. package/dist/internal/domain/markdown/vo/markdownit.d.ts +0 -33
  183. package/dist/internal/domain/markdown/vo/markdownit.d.ts.map +0 -1
  184. package/dist/internal/domain/markdown/vo/markdownit.js +0 -175
  185. package/dist/internal/domain/markdown/vo/markdownit.js.map +0 -1
  186. package/dist/pkg/web/server/example.d.ts +0 -2
  187. package/dist/pkg/web/server/example.d.ts.map +0 -1
  188. package/dist/pkg/web/server/example.js +0 -43
  189. package/dist/pkg/web/server/example.js.map +0 -1
  190. package/dist/pkg/web/watcher/test-watcher.d.ts +0 -7
  191. package/dist/pkg/web/watcher/test-watcher.d.ts.map +0 -1
  192. package/dist/pkg/web/watcher/test-watcher.js +0 -95
  193. package/dist/pkg/web/watcher/test-watcher.js.map +0 -1
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const module_1 = require("../vo/module");
4
+ describe('Module Value Object', () => {
5
+ describe('EmptyModuleConfig', () => {
6
+ it('should have empty arrays for mounts and imports', () => {
7
+ expect(module_1.EmptyModuleConfig.mounts).toEqual([]);
8
+ expect(module_1.EmptyModuleConfig.imports).toEqual([]);
9
+ });
10
+ });
11
+ describe('decodeModuleConfig', () => {
12
+ it('should decode empty data with default values', () => {
13
+ const config = (0, module_1.decodeModuleConfig)({});
14
+ expect(config.mounts).toEqual([]);
15
+ expect(config.imports).toEqual([]);
16
+ });
17
+ it('should decode mounts configuration', () => {
18
+ const inputData = {
19
+ mounts: [
20
+ {
21
+ source: 'content',
22
+ target: 'content'
23
+ },
24
+ {
25
+ source: 'static',
26
+ target: 'static',
27
+ lang: 'en'
28
+ }
29
+ ]
30
+ };
31
+ const config = (0, module_1.decodeModuleConfig)(inputData);
32
+ expect(config.mounts).toHaveLength(2);
33
+ expect(config.mounts[0]).toEqual({
34
+ source: 'content',
35
+ target: 'content',
36
+ lang: undefined
37
+ });
38
+ expect(config.mounts[1]).toEqual({
39
+ source: 'static',
40
+ target: 'static',
41
+ lang: 'en'
42
+ });
43
+ });
44
+ it('should decode imports configuration', () => {
45
+ const inputData = {
46
+ imports: [
47
+ {
48
+ path: 'github.com/user/theme',
49
+ version: 'v1.0.0'
50
+ },
51
+ {
52
+ path: 'local-module',
53
+ url: 'https://github.com/user/module.git',
54
+ version: 'main',
55
+ mounts: [
56
+ {
57
+ source: 'assets',
58
+ target: 'assets'
59
+ }
60
+ ]
61
+ }
62
+ ]
63
+ };
64
+ const config = (0, module_1.decodeModuleConfig)(inputData);
65
+ expect(config.imports).toHaveLength(2);
66
+ expect(config.imports[0]).toEqual({
67
+ path: 'github.com/user/theme',
68
+ url: undefined,
69
+ version: 'v1.0.0',
70
+ mounts: []
71
+ });
72
+ expect(config.imports[1]).toEqual({
73
+ path: 'local-module',
74
+ url: 'https://github.com/user/module.git',
75
+ version: 'main',
76
+ mounts: [
77
+ {
78
+ source: 'assets',
79
+ target: 'assets'
80
+ }
81
+ ]
82
+ });
83
+ });
84
+ it('should handle mixed mounts and imports', () => {
85
+ const inputData = {
86
+ mounts: [
87
+ {
88
+ source: 'content',
89
+ target: 'content'
90
+ }
91
+ ],
92
+ imports: [
93
+ {
94
+ path: 'theme-module',
95
+ version: 'v2.0.0'
96
+ }
97
+ ]
98
+ };
99
+ const config = (0, module_1.decodeModuleConfig)(inputData);
100
+ expect(config.mounts).toHaveLength(1);
101
+ expect(config.imports).toHaveLength(1);
102
+ expect(config.mounts[0].source).toBe('content');
103
+ expect(config.imports[0].path).toBe('theme-module');
104
+ });
105
+ it('should handle incomplete mount data', () => {
106
+ const inputData = {
107
+ mounts: [
108
+ {
109
+ source: 'content'
110
+ // missing target
111
+ },
112
+ {
113
+ target: 'static'
114
+ // missing source
115
+ },
116
+ {} // empty mount
117
+ ]
118
+ };
119
+ const config = (0, module_1.decodeModuleConfig)(inputData);
120
+ expect(config.mounts).toHaveLength(3);
121
+ expect(config.mounts[0]).toEqual({
122
+ source: 'content',
123
+ target: '',
124
+ lang: undefined
125
+ });
126
+ expect(config.mounts[1]).toEqual({
127
+ source: '',
128
+ target: 'static',
129
+ lang: undefined
130
+ });
131
+ expect(config.mounts[2]).toEqual({
132
+ source: '',
133
+ target: '',
134
+ lang: undefined
135
+ });
136
+ });
137
+ it('should handle incomplete import data', () => {
138
+ const inputData = {
139
+ imports: [
140
+ {
141
+ path: 'valid-module',
142
+ version: 'v1.0.0'
143
+ },
144
+ {
145
+ // missing path
146
+ url: 'https://example.com/module.git'
147
+ },
148
+ {} // empty import
149
+ ]
150
+ };
151
+ const config = (0, module_1.decodeModuleConfig)(inputData);
152
+ expect(config.imports).toHaveLength(3);
153
+ expect(config.imports[0]).toEqual({
154
+ path: 'valid-module',
155
+ url: undefined,
156
+ version: 'v1.0.0',
157
+ mounts: []
158
+ });
159
+ expect(config.imports[1]).toEqual({
160
+ path: '',
161
+ url: 'https://example.com/module.git',
162
+ version: undefined,
163
+ mounts: []
164
+ });
165
+ expect(config.imports[2]).toEqual({
166
+ path: '',
167
+ url: undefined,
168
+ version: undefined,
169
+ mounts: []
170
+ });
171
+ });
172
+ it('should handle non-array mounts and imports', () => {
173
+ const inputData = {
174
+ mounts: 'not-an-array',
175
+ imports: null
176
+ };
177
+ const config = (0, module_1.decodeModuleConfig)(inputData);
178
+ expect(config.mounts).toEqual([]);
179
+ expect(config.imports).toEqual([]);
180
+ });
181
+ it('should handle complex nested mount configuration in imports', () => {
182
+ const inputData = {
183
+ imports: [
184
+ {
185
+ path: 'complex-module',
186
+ mounts: [
187
+ {
188
+ source: 'content',
189
+ target: 'content',
190
+ lang: 'en'
191
+ },
192
+ {
193
+ source: 'static',
194
+ target: 'assets'
195
+ }
196
+ ]
197
+ }
198
+ ]
199
+ };
200
+ const config = (0, module_1.decodeModuleConfig)(inputData);
201
+ expect(config.imports[0].mounts).toHaveLength(2);
202
+ expect(config.imports[0].mounts[0]).toEqual({
203
+ source: 'content',
204
+ target: 'content',
205
+ lang: 'en'
206
+ });
207
+ expect(config.imports[0].mounts[1]).toEqual({
208
+ source: 'static',
209
+ target: 'assets'
210
+ });
211
+ });
212
+ });
213
+ describe('isEmptyModuleConfig', () => {
214
+ it('should return true for empty configuration', () => {
215
+ const emptyConfig = {
216
+ mounts: [],
217
+ imports: []
218
+ };
219
+ expect((0, module_1.isEmptyModuleConfig)(emptyConfig)).toBe(true);
220
+ });
221
+ it('should return false for configuration with mounts', () => {
222
+ const configWithMounts = {
223
+ mounts: [
224
+ {
225
+ source: 'content',
226
+ target: 'content'
227
+ }
228
+ ],
229
+ imports: []
230
+ };
231
+ expect((0, module_1.isEmptyModuleConfig)(configWithMounts)).toBe(false);
232
+ });
233
+ it('should return false for configuration with imports', () => {
234
+ const configWithImports = {
235
+ mounts: [],
236
+ imports: [
237
+ {
238
+ path: 'some-module',
239
+ mounts: []
240
+ }
241
+ ]
242
+ };
243
+ expect((0, module_1.isEmptyModuleConfig)(configWithImports)).toBe(false);
244
+ });
245
+ it('should return false for configuration with both mounts and imports', () => {
246
+ const fullConfig = {
247
+ mounts: [
248
+ {
249
+ source: 'content',
250
+ target: 'content'
251
+ }
252
+ ],
253
+ imports: [
254
+ {
255
+ path: 'some-module',
256
+ mounts: []
257
+ }
258
+ ]
259
+ };
260
+ expect((0, module_1.isEmptyModuleConfig)(fullConfig)).toBe(false);
261
+ });
262
+ it('should work with EmptyModuleConfig constant', () => {
263
+ expect((0, module_1.isEmptyModuleConfig)(module_1.EmptyModuleConfig)).toBe(true);
264
+ });
265
+ });
266
+ });
267
+ //# sourceMappingURL=vo-module.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vo-module.test.js","sourceRoot":"","sources":["../../../../../internal/domain/config/tests/vo-module.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=vo-root.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vo-root.test.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/config/tests/vo-root.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const root_1 = require("../vo/root");
4
+ describe('Root Value Object', () => {
5
+ describe('DefaultRootConfig', () => {
6
+ it('should have correct default values', () => {
7
+ expect(root_1.DefaultRootConfig.baseURL).toBe('');
8
+ expect(root_1.DefaultRootConfig.title).toBe('');
9
+ expect(root_1.DefaultRootConfig.theme).toEqual([]);
10
+ expect(root_1.DefaultRootConfig.timeout).toBe('30s');
11
+ expect(root_1.DefaultRootConfig.contentDir).toBe('content');
12
+ expect(root_1.DefaultRootConfig.dataDir).toBe('data');
13
+ expect(root_1.DefaultRootConfig.layoutDir).toBe('layouts');
14
+ expect(root_1.DefaultRootConfig.staticDir).toBe('static');
15
+ expect(root_1.DefaultRootConfig.archetypeDir).toBe('archetypes');
16
+ expect(root_1.DefaultRootConfig.assetDir).toBe('assets');
17
+ expect(root_1.DefaultRootConfig.publishDir).toBe('public');
18
+ expect(root_1.DefaultRootConfig.buildDrafts).toBe(false);
19
+ expect(root_1.DefaultRootConfig.buildExpired).toBe(false);
20
+ expect(root_1.DefaultRootConfig.buildFuture).toBe(false);
21
+ expect(root_1.DefaultRootConfig.copyright).toBe('');
22
+ expect(root_1.DefaultRootConfig.defaultContentLanguage).toBe('en');
23
+ expect(root_1.DefaultRootConfig.defaultContentLanguageInSubdir).toBe(false);
24
+ expect(root_1.DefaultRootConfig.disableAliases).toBe(false);
25
+ expect(root_1.DefaultRootConfig.disablePathToLower).toBe(false);
26
+ expect(root_1.DefaultRootConfig.disableKinds).toEqual([]);
27
+ expect(root_1.DefaultRootConfig.disableLanguages).toEqual([]);
28
+ expect(root_1.DefaultRootConfig.renderSegments).toEqual([]);
29
+ expect(root_1.DefaultRootConfig.disableHugoGeneratorInject).toBe(false);
30
+ expect(root_1.DefaultRootConfig.disableLiveReload).toBe(false);
31
+ expect(root_1.DefaultRootConfig.enableEmoji).toBe(false);
32
+ });
33
+ });
34
+ describe('decodeRootConfig', () => {
35
+ it('should decode empty data with default values', () => {
36
+ const config = (0, root_1.decodeRootConfig)({});
37
+ expect(config.baseURL).toBe('');
38
+ expect(config.title).toBe('');
39
+ expect(config.theme).toEqual([]);
40
+ expect(config.timeout).toBe('30s');
41
+ expect(config.contentDir).toBe('content');
42
+ expect(config.defaultContentLanguage).toBe('en');
43
+ expect(config.buildDrafts).toBe(false);
44
+ expect(config.enableEmoji).toBe(false);
45
+ });
46
+ it('should decode custom configuration data', () => {
47
+ const inputData = {
48
+ baseURL: 'https://example.com',
49
+ title: 'My Blog',
50
+ theme: ['mytheme', 'fallback'],
51
+ timeout: '60s',
52
+ contentDir: 'posts',
53
+ buildDrafts: true,
54
+ buildFuture: true,
55
+ enableEmoji: true,
56
+ defaultContentLanguage: 'zh',
57
+ disableKinds: ['RSS', 'sitemap'],
58
+ copyright: '© 2024 My Blog'
59
+ };
60
+ const config = (0, root_1.decodeRootConfig)(inputData);
61
+ expect(config.baseURL).toBe('https://example.com');
62
+ expect(config.title).toBe('My Blog');
63
+ expect(config.theme).toEqual(['mytheme', 'fallback']);
64
+ expect(config.timeout).toBe('60s');
65
+ expect(config.contentDir).toBe('posts');
66
+ expect(config.buildDrafts).toBe(true);
67
+ expect(config.buildFuture).toBe(true);
68
+ expect(config.enableEmoji).toBe(true);
69
+ expect(config.defaultContentLanguage).toBe('zh');
70
+ expect(config.disableKinds).toEqual(['RSS', 'sitemap']);
71
+ expect(config.copyright).toBe('© 2024 My Blog');
72
+ });
73
+ it('should handle boolean fields correctly', () => {
74
+ // Test explicit false values
75
+ const falseData = {
76
+ buildDrafts: false,
77
+ buildExpired: false,
78
+ buildFuture: false,
79
+ disableAliases: false,
80
+ enableEmoji: false
81
+ };
82
+ const falseConfig = (0, root_1.decodeRootConfig)(falseData);
83
+ expect(falseConfig.buildDrafts).toBe(false);
84
+ expect(falseConfig.buildExpired).toBe(false);
85
+ expect(falseConfig.buildFuture).toBe(false);
86
+ expect(falseConfig.disableAliases).toBe(false);
87
+ expect(falseConfig.enableEmoji).toBe(false);
88
+ // Test explicit true values
89
+ const trueData = {
90
+ buildDrafts: true,
91
+ buildExpired: true,
92
+ buildFuture: true,
93
+ disableAliases: true,
94
+ enableEmoji: true
95
+ };
96
+ const trueConfig = (0, root_1.decodeRootConfig)(trueData);
97
+ expect(trueConfig.buildDrafts).toBe(true);
98
+ expect(trueConfig.buildExpired).toBe(true);
99
+ expect(trueConfig.buildFuture).toBe(true);
100
+ expect(trueConfig.disableAliases).toBe(true);
101
+ expect(trueConfig.enableEmoji).toBe(true);
102
+ });
103
+ it('should handle array fields correctly', () => {
104
+ const data = {
105
+ theme: ['theme1', 'theme2', 'theme3'],
106
+ disableKinds: ['RSS', 'sitemap', 'taxonomy'],
107
+ disableLanguages: ['fr', 'de'],
108
+ renderSegments: ['page', 'home']
109
+ };
110
+ const config = (0, root_1.decodeRootConfig)(data);
111
+ expect(config.theme).toEqual(['theme1', 'theme2', 'theme3']);
112
+ expect(config.disableKinds).toEqual(['RSS', 'sitemap', 'taxonomy']);
113
+ expect(config.disableLanguages).toEqual(['fr', 'de']);
114
+ expect(config.renderSegments).toEqual(['page', 'home']);
115
+ });
116
+ it('should handle partial configuration data', () => {
117
+ const partialData = {
118
+ title: 'Partial Config',
119
+ buildDrafts: true,
120
+ theme: ['custom-theme']
121
+ // Other fields should use defaults
122
+ };
123
+ const config = (0, root_1.decodeRootConfig)(partialData);
124
+ expect(config.title).toBe('Partial Config');
125
+ expect(config.buildDrafts).toBe(true);
126
+ expect(config.theme).toEqual(['custom-theme']);
127
+ // Should use defaults for missing fields
128
+ expect(config.baseURL).toBe('');
129
+ expect(config.contentDir).toBe('content');
130
+ expect(config.defaultContentLanguage).toBe('en');
131
+ expect(config.buildExpired).toBe(false);
132
+ });
133
+ it('should preserve complex nested boolean logic', () => {
134
+ const complexData = {
135
+ defaultContentLanguageInSubdir: true,
136
+ disableHugoGeneratorInject: true,
137
+ disableLiveReload: true,
138
+ disablePathToLower: true
139
+ };
140
+ const config = (0, root_1.decodeRootConfig)(complexData);
141
+ expect(config.defaultContentLanguageInSubdir).toBe(true);
142
+ expect(config.disableHugoGeneratorInject).toBe(true);
143
+ expect(config.disableLiveReload).toBe(true);
144
+ expect(config.disablePathToLower).toBe(true);
145
+ });
146
+ it('should handle null and undefined values gracefully', () => {
147
+ const dataWithNulls = {
148
+ title: null,
149
+ theme: undefined,
150
+ buildDrafts: null,
151
+ disableKinds: null
152
+ };
153
+ const config = (0, root_1.decodeRootConfig)(dataWithNulls);
154
+ // Null/undefined string values should fallback to defaults
155
+ expect(config.title).toBe(''); // default
156
+ expect(config.theme).toEqual([]); // default
157
+ // Null boolean values should use the ternary logic in decodeRootConfig
158
+ // which checks for undefined, so null will be passed through
159
+ expect(config.buildDrafts).toBe(null); // null is passed through
160
+ // Null array values should fallback to defaults
161
+ expect(config.disableKinds).toEqual([]); // default
162
+ });
163
+ });
164
+ });
165
+ //# sourceMappingURL=vo-root.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vo-root.test.js","sourceRoot":"","sources":["../../../../../internal/domain/config/tests/vo-root.test.ts"],"names":[],"mappings":";;AAAA,qCAAiE;AAGjE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,wBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,wBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,wBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,wBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,wBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,CAAC,wBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,CAAC,wBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,CAAC,wBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,wBAAiB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1D,MAAM,CAAC,wBAAiB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,CAAC,wBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,CAAC,wBAAiB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,wBAAiB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,wBAAiB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,wBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,wBAAiB,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,CAAC,wBAAiB,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,wBAAiB,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,CAAC,wBAAiB,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,CAAC,wBAAiB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,CAAC,wBAAiB,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,wBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,wBAAiB,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,CAAC,wBAAiB,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,CAAC,wBAAiB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,EAAE,CAAC,CAAC;YAEpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,SAAS,GAAG;gBAChB,OAAO,EAAE,qBAAqB;gBAC9B,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;gBAC9B,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,sBAAsB,EAAE,IAAI;gBAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;gBAChC,SAAS,EAAE,gBAAgB;aAC5B,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,SAAS,CAAC,CAAC;YAE3C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,6BAA6B;YAC7B,MAAM,SAAS,GAAG;gBAChB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,KAAK;gBAClB,cAAc,EAAE,KAAK;gBACrB,WAAW,EAAE,KAAK;aACnB,CAAC;YAEF,MAAM,WAAW,GAAG,IAAA,uBAAgB,EAAC,SAAS,CAAC,CAAC;YAChD,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE5C,4BAA4B;YAC5B,MAAM,QAAQ,GAAG;gBACf,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAI;gBACpB,WAAW,EAAE,IAAI;aAClB,CAAC;YAEF,MAAM,UAAU,GAAG,IAAA,uBAAgB,EAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBACrC,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC;gBAC5C,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC9B,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;aACjC,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,WAAW,GAAG;gBAClB,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,CAAC,cAAc,CAAC;gBACvB,mCAAmC;aACpC,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YAE/C,yCAAyC;YACzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,WAAW,GAAG;gBAClB,8BAA8B,EAAE,IAAI;gBACpC,0BAA0B,EAAE,IAAI;gBAChC,iBAAiB,EAAE,IAAI;gBACvB,kBAAkB,EAAE,IAAI;aACzB,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,aAAa,GAAG;gBACpB,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,IAAI;aACnB,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC,aAAa,CAAC,CAAC;YAE/C,2DAA2D;YAC3D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;YACzC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;YAE5C,uEAAuE;YACvE,6DAA6D;YAC7D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB;YAEhE,gDAAgD;YAChD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=vo-service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vo-service.test.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/config/tests/vo-service.test.ts"],"names":[],"mappings":""}