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