@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,203 +0,0 @@
1
- import { expect, test } from "bun:test";
2
- import { DocFileContentIndexValue } from "./doc-file-content-index-value";
3
- import { DocFrontMatterIndexValue } from "./doc-front-matter-index-value";
4
- test("DocFileContentIndexValue - 基本的な作成とプロパティアクセス", () => {
5
- const value = new DocFileContentIndexValue({
6
- type: "markdown-index",
7
- body: "# タイトル\n\n説明文\n\n本文",
8
- title: "タイトル",
9
- description: "説明文",
10
- frontMatter: {
11
- type: "index-frontmatter",
12
- icon: "📁",
13
- schema: {
14
- name: {
15
- type: "text",
16
- required: true,
17
- title: "名前",
18
- description: "項目の名前",
19
- default: "",
20
- },
21
- },
22
- },
23
- });
24
- expect(value.body).toBe("# タイトル\n\n説明文\n\n本文");
25
- expect(value.title).toBe("タイトル");
26
- expect(value.description).toBe("説明文");
27
- expect(value.frontMatter.icon).toBe("📁");
28
- });
29
- test("DocFileContentIndexValue - frontMatter getterが値オブジェクトを返す", () => {
30
- const value = new DocFileContentIndexValue({
31
- type: "markdown-index",
32
- body: "",
33
- title: "",
34
- description: "",
35
- frontMatter: {
36
- type: "index-frontmatter",
37
- icon: "📁",
38
- schema: {},
39
- },
40
- });
41
- const frontMatter = value.frontMatter;
42
- expect(frontMatter).toBeInstanceOf(DocFrontMatterIndexValue);
43
- expect(frontMatter.icon).toBe("📁");
44
- });
45
- test("DocFileContentIndexValue - withTitleで新しいインスタンスを作成", () => {
46
- const value = new DocFileContentIndexValue({
47
- type: "markdown-index",
48
- body: "# 古いタイトル\n\n説明文",
49
- title: "古いタイトル",
50
- description: "説明文",
51
- frontMatter: {
52
- type: "index-frontmatter",
53
- icon: "",
54
- schema: {},
55
- },
56
- });
57
- const newValue = value.withTitle("新しいタイトル");
58
- expect(newValue).not.toBe(value); // 新しいインスタンス
59
- expect(newValue.title).toBe("新しいタイトル");
60
- expect(newValue.body).toContain("# 新しいタイトル");
61
- expect(value.title).toBe("古いタイトル"); // 元は変更されない
62
- });
63
- test("DocFileContentIndexValue - withDescriptionで新しいインスタンスを作成", () => {
64
- const value = new DocFileContentIndexValue({
65
- type: "markdown-index",
66
- body: "# タイトル\n\n古い説明",
67
- title: "タイトル",
68
- description: "古い説明",
69
- frontMatter: {
70
- type: "index-frontmatter",
71
- icon: "",
72
- schema: {},
73
- },
74
- });
75
- const newValue = value.withDescription("新しい説明");
76
- expect(newValue).not.toBe(value);
77
- expect(newValue.description).toBe("新しい説明");
78
- expect(newValue.body).toContain("新しい説明");
79
- });
80
- test("DocFileContentIndexValue - withContentで新しいインスタンスを作成", () => {
81
- const value = new DocFileContentIndexValue({
82
- type: "markdown-index",
83
- body: "古い内容",
84
- title: "タイトル",
85
- description: "説明",
86
- frontMatter: {
87
- type: "index-frontmatter",
88
- icon: "",
89
- schema: {},
90
- },
91
- });
92
- const newValue = value.withContent("新しい内容");
93
- expect(newValue).not.toBe(value);
94
- expect(newValue.body).toBe("新しい内容");
95
- // タイトルは新しい内容から解析される
96
- expect(newValue.title).toBe("");
97
- expect(newValue.description).toBe("");
98
- });
99
- test("DocFileContentIndexValue - withFrontMatterで新しいインスタンスを作成", () => {
100
- const value = new DocFileContentIndexValue({
101
- type: "markdown-index",
102
- body: "# タイトル",
103
- title: "タイトル",
104
- description: "",
105
- frontMatter: {
106
- type: "index-frontmatter",
107
- icon: "📁",
108
- schema: {},
109
- },
110
- });
111
- const newFrontMatter = new DocFrontMatterIndexValue({
112
- type: "index-frontmatter",
113
- icon: "📂",
114
- schema: {
115
- test: {
116
- type: "text",
117
- required: false,
118
- title: "テスト",
119
- description: "テスト項目",
120
- default: "",
121
- },
122
- },
123
- });
124
- const newValue = value.withFrontMatter(newFrontMatter);
125
- expect(newValue).not.toBe(value);
126
- expect(newValue.frontMatter.icon).toBe("📂");
127
- expect(value.frontMatter.icon).toBe("📁"); // 元は変更されない
128
- });
129
- test("DocFileContentIndexValue - fromMarkdownでMarkdownから生成", () => {
130
- const markdown = `---
131
- title: "メタタイトル"
132
- description: "メタ説明"
133
- icon: "📁"
134
- schema: {}
135
- ---
136
-
137
- # ドキュメントタイトル
138
-
139
- これは説明文です。
140
-
141
- 本文の内容`;
142
- const value = DocFileContentIndexValue.fromMarkdown(markdown);
143
- expect(value.title).toBe("ドキュメントタイトル");
144
- expect(value.description).toBe("これは説明文です。");
145
- expect(value.body).toContain("# ドキュメントタイトル");
146
- expect(value.frontMatter.icon).toBe("📁");
147
- });
148
- test("DocFileContentIndexValue - emptyでデフォルトコンテンツを生成", () => {
149
- const value = DocFileContentIndexValue.empty("テストディレクトリ");
150
- expect(value.title).toBe("テストディレクトリ");
151
- expect(value.frontMatter.icon).toBe("");
152
- expect(value.frontMatter.schema.toJson()).toEqual({});
153
- expect(value.body).toContain("# テストディレクトリ");
154
- });
155
- test("DocFileContentIndexValue - toTextでFrontMatter付きテキストを生成", () => {
156
- const value = new DocFileContentIndexValue({
157
- type: "markdown-index",
158
- body: "# タイトル\n\n本文",
159
- title: "タイトル",
160
- description: "",
161
- frontMatter: {
162
- type: "index-frontmatter",
163
- icon: "📁",
164
- schema: {},
165
- },
166
- });
167
- const text = value.toText();
168
- expect(text).toContain("---");
169
- expect(text).toContain("icon: 📁");
170
- expect(text).toContain("# タイトル");
171
- expect(text).toContain("本文");
172
- });
173
- test("DocFileContentIndexValue - toMarkdownTextでbodyのみのテキストを生成", () => {
174
- const value = new DocFileContentIndexValue({
175
- type: "markdown-index",
176
- body: "既存の本文",
177
- title: "タイトル",
178
- description: "説明",
179
- frontMatter: {
180
- type: "index-frontmatter",
181
- icon: "",
182
- schema: {},
183
- },
184
- });
185
- const text = value.toMarkdownText();
186
- expect(text).toBe("# タイトル\n\n説明\n\n既存の本文");
187
- expect(text).not.toContain("---"); // FrontMatterは含まない
188
- });
189
- test("DocFileContentIndexValue - toJsonで元のデータ構造を返す", () => {
190
- const data = {
191
- type: "markdown-index",
192
- body: "# タイトル",
193
- title: "タイトル",
194
- description: "説明",
195
- frontMatter: {
196
- type: "index-frontmatter",
197
- icon: "📁",
198
- schema: {},
199
- },
200
- };
201
- const value = new DocFileContentIndexValue(data);
202
- expect(value.toJson()).toEqual(data);
203
- });
@@ -1,62 +0,0 @@
1
- import type { DocFileContentMd } from "../types";
2
- import { DocFrontMatterMdValue } from "./doc-front-matter-md-value";
3
- /**
4
- * Markdownコンテンツ情報の値オブジェクト
5
- */
6
- export declare class DocFileContentMdValue {
7
- readonly value: DocFileContentMd;
8
- constructor(value: DocFileContentMd);
9
- /**
10
- * コンテンツ本文(frontMatterを含まない)
11
- */
12
- get body(): string;
13
- /**
14
- * タイトル
15
- */
16
- get title(): string;
17
- /**
18
- * 説明
19
- */
20
- get description(): string;
21
- /**
22
- * FrontMatter
23
- */
24
- get frontMatter(): DocFrontMatterMdValue;
25
- /**
26
- * タイトルを更新
27
- */
28
- withTitle(title: string): DocFileContentMdValue;
29
- /**
30
- * 説明を更新
31
- */
32
- withDescription(description: string, defaultTitle?: string): DocFileContentMdValue;
33
- /**
34
- * コンテンツを更新
35
- */
36
- withContent(content: string): DocFileContentMdValue;
37
- /**
38
- * FrontMatterを更新
39
- */
40
- withFrontMatter(frontMatter: DocFrontMatterMdValue): DocFileContentMdValue;
41
- /**
42
- * Markdownテキストから生成
43
- */
44
- static fromMarkdown(markdown: string): DocFileContentMdValue;
45
- /**
46
- * 完全なMarkdownテキストを生成
47
- */
48
- toMarkdownText(): string;
49
- /**
50
- * FrontMatterとbodyを結合した完全なテキストを生成
51
- */
52
- toText(): string;
53
- /**
54
- * 空のコンテンツを生成
55
- */
56
- static empty(title: string): DocFileContentMdValue;
57
- /**
58
- * JSON形式で出力
59
- */
60
- toJson(): DocFileContentMd;
61
- }
62
- //# sourceMappingURL=doc-file-content-md-value.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,139 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-file-content-md-value.test.d.ts.map
@@ -1 +0,0 @@
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":""}
@@ -1,160 +0,0 @@
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
- });
@@ -1,47 +0,0 @@
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
@@ -1 +0,0 @@
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"}