@interactive-inc/docs-client 0.0.3 → 0.0.5

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 -44
  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,178 @@
1
+ import { expect, test } from "bun:test";
2
+ import { DocFileContentMdValue } from "../values/doc-file-content-md-value";
3
+ import { DocFileMdEntity } from "./doc-file-md-entity";
4
+ test("DocFileMdEntity - 基本的な作成とプロパティアクセス", () => {
5
+ const entity = new DocFileMdEntity({
6
+ type: "markdown",
7
+ content: {
8
+ type: "markdown-content",
9
+ body: "# タイトル\n\n説明文\n\n本文",
10
+ title: "タイトル",
11
+ description: "説明文",
12
+ frontMatter: {
13
+ title: "メタタイトル",
14
+ tags: ["tag1", "tag2"],
15
+ },
16
+ },
17
+ path: {
18
+ path: "docs/example.md",
19
+ name: "example",
20
+ fullPath: "/Users/test/docs/example.md",
21
+ nameWithExtension: "example.md",
22
+ },
23
+ isArchived: false,
24
+ });
25
+ expect(entity.value.type).toBe("markdown");
26
+ expect(entity.value.isArchived).toBe(false);
27
+ });
28
+ test("DocFileMdEntity - content getterが値オブジェクトを返す", () => {
29
+ const entity = new DocFileMdEntity({
30
+ type: "markdown",
31
+ content: {
32
+ type: "markdown-content",
33
+ body: "# タイトル\n\n説明文",
34
+ title: "タイトル",
35
+ description: "説明文",
36
+ frontMatter: {
37
+ author: "テスト作者",
38
+ },
39
+ },
40
+ path: {
41
+ path: "docs/test.md",
42
+ name: "test",
43
+ fullPath: "/Users/test/docs/test.md",
44
+ nameWithExtension: "test.md",
45
+ },
46
+ isArchived: false,
47
+ });
48
+ const content = entity.content;
49
+ expect(content).toBeInstanceOf(DocFileContentMdValue);
50
+ expect(content.title).toBe("タイトル");
51
+ expect(content.description).toBe("説明文");
52
+ expect(content.body).toBe("# タイトル\n\n説明文");
53
+ });
54
+ test("DocFileMdEntity - path getterが値オブジェクトを返す", () => {
55
+ const entity = new DocFileMdEntity({
56
+ type: "markdown",
57
+ content: {
58
+ type: "markdown-content",
59
+ body: "",
60
+ title: "",
61
+ description: "",
62
+ frontMatter: {},
63
+ },
64
+ path: {
65
+ path: "docs/test.md",
66
+ name: "test",
67
+ fullPath: "/Users/test/docs/test.md",
68
+ nameWithExtension: "test.md",
69
+ },
70
+ isArchived: false,
71
+ });
72
+ const path = entity.path;
73
+ expect(path.name).toBe("test");
74
+ expect(path.path).toBe("docs/test.md");
75
+ expect(path.fullPath).toBe("/Users/test/docs/test.md");
76
+ expect(path.nameWithExtension).toBe("test.md");
77
+ });
78
+ test("DocFileMdEntity - withContentで新しいインスタンスを作成", () => {
79
+ const entity = new DocFileMdEntity({
80
+ type: "markdown",
81
+ content: {
82
+ type: "markdown-content",
83
+ body: "# 古いタイトル",
84
+ title: "古いタイトル",
85
+ description: "",
86
+ frontMatter: {},
87
+ },
88
+ path: {
89
+ path: "docs/test.md",
90
+ name: "test",
91
+ fullPath: "/Users/test/docs/test.md",
92
+ nameWithExtension: "test.md",
93
+ },
94
+ isArchived: false,
95
+ });
96
+ const newContent = entity.content.withTitle("新しいタイトル");
97
+ const newEntity = entity.withContent(newContent);
98
+ expect(newEntity).not.toBe(entity); // 新しいインスタンス
99
+ expect(newEntity.content.title).toBe("新しいタイトル");
100
+ expect(entity.content.title).toBe("古いタイトル"); // 元は変更されない
101
+ });
102
+ test("DocFileMdEntity - withPathで新しいインスタンスを作成", () => {
103
+ const entity = new DocFileMdEntity({
104
+ type: "markdown",
105
+ content: {
106
+ type: "markdown-content",
107
+ body: "",
108
+ title: "",
109
+ description: "",
110
+ frontMatter: {},
111
+ },
112
+ path: {
113
+ path: "docs/old.md",
114
+ name: "old",
115
+ fullPath: "/Users/test/docs/old.md",
116
+ nameWithExtension: "old.md",
117
+ },
118
+ isArchived: false,
119
+ });
120
+ const newPath = {
121
+ path: "docs/new.md",
122
+ name: "new",
123
+ fullPath: "/Users/test/docs/new.md",
124
+ nameWithExtension: "new.md",
125
+ };
126
+ const newEntity = entity.withPath(newPath);
127
+ expect(newEntity).not.toBe(entity); // 新しいインスタンス
128
+ expect(newEntity.path.path).toBe("docs/new.md");
129
+ expect(newEntity.path.name).toBe("new");
130
+ expect(entity.path.path).toBe("docs/old.md"); // 元は変更されない
131
+ });
132
+ test("DocFileMdEntity - toJsonで元のデータ構造を返す", () => {
133
+ const data = {
134
+ type: "markdown",
135
+ content: {
136
+ type: "markdown-content",
137
+ body: "# タイトル\n\n本文",
138
+ title: "タイトル",
139
+ description: "説明",
140
+ frontMatter: {
141
+ date: "2024-01-01",
142
+ author: "作者",
143
+ },
144
+ },
145
+ path: {
146
+ path: "docs/test.md",
147
+ name: "test",
148
+ fullPath: "/Users/test/docs/test.md",
149
+ nameWithExtension: "test.md",
150
+ },
151
+ isArchived: false,
152
+ };
153
+ const entity = new DocFileMdEntity(data);
154
+ expect(entity.toJson()).toEqual(data);
155
+ });
156
+ test("DocFileMdEntity - 不変性の確認", () => {
157
+ const entity = new DocFileMdEntity({
158
+ type: "markdown",
159
+ content: {
160
+ type: "markdown-content",
161
+ body: "",
162
+ title: "",
163
+ description: "",
164
+ frontMatter: {},
165
+ },
166
+ path: {
167
+ path: "docs/test.md",
168
+ name: "test",
169
+ fullPath: "/Users/test/docs/test.md",
170
+ nameWithExtension: "test.md",
171
+ },
172
+ isArchived: false,
173
+ });
174
+ expect(() => {
175
+ // @ts-expect-error - 不変性のテスト
176
+ entity.value = {};
177
+ }).toThrow();
178
+ });
@@ -0,0 +1,26 @@
1
+ import type { DocFilePath, DocFileUnknown } from "../types";
2
+ /**
3
+ * ドキュメントのファイル
4
+ */
5
+ export declare class DocFileUnknownEntity {
6
+ readonly value: DocFileUnknown;
7
+ constructor(value: DocFileUnknown);
8
+ /**
9
+ * コンテンツ
10
+ */
11
+ get content(): string;
12
+ /**
13
+ * パス情報
14
+ */
15
+ get path(): DocFilePath;
16
+ /**
17
+ * コンテンツを更新
18
+ */
19
+ withContent(content: string): DocFileUnknownEntity;
20
+ /**
21
+ * パスを更新
22
+ */
23
+ withPath(path: DocFilePath): DocFileUnknownEntity;
24
+ toJson(): DocFileUnknown;
25
+ }
26
+ //# sourceMappingURL=doc-file-unknown-entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-file-unknown-entity.d.ts","sourceRoot":"","sources":["../../lib/entities/doc-file-unknown-entity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE3D;;GAEG;AACH,qBAAa,oBAAoB;IACnB,QAAQ,CAAC,KAAK,EAAE,cAAc;IAA1C,YAAqB,KAAK,EAAE,cAAc,EAGzC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAKjD;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,oBAAoB,CAKhD;IAED,MAAM,IAAI,cAAc,CAEvB;CACF"}
@@ -0,0 +1,45 @@
1
+ import { zDocFileUnknown } from "../models";
2
+ /**
3
+ * ドキュメントのファイル
4
+ */
5
+ export class DocFileUnknownEntity {
6
+ value;
7
+ constructor(value) {
8
+ this.value = value;
9
+ zDocFileUnknown.parse(value);
10
+ Object.freeze(this);
11
+ }
12
+ /**
13
+ * コンテンツ
14
+ */
15
+ get content() {
16
+ return this.value.content;
17
+ }
18
+ /**
19
+ * パス情報
20
+ */
21
+ get path() {
22
+ return this.value.path;
23
+ }
24
+ /**
25
+ * コンテンツを更新
26
+ */
27
+ withContent(content) {
28
+ return new DocFileUnknownEntity({
29
+ ...this.value,
30
+ content: content,
31
+ });
32
+ }
33
+ /**
34
+ * パスを更新
35
+ */
36
+ withPath(path) {
37
+ return new DocFileUnknownEntity({
38
+ ...this.value,
39
+ path: path,
40
+ });
41
+ }
42
+ toJson() {
43
+ return this.value;
44
+ }
45
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=doc-file-unknown-entity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-file-unknown-entity.test.d.ts","sourceRoot":"","sources":["../../lib/entities/doc-file-unknown-entity.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,131 @@
1
+ import { expect, test } from "bun:test";
2
+ import { DocFileUnknownEntity } from "./doc-file-unknown-entity";
3
+ test("DocFileUnknownEntity - 基本的な作成とプロパティアクセス", () => {
4
+ const entity = new DocFileUnknownEntity({
5
+ type: "unknown",
6
+ content: "これはテキストファイルの内容です。",
7
+ path: {
8
+ path: "docs/example.txt",
9
+ name: "example",
10
+ fullPath: "/Users/test/docs/example.txt",
11
+ nameWithExtension: "example.txt",
12
+ },
13
+ extension: ".txt",
14
+ isArchived: false,
15
+ });
16
+ expect(entity.value.type).toBe("unknown");
17
+ expect(entity.value.isArchived).toBe(false);
18
+ expect(entity.value.content).toBe("これはテキストファイルの内容です。");
19
+ });
20
+ test("DocFileUnknownEntity - content getterが文字列を返す", () => {
21
+ const entity = new DocFileUnknownEntity({
22
+ type: "unknown",
23
+ content: "プレーンテキスト",
24
+ path: {
25
+ path: "docs/test.txt",
26
+ name: "test",
27
+ fullPath: "/Users/test/docs/test.txt",
28
+ nameWithExtension: "test.txt",
29
+ },
30
+ extension: ".txt",
31
+ isArchived: false,
32
+ });
33
+ expect(entity.content).toBe("プレーンテキスト");
34
+ expect(typeof entity.content).toBe("string");
35
+ });
36
+ test("DocFileUnknownEntity - path getterが値オブジェクトを返す", () => {
37
+ const entity = new DocFileUnknownEntity({
38
+ type: "unknown",
39
+ content: "",
40
+ path: {
41
+ path: "docs/test.txt",
42
+ name: "test",
43
+ fullPath: "/Users/test/docs/test.txt",
44
+ nameWithExtension: "test.txt",
45
+ },
46
+ extension: ".txt",
47
+ isArchived: false,
48
+ });
49
+ const path = entity.path;
50
+ expect(path.name).toBe("test");
51
+ expect(path.path).toBe("docs/test.txt");
52
+ expect(path.fullPath).toBe("/Users/test/docs/test.txt");
53
+ expect(path.nameWithExtension).toBe("test.txt");
54
+ });
55
+ test("DocFileUnknownEntity - withContentで新しいインスタンスを作成", () => {
56
+ const entity = new DocFileUnknownEntity({
57
+ type: "unknown",
58
+ content: "古い内容",
59
+ path: {
60
+ path: "docs/test.txt",
61
+ name: "test",
62
+ fullPath: "/Users/test/docs/test.txt",
63
+ nameWithExtension: "test.txt",
64
+ },
65
+ extension: ".txt",
66
+ isArchived: false,
67
+ });
68
+ const newEntity = entity.withContent("新しい内容");
69
+ expect(newEntity).not.toBe(entity); // 新しいインスタンス
70
+ expect(newEntity.content).toBe("新しい内容");
71
+ expect(entity.content).toBe("古い内容"); // 元は変更されない
72
+ });
73
+ test("DocFileUnknownEntity - withPathで新しいインスタンスを作成", () => {
74
+ const entity = new DocFileUnknownEntity({
75
+ type: "unknown",
76
+ content: "内容",
77
+ path: {
78
+ path: "docs/old.txt",
79
+ name: "old",
80
+ fullPath: "/Users/test/docs/old.txt",
81
+ nameWithExtension: "old.txt",
82
+ },
83
+ extension: ".txt",
84
+ isArchived: false,
85
+ });
86
+ const newPath = {
87
+ path: "docs/new.txt",
88
+ name: "new",
89
+ fullPath: "/Users/test/docs/new.txt",
90
+ nameWithExtension: "new.txt",
91
+ };
92
+ const newEntity = entity.withPath(newPath);
93
+ expect(newEntity).not.toBe(entity); // 新しいインスタンス
94
+ expect(newEntity.path.path).toBe("docs/new.txt");
95
+ expect(newEntity.path.name).toBe("new");
96
+ expect(entity.path.path).toBe("docs/old.txt"); // 元は変更されない
97
+ });
98
+ test("DocFileUnknownEntity - toJsonで元のデータ構造を返す", () => {
99
+ const data = {
100
+ type: "unknown",
101
+ content: "ファイルの内容",
102
+ path: {
103
+ path: "docs/test.txt",
104
+ name: "test",
105
+ fullPath: "/Users/test/docs/test.txt",
106
+ nameWithExtension: "test.txt",
107
+ },
108
+ extension: ".txt",
109
+ isArchived: false,
110
+ };
111
+ const entity = new DocFileUnknownEntity(data);
112
+ expect(entity.toJson()).toEqual(data);
113
+ });
114
+ test("DocFileUnknownEntity - 不変性の確認", () => {
115
+ const entity = new DocFileUnknownEntity({
116
+ type: "unknown",
117
+ content: "内容",
118
+ path: {
119
+ path: "docs/test.txt",
120
+ name: "test",
121
+ fullPath: "/Users/test/docs/test.txt",
122
+ nameWithExtension: "test.txt",
123
+ },
124
+ extension: ".txt",
125
+ isArchived: false,
126
+ });
127
+ expect(() => {
128
+ // @ts-expect-error - 不変性のテスト
129
+ entity.value = {};
130
+ }).toThrow();
131
+ });
@@ -0,0 +1,42 @@
1
+ export { DocClient } from "./doc-client";
2
+ export { DocDirectoryReference } from "./doc-directory-reference";
3
+ export { DocFileIndexReference } from "./doc-file-index-reference";
4
+ export { DocFileMdReference } from "./doc-file-md-reference";
5
+ export { DocFileRelationReference } from "./doc-file-relation-reference";
6
+ export { DocFileSystem } from "./doc-file-system";
7
+ export { DocFileTreeSystem as FileTreeSystem } from "./doc-file-tree-system";
8
+ export { DocFileUnknownReference } from "./doc-file-unknown-reference";
9
+ export { DocMarkdownSystem } from "./doc-markdown-system";
10
+ export { DocPathSystem } from "./doc-path-system";
11
+ export { DocFileIndexEntity } from "./entities/doc-file-index-entity";
12
+ export { DocFileMdEntity } from "./entities/doc-file-md-entity";
13
+ export { DocFileUnknownEntity } from "./entities/doc-file-unknown-entity";
14
+ export * from "./models";
15
+ export type * from "./types";
16
+ export { DocContentMdValue } from "./values/doc-content-md-value";
17
+ export { DocDirectoryPathValue } from "./values/doc-directory-path-value";
18
+ export { DocFileContentIndexValue } from "./values/doc-file-content-index-value";
19
+ export { DocFileContentMdValue } from "./values/doc-file-content-md-value";
20
+ export { DocFilePathValue } from "./values/doc-file-path-value";
21
+ export { DocFrontMatterIndexValue } from "./values/doc-front-matter-index-value";
22
+ export { DocFrontMatterMdValue } from "./values/doc-front-matter-md-value";
23
+ export { DocRelationFileValue } from "./values/doc-relation-file-value";
24
+ export { DocRelationValue } from "./values/doc-relation-value";
25
+ export { DocSchemaFieldBooleanMultipleValue } from "./values/doc-schema-field-boolean-multiple-value";
26
+ export { DocSchemaFieldBooleanSingleValue } from "./values/doc-schema-field-boolean-single-value";
27
+ export { DocSchemaFieldFactory } from "./values/doc-schema-field-factory";
28
+ export { DocSchemaFieldNumberMultipleValue } from "./values/doc-schema-field-number-multiple-value";
29
+ export { DocSchemaFieldNumberSingleValue } from "./values/doc-schema-field-number-single-value";
30
+ export { DocSchemaFieldRelationMultipleValue } from "./values/doc-schema-field-relation-multiple-value";
31
+ export { DocSchemaFieldRelationSingleValue } from "./values/doc-schema-field-relation-single-value";
32
+ export { DocSchemaFieldSelectNumberMultipleValue } from "./values/doc-schema-field-select-number-multiple-value";
33
+ export { DocSchemaFieldSelectNumberSingleValue } from "./values/doc-schema-field-select-number-single-value";
34
+ export { DocSchemaFieldSelectTextMultipleValue } from "./values/doc-schema-field-select-text-multiple-value";
35
+ export { DocSchemaFieldSelectTextSingleValue } from "./values/doc-schema-field-select-text-single-value";
36
+ export { DocSchemaFieldTextMultipleValue } from "./values/doc-schema-field-text-multiple-value";
37
+ export { DocSchemaFieldTextSingleValue } from "./values/doc-schema-field-text-single-value";
38
+ export type { DocSchemaFieldValue } from "./values/doc-schema-field-value";
39
+ export { DocSchemaValue } from "./values/doc-schema-value";
40
+ export { DocTreeDirectoryNodeValue } from "./values/doc-tree-directory-node-value";
41
+ export { DocTreeFileNodeValue } from "./values/doc-tree-file-node-value";
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,iBAAiB,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,cAAc,UAAU,CAAA;AACxB,mBAAmB,SAAS,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,kCAAkC,EAAE,MAAM,kDAAkD,CAAA;AACrG,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAA;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,iCAAiC,EAAE,MAAM,iDAAiD,CAAA;AACnG,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAA;AAC/F,OAAO,EAAE,mCAAmC,EAAE,MAAM,mDAAmD,CAAA;AACvG,OAAO,EAAE,iCAAiC,EAAE,MAAM,iDAAiD,CAAA;AACnG,OAAO,EAAE,uCAAuC,EAAE,MAAM,wDAAwD,CAAA;AAChH,OAAO,EAAE,qCAAqC,EAAE,MAAM,sDAAsD,CAAA;AAC5G,OAAO,EAAE,qCAAqC,EAAE,MAAM,sDAAsD,CAAA;AAC5G,OAAO,EAAE,mCAAmC,EAAE,MAAM,oDAAoD,CAAA;AACxG,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAA;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAA;AAC3F,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA"}