@interactive-inc/docs-client 0.0.6 → 0.0.7

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 (263) hide show
  1. package/build/index.d.ts +1921 -42
  2. package/build/index.js +4616 -39
  3. package/build/models.d.ts +34 -32
  4. package/build/models.js +219 -275
  5. package/package.json +4 -4
  6. package/tsup.config.ts +10 -0
  7. package/build/doc-client.d.ts +0 -59
  8. package/build/doc-client.d.ts.map +0 -1
  9. package/build/doc-client.js +0 -95
  10. package/build/doc-client.test.d.ts +0 -2
  11. package/build/doc-client.test.d.ts.map +0 -1
  12. package/build/doc-client.test.js +0 -38
  13. package/build/doc-directory-reference.d.ts +0 -65
  14. package/build/doc-directory-reference.d.ts.map +0 -1
  15. package/build/doc-directory-reference.js +0 -292
  16. package/build/doc-directory-reference.test.d.ts +0 -2
  17. package/build/doc-directory-reference.test.d.ts.map +0 -1
  18. package/build/doc-directory-reference.test.js +0 -100
  19. package/build/doc-file-index-reference.d.ts +0 -72
  20. package/build/doc-file-index-reference.d.ts.map +0 -1
  21. package/build/doc-file-index-reference.js +0 -191
  22. package/build/doc-file-index-reference.test.d.ts +0 -2
  23. package/build/doc-file-index-reference.test.d.ts.map +0 -1
  24. package/build/doc-file-index-reference.test.js +0 -77
  25. package/build/doc-file-md-reference.d.ts +0 -97
  26. package/build/doc-file-md-reference.d.ts.map +0 -1
  27. package/build/doc-file-md-reference.js +0 -297
  28. package/build/doc-file-md-reference.test.d.ts +0 -2
  29. package/build/doc-file-md-reference.test.d.ts.map +0 -1
  30. package/build/doc-file-md-reference.test.js +0 -465
  31. package/build/doc-file-relation-reference.d.ts +0 -54
  32. package/build/doc-file-relation-reference.d.ts.map +0 -1
  33. package/build/doc-file-relation-reference.js +0 -109
  34. package/build/doc-file-system-debug.d.ts +0 -81
  35. package/build/doc-file-system-debug.d.ts.map +0 -1
  36. package/build/doc-file-system-debug.js +0 -317
  37. package/build/doc-file-system.d.ts +0 -100
  38. package/build/doc-file-system.d.ts.map +0 -1
  39. package/build/doc-file-system.js +0 -210
  40. package/build/doc-file-tree-system.d.ts +0 -38
  41. package/build/doc-file-tree-system.d.ts.map +0 -1
  42. package/build/doc-file-tree-system.js +0 -153
  43. package/build/doc-file-tree-system.test.d.ts +0 -2
  44. package/build/doc-file-tree-system.test.d.ts.map +0 -1
  45. package/build/doc-file-tree-system.test.js +0 -105
  46. package/build/doc-file-unknown-reference.d.ts +0 -80
  47. package/build/doc-file-unknown-reference.d.ts.map +0 -1
  48. package/build/doc-file-unknown-reference.js +0 -181
  49. package/build/doc-file-unknown-reference.test.d.ts +0 -2
  50. package/build/doc-file-unknown-reference.test.d.ts.map +0 -1
  51. package/build/doc-file-unknown-reference.test.js +0 -73
  52. package/build/doc-markdown-system.d.ts +0 -44
  53. package/build/doc-markdown-system.d.ts.map +0 -1
  54. package/build/doc-markdown-system.js +0 -153
  55. package/build/doc-markdown-system.test.d.ts +0 -2
  56. package/build/doc-markdown-system.test.d.ts.map +0 -1
  57. package/build/doc-markdown-system.test.js +0 -124
  58. package/build/doc-path-system.d.ts +0 -43
  59. package/build/doc-path-system.d.ts.map +0 -1
  60. package/build/doc-path-system.js +0 -148
  61. package/build/doc-path-system.test.d.ts +0 -2
  62. package/build/doc-path-system.test.d.ts.map +0 -1
  63. package/build/doc-path-system.test.js +0 -67
  64. package/build/entities/doc-file-entity.d.ts +0 -5
  65. package/build/entities/doc-file-entity.d.ts.map +0 -1
  66. package/build/entities/doc-file-entity.js +0 -1
  67. package/build/entities/doc-file-index-entity.d.ts +0 -30
  68. package/build/entities/doc-file-index-entity.d.ts.map +0 -1
  69. package/build/entities/doc-file-index-entity.js +0 -49
  70. package/build/entities/doc-file-index-entity.test.d.ts +0 -2
  71. package/build/entities/doc-file-index-entity.test.d.ts.map +0 -1
  72. package/build/entities/doc-file-index-entity.test.js +0 -195
  73. package/build/entities/doc-file-md-entity.d.ts +0 -30
  74. package/build/entities/doc-file-md-entity.d.ts.map +0 -1
  75. package/build/entities/doc-file-md-entity.js +0 -49
  76. package/build/entities/doc-file-md-entity.test.d.ts +0 -2
  77. package/build/entities/doc-file-md-entity.test.d.ts.map +0 -1
  78. package/build/entities/doc-file-md-entity.test.js +0 -178
  79. package/build/entities/doc-file-unknown-entity.d.ts +0 -26
  80. package/build/entities/doc-file-unknown-entity.d.ts.map +0 -1
  81. package/build/entities/doc-file-unknown-entity.js +0 -45
  82. package/build/entities/doc-file-unknown-entity.test.d.ts +0 -2
  83. package/build/entities/doc-file-unknown-entity.test.d.ts.map +0 -1
  84. package/build/entities/doc-file-unknown-entity.test.js +0 -131
  85. package/build/index.d.ts.map +0 -1
  86. package/build/models.d.ts.map +0 -1
  87. package/build/types.d.ts +0 -154
  88. package/build/types.d.ts.map +0 -1
  89. package/build/types.js +0 -1
  90. package/build/values/doc-content-md-front-matter-value.d.ts +0 -49
  91. package/build/values/doc-content-md-front-matter-value.d.ts.map +0 -1
  92. package/build/values/doc-content-md-front-matter-value.js +0 -94
  93. package/build/values/doc-content-md-front-matter-value.test.d.ts +0 -2
  94. package/build/values/doc-content-md-front-matter-value.test.d.ts.map +0 -1
  95. package/build/values/doc-content-md-front-matter-value.test.js +0 -73
  96. package/build/values/doc-content-md-value.d.ts +0 -66
  97. package/build/values/doc-content-md-value.d.ts.map +0 -1
  98. package/build/values/doc-content-md-value.js +0 -218
  99. package/build/values/doc-content-md-value.test.d.ts +0 -2
  100. package/build/values/doc-content-md-value.test.d.ts.map +0 -1
  101. package/build/values/doc-content-md-value.test.js +0 -179
  102. package/build/values/doc-directory-path-value.d.ts +0 -89
  103. package/build/values/doc-directory-path-value.d.ts.map +0 -1
  104. package/build/values/doc-directory-path-value.js +0 -145
  105. package/build/values/doc-directory-path-value.test.d.ts +0 -2
  106. package/build/values/doc-directory-path-value.test.d.ts.map +0 -1
  107. package/build/values/doc-directory-path-value.test.js +0 -68
  108. package/build/values/doc-file-content-index-value.d.ts +0 -62
  109. package/build/values/doc-file-content-index-value.d.ts.map +0 -1
  110. package/build/values/doc-file-content-index-value.js +0 -134
  111. package/build/values/doc-file-content-index-value.test.d.ts +0 -2
  112. package/build/values/doc-file-content-index-value.test.d.ts.map +0 -1
  113. package/build/values/doc-file-content-index-value.test.js +0 -203
  114. package/build/values/doc-file-content-md-value.d.ts +0 -62
  115. package/build/values/doc-file-content-md-value.d.ts.map +0 -1
  116. package/build/values/doc-file-content-md-value.js +0 -139
  117. package/build/values/doc-file-content-md-value.test.d.ts +0 -2
  118. package/build/values/doc-file-content-md-value.test.d.ts.map +0 -1
  119. package/build/values/doc-file-content-md-value.test.js +0 -160
  120. package/build/values/doc-file-path-value.d.ts +0 -47
  121. package/build/values/doc-file-path-value.d.ts.map +0 -1
  122. package/build/values/doc-file-path-value.js +0 -83
  123. package/build/values/doc-file-path-value.test.d.ts +0 -2
  124. package/build/values/doc-file-path-value.test.d.ts.map +0 -1
  125. package/build/values/doc-file-path-value.test.js +0 -84
  126. package/build/values/doc-front-matter-index-value.d.ts +0 -66
  127. package/build/values/doc-front-matter-index-value.d.ts.map +0 -1
  128. package/build/values/doc-front-matter-index-value.js +0 -185
  129. package/build/values/doc-front-matter-index-value.test.d.ts +0 -2
  130. package/build/values/doc-front-matter-index-value.test.d.ts.map +0 -1
  131. package/build/values/doc-front-matter-index-value.test.js +0 -98
  132. package/build/values/doc-front-matter-md-value-accessor.test.d.ts +0 -2
  133. package/build/values/doc-front-matter-md-value-accessor.test.d.ts.map +0 -1
  134. package/build/values/doc-front-matter-md-value-accessor.test.js +0 -226
  135. package/build/values/doc-front-matter-md-value.d.ts +0 -80
  136. package/build/values/doc-front-matter-md-value.d.ts.map +0 -1
  137. package/build/values/doc-front-matter-md-value.js +0 -257
  138. package/build/values/doc-front-matter-md-value.test.d.ts +0 -2
  139. package/build/values/doc-front-matter-md-value.test.d.ts.map +0 -1
  140. package/build/values/doc-front-matter-md-value.test.js +0 -198
  141. package/build/values/doc-relation-field-value.d.ts +0 -57
  142. package/build/values/doc-relation-field-value.d.ts.map +0 -1
  143. package/build/values/doc-relation-field-value.js +0 -85
  144. package/build/values/doc-relation-field-value.test.d.ts +0 -2
  145. package/build/values/doc-relation-field-value.test.d.ts.map +0 -1
  146. package/build/values/doc-relation-field-value.test.js +0 -115
  147. package/build/values/doc-relation-file-value.d.ts +0 -33
  148. package/build/values/doc-relation-file-value.d.ts.map +0 -1
  149. package/build/values/doc-relation-file-value.js +0 -55
  150. package/build/values/doc-relation-file-value.test.d.ts +0 -2
  151. package/build/values/doc-relation-file-value.test.d.ts.map +0 -1
  152. package/build/values/doc-relation-file-value.test.js +0 -77
  153. package/build/values/doc-relation-value.d.ts +0 -34
  154. package/build/values/doc-relation-value.d.ts.map +0 -1
  155. package/build/values/doc-relation-value.js +0 -56
  156. package/build/values/doc-relation-value.test.d.ts +0 -2
  157. package/build/values/doc-relation-value.test.d.ts.map +0 -1
  158. package/build/values/doc-relation-value.test.js +0 -89
  159. package/build/values/doc-schema-field-boolean-multiple-value.d.ts +0 -23
  160. package/build/values/doc-schema-field-boolean-multiple-value.d.ts.map +0 -1
  161. package/build/values/doc-schema-field-boolean-multiple-value.js +0 -43
  162. package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts +0 -2
  163. package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts.map +0 -1
  164. package/build/values/doc-schema-field-boolean-multiple-value.test.js +0 -76
  165. package/build/values/doc-schema-field-boolean-single-value.d.ts +0 -23
  166. package/build/values/doc-schema-field-boolean-single-value.d.ts.map +0 -1
  167. package/build/values/doc-schema-field-boolean-single-value.js +0 -39
  168. package/build/values/doc-schema-field-boolean-single-value.test.d.ts +0 -2
  169. package/build/values/doc-schema-field-boolean-single-value.test.d.ts.map +0 -1
  170. package/build/values/doc-schema-field-boolean-single-value.test.js +0 -73
  171. package/build/values/doc-schema-field-factory.d.ts +0 -37
  172. package/build/values/doc-schema-field-factory.d.ts.map +0 -1
  173. package/build/values/doc-schema-field-factory.js +0 -151
  174. package/build/values/doc-schema-field-factory.test.d.ts +0 -2
  175. package/build/values/doc-schema-field-factory.test.d.ts.map +0 -1
  176. package/build/values/doc-schema-field-factory.test.js +0 -215
  177. package/build/values/doc-schema-field-number-multiple-value.d.ts +0 -23
  178. package/build/values/doc-schema-field-number-multiple-value.d.ts.map +0 -1
  179. package/build/values/doc-schema-field-number-multiple-value.js +0 -43
  180. package/build/values/doc-schema-field-number-multiple-value.test.d.ts +0 -2
  181. package/build/values/doc-schema-field-number-multiple-value.test.d.ts.map +0 -1
  182. package/build/values/doc-schema-field-number-multiple-value.test.js +0 -79
  183. package/build/values/doc-schema-field-number-single-value.d.ts +0 -23
  184. package/build/values/doc-schema-field-number-single-value.d.ts.map +0 -1
  185. package/build/values/doc-schema-field-number-single-value.js +0 -39
  186. package/build/values/doc-schema-field-number-single-value.test.d.ts +0 -2
  187. package/build/values/doc-schema-field-number-single-value.test.d.ts.map +0 -1
  188. package/build/values/doc-schema-field-number-single-value.test.js +0 -77
  189. package/build/values/doc-schema-field-relation-multiple-value.d.ts +0 -24
  190. package/build/values/doc-schema-field-relation-multiple-value.d.ts.map +0 -1
  191. package/build/values/doc-schema-field-relation-multiple-value.js +0 -46
  192. package/build/values/doc-schema-field-relation-multiple-value.test.d.ts +0 -2
  193. package/build/values/doc-schema-field-relation-multiple-value.test.d.ts.map +0 -1
  194. package/build/values/doc-schema-field-relation-multiple-value.test.js +0 -83
  195. package/build/values/doc-schema-field-relation-single-value.d.ts +0 -24
  196. package/build/values/doc-schema-field-relation-single-value.d.ts.map +0 -1
  197. package/build/values/doc-schema-field-relation-single-value.js +0 -42
  198. package/build/values/doc-schema-field-relation-single-value.test.d.ts +0 -2
  199. package/build/values/doc-schema-field-relation-single-value.test.d.ts.map +0 -1
  200. package/build/values/doc-schema-field-relation-single-value.test.js +0 -83
  201. package/build/values/doc-schema-field-select-number-multiple-value.d.ts +0 -25
  202. package/build/values/doc-schema-field-select-number-multiple-value.d.ts.map +0 -1
  203. package/build/values/doc-schema-field-select-number-multiple-value.js +0 -48
  204. package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts +0 -2
  205. package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts.map +0 -1
  206. package/build/values/doc-schema-field-select-number-multiple-value.test.js +0 -84
  207. package/build/values/doc-schema-field-select-number-single-value.d.ts +0 -25
  208. package/build/values/doc-schema-field-select-number-single-value.d.ts.map +0 -1
  209. package/build/values/doc-schema-field-select-number-single-value.js +0 -45
  210. package/build/values/doc-schema-field-select-number-single-value.test.d.ts +0 -2
  211. package/build/values/doc-schema-field-select-number-single-value.test.d.ts.map +0 -1
  212. package/build/values/doc-schema-field-select-number-single-value.test.js +0 -96
  213. package/build/values/doc-schema-field-select-text-multiple-value.d.ts +0 -25
  214. package/build/values/doc-schema-field-select-text-multiple-value.d.ts.map +0 -1
  215. package/build/values/doc-schema-field-select-text-multiple-value.js +0 -48
  216. package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts +0 -2
  217. package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts.map +0 -1
  218. package/build/values/doc-schema-field-select-text-multiple-value.test.js +0 -84
  219. package/build/values/doc-schema-field-select-text-single-value.d.ts +0 -25
  220. package/build/values/doc-schema-field-select-text-single-value.d.ts.map +0 -1
  221. package/build/values/doc-schema-field-select-text-single-value.js +0 -47
  222. package/build/values/doc-schema-field-select-text-single-value.test.d.ts +0 -2
  223. package/build/values/doc-schema-field-select-text-single-value.test.d.ts.map +0 -1
  224. package/build/values/doc-schema-field-select-text-single-value.test.js +0 -96
  225. package/build/values/doc-schema-field-text-multiple-value.d.ts +0 -23
  226. package/build/values/doc-schema-field-text-multiple-value.d.ts.map +0 -1
  227. package/build/values/doc-schema-field-text-multiple-value.js +0 -43
  228. package/build/values/doc-schema-field-text-multiple-value.test.d.ts +0 -2
  229. package/build/values/doc-schema-field-text-multiple-value.test.d.ts.map +0 -1
  230. package/build/values/doc-schema-field-text-multiple-value.test.js +0 -78
  231. package/build/values/doc-schema-field-text-single-value.d.ts +0 -23
  232. package/build/values/doc-schema-field-text-single-value.d.ts.map +0 -1
  233. package/build/values/doc-schema-field-text-single-value.js +0 -39
  234. package/build/values/doc-schema-field-text-single-value.test.d.ts +0 -2
  235. package/build/values/doc-schema-field-text-single-value.test.d.ts.map +0 -1
  236. package/build/values/doc-schema-field-text-single-value.test.js +0 -76
  237. package/build/values/doc-schema-field-type-value.d.ts +0 -61
  238. package/build/values/doc-schema-field-type-value.d.ts.map +0 -1
  239. package/build/values/doc-schema-field-type-value.js +0 -134
  240. package/build/values/doc-schema-field-type-value.test.d.ts +0 -2
  241. package/build/values/doc-schema-field-type-value.test.d.ts.map +0 -1
  242. package/build/values/doc-schema-field-type-value.test.js +0 -101
  243. package/build/values/doc-schema-field-value.d.ts +0 -45
  244. package/build/values/doc-schema-field-value.d.ts.map +0 -1
  245. package/build/values/doc-schema-field-value.js +0 -1
  246. package/build/values/doc-schema-value.d.ts +0 -99
  247. package/build/values/doc-schema-value.d.ts.map +0 -1
  248. package/build/values/doc-schema-value.js +0 -269
  249. package/build/values/doc-schema-value.test.d.ts +0 -2
  250. package/build/values/doc-schema-value.test.d.ts.map +0 -1
  251. package/build/values/doc-schema-value.test.js +0 -301
  252. package/build/values/doc-tree-directory-node-value.d.ts +0 -36
  253. package/build/values/doc-tree-directory-node-value.d.ts.map +0 -1
  254. package/build/values/doc-tree-directory-node-value.js +0 -71
  255. package/build/values/doc-tree-directory-node-value.test.d.ts +0 -2
  256. package/build/values/doc-tree-directory-node-value.test.d.ts.map +0 -1
  257. package/build/values/doc-tree-directory-node-value.test.js +0 -162
  258. package/build/values/doc-tree-file-node-value.d.ts +0 -33
  259. package/build/values/doc-tree-file-node-value.d.ts.map +0 -1
  260. package/build/values/doc-tree-file-node-value.js +0 -56
  261. package/build/values/doc-tree-file-node-value.test.d.ts +0 -2
  262. package/build/values/doc-tree-file-node-value.test.d.ts.map +0 -1
  263. package/build/values/doc-tree-file-node-value.test.js +0 -113
@@ -1,83 +0,0 @@
1
- import { zDocFilePath } from "../models";
2
- /**
3
- * ファイルパス情報の値オブジェクト
4
- */
5
- export class DocFilePathValue {
6
- value;
7
- pathSystem;
8
- constructor(value, pathSystem) {
9
- this.value = value;
10
- zDocFilePath.parse(value);
11
- this.pathSystem = pathSystem;
12
- Object.freeze(this);
13
- }
14
- /**
15
- * ファイル名(拡張子なし)
16
- */
17
- get name() {
18
- return this.value.name;
19
- }
20
- /**
21
- * ファイルパス(相対パス)
22
- */
23
- get path() {
24
- return this.value.path;
25
- }
26
- /**
27
- * ファイル名(拡張子付き)
28
- */
29
- get nameWithExtension() {
30
- return this.value.nameWithExtension;
31
- }
32
- /**
33
- * フルパス(絶対パス)
34
- */
35
- get fullPath() {
36
- return this.value.fullPath;
37
- }
38
- /**
39
- * ディレクトリパス
40
- */
41
- get directoryPath() {
42
- return this.pathSystem.dirname(this.path);
43
- }
44
- /**
45
- * 拡張子
46
- */
47
- get extension() {
48
- return this.pathSystem.extname(this.nameWithExtension);
49
- }
50
- /**
51
- * アーカイブされているかどうか
52
- */
53
- get isArchived() {
54
- return this.path.includes("/.archive/");
55
- }
56
- /**
57
- * 相対パスからインスタンスを生成(DI対応)
58
- */
59
- static fromPathWithSystem(filePath, pathSystem, basePath) {
60
- const nameWithExtension = pathSystem.basename(filePath);
61
- let name = pathSystem.basename(filePath, pathSystem.extname(filePath));
62
- // index.mdの場合は親ディレクトリ名を使用
63
- if (name === "index" && filePath.includes("/")) {
64
- const parentDir = pathSystem.dirname(filePath);
65
- name = pathSystem.basename(parentDir);
66
- }
67
- const fullPath = basePath
68
- ? pathSystem.join(basePath, filePath)
69
- : pathSystem.resolve(filePath);
70
- return new DocFilePathValue({
71
- name,
72
- path: filePath,
73
- fullPath,
74
- nameWithExtension,
75
- }, pathSystem);
76
- }
77
- /**
78
- * JSON形式で出力
79
- */
80
- toJson() {
81
- return this.value;
82
- }
83
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-file-path-value.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-file-path-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-file-path-value.test.ts"],"names":[],"mappings":""}
@@ -1,84 +0,0 @@
1
- import { expect, test } from "bun:test";
2
- import { DocPathSystem } from "../doc-path-system";
3
- import { DocFilePathValue } from "./doc-file-path-value";
4
- test("DocFilePathValue - 基本的な作成とプロパティアクセス", () => {
5
- const pathSystem = new DocPathSystem();
6
- const value = new DocFilePathValue({
7
- path: "docs/example.md",
8
- name: "example",
9
- fullPath: "/Users/test/docs/example.md",
10
- nameWithExtension: "example.md",
11
- }, pathSystem);
12
- expect(value.path).toBe("docs/example.md");
13
- expect(value.name).toBe("example");
14
- expect(value.fullPath).toBe("/Users/test/docs/example.md");
15
- expect(value.nameWithExtension).toBe("example.md");
16
- });
17
- test("DocFilePathValue - extension getterが拡張子を返す", () => {
18
- const pathSystem = new DocPathSystem();
19
- const value = new DocFilePathValue({
20
- path: "docs/test.md",
21
- name: "test",
22
- fullPath: "/Users/test/docs/test.md",
23
- nameWithExtension: "test.md",
24
- }, pathSystem);
25
- expect(value.extension).toBe(".md");
26
- });
27
- test("DocFilePathValue - 拡張子のないファイル", () => {
28
- const pathSystem = new DocPathSystem();
29
- const value = new DocFilePathValue({
30
- path: "docs/README",
31
- name: "README",
32
- fullPath: "/Users/test/docs/README",
33
- nameWithExtension: "README",
34
- }, pathSystem);
35
- expect(value.extension).toBe("");
36
- });
37
- test("DocFilePathValue - fromPathWithSystemで相対パスから生成", () => {
38
- const pathSystem = new DocPathSystem();
39
- const value = DocFilePathValue.fromPathWithSystem("docs/test.md", pathSystem, "/Users/project");
40
- expect(value.path).toBe("docs/test.md");
41
- expect(value.name).toBe("test");
42
- expect(value.fullPath).toBe("/Users/project/docs/test.md");
43
- expect(value.nameWithExtension).toBe("test.md");
44
- });
45
- test("DocFilePathValue - fromPathWithSystemでindex.mdの場合", () => {
46
- const pathSystem = new DocPathSystem();
47
- const value = DocFilePathValue.fromPathWithSystem("docs/features/index.md", pathSystem, "/Users/project");
48
- expect(value.path).toBe("docs/features/index.md");
49
- expect(value.name).toBe("features");
50
- expect(value.fullPath).toBe("/Users/project/docs/features/index.md");
51
- expect(value.nameWithExtension).toBe("index.md");
52
- });
53
- test("DocFilePathValue - fromPathWithSystemでルートのindex.mdの場合", () => {
54
- const pathSystem = new DocPathSystem();
55
- const value = DocFilePathValue.fromPathWithSystem("index.md", pathSystem, "/Users/project");
56
- expect(value.path).toBe("index.md");
57
- expect(value.name).toBe("index");
58
- expect(value.fullPath).toBe("/Users/project/index.md");
59
- expect(value.nameWithExtension).toBe("index.md");
60
- });
61
- test("DocFilePathValue - toJsonで元のデータ構造を返す", () => {
62
- const pathSystem = new DocPathSystem();
63
- const data = {
64
- path: "docs/test.md",
65
- name: "test",
66
- fullPath: "/Users/test/docs/test.md",
67
- nameWithExtension: "test.md",
68
- };
69
- const value = new DocFilePathValue(data, pathSystem);
70
- expect(value.toJson()).toEqual(data);
71
- });
72
- test("DocFilePathValue - 不変性の確認", () => {
73
- const pathSystem = new DocPathSystem();
74
- const value = new DocFilePathValue({
75
- path: "docs/test.md",
76
- name: "test",
77
- fullPath: "/Users/test/docs/test.md",
78
- nameWithExtension: "test.md",
79
- }, pathSystem);
80
- expect(() => {
81
- // @ts-expect-error - 不変性のテスト
82
- value.value = {};
83
- }).toThrow();
84
- });
@@ -1,66 +0,0 @@
1
- import type { DocFileIndexFrontMatter } from "../types";
2
- import { DocSchemaValue } from "../values/doc-schema-value";
3
- /**
4
- * FrontMatter
5
- */
6
- export declare class DocFrontMatterIndexValue {
7
- readonly value: DocFileIndexFrontMatter;
8
- constructor(value: DocFileIndexFrontMatter);
9
- /**
10
- * アイコンを取得
11
- */
12
- get icon(): string | null;
13
- /**
14
- * スキーマを取得
15
- */
16
- get schema(): DocSchemaValue;
17
- /**
18
- * iconフィールドを更新
19
- */
20
- withIcon(value: unknown): DocFrontMatterIndexValue;
21
- /**
22
- * schemaフィールドを更新
23
- */
24
- withSchema(value: unknown): DocFrontMatterIndexValue;
25
- /**
26
- * JSON形式で出力
27
- */
28
- toJson(): DocFileIndexFrontMatter;
29
- /**
30
- * YAML形式で出力
31
- */
32
- toYaml(): string;
33
- /**
34
- * スキーマ全体を正規化
35
- */
36
- private static createSchema;
37
- /**
38
- * スキーマフィールドを正規化
39
- */
40
- private static createSchemaField;
41
- /**
42
- * Markdownテキストから生成(不完全なデータも処理可能)
43
- */
44
- static from(markdownText: string): DocFrontMatterIndexValue;
45
- /**
46
- * データから直接生成(不完全なデータも処理可能)
47
- */
48
- static fromRecord(record: Record<string, unknown>): DocFrontMatterIndexValue;
49
- /**
50
- * 空のFrontMatterを生成
51
- */
52
- static empty(): DocFrontMatterIndexValue;
53
- /**
54
- * アイコンを抽出
55
- */
56
- private static extractIcon;
57
- /**
58
- * スキーマを抽出
59
- */
60
- private static extractSchema;
61
- /**
62
- * デフォルトのアイコンを取得
63
- */
64
- private static getDefaultIcon;
65
- }
66
- //# sourceMappingURL=doc-front-matter-index-value.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-front-matter-index-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-front-matter-index-value.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EAGxB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D;;GAEG;AACH,qBAAa,wBAAwB;IACvB,QAAQ,CAAC,KAAK,EAAE,uBAAuB;IAAnD,YAAqB,KAAK,EAAE,uBAAuB,EAGlD;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAWjD;IAED;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAWnD;IAED;;OAEG;IACH,MAAM,IAAI,uBAAuB,CAEhC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,CAOf;IAED;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAoB3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAahC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,wBAAwB,CAoB1D;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,wBAAwB,CAqB3E;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,wBAAwB,CAMvC;IAED;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAQ1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAkB5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAG9B"}
@@ -1,185 +0,0 @@
1
- import { parse, stringify } from "yaml";
2
- import { zDocFileIndexFrontMatter } from "../models";
3
- import { DocSchemaValue } from "../values/doc-schema-value";
4
- import { DocSchemaFieldFactory } from "./doc-schema-field-factory";
5
- /**
6
- * FrontMatter
7
- */
8
- export class DocFrontMatterIndexValue {
9
- value;
10
- constructor(value) {
11
- this.value = value;
12
- zDocFileIndexFrontMatter.parse(value);
13
- Object.freeze(this);
14
- }
15
- /**
16
- * アイコンを取得
17
- */
18
- get icon() {
19
- return this.value.icon;
20
- }
21
- /**
22
- * スキーマを取得
23
- */
24
- get schema() {
25
- return new DocSchemaValue(this.value.schema);
26
- }
27
- /**
28
- * iconフィールドを更新
29
- */
30
- withIcon(value) {
31
- if (typeof value !== "string") {
32
- return this;
33
- }
34
- const currentData = this.toJson();
35
- return DocFrontMatterIndexValue.fromRecord({
36
- ...currentData,
37
- icon: value,
38
- });
39
- }
40
- /**
41
- * schemaフィールドを更新
42
- */
43
- withSchema(value) {
44
- if (typeof value !== "object" || value === null) {
45
- return this;
46
- }
47
- const currentData = this.toJson();
48
- return DocFrontMatterIndexValue.fromRecord({
49
- ...currentData,
50
- schema: DocFrontMatterIndexValue.createSchema(value),
51
- });
52
- }
53
- /**
54
- * JSON形式で出力
55
- */
56
- toJson() {
57
- return this.value;
58
- }
59
- /**
60
- * YAML形式で出力
61
- */
62
- toYaml() {
63
- // iconとschemaのみを明示的に出力
64
- const yamlData = {
65
- icon: this.value.icon,
66
- schema: this.value.schema,
67
- };
68
- return stringify(yamlData).trim();
69
- }
70
- /**
71
- * スキーマ全体を正規化
72
- */
73
- static createSchema(schema) {
74
- if (typeof schema !== "object" || schema === null) {
75
- return {};
76
- }
77
- const schemaObj = schema;
78
- const record = {};
79
- for (const [key, value] of Object.entries(schemaObj)) {
80
- const normalizedField = DocFrontMatterIndexValue.createSchemaField(key, value);
81
- if (normalizedField === null)
82
- continue;
83
- record[key] = normalizedField;
84
- }
85
- return record;
86
- }
87
- /**
88
- * スキーマフィールドを正規化
89
- */
90
- static createSchemaField(key, value) {
91
- try {
92
- const factory = new DocSchemaFieldFactory();
93
- const fieldValue = factory.fromUnknown(key, value);
94
- return fieldValue.toJson();
95
- }
96
- catch {
97
- return null;
98
- }
99
- }
100
- /**
101
- * Markdownテキストから生成(不完全なデータも処理可能)
102
- */
103
- static from(markdownText) {
104
- // FrontMatterセクションを抽出
105
- if (!markdownText.startsWith("---")) {
106
- return DocFrontMatterIndexValue.empty();
107
- }
108
- const endIndex = markdownText.indexOf("\n---", 3);
109
- if (endIndex === -1) {
110
- return DocFrontMatterIndexValue.empty();
111
- }
112
- const frontMatterText = markdownText.slice(4, endIndex).trim();
113
- try {
114
- // YAMLをパース
115
- const data = parse(frontMatterText) || {};
116
- return DocFrontMatterIndexValue.fromRecord(data);
117
- }
118
- catch {
119
- return DocFrontMatterIndexValue.empty();
120
- }
121
- }
122
- /**
123
- * データから直接生成(不完全なデータも処理可能)
124
- */
125
- static fromRecord(record) {
126
- if (typeof record !== "object") {
127
- return DocFrontMatterIndexValue.empty();
128
- }
129
- const icon = DocFrontMatterIndexValue.extractIcon(record);
130
- const schema = DocFrontMatterIndexValue.extractSchema(record);
131
- const frontMatter = {
132
- type: "index-frontmatter",
133
- icon,
134
- schema,
135
- };
136
- try {
137
- const validated = zDocFileIndexFrontMatter.parse(frontMatter);
138
- return new DocFrontMatterIndexValue(validated);
139
- }
140
- catch {
141
- return DocFrontMatterIndexValue.empty();
142
- }
143
- }
144
- /**
145
- * 空のFrontMatterを生成
146
- */
147
- static empty() {
148
- return new DocFrontMatterIndexValue({
149
- type: "index-frontmatter",
150
- icon: "",
151
- schema: {},
152
- });
153
- }
154
- /**
155
- * アイコンを抽出
156
- */
157
- static extractIcon(data) {
158
- if ("icon" in data && typeof data.icon === "string") {
159
- return data.icon;
160
- }
161
- return DocFrontMatterIndexValue.getDefaultIcon();
162
- }
163
- /**
164
- * スキーマを抽出
165
- */
166
- static extractSchema(data) {
167
- const hasSchema = "schema" in data;
168
- if (!hasSchema) {
169
- return {};
170
- }
171
- if (typeof data.schema !== "object") {
172
- return {};
173
- }
174
- if (data.schema === null) {
175
- return {};
176
- }
177
- return DocFrontMatterIndexValue.createSchema(data.schema);
178
- }
179
- /**
180
- * デフォルトのアイコンを取得
181
- */
182
- static getDefaultIcon() {
183
- return "📃";
184
- }
185
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-front-matter-index-value.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-front-matter-index-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-front-matter-index-value.test.ts"],"names":[],"mappings":""}
@@ -1,98 +0,0 @@
1
- import { expect, test } from "bun:test";
2
- import { DocFrontMatterIndexValue } from "./doc-front-matter-index-value";
3
- test("DocFrontMatterIndexValue - 基本的な作成とプロパティアクセス", () => {
4
- const value = new DocFrontMatterIndexValue({
5
- type: "index-frontmatter",
6
- icon: "📁",
7
- schema: {
8
- name: {
9
- type: "text",
10
- required: true,
11
- title: "名前",
12
- description: "項目の名前",
13
- default: "",
14
- },
15
- age: {
16
- type: "number",
17
- required: false,
18
- title: "年齢",
19
- description: "年齢の数値",
20
- default: 0,
21
- },
22
- },
23
- });
24
- expect(value.icon).toBe("📁");
25
- const schema = value.schema.toJson();
26
- expect(schema.name?.type).toBe("text");
27
- expect(schema.name?.required).toBe(true);
28
- expect(schema.age?.type).toBe("number");
29
- expect(schema.age?.required).toBe(false);
30
- });
31
- test("DocFrontMatterIndexValue - 空のschemaの場合", () => {
32
- const value = new DocFrontMatterIndexValue({
33
- type: "index-frontmatter",
34
- icon: "",
35
- schema: {},
36
- });
37
- expect(value.icon).toBe("");
38
- expect(value.schema.toJson()).toEqual({});
39
- });
40
- test("DocFrontMatterIndexValue - toYamlでYAML文字列を生成", () => {
41
- const value = new DocFrontMatterIndexValue({
42
- type: "index-frontmatter",
43
- icon: "📂",
44
- schema: {
45
- title: {
46
- type: "text",
47
- required: true,
48
- title: "タイトル",
49
- description: "ドキュメントのタイトル",
50
- default: "",
51
- },
52
- },
53
- });
54
- const yaml = value.toYaml();
55
- expect(yaml).toContain("icon: 📂");
56
- expect(yaml).toContain("schema:");
57
- expect(yaml).toContain("title:");
58
- expect(yaml).toContain("type: text");
59
- expect(yaml).toContain("required: true");
60
- });
61
- test("DocFrontMatterIndexValue - 空のiconとschemaでtoYaml", () => {
62
- const value = new DocFrontMatterIndexValue({
63
- type: "index-frontmatter",
64
- icon: "",
65
- schema: {},
66
- });
67
- const yaml = value.toYaml();
68
- expect(yaml).toContain('icon: ""');
69
- expect(yaml).toContain("schema: {}");
70
- });
71
- test("DocFrontMatterIndexValue - toJsonで元のデータ構造を返す", () => {
72
- const data = {
73
- type: "index-frontmatter",
74
- icon: "📁",
75
- schema: {
76
- name: {
77
- type: "text",
78
- required: true,
79
- title: "名前",
80
- description: "項目の名前",
81
- default: "",
82
- },
83
- },
84
- };
85
- const value = new DocFrontMatterIndexValue(data);
86
- expect(value.toJson()).toEqual(data);
87
- });
88
- test("DocFrontMatterIndexValue - 不変性の確認", () => {
89
- const value = new DocFrontMatterIndexValue({
90
- type: "index-frontmatter",
91
- icon: "📁",
92
- schema: {},
93
- });
94
- expect(() => {
95
- // @ts-expect-error - 不変性のテスト
96
- value.value = {};
97
- }).toThrow();
98
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-front-matter-md-value-accessor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-front-matter-md-value-accessor.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-front-matter-md-value-accessor.test.ts"],"names":[],"mappings":""}