@interactive-inc/docs-client 0.0.4 → 0.0.6

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 (268) hide show
  1. package/README.md +228 -0
  2. package/build/doc-client.d.ts +59 -0
  3. package/build/doc-client.d.ts.map +1 -0
  4. package/build/doc-client.js +95 -0
  5. package/build/doc-client.test.d.ts +2 -0
  6. package/build/doc-client.test.d.ts.map +1 -0
  7. package/build/doc-client.test.js +38 -0
  8. package/build/doc-directory-reference.d.ts +65 -0
  9. package/build/doc-directory-reference.d.ts.map +1 -0
  10. package/build/doc-directory-reference.js +292 -0
  11. package/build/doc-directory-reference.test.d.ts +2 -0
  12. package/build/doc-directory-reference.test.d.ts.map +1 -0
  13. package/build/doc-directory-reference.test.js +100 -0
  14. package/build/doc-file-index-reference.d.ts +72 -0
  15. package/build/doc-file-index-reference.d.ts.map +1 -0
  16. package/build/doc-file-index-reference.js +191 -0
  17. package/build/doc-file-index-reference.test.d.ts +2 -0
  18. package/build/doc-file-index-reference.test.d.ts.map +1 -0
  19. package/build/doc-file-index-reference.test.js +77 -0
  20. package/build/doc-file-md-reference.d.ts +97 -0
  21. package/build/doc-file-md-reference.d.ts.map +1 -0
  22. package/build/doc-file-md-reference.js +297 -0
  23. package/build/doc-file-md-reference.test.d.ts +2 -0
  24. package/build/doc-file-md-reference.test.d.ts.map +1 -0
  25. package/build/doc-file-md-reference.test.js +465 -0
  26. package/build/doc-file-relation-reference.d.ts +54 -0
  27. package/build/doc-file-relation-reference.d.ts.map +1 -0
  28. package/build/doc-file-relation-reference.js +109 -0
  29. package/build/doc-file-system-debug.d.ts +81 -0
  30. package/build/doc-file-system-debug.d.ts.map +1 -0
  31. package/build/doc-file-system-debug.js +317 -0
  32. package/build/doc-file-system.d.ts +100 -0
  33. package/build/doc-file-system.d.ts.map +1 -0
  34. package/build/doc-file-system.js +210 -0
  35. package/build/doc-file-tree-system.d.ts +38 -0
  36. package/build/doc-file-tree-system.d.ts.map +1 -0
  37. package/build/doc-file-tree-system.js +153 -0
  38. package/build/doc-file-tree-system.test.d.ts +2 -0
  39. package/build/doc-file-tree-system.test.d.ts.map +1 -0
  40. package/build/doc-file-tree-system.test.js +105 -0
  41. package/build/doc-file-unknown-reference.d.ts +80 -0
  42. package/build/doc-file-unknown-reference.d.ts.map +1 -0
  43. package/build/doc-file-unknown-reference.js +181 -0
  44. package/build/doc-file-unknown-reference.test.d.ts +2 -0
  45. package/build/doc-file-unknown-reference.test.d.ts.map +1 -0
  46. package/build/doc-file-unknown-reference.test.js +73 -0
  47. package/build/doc-markdown-system.d.ts +44 -0
  48. package/build/doc-markdown-system.d.ts.map +1 -0
  49. package/build/doc-markdown-system.js +153 -0
  50. package/build/doc-markdown-system.test.d.ts +2 -0
  51. package/build/doc-markdown-system.test.d.ts.map +1 -0
  52. package/build/doc-markdown-system.test.js +124 -0
  53. package/build/doc-path-system.d.ts +43 -0
  54. package/build/doc-path-system.d.ts.map +1 -0
  55. package/build/doc-path-system.js +148 -0
  56. package/build/doc-path-system.test.d.ts +2 -0
  57. package/build/doc-path-system.test.d.ts.map +1 -0
  58. package/build/doc-path-system.test.js +67 -0
  59. package/build/entities/doc-file-entity.d.ts +5 -0
  60. package/build/entities/doc-file-entity.d.ts.map +1 -0
  61. package/build/entities/doc-file-entity.js +1 -0
  62. package/build/entities/doc-file-index-entity.d.ts +30 -0
  63. package/build/entities/doc-file-index-entity.d.ts.map +1 -0
  64. package/build/entities/doc-file-index-entity.js +49 -0
  65. package/build/entities/doc-file-index-entity.test.d.ts +2 -0
  66. package/build/entities/doc-file-index-entity.test.d.ts.map +1 -0
  67. package/build/entities/doc-file-index-entity.test.js +195 -0
  68. package/build/entities/doc-file-md-entity.d.ts +30 -0
  69. package/build/entities/doc-file-md-entity.d.ts.map +1 -0
  70. package/build/entities/doc-file-md-entity.js +49 -0
  71. package/build/entities/doc-file-md-entity.test.d.ts +2 -0
  72. package/build/entities/doc-file-md-entity.test.d.ts.map +1 -0
  73. package/build/entities/doc-file-md-entity.test.js +178 -0
  74. package/build/entities/doc-file-unknown-entity.d.ts +26 -0
  75. package/build/entities/doc-file-unknown-entity.d.ts.map +1 -0
  76. package/build/entities/doc-file-unknown-entity.js +45 -0
  77. package/build/entities/doc-file-unknown-entity.test.d.ts +2 -0
  78. package/build/entities/doc-file-unknown-entity.test.d.ts.map +1 -0
  79. package/build/entities/doc-file-unknown-entity.test.js +131 -0
  80. package/build/index.d.ts +42 -0
  81. package/build/index.d.ts.map +1 -0
  82. package/build/index.js +39 -24064
  83. package/build/models.d.ts +818 -0
  84. package/build/models.d.ts.map +1 -0
  85. package/build/models.js +312 -0
  86. package/build/types.d.ts +154 -0
  87. package/build/types.d.ts.map +1 -0
  88. package/build/types.js +1 -0
  89. package/build/values/doc-content-md-front-matter-value.d.ts +49 -0
  90. package/build/values/doc-content-md-front-matter-value.d.ts.map +1 -0
  91. package/build/values/doc-content-md-front-matter-value.js +94 -0
  92. package/build/values/doc-content-md-front-matter-value.test.d.ts +2 -0
  93. package/build/values/doc-content-md-front-matter-value.test.d.ts.map +1 -0
  94. package/build/values/doc-content-md-front-matter-value.test.js +73 -0
  95. package/build/values/doc-content-md-value.d.ts +66 -0
  96. package/build/values/doc-content-md-value.d.ts.map +1 -0
  97. package/build/values/doc-content-md-value.js +218 -0
  98. package/build/values/doc-content-md-value.test.d.ts +2 -0
  99. package/build/values/doc-content-md-value.test.d.ts.map +1 -0
  100. package/build/values/doc-content-md-value.test.js +179 -0
  101. package/build/values/doc-directory-path-value.d.ts +89 -0
  102. package/build/values/doc-directory-path-value.d.ts.map +1 -0
  103. package/build/values/doc-directory-path-value.js +145 -0
  104. package/build/values/doc-directory-path-value.test.d.ts +2 -0
  105. package/build/values/doc-directory-path-value.test.d.ts.map +1 -0
  106. package/build/values/doc-directory-path-value.test.js +68 -0
  107. package/build/values/doc-file-content-index-value.d.ts +62 -0
  108. package/build/values/doc-file-content-index-value.d.ts.map +1 -0
  109. package/build/values/doc-file-content-index-value.js +134 -0
  110. package/build/values/doc-file-content-index-value.test.d.ts +2 -0
  111. package/build/values/doc-file-content-index-value.test.d.ts.map +1 -0
  112. package/build/values/doc-file-content-index-value.test.js +203 -0
  113. package/build/values/doc-file-content-md-value.d.ts +62 -0
  114. package/build/values/doc-file-content-md-value.d.ts.map +1 -0
  115. package/build/values/doc-file-content-md-value.js +139 -0
  116. package/build/values/doc-file-content-md-value.test.d.ts +2 -0
  117. package/build/values/doc-file-content-md-value.test.d.ts.map +1 -0
  118. package/build/values/doc-file-content-md-value.test.js +160 -0
  119. package/build/values/doc-file-path-value.d.ts +47 -0
  120. package/build/values/doc-file-path-value.d.ts.map +1 -0
  121. package/build/values/doc-file-path-value.js +83 -0
  122. package/build/values/doc-file-path-value.test.d.ts +2 -0
  123. package/build/values/doc-file-path-value.test.d.ts.map +1 -0
  124. package/build/values/doc-file-path-value.test.js +84 -0
  125. package/build/values/doc-front-matter-index-value.d.ts +66 -0
  126. package/build/values/doc-front-matter-index-value.d.ts.map +1 -0
  127. package/build/values/doc-front-matter-index-value.js +185 -0
  128. package/build/values/doc-front-matter-index-value.test.d.ts +2 -0
  129. package/build/values/doc-front-matter-index-value.test.d.ts.map +1 -0
  130. package/build/values/doc-front-matter-index-value.test.js +98 -0
  131. package/build/values/doc-front-matter-md-value-accessor.test.d.ts +2 -0
  132. package/build/values/doc-front-matter-md-value-accessor.test.d.ts.map +1 -0
  133. package/build/values/doc-front-matter-md-value-accessor.test.js +226 -0
  134. package/build/values/doc-front-matter-md-value.d.ts +80 -0
  135. package/build/values/doc-front-matter-md-value.d.ts.map +1 -0
  136. package/build/values/doc-front-matter-md-value.js +257 -0
  137. package/build/values/doc-front-matter-md-value.test.d.ts +2 -0
  138. package/build/values/doc-front-matter-md-value.test.d.ts.map +1 -0
  139. package/build/values/doc-front-matter-md-value.test.js +198 -0
  140. package/build/values/doc-relation-field-value.d.ts +57 -0
  141. package/build/values/doc-relation-field-value.d.ts.map +1 -0
  142. package/build/values/doc-relation-field-value.js +85 -0
  143. package/build/values/doc-relation-field-value.test.d.ts +2 -0
  144. package/build/values/doc-relation-field-value.test.d.ts.map +1 -0
  145. package/build/values/doc-relation-field-value.test.js +115 -0
  146. package/build/values/doc-relation-file-value.d.ts +33 -0
  147. package/build/values/doc-relation-file-value.d.ts.map +1 -0
  148. package/build/values/doc-relation-file-value.js +55 -0
  149. package/build/values/doc-relation-file-value.test.d.ts +2 -0
  150. package/build/values/doc-relation-file-value.test.d.ts.map +1 -0
  151. package/build/values/doc-relation-file-value.test.js +77 -0
  152. package/build/values/doc-relation-value.d.ts +34 -0
  153. package/build/values/doc-relation-value.d.ts.map +1 -0
  154. package/build/values/doc-relation-value.js +56 -0
  155. package/build/values/doc-relation-value.test.d.ts +2 -0
  156. package/build/values/doc-relation-value.test.d.ts.map +1 -0
  157. package/build/values/doc-relation-value.test.js +89 -0
  158. package/build/values/doc-schema-field-boolean-multiple-value.d.ts +23 -0
  159. package/build/values/doc-schema-field-boolean-multiple-value.d.ts.map +1 -0
  160. package/build/values/doc-schema-field-boolean-multiple-value.js +43 -0
  161. package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts +2 -0
  162. package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts.map +1 -0
  163. package/build/values/doc-schema-field-boolean-multiple-value.test.js +76 -0
  164. package/build/values/doc-schema-field-boolean-single-value.d.ts +23 -0
  165. package/build/values/doc-schema-field-boolean-single-value.d.ts.map +1 -0
  166. package/build/values/doc-schema-field-boolean-single-value.js +39 -0
  167. package/build/values/doc-schema-field-boolean-single-value.test.d.ts +2 -0
  168. package/build/values/doc-schema-field-boolean-single-value.test.d.ts.map +1 -0
  169. package/build/values/doc-schema-field-boolean-single-value.test.js +73 -0
  170. package/build/values/doc-schema-field-factory.d.ts +37 -0
  171. package/build/values/doc-schema-field-factory.d.ts.map +1 -0
  172. package/build/values/doc-schema-field-factory.js +151 -0
  173. package/build/values/doc-schema-field-factory.test.d.ts +2 -0
  174. package/build/values/doc-schema-field-factory.test.d.ts.map +1 -0
  175. package/build/values/doc-schema-field-factory.test.js +215 -0
  176. package/build/values/doc-schema-field-number-multiple-value.d.ts +23 -0
  177. package/build/values/doc-schema-field-number-multiple-value.d.ts.map +1 -0
  178. package/build/values/doc-schema-field-number-multiple-value.js +43 -0
  179. package/build/values/doc-schema-field-number-multiple-value.test.d.ts +2 -0
  180. package/build/values/doc-schema-field-number-multiple-value.test.d.ts.map +1 -0
  181. package/build/values/doc-schema-field-number-multiple-value.test.js +79 -0
  182. package/build/values/doc-schema-field-number-single-value.d.ts +23 -0
  183. package/build/values/doc-schema-field-number-single-value.d.ts.map +1 -0
  184. package/build/values/doc-schema-field-number-single-value.js +39 -0
  185. package/build/values/doc-schema-field-number-single-value.test.d.ts +2 -0
  186. package/build/values/doc-schema-field-number-single-value.test.d.ts.map +1 -0
  187. package/build/values/doc-schema-field-number-single-value.test.js +77 -0
  188. package/build/values/doc-schema-field-relation-multiple-value.d.ts +24 -0
  189. package/build/values/doc-schema-field-relation-multiple-value.d.ts.map +1 -0
  190. package/build/values/doc-schema-field-relation-multiple-value.js +46 -0
  191. package/build/values/doc-schema-field-relation-multiple-value.test.d.ts +2 -0
  192. package/build/values/doc-schema-field-relation-multiple-value.test.d.ts.map +1 -0
  193. package/build/values/doc-schema-field-relation-multiple-value.test.js +83 -0
  194. package/build/values/doc-schema-field-relation-single-value.d.ts +24 -0
  195. package/build/values/doc-schema-field-relation-single-value.d.ts.map +1 -0
  196. package/build/values/doc-schema-field-relation-single-value.js +42 -0
  197. package/build/values/doc-schema-field-relation-single-value.test.d.ts +2 -0
  198. package/build/values/doc-schema-field-relation-single-value.test.d.ts.map +1 -0
  199. package/build/values/doc-schema-field-relation-single-value.test.js +83 -0
  200. package/build/values/doc-schema-field-select-number-multiple-value.d.ts +25 -0
  201. package/build/values/doc-schema-field-select-number-multiple-value.d.ts.map +1 -0
  202. package/build/values/doc-schema-field-select-number-multiple-value.js +48 -0
  203. package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts +2 -0
  204. package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts.map +1 -0
  205. package/build/values/doc-schema-field-select-number-multiple-value.test.js +84 -0
  206. package/build/values/doc-schema-field-select-number-single-value.d.ts +25 -0
  207. package/build/values/doc-schema-field-select-number-single-value.d.ts.map +1 -0
  208. package/build/values/doc-schema-field-select-number-single-value.js +45 -0
  209. package/build/values/doc-schema-field-select-number-single-value.test.d.ts +2 -0
  210. package/build/values/doc-schema-field-select-number-single-value.test.d.ts.map +1 -0
  211. package/build/values/doc-schema-field-select-number-single-value.test.js +96 -0
  212. package/build/values/doc-schema-field-select-text-multiple-value.d.ts +25 -0
  213. package/build/values/doc-schema-field-select-text-multiple-value.d.ts.map +1 -0
  214. package/build/values/doc-schema-field-select-text-multiple-value.js +48 -0
  215. package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts +2 -0
  216. package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts.map +1 -0
  217. package/build/values/doc-schema-field-select-text-multiple-value.test.js +84 -0
  218. package/build/values/doc-schema-field-select-text-single-value.d.ts +25 -0
  219. package/build/values/doc-schema-field-select-text-single-value.d.ts.map +1 -0
  220. package/build/values/doc-schema-field-select-text-single-value.js +47 -0
  221. package/build/values/doc-schema-field-select-text-single-value.test.d.ts +2 -0
  222. package/build/values/doc-schema-field-select-text-single-value.test.d.ts.map +1 -0
  223. package/build/values/doc-schema-field-select-text-single-value.test.js +96 -0
  224. package/build/values/doc-schema-field-text-multiple-value.d.ts +23 -0
  225. package/build/values/doc-schema-field-text-multiple-value.d.ts.map +1 -0
  226. package/build/values/doc-schema-field-text-multiple-value.js +43 -0
  227. package/build/values/doc-schema-field-text-multiple-value.test.d.ts +2 -0
  228. package/build/values/doc-schema-field-text-multiple-value.test.d.ts.map +1 -0
  229. package/build/values/doc-schema-field-text-multiple-value.test.js +78 -0
  230. package/build/values/doc-schema-field-text-single-value.d.ts +23 -0
  231. package/build/values/doc-schema-field-text-single-value.d.ts.map +1 -0
  232. package/build/values/doc-schema-field-text-single-value.js +39 -0
  233. package/build/values/doc-schema-field-text-single-value.test.d.ts +2 -0
  234. package/build/values/doc-schema-field-text-single-value.test.d.ts.map +1 -0
  235. package/build/values/doc-schema-field-text-single-value.test.js +76 -0
  236. package/build/values/doc-schema-field-type-value.d.ts +61 -0
  237. package/build/values/doc-schema-field-type-value.d.ts.map +1 -0
  238. package/build/values/doc-schema-field-type-value.js +134 -0
  239. package/build/values/doc-schema-field-type-value.test.d.ts +2 -0
  240. package/build/values/doc-schema-field-type-value.test.d.ts.map +1 -0
  241. package/build/values/doc-schema-field-type-value.test.js +101 -0
  242. package/build/values/doc-schema-field-value.d.ts +45 -0
  243. package/build/values/doc-schema-field-value.d.ts.map +1 -0
  244. package/build/values/doc-schema-field-value.js +1 -0
  245. package/build/values/doc-schema-value.d.ts +99 -0
  246. package/build/values/doc-schema-value.d.ts.map +1 -0
  247. package/build/values/doc-schema-value.js +269 -0
  248. package/build/values/doc-schema-value.test.d.ts +2 -0
  249. package/build/values/doc-schema-value.test.d.ts.map +1 -0
  250. package/build/values/doc-schema-value.test.js +301 -0
  251. package/build/values/doc-tree-directory-node-value.d.ts +36 -0
  252. package/build/values/doc-tree-directory-node-value.d.ts.map +1 -0
  253. package/build/values/doc-tree-directory-node-value.js +71 -0
  254. package/build/values/doc-tree-directory-node-value.test.d.ts +2 -0
  255. package/build/values/doc-tree-directory-node-value.test.d.ts.map +1 -0
  256. package/build/values/doc-tree-directory-node-value.test.js +162 -0
  257. package/build/values/doc-tree-file-node-value.d.ts +33 -0
  258. package/build/values/doc-tree-file-node-value.d.ts.map +1 -0
  259. package/build/values/doc-tree-file-node-value.js +56 -0
  260. package/build/values/doc-tree-file-node-value.test.d.ts +2 -0
  261. package/build/values/doc-tree-file-node-value.test.d.ts.map +1 -0
  262. package/build/values/doc-tree-file-node-value.test.js +113 -0
  263. package/debug/debug.ts +108 -0
  264. package/package.json +7 -45
  265. package/bin/docs.js +0 -3
  266. package/build/assets/index.css +0 -1
  267. package/build/assets/index.js +0 -298
  268. package/build/index.html +0 -13
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-file-content-md-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-file-content-md-value.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE;;GAEG;AACH,qBAAa,qBAAqB;IACpB,QAAQ,CAAC,KAAK,EAAE,gBAAgB;IAA5C,YAAqB,KAAK,EAAE,gBAAgB,EAG3C;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,qBAAqB,CAEvC;IAED;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAY9C;IAED;;OAEG;IACH,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACpB,qBAAqB,CAgBvB;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CASlD;IAED;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,qBAAqB,GAAG,qBAAqB,CAQzE;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAW3D;IAED;;OAEG;IACH,cAAc,IAAI,MAAM,CAEvB;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAQjD;IAED;;OAEG;IACH,MAAM,IAAI,gBAAgB,CAEzB;CACF"}
@@ -0,0 +1,139 @@
1
+ import { DocMarkdownSystem } from "../doc-markdown-system";
2
+ import { zDocFileContentMd } from "../models";
3
+ import { DocFrontMatterMdValue } from "./doc-front-matter-md-value";
4
+ /**
5
+ * Markdownコンテンツ情報の値オブジェクト
6
+ */
7
+ export class DocFileContentMdValue {
8
+ value;
9
+ constructor(value) {
10
+ this.value = value;
11
+ zDocFileContentMd.parse(value);
12
+ Object.freeze(this);
13
+ }
14
+ /**
15
+ * コンテンツ本文(frontMatterを含まない)
16
+ */
17
+ get body() {
18
+ return this.value.body;
19
+ }
20
+ /**
21
+ * タイトル
22
+ */
23
+ get title() {
24
+ return this.value.title;
25
+ }
26
+ /**
27
+ * 説明
28
+ */
29
+ get description() {
30
+ return this.value.description;
31
+ }
32
+ /**
33
+ * FrontMatter
34
+ */
35
+ get frontMatter() {
36
+ return new DocFrontMatterMdValue(this.value.frontMatter);
37
+ }
38
+ /**
39
+ * タイトルを更新
40
+ */
41
+ withTitle(title) {
42
+ const fullText = this.toText();
43
+ const engine = new DocMarkdownSystem();
44
+ const updatedText = engine.updateTitle(fullText, title);
45
+ const updatedBody = engine.extractBody(updatedText);
46
+ return new DocFileContentMdValue({
47
+ type: "markdown-content",
48
+ body: updatedBody,
49
+ title,
50
+ description: this.description,
51
+ frontMatter: this.value.frontMatter,
52
+ });
53
+ }
54
+ /**
55
+ * 説明を更新
56
+ */
57
+ withDescription(description, defaultTitle) {
58
+ const fullText = this.toText();
59
+ const engine = new DocMarkdownSystem();
60
+ const updatedText = engine.updateDescription(fullText, description, defaultTitle || this.title);
61
+ const updatedBody = engine.extractBody(updatedText);
62
+ return new DocFileContentMdValue({
63
+ type: "markdown-content",
64
+ body: updatedBody,
65
+ title: this.title,
66
+ description,
67
+ frontMatter: this.value.frontMatter,
68
+ });
69
+ }
70
+ /**
71
+ * コンテンツを更新
72
+ */
73
+ withContent(content) {
74
+ const engine = new DocMarkdownSystem();
75
+ return new DocFileContentMdValue({
76
+ type: "markdown-content",
77
+ body: content,
78
+ title: engine.extractTitle(content) || "",
79
+ description: engine.extractDescription(content) || "",
80
+ frontMatter: this.value.frontMatter,
81
+ });
82
+ }
83
+ /**
84
+ * FrontMatterを更新
85
+ */
86
+ withFrontMatter(frontMatter) {
87
+ return new DocFileContentMdValue({
88
+ type: "markdown-content",
89
+ body: this.body,
90
+ title: this.title,
91
+ description: this.description,
92
+ frontMatter: frontMatter.value,
93
+ });
94
+ }
95
+ /**
96
+ * Markdownテキストから生成
97
+ */
98
+ static fromMarkdown(markdown) {
99
+ const engine = new DocMarkdownSystem();
100
+ const frontMatter = DocFrontMatterMdValue.from(markdown);
101
+ return new DocFileContentMdValue({
102
+ type: "markdown-content",
103
+ body: engine.extractBody(markdown),
104
+ title: engine.extractTitle(markdown) || "",
105
+ description: engine.extractDescription(markdown) || "",
106
+ frontMatter: frontMatter.value,
107
+ });
108
+ }
109
+ /**
110
+ * 完全なMarkdownテキストを生成
111
+ */
112
+ toMarkdownText() {
113
+ return DocMarkdownSystem.from(this.title, this.description, this.body);
114
+ }
115
+ /**
116
+ * FrontMatterとbodyを結合した完全なテキストを生成
117
+ */
118
+ toText() {
119
+ return `---\n${this.frontMatter.toYaml()}\n---\n\n${this.body}`;
120
+ }
121
+ /**
122
+ * 空のコンテンツを生成
123
+ */
124
+ static empty(title) {
125
+ return new DocFileContentMdValue({
126
+ type: "markdown-content",
127
+ body: `# ${title}`,
128
+ title,
129
+ description: "",
130
+ frontMatter: {},
131
+ });
132
+ }
133
+ /**
134
+ * JSON形式で出力
135
+ */
136
+ toJson() {
137
+ return this.value;
138
+ }
139
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=doc-file-content-md-value.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-file-content-md-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-file-content-md-value.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,160 @@
1
+ import { expect, test } from "bun:test";
2
+ import { DocFileContentMdValue } from "./doc-file-content-md-value";
3
+ import { DocFrontMatterMdValue } from "./doc-front-matter-md-value";
4
+ test("DocFileContentMdValue - 基本的な作成とプロパティアクセス", () => {
5
+ const value = new DocFileContentMdValue({
6
+ type: "markdown-content",
7
+ body: "# タイトル\n\n説明文\n\n本文",
8
+ title: "タイトル",
9
+ description: "説明文",
10
+ frontMatter: {
11
+ title: "メタタイトル",
12
+ description: "メタ説明",
13
+ tags: ["tag1", "tag2"],
14
+ },
15
+ });
16
+ expect(value.body).toBe("# タイトル\n\n説明文\n\n本文");
17
+ expect(value.title).toBe("タイトル");
18
+ expect(value.description).toBe("説明文");
19
+ });
20
+ test("DocFileContentMdValue - frontMatter getterが値オブジェクトを返す", () => {
21
+ const value = new DocFileContentMdValue({
22
+ type: "markdown-content",
23
+ body: "",
24
+ title: "",
25
+ description: "",
26
+ frontMatter: {
27
+ author: "作者名",
28
+ },
29
+ });
30
+ const frontMatter = value.frontMatter;
31
+ expect(frontMatter).toBeInstanceOf(DocFrontMatterMdValue);
32
+ expect(frontMatter.value.author).toBe("作者名");
33
+ });
34
+ test("DocFileContentMdValue - withTitleで新しいインスタンスを作成", () => {
35
+ const value = new DocFileContentMdValue({
36
+ type: "markdown-content",
37
+ body: "# 古いタイトル\n\n説明文",
38
+ title: "古いタイトル",
39
+ description: "説明文",
40
+ frontMatter: {},
41
+ });
42
+ const newValue = value.withTitle("新しいタイトル");
43
+ expect(newValue).not.toBe(value); // 新しいインスタンス
44
+ expect(newValue.title).toBe("新しいタイトル");
45
+ expect(newValue.body).toContain("# 新しいタイトル");
46
+ expect(value.title).toBe("古いタイトル"); // 元は変更されない
47
+ });
48
+ test("DocFileContentMdValue - withDescriptionで新しいインスタンスを作成", () => {
49
+ const value = new DocFileContentMdValue({
50
+ type: "markdown-content",
51
+ body: "# タイトル\n\n古い説明",
52
+ title: "タイトル",
53
+ description: "古い説明",
54
+ frontMatter: {},
55
+ });
56
+ const newValue = value.withDescription("新しい説明");
57
+ expect(newValue).not.toBe(value);
58
+ expect(newValue.description).toBe("新しい説明");
59
+ expect(newValue.body).toContain("新しい説明");
60
+ });
61
+ test("DocFileContentMdValue - withContentで新しいインスタンスを作成", () => {
62
+ const value = new DocFileContentMdValue({
63
+ type: "markdown-content",
64
+ body: "古い内容",
65
+ title: "タイトル",
66
+ description: "説明",
67
+ frontMatter: {},
68
+ });
69
+ const newValue = value.withContent("新しい内容");
70
+ expect(newValue).not.toBe(value);
71
+ expect(newValue.body).toBe("新しい内容");
72
+ // タイトルは新しい内容から解析される
73
+ expect(newValue.title).toBe("");
74
+ expect(newValue.description).toBe("");
75
+ });
76
+ test("DocFileContentMdValue - withFrontMatterで新しいインスタンスを作成", () => {
77
+ const value = new DocFileContentMdValue({
78
+ type: "markdown-content",
79
+ body: "# タイトル",
80
+ title: "タイトル",
81
+ description: "",
82
+ frontMatter: {
83
+ tags: ["old"],
84
+ },
85
+ });
86
+ const newFrontMatter = new DocFrontMatterMdValue({
87
+ tags: ["new", "tags"],
88
+ author: "新しい作者",
89
+ });
90
+ const newValue = value.withFrontMatter(newFrontMatter);
91
+ expect(newValue).not.toBe(value);
92
+ expect(newValue.frontMatter.value.tags).toEqual(["new", "tags"]);
93
+ expect(newValue.frontMatter.value.author).toBe("新しい作者");
94
+ expect(value.frontMatter.value.tags).toEqual(["old"]); // 元は変更されない
95
+ });
96
+ test("DocFileContentMdValue - fromMarkdownでMarkdownから生成", () => {
97
+ const markdown = `---
98
+ title: "メタタイトル"
99
+ description: "メタ説明"
100
+ tags: ["tag1", "tag2"]
101
+ ---
102
+
103
+ # ドキュメントタイトル
104
+
105
+ これは説明文です。
106
+
107
+ 本文の内容`;
108
+ const value = DocFileContentMdValue.fromMarkdown(markdown);
109
+ expect(value.title).toBe("ドキュメントタイトル");
110
+ expect(value.description).toBe("これは説明文です。");
111
+ expect(value.body).toContain("# ドキュメントタイトル");
112
+ expect(value.frontMatter.value.tags).toEqual(["tag1", "tag2"]);
113
+ });
114
+ test("DocFileContentMdValue - emptyでデフォルトコンテンツを生成", () => {
115
+ const value = DocFileContentMdValue.empty("テストファイル");
116
+ expect(value.title).toBe("テストファイル");
117
+ expect(value.frontMatter.value).toEqual({});
118
+ expect(value.body).toBe("# テストファイル");
119
+ });
120
+ test("DocFileContentMdValue - toTextでFrontMatter付きテキストを生成", () => {
121
+ const value = new DocFileContentMdValue({
122
+ type: "markdown-content",
123
+ body: "# タイトル\n\n本文",
124
+ title: "タイトル",
125
+ description: "",
126
+ frontMatter: {
127
+ date: "2024-01-01",
128
+ },
129
+ });
130
+ const text = value.toText();
131
+ expect(text).toContain("---");
132
+ expect(text).toContain("date: ");
133
+ expect(text).toContain("# タイトル");
134
+ expect(text).toContain("本文");
135
+ });
136
+ test("DocFileContentMdValue - toMarkdownTextでbodyのみのテキストを生成", () => {
137
+ const value = new DocFileContentMdValue({
138
+ type: "markdown-content",
139
+ body: "既存の本文",
140
+ title: "タイトル",
141
+ description: "説明",
142
+ frontMatter: {},
143
+ });
144
+ const text = value.toMarkdownText();
145
+ expect(text).toBe("# タイトル\n\n説明\n\n既存の本文");
146
+ expect(text).not.toContain("---"); // FrontMatterは含まない
147
+ });
148
+ test("DocFileContentMdValue - toJsonで元のデータ構造を返す", () => {
149
+ const data = {
150
+ type: "markdown-content",
151
+ body: "# タイトル",
152
+ title: "タイトル",
153
+ description: "説明",
154
+ frontMatter: {
155
+ tags: ["tag1"],
156
+ },
157
+ };
158
+ const value = new DocFileContentMdValue(data);
159
+ expect(value.toJson()).toEqual(data);
160
+ });
@@ -0,0 +1,47 @@
1
+ import type { DocPathSystem } from "../doc-path-system";
2
+ import type { DocFilePath } from "../types";
3
+ /**
4
+ * ファイルパス情報の値オブジェクト
5
+ */
6
+ export declare class DocFilePathValue {
7
+ readonly value: DocFilePath;
8
+ private readonly pathSystem;
9
+ constructor(value: DocFilePath, pathSystem: DocPathSystem);
10
+ /**
11
+ * ファイル名(拡張子なし)
12
+ */
13
+ get name(): string;
14
+ /**
15
+ * ファイルパス(相対パス)
16
+ */
17
+ get path(): string;
18
+ /**
19
+ * ファイル名(拡張子付き)
20
+ */
21
+ get nameWithExtension(): string;
22
+ /**
23
+ * フルパス(絶対パス)
24
+ */
25
+ get fullPath(): string;
26
+ /**
27
+ * ディレクトリパス
28
+ */
29
+ get directoryPath(): string;
30
+ /**
31
+ * 拡張子
32
+ */
33
+ get extension(): string;
34
+ /**
35
+ * アーカイブされているかどうか
36
+ */
37
+ get isArchived(): boolean;
38
+ /**
39
+ * 相対パスからインスタンスを生成(DI対応)
40
+ */
41
+ static fromPathWithSystem(filePath: string, pathSystem: DocPathSystem, basePath?: string): DocFilePathValue;
42
+ /**
43
+ * JSON形式で出力
44
+ */
45
+ toJson(): DocFilePath;
46
+ }
47
+ //# sourceMappingURL=doc-file-path-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-file-path-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-file-path-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C;;GAEG;AACH,qBAAa,gBAAgB;IAIzB,QAAQ,CAAC,KAAK,EAAE,WAAW;IAH7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAE1C,YACW,KAAK,EAAE,WAAW,EAC3B,UAAU,EAAE,aAAa,EAK1B;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,aAAa,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,gBAAgB,CAuBlB;IAED;;OAEG;IACH,MAAM,IAAI,WAAW,CAEpB;CACF"}
@@ -0,0 +1,83 @@
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
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=doc-file-path-value.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-file-path-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-file-path-value.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
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
+ });
@@ -0,0 +1,66 @@
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
@@ -0,0 +1 @@
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"}