@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,247 +1,231 @@
1
1
  function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value: value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- }
10
- else {
11
- obj[key] = value;
12
- }
13
- return obj;
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true,
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
14
13
  }
15
- import dayjs from "dayjs";
16
- import duration from "dayjs/plugin/duration";
17
- import { describe, expect, it } from "vitest";
18
- import { parseRelativeTime } from "./parseRelativeTime.js";
14
+
15
+ import dayjs from 'dayjs';
16
+ import duration from 'dayjs/plugin/duration';
17
+ import { describe, expect, it } from 'vitest';
18
+ import { parseRelativeTime } from './parseRelativeTime.js';
19
+
19
20
  dayjs.extend(duration);
20
- describe("parseRelativeTime", function () {
21
- it("should return empty array for \"now\"", function () {
22
- var result = parseRelativeTime("now");
23
- expect(result).toEqual([]);
24
- });
25
- it("should parse simple addition operations", function () {
26
- var result = parseRelativeTime("now+1h");
27
- expect(result).toHaveLength(1);
28
- expect(result[0]).toEqual({
29
- operator: "+",
30
- duration: dayjs.duration({
31
- hours: 1
32
- })
33
- });
34
- });
35
- it("should parse simple subtraction operations", function () {
36
- var result = parseRelativeTime("now-30m");
37
- expect(result).toHaveLength(1);
38
- expect(result[0]).toEqual({
39
- operator: "-",
40
- duration: dayjs.duration({
41
- minutes: 30
42
- })
43
- });
44
- });
45
- it("should parse milliseconds", function () {
46
- var result = parseRelativeTime("now+500ms");
47
- expect(result).toHaveLength(1);
48
- expect(result[0]).toEqual({
49
- operator: "+",
50
- duration: dayjs.duration({
51
- milliseconds: 500
52
- })
53
- });
54
- });
55
- it("should parse complex duration combinations", function () {
56
- var result = parseRelativeTime("now+1d6h30m");
57
- expect(result).toHaveLength(1);
58
- expect(result[0]).toEqual({
59
- operator: "+",
60
- duration: dayjs.duration({
61
- days: 1,
62
- hours: 6,
63
- minutes: 30
64
- })
65
- });
66
- });
67
- it("should parse truncation operations", function () {
68
- var result = parseRelativeTime("now/d");
69
- expect(result).toHaveLength(1);
70
- expect(result[0]).toEqual({
71
- operator: "/",
72
- unit: "d"
73
- });
74
- var result2 = parseRelativeTime("now\\M");
75
- expect(result2).toHaveLength(1);
76
- expect(result2[0]).toEqual({
77
- operator: "\\",
78
- unit: "M"
79
- });
80
- });
81
- it("should parse multiple operations", function () {
82
- var result = parseRelativeTime("now-1h+30m");
83
- expect(result).toHaveLength(2);
84
- expect(result[0]).toEqual({
85
- operator: "-",
86
- duration: dayjs.duration({
87
- hours: 1
88
- })
89
- });
90
- expect(result[1]).toEqual({
91
- operator: "+",
92
- duration: dayjs.duration({
93
- minutes: 30
94
- })
95
- });
96
- });
97
- it("should parse mixed arithmetic and truncation operations", function () {
98
- var result = parseRelativeTime("now-1M/M");
99
- expect(result).toHaveLength(2);
100
- expect(result[0]).toEqual({
101
- operator: "-",
102
- duration: dayjs.duration({
103
- months: 1
104
- })
105
- });
106
- expect(result[1]).toEqual({
107
- operator: "/",
108
- unit: "M"
109
- });
110
- });
111
- it("should handle all supported units", function () {
112
- var units = [
113
- "ms",
114
- "s",
115
- "m",
116
- "h",
117
- "d",
118
- "w",
119
- "M",
120
- "Q",
121
- "y"
122
- ];
123
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
124
- try {
125
- for (var _iterator = units[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
126
- var unit = _step.value;
127
- var result = parseRelativeTime("now+1".concat(unit));
128
- expect(result).toHaveLength(1);
129
- expect(result[0]).toEqual({
130
- operator: "+",
131
- duration: dayjs.duration(_define_property({}, unit, 1))
132
- });
133
- }
134
- }
135
- catch (err) {
136
- _didIteratorError = true;
137
- _iteratorError = err;
138
- }
139
- finally {
140
- try {
141
- if (!_iteratorNormalCompletion && _iterator.return != null) {
142
- _iterator.return();
143
- }
144
- }
145
- finally {
146
- if (_didIteratorError) {
147
- throw _iteratorError;
148
- }
149
- }
150
- }
151
- });
152
- it("should handle complex multi-unit expressions", function () {
153
- var result = parseRelativeTime("now+1y2M3w4d5h6m7s8ms");
154
- expect(result).toHaveLength(1);
155
- expect(result[0]).toEqual({
156
- operator: "+",
157
- duration: dayjs.duration({
158
- years: 1,
159
- months: 2,
160
- weeks: 3,
161
- days: 4,
162
- hours: 5,
163
- minutes: 6,
164
- seconds: 7,
165
- milliseconds: 8
166
- })
167
- });
168
- });
169
- it("should handle same unit multiple times (should sum)", function () {
170
- var result = parseRelativeTime("now+1h2h3h");
171
- expect(result).toHaveLength(1);
172
- expect(result[0]).toEqual({
173
- operator: "+",
174
- duration: dayjs.duration({
175
- hours: 6
176
- })
177
- });
178
- });
179
- it("should throw error for invalid format", function () {
180
- expect(function () {
181
- return parseRelativeTime("invalid");
182
- }).toThrow("Invalid relative time format");
183
- expect(function () {
184
- return parseRelativeTime("now+");
185
- }).toThrow("Invalid relative time format");
186
- expect(function () {
187
- return parseRelativeTime("now+abc");
188
- }).toThrow("Invalid duration specification");
189
- });
190
- it("should throw error for invalid units in truncation", function () {
191
- expect(function () {
192
- return parseRelativeTime("now/invalid");
193
- }).toThrow("Invalid unit");
194
- });
195
- it("should throw error for invalid units in duration", function () {
196
- expect(function () {
197
- return parseRelativeTime("now+1invalid");
198
- }).toThrow("Invalid unit");
199
- });
200
- it("should handle whitespace correctly", function () {
201
- // The regex should handle operands without extra whitespace issues
202
- var result = parseRelativeTime("now+1h30m");
203
- expect(result).toHaveLength(1);
204
- expect(result[0]).toEqual({
205
- operator: "+",
206
- duration: dayjs.duration({
207
- hours: 1,
208
- minutes: 30
209
- })
210
- });
211
- });
212
- it("should parse real-world examples", function () {
213
- // Last 24 hours
214
- var result1 = parseRelativeTime("now-24h");
215
- expect(result1).toHaveLength(1);
216
- expect(result1[0]).toEqual({
217
- operator: "-",
218
- duration: dayjs.duration({
219
- hours: 24
220
- })
221
- });
222
- // Start of previous month
223
- var result2 = parseRelativeTime("now-1M/M");
224
- expect(result2).toHaveLength(2);
225
- expect(result2[0]).toEqual({
226
- operator: "-",
227
- duration: dayjs.duration({
228
- months: 1
229
- })
230
- });
231
- expect(result2[1]).toEqual({
232
- operator: "/",
233
- unit: "M"
234
- });
235
- // Complex time ago
236
- var result3 = parseRelativeTime("now-1w2d3h");
237
- expect(result3).toHaveLength(1);
238
- expect(result3[0]).toEqual({
239
- operator: "-",
240
- duration: dayjs.duration({
241
- weeks: 1,
242
- days: 2,
243
- hours: 3
244
- })
245
- });
246
- });
21
+ describe('parseRelativeTime', () => {
22
+ it('should return empty array for "now"', () => {
23
+ var result = parseRelativeTime('now');
24
+ expect(result).toEqual([]);
25
+ });
26
+ it('should parse simple addition operations', () => {
27
+ var result = parseRelativeTime('now+1h');
28
+ expect(result).toHaveLength(1);
29
+ expect(result[0]).toEqual({
30
+ operator: '+',
31
+ duration: dayjs.duration({
32
+ hours: 1,
33
+ }),
34
+ });
35
+ });
36
+ it('should parse simple subtraction operations', () => {
37
+ var result = parseRelativeTime('now-30m');
38
+ expect(result).toHaveLength(1);
39
+ expect(result[0]).toEqual({
40
+ operator: '-',
41
+ duration: dayjs.duration({
42
+ minutes: 30,
43
+ }),
44
+ });
45
+ });
46
+ it('should parse milliseconds', () => {
47
+ var result = parseRelativeTime('now+500ms');
48
+ expect(result).toHaveLength(1);
49
+ expect(result[0]).toEqual({
50
+ operator: '+',
51
+ duration: dayjs.duration({
52
+ milliseconds: 500,
53
+ }),
54
+ });
55
+ });
56
+ it('should parse complex duration combinations', () => {
57
+ var result = parseRelativeTime('now+1d6h30m');
58
+ expect(result).toHaveLength(1);
59
+ expect(result[0]).toEqual({
60
+ operator: '+',
61
+ duration: dayjs.duration({
62
+ days: 1,
63
+ hours: 6,
64
+ minutes: 30,
65
+ }),
66
+ });
67
+ });
68
+ it('should parse truncation operations', () => {
69
+ var result = parseRelativeTime('now/d');
70
+ expect(result).toHaveLength(1);
71
+ expect(result[0]).toEqual({
72
+ operator: '/',
73
+ unit: 'd',
74
+ });
75
+ var result2 = parseRelativeTime('now\\M');
76
+ expect(result2).toHaveLength(1);
77
+ expect(result2[0]).toEqual({
78
+ operator: '\\',
79
+ unit: 'M',
80
+ });
81
+ });
82
+ it('should parse multiple operations', () => {
83
+ var result = parseRelativeTime('now-1h+30m');
84
+ expect(result).toHaveLength(2);
85
+ expect(result[0]).toEqual({
86
+ operator: '-',
87
+ duration: dayjs.duration({
88
+ hours: 1,
89
+ }),
90
+ });
91
+ expect(result[1]).toEqual({
92
+ operator: '+',
93
+ duration: dayjs.duration({
94
+ minutes: 30,
95
+ }),
96
+ });
97
+ });
98
+ it('should parse mixed arithmetic and truncation operations', () => {
99
+ var result = parseRelativeTime('now-1M/M');
100
+ expect(result).toHaveLength(2);
101
+ expect(result[0]).toEqual({
102
+ operator: '-',
103
+ duration: dayjs.duration({
104
+ months: 1,
105
+ }),
106
+ });
107
+ expect(result[1]).toEqual({
108
+ operator: '/',
109
+ unit: 'M',
110
+ });
111
+ });
112
+ it('should handle all supported units', () => {
113
+ var units = ['ms', 's', 'm', 'h', 'd', 'w', 'M', 'Q', 'y'];
114
+ var _iteratorNormalCompletion = true,
115
+ _didIteratorError = false,
116
+ _iteratorError;
117
+ try {
118
+ for (
119
+ var _iterator = units[Symbol.iterator](), _step;
120
+ !(_iteratorNormalCompletion = (_step = _iterator.next()).done);
121
+ _iteratorNormalCompletion = true
122
+ ) {
123
+ var unit = _step.value;
124
+ var result = parseRelativeTime('now+1'.concat(unit));
125
+ expect(result).toHaveLength(1);
126
+ expect(result[0]).toEqual({
127
+ operator: '+',
128
+ duration: dayjs.duration(_define_property({}, unit, 1)),
129
+ });
130
+ }
131
+ } catch (err) {
132
+ _didIteratorError = true;
133
+ _iteratorError = err;
134
+ } finally {
135
+ try {
136
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
137
+ _iterator.return();
138
+ }
139
+ } finally {
140
+ if (_didIteratorError) {
141
+ throw _iteratorError;
142
+ }
143
+ }
144
+ }
145
+ });
146
+ it('should handle complex multi-unit expressions', () => {
147
+ var result = parseRelativeTime('now+1y2M3w4d5h6m7s8ms');
148
+ expect(result).toHaveLength(1);
149
+ expect(result[0]).toEqual({
150
+ operator: '+',
151
+ duration: dayjs.duration({
152
+ years: 1,
153
+ months: 2,
154
+ weeks: 3,
155
+ days: 4,
156
+ hours: 5,
157
+ minutes: 6,
158
+ seconds: 7,
159
+ milliseconds: 8,
160
+ }),
161
+ });
162
+ });
163
+ it('should handle same unit multiple times (should sum)', () => {
164
+ var result = parseRelativeTime('now+1h2h3h');
165
+ expect(result).toHaveLength(1);
166
+ expect(result[0]).toEqual({
167
+ operator: '+',
168
+ duration: dayjs.duration({
169
+ hours: 6,
170
+ }),
171
+ });
172
+ });
173
+ it('should throw error for invalid format', () => {
174
+ expect(() => parseRelativeTime('invalid')).toThrow('Invalid relative time format');
175
+ expect(() => parseRelativeTime('now+')).toThrow('Invalid relative time format');
176
+ expect(() => parseRelativeTime('now+abc')).toThrow('Invalid duration specification');
177
+ });
178
+ it('should throw error for invalid units in truncation', () => {
179
+ expect(() => parseRelativeTime('now/invalid')).toThrow('Invalid unit');
180
+ });
181
+ it('should throw error for invalid units in duration', () => {
182
+ expect(() => parseRelativeTime('now+1invalid')).toThrow('Invalid unit');
183
+ });
184
+ it('should handle whitespace correctly', () => {
185
+ // The regex should handle operands without extra whitespace issues
186
+ var result = parseRelativeTime('now+1h30m');
187
+ expect(result).toHaveLength(1);
188
+ expect(result[0]).toEqual({
189
+ operator: '+',
190
+ duration: dayjs.duration({
191
+ hours: 1,
192
+ minutes: 30,
193
+ }),
194
+ });
195
+ });
196
+ it('should parse real-world examples', () => {
197
+ // Last 24 hours
198
+ var result1 = parseRelativeTime('now-24h');
199
+ expect(result1).toHaveLength(1);
200
+ expect(result1[0]).toEqual({
201
+ operator: '-',
202
+ duration: dayjs.duration({
203
+ hours: 24,
204
+ }),
205
+ });
206
+ // Start of previous month
207
+ var result2 = parseRelativeTime('now-1M/M');
208
+ expect(result2).toHaveLength(2);
209
+ expect(result2[0]).toEqual({
210
+ operator: '-',
211
+ duration: dayjs.duration({
212
+ months: 1,
213
+ }),
214
+ });
215
+ expect(result2[1]).toEqual({
216
+ operator: '/',
217
+ unit: 'M',
218
+ });
219
+ // Complex time ago
220
+ var result3 = parseRelativeTime('now-1w2d3h');
221
+ expect(result3).toHaveLength(1);
222
+ expect(result3[0]).toEqual({
223
+ operator: '-',
224
+ duration: dayjs.duration({
225
+ weeks: 1,
226
+ days: 2,
227
+ hours: 3,
228
+ }),
229
+ });
230
+ });
247
231
  });