@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,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":""}