@interactive-inc/docs-client 0.0.5 → 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 (264) hide show
  1. package/README.md +3 -3
  2. package/build/index.d.ts +1921 -42
  3. package/build/index.js +4616 -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
@@ -1,215 +0,0 @@
1
- import { expect, test } from "bun:test";
2
- import { DocSchemaFieldBooleanSingleValue } from "./doc-schema-field-boolean-single-value";
3
- import { DocSchemaFieldFactory } from "./doc-schema-field-factory";
4
- import { DocSchemaFieldNumberSingleValue } from "./doc-schema-field-number-single-value";
5
- import { DocSchemaFieldRelationMultipleValue } from "./doc-schema-field-relation-multiple-value";
6
- import { DocSchemaFieldRelationSingleValue } from "./doc-schema-field-relation-single-value";
7
- import { DocSchemaFieldSelectTextSingleValue } from "./doc-schema-field-select-text-single-value";
8
- import { DocSchemaFieldTextMultipleValue } from "./doc-schema-field-text-multiple-value";
9
- import { DocSchemaFieldTextSingleValue } from "./doc-schema-field-text-single-value";
10
- test("テキスト型フィールドを生成できる", () => {
11
- const factory = new DocSchemaFieldFactory();
12
- const field = factory.fromSchemaEntry("title", {
13
- type: "text",
14
- required: true,
15
- title: "タイトル",
16
- description: null,
17
- default: null,
18
- });
19
- expect(field).toBeInstanceOf(DocSchemaFieldTextSingleValue);
20
- expect(field.key).toBe("title");
21
- expect(field.type).toBe("text");
22
- });
23
- test("数値型フィールドを生成できる", () => {
24
- const factory = new DocSchemaFieldFactory();
25
- const field = factory.fromSchemaEntry("price", {
26
- type: "number",
27
- required: false,
28
- title: null,
29
- description: null,
30
- default: 1000,
31
- });
32
- expect(field).toBeInstanceOf(DocSchemaFieldNumberSingleValue);
33
- expect(field.type).toBe("number");
34
- expect(field.default).toBe(1000);
35
- });
36
- test("ブール型フィールドを生成できる", () => {
37
- const factory = new DocSchemaFieldFactory();
38
- const field = factory.fromSchemaEntry("published", {
39
- type: "boolean",
40
- required: true,
41
- title: null,
42
- description: null,
43
- default: false,
44
- });
45
- expect(field).toBeInstanceOf(DocSchemaFieldBooleanSingleValue);
46
- expect(field.type).toBe("boolean");
47
- });
48
- test("リレーション型フィールドを生成できる", () => {
49
- const factory = new DocSchemaFieldFactory();
50
- const field = factory.fromSchemaEntry("author", {
51
- type: "relation",
52
- required: true,
53
- title: null,
54
- description: null,
55
- default: null,
56
- path: "users/authors",
57
- });
58
- expect(field).toBeInstanceOf(DocSchemaFieldRelationSingleValue);
59
- expect(field.type).toBe("relation");
60
- expect(field.path).toBe("users/authors");
61
- });
62
- test("選択型フィールドを生成できる", () => {
63
- const factory = new DocSchemaFieldFactory();
64
- const field = factory.fromSchemaEntry("status", {
65
- type: "select-text",
66
- required: false,
67
- title: null,
68
- description: null,
69
- default: null,
70
- options: ["draft", "published"],
71
- });
72
- expect(field).toBeInstanceOf(DocSchemaFieldSelectTextSingleValue);
73
- expect(field.options).toEqual([
74
- "draft",
75
- "published",
76
- ]);
77
- });
78
- test("複数型フィールドを生成できる", () => {
79
- const factory = new DocSchemaFieldFactory();
80
- const field = factory.fromSchemaEntry("tags", {
81
- type: "multi-text",
82
- required: false,
83
- title: null,
84
- description: null,
85
- default: ["tech", "news"],
86
- });
87
- expect(field).toBeInstanceOf(DocSchemaFieldTextMultipleValue);
88
- expect(field.isArray).toBe(true);
89
- expect(field.default).toEqual(["tech", "news"]);
90
- });
91
- test("複数リレーション型フィールドを生成できる", () => {
92
- const factory = new DocSchemaFieldFactory();
93
- const field = factory.fromSchemaEntry("categories", {
94
- type: "multi-relation",
95
- required: false,
96
- title: null,
97
- description: null,
98
- default: null,
99
- path: "metadata/categories",
100
- });
101
- expect(field).toBeInstanceOf(DocSchemaFieldRelationMultipleValue);
102
- expect(field.path).toBe("metadata/categories");
103
- });
104
- test("不明な型でエラーが発生する", () => {
105
- const factory = new DocSchemaFieldFactory();
106
- expect(() => {
107
- factory.fromSchemaEntry("unknown", {
108
- type: "invalid-type",
109
- required: false,
110
- title: null,
111
- description: null,
112
- default: null,
113
- });
114
- }).toThrow();
115
- });
116
- test("fromUnknownメソッドで未検証データから生成できる", () => {
117
- const factory = new DocSchemaFieldFactory();
118
- // 正しいデータ
119
- const field1 = factory.fromUnknown("field1", {
120
- type: "text",
121
- required: true,
122
- title: null,
123
- description: null,
124
- default: null,
125
- });
126
- expect(field1).toBeInstanceOf(DocSchemaFieldTextSingleValue);
127
- // 型が古い形式
128
- const field2 = factory.fromUnknown("field2", {
129
- type: "string",
130
- required: false,
131
- title: null,
132
- description: null,
133
- default: null,
134
- });
135
- expect(field2).toBeInstanceOf(DocSchemaFieldTextSingleValue);
136
- expect(field2.type).toBe("text");
137
- // オブジェクトでない場合
138
- const field3 = factory.fromUnknown("field3", null);
139
- expect(field3).toBeInstanceOf(DocSchemaFieldTextSingleValue);
140
- expect(field3.required).toBe(false);
141
- // 必須プロパティが欠けている場合
142
- const field4 = factory.fromUnknown("field4", {});
143
- expect(field4).toBeInstanceOf(DocSchemaFieldTextSingleValue);
144
- expect(field4.type).toBe("text");
145
- expect(field4.required).toBe(false);
146
- });
147
- test("型固有のデフォルト値が設定される", () => {
148
- const factory = new DocSchemaFieldFactory();
149
- // リレーション型でpathが設定されている場合
150
- const relation = factory.fromUnknown("rel", {
151
- type: "relation",
152
- required: true,
153
- title: null,
154
- description: null,
155
- default: null,
156
- path: "some/valid/path",
157
- });
158
- expect(relation.path).toBe("some/valid/path");
159
- // 選択型でoptionsが無い場合
160
- const select = factory.fromUnknown("sel", {
161
- type: "select-text",
162
- required: false,
163
- title: null,
164
- description: null,
165
- default: null,
166
- });
167
- expect(select.options).toEqual([]);
168
- });
169
- test("リレーション型でpathが空の場合はエラーが発生する", () => {
170
- const factory = new DocSchemaFieldFactory();
171
- // pathが空文字列の場合
172
- expect(() => {
173
- factory.fromUnknown("rel", {
174
- type: "relation",
175
- required: true,
176
- title: null,
177
- description: null,
178
- default: null,
179
- path: "",
180
- });
181
- }).toThrow();
182
- // pathが未定義の場合
183
- expect(() => {
184
- factory.fromUnknown("rel", {
185
- type: "relation",
186
- required: true,
187
- title: null,
188
- description: null,
189
- default: null,
190
- });
191
- }).toThrow();
192
- });
193
- test("multi-string型をmulti-textに正規化する", () => {
194
- const factory = new DocSchemaFieldFactory();
195
- const field = factory.fromUnknown("field", {
196
- type: "multi-string",
197
- required: false,
198
- title: null,
199
- description: null,
200
- default: null,
201
- });
202
- expect(field).toBeInstanceOf(DocSchemaFieldTextMultipleValue);
203
- expect(field.type).toBe("multi-text");
204
- });
205
- test("undefinedプロパティがnullに変換される", () => {
206
- const factory = new DocSchemaFieldFactory();
207
- // titleプロパティが存在しない場合
208
- const field = factory.fromUnknown("field", {
209
- type: "text",
210
- required: true,
211
- // title: undefined (プロパティが存在しない)
212
- });
213
- expect(field.title).toBe("");
214
- expect(field.description).toBe("");
215
- });
@@ -1,23 +0,0 @@
1
- import type { DocFieldMultiNumber, DocSchemaField } from "../types";
2
- /**
3
- * 数値複数型スキーマフィールド
4
- */
5
- export declare class DocSchemaFieldNumberMultipleValue {
6
- readonly key: string;
7
- readonly value: DocFieldMultiNumber;
8
- constructor(key: string, value: DocFieldMultiNumber);
9
- get type(): "multi-number";
10
- get required(): boolean;
11
- get title(): string;
12
- get description(): string;
13
- get default(): number[] | null;
14
- readonly isArray: boolean;
15
- readonly isSingle: boolean;
16
- readonly isNumber: boolean;
17
- /**
18
- * 値を検証する
19
- */
20
- validate(value: unknown): boolean;
21
- toJson(): DocSchemaField;
22
- }
23
- //# sourceMappingURL=doc-schema-field-number-multiple-value.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-number-multiple-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-number-multiple-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEnE;;GAEG;AACH,qBAAa,iCAAiC;IAE1C,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,KAAK,EAAE,mBAAmB;IAFrC,YACW,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,mBAAmB,EAOpC;IAED,IAAI,IAAI,mBAEP;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,KAAK,WAER;IAED,IAAI,WAAW,WAEd;IAED,IAAI,OAAO,oBAEV;IAED,QAAQ,CAAC,OAAO,UAAO;IAEvB,QAAQ,CAAC,QAAQ,UAAQ;IAEzB,QAAQ,CAAC,QAAQ,UAAO;IAExB;;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 DocSchemaFieldNumberMultipleValue {
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
- isNumber = true;
34
- /**
35
- * 値を検証する
36
- */
37
- validate(value) {
38
- return Array.isArray(value) && value.every((v) => typeof v === "number");
39
- }
40
- toJson() {
41
- return { ...this.value };
42
- }
43
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-schema-field-number-multiple-value.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-number-multiple-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-number-multiple-value.test.ts"],"names":[],"mappings":""}
@@ -1,79 +0,0 @@
1
- import { expect, test } from "bun:test";
2
- import { DocSchemaFieldNumberMultipleValue } from "./doc-schema-field-number-multiple-value";
3
- test("複数数値型フィールドの基本プロパティを取得できる", () => {
4
- const field = new DocSchemaFieldNumberMultipleValue("scores", {
5
- type: "multi-number",
6
- required: true,
7
- title: "スコアリスト",
8
- description: "複数のスコア",
9
- default: [10, 20, 30],
10
- });
11
- expect(field.key).toBe("scores");
12
- expect(field.type).toBe("multi-number");
13
- expect(field.required).toBe(true);
14
- expect(field.title).toBe("スコアリスト");
15
- expect(field.description).toBe("複数のスコア");
16
- expect(field.default).toEqual([10, 20, 30]);
17
- });
18
- test("型判定メソッドが正しく動作する", () => {
19
- const field = new DocSchemaFieldNumberMultipleValue("values", {
20
- type: "multi-number",
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.isNumber).toBe(true);
29
- });
30
- test("値の検証メソッドが正しく動作する", () => {
31
- const field = new DocSchemaFieldNumberMultipleValue("measurements", {
32
- type: "multi-number",
33
- required: true,
34
- title: null,
35
- description: null,
36
- default: null,
37
- });
38
- expect(field.validate([1, 2, 3])).toBe(true);
39
- expect(field.validate([])).toBe(true);
40
- expect(field.validate([0])).toBe(true);
41
- expect(field.validate([-1, -2, -3])).toBe(true);
42
- expect(field.validate([1.5, 2.5, 3.5])).toBe(true);
43
- expect(field.validate(123)).toBe(false);
44
- expect(field.validate(["1", "2", "3"])).toBe(false);
45
- expect(field.validate([1, "2", 3])).toBe(false);
46
- expect(field.validate([true, false])).toBe(false);
47
- expect(field.validate(null)).toBe(false);
48
- expect(field.validate(undefined)).toBe(false);
49
- expect(field.validate({})).toBe(false);
50
- });
51
- test("オプショナルなプロパティがundefinedでも動作する", () => {
52
- const field = new DocSchemaFieldNumberMultipleValue("numbers", {
53
- type: "multi-number",
54
- required: true,
55
- title: null,
56
- description: null,
57
- default: null,
58
- });
59
- expect(field.title).toBe("");
60
- expect(field.description).toBe("");
61
- expect(field.default).toBe(null);
62
- });
63
- test("JSON形式に変換できる", () => {
64
- const field = new DocSchemaFieldNumberMultipleValue("coordinates", {
65
- type: "multi-number",
66
- required: false,
67
- title: "座標",
68
- description: null,
69
- default: [0, 0],
70
- });
71
- const json = field.toJson();
72
- expect(json).toEqual({
73
- type: "multi-number",
74
- required: false,
75
- title: "座標",
76
- description: null,
77
- default: [0, 0],
78
- });
79
- });
@@ -1,23 +0,0 @@
1
- import type { DocSchemaField, DocSchemaFieldNumber } from "../types";
2
- /**
3
- * 単一数値型スキーマフィールド
4
- */
5
- export declare class DocSchemaFieldNumberSingleValue {
6
- readonly key: string;
7
- readonly value: DocSchemaFieldNumber;
8
- constructor(key: string, value: DocSchemaFieldNumber);
9
- get type(): "number";
10
- get required(): boolean;
11
- get title(): string;
12
- get description(): string;
13
- get default(): number | null;
14
- readonly isArray: boolean;
15
- readonly isSingle: boolean;
16
- readonly isNumber: boolean;
17
- toJson(): DocSchemaField;
18
- /**
19
- * 値の型を検証する
20
- */
21
- validate(value: unknown): boolean;
22
- }
23
- //# sourceMappingURL=doc-schema-field-number-single-value.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-number-single-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-number-single-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEpE;;GAEG;AACH,qBAAa,+BAA+B;IAExC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,KAAK,EAAE,oBAAoB;IAFtC,YACW,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,oBAAoB,EAGrC;IAED,IAAI,IAAI,aAEP;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,KAAK,WAER;IAED,IAAI,WAAW,WAEd;IAED,IAAI,OAAO,kBAEV;IAED,QAAQ,CAAC,OAAO,UAAQ;IAExB,QAAQ,CAAC,QAAQ,UAAO;IAExB,QAAQ,CAAC,QAAQ,UAAO;IAExB,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 DocSchemaFieldNumberSingleValue {
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
- isNumber = true;
30
- toJson() {
31
- return { ...this.value };
32
- }
33
- /**
34
- * 値の型を検証する
35
- */
36
- validate(value) {
37
- return typeof value === "number";
38
- }
39
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-schema-field-number-single-value.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-number-single-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-number-single-value.test.ts"],"names":[],"mappings":""}
@@ -1,77 +0,0 @@
1
- import { expect, test } from "bun:test";
2
- import { DocSchemaFieldNumberSingleValue } from "./doc-schema-field-number-single-value";
3
- test("単一数値型フィールドの基本プロパティを取得できる", () => {
4
- const field = new DocSchemaFieldNumberSingleValue("price", {
5
- type: "number",
6
- required: true,
7
- title: "価格",
8
- description: "商品の価格",
9
- default: 1000,
10
- });
11
- expect(field.key).toBe("price");
12
- expect(field.type).toBe("number");
13
- expect(field.required).toBe(true);
14
- expect(field.title).toBe("価格");
15
- expect(field.description).toBe("商品の価格");
16
- expect(field.default).toBe(1000);
17
- });
18
- test("型判定メソッドが正しく動作する", () => {
19
- const field = new DocSchemaFieldNumberSingleValue("count", {
20
- type: "number",
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.isNumber).toBe(true);
29
- });
30
- test("値の検証メソッドが正しく動作する", () => {
31
- const field = new DocSchemaFieldNumberSingleValue("score", {
32
- type: "number",
33
- required: true,
34
- title: null,
35
- description: null,
36
- default: null,
37
- });
38
- expect(field.validate(123)).toBe(true);
39
- expect(field.validate(0)).toBe(true);
40
- expect(field.validate(-123)).toBe(true);
41
- expect(field.validate(123.456)).toBe(true);
42
- expect(field.validate("123")).toBe(false);
43
- expect(field.validate(true)).toBe(false);
44
- expect(field.validate(null)).toBe(false);
45
- expect(field.validate(undefined)).toBe(false);
46
- expect(field.validate([])).toBe(false);
47
- expect(field.validate({})).toBe(false);
48
- });
49
- test("オプショナルなプロパティがundefinedでも動作する", () => {
50
- const field = new DocSchemaFieldNumberSingleValue("value", {
51
- type: "number",
52
- required: true,
53
- title: null,
54
- description: null,
55
- default: null,
56
- });
57
- expect(field.title).toBe("");
58
- expect(field.description).toBe("");
59
- expect(field.default).toBe(null);
60
- });
61
- test("JSON形式に変換できる", () => {
62
- const field = new DocSchemaFieldNumberSingleValue("quantity", {
63
- type: "number",
64
- required: false,
65
- title: "数量",
66
- description: null,
67
- default: 1,
68
- });
69
- const json = field.toJson();
70
- expect(json).toEqual({
71
- type: "number",
72
- required: false,
73
- title: "数量",
74
- description: null,
75
- default: 1,
76
- });
77
- });
@@ -1,24 +0,0 @@
1
- import type { DocFieldMultiRelation, DocSchemaField } from "../types";
2
- /**
3
- * リレーション複数型スキーマフィールド
4
- */
5
- export declare class DocSchemaFieldRelationMultipleValue {
6
- readonly key: string;
7
- readonly value: DocFieldMultiRelation;
8
- constructor(key: string, value: DocFieldMultiRelation);
9
- get type(): "multi-relation";
10
- get required(): boolean;
11
- get title(): string;
12
- get description(): string;
13
- get default(): string[] | null;
14
- get path(): string;
15
- readonly isArray: boolean;
16
- readonly isSingle: boolean;
17
- readonly isRelation: boolean;
18
- /**
19
- * 値を検証する
20
- */
21
- validate(value: unknown): boolean;
22
- toJson(): DocSchemaField;
23
- }
24
- //# sourceMappingURL=doc-schema-field-relation-multiple-value.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-relation-multiple-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-relation-multiple-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAErE;;GAEG;AACH,qBAAa,mCAAmC;IAE5C,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,KAAK,EAAE,qBAAqB;IAFvC,YACW,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,qBAAqB,EAOtC;IAED,IAAI,IAAI,qBAEP;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,KAAK,WAER;IAED,IAAI,WAAW,WAEd;IAED,IAAI,OAAO,oBAEV;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,QAAQ,CAAC,OAAO,UAAO;IAEvB,QAAQ,CAAC,QAAQ,UAAQ;IAEzB,QAAQ,CAAC,UAAU,UAAO;IAE1B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhC;IAED,MAAM,IAAI,cAAc,CAEvB;CACF"}
@@ -1,46 +0,0 @@
1
- /**
2
- * リレーション複数型スキーマフィールド
3
- */
4
- export class DocSchemaFieldRelationMultipleValue {
5
- key;
6
- value;
7
- constructor(key, value) {
8
- this.key = key;
9
- this.value = value;
10
- Object.freeze(this.value);
11
- if (this.value.default && Array.isArray(this.value.default)) {
12
- Object.freeze(this.value.default);
13
- }
14
- Object.freeze(this);
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
- get path() {
32
- return this.value.path;
33
- }
34
- isArray = true;
35
- isSingle = false;
36
- isRelation = true;
37
- /**
38
- * 値を検証する
39
- */
40
- validate(value) {
41
- return Array.isArray(value) && value.every((v) => typeof v === "string");
42
- }
43
- toJson() {
44
- return { ...this.value };
45
- }
46
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doc-schema-field-relation-multiple-value.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc-schema-field-relation-multiple-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-schema-field-relation-multiple-value.test.ts"],"names":[],"mappings":""}