@interactive-inc/docs-client 0.0.6 → 0.0.8

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 (265) hide show
  1. package/README.md +0 -228
  2. package/build/index.d.ts +1921 -42
  3. package/build/index.js +4617 -39
  4. package/build/models.d.ts +34 -32
  5. package/build/models.js +219 -275
  6. package/package.json +4 -4
  7. package/tsup.config.ts +10 -0
  8. package/build/doc-client.d.ts +0 -59
  9. package/build/doc-client.d.ts.map +0 -1
  10. package/build/doc-client.js +0 -95
  11. package/build/doc-client.test.d.ts +0 -2
  12. package/build/doc-client.test.d.ts.map +0 -1
  13. package/build/doc-client.test.js +0 -38
  14. package/build/doc-directory-reference.d.ts +0 -65
  15. package/build/doc-directory-reference.d.ts.map +0 -1
  16. package/build/doc-directory-reference.js +0 -292
  17. package/build/doc-directory-reference.test.d.ts +0 -2
  18. package/build/doc-directory-reference.test.d.ts.map +0 -1
  19. package/build/doc-directory-reference.test.js +0 -100
  20. package/build/doc-file-index-reference.d.ts +0 -72
  21. package/build/doc-file-index-reference.d.ts.map +0 -1
  22. package/build/doc-file-index-reference.js +0 -191
  23. package/build/doc-file-index-reference.test.d.ts +0 -2
  24. package/build/doc-file-index-reference.test.d.ts.map +0 -1
  25. package/build/doc-file-index-reference.test.js +0 -77
  26. package/build/doc-file-md-reference.d.ts +0 -97
  27. package/build/doc-file-md-reference.d.ts.map +0 -1
  28. package/build/doc-file-md-reference.js +0 -297
  29. package/build/doc-file-md-reference.test.d.ts +0 -2
  30. package/build/doc-file-md-reference.test.d.ts.map +0 -1
  31. package/build/doc-file-md-reference.test.js +0 -465
  32. package/build/doc-file-relation-reference.d.ts +0 -54
  33. package/build/doc-file-relation-reference.d.ts.map +0 -1
  34. package/build/doc-file-relation-reference.js +0 -109
  35. package/build/doc-file-system-debug.d.ts +0 -81
  36. package/build/doc-file-system-debug.d.ts.map +0 -1
  37. package/build/doc-file-system-debug.js +0 -317
  38. package/build/doc-file-system.d.ts +0 -100
  39. package/build/doc-file-system.d.ts.map +0 -1
  40. package/build/doc-file-system.js +0 -210
  41. package/build/doc-file-tree-system.d.ts +0 -38
  42. package/build/doc-file-tree-system.d.ts.map +0 -1
  43. package/build/doc-file-tree-system.js +0 -153
  44. package/build/doc-file-tree-system.test.d.ts +0 -2
  45. package/build/doc-file-tree-system.test.d.ts.map +0 -1
  46. package/build/doc-file-tree-system.test.js +0 -105
  47. package/build/doc-file-unknown-reference.d.ts +0 -80
  48. package/build/doc-file-unknown-reference.d.ts.map +0 -1
  49. package/build/doc-file-unknown-reference.js +0 -181
  50. package/build/doc-file-unknown-reference.test.d.ts +0 -2
  51. package/build/doc-file-unknown-reference.test.d.ts.map +0 -1
  52. package/build/doc-file-unknown-reference.test.js +0 -73
  53. package/build/doc-markdown-system.d.ts +0 -44
  54. package/build/doc-markdown-system.d.ts.map +0 -1
  55. package/build/doc-markdown-system.js +0 -153
  56. package/build/doc-markdown-system.test.d.ts +0 -2
  57. package/build/doc-markdown-system.test.d.ts.map +0 -1
  58. package/build/doc-markdown-system.test.js +0 -124
  59. package/build/doc-path-system.d.ts +0 -43
  60. package/build/doc-path-system.d.ts.map +0 -1
  61. package/build/doc-path-system.js +0 -148
  62. package/build/doc-path-system.test.d.ts +0 -2
  63. package/build/doc-path-system.test.d.ts.map +0 -1
  64. package/build/doc-path-system.test.js +0 -67
  65. package/build/entities/doc-file-entity.d.ts +0 -5
  66. package/build/entities/doc-file-entity.d.ts.map +0 -1
  67. package/build/entities/doc-file-entity.js +0 -1
  68. package/build/entities/doc-file-index-entity.d.ts +0 -30
  69. package/build/entities/doc-file-index-entity.d.ts.map +0 -1
  70. package/build/entities/doc-file-index-entity.js +0 -49
  71. package/build/entities/doc-file-index-entity.test.d.ts +0 -2
  72. package/build/entities/doc-file-index-entity.test.d.ts.map +0 -1
  73. package/build/entities/doc-file-index-entity.test.js +0 -195
  74. package/build/entities/doc-file-md-entity.d.ts +0 -30
  75. package/build/entities/doc-file-md-entity.d.ts.map +0 -1
  76. package/build/entities/doc-file-md-entity.js +0 -49
  77. package/build/entities/doc-file-md-entity.test.d.ts +0 -2
  78. package/build/entities/doc-file-md-entity.test.d.ts.map +0 -1
  79. package/build/entities/doc-file-md-entity.test.js +0 -178
  80. package/build/entities/doc-file-unknown-entity.d.ts +0 -26
  81. package/build/entities/doc-file-unknown-entity.d.ts.map +0 -1
  82. package/build/entities/doc-file-unknown-entity.js +0 -45
  83. package/build/entities/doc-file-unknown-entity.test.d.ts +0 -2
  84. package/build/entities/doc-file-unknown-entity.test.d.ts.map +0 -1
  85. package/build/entities/doc-file-unknown-entity.test.js +0 -131
  86. package/build/index.d.ts.map +0 -1
  87. package/build/models.d.ts.map +0 -1
  88. package/build/types.d.ts +0 -154
  89. package/build/types.d.ts.map +0 -1
  90. package/build/types.js +0 -1
  91. package/build/values/doc-content-md-front-matter-value.d.ts +0 -49
  92. package/build/values/doc-content-md-front-matter-value.d.ts.map +0 -1
  93. package/build/values/doc-content-md-front-matter-value.js +0 -94
  94. package/build/values/doc-content-md-front-matter-value.test.d.ts +0 -2
  95. package/build/values/doc-content-md-front-matter-value.test.d.ts.map +0 -1
  96. package/build/values/doc-content-md-front-matter-value.test.js +0 -73
  97. package/build/values/doc-content-md-value.d.ts +0 -66
  98. package/build/values/doc-content-md-value.d.ts.map +0 -1
  99. package/build/values/doc-content-md-value.js +0 -218
  100. package/build/values/doc-content-md-value.test.d.ts +0 -2
  101. package/build/values/doc-content-md-value.test.d.ts.map +0 -1
  102. package/build/values/doc-content-md-value.test.js +0 -179
  103. package/build/values/doc-directory-path-value.d.ts +0 -89
  104. package/build/values/doc-directory-path-value.d.ts.map +0 -1
  105. package/build/values/doc-directory-path-value.js +0 -145
  106. package/build/values/doc-directory-path-value.test.d.ts +0 -2
  107. package/build/values/doc-directory-path-value.test.d.ts.map +0 -1
  108. package/build/values/doc-directory-path-value.test.js +0 -68
  109. package/build/values/doc-file-content-index-value.d.ts +0 -62
  110. package/build/values/doc-file-content-index-value.d.ts.map +0 -1
  111. package/build/values/doc-file-content-index-value.js +0 -134
  112. package/build/values/doc-file-content-index-value.test.d.ts +0 -2
  113. package/build/values/doc-file-content-index-value.test.d.ts.map +0 -1
  114. package/build/values/doc-file-content-index-value.test.js +0 -203
  115. package/build/values/doc-file-content-md-value.d.ts +0 -62
  116. package/build/values/doc-file-content-md-value.d.ts.map +0 -1
  117. package/build/values/doc-file-content-md-value.js +0 -139
  118. package/build/values/doc-file-content-md-value.test.d.ts +0 -2
  119. package/build/values/doc-file-content-md-value.test.d.ts.map +0 -1
  120. package/build/values/doc-file-content-md-value.test.js +0 -160
  121. package/build/values/doc-file-path-value.d.ts +0 -47
  122. package/build/values/doc-file-path-value.d.ts.map +0 -1
  123. package/build/values/doc-file-path-value.js +0 -83
  124. package/build/values/doc-file-path-value.test.d.ts +0 -2
  125. package/build/values/doc-file-path-value.test.d.ts.map +0 -1
  126. package/build/values/doc-file-path-value.test.js +0 -84
  127. package/build/values/doc-front-matter-index-value.d.ts +0 -66
  128. package/build/values/doc-front-matter-index-value.d.ts.map +0 -1
  129. package/build/values/doc-front-matter-index-value.js +0 -185
  130. package/build/values/doc-front-matter-index-value.test.d.ts +0 -2
  131. package/build/values/doc-front-matter-index-value.test.d.ts.map +0 -1
  132. package/build/values/doc-front-matter-index-value.test.js +0 -98
  133. package/build/values/doc-front-matter-md-value-accessor.test.d.ts +0 -2
  134. package/build/values/doc-front-matter-md-value-accessor.test.d.ts.map +0 -1
  135. package/build/values/doc-front-matter-md-value-accessor.test.js +0 -226
  136. package/build/values/doc-front-matter-md-value.d.ts +0 -80
  137. package/build/values/doc-front-matter-md-value.d.ts.map +0 -1
  138. package/build/values/doc-front-matter-md-value.js +0 -257
  139. package/build/values/doc-front-matter-md-value.test.d.ts +0 -2
  140. package/build/values/doc-front-matter-md-value.test.d.ts.map +0 -1
  141. package/build/values/doc-front-matter-md-value.test.js +0 -198
  142. package/build/values/doc-relation-field-value.d.ts +0 -57
  143. package/build/values/doc-relation-field-value.d.ts.map +0 -1
  144. package/build/values/doc-relation-field-value.js +0 -85
  145. package/build/values/doc-relation-field-value.test.d.ts +0 -2
  146. package/build/values/doc-relation-field-value.test.d.ts.map +0 -1
  147. package/build/values/doc-relation-field-value.test.js +0 -115
  148. package/build/values/doc-relation-file-value.d.ts +0 -33
  149. package/build/values/doc-relation-file-value.d.ts.map +0 -1
  150. package/build/values/doc-relation-file-value.js +0 -55
  151. package/build/values/doc-relation-file-value.test.d.ts +0 -2
  152. package/build/values/doc-relation-file-value.test.d.ts.map +0 -1
  153. package/build/values/doc-relation-file-value.test.js +0 -77
  154. package/build/values/doc-relation-value.d.ts +0 -34
  155. package/build/values/doc-relation-value.d.ts.map +0 -1
  156. package/build/values/doc-relation-value.js +0 -56
  157. package/build/values/doc-relation-value.test.d.ts +0 -2
  158. package/build/values/doc-relation-value.test.d.ts.map +0 -1
  159. package/build/values/doc-relation-value.test.js +0 -89
  160. package/build/values/doc-schema-field-boolean-multiple-value.d.ts +0 -23
  161. package/build/values/doc-schema-field-boolean-multiple-value.d.ts.map +0 -1
  162. package/build/values/doc-schema-field-boolean-multiple-value.js +0 -43
  163. package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts +0 -2
  164. package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts.map +0 -1
  165. package/build/values/doc-schema-field-boolean-multiple-value.test.js +0 -76
  166. package/build/values/doc-schema-field-boolean-single-value.d.ts +0 -23
  167. package/build/values/doc-schema-field-boolean-single-value.d.ts.map +0 -1
  168. package/build/values/doc-schema-field-boolean-single-value.js +0 -39
  169. package/build/values/doc-schema-field-boolean-single-value.test.d.ts +0 -2
  170. package/build/values/doc-schema-field-boolean-single-value.test.d.ts.map +0 -1
  171. package/build/values/doc-schema-field-boolean-single-value.test.js +0 -73
  172. package/build/values/doc-schema-field-factory.d.ts +0 -37
  173. package/build/values/doc-schema-field-factory.d.ts.map +0 -1
  174. package/build/values/doc-schema-field-factory.js +0 -151
  175. package/build/values/doc-schema-field-factory.test.d.ts +0 -2
  176. package/build/values/doc-schema-field-factory.test.d.ts.map +0 -1
  177. package/build/values/doc-schema-field-factory.test.js +0 -215
  178. package/build/values/doc-schema-field-number-multiple-value.d.ts +0 -23
  179. package/build/values/doc-schema-field-number-multiple-value.d.ts.map +0 -1
  180. package/build/values/doc-schema-field-number-multiple-value.js +0 -43
  181. package/build/values/doc-schema-field-number-multiple-value.test.d.ts +0 -2
  182. package/build/values/doc-schema-field-number-multiple-value.test.d.ts.map +0 -1
  183. package/build/values/doc-schema-field-number-multiple-value.test.js +0 -79
  184. package/build/values/doc-schema-field-number-single-value.d.ts +0 -23
  185. package/build/values/doc-schema-field-number-single-value.d.ts.map +0 -1
  186. package/build/values/doc-schema-field-number-single-value.js +0 -39
  187. package/build/values/doc-schema-field-number-single-value.test.d.ts +0 -2
  188. package/build/values/doc-schema-field-number-single-value.test.d.ts.map +0 -1
  189. package/build/values/doc-schema-field-number-single-value.test.js +0 -77
  190. package/build/values/doc-schema-field-relation-multiple-value.d.ts +0 -24
  191. package/build/values/doc-schema-field-relation-multiple-value.d.ts.map +0 -1
  192. package/build/values/doc-schema-field-relation-multiple-value.js +0 -46
  193. package/build/values/doc-schema-field-relation-multiple-value.test.d.ts +0 -2
  194. package/build/values/doc-schema-field-relation-multiple-value.test.d.ts.map +0 -1
  195. package/build/values/doc-schema-field-relation-multiple-value.test.js +0 -83
  196. package/build/values/doc-schema-field-relation-single-value.d.ts +0 -24
  197. package/build/values/doc-schema-field-relation-single-value.d.ts.map +0 -1
  198. package/build/values/doc-schema-field-relation-single-value.js +0 -42
  199. package/build/values/doc-schema-field-relation-single-value.test.d.ts +0 -2
  200. package/build/values/doc-schema-field-relation-single-value.test.d.ts.map +0 -1
  201. package/build/values/doc-schema-field-relation-single-value.test.js +0 -83
  202. package/build/values/doc-schema-field-select-number-multiple-value.d.ts +0 -25
  203. package/build/values/doc-schema-field-select-number-multiple-value.d.ts.map +0 -1
  204. package/build/values/doc-schema-field-select-number-multiple-value.js +0 -48
  205. package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts +0 -2
  206. package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts.map +0 -1
  207. package/build/values/doc-schema-field-select-number-multiple-value.test.js +0 -84
  208. package/build/values/doc-schema-field-select-number-single-value.d.ts +0 -25
  209. package/build/values/doc-schema-field-select-number-single-value.d.ts.map +0 -1
  210. package/build/values/doc-schema-field-select-number-single-value.js +0 -45
  211. package/build/values/doc-schema-field-select-number-single-value.test.d.ts +0 -2
  212. package/build/values/doc-schema-field-select-number-single-value.test.d.ts.map +0 -1
  213. package/build/values/doc-schema-field-select-number-single-value.test.js +0 -96
  214. package/build/values/doc-schema-field-select-text-multiple-value.d.ts +0 -25
  215. package/build/values/doc-schema-field-select-text-multiple-value.d.ts.map +0 -1
  216. package/build/values/doc-schema-field-select-text-multiple-value.js +0 -48
  217. package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts +0 -2
  218. package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts.map +0 -1
  219. package/build/values/doc-schema-field-select-text-multiple-value.test.js +0 -84
  220. package/build/values/doc-schema-field-select-text-single-value.d.ts +0 -25
  221. package/build/values/doc-schema-field-select-text-single-value.d.ts.map +0 -1
  222. package/build/values/doc-schema-field-select-text-single-value.js +0 -47
  223. package/build/values/doc-schema-field-select-text-single-value.test.d.ts +0 -2
  224. package/build/values/doc-schema-field-select-text-single-value.test.d.ts.map +0 -1
  225. package/build/values/doc-schema-field-select-text-single-value.test.js +0 -96
  226. package/build/values/doc-schema-field-text-multiple-value.d.ts +0 -23
  227. package/build/values/doc-schema-field-text-multiple-value.d.ts.map +0 -1
  228. package/build/values/doc-schema-field-text-multiple-value.js +0 -43
  229. package/build/values/doc-schema-field-text-multiple-value.test.d.ts +0 -2
  230. package/build/values/doc-schema-field-text-multiple-value.test.d.ts.map +0 -1
  231. package/build/values/doc-schema-field-text-multiple-value.test.js +0 -78
  232. package/build/values/doc-schema-field-text-single-value.d.ts +0 -23
  233. package/build/values/doc-schema-field-text-single-value.d.ts.map +0 -1
  234. package/build/values/doc-schema-field-text-single-value.js +0 -39
  235. package/build/values/doc-schema-field-text-single-value.test.d.ts +0 -2
  236. package/build/values/doc-schema-field-text-single-value.test.d.ts.map +0 -1
  237. package/build/values/doc-schema-field-text-single-value.test.js +0 -76
  238. package/build/values/doc-schema-field-type-value.d.ts +0 -61
  239. package/build/values/doc-schema-field-type-value.d.ts.map +0 -1
  240. package/build/values/doc-schema-field-type-value.js +0 -134
  241. package/build/values/doc-schema-field-type-value.test.d.ts +0 -2
  242. package/build/values/doc-schema-field-type-value.test.d.ts.map +0 -1
  243. package/build/values/doc-schema-field-type-value.test.js +0 -101
  244. package/build/values/doc-schema-field-value.d.ts +0 -45
  245. package/build/values/doc-schema-field-value.d.ts.map +0 -1
  246. package/build/values/doc-schema-field-value.js +0 -1
  247. package/build/values/doc-schema-value.d.ts +0 -99
  248. package/build/values/doc-schema-value.d.ts.map +0 -1
  249. package/build/values/doc-schema-value.js +0 -269
  250. package/build/values/doc-schema-value.test.d.ts +0 -2
  251. package/build/values/doc-schema-value.test.d.ts.map +0 -1
  252. package/build/values/doc-schema-value.test.js +0 -301
  253. package/build/values/doc-tree-directory-node-value.d.ts +0 -36
  254. package/build/values/doc-tree-directory-node-value.d.ts.map +0 -1
  255. package/build/values/doc-tree-directory-node-value.js +0 -71
  256. package/build/values/doc-tree-directory-node-value.test.d.ts +0 -2
  257. package/build/values/doc-tree-directory-node-value.test.d.ts.map +0 -1
  258. package/build/values/doc-tree-directory-node-value.test.js +0 -162
  259. package/build/values/doc-tree-file-node-value.d.ts +0 -33
  260. package/build/values/doc-tree-file-node-value.d.ts.map +0 -1
  261. package/build/values/doc-tree-file-node-value.js +0 -56
  262. package/build/values/doc-tree-file-node-value.test.d.ts +0 -2
  263. package/build/values/doc-tree-file-node-value.test.d.ts.map +0 -1
  264. package/build/values/doc-tree-file-node-value.test.js +0 -113
  265. package/debug/debug.ts +0 -108
@@ -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":""}