@wener/common 2.0.3 → 2.0.6

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 (312) hide show
  1. package/lib/ai/qwen3vl/index.js +1 -1
  2. package/lib/ai/qwen3vl/utils.js +15 -15
  3. package/lib/ai/qwen3vl/utils.js.map +1 -1
  4. package/lib/ai/vision/DocLayoutElementTypeSchema.js +22 -22
  5. package/lib/ai/vision/ImageAnnotationSchema.js +63 -47
  6. package/lib/ai/vision/index.js +2 -2
  7. package/lib/ai/vision/resolveImageAnnotation.js +81 -95
  8. package/lib/cn/ChineseResidentIdNo.js +55 -41
  9. package/lib/cn/ChineseResidentIdNo.js.map +1 -1
  10. package/lib/cn/ChineseResidentIdNo.mod.js +6 -1
  11. package/lib/cn/ChineseResidentIdNo.test.js +22 -21
  12. package/lib/cn/DivisionCode.js +220 -235
  13. package/lib/cn/DivisionCode.mod.js +6 -1
  14. package/lib/cn/DivisionCode.test.js +92 -121
  15. package/lib/cn/Mod11.js +18 -37
  16. package/lib/cn/Mod11.js.map +1 -1
  17. package/lib/cn/Mod31.js +23 -41
  18. package/lib/cn/UnifiedSocialCreditCode.js +143 -137
  19. package/lib/cn/UnifiedSocialCreditCode.mod.js +6 -1
  20. package/lib/cn/UnifiedSocialCreditCode.test.js +21 -15
  21. package/lib/cn/formatChineseAmount.js +46 -71
  22. package/lib/cn/index.js +6 -6
  23. package/lib/cn/mod.js +5 -3
  24. package/lib/cn/parseChineseNumber.js +81 -85
  25. package/lib/cn/parseChineseNumber.test.js +183 -261
  26. package/lib/cn/pinyin/cartesianProduct.js +19 -19
  27. package/lib/cn/pinyin/cartesianProduct.test.js +78 -178
  28. package/lib/cn/pinyin/loader.js +13 -11
  29. package/lib/cn/pinyin/preload.js +2 -1
  30. package/lib/cn/pinyin/toPinyin.test.js +149 -161
  31. package/lib/cn/pinyin/toPinyinPure.js +28 -23
  32. package/lib/cn/pinyin/transform.js +11 -11
  33. package/lib/cn/types.d.js +2 -2
  34. package/lib/consola/createStandardConsolaReporter.js +14 -15
  35. package/lib/consola/formatLogObject.js +149 -133
  36. package/lib/consola/formatLogObject.js.map +1 -1
  37. package/lib/consola/formatLogObject.test.js +167 -178
  38. package/lib/consola/index.js +2 -2
  39. package/lib/data/formatSort.js +14 -12
  40. package/lib/data/formatSort.test.js +33 -33
  41. package/lib/data/index.js +3 -3
  42. package/lib/data/maybeNumber.js +23 -23
  43. package/lib/data/maybeNumber.js.map +1 -1
  44. package/lib/data/parseSort.js +75 -68
  45. package/lib/data/parseSort.test.js +196 -187
  46. package/lib/data/resolvePagination.js +38 -39
  47. package/lib/data/resolvePagination.test.js +228 -218
  48. package/lib/data/types.d.js +2 -2
  49. package/lib/data/types.d.js.map +1 -1
  50. package/lib/dayjs/dayjs.js +20 -20
  51. package/lib/dayjs/formatDuration.js +56 -56
  52. package/lib/dayjs/formatDuration.js.map +1 -1
  53. package/lib/dayjs/formatDuration.test.js +63 -77
  54. package/lib/dayjs/index.js +4 -4
  55. package/lib/dayjs/parseDuration.js +21 -26
  56. package/lib/dayjs/parseRelativeTime.js +65 -66
  57. package/lib/dayjs/parseRelativeTime.test.js +227 -243
  58. package/lib/dayjs/resolveRelativeTime.js +74 -144
  59. package/lib/dayjs/resolveRelativeTime.js.map +1 -1
  60. package/lib/dayjs/resolveRelativeTime.test.js +296 -307
  61. package/lib/decimal/index.js +1 -1
  62. package/lib/decimal/parseDecimal.js +12 -12
  63. package/lib/drain3/Drain.js +321 -0
  64. package/lib/drain3/Drain.js.map +1 -0
  65. package/lib/drain3/LogCluster.js +38 -0
  66. package/lib/drain3/LogCluster.js.map +1 -0
  67. package/lib/drain3/Node.js +39 -0
  68. package/lib/drain3/Node.js.map +1 -0
  69. package/lib/drain3/TemplateMiner.js +205 -0
  70. package/lib/drain3/TemplateMiner.js.map +1 -0
  71. package/lib/drain3/index.js +31 -0
  72. package/lib/drain3/index.js.map +1 -0
  73. package/lib/drain3/persistence/FilePersistence.js +24 -0
  74. package/lib/drain3/persistence/FilePersistence.js.map +1 -0
  75. package/lib/drain3/persistence/MemoryPersistence.js +18 -0
  76. package/lib/drain3/persistence/MemoryPersistence.js.map +1 -0
  77. package/lib/drain3/persistence/PersistenceHandler.js +5 -0
  78. package/lib/drain3/persistence/PersistenceHandler.js.map +1 -0
  79. package/lib/drain3/types.js +7 -0
  80. package/lib/drain3/types.js.map +1 -0
  81. package/lib/emittery/emitter.js +7 -7
  82. package/lib/emittery/index.js +1 -1
  83. package/lib/foundation/schema/SexType.js +15 -12
  84. package/lib/foundation/schema/index.js +1 -1
  85. package/lib/foundation/schema/parseSexType.js +15 -16
  86. package/lib/foundation/schema/types.js +8 -6
  87. package/lib/fs/FileSystemError.js +18 -18
  88. package/lib/fs/IFileSystem.d.js +2 -2
  89. package/lib/fs/IFileSystem.d.js.map +1 -1
  90. package/lib/fs/MemoryFileSystem.test.js +172 -181
  91. package/lib/fs/createBrowserFileSystem.js +222 -233
  92. package/lib/fs/createBrowserFileSystem.js.map +1 -1
  93. package/lib/fs/createMemoryFileSystem.js +473 -510
  94. package/lib/fs/createMemoryFileSystem.js.map +1 -1
  95. package/lib/fs/createSandboxFileSystem.js +102 -101
  96. package/lib/fs/createSandboxFileSystem.js.map +1 -1
  97. package/lib/fs/createWebDavFileSystem.js +162 -132
  98. package/lib/fs/createWebDavFileSystem.js.map +1 -1
  99. package/lib/fs/createWebFileSystem.js +202 -0
  100. package/lib/fs/createWebFileSystem.js.map +1 -0
  101. package/lib/fs/findMimeType.js +14 -14
  102. package/lib/fs/findMimeType.js.map +1 -1
  103. package/lib/fs/index.js +7 -7
  104. package/lib/fs/index.js.map +1 -1
  105. package/lib/fs/minio/createMinioFileSystem.js +977 -0
  106. package/lib/fs/minio/createMinioFileSystem.js.map +1 -0
  107. package/lib/fs/minio/index.js +2 -0
  108. package/lib/fs/minio/index.js.map +1 -0
  109. package/lib/fs/orpc/FileSystemContract.js +57 -57
  110. package/lib/fs/orpc/createContractClientFileSystem.js +88 -88
  111. package/lib/fs/orpc/createContractClientFileSystem.js.map +1 -1
  112. package/lib/fs/orpc/index.js +2 -2
  113. package/lib/fs/orpc/server/createFileSystemContractImpl.js +62 -60
  114. package/lib/fs/orpc/server/createFileSystemContractImpl.js.map +1 -1
  115. package/lib/fs/orpc/server/index.js +1 -1
  116. package/lib/fs/s3/createS3MiniFileSystem.js +756 -689
  117. package/lib/fs/s3/createS3MiniFileSystem.js.map +1 -1
  118. package/lib/fs/s3/index.js +1 -1
  119. package/lib/fs/s3/s3mini.test.js +524 -553
  120. package/lib/fs/scandir.js +56 -56
  121. package/lib/fs/server/createDatabaseFileSystem.js +834 -741
  122. package/lib/fs/server/createDatabaseFileSystem.js.map +1 -1
  123. package/lib/fs/server/createNodeFileSystem.js +407 -380
  124. package/lib/fs/server/createNodeFileSystem.js.map +1 -1
  125. package/lib/fs/server/dbfs.test.js +201 -214
  126. package/lib/fs/server/index.js +1 -1
  127. package/lib/fs/server/loadTestDatabase.js +40 -43
  128. package/lib/fs/tests/runFileSystemTest.js +352 -315
  129. package/lib/fs/tests/runFileSystemTest.js.map +1 -1
  130. package/lib/fs/types.js +17 -20
  131. package/lib/fs/utils/getFileUrl.js +24 -30
  132. package/lib/fs/utils.js +17 -17
  133. package/lib/fs/utils.js.map +1 -1
  134. package/lib/fs/webdav/index.js +2 -0
  135. package/lib/fs/webdav/index.js.map +1 -0
  136. package/lib/index.js +2 -2
  137. package/lib/jsonschema/JsonSchema.js +216 -155
  138. package/lib/jsonschema/JsonSchema.js.map +1 -1
  139. package/lib/jsonschema/JsonSchema.test.js +123 -124
  140. package/lib/jsonschema/forEachJsonSchema.js +41 -41
  141. package/lib/jsonschema/forEachJsonSchema.js.map +1 -1
  142. package/lib/jsonschema/index.js +2 -2
  143. package/lib/jsonschema/types.d.js +2 -2
  144. package/lib/jsonschema/types.d.js.map +1 -1
  145. package/lib/meta/defineFileType.js +32 -38
  146. package/lib/meta/defineInit.js +39 -35
  147. package/lib/meta/defineMetadata.js +37 -34
  148. package/lib/meta/defineMetadata.js.map +1 -1
  149. package/lib/meta/defineMetadata.test.js +13 -12
  150. package/lib/meta/index.js +3 -3
  151. package/lib/orpc/createOpenApiContractClient.js +26 -24
  152. package/lib/orpc/createOpenApiContractClient.js.map +1 -1
  153. package/lib/orpc/createRpcContractClient.js +37 -31
  154. package/lib/orpc/index.js +2 -2
  155. package/lib/orpc/resolveLinkPlugins.js +25 -25
  156. package/lib/password/PHC.js +187 -189
  157. package/lib/password/PHC.js.map +1 -1
  158. package/lib/password/PHC.test.js +517 -535
  159. package/lib/password/Password.js +85 -80
  160. package/lib/password/Password.test.js +330 -364
  161. package/lib/password/createArgon2PasswordAlgorithm.js +50 -51
  162. package/lib/password/createArgon2PasswordAlgorithm.js.map +1 -1
  163. package/lib/password/createBase64PasswordAlgorithm.js +11 -11
  164. package/lib/password/createBase64PasswordAlgorithm.js.map +1 -1
  165. package/lib/password/createBcryptPasswordAlgorithm.js +20 -18
  166. package/lib/password/createBcryptPasswordAlgorithm.js.map +1 -1
  167. package/lib/password/createPBKDF2PasswordAlgorithm.js +65 -52
  168. package/lib/password/createPBKDF2PasswordAlgorithm.js.map +1 -1
  169. package/lib/password/createScryptPasswordAlgorithm.js +74 -63
  170. package/lib/password/createScryptPasswordAlgorithm.js.map +1 -1
  171. package/lib/password/index.js +5 -5
  172. package/lib/password/server/index.js +1 -1
  173. package/lib/resource/Identifiable.js +2 -2
  174. package/lib/resource/ListQuery.js +42 -42
  175. package/lib/resource/ListQuery.js.map +1 -1
  176. package/lib/resource/getTitleOfResource.js +5 -5
  177. package/lib/resource/index.js +2 -2
  178. package/lib/resource/index.js.map +1 -1
  179. package/lib/resource/schema/AnyResourceSchema.js +91 -89
  180. package/lib/resource/schema/BaseResourceSchema.js +26 -26
  181. package/lib/resource/schema/ResourceActionType.js +117 -115
  182. package/lib/resource/schema/ResourceStatus.js +94 -92
  183. package/lib/resource/schema/ResourceType.js +25 -23
  184. package/lib/resource/schema/index.js +5 -5
  185. package/lib/resource/schema/types.js +86 -55
  186. package/lib/resource/schema/types.test.js +16 -13
  187. package/lib/s3/formatS3Url.js +60 -60
  188. package/lib/s3/formatS3Url.js.map +1 -1
  189. package/lib/s3/formatS3Url.test.js +238 -261
  190. package/lib/s3/index.js +2 -2
  191. package/lib/s3/parseS3Url.js +61 -60
  192. package/lib/s3/parseS3Url.js.map +1 -1
  193. package/lib/s3/parseS3Url.test.js +270 -269
  194. package/lib/schema/SchemaRegistry.js +41 -42
  195. package/lib/schema/SchemaRegistry.js.map +1 -1
  196. package/lib/schema/SchemaRegistry.mod.js +1 -1
  197. package/lib/schema/TypeSchema.d.js +2 -2
  198. package/lib/schema/TypeSchema.d.js.map +1 -1
  199. package/lib/schema/createSchemaData.js +113 -67
  200. package/lib/schema/createSchemaData.js.map +1 -1
  201. package/lib/schema/findJsonSchemaByPath.js +28 -23
  202. package/lib/schema/findJsonSchemaByPath.js.map +1 -1
  203. package/lib/schema/formatZodError.js +113 -134
  204. package/lib/schema/formatZodError.js.map +1 -1
  205. package/lib/schema/formatZodError.test.js +192 -195
  206. package/lib/schema/getSchemaCache.js +7 -7
  207. package/lib/schema/getSchemaOptions.js +17 -16
  208. package/lib/schema/index.js +6 -6
  209. package/lib/schema/toJsonSchema.js +196 -190
  210. package/lib/schema/toJsonSchema.js.map +1 -1
  211. package/lib/schema/toJsonSchema.test.js +34 -26
  212. package/lib/schema/validate.js +106 -97
  213. package/lib/schema/validate.js.map +1 -1
  214. package/lib/tools/generateSchema.js +40 -40
  215. package/lib/tools/renderJsonSchemaToMarkdownDoc.js +74 -74
  216. package/lib/utils/buildBaseUrl.js +8 -8
  217. package/lib/utils/buildRedactorFormSchema.js +55 -54
  218. package/lib/utils/buildRedactorFormSchema.js.map +1 -1
  219. package/lib/utils/getEstimateProcessTime.js +24 -19
  220. package/lib/utils/index.js +3 -3
  221. package/lib/utils/resolveFeatureOptions.js +9 -9
  222. package/package.json +37 -18
  223. package/src/ai/qwen3vl/utils.ts +1 -1
  224. package/src/ai/vision/index.ts +2 -2
  225. package/src/cn/ChineseResidentIdNo.ts +1 -1
  226. package/src/cn/Mod11.ts +1 -1
  227. package/src/cn/__snapshots__/ChineseResidentIdNo.test.ts.snap +1 -1
  228. package/src/cn/__snapshots__/UnifiedSocialCreditCode.test.ts.snap +0 -23
  229. package/src/cn/index.ts +1 -2
  230. package/src/cn/parseChineseNumber.test.ts +4 -4
  231. package/src/consola/formatLogObject.ts +6 -6
  232. package/src/consola/index.ts +1 -1
  233. package/src/data/index.ts +3 -4
  234. package/src/data/maybeNumber.ts +1 -1
  235. package/src/data/parseSort.test.ts +0 -1
  236. package/src/data/resolvePagination.ts +2 -2
  237. package/src/data/types.d.ts +2 -2
  238. package/src/dayjs/formatDuration.ts +10 -11
  239. package/src/dayjs/index.ts +1 -1
  240. package/src/dayjs/parseRelativeTime.ts +1 -1
  241. package/src/dayjs/resolveRelativeTime.ts +11 -14
  242. package/src/drain3/Drain.test.ts +378 -0
  243. package/src/drain3/Drain.ts +394 -0
  244. package/src/drain3/LogCluster.ts +46 -0
  245. package/src/drain3/Node.ts +53 -0
  246. package/src/drain3/TemplateMiner.ts +246 -0
  247. package/src/drain3/index.ts +34 -0
  248. package/src/drain3/persistence/FilePersistence.ts +24 -0
  249. package/src/drain3/persistence/MemoryPersistence.ts +23 -0
  250. package/src/drain3/persistence/PersistenceHandler.ts +19 -0
  251. package/src/drain3/types.ts +75 -0
  252. package/src/fs/IFileSystem.d.ts +1 -2
  253. package/src/fs/createBrowserFileSystem.ts +7 -5
  254. package/src/fs/createMemoryFileSystem.ts +9 -13
  255. package/src/fs/createSandboxFileSystem.ts +1 -1
  256. package/src/fs/createWebDavFileSystem.ts +30 -17
  257. package/src/fs/createWebFileSystem.ts +242 -0
  258. package/src/fs/findMimeType.ts +1 -4
  259. package/src/fs/index.ts +5 -5
  260. package/src/fs/minio/createMinioFileSystem.ts +1148 -0
  261. package/src/fs/minio/index.ts +1 -0
  262. package/src/fs/orpc/createContractClientFileSystem.ts +5 -5
  263. package/src/fs/orpc/server/createFileSystemContractImpl.ts +1 -1
  264. package/src/fs/s3/createS3MiniFileSystem.ts +120 -79
  265. package/src/fs/s3/s3fs.test.ts +441 -0
  266. package/src/fs/s3/s3mini.test.ts +2 -2
  267. package/src/fs/server/createDatabaseFileSystem.ts +78 -114
  268. package/src/fs/server/createNodeFileSystem.ts +32 -13
  269. package/src/fs/server/dbfs.test.ts +13 -8
  270. package/src/fs/server/index.ts +1 -0
  271. package/src/fs/server/loadTestDatabase.ts +8 -119
  272. package/src/fs/tests/runFileSystemTest.ts +29 -28
  273. package/src/fs/utils.ts +1 -1
  274. package/src/fs/webdav/index.ts +1 -0
  275. package/src/jsonschema/JsonSchema.ts +5 -5
  276. package/src/jsonschema/forEachJsonSchema.ts +1 -1
  277. package/src/jsonschema/index.ts +1 -1
  278. package/src/jsonschema/types.d.ts +1 -1
  279. package/src/meta/defineMetadata.ts +1 -1
  280. package/src/meta/index.ts +2 -3
  281. package/src/orm/createSqliteDialect.ts +17 -0
  282. package/src/orm/index.ts +1 -0
  283. package/src/orpc/createOpenApiContractClient.ts +3 -3
  284. package/src/orpc/index.ts +1 -1
  285. package/src/password/PHC.ts +3 -3
  286. package/src/password/createArgon2PasswordAlgorithm.ts +2 -2
  287. package/src/password/createBase64PasswordAlgorithm.ts +2 -2
  288. package/src/password/createBcryptPasswordAlgorithm.ts +4 -2
  289. package/src/password/createPBKDF2PasswordAlgorithm.ts +2 -2
  290. package/src/password/createScryptPasswordAlgorithm.ts +4 -4
  291. package/src/password/index.ts +2 -2
  292. package/src/resource/ListQuery.ts +4 -1
  293. package/src/resource/index.ts +3 -3
  294. package/src/resource/schema/index.ts +4 -4
  295. package/src/s3/formatS3Url.test.ts +1 -1
  296. package/src/s3/formatS3Url.ts +2 -2
  297. package/src/s3/index.ts +1 -1
  298. package/src/s3/parseS3Url.ts +1 -1
  299. package/src/schema/SchemaRegistry.ts +2 -2
  300. package/src/schema/TypeSchema.d.ts +6 -6
  301. package/src/schema/createSchemaData.ts +5 -5
  302. package/src/schema/findJsonSchemaByPath.ts +5 -5
  303. package/src/schema/formatZodError.test.ts +2 -1
  304. package/src/schema/formatZodError.ts +50 -62
  305. package/src/schema/index.ts +5 -5
  306. package/src/schema/toJsonSchema.ts +6 -6
  307. package/src/schema/validate.ts +2 -2
  308. package/src/utils/buildRedactorFormSchema.ts +4 -4
  309. package/src/utils/formatNumber.ts +18 -0
  310. package/src/utils/formatPercent.ts +17 -0
  311. package/src/utils/index.ts +3 -3
  312. package/src/utils/resolveFeatureOptions.ts +1 -1
@@ -1,45 +1,44 @@
1
- import { getGlobalStates } from "@wener/utils";
2
- import { toJsonSchema } from "./index.js";
3
- (function (SchemaRegistry) {
4
- const types = getGlobalStates("@wener/common/resource/schema/SchemaRegistry", () => new Map());
5
- function get(needle) {
6
- let key = getKey(needle);
7
- let found = types.get(key);
8
- if (found) {
9
- return found;
10
- }
11
- else {
12
- if (needle && typeof needle !== "string") {
13
- return toJsonSchema(needle);
14
- }
15
- }
16
- throw new Error(`Schema not found: ${key}`);
17
- }
18
- SchemaRegistry.get = get;
19
- function getKey(s) {
20
- let key;
21
- if (typeof s === "string") {
22
- key = s;
23
- }
24
- else {
25
- let js = toJsonSchema(s);
26
- key = js.$id || js.title;
27
- }
28
- if (!key) {
29
- throw new Error(`Schema must have $id or title`);
30
- }
31
- return key;
32
- }
33
- function set(key, def) {
34
- if (!def) {
35
- def = key;
36
- if (!def || typeof def !== "object") {
37
- throw new Error(`Invalid schema definition for: ${getKey(key)}`);
38
- }
39
- }
40
- types.set(getKey(key), toJsonSchema(def));
41
- }
42
- SchemaRegistry.set = set;
1
+ import { getGlobalStates } from '@wener/utils';
2
+ import { toJsonSchema } from './index.js';
3
+
4
+ ((SchemaRegistry) => {
5
+ const types = getGlobalStates('@wener/common/resource/schema/SchemaRegistry', () => new Map());
6
+ function get(needle) {
7
+ let key = getKey(needle);
8
+ let found = types.get(key);
9
+ if (found) {
10
+ return found;
11
+ } else {
12
+ if (needle && typeof needle !== 'string') {
13
+ return toJsonSchema(needle);
14
+ }
15
+ }
16
+ throw new Error(`Schema not found: ${key}`);
17
+ }
18
+ SchemaRegistry.get = get;
19
+ function getKey(s) {
20
+ let key;
21
+ if (typeof s === 'string') {
22
+ key = s;
23
+ } else {
24
+ let js = toJsonSchema(s);
25
+ key = js.$id || js.title;
26
+ }
27
+ if (!key) {
28
+ throw new Error(`Schema must have $id or title`);
29
+ }
30
+ return key;
31
+ }
32
+ function set(key, def) {
33
+ if (!def) {
34
+ def = key;
35
+ if (!def || typeof def !== 'object') {
36
+ throw new Error(`Invalid schema definition for: ${getKey(key)}`);
37
+ }
38
+ }
39
+ types.set(getKey(key), toJsonSchema(def));
40
+ }
41
+ SchemaRegistry.set = set;
43
42
  })(SchemaRegistry || (SchemaRegistry = {}));
44
43
  export var SchemaRegistry;
45
44
  //# sourceMappingURL=SchemaRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/SchemaRegistry.ts"],"sourcesContent":["import { getGlobalStates } from '@wener/utils';\nimport type { JsonSchemaDef } from '../jsonschema';\nimport { toJsonSchema, type SchemaOutput, type TypeSchema } from './index';\n\nexport namespace SchemaRegistry {\n\tconst types = getGlobalStates('@wener/common/resource/schema/SchemaRegistry', () => new Map<string, JsonSchemaDef>());\n\n\texport function get(name: string): JsonSchemaDef;\n\texport function get<S extends TypeSchema>(schema: S): JsonSchemaDef<SchemaOutput<S>>;\n\texport function get(needle: TypeSchema | string) {\n\t\tlet key = getKey(needle);\n\t\tlet found = types.get(key);\n\t\tif (found) {\n\t\t\treturn found;\n\t\t} else {\n\t\t\tif (needle && typeof needle !== 'string') {\n\t\t\t\treturn toJsonSchema(needle);\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Schema not found: ${key}`);\n\t}\n\n\tfunction getKey(s: TypeSchema | string) {\n\t\tlet key;\n\t\tif (typeof s === 'string') {\n\t\t\tkey = s;\n\t\t} else {\n\t\t\tlet js = toJsonSchema(s);\n\t\t\tkey = js.$id || js.title;\n\t\t}\n\t\tif (!key) {\n\t\t\tthrow new Error(`Schema must have $id or title`);\n\t\t}\n\t\treturn key;\n\t}\n\n\texport function set(key: TypeSchema | string, def: TypeSchema): void;\n\texport function set(key: TypeSchema, def?: TypeSchema): void;\n\texport function set(key: TypeSchema | string, def?: TypeSchema) {\n\t\tif (!def) {\n\t\t\tdef = key as TypeSchema;\n\t\t\tif (!def || typeof def !== 'object') {\n\t\t\t\tthrow new Error(`Invalid schema definition for: ${getKey(key)}`);\n\t\t\t}\n\t\t}\n\t\ttypes.set(getKey(key), toJsonSchema(def));\n\t}\n}\n"],"names":["getGlobalStates","toJsonSchema","SchemaRegistry","types","Map","get","needle","key","getKey","found","Error","s","js","$id","title","set","def"],"mappings":"AAAA,SAASA,eAAe,QAAQ,eAAe;AAE/C,SAASC,YAAY,QAA4C,UAAU;UAE1DC;IAChB,MAAMC,QAAQH,gBAAgB,gDAAgD,IAAM,IAAII;IAIjF,SAASC,IAAIC,MAA2B;QAC9C,IAAIC,MAAMC,OAAOF;QACjB,IAAIG,QAAQN,MAAME,GAAG,CAACE;QACtB,IAAIE,OAAO;YACV,OAAOA;QACR,OAAO;YACN,IAAIH,UAAU,OAAOA,WAAW,UAAU;gBACzC,OAAOL,aAAaK;YACrB;QACD;QACA,MAAM,IAAII,MAAM,CAAC,kBAAkB,EAAEH,KAAK;IAC3C;mBAXgBF,MAAAA;IAahB,SAASG,OAAOG,CAAsB;QACrC,IAAIJ;QACJ,IAAI,OAAOI,MAAM,UAAU;YAC1BJ,MAAMI;QACP,OAAO;YACN,IAAIC,KAAKX,aAAaU;YACtBJ,MAAMK,GAAGC,GAAG,IAAID,GAAGE,KAAK;QACzB;QACA,IAAI,CAACP,KAAK;YACT,MAAM,IAAIG,MAAM,CAAC,6BAA6B,CAAC;QAChD;QACA,OAAOH;IACR;IAIO,SAASQ,IAAIR,GAAwB,EAAES,GAAgB;QAC7D,IAAI,CAACA,KAAK;YACTA,MAAMT;YACN,IAAI,CAACS,OAAO,OAAOA,QAAQ,UAAU;gBACpC,MAAM,IAAIN,MAAM,CAAC,+BAA+B,EAAEF,OAAOD,MAAM;YAChE;QACD;QACAJ,MAAMY,GAAG,CAACP,OAAOD,MAAMN,aAAae;IACrC;mBARgBD,MAAAA;AASjB,GA3CiBb,mBAAAA"}
1
+ {"version":3,"sources":["../../src/schema/SchemaRegistry.ts"],"sourcesContent":["import { getGlobalStates } from '@wener/utils';\nimport type { JsonSchemaDef } from '../jsonschema';\nimport { toJsonSchema, type SchemaOutput, type TypeSchema } from './index';\n\nexport namespace SchemaRegistry {\n\tconst types = getGlobalStates('@wener/common/resource/schema/SchemaRegistry', () => new Map<string, JsonSchemaDef>());\n\n\texport function get(name: string): JsonSchemaDef;\n\texport function get<S extends TypeSchema>(schema: S): JsonSchemaDef<SchemaOutput<S>>;\n\texport function get(needle: TypeSchema | string) {\n\t\tlet key = getKey(needle);\n\t\tlet found = types.get(key);\n\t\tif (found) {\n\t\t\treturn found;\n\t\t} else {\n\t\t\tif (needle && typeof needle !== 'string') {\n\t\t\t\treturn toJsonSchema(needle);\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Schema not found: ${key}`);\n\t}\n\n\tfunction getKey(s: TypeSchema | string) {\n\t\tlet key: string | undefined;\n\t\tif (typeof s === 'string') {\n\t\t\tkey = s;\n\t\t} else {\n\t\t\tlet js = toJsonSchema(s);\n\t\t\tkey = js.$id || js.title;\n\t\t}\n\t\tif (!key) {\n\t\t\tthrow new Error(`Schema must have $id or title`);\n\t\t}\n\t\treturn key;\n\t}\n\n\texport function set(key: TypeSchema | string, def: TypeSchema): void;\n\texport function set(key: TypeSchema, def?: TypeSchema): void;\n\texport function set(key: TypeSchema | string, def?: TypeSchema) {\n\t\tif (!def) {\n\t\t\tdef = key as TypeSchema;\n\t\t\tif (!def || typeof def !== 'object') {\n\t\t\t\tthrow new Error(`Invalid schema definition for: ${getKey(key)}`);\n\t\t\t}\n\t\t}\n\t\ttypes.set(getKey(key), toJsonSchema(def));\n\t}\n}\n"],"names":["getGlobalStates","toJsonSchema","SchemaRegistry","types","Map","get","needle","key","getKey","found","Error","s","js","$id","title","set","def"],"mappings":"AAAA,SAASA,eAAe,QAAQ,eAAe;AAE/C,SAASC,YAAY,QAA4C,UAAU;UAE1DC;IAChB,MAAMC,QAAQH,gBAAgB,gDAAgD,IAAM,IAAII;IAIjF,SAASC,IAAIC,MAA2B;QAC9C,IAAIC,MAAMC,OAAOF;QACjB,IAAIG,QAAQN,MAAME,GAAG,CAACE;QACtB,IAAIE,OAAO;YACV,OAAOA;QACR,OAAO;YACN,IAAIH,UAAU,OAAOA,WAAW,UAAU;gBACzC,OAAOL,aAAaK;YACrB;QACD;QACA,MAAM,IAAII,MAAM,CAAC,kBAAkB,EAAEH,KAAK;IAC3C;mBAXgBF,MAAAA;IAahB,SAASG,OAAOG,CAAsB;QACrC,IAAIJ;QACJ,IAAI,OAAOI,MAAM,UAAU;YAC1BJ,MAAMI;QACP,OAAO;YACN,IAAIC,KAAKX,aAAaU;YACtBJ,MAAMK,GAAGC,GAAG,IAAID,GAAGE,KAAK;QACzB;QACA,IAAI,CAACP,KAAK;YACT,MAAM,IAAIG,MAAM,CAAC,6BAA6B,CAAC;QAChD;QACA,OAAOH;IACR;IAIO,SAASQ,IAAIR,GAAwB,EAAES,GAAgB;QAC7D,IAAI,CAACA,KAAK;YACTA,MAAMT;YACN,IAAI,CAACS,OAAO,OAAOA,QAAQ,UAAU;gBACpC,MAAM,IAAIN,MAAM,CAAC,+BAA+B,EAAEF,OAAOD,MAAM;YAChE;QACD;QACAJ,MAAMY,GAAG,CAACP,OAAOD,MAAMN,aAAae;IACrC;mBARgBD,MAAAA;AASjB,GA3CiBb,mBAAAA"}
@@ -1,2 +1,2 @@
1
- import * as _SchemaRegistry from "./SchemaRegistry.js";
1
+ import * as _SchemaRegistry from './SchemaRegistry.js';
2
2
  export { _SchemaRegistry as SchemaRegistry };
@@ -1,3 +1,3 @@
1
- export { };
1
+ export {};
2
2
 
3
- //# sourceMappingURL=TypeSchema.d.js.map
3
+ //# sourceMappingURL=TypeSchema.d.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/TypeSchema.d.ts"],"sourcesContent":["import type {\n\tTSchema,\n\tStaticDecode as TypeBoxStaticDecode,\n\tStaticEncode as TypeBoxStaticEncode,\n} from '@sinclair/typebox';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { z } from 'zod/v4';\nimport type { JsonSchemaDef } from '../jsonschema';\n\nexport type TypeSchema<I = unknown, O = I> = TSchema | z.ZodSchema<O, I> | JsonSchemaDef | StandardSchemaV1<I, O>;\n\nexport type SchemaOutput<S extends TypeSchema> =\n\tS extends StandardSchemaV1<infer I, infer O>\n\t\t? O\n\t\t: S extends z.ZodSchema<infer O, infer I>\n\t\t\t? O\n\t\t\t: S extends TSchema\n\t\t\t\t? TypeBoxStaticEncode<S>\n\t\t\t\t: S extends JsonSchemaDef<infer I, infer O>\n\t\t\t\t\t? O\n\t\t\t\t\t: never;\n\nexport type SchemaInput<S extends TypeSchema> =\n\tS extends StandardSchemaV1<infer I, infer O>\n\t\t? I\n\t\t: S extends z.ZodSchema<infer O, infer I>\n\t\t\t? I\n\t\t\t: S extends TSchema\n\t\t\t\t? TypeBoxStaticDecode<S>\n\t\t\t\t: S extends JsonSchemaDef<infer I, infer O>\n\t\t\t\t\t? I\n\t\t\t\t\t: never;\n"],"names":[],"mappings":"AAsBA,WASa"}
1
+ {"version":3,"sources":["../../src/schema/TypeSchema.d.ts"],"sourcesContent":["import type {\n\tTSchema,\n\tStaticDecode as TypeBoxStaticDecode,\n\tStaticEncode as TypeBoxStaticEncode,\n} from '@sinclair/typebox';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { z } from 'zod/v4';\nimport type { JsonSchemaDef } from '../jsonschema';\n\nexport type TypeSchema<I = unknown, O = I> = TSchema | z.ZodSchema<O, I> | JsonSchemaDef | StandardSchemaV1<I, O>;\n\nexport type SchemaOutput<S extends TypeSchema> =\n\tS extends StandardSchemaV1<infer _I, infer O>\n\t\t? O\n\t\t: S extends z.ZodSchema<infer O, infer _I>\n\t\t\t? O\n\t\t\t: S extends TSchema\n\t\t\t\t? TypeBoxStaticEncode<S>\n\t\t\t\t: S extends JsonSchemaDef<infer _I, infer O>\n\t\t\t\t\t? O\n\t\t\t\t\t: never;\n\nexport type SchemaInput<S extends TypeSchema> =\n\tS extends StandardSchemaV1<infer I, infer _O>\n\t\t? I\n\t\t: S extends z.ZodSchema<infer _O, infer I>\n\t\t\t? I\n\t\t\t: S extends TSchema\n\t\t\t\t? TypeBoxStaticDecode<S>\n\t\t\t\t: S extends JsonSchemaDef<infer I, infer _O>\n\t\t\t\t\t? I\n\t\t\t\t\t: never;\n"],"names":[],"mappings":"AAsBA,WASa"}
@@ -1,74 +1,120 @@
1
- import { match, P } from "ts-pattern";
2
- import { toJsonSchema } from "./toJsonSchema.js";
1
+ import { match, P } from 'ts-pattern';
2
+ import { toJsonSchema } from './toJsonSchema.js';
3
3
  export function createSchemaData(ts, options = {}) {
4
- const schema = toJsonSchema(ts);
5
- return createJsonSchemaData(schema, options);
4
+ const schema = toJsonSchema(ts);
5
+ return createJsonSchemaData(schema, options);
6
6
  }
7
7
  function createJsonSchemaData(schema, options) {
8
- let skip = (s, ctx) => Boolean(!ctx.required && s.nullable);
9
- if (options.all) {
10
- skip = () => false;
11
- }
12
- if (options.skip) {
13
- skip = options.skip;
14
- }
15
- return _create(schema, {
16
- skip
17
- }, {
18
- required: false
19
- });
8
+ let skip = (s, ctx) => Boolean(!ctx.required && s.nullable);
9
+ if (options.all) {
10
+ skip = () => false;
11
+ }
12
+ if (options.skip) {
13
+ skip = options.skip;
14
+ }
15
+ return _create(
16
+ schema,
17
+ {
18
+ skip,
19
+ },
20
+ {
21
+ required: false,
22
+ },
23
+ );
20
24
  }
21
25
  function _create(schema, options, ctx) {
22
- const { skip } = options;
23
- if (skip(schema, ctx)) {
24
- return schema.default;
25
- }
26
- if (schema.default !== undefined) {
27
- return schema.default;
28
- }
29
- return match(schema).returnType().with({
30
- default: P.select()
31
- }, (v) => v).with({
32
- const: P.nonNullable
33
- }, (v) => v.const).with({
34
- anyOf: P.nonNullable
35
- }, (schema) => {
36
- return _create(schema.anyOf[0], options, {
37
- required: false
38
- });
39
- }).with({
40
- oneOf: P.nonNullable
41
- }, (schema) => {
42
- return _create(schema.oneOf[0], options, {
43
- required: false
44
- });
45
- }).with({
46
- type: "string"
47
- }, (schema) => "").with({
48
- type: P.union("number", "integer")
49
- }, (schema) => 0).with({
50
- type: "object"
51
- }, () => {
52
- const out = {};
53
- let required = Array.isArray(schema.required) ? schema.required : [];
54
- for (const [k, v] of Object.entries(schema.properties || {})) {
55
- const value = _create(v, options, {
56
- required: required.includes(k)
57
- });
58
- if (value === undefined) {
59
- continue;
60
- }
61
- out[k] = value;
62
- }
63
- return out;
64
- }).with({
65
- type: "null"
66
- }, () => null).with({
67
- type: "boolean"
68
- }, (schema) => false).with({
69
- type: "array"
70
- }, (schema) => []).otherwise(() => {
71
- return undefined;
72
- });
26
+ const { skip } = options;
27
+ if (skip(schema, ctx)) {
28
+ return schema.default;
29
+ }
30
+ if (schema.default !== undefined) {
31
+ return schema.default;
32
+ }
33
+ return match(schema)
34
+ .returnType()
35
+ .with(
36
+ {
37
+ default: P.select(),
38
+ },
39
+ (v) => v,
40
+ )
41
+ .with(
42
+ {
43
+ const: P.nonNullable,
44
+ },
45
+ (v) => v.const,
46
+ )
47
+ .with(
48
+ {
49
+ anyOf: P.nonNullable,
50
+ },
51
+ (schema) => {
52
+ return _create(schema.anyOf[0], options, {
53
+ required: false,
54
+ });
55
+ },
56
+ )
57
+ .with(
58
+ {
59
+ oneOf: P.nonNullable,
60
+ },
61
+ (schema) => {
62
+ return _create(schema.oneOf[0], options, {
63
+ required: false,
64
+ });
65
+ },
66
+ )
67
+ .with(
68
+ {
69
+ type: 'string',
70
+ },
71
+ (_schema) => '',
72
+ )
73
+ .with(
74
+ {
75
+ type: P.union('number', 'integer'),
76
+ },
77
+ (_schema) => 0,
78
+ )
79
+ .with(
80
+ {
81
+ type: 'object',
82
+ },
83
+ () => {
84
+ const out = {};
85
+ let required = Array.isArray(schema.required) ? schema.required : [];
86
+ for (const [k, v] of Object.entries(schema.properties || {})) {
87
+ const value = _create(v, options, {
88
+ required: required.includes(k),
89
+ });
90
+ if (value === undefined) {
91
+ continue;
92
+ }
93
+ out[k] = value;
94
+ }
95
+ return out;
96
+ },
97
+ )
98
+ .with(
99
+ {
100
+ type: 'null',
101
+ },
102
+ () => null,
103
+ )
104
+ .with(
105
+ {
106
+ type: 'boolean',
107
+ },
108
+ (_schema) => false,
109
+ )
110
+ .with(
111
+ {
112
+ type: 'array',
113
+ },
114
+ (_schema) => [],
115
+ )
116
+ .otherwise(() => {
117
+ return undefined;
118
+ });
73
119
  }
74
120
  //# sourceMappingURL=createSchemaData.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/createSchemaData.ts"],"sourcesContent":["import { match, P } from 'ts-pattern';\nimport type { JsonSchemaDef } from '../jsonschema';\nimport { toJsonSchema } from './toJsonSchema';\nimport type { SchemaOutput, TypeSchema } from './TypeSchema';\n\nexport function createSchemaData<S extends TypeSchema>(\n\tts: S,\n\toptions: CreateSchemaDataOptions = {},\n): Partial<SchemaOutput<S>> {\n\tconst schema = toJsonSchema(ts);\n\treturn createJsonSchemaData(schema, options);\n}\n\ntype CreateSchemaDataOptions = Partial<CreateOptions> & {\n\tall?: boolean;\n};\n\nfunction createJsonSchemaData(schema: JsonSchemaDef, options: CreateSchemaDataOptions): any {\n\tlet skip: CreateOptions['skip'] = (s, ctx) => Boolean(!ctx.required && s.nullable);\n\tif (options.all) {\n\t\tskip = () => false;\n\t}\n\tif (options.skip) {\n\t\tskip = options.skip;\n\t}\n\treturn _create(\n\t\tschema,\n\t\t{\n\t\t\tskip,\n\t\t},\n\t\t{ required: false },\n\t);\n}\n\ntype CreateOptions = {\n\tskip: (schema: JsonSchemaDef, ctx: { required: boolean }) => boolean;\n};\n\nfunction _create(schema: JsonSchemaDef, options: CreateOptions, ctx: { required: boolean }): any {\n\tconst { skip } = options;\n\tif (skip(schema, ctx)) {\n\t\treturn schema.default;\n\t}\n\tif (schema.default !== undefined) {\n\t\treturn schema.default;\n\t}\n\treturn match(schema as JsonSchemaDef)\n\t\t.returnType<any>()\n\t\t.with({ default: P.select() }, (v) => v)\n\t\t.with({ const: P.nonNullable }, (v) => v.const)\n\t\t.with({ anyOf: P.nonNullable }, (schema) => {\n\t\t\treturn _create(schema.anyOf[0], options, { required: false });\n\t\t})\n\t\t.with({ oneOf: P.nonNullable }, (schema) => {\n\t\t\treturn _create(schema.oneOf[0], options, { required: false });\n\t\t})\n\t\t.with({ type: 'string' }, (schema) => '')\n\t\t.with({ type: P.union('number', 'integer') }, (schema) => 0)\n\t\t.with({ type: 'object' }, () => {\n\t\t\tconst out: Record<string, any> = {};\n\n\t\t\tlet required = Array.isArray(schema.required) ? schema.required : [];\n\t\t\tfor (const [k, v] of Object.entries(schema.properties || {}) as [string, JsonSchemaDef][]) {\n\t\t\t\tconst value = _create(v, options, {\n\t\t\t\t\trequired: required.includes(k),\n\t\t\t\t});\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tout[k] = value;\n\t\t\t}\n\n\t\t\treturn out;\n\t\t})\n\t\t.with({ type: 'null' }, () => null)\n\t\t.with({ type: 'boolean' }, (schema) => false)\n\t\t.with({ type: 'array' }, (schema) => [])\n\t\t.otherwise(() => {\n\t\t\treturn undefined;\n\t\t});\n}\n"],"names":["match","P","toJsonSchema","createSchemaData","ts","options","schema","createJsonSchemaData","skip","s","ctx","Boolean","required","nullable","all","_create","default","undefined","returnType","with","select","v","const","nonNullable","anyOf","oneOf","type","union","out","Array","isArray","k","Object","entries","properties","value","includes","otherwise"],"mappings":"AAAA,SAASA,KAAK,EAAEC,CAAC,QAAQ,aAAa;AAEtC,SAASC,YAAY,QAAQ,iBAAiB;AAG9C,OAAO,SAASC,iBACfC,EAAK,EACLC,UAAmC,CAAC,CAAC;IAErC,MAAMC,SAASJ,aAAaE;IAC5B,OAAOG,qBAAqBD,QAAQD;AACrC;AAMA,SAASE,qBAAqBD,MAAqB,EAAED,OAAgC;IACpF,IAAIG,OAA8B,CAACC,GAAGC,MAAQC,QAAQ,CAACD,IAAIE,QAAQ,IAAIH,EAAEI,QAAQ;IACjF,IAAIR,QAAQS,GAAG,EAAE;QAChBN,OAAO,IAAM;IACd;IACA,IAAIH,QAAQG,IAAI,EAAE;QACjBA,OAAOH,QAAQG,IAAI;IACpB;IACA,OAAOO,QACNT,QACA;QACCE;IACD,GACA;QAAEI,UAAU;IAAM;AAEpB;AAMA,SAASG,QAAQT,MAAqB,EAAED,OAAsB,EAAEK,GAA0B;IACzF,MAAM,EAAEF,IAAI,EAAE,GAAGH;IACjB,IAAIG,KAAKF,QAAQI,MAAM;QACtB,OAAOJ,OAAOU,OAAO;IACtB;IACA,IAAIV,OAAOU,OAAO,KAAKC,WAAW;QACjC,OAAOX,OAAOU,OAAO;IACtB;IACA,OAAOhB,MAAMM,QACXY,UAAU,GACVC,IAAI,CAAC;QAAEH,SAASf,EAAEmB,MAAM;IAAG,GAAG,CAACC,IAAMA,GACrCF,IAAI,CAAC;QAAEG,OAAOrB,EAAEsB,WAAW;IAAC,GAAG,CAACF,IAAMA,EAAEC,KAAK,EAC7CH,IAAI,CAAC;QAAEK,OAAOvB,EAAEsB,WAAW;IAAC,GAAG,CAACjB;QAChC,OAAOS,QAAQT,OAAOkB,KAAK,CAAC,EAAE,EAAEnB,SAAS;YAAEO,UAAU;QAAM;IAC5D,GACCO,IAAI,CAAC;QAAEM,OAAOxB,EAAEsB,WAAW;IAAC,GAAG,CAACjB;QAChC,OAAOS,QAAQT,OAAOmB,KAAK,CAAC,EAAE,EAAEpB,SAAS;YAAEO,UAAU;QAAM;IAC5D,GACCO,IAAI,CAAC;QAAEO,MAAM;IAAS,GAAG,CAACpB,SAAW,IACrCa,IAAI,CAAC;QAAEO,MAAMzB,EAAE0B,KAAK,CAAC,UAAU;IAAW,GAAG,CAACrB,SAAW,GACzDa,IAAI,CAAC;QAAEO,MAAM;IAAS,GAAG;QACzB,MAAME,MAA2B,CAAC;QAElC,IAAIhB,WAAWiB,MAAMC,OAAO,CAACxB,OAAOM,QAAQ,IAAIN,OAAOM,QAAQ,GAAG,EAAE;QACpE,KAAK,MAAM,CAACmB,GAAGV,EAAE,IAAIW,OAAOC,OAAO,CAAC3B,OAAO4B,UAAU,IAAI,CAAC,GAAiC;YAC1F,MAAMC,QAAQpB,QAAQM,GAAGhB,SAAS;gBACjCO,UAAUA,SAASwB,QAAQ,CAACL;YAC7B;YACA,IAAII,UAAUlB,WAAW;gBACxB;YACD;YACAW,GAAG,CAACG,EAAE,GAAGI;QACV;QAEA,OAAOP;IACR,GACCT,IAAI,CAAC;QAAEO,MAAM;IAAO,GAAG,IAAM,MAC7BP,IAAI,CAAC;QAAEO,MAAM;IAAU,GAAG,CAACpB,SAAW,OACtCa,IAAI,CAAC;QAAEO,MAAM;IAAQ,GAAG,CAACpB,SAAW,EAAE,EACtC+B,SAAS,CAAC;QACV,OAAOpB;IACR;AACF"}
1
+ {"version":3,"sources":["../../src/schema/createSchemaData.ts"],"sourcesContent":["import { match, P } from 'ts-pattern';\nimport type { JsonSchemaDef } from '../jsonschema';\nimport { toJsonSchema } from './toJsonSchema';\nimport type { SchemaOutput, TypeSchema } from './TypeSchema';\n\nexport function createSchemaData<S extends TypeSchema>(\n\tts: S,\n\toptions: CreateSchemaDataOptions = {},\n): Partial<SchemaOutput<S>> {\n\tconst schema = toJsonSchema(ts);\n\treturn createJsonSchemaData(schema, options);\n}\n\ntype CreateSchemaDataOptions = Partial<CreateOptions> & {\n\tall?: boolean;\n};\n\nfunction createJsonSchemaData(schema: JsonSchemaDef, options: CreateSchemaDataOptions): any {\n\tlet skip: CreateOptions['skip'] = (s, ctx) => Boolean(!ctx.required && s.nullable);\n\tif (options.all) {\n\t\tskip = () => false;\n\t}\n\tif (options.skip) {\n\t\tskip = options.skip;\n\t}\n\treturn _create(\n\t\tschema,\n\t\t{\n\t\t\tskip,\n\t\t},\n\t\t{ required: false },\n\t);\n}\n\ntype CreateOptions = {\n\tskip: (schema: JsonSchemaDef, ctx: { required: boolean }) => boolean;\n};\n\nfunction _create(schema: JsonSchemaDef, options: CreateOptions, ctx: { required: boolean }): any {\n\tconst { skip } = options;\n\tif (skip(schema, ctx)) {\n\t\treturn schema.default;\n\t}\n\tif (schema.default !== undefined) {\n\t\treturn schema.default;\n\t}\n\treturn match(schema as JsonSchemaDef)\n\t\t.returnType<any>()\n\t\t.with({ default: P.select() }, (v) => v)\n\t\t.with({ const: P.nonNullable }, (v) => v.const)\n\t\t.with({ anyOf: P.nonNullable }, (schema) => {\n\t\t\treturn _create(schema.anyOf[0], options, { required: false });\n\t\t})\n\t\t.with({ oneOf: P.nonNullable }, (schema) => {\n\t\t\treturn _create(schema.oneOf[0], options, { required: false });\n\t\t})\n\t\t.with({ type: 'string' }, (_schema) => '')\n\t\t.with({ type: P.union('number', 'integer') }, (_schema) => 0)\n\t\t.with({ type: 'object' }, () => {\n\t\t\tconst out: Record<string, any> = {};\n\n\t\t\tlet required = Array.isArray(schema.required) ? schema.required : [];\n\t\t\tfor (const [k, v] of Object.entries(schema.properties || {}) as [string, JsonSchemaDef][]) {\n\t\t\t\tconst value = _create(v, options, {\n\t\t\t\t\trequired: required.includes(k),\n\t\t\t\t});\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tout[k] = value;\n\t\t\t}\n\n\t\t\treturn out;\n\t\t})\n\t\t.with({ type: 'null' }, () => null)\n\t\t.with({ type: 'boolean' }, (_schema) => false)\n\t\t.with({ type: 'array' }, (_schema) => [])\n\t\t.otherwise(() => {\n\t\t\treturn undefined;\n\t\t});\n}\n"],"names":["match","P","toJsonSchema","createSchemaData","ts","options","schema","createJsonSchemaData","skip","s","ctx","Boolean","required","nullable","all","_create","default","undefined","returnType","with","select","v","const","nonNullable","anyOf","oneOf","type","_schema","union","out","Array","isArray","k","Object","entries","properties","value","includes","otherwise"],"mappings":"AAAA,SAASA,KAAK,EAAEC,CAAC,QAAQ,aAAa;AAEtC,SAASC,YAAY,QAAQ,iBAAiB;AAG9C,OAAO,SAASC,iBACfC,EAAK,EACLC,UAAmC,CAAC,CAAC;IAErC,MAAMC,SAASJ,aAAaE;IAC5B,OAAOG,qBAAqBD,QAAQD;AACrC;AAMA,SAASE,qBAAqBD,MAAqB,EAAED,OAAgC;IACpF,IAAIG,OAA8B,CAACC,GAAGC,MAAQC,QAAQ,CAACD,IAAIE,QAAQ,IAAIH,EAAEI,QAAQ;IACjF,IAAIR,QAAQS,GAAG,EAAE;QAChBN,OAAO,IAAM;IACd;IACA,IAAIH,QAAQG,IAAI,EAAE;QACjBA,OAAOH,QAAQG,IAAI;IACpB;IACA,OAAOO,QACNT,QACA;QACCE;IACD,GACA;QAAEI,UAAU;IAAM;AAEpB;AAMA,SAASG,QAAQT,MAAqB,EAAED,OAAsB,EAAEK,GAA0B;IACzF,MAAM,EAAEF,IAAI,EAAE,GAAGH;IACjB,IAAIG,KAAKF,QAAQI,MAAM;QACtB,OAAOJ,OAAOU,OAAO;IACtB;IACA,IAAIV,OAAOU,OAAO,KAAKC,WAAW;QACjC,OAAOX,OAAOU,OAAO;IACtB;IACA,OAAOhB,MAAMM,QACXY,UAAU,GACVC,IAAI,CAAC;QAAEH,SAASf,EAAEmB,MAAM;IAAG,GAAG,CAACC,IAAMA,GACrCF,IAAI,CAAC;QAAEG,OAAOrB,EAAEsB,WAAW;IAAC,GAAG,CAACF,IAAMA,EAAEC,KAAK,EAC7CH,IAAI,CAAC;QAAEK,OAAOvB,EAAEsB,WAAW;IAAC,GAAG,CAACjB;QAChC,OAAOS,QAAQT,OAAOkB,KAAK,CAAC,EAAE,EAAEnB,SAAS;YAAEO,UAAU;QAAM;IAC5D,GACCO,IAAI,CAAC;QAAEM,OAAOxB,EAAEsB,WAAW;IAAC,GAAG,CAACjB;QAChC,OAAOS,QAAQT,OAAOmB,KAAK,CAAC,EAAE,EAAEpB,SAAS;YAAEO,UAAU;QAAM;IAC5D,GACCO,IAAI,CAAC;QAAEO,MAAM;IAAS,GAAG,CAACC,UAAY,IACtCR,IAAI,CAAC;QAAEO,MAAMzB,EAAE2B,KAAK,CAAC,UAAU;IAAW,GAAG,CAACD,UAAY,GAC1DR,IAAI,CAAC;QAAEO,MAAM;IAAS,GAAG;QACzB,MAAMG,MAA2B,CAAC;QAElC,IAAIjB,WAAWkB,MAAMC,OAAO,CAACzB,OAAOM,QAAQ,IAAIN,OAAOM,QAAQ,GAAG,EAAE;QACpE,KAAK,MAAM,CAACoB,GAAGX,EAAE,IAAIY,OAAOC,OAAO,CAAC5B,OAAO6B,UAAU,IAAI,CAAC,GAAiC;YAC1F,MAAMC,QAAQrB,QAAQM,GAAGhB,SAAS;gBACjCO,UAAUA,SAASyB,QAAQ,CAACL;YAC7B;YACA,IAAII,UAAUnB,WAAW;gBACxB;YACD;YACAY,GAAG,CAACG,EAAE,GAAGI;QACV;QAEA,OAAOP;IACR,GACCV,IAAI,CAAC;QAAEO,MAAM;IAAO,GAAG,IAAM,MAC7BP,IAAI,CAAC;QAAEO,MAAM;IAAU,GAAG,CAACC,UAAY,OACvCR,IAAI,CAAC;QAAEO,MAAM;IAAQ,GAAG,CAACC,UAAY,EAAE,EACvCW,SAAS,CAAC;QACV,OAAOrB;IACR;AACF"}
@@ -1,26 +1,31 @@
1
- import { firstOfMaybeArray } from "@wener/utils";
2
- import { toJsonSchema } from "./toJsonSchema.js";
1
+ import { firstOfMaybeArray } from '@wener/utils';
2
+ import { toJsonSchema } from './toJsonSchema.js';
3
3
  export function findJsonSchemaByPath(schema, objectPath) {
4
- schema = toJsonSchema(schema);
5
- if (!objectPath || !schema) {
6
- return undefined;
7
- }
8
- const segments = objectPath.split(".");
9
- let currentSchema = schema;
10
- for (const segment of segments) {
11
- // 检查当前 schema 是否是对象类型且有 properties
12
- if (currentSchema && typeof currentSchema === "object" && currentSchema.properties && currentSchema.properties[segment]) {
13
- currentSchema = currentSchema.properties[segment];
14
- continue;
15
- }
16
- if (/^\d$/.test(segment) || segment === "[]") {
17
- if (currentSchema.items) {
18
- currentSchema = firstOfMaybeArray(currentSchema.items);
19
- continue;
20
- }
21
- }
22
- return undefined;
23
- }
24
- return currentSchema;
4
+ schema = toJsonSchema(schema);
5
+ if (!objectPath || !schema) {
6
+ return undefined;
7
+ }
8
+ const segments = objectPath.split('.');
9
+ let currentSchema = schema;
10
+ for (const segment of segments) {
11
+ // 检查当前 schema 是否是对象类型且有 properties
12
+ if (
13
+ currentSchema &&
14
+ typeof currentSchema === 'object' &&
15
+ currentSchema.properties &&
16
+ currentSchema.properties[segment]
17
+ ) {
18
+ currentSchema = currentSchema.properties[segment];
19
+ continue;
20
+ }
21
+ if (/^\d$/.test(segment) || segment === '[]') {
22
+ if (currentSchema.items) {
23
+ currentSchema = firstOfMaybeArray(currentSchema.items);
24
+ continue;
25
+ }
26
+ }
27
+ return undefined;
28
+ }
29
+ return currentSchema;
25
30
  }
26
31
  //# sourceMappingURL=findJsonSchemaByPath.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/findJsonSchemaByPath.ts"],"sourcesContent":["import { firstOfMaybeArray } from '@wener/utils';\nimport { toJsonSchema } from './toJsonSchema';\nimport type { TypeSchema } from './TypeSchema';\n\nexport function findJsonSchemaByPath(schema: TypeSchema, objectPath: string) {\n\tschema = toJsonSchema(schema);\n\tif (!objectPath || !schema) {\n\t\treturn undefined;\n\t}\n\n\tconst segments = objectPath.split('.');\n\tlet currentSchema = schema;\n\n\tfor (const segment of segments) {\n\t\t// 检查当前 schema 是否是对象类型且有 properties\n\t\tif (\n\t\t\tcurrentSchema\n\t\t\t&& typeof currentSchema === 'object'\n\t\t\t&& currentSchema.properties\n\t\t\t&& currentSchema.properties[segment]\n\t\t) {\n\t\t\tcurrentSchema = currentSchema.properties[segment];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (/^\\d$/.test(segment) || segment === '[]') {\n\t\t\tif (currentSchema.items) {\n\t\t\t\tcurrentSchema = firstOfMaybeArray(currentSchema.items);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\treturn currentSchema;\n}\n"],"names":["firstOfMaybeArray","toJsonSchema","findJsonSchemaByPath","schema","objectPath","undefined","segments","split","currentSchema","segment","properties","test","items"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,eAAe;AACjD,SAASC,YAAY,QAAQ,iBAAiB;AAG9C,OAAO,SAASC,qBAAqBC,MAAkB,EAAEC,UAAkB;IAC1ED,SAASF,aAAaE;IACtB,IAAI,CAACC,cAAc,CAACD,QAAQ;QAC3B,OAAOE;IACR;IAEA,MAAMC,WAAWF,WAAWG,KAAK,CAAC;IAClC,IAAIC,gBAAgBL;IAEpB,KAAK,MAAMM,WAAWH,SAAU;QAC/B,mCAAmC;QACnC,IACCE,iBACG,OAAOA,kBAAkB,YACzBA,cAAcE,UAAU,IACxBF,cAAcE,UAAU,CAACD,QAAQ,EACnC;YACDD,gBAAgBA,cAAcE,UAAU,CAACD,QAAQ;YACjD;QACD;QAEA,IAAI,OAAOE,IAAI,CAACF,YAAYA,YAAY,MAAM;YAC7C,IAAID,cAAcI,KAAK,EAAE;gBACxBJ,gBAAgBR,kBAAkBQ,cAAcI,KAAK;gBACrD;YACD;QACD;QAEA,OAAOP;IACR;IAEA,OAAOG;AACR"}
1
+ {"version":3,"sources":["../../src/schema/findJsonSchemaByPath.ts"],"sourcesContent":["import { firstOfMaybeArray } from '@wener/utils';\nimport { toJsonSchema } from './toJsonSchema';\nimport type { TypeSchema } from './TypeSchema';\n\nexport function findJsonSchemaByPath(schema: TypeSchema, objectPath: string) {\n\tschema = toJsonSchema(schema);\n\tif (!objectPath || !schema) {\n\t\treturn undefined;\n\t}\n\n\tconst segments = objectPath.split('.');\n\tlet currentSchema = schema;\n\n\tfor (const segment of segments) {\n\t\t// 检查当前 schema 是否是对象类型且有 properties\n\t\tif (\n\t\t\tcurrentSchema &&\n\t\t\ttypeof currentSchema === 'object' &&\n\t\t\tcurrentSchema.properties &&\n\t\t\tcurrentSchema.properties[segment]\n\t\t) {\n\t\t\tcurrentSchema = currentSchema.properties[segment];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (/^\\d$/.test(segment) || segment === '[]') {\n\t\t\tif (currentSchema.items) {\n\t\t\t\tcurrentSchema = firstOfMaybeArray(currentSchema.items);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\treturn currentSchema;\n}\n"],"names":["firstOfMaybeArray","toJsonSchema","findJsonSchemaByPath","schema","objectPath","undefined","segments","split","currentSchema","segment","properties","test","items"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,eAAe;AACjD,SAASC,YAAY,QAAQ,iBAAiB;AAG9C,OAAO,SAASC,qBAAqBC,MAAkB,EAAEC,UAAkB;IAC1ED,SAASF,aAAaE;IACtB,IAAI,CAACC,cAAc,CAACD,QAAQ;QAC3B,OAAOE;IACR;IAEA,MAAMC,WAAWF,WAAWG,KAAK,CAAC;IAClC,IAAIC,gBAAgBL;IAEpB,KAAK,MAAMM,WAAWH,SAAU;QAC/B,mCAAmC;QACnC,IACCE,iBACA,OAAOA,kBAAkB,YACzBA,cAAcE,UAAU,IACxBF,cAAcE,UAAU,CAACD,QAAQ,EAChC;YACDD,gBAAgBA,cAAcE,UAAU,CAACD,QAAQ;YACjD;QACD;QAEA,IAAI,OAAOE,IAAI,CAACF,YAAYA,YAAY,MAAM;YAC7C,IAAID,cAAcI,KAAK,EAAE;gBACxBJ,gBAAgBR,kBAAkBQ,cAAcI,KAAK;gBACrD;YACD;QACD;QAEA,OAAOP;IACR;IAEA,OAAOG;AACR"}