@interactive-inc/docs-client 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/README.md +0 -228
  2. package/build/index.d.ts +1921 -42
  3. package/build/index.js +4617 -39
  4. package/build/models.d.ts +34 -32
  5. package/build/models.js +219 -275
  6. package/package.json +4 -4
  7. package/tsup.config.ts +10 -0
  8. package/build/doc-client.d.ts +0 -59
  9. package/build/doc-client.d.ts.map +0 -1
  10. package/build/doc-client.js +0 -95
  11. package/build/doc-client.test.d.ts +0 -2
  12. package/build/doc-client.test.d.ts.map +0 -1
  13. package/build/doc-client.test.js +0 -38
  14. package/build/doc-directory-reference.d.ts +0 -65
  15. package/build/doc-directory-reference.d.ts.map +0 -1
  16. package/build/doc-directory-reference.js +0 -292
  17. package/build/doc-directory-reference.test.d.ts +0 -2
  18. package/build/doc-directory-reference.test.d.ts.map +0 -1
  19. package/build/doc-directory-reference.test.js +0 -100
  20. package/build/doc-file-index-reference.d.ts +0 -72
  21. package/build/doc-file-index-reference.d.ts.map +0 -1
  22. package/build/doc-file-index-reference.js +0 -191
  23. package/build/doc-file-index-reference.test.d.ts +0 -2
  24. package/build/doc-file-index-reference.test.d.ts.map +0 -1
  25. package/build/doc-file-index-reference.test.js +0 -77
  26. package/build/doc-file-md-reference.d.ts +0 -97
  27. package/build/doc-file-md-reference.d.ts.map +0 -1
  28. package/build/doc-file-md-reference.js +0 -297
  29. package/build/doc-file-md-reference.test.d.ts +0 -2
  30. package/build/doc-file-md-reference.test.d.ts.map +0 -1
  31. package/build/doc-file-md-reference.test.js +0 -465
  32. package/build/doc-file-relation-reference.d.ts +0 -54
  33. package/build/doc-file-relation-reference.d.ts.map +0 -1
  34. package/build/doc-file-relation-reference.js +0 -109
  35. package/build/doc-file-system-debug.d.ts +0 -81
  36. package/build/doc-file-system-debug.d.ts.map +0 -1
  37. package/build/doc-file-system-debug.js +0 -317
  38. package/build/doc-file-system.d.ts +0 -100
  39. package/build/doc-file-system.d.ts.map +0 -1
  40. package/build/doc-file-system.js +0 -210
  41. package/build/doc-file-tree-system.d.ts +0 -38
  42. package/build/doc-file-tree-system.d.ts.map +0 -1
  43. package/build/doc-file-tree-system.js +0 -153
  44. package/build/doc-file-tree-system.test.d.ts +0 -2
  45. package/build/doc-file-tree-system.test.d.ts.map +0 -1
  46. package/build/doc-file-tree-system.test.js +0 -105
  47. package/build/doc-file-unknown-reference.d.ts +0 -80
  48. package/build/doc-file-unknown-reference.d.ts.map +0 -1
  49. package/build/doc-file-unknown-reference.js +0 -181
  50. package/build/doc-file-unknown-reference.test.d.ts +0 -2
  51. package/build/doc-file-unknown-reference.test.d.ts.map +0 -1
  52. package/build/doc-file-unknown-reference.test.js +0 -73
  53. package/build/doc-markdown-system.d.ts +0 -44
  54. package/build/doc-markdown-system.d.ts.map +0 -1
  55. package/build/doc-markdown-system.js +0 -153
  56. package/build/doc-markdown-system.test.d.ts +0 -2
  57. package/build/doc-markdown-system.test.d.ts.map +0 -1
  58. package/build/doc-markdown-system.test.js +0 -124
  59. package/build/doc-path-system.d.ts +0 -43
  60. package/build/doc-path-system.d.ts.map +0 -1
  61. package/build/doc-path-system.js +0 -148
  62. package/build/doc-path-system.test.d.ts +0 -2
  63. package/build/doc-path-system.test.d.ts.map +0 -1
  64. package/build/doc-path-system.test.js +0 -67
  65. package/build/entities/doc-file-entity.d.ts +0 -5
  66. package/build/entities/doc-file-entity.d.ts.map +0 -1
  67. package/build/entities/doc-file-entity.js +0 -1
  68. package/build/entities/doc-file-index-entity.d.ts +0 -30
  69. package/build/entities/doc-file-index-entity.d.ts.map +0 -1
  70. package/build/entities/doc-file-index-entity.js +0 -49
  71. package/build/entities/doc-file-index-entity.test.d.ts +0 -2
  72. package/build/entities/doc-file-index-entity.test.d.ts.map +0 -1
  73. package/build/entities/doc-file-index-entity.test.js +0 -195
  74. package/build/entities/doc-file-md-entity.d.ts +0 -30
  75. package/build/entities/doc-file-md-entity.d.ts.map +0 -1
  76. package/build/entities/doc-file-md-entity.js +0 -49
  77. package/build/entities/doc-file-md-entity.test.d.ts +0 -2
  78. package/build/entities/doc-file-md-entity.test.d.ts.map +0 -1
  79. package/build/entities/doc-file-md-entity.test.js +0 -178
  80. package/build/entities/doc-file-unknown-entity.d.ts +0 -26
  81. package/build/entities/doc-file-unknown-entity.d.ts.map +0 -1
  82. package/build/entities/doc-file-unknown-entity.js +0 -45
  83. package/build/entities/doc-file-unknown-entity.test.d.ts +0 -2
  84. package/build/entities/doc-file-unknown-entity.test.d.ts.map +0 -1
  85. package/build/entities/doc-file-unknown-entity.test.js +0 -131
  86. package/build/index.d.ts.map +0 -1
  87. package/build/models.d.ts.map +0 -1
  88. package/build/types.d.ts +0 -154
  89. package/build/types.d.ts.map +0 -1
  90. package/build/types.js +0 -1
  91. package/build/values/doc-content-md-front-matter-value.d.ts +0 -49
  92. package/build/values/doc-content-md-front-matter-value.d.ts.map +0 -1
  93. package/build/values/doc-content-md-front-matter-value.js +0 -94
  94. package/build/values/doc-content-md-front-matter-value.test.d.ts +0 -2
  95. package/build/values/doc-content-md-front-matter-value.test.d.ts.map +0 -1
  96. package/build/values/doc-content-md-front-matter-value.test.js +0 -73
  97. package/build/values/doc-content-md-value.d.ts +0 -66
  98. package/build/values/doc-content-md-value.d.ts.map +0 -1
  99. package/build/values/doc-content-md-value.js +0 -218
  100. package/build/values/doc-content-md-value.test.d.ts +0 -2
  101. package/build/values/doc-content-md-value.test.d.ts.map +0 -1
  102. package/build/values/doc-content-md-value.test.js +0 -179
  103. package/build/values/doc-directory-path-value.d.ts +0 -89
  104. package/build/values/doc-directory-path-value.d.ts.map +0 -1
  105. package/build/values/doc-directory-path-value.js +0 -145
  106. package/build/values/doc-directory-path-value.test.d.ts +0 -2
  107. package/build/values/doc-directory-path-value.test.d.ts.map +0 -1
  108. package/build/values/doc-directory-path-value.test.js +0 -68
  109. package/build/values/doc-file-content-index-value.d.ts +0 -62
  110. package/build/values/doc-file-content-index-value.d.ts.map +0 -1
  111. package/build/values/doc-file-content-index-value.js +0 -134
  112. package/build/values/doc-file-content-index-value.test.d.ts +0 -2
  113. package/build/values/doc-file-content-index-value.test.d.ts.map +0 -1
  114. package/build/values/doc-file-content-index-value.test.js +0 -203
  115. package/build/values/doc-file-content-md-value.d.ts +0 -62
  116. package/build/values/doc-file-content-md-value.d.ts.map +0 -1
  117. package/build/values/doc-file-content-md-value.js +0 -139
  118. package/build/values/doc-file-content-md-value.test.d.ts +0 -2
  119. package/build/values/doc-file-content-md-value.test.d.ts.map +0 -1
  120. package/build/values/doc-file-content-md-value.test.js +0 -160
  121. package/build/values/doc-file-path-value.d.ts +0 -47
  122. package/build/values/doc-file-path-value.d.ts.map +0 -1
  123. package/build/values/doc-file-path-value.js +0 -83
  124. package/build/values/doc-file-path-value.test.d.ts +0 -2
  125. package/build/values/doc-file-path-value.test.d.ts.map +0 -1
  126. package/build/values/doc-file-path-value.test.js +0 -84
  127. package/build/values/doc-front-matter-index-value.d.ts +0 -66
  128. package/build/values/doc-front-matter-index-value.d.ts.map +0 -1
  129. package/build/values/doc-front-matter-index-value.js +0 -185
  130. package/build/values/doc-front-matter-index-value.test.d.ts +0 -2
  131. package/build/values/doc-front-matter-index-value.test.d.ts.map +0 -1
  132. package/build/values/doc-front-matter-index-value.test.js +0 -98
  133. package/build/values/doc-front-matter-md-value-accessor.test.d.ts +0 -2
  134. package/build/values/doc-front-matter-md-value-accessor.test.d.ts.map +0 -1
  135. package/build/values/doc-front-matter-md-value-accessor.test.js +0 -226
  136. package/build/values/doc-front-matter-md-value.d.ts +0 -80
  137. package/build/values/doc-front-matter-md-value.d.ts.map +0 -1
  138. package/build/values/doc-front-matter-md-value.js +0 -257
  139. package/build/values/doc-front-matter-md-value.test.d.ts +0 -2
  140. package/build/values/doc-front-matter-md-value.test.d.ts.map +0 -1
  141. package/build/values/doc-front-matter-md-value.test.js +0 -198
  142. package/build/values/doc-relation-field-value.d.ts +0 -57
  143. package/build/values/doc-relation-field-value.d.ts.map +0 -1
  144. package/build/values/doc-relation-field-value.js +0 -85
  145. package/build/values/doc-relation-field-value.test.d.ts +0 -2
  146. package/build/values/doc-relation-field-value.test.d.ts.map +0 -1
  147. package/build/values/doc-relation-field-value.test.js +0 -115
  148. package/build/values/doc-relation-file-value.d.ts +0 -33
  149. package/build/values/doc-relation-file-value.d.ts.map +0 -1
  150. package/build/values/doc-relation-file-value.js +0 -55
  151. package/build/values/doc-relation-file-value.test.d.ts +0 -2
  152. package/build/values/doc-relation-file-value.test.d.ts.map +0 -1
  153. package/build/values/doc-relation-file-value.test.js +0 -77
  154. package/build/values/doc-relation-value.d.ts +0 -34
  155. package/build/values/doc-relation-value.d.ts.map +0 -1
  156. package/build/values/doc-relation-value.js +0 -56
  157. package/build/values/doc-relation-value.test.d.ts +0 -2
  158. package/build/values/doc-relation-value.test.d.ts.map +0 -1
  159. package/build/values/doc-relation-value.test.js +0 -89
  160. package/build/values/doc-schema-field-boolean-multiple-value.d.ts +0 -23
  161. package/build/values/doc-schema-field-boolean-multiple-value.d.ts.map +0 -1
  162. package/build/values/doc-schema-field-boolean-multiple-value.js +0 -43
  163. package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts +0 -2
  164. package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts.map +0 -1
  165. package/build/values/doc-schema-field-boolean-multiple-value.test.js +0 -76
  166. package/build/values/doc-schema-field-boolean-single-value.d.ts +0 -23
  167. package/build/values/doc-schema-field-boolean-single-value.d.ts.map +0 -1
  168. package/build/values/doc-schema-field-boolean-single-value.js +0 -39
  169. package/build/values/doc-schema-field-boolean-single-value.test.d.ts +0 -2
  170. package/build/values/doc-schema-field-boolean-single-value.test.d.ts.map +0 -1
  171. package/build/values/doc-schema-field-boolean-single-value.test.js +0 -73
  172. package/build/values/doc-schema-field-factory.d.ts +0 -37
  173. package/build/values/doc-schema-field-factory.d.ts.map +0 -1
  174. package/build/values/doc-schema-field-factory.js +0 -151
  175. package/build/values/doc-schema-field-factory.test.d.ts +0 -2
  176. package/build/values/doc-schema-field-factory.test.d.ts.map +0 -1
  177. package/build/values/doc-schema-field-factory.test.js +0 -215
  178. package/build/values/doc-schema-field-number-multiple-value.d.ts +0 -23
  179. package/build/values/doc-schema-field-number-multiple-value.d.ts.map +0 -1
  180. package/build/values/doc-schema-field-number-multiple-value.js +0 -43
  181. package/build/values/doc-schema-field-number-multiple-value.test.d.ts +0 -2
  182. package/build/values/doc-schema-field-number-multiple-value.test.d.ts.map +0 -1
  183. package/build/values/doc-schema-field-number-multiple-value.test.js +0 -79
  184. package/build/values/doc-schema-field-number-single-value.d.ts +0 -23
  185. package/build/values/doc-schema-field-number-single-value.d.ts.map +0 -1
  186. package/build/values/doc-schema-field-number-single-value.js +0 -39
  187. package/build/values/doc-schema-field-number-single-value.test.d.ts +0 -2
  188. package/build/values/doc-schema-field-number-single-value.test.d.ts.map +0 -1
  189. package/build/values/doc-schema-field-number-single-value.test.js +0 -77
  190. package/build/values/doc-schema-field-relation-multiple-value.d.ts +0 -24
  191. package/build/values/doc-schema-field-relation-multiple-value.d.ts.map +0 -1
  192. package/build/values/doc-schema-field-relation-multiple-value.js +0 -46
  193. package/build/values/doc-schema-field-relation-multiple-value.test.d.ts +0 -2
  194. package/build/values/doc-schema-field-relation-multiple-value.test.d.ts.map +0 -1
  195. package/build/values/doc-schema-field-relation-multiple-value.test.js +0 -83
  196. package/build/values/doc-schema-field-relation-single-value.d.ts +0 -24
  197. package/build/values/doc-schema-field-relation-single-value.d.ts.map +0 -1
  198. package/build/values/doc-schema-field-relation-single-value.js +0 -42
  199. package/build/values/doc-schema-field-relation-single-value.test.d.ts +0 -2
  200. package/build/values/doc-schema-field-relation-single-value.test.d.ts.map +0 -1
  201. package/build/values/doc-schema-field-relation-single-value.test.js +0 -83
  202. package/build/values/doc-schema-field-select-number-multiple-value.d.ts +0 -25
  203. package/build/values/doc-schema-field-select-number-multiple-value.d.ts.map +0 -1
  204. package/build/values/doc-schema-field-select-number-multiple-value.js +0 -48
  205. package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts +0 -2
  206. package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts.map +0 -1
  207. package/build/values/doc-schema-field-select-number-multiple-value.test.js +0 -84
  208. package/build/values/doc-schema-field-select-number-single-value.d.ts +0 -25
  209. package/build/values/doc-schema-field-select-number-single-value.d.ts.map +0 -1
  210. package/build/values/doc-schema-field-select-number-single-value.js +0 -45
  211. package/build/values/doc-schema-field-select-number-single-value.test.d.ts +0 -2
  212. package/build/values/doc-schema-field-select-number-single-value.test.d.ts.map +0 -1
  213. package/build/values/doc-schema-field-select-number-single-value.test.js +0 -96
  214. package/build/values/doc-schema-field-select-text-multiple-value.d.ts +0 -25
  215. package/build/values/doc-schema-field-select-text-multiple-value.d.ts.map +0 -1
  216. package/build/values/doc-schema-field-select-text-multiple-value.js +0 -48
  217. package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts +0 -2
  218. package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts.map +0 -1
  219. package/build/values/doc-schema-field-select-text-multiple-value.test.js +0 -84
  220. package/build/values/doc-schema-field-select-text-single-value.d.ts +0 -25
  221. package/build/values/doc-schema-field-select-text-single-value.d.ts.map +0 -1
  222. package/build/values/doc-schema-field-select-text-single-value.js +0 -47
  223. package/build/values/doc-schema-field-select-text-single-value.test.d.ts +0 -2
  224. package/build/values/doc-schema-field-select-text-single-value.test.d.ts.map +0 -1
  225. package/build/values/doc-schema-field-select-text-single-value.test.js +0 -96
  226. package/build/values/doc-schema-field-text-multiple-value.d.ts +0 -23
  227. package/build/values/doc-schema-field-text-multiple-value.d.ts.map +0 -1
  228. package/build/values/doc-schema-field-text-multiple-value.js +0 -43
  229. package/build/values/doc-schema-field-text-multiple-value.test.d.ts +0 -2
  230. package/build/values/doc-schema-field-text-multiple-value.test.d.ts.map +0 -1
  231. package/build/values/doc-schema-field-text-multiple-value.test.js +0 -78
  232. package/build/values/doc-schema-field-text-single-value.d.ts +0 -23
  233. package/build/values/doc-schema-field-text-single-value.d.ts.map +0 -1
  234. package/build/values/doc-schema-field-text-single-value.js +0 -39
  235. package/build/values/doc-schema-field-text-single-value.test.d.ts +0 -2
  236. package/build/values/doc-schema-field-text-single-value.test.d.ts.map +0 -1
  237. package/build/values/doc-schema-field-text-single-value.test.js +0 -76
  238. package/build/values/doc-schema-field-type-value.d.ts +0 -61
  239. package/build/values/doc-schema-field-type-value.d.ts.map +0 -1
  240. package/build/values/doc-schema-field-type-value.js +0 -134
  241. package/build/values/doc-schema-field-type-value.test.d.ts +0 -2
  242. package/build/values/doc-schema-field-type-value.test.d.ts.map +0 -1
  243. package/build/values/doc-schema-field-type-value.test.js +0 -101
  244. package/build/values/doc-schema-field-value.d.ts +0 -45
  245. package/build/values/doc-schema-field-value.d.ts.map +0 -1
  246. package/build/values/doc-schema-field-value.js +0 -1
  247. package/build/values/doc-schema-value.d.ts +0 -99
  248. package/build/values/doc-schema-value.d.ts.map +0 -1
  249. package/build/values/doc-schema-value.js +0 -269
  250. package/build/values/doc-schema-value.test.d.ts +0 -2
  251. package/build/values/doc-schema-value.test.d.ts.map +0 -1
  252. package/build/values/doc-schema-value.test.js +0 -301
  253. package/build/values/doc-tree-directory-node-value.d.ts +0 -36
  254. package/build/values/doc-tree-directory-node-value.d.ts.map +0 -1
  255. package/build/values/doc-tree-directory-node-value.js +0 -71
  256. package/build/values/doc-tree-directory-node-value.test.d.ts +0 -2
  257. package/build/values/doc-tree-directory-node-value.test.d.ts.map +0 -1
  258. package/build/values/doc-tree-directory-node-value.test.js +0 -162
  259. package/build/values/doc-tree-file-node-value.d.ts +0 -33
  260. package/build/values/doc-tree-file-node-value.d.ts.map +0 -1
  261. package/build/values/doc-tree-file-node-value.js +0 -56
  262. package/build/values/doc-tree-file-node-value.test.d.ts +0 -2
  263. package/build/values/doc-tree-file-node-value.test.d.ts.map +0 -1
  264. package/build/values/doc-tree-file-node-value.test.js +0 -113
  265. package/debug/debug.ts +0 -108
@@ -1,56 +0,0 @@
1
- import { zDocRelation } from "../models";
2
- import { DocRelationFileValue } from "./doc-relation-file-value";
3
- /**
4
- * リレーション情報を管理する
5
- */
6
- export class DocRelationValue {
7
- value;
8
- constructor(value) {
9
- this.value = value;
10
- zDocRelation.parse(value);
11
- Object.freeze(this);
12
- Object.freeze(this.value);
13
- }
14
- /**
15
- * リレーションパス
16
- */
17
- get path() {
18
- return this.value.path;
19
- }
20
- /**
21
- * リレーション対象ファイル一覧(値オブジェクト)
22
- */
23
- get files() {
24
- return this.value.files.map((file) => new DocRelationFileValue(file));
25
- }
26
- /**
27
- * ファイル数を取得
28
- */
29
- get fileCount() {
30
- return this.files.length;
31
- }
32
- /**
33
- * 空かどうか
34
- */
35
- get isEmpty() {
36
- return this.files.length === 0;
37
- }
38
- /**
39
- * 空のリレーションエンティティを作成
40
- */
41
- static empty(path) {
42
- return new DocRelationValue({
43
- path,
44
- files: [],
45
- });
46
- }
47
- /**
48
- * JSON形式で出力
49
- */
50
- toJson() {
51
- return {
52
- path: this.path,
53
- files: this.files.map((file) => file.toJson()),
54
- };
55
- }
56
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-relation-value.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-relation-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-relation-value.test.ts"],"names":[],"mappings":""}
@@ -1,89 +0,0 @@
1
- import { expect, test } from "bun:test";
2
- import { DocRelationFileValue } from "./doc-relation-file-value";
3
- import { DocRelationValue } from "./doc-relation-value";
4
- test("リレーションの基本プロパティを取得できる", () => {
5
- const relation = new DocRelationValue({
6
- path: "users/authors",
7
- files: [
8
- { name: "tanaka", label: "田中太郎", value: null, path: null },
9
- { name: "suzuki", label: "鈴木次郎", value: null, path: null },
10
- ],
11
- });
12
- expect(relation.path).toBe("users/authors");
13
- expect(relation.fileCount).toBe(2);
14
- expect(relation.isEmpty).toBe(false);
15
- });
16
- test("リレーションファイルを値オブジェクトとして取得できる", () => {
17
- const relation = new DocRelationValue({
18
- path: "categories",
19
- files: [
20
- { name: "tech", label: "技術", value: null, path: null },
21
- { name: "business", label: "ビジネス", value: null, path: null },
22
- ],
23
- });
24
- const files = relation.files;
25
- expect(files.length).toBe(2);
26
- expect(files[0]).toBeInstanceOf(DocRelationFileValue);
27
- expect(files[0].id).toBe("tech");
28
- expect(files[0].label).toBe("技術");
29
- });
30
- test("空のリレーションを作成できる", () => {
31
- const relation = DocRelationValue.empty("users/admins");
32
- expect(relation.path).toBe("users/admins");
33
- expect(relation.files).toEqual([]);
34
- expect(relation.fileCount).toBe(0);
35
- expect(relation.isEmpty).toBe(true);
36
- });
37
- test("JSON形式に変換できる", () => {
38
- const relation = new DocRelationValue({
39
- path: "tags",
40
- files: [
41
- { name: "javascript", label: "JavaScript", value: null, path: null },
42
- { name: "typescript", label: "TypeScript", value: null, path: null },
43
- ],
44
- });
45
- const json = relation.toJson();
46
- expect(json).toEqual({
47
- path: "tags",
48
- files: [
49
- { name: "javascript", label: "JavaScript", value: null, path: null },
50
- { name: "typescript", label: "TypeScript", value: null, path: null },
51
- ],
52
- });
53
- });
54
- test("ラベルが未定義のファイルも処理できる", () => {
55
- const relation = new DocRelationValue({
56
- path: "milestones",
57
- files: [
58
- { name: "2024-01", label: null, value: null, path: null },
59
- { name: "2024-02", label: "2024年2月", value: null, path: null },
60
- ],
61
- });
62
- const files = relation.files;
63
- expect(files[0].label).toBe("2024-01");
64
- expect(files[1].label).toBe("2024年2月");
65
- });
66
- test("無効なデータでエラーが発生する", () => {
67
- expect(() => {
68
- new DocRelationValue({
69
- path: "invalid",
70
- files: "not-an-array",
71
- });
72
- }).toThrow();
73
- expect(() => {
74
- new DocRelationValue({
75
- path: 123,
76
- files: [],
77
- });
78
- }).toThrow();
79
- });
80
- test("ファイルデータが無効な場合もエラーが発生する", () => {
81
- expect(() => {
82
- new DocRelationValue({
83
- path: "users",
84
- files: [
85
- { name: 123, label: "Invalid", value: null, path: null },
86
- ],
87
- });
88
- }).toThrow();
89
- });
@@ -1,23 +0,0 @@
1
- import type { DocFieldMultiBoolean, DocSchemaField } from "../types";
2
- /**
3
- * ブール複数型スキーマフィールド
4
- */
5
- export declare class DocSchemaFieldBooleanMultipleValue {
6
- readonly key: string;
7
- readonly value: DocFieldMultiBoolean;
8
- constructor(key: string, value: DocFieldMultiBoolean);
9
- get type(): "multi-boolean";
10
- get required(): boolean;
11
- get title(): string;
12
- get description(): string;
13
- get default(): boolean[] | null;
14
- readonly isArray: boolean;
15
- readonly isSingle: boolean;
16
- readonly isBoolean: boolean;
17
- /**
18
- * 値を検証する
19
- */
20
- validate(value: unknown): boolean;
21
- toJson(): DocSchemaField;
22
- }
23
- //# sourceMappingURL=doc-schema-field-boolean-multiple-value.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-boolean-multiple-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-boolean-multiple-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEpE;;GAEG;AACH,qBAAa,kCAAkC;IAE3C,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,KAAK,EAAE,oBAAoB;IAFtC,YACW,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,oBAAoB,EAOrC;IAED,IAAI,IAAI,oBAEP;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,KAAK,WAER;IAED,IAAI,WAAW,WAEd;IAED,IAAI,OAAO,qBAEV;IAED,QAAQ,CAAC,OAAO,UAAO;IAEvB,QAAQ,CAAC,QAAQ,UAAQ;IAEzB,QAAQ,CAAC,SAAS,UAAO;IAEzB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhC;IAED,MAAM,IAAI,cAAc,CAEvB;CACF"}
@@ -1,43 +0,0 @@
1
- /**
2
- * ブール複数型スキーマフィールド
3
- */
4
- export class DocSchemaFieldBooleanMultipleValue {
5
- key;
6
- value;
7
- constructor(key, value) {
8
- this.key = key;
9
- this.value = value;
10
- Object.freeze(this);
11
- Object.freeze(this.value);
12
- if (this.value.default) {
13
- Object.freeze(this.value.default);
14
- }
15
- }
16
- get type() {
17
- return this.value.type;
18
- }
19
- get required() {
20
- return this.value.required;
21
- }
22
- get title() {
23
- return this.value.title ?? "";
24
- }
25
- get description() {
26
- return this.value.description ?? "";
27
- }
28
- get default() {
29
- return this.value.default;
30
- }
31
- isArray = true;
32
- isSingle = false;
33
- isBoolean = true;
34
- /**
35
- * 値を検証する
36
- */
37
- validate(value) {
38
- return Array.isArray(value) && value.every((v) => typeof v === "boolean");
39
- }
40
- toJson() {
41
- return { ...this.value };
42
- }
43
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-schema-field-boolean-multiple-value.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-boolean-multiple-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-boolean-multiple-value.test.ts"],"names":[],"mappings":""}
@@ -1,76 +0,0 @@
1
- import { expect, test } from "bun:test";
2
- import { DocSchemaFieldBooleanMultipleValue } from "./doc-schema-field-boolean-multiple-value";
3
- test("複数ブール型フィールドの基本プロパティを取得できる", () => {
4
- const field = new DocSchemaFieldBooleanMultipleValue("features", {
5
- type: "multi-boolean",
6
- required: true,
7
- title: "機能フラグ",
8
- description: "有効な機能のリスト",
9
- default: [true, false, true],
10
- });
11
- expect(field.key).toBe("features");
12
- expect(field.type).toBe("multi-boolean");
13
- expect(field.required).toBe(true);
14
- expect(field.title).toBe("機能フラグ");
15
- expect(field.description).toBe("有効な機能のリスト");
16
- expect(field.default).toEqual([true, false, true]);
17
- });
18
- test("配列判定メソッドが正しく動作する", () => {
19
- const field = new DocSchemaFieldBooleanMultipleValue("flags", {
20
- type: "multi-boolean",
21
- required: false,
22
- title: null,
23
- description: null,
24
- default: null,
25
- });
26
- expect(field.isArray).toBe(true);
27
- expect(field.isSingle).toBe(false);
28
- expect(field.isBoolean).toBe(true);
29
- });
30
- test("値の検証メソッドが正しく動作する", () => {
31
- const field = new DocSchemaFieldBooleanMultipleValue("options", {
32
- type: "multi-boolean",
33
- required: true,
34
- title: null,
35
- description: null,
36
- default: null,
37
- });
38
- expect(field.validate([true, false, true])).toBe(true);
39
- expect(field.validate([])).toBe(true);
40
- expect(field.validate([true])).toBe(true);
41
- expect(field.validate(true)).toBe(false);
42
- expect(field.validate([true, "false"])).toBe(false);
43
- expect(field.validate([1, 0])).toBe(false);
44
- expect(field.validate(null)).toBe(false);
45
- expect(field.validate(undefined)).toBe(false);
46
- expect(field.validate({})).toBe(false);
47
- });
48
- test("オプショナルなプロパティがundefinedでも動作する", () => {
49
- const field = new DocSchemaFieldBooleanMultipleValue("settings", {
50
- type: "multi-boolean",
51
- required: true,
52
- title: null,
53
- description: null,
54
- default: null,
55
- });
56
- expect(field.title).toBe("");
57
- expect(field.description).toBe("");
58
- expect(field.default).toBe(null);
59
- });
60
- test("JSON形式に変換できる", () => {
61
- const field = new DocSchemaFieldBooleanMultipleValue("permissions", {
62
- type: "multi-boolean",
63
- required: false,
64
- title: "権限設定",
65
- description: null,
66
- default: [false, false],
67
- });
68
- const json = field.toJson();
69
- expect(json).toEqual({
70
- type: "multi-boolean",
71
- required: false,
72
- title: "権限設定",
73
- description: null,
74
- default: [false, false],
75
- });
76
- });
@@ -1,23 +0,0 @@
1
- import type { DocSchemaField, DocSchemaFieldBoolean } from "../types";
2
- /**
3
- * 単一ブール型スキーマフィールド
4
- */
5
- export declare class DocSchemaFieldBooleanSingleValue {
6
- readonly key: string;
7
- readonly value: DocSchemaFieldBoolean;
8
- constructor(key: string, value: DocSchemaFieldBoolean);
9
- get type(): "boolean";
10
- get required(): boolean;
11
- get title(): string;
12
- get description(): string;
13
- get default(): boolean | null;
14
- readonly isArray: boolean;
15
- readonly isSingle: boolean;
16
- readonly isBoolean: boolean;
17
- toJson(): DocSchemaField;
18
- /**
19
- * 値の型を検証する
20
- */
21
- validate(value: unknown): boolean;
22
- }
23
- //# sourceMappingURL=doc-schema-field-boolean-single-value.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-boolean-single-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-boolean-single-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAErE;;GAEG;AACH,qBAAa,gCAAgC;IAEzC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,KAAK,EAAE,qBAAqB;IAFvC,YACW,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,qBAAqB,EAGtC;IAED,IAAI,IAAI,cAEP;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,KAAK,WAER;IAED,IAAI,WAAW,WAEd;IAED,IAAI,OAAO,mBAEV;IAED,QAAQ,CAAC,OAAO,UAAQ;IAExB,QAAQ,CAAC,QAAQ,UAAO;IAExB,QAAQ,CAAC,SAAS,UAAO;IAEzB,MAAM,IAAI,cAAc,CAEvB;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhC;CACF"}
@@ -1,39 +0,0 @@
1
- /**
2
- * 単一ブール型スキーマフィールド
3
- */
4
- export class DocSchemaFieldBooleanSingleValue {
5
- key;
6
- value;
7
- constructor(key, value) {
8
- this.key = key;
9
- this.value = value;
10
- Object.freeze(this);
11
- }
12
- get type() {
13
- return this.value.type;
14
- }
15
- get required() {
16
- return this.value.required;
17
- }
18
- get title() {
19
- return this.value.title ?? "";
20
- }
21
- get description() {
22
- return this.value.description ?? "";
23
- }
24
- get default() {
25
- return this.value.default;
26
- }
27
- isArray = false;
28
- isSingle = true;
29
- isBoolean = true;
30
- toJson() {
31
- return { ...this.value };
32
- }
33
- /**
34
- * 値の型を検証する
35
- */
36
- validate(value) {
37
- return typeof value === "boolean";
38
- }
39
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-schema-field-boolean-single-value.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-boolean-single-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-boolean-single-value.test.ts"],"names":[],"mappings":""}
@@ -1,73 +0,0 @@
1
- import { expect, test } from "bun:test";
2
- import { DocSchemaFieldBooleanSingleValue } from "./doc-schema-field-boolean-single-value";
3
- test("単一ブール型フィールドの基本プロパティを取得できる", () => {
4
- const field = new DocSchemaFieldBooleanSingleValue("isPublished", {
5
- type: "boolean",
6
- required: true,
7
- title: "公開状態",
8
- description: "記事が公開されているかどうか",
9
- default: false,
10
- });
11
- expect(field.key).toBe("isPublished");
12
- expect(field.type).toBe("boolean");
13
- expect(field.required).toBe(true);
14
- expect(field.title).toBe("公開状態");
15
- expect(field.description).toBe("記事が公開されているかどうか");
16
- expect(field.default).toBe(false);
17
- });
18
- test("配列判定メソッドが正しく動作する", () => {
19
- const field = new DocSchemaFieldBooleanSingleValue("active", {
20
- type: "boolean",
21
- required: false,
22
- title: null,
23
- description: null,
24
- default: null,
25
- });
26
- expect(field.isArray).toBe(false);
27
- expect(field.isSingle).toBe(true);
28
- expect(field.isBoolean).toBe(true);
29
- });
30
- test("オプショナルなプロパティがundefinedでも動作する", () => {
31
- const field = new DocSchemaFieldBooleanSingleValue("flag", {
32
- type: "boolean",
33
- required: true,
34
- title: null,
35
- description: null,
36
- default: null,
37
- });
38
- expect(field.title).toBe("");
39
- expect(field.description).toBe("");
40
- expect(field.default).toBe(null);
41
- });
42
- test("値の検証メソッドが正しく動作する", () => {
43
- const field = new DocSchemaFieldBooleanSingleValue("enabled", {
44
- type: "boolean",
45
- required: true,
46
- title: null,
47
- description: null,
48
- default: null,
49
- });
50
- expect(field.validate(true)).toBe(true);
51
- expect(field.validate(false)).toBe(true);
52
- expect(field.validate("true")).toBe(false);
53
- expect(field.validate(1)).toBe(false);
54
- expect(field.validate(null)).toBe(false);
55
- expect(field.validate(undefined)).toBe(false);
56
- });
57
- test("JSON形式に変換できる", () => {
58
- const field = new DocSchemaFieldBooleanSingleValue("featured", {
59
- type: "boolean",
60
- required: false,
61
- title: "注目記事",
62
- description: null,
63
- default: false,
64
- });
65
- const json = field.toJson();
66
- expect(json).toEqual({
67
- type: "boolean",
68
- required: false,
69
- title: "注目記事",
70
- description: null,
71
- default: false,
72
- });
73
- });
@@ -1,37 +0,0 @@
1
- import type { DocSchemaField } from "../types";
2
- import type { DocSchemaFieldValue } from "./doc-schema-field-value";
3
- /**
4
- * スキーマフィールドファクトリ
5
- */
6
- export declare class DocSchemaFieldFactory {
7
- constructor();
8
- /**
9
- * スキーマエントリから適切な型のフィールドを生成
10
- */
11
- fromSchemaEntry(key: string, field: DocSchemaField): DocSchemaFieldValue;
12
- /**
13
- * 未検証のデータから正規化して生成
14
- */
15
- fromUnknown(key: string, data: unknown): DocSchemaFieldValue;
16
- /**
17
- * フィールド定義を正規化
18
- */
19
- private normalizeField;
20
- /**
21
- * デフォルトのテキストフィールドを作成
22
- */
23
- private createDefaultTextField;
24
- /**
25
- * 型名を正規化
26
- */
27
- private normalizeType;
28
- /**
29
- * オブジェクトからプロパティを安全に取得
30
- */
31
- private getFieldProperty;
32
- /**
33
- * 型固有のデフォルト値を取得(イミュータブル)
34
- */
35
- private getTypeSpecificDefaults;
36
- }
37
- //# sourceMappingURL=doc-schema-field-factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-factory.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAe9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE;;GAEG;AACH,qBAAa,qBAAqB;IAChC,cAEC;IAED;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,mBAAmB,CAkDvE;IAED;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAI3D;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAkBhC"}
@@ -1,151 +0,0 @@
1
- import { zDocSchemaField } from "../models";
2
- import { DocSchemaFieldBooleanMultipleValue } from "./doc-schema-field-boolean-multiple-value";
3
- import { DocSchemaFieldBooleanSingleValue } from "./doc-schema-field-boolean-single-value";
4
- import { DocSchemaFieldNumberMultipleValue } from "./doc-schema-field-number-multiple-value";
5
- import { DocSchemaFieldNumberSingleValue } from "./doc-schema-field-number-single-value";
6
- import { DocSchemaFieldRelationMultipleValue } from "./doc-schema-field-relation-multiple-value";
7
- import { DocSchemaFieldRelationSingleValue } from "./doc-schema-field-relation-single-value";
8
- import { DocSchemaFieldSelectNumberMultipleValue } from "./doc-schema-field-select-number-multiple-value";
9
- import { DocSchemaFieldSelectNumberSingleValue } from "./doc-schema-field-select-number-single-value";
10
- import { DocSchemaFieldSelectTextMultipleValue } from "./doc-schema-field-select-text-multiple-value";
11
- import { DocSchemaFieldSelectTextSingleValue } from "./doc-schema-field-select-text-single-value";
12
- import { DocSchemaFieldTextMultipleValue } from "./doc-schema-field-text-multiple-value";
13
- import { DocSchemaFieldTextSingleValue } from "./doc-schema-field-text-single-value";
14
- import { DocSchemaFieldTypeValue } from "./doc-schema-field-type-value";
15
- /**
16
- * スキーマフィールドファクトリ
17
- */
18
- export class DocSchemaFieldFactory {
19
- constructor() {
20
- Object.freeze(this);
21
- }
22
- /**
23
- * スキーマエントリから適切な型のフィールドを生成
24
- */
25
- fromSchemaEntry(key, field) {
26
- if (field.type === "text") {
27
- return new DocSchemaFieldTextSingleValue(key, field);
28
- }
29
- if (field.type === "multi-text") {
30
- return new DocSchemaFieldTextMultipleValue(key, field);
31
- }
32
- if (field.type === "number") {
33
- return new DocSchemaFieldNumberSingleValue(key, field);
34
- }
35
- if (field.type === "multi-number") {
36
- return new DocSchemaFieldNumberMultipleValue(key, field);
37
- }
38
- if (field.type === "boolean") {
39
- return new DocSchemaFieldBooleanSingleValue(key, field);
40
- }
41
- if (field.type === "multi-boolean") {
42
- return new DocSchemaFieldBooleanMultipleValue(key, field);
43
- }
44
- if (field.type === "select-text") {
45
- return new DocSchemaFieldSelectTextSingleValue(key, field);
46
- }
47
- if (field.type === "select-number") {
48
- return new DocSchemaFieldSelectNumberSingleValue(key, field);
49
- }
50
- if (field.type === "multi-select-text") {
51
- return new DocSchemaFieldSelectTextMultipleValue(key, field);
52
- }
53
- if (field.type === "multi-select-number") {
54
- return new DocSchemaFieldSelectNumberMultipleValue(key, field);
55
- }
56
- if (field.type === "relation") {
57
- return new DocSchemaFieldRelationSingleValue(key, field);
58
- }
59
- if (field.type === "multi-relation") {
60
- return new DocSchemaFieldRelationMultipleValue(key, field);
61
- }
62
- throw new Error("Unknown field type");
63
- }
64
- /**
65
- * 未検証のデータから正規化して生成
66
- */
67
- fromUnknown(key, data) {
68
- const normalized = this.normalizeField(data);
69
- const validated = zDocSchemaField.parse(normalized);
70
- return this.fromSchemaEntry(key, validated);
71
- }
72
- /**
73
- * フィールド定義を正規化
74
- */
75
- normalizeField(field) {
76
- if (!field || typeof field !== "object") {
77
- // オブジェクトでない場合はデフォルトのテキストフィールドとして扱う
78
- return this.createDefaultTextField();
79
- }
80
- const fieldType = this.getFieldProperty(field, "type");
81
- const fieldRequired = this.getFieldProperty(field, "required");
82
- const fieldTitle = this.getFieldProperty(field, "title");
83
- const fieldDescription = this.getFieldProperty(field, "description");
84
- const fieldDefault = this.getFieldProperty(field, "default");
85
- // 型の正規化
86
- const normalizedType = this.normalizeType(fieldType);
87
- const typeValue = DocSchemaFieldTypeValue.from(normalizedType);
88
- // 正規化されたフィールドを構築
89
- const baseField = {
90
- type: normalizedType,
91
- required: fieldRequired ?? false,
92
- title: fieldTitle,
93
- description: fieldDescription,
94
- default: fieldDefault,
95
- };
96
- // 型固有のデフォルト値を追加
97
- return {
98
- ...baseField,
99
- ...this.getTypeSpecificDefaults(field, typeValue),
100
- };
101
- }
102
- /**
103
- * デフォルトのテキストフィールドを作成
104
- */
105
- createDefaultTextField() {
106
- return {
107
- type: "text",
108
- required: false,
109
- title: "",
110
- description: "",
111
- default: "",
112
- };
113
- }
114
- /**
115
- * 型名を正規化
116
- */
117
- normalizeType(type) {
118
- if (typeof type !== "string")
119
- return "text";
120
- // 旧型名から新型名への変換
121
- if (type === "string")
122
- return "text";
123
- if (type === "multi-string")
124
- return "multi-text";
125
- return type;
126
- }
127
- /**
128
- * オブジェクトからプロパティを安全に取得
129
- */
130
- getFieldProperty(obj, key) {
131
- if (Object.hasOwn(obj, key)) {
132
- return Object.getOwnPropertyDescriptor(obj, key)?.value;
133
- }
134
- return null;
135
- }
136
- /**
137
- * 型固有のデフォルト値を取得(イミュータブル)
138
- */
139
- getTypeSpecificDefaults(field, fieldType) {
140
- const defaults = {};
141
- // リレーション型の場合、pathが必要
142
- if (fieldType.isRelation) {
143
- defaults.path = this.getFieldProperty(field, "path") ?? "";
144
- }
145
- // 選択型の場合、optionsが必要
146
- if (fieldType.isSelect) {
147
- defaults.options = this.getFieldProperty(field, "options") ?? [];
148
- }
149
- return defaults;
150
- }
151
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-schema-field-factory.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-factory.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-factory.test.ts"],"names":[],"mappings":""}