@wener/common 2.0.2 → 2.0.3

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 (351) hide show
  1. package/lib/ai/qwen3vl/index.js +2 -0
  2. package/lib/ai/qwen3vl/index.js.map +1 -0
  3. package/lib/ai/qwen3vl/utils.js +31 -0
  4. package/lib/ai/qwen3vl/utils.js.map +1 -0
  5. package/lib/ai/vision/DocLayoutElementTypeSchema.js +28 -0
  6. package/lib/ai/vision/DocLayoutElementTypeSchema.js.map +1 -0
  7. package/lib/ai/vision/ImageAnnotationSchema.js +50 -0
  8. package/lib/ai/vision/ImageAnnotationSchema.js.map +1 -0
  9. package/lib/ai/vision/index.js +3 -0
  10. package/lib/ai/vision/index.js.map +1 -0
  11. package/lib/ai/vision/resolveImageAnnotation.js +105 -0
  12. package/lib/ai/vision/resolveImageAnnotation.js.map +1 -0
  13. package/lib/cn/ChineseResidentIdNo.js +21 -14
  14. package/lib/cn/ChineseResidentIdNo.js.map +1 -0
  15. package/lib/cn/ChineseResidentIdNo.test.js +1 -1
  16. package/lib/cn/DivisionCode.js +30 -25
  17. package/lib/cn/DivisionCode.js.map +1 -0
  18. package/lib/cn/DivisionCode.test.js +1 -1
  19. package/lib/cn/Mod11.js +38 -81
  20. package/lib/cn/Mod11.js.map +1 -0
  21. package/lib/cn/Mod31.js +41 -90
  22. package/lib/cn/Mod31.js.map +1 -0
  23. package/lib/cn/UnifiedSocialCreditCode.js +43 -34
  24. package/lib/cn/UnifiedSocialCreditCode.js.map +1 -0
  25. package/lib/cn/UnifiedSocialCreditCode.test.js +1 -1
  26. package/lib/cn/formatChineseAmount.js +77 -0
  27. package/lib/cn/formatChineseAmount.js.map +1 -0
  28. package/lib/cn/index.js +7 -1
  29. package/lib/cn/index.js.map +1 -0
  30. package/lib/cn/parseChineseNumber.js +94 -0
  31. package/lib/cn/parseChineseNumber.js.map +1 -0
  32. package/lib/cn/parseChineseNumber.test.js +278 -0
  33. package/lib/cn/pinyin/cartesianProduct.js +22 -0
  34. package/lib/cn/pinyin/cartesianProduct.js.map +1 -0
  35. package/lib/cn/pinyin/cartesianProduct.test.js +179 -0
  36. package/lib/cn/pinyin/data.json +23573 -0
  37. package/lib/cn/pinyin/loader.js +14 -0
  38. package/lib/cn/pinyin/loader.js.map +1 -0
  39. package/lib/cn/pinyin/preload.js +3 -0
  40. package/lib/cn/pinyin/preload.js.map +1 -0
  41. package/lib/cn/pinyin/toPinyin.test.js +167 -0
  42. package/lib/cn/pinyin/toPinyinPure.js +33 -0
  43. package/lib/cn/pinyin/toPinyinPure.js.map +1 -0
  44. package/lib/cn/pinyin/transform.js +14 -0
  45. package/lib/cn/pinyin/transform.js.map +1 -0
  46. package/lib/cn/types.d.js +2 -0
  47. package/lib/cn/types.d.js.map +1 -0
  48. package/lib/consola/createStandardConsolaReporter.js +6 -6
  49. package/lib/consola/createStandardConsolaReporter.js.map +1 -0
  50. package/lib/consola/formatLogObject.js +65 -145
  51. package/lib/consola/formatLogObject.js.map +1 -0
  52. package/lib/consola/formatLogObject.test.js +184 -0
  53. package/lib/consola/index.js +1 -0
  54. package/lib/consola/index.js.map +1 -0
  55. package/lib/data/formatSort.js +6 -5
  56. package/lib/data/formatSort.js.map +1 -0
  57. package/lib/data/index.js +1 -0
  58. package/lib/data/index.js.map +1 -0
  59. package/lib/data/maybeNumber.js +5 -7
  60. package/lib/data/maybeNumber.js.map +1 -0
  61. package/lib/data/parseSort.js +22 -28
  62. package/lib/data/parseSort.js.map +1 -0
  63. package/lib/data/resolvePagination.js +13 -17
  64. package/lib/data/resolvePagination.js.map +1 -0
  65. package/lib/data/types.d.js +2 -0
  66. package/lib/data/types.d.js.map +1 -0
  67. package/lib/dayjs/dayjs.js +21 -19
  68. package/lib/dayjs/dayjs.js.map +1 -0
  69. package/lib/dayjs/formatDuration.js +15 -14
  70. package/lib/dayjs/formatDuration.js.map +1 -0
  71. package/lib/dayjs/index.js +2 -0
  72. package/lib/dayjs/index.js.map +1 -0
  73. package/lib/dayjs/parseDuration.js +5 -8
  74. package/lib/dayjs/parseDuration.js.map +1 -0
  75. package/lib/dayjs/parseRelativeTime.js +90 -0
  76. package/lib/dayjs/parseRelativeTime.js.map +1 -0
  77. package/lib/dayjs/parseRelativeTime.test.js +247 -0
  78. package/lib/dayjs/resolveRelativeTime.js +158 -0
  79. package/lib/dayjs/resolveRelativeTime.js.map +1 -0
  80. package/lib/dayjs/resolveRelativeTime.test.js +310 -0
  81. package/lib/decimal/index.js +1 -0
  82. package/lib/decimal/index.js.map +1 -0
  83. package/lib/decimal/parseDecimal.js +3 -1
  84. package/lib/decimal/parseDecimal.js.map +1 -0
  85. package/lib/emittery/emitter.js +10 -0
  86. package/lib/emittery/emitter.js.map +1 -0
  87. package/lib/emittery/index.js +2 -0
  88. package/lib/emittery/index.js.map +1 -0
  89. package/lib/foundation/schema/SexType.js +5 -3
  90. package/lib/foundation/schema/SexType.js.map +1 -0
  91. package/lib/foundation/schema/index.js +1 -0
  92. package/lib/foundation/schema/index.js.map +1 -0
  93. package/lib/foundation/schema/parseSexType.js +1 -0
  94. package/lib/foundation/schema/parseSexType.js.map +1 -0
  95. package/lib/foundation/schema/types.js +4 -2
  96. package/lib/foundation/schema/types.js.map +1 -0
  97. package/lib/fs/FileSystemError.js +23 -0
  98. package/lib/fs/FileSystemError.js.map +1 -0
  99. package/lib/fs/IFileSystem.d.js +3 -0
  100. package/lib/fs/IFileSystem.d.js.map +1 -0
  101. package/lib/fs/MemoryFileSystem.test.js +188 -0
  102. package/lib/fs/createBrowserFileSystem.js +248 -0
  103. package/lib/fs/createBrowserFileSystem.js.map +1 -0
  104. package/lib/fs/createMemoryFileSystem.js +516 -0
  105. package/lib/fs/createMemoryFileSystem.js.map +1 -0
  106. package/lib/fs/createSandboxFileSystem.js +108 -0
  107. package/lib/fs/createSandboxFileSystem.js.map +1 -0
  108. package/lib/fs/createWebDavFileSystem.js +137 -0
  109. package/lib/fs/createWebDavFileSystem.js.map +1 -0
  110. package/lib/fs/findMimeType.js +17 -0
  111. package/lib/fs/findMimeType.js.map +1 -0
  112. package/lib/fs/index.js +8 -0
  113. package/lib/fs/index.js.map +1 -0
  114. package/lib/fs/orpc/FileSystemContract.js +93 -0
  115. package/lib/fs/orpc/FileSystemContract.js.map +1 -0
  116. package/lib/fs/orpc/createContractClientFileSystem.js +93 -0
  117. package/lib/fs/orpc/createContractClientFileSystem.js.map +1 -0
  118. package/lib/fs/orpc/index.js +3 -0
  119. package/lib/fs/orpc/index.js.map +1 -0
  120. package/lib/fs/orpc/server/createFileSystemContractImpl.js +63 -0
  121. package/lib/fs/orpc/server/createFileSystemContractImpl.js.map +1 -0
  122. package/lib/fs/orpc/server/index.js +2 -0
  123. package/lib/fs/orpc/server/index.js.map +1 -0
  124. package/lib/fs/s3/createS3MiniFileSystem.js +705 -0
  125. package/lib/fs/s3/createS3MiniFileSystem.js.map +1 -0
  126. package/lib/fs/s3/index.js +2 -0
  127. package/lib/fs/s3/index.js.map +1 -0
  128. package/lib/fs/s3/s3mini.test.js +584 -0
  129. package/lib/fs/scandir.js +59 -0
  130. package/lib/fs/scandir.js.map +1 -0
  131. package/lib/fs/server/createDatabaseFileSystem.js +750 -0
  132. package/lib/fs/server/createDatabaseFileSystem.js.map +1 -0
  133. package/lib/fs/server/createNodeFileSystem.js +401 -0
  134. package/lib/fs/server/createNodeFileSystem.js.map +1 -0
  135. package/lib/fs/server/dbfs.test.js +221 -0
  136. package/lib/fs/server/index.js +2 -0
  137. package/lib/fs/server/index.js.map +1 -0
  138. package/lib/fs/server/loadTestDatabase.js +127 -0
  139. package/lib/fs/server/loadTestDatabase.js.map +1 -0
  140. package/lib/fs/tests/runFileSystemTest.js +318 -0
  141. package/lib/fs/tests/runFileSystemTest.js.map +1 -0
  142. package/lib/fs/types.js +27 -0
  143. package/lib/fs/types.js.map +1 -0
  144. package/lib/fs/utils/getFileUrl.js +35 -0
  145. package/lib/fs/utils/getFileUrl.js.map +1 -0
  146. package/lib/fs/utils.js +22 -0
  147. package/lib/fs/utils.js.map +1 -0
  148. package/lib/index.js +1 -0
  149. package/lib/index.js.map +1 -0
  150. package/lib/jsonschema/JsonSchema.js +146 -172
  151. package/lib/jsonschema/JsonSchema.js.map +1 -0
  152. package/lib/jsonschema/forEachJsonSchema.js +44 -0
  153. package/lib/jsonschema/forEachJsonSchema.js.map +1 -0
  154. package/lib/jsonschema/index.js +2 -0
  155. package/lib/jsonschema/index.js.map +1 -0
  156. package/lib/jsonschema/types.d.js +2 -0
  157. package/lib/jsonschema/types.d.js.map +1 -0
  158. package/lib/meta/defineFileType.js +20 -103
  159. package/lib/meta/defineFileType.js.map +1 -0
  160. package/lib/meta/defineInit.js +31 -250
  161. package/lib/meta/defineInit.js.map +1 -0
  162. package/lib/meta/defineMetadata.js +24 -140
  163. package/lib/meta/defineMetadata.js.map +1 -0
  164. package/lib/meta/index.js +1 -0
  165. package/lib/meta/index.js.map +1 -0
  166. package/lib/orpc/createOpenApiContractClient.js +27 -0
  167. package/lib/orpc/createOpenApiContractClient.js.map +1 -0
  168. package/lib/orpc/createRpcContractClient.js +34 -0
  169. package/lib/orpc/createRpcContractClient.js.map +1 -0
  170. package/lib/orpc/index.js +3 -0
  171. package/lib/orpc/index.js.map +1 -0
  172. package/lib/orpc/resolveLinkPlugins.js +28 -0
  173. package/lib/orpc/resolveLinkPlugins.js.map +1 -0
  174. package/lib/password/PHC.js +63 -87
  175. package/lib/password/PHC.js.map +1 -0
  176. package/lib/password/PHC.test.js +11 -3
  177. package/lib/password/Password.js +29 -294
  178. package/lib/password/Password.js.map +1 -0
  179. package/lib/password/Password.test.js +35 -22
  180. package/lib/password/createArgon2PasswordAlgorithm.js +35 -191
  181. package/lib/password/createArgon2PasswordAlgorithm.js.map +1 -0
  182. package/lib/password/createBase64PasswordAlgorithm.js +8 -141
  183. package/lib/password/createBase64PasswordAlgorithm.js.map +1 -0
  184. package/lib/password/createBcryptPasswordAlgorithm.js +13 -168
  185. package/lib/password/createBcryptPasswordAlgorithm.js.map +1 -0
  186. package/lib/password/createPBKDF2PasswordAlgorithm.js +46 -228
  187. package/lib/password/createPBKDF2PasswordAlgorithm.js.map +1 -0
  188. package/lib/password/createScryptPasswordAlgorithm.js +55 -211
  189. package/lib/password/createScryptPasswordAlgorithm.js.map +1 -0
  190. package/lib/password/index.js +1 -0
  191. package/lib/password/index.js.map +1 -0
  192. package/lib/password/server/index.js +1 -0
  193. package/lib/password/server/index.js.map +1 -0
  194. package/lib/resource/Identifiable.js +2 -0
  195. package/lib/resource/Identifiable.js.map +1 -0
  196. package/lib/resource/ListQuery.js +21 -93
  197. package/lib/resource/ListQuery.js.map +1 -0
  198. package/lib/resource/getTitleOfResource.js +3 -5
  199. package/lib/resource/getTitleOfResource.js.map +1 -0
  200. package/lib/resource/index.js +1 -0
  201. package/lib/resource/index.js.map +1 -0
  202. package/lib/resource/schema/AnyResourceSchema.js +2 -1
  203. package/lib/resource/schema/AnyResourceSchema.js.map +1 -0
  204. package/lib/resource/schema/BaseResourceSchema.js +2 -1
  205. package/lib/resource/schema/BaseResourceSchema.js.map +1 -0
  206. package/lib/resource/schema/ResourceActionType.js +6 -4
  207. package/lib/resource/schema/ResourceActionType.js.map +1 -0
  208. package/lib/resource/schema/ResourceStatus.js +5 -3
  209. package/lib/resource/schema/ResourceStatus.js.map +1 -0
  210. package/lib/resource/schema/ResourceType.js +5 -3
  211. package/lib/resource/schema/ResourceType.js.map +1 -0
  212. package/lib/resource/schema/index.js +1 -0
  213. package/lib/resource/schema/index.js.map +1 -0
  214. package/lib/resource/schema/types.js +16 -20
  215. package/lib/resource/schema/types.js.map +1 -0
  216. package/lib/s3/formatS3Url.js +65 -0
  217. package/lib/s3/formatS3Url.js.map +1 -0
  218. package/lib/s3/formatS3Url.test.js +262 -0
  219. package/lib/s3/index.js +3 -0
  220. package/lib/s3/index.js.map +1 -0
  221. package/lib/s3/parseS3Url.js +65 -0
  222. package/lib/s3/parseS3Url.js.map +1 -0
  223. package/lib/s3/parseS3Url.test.js +270 -0
  224. package/lib/schema/SchemaRegistry.js +38 -38
  225. package/lib/schema/SchemaRegistry.js.map +1 -0
  226. package/lib/schema/TypeSchema.d.js +2 -0
  227. package/lib/schema/TypeSchema.d.js.map +1 -0
  228. package/lib/schema/createSchemaData.js +26 -125
  229. package/lib/schema/createSchemaData.js.map +1 -0
  230. package/lib/schema/findJsonSchemaByPath.js +13 -36
  231. package/lib/schema/findJsonSchemaByPath.js.map +1 -0
  232. package/lib/schema/formatZodError.js +140 -0
  233. package/lib/schema/formatZodError.js.map +1 -0
  234. package/lib/schema/formatZodError.test.js +196 -0
  235. package/lib/schema/getSchemaCache.js +5 -5
  236. package/lib/schema/getSchemaCache.js.map +1 -0
  237. package/lib/schema/getSchemaOptions.js +8 -11
  238. package/lib/schema/getSchemaOptions.js.map +1 -0
  239. package/lib/schema/index.js +2 -1
  240. package/lib/schema/index.js.map +1 -0
  241. package/lib/schema/toJsonSchema.js +47 -290
  242. package/lib/schema/toJsonSchema.js.map +1 -0
  243. package/lib/schema/validate.js +33 -45
  244. package/lib/schema/validate.js.map +1 -0
  245. package/lib/tools/generateSchema.js +39 -197
  246. package/lib/tools/generateSchema.js.map +1 -0
  247. package/lib/tools/renderJsonSchemaToMarkdownDoc.js +55 -143
  248. package/lib/tools/renderJsonSchemaToMarkdownDoc.js.map +1 -0
  249. package/lib/utils/buildBaseUrl.js +13 -0
  250. package/lib/utils/buildBaseUrl.js.map +1 -0
  251. package/lib/utils/buildRedactorFormSchema.js +59 -0
  252. package/lib/utils/buildRedactorFormSchema.js.map +1 -0
  253. package/lib/utils/getEstimateProcessTime.js +12 -11
  254. package/lib/utils/getEstimateProcessTime.js.map +1 -0
  255. package/lib/utils/index.js +3 -0
  256. package/lib/utils/index.js.map +1 -0
  257. package/lib/utils/resolveFeatureOptions.js +12 -0
  258. package/lib/utils/resolveFeatureOptions.js.map +1 -0
  259. package/package.json +61 -13
  260. package/src/ai/qwen3vl/index.ts +1 -0
  261. package/src/ai/qwen3vl/utils.ts +36 -0
  262. package/src/ai/vision/DocLayoutElementTypeSchema.ts +30 -0
  263. package/src/ai/vision/ImageAnnotationSchema.ts +60 -0
  264. package/src/ai/vision/index.ts +2 -0
  265. package/src/ai/vision/resolveImageAnnotation.ts +135 -0
  266. package/src/cn/ChineseResidentIdNo.test.ts +1 -1
  267. package/src/cn/ChineseResidentIdNo.ts +8 -0
  268. package/src/cn/DivisionCode.test.ts +1 -1
  269. package/src/cn/DivisionCode.ts +8 -0
  270. package/src/cn/UnifiedSocialCreditCode.test.ts +1 -1
  271. package/src/cn/UnifiedSocialCreditCode.ts +15 -0
  272. package/src/cn/__snapshots__/UnifiedSocialCreditCode.test.ts.snap +23 -0
  273. package/src/cn/formatChineseAmount.ts +61 -0
  274. package/src/cn/index.ts +7 -1
  275. package/src/cn/parseChineseNumber.test.ts +159 -0
  276. package/src/cn/parseChineseNumber.ts +97 -0
  277. package/src/cn/pinyin/cartesianProduct.test.ts +64 -0
  278. package/src/cn/pinyin/cartesianProduct.ts +24 -0
  279. package/src/cn/pinyin/data.json +23573 -0
  280. package/src/cn/pinyin/loader.ts +12 -0
  281. package/src/cn/pinyin/preload.ts +3 -0
  282. package/src/cn/pinyin/toPinyin.test.ts +12 -0
  283. package/src/cn/pinyin/toPinyinPure.ts +43 -0
  284. package/src/cn/pinyin/transform.ts +12 -0
  285. package/src/consola/formatLogObject.test.ts +27 -0
  286. package/src/consola/formatLogObject.ts +34 -6
  287. package/src/dayjs/dayjs.ts +18 -18
  288. package/src/dayjs/index.ts +3 -1
  289. package/src/dayjs/parseRelativeTime.test.ts +185 -0
  290. package/src/dayjs/parseRelativeTime.ts +115 -0
  291. package/src/dayjs/resolveRelativeTime.test.ts +357 -0
  292. package/src/dayjs/resolveRelativeTime.ts +167 -0
  293. package/src/emittery/emitter.ts +9 -0
  294. package/src/emittery/index.ts +1 -0
  295. package/src/fs/FileSystemError.ts +26 -0
  296. package/src/fs/IFileSystem.d.ts +102 -0
  297. package/src/fs/MemoryFileSystem.test.ts +37 -0
  298. package/src/fs/createBrowserFileSystem.ts +291 -0
  299. package/src/fs/createMemoryFileSystem.ts +604 -0
  300. package/src/fs/createSandboxFileSystem.ts +136 -0
  301. package/src/fs/createWebDavFileSystem.ts +172 -0
  302. package/src/fs/findMimeType.ts +23 -0
  303. package/src/fs/index.ts +8 -0
  304. package/src/fs/orpc/FileSystemContract.ts +92 -0
  305. package/src/fs/orpc/createContractClientFileSystem.ts +115 -0
  306. package/src/fs/orpc/index.ts +2 -0
  307. package/src/fs/orpc/server/createFileSystemContractImpl.ts +64 -0
  308. package/src/fs/orpc/server/index.ts +1 -0
  309. package/src/fs/s3/createS3MiniFileSystem.ts +830 -0
  310. package/src/fs/s3/index.ts +1 -0
  311. package/src/fs/s3/s3mini.test.ts +264 -0
  312. package/src/fs/scandir.ts +75 -0
  313. package/src/fs/server/createDatabaseFileSystem.ts +668 -0
  314. package/src/fs/server/createNodeFileSystem.ts +499 -0
  315. package/src/fs/server/dbfs.test.ts +47 -0
  316. package/src/fs/server/index.ts +1 -0
  317. package/src/fs/server/loadTestDatabase.ts +131 -0
  318. package/src/fs/tests/runFileSystemTest.ts +288 -0
  319. package/src/fs/types.ts +29 -0
  320. package/src/fs/utils/getFileUrl.ts +44 -0
  321. package/src/fs/utils.ts +23 -0
  322. package/src/jsonschema/JsonSchema.ts +118 -110
  323. package/src/jsonschema/forEachJsonSchema.ts +50 -0
  324. package/src/jsonschema/index.ts +1 -0
  325. package/src/orpc/createOpenApiContractClient.ts +52 -0
  326. package/src/orpc/createRpcContractClient.ts +50 -0
  327. package/src/orpc/index.ts +2 -0
  328. package/src/orpc/resolveLinkPlugins.ts +29 -0
  329. package/src/password/PHC.ts +3 -3
  330. package/src/password/Password.test.ts +1 -1
  331. package/src/password/createPBKDF2PasswordAlgorithm.ts +2 -2
  332. package/src/resource/schema/AnyResourceSchema.ts +16 -2
  333. package/src/s3/formatS3Url.test.ts +254 -0
  334. package/src/s3/formatS3Url.ts +84 -0
  335. package/src/s3/index.ts +2 -0
  336. package/src/s3/parseS3Url.test.ts +258 -0
  337. package/src/s3/parseS3Url.ts +88 -0
  338. package/src/schema/SchemaRegistry.ts +35 -33
  339. package/src/schema/formatZodError.test.ts +196 -0
  340. package/src/schema/formatZodError.ts +151 -0
  341. package/src/schema/getSchemaOptions.ts +2 -2
  342. package/src/schema/index.ts +1 -1
  343. package/src/utils/buildBaseUrl.ts +12 -0
  344. package/src/utils/buildRedactorFormSchema.ts +85 -0
  345. package/src/utils/index.ts +4 -0
  346. package/src/utils/resolveFeatureOptions.ts +14 -0
  347. package/src/cn/ChineseResidentIdNo.mod.ts +0 -7
  348. package/src/cn/DivisionCode.mod.ts +0 -7
  349. package/src/cn/UnifiedSocialCreditCode.mod.ts +0 -7
  350. package/src/cn/mod.ts +0 -3
  351. package/src/schema/SchemaRegistry.mod.ts +0 -1
@@ -1,44 +1,31 @@
1
- function _instanceof(left, right) {
2
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
3
- return !!right[Symbol.hasInstance](left);
4
- } else {
5
- return left instanceof right;
6
- }
7
- }
8
- function _type_of(obj) {
9
- "@swc/helpers - typeof";
10
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
11
- }
12
- import { ArrayBuffers } from '@wener/utils';
1
+ import { ArrayBuffers } from "@wener/utils";
13
2
  (function(PHC) {
14
3
  // https://github.com/simonepri/phc-format/blob/master/index.js
15
- var idRegex = /^[a-z0-9-]{1,32}$/;
16
- var nameRegex = /^[a-z0-9-]{1,32}$/;
17
- var valueRegex = /^[a-zA-Z0-9/+.-]+$/;
18
- var b64Regex = /^([a-zA-Z0-9/+.-]+|)$/;
19
- var decimalRegex = /^((-)?[1-9]\d*|0)$/;
20
- var versionRegex = /^v=(\d+)$/;
21
- var fromBase64 = ArrayBuffers.fromBase64;
22
- var toBase64 = ArrayBuffers.toBase64;
23
- var isBuffer = function(v) {
24
- return _instanceof(v, Uint8Array);
4
+ const idRegex = /^[a-z0-9-]{1,32}$/;
5
+ const nameRegex = /^[a-z0-9-]{1,32}$/;
6
+ const valueRegex = /^[a-zA-Z0-9/+.-]+$/;
7
+ const b64Regex = /^([a-zA-Z0-9/+.-]+|)$/;
8
+ const decimalRegex = /^((-)?[1-9]\d*|0)$/;
9
+ const versionRegex = /^v=(\d+)$/;
10
+ const fromBase64 = ArrayBuffers.fromBase64;
11
+ const toBase64 = ArrayBuffers.toBase64;
12
+ const isBuffer = (v)=>{
13
+ return v instanceof Uint8Array;
25
14
  };
26
15
  function objToKeyVal(obj) {
27
- return objectKeys(obj).map(function(k) {
28
- return [
16
+ return objectKeys(obj).map((k)=>[
29
17
  k,
30
18
  obj[k]
31
- ].join('=');
32
- }).join(',');
19
+ ].join('=')).join(',');
33
20
  }
34
21
  function keyValtoObj(str) {
35
- var obj = {};
36
- str.split(',').forEach(function(ps) {
37
- var pss = ps.split('=');
22
+ const obj = {};
23
+ str.split(',').forEach((ps)=>{
24
+ const pss = ps.split('=');
38
25
  if (pss.length < 2) {
39
- throw new TypeError("params must be in the format name=value");
26
+ throw new TypeError(`params must be in the format name=value`);
40
27
  }
41
- var key = pss.shift();
28
+ const key = pss.shift();
42
29
  if (key !== undefined) {
43
30
  obj[key] = pss.join('=');
44
31
  }
@@ -50,15 +37,13 @@ import { ArrayBuffers } from '@wener/utils';
50
37
  }
51
38
  function objectValues(object) {
52
39
  if (typeof Object.values === 'function') return Object.values(object);
53
- return objectKeys(object).map(function(k) {
54
- return object[k];
55
- });
40
+ return objectKeys(object).map((k)=>object[k]);
56
41
  }
57
42
  function serialize(opts) {
58
- var fields = [
43
+ const fields = [
59
44
  ''
60
45
  ];
61
- if ((typeof opts === "undefined" ? "undefined" : _type_of(opts)) !== 'object' || opts === null) {
46
+ if (typeof opts !== 'object' || opts === null) {
62
47
  throw new TypeError('opts must be an object');
63
48
  }
64
49
  // Identifier Validation
@@ -66,47 +51,41 @@ import { ArrayBuffers } from '@wener/utils';
66
51
  throw new TypeError('id must be a string');
67
52
  }
68
53
  if (!idRegex.test(opts.id)) {
69
- throw new TypeError("id must satisfy ".concat(idRegex));
54
+ throw new TypeError(`id must satisfy ${idRegex}`);
70
55
  }
71
56
  fields.push(opts.id);
72
57
  if (typeof opts.version !== 'undefined') {
73
58
  if (typeof opts.version !== 'number' || opts.version < 0 || !Number.isInteger(opts.version)) {
74
59
  throw new TypeError('version must be a positive integer number');
75
60
  }
76
- fields.push("v=".concat(opts.version));
61
+ fields.push(`v=${opts.version}`);
77
62
  }
78
63
  // Parameters Validation
79
64
  if (typeof opts.params !== 'undefined') {
80
- if (_type_of(opts.params) !== 'object' || opts.params === null) {
65
+ if (typeof opts.params !== 'object' || opts.params === null) {
81
66
  throw new TypeError('params must be an object');
82
67
  }
83
- var pk = objectKeys(opts.params);
84
- if (!pk.every(function(p) {
85
- return nameRegex.test(p.toString());
86
- })) {
87
- throw new TypeError("params names must satisfy ".concat(nameRegex));
68
+ const pk = objectKeys(opts.params);
69
+ if (!pk.every((p)=>nameRegex.test(p.toString()))) {
70
+ throw new TypeError(`params names must satisfy ${nameRegex}`);
88
71
  }
89
72
  // Convert Numbers into Numeric Strings and Buffers into B64 encoded strings.
90
- pk.forEach(function(k) {
91
- var value = opts.params[k];
73
+ pk.forEach((k)=>{
74
+ const value = opts.params[k];
92
75
  if (typeof value === 'number') {
93
76
  opts.params[k] = value.toString();
94
- } else if (_instanceof(value, Uint8Array)) {
77
+ } else if (value instanceof Uint8Array) {
95
78
  opts.params[k] = toBase64(value).split('=')[0];
96
79
  }
97
80
  });
98
- var pv = objectValues(opts.params);
99
- if (!pv.every(function(v) {
100
- return typeof v === 'string';
101
- })) {
81
+ const pv = objectValues(opts.params);
82
+ if (!pv.every((v)=>typeof v === 'string')) {
102
83
  throw new TypeError('params values must be strings');
103
84
  }
104
- if (!pv.every(function(v) {
105
- return valueRegex.test(v);
106
- })) {
107
- throw new TypeError("params values must satisfy ".concat(valueRegex));
85
+ if (!pv.every((v)=>valueRegex.test(v))) {
86
+ throw new TypeError(`params values must satisfy ${valueRegex}`);
108
87
  }
109
- var strpar = objToKeyVal(opts.params);
88
+ const strpar = objToKeyVal(opts.params);
110
89
  fields.push(strpar);
111
90
  }
112
91
  if (typeof opts.salt !== 'undefined') {
@@ -124,7 +103,7 @@ import { ArrayBuffers } from '@wener/utils';
124
103
  }
125
104
  }
126
105
  // Create the PHC formatted string
127
- var phcstr = fields.join('$');
106
+ const phcstr = fields.join('$');
128
107
  return phcstr;
129
108
  }
130
109
  /**
@@ -139,63 +118,58 @@ import { ArrayBuffers } from '@wener/utils';
139
118
  if (phcstr[0] !== '$') {
140
119
  throw new TypeError('pchstr must contain a $ as first char');
141
120
  }
142
- var fields = phcstr.split('$');
121
+ const fields = phcstr.split('$');
143
122
  // Remove first empty $
144
123
  fields.shift();
145
124
  // Parse Fields
146
- var maxf = 5;
125
+ let maxf = 5;
147
126
  if (!versionRegex.test(fields[1])) maxf--;
148
127
  if (fields.length > maxf) {
149
- throw new TypeError("pchstr contains too many fileds: ".concat(fields.length, "/").concat(maxf));
128
+ throw new TypeError(`pchstr contains too many fileds: ${fields.length}/${maxf}`);
150
129
  }
151
130
  // Parse Identifier
152
- var id = fields.shift();
131
+ const id = fields.shift();
153
132
  if (!id || !idRegex.test(id)) {
154
- throw new TypeError("id must satisfy ".concat(idRegex));
133
+ throw new TypeError(`id must satisfy ${idRegex}`);
155
134
  }
156
- var version;
135
+ let version;
157
136
  // Parse Version
158
137
  if (fields[0] && versionRegex.test(fields[0])) {
159
- var _fields_shift;
160
- var versionMatch = (_fields_shift = fields.shift()) === null || _fields_shift === void 0 ? void 0 : _fields_shift.match(versionRegex);
138
+ const versionMatch = fields.shift()?.match(versionRegex);
161
139
  version = versionMatch ? parseInt(versionMatch[1], 10) : undefined;
162
140
  }
163
- var hash;
164
- var salt;
141
+ let hash;
142
+ let salt;
165
143
  if (fields[fields.length - 1] && b64Regex.test(fields[fields.length - 1])) {
166
144
  if (fields.length > 1 && b64Regex.test(fields[fields.length - 2])) {
167
145
  // Parse Hash
168
- var hashStr = fields.pop();
146
+ const hashStr = fields.pop();
169
147
  if (hashStr) hash = fromBase64(hashStr);
170
148
  // Parse Salt
171
- var saltStr = fields.pop();
149
+ const saltStr = fields.pop();
172
150
  if (saltStr !== undefined) salt = fromBase64(saltStr);
173
151
  } else {
174
152
  // Parse Salt
175
- var saltStr1 = fields.pop();
176
- if (saltStr1 !== undefined) salt = fromBase64(saltStr1);
153
+ const saltStr = fields.pop();
154
+ if (saltStr !== undefined) salt = fromBase64(saltStr);
177
155
  }
178
156
  }
179
157
  // Parse Parameters
180
- var params;
158
+ let params;
181
159
  if (fields.length > 0) {
182
- var parstr = fields.pop();
160
+ const parstr = fields.pop();
183
161
  if (parstr) {
184
162
  params = keyValtoObj(parstr);
185
- if (!Object.keys(params).every(function(p) {
186
- return nameRegex.test(p);
187
- })) {
188
- throw new TypeError("params names must satisfy ".concat(nameRegex, "}"));
163
+ if (!Object.keys(params).every((p)=>nameRegex.test(p))) {
164
+ throw new TypeError(`params names must satisfy ${nameRegex}}`);
189
165
  }
190
- var pv = Object.values(params);
191
- if (!pv.every(function(v) {
192
- return valueRegex.test(String(v));
193
- })) {
194
- throw new TypeError("params values must satisfy ".concat(valueRegex));
166
+ const pv = Object.values(params);
167
+ if (!pv.every((v)=>valueRegex.test(String(v)))) {
168
+ throw new TypeError(`params values must satisfy ${valueRegex}`);
195
169
  }
196
170
  // Convert Decimal Strings into Numbers
197
- Object.keys(params).forEach(function(k) {
198
- var value = params[k];
171
+ Object.keys(params).forEach((k)=>{
172
+ const value = params[k];
199
173
  if (typeof value === 'string' && decimalRegex.test(value)) {
200
174
  params[k] = parseInt(value, 10);
201
175
  }
@@ -203,11 +177,11 @@ import { ArrayBuffers } from '@wener/utils';
203
177
  }
204
178
  }
205
179
  if (fields.length > 0) {
206
- throw new TypeError("pchstr contains unrecognized fileds: ".concat(fields));
180
+ throw new TypeError(`pchstr contains unrecognized fileds: ${fields}`);
207
181
  }
208
182
  // Build the output object
209
- var phcobj = {
210
- id: id
183
+ const phcobj = {
184
+ id
211
185
  };
212
186
  if (version !== undefined) phcobj.version = version;
213
187
  if (params) phcobj.params = params;
@@ -222,3 +196,5 @@ import { ArrayBuffers } from '@wener/utils';
222
196
  */ PHC.deserialize = deserialize;
223
197
  })(PHC || (PHC = {}));
224
198
  export var PHC;
199
+
200
+ //# sourceMappingURL=PHC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/password/PHC.ts"],"sourcesContent":["import { ArrayBuffers } from '@wener/utils';\n\nexport namespace PHC {\n\t// https://github.com/simonepri/phc-format/blob/master/index.js\n\n\tconst idRegex = /^[a-z0-9-]{1,32}$/;\n\tconst nameRegex = /^[a-z0-9-]{1,32}$/;\n\tconst valueRegex = /^[a-zA-Z0-9/+.-]+$/;\n\tconst b64Regex = /^([a-zA-Z0-9/+.-]+|)$/;\n\tconst decimalRegex = /^((-)?[1-9]\\d*|0)$/;\n\tconst versionRegex = /^v=(\\d+)$/;\n\n\tconst fromBase64 = ArrayBuffers.fromBase64;\n\tconst toBase64 = ArrayBuffers.toBase64;\n\tconst isBuffer = (v: any): v is Uint8Array => {\n\t\treturn v instanceof Uint8Array;\n\t};\n\n\tfunction objToKeyVal(obj: Record<string, any>): string {\n\t\treturn objectKeys(obj)\n\t\t\t.map((k) => [k, obj[k]].join('='))\n\t\t\t.join(',');\n\t}\n\n\tfunction keyValtoObj(str: string): Record<string, string> {\n\t\tconst obj: Record<string, string> = {};\n\t\tstr.split(',').forEach((ps) => {\n\t\t\tconst pss = ps.split('=');\n\t\t\tif (pss.length < 2) {\n\t\t\t\tthrow new TypeError(`params must be in the format name=value`);\n\t\t\t}\n\n\t\t\tconst key = pss.shift();\n\t\t\tif (key !== undefined) {\n\t\t\t\tobj[key] = pss.join('=');\n\t\t\t}\n\t\t});\n\t\treturn obj;\n\t}\n\n\tfunction objectKeys<T extends object>(object: T): Array<keyof T> {\n\t\treturn Object.keys(object) as Array<keyof T>;\n\t}\n\n\tfunction objectValues<T extends object>(object: T): Array<T[keyof T]> {\n\t\tif (typeof Object.values === 'function') return Object.values(object);\n\t\treturn objectKeys(object).map((k) => object[k]);\n\t}\n\n\tinterface SerializeOptions {\n\t\tid: string;\n\t\tversion?: number;\n\t\tparams?: Record<string, string | number | Uint8Array>;\n\t\tsalt?: Uint8Array;\n\t\thash?: Uint8Array;\n\t}\n\n\t/**\n\t * Generates a PHC string using the data provided.\n\t * @param {SerializeOptions} opts Object that holds the data needed to generate the PHC string.\n\t * @return {string} The hash string adhering to the PHC format.\n\t */\n\texport function serialize(opts: SerializeOptions): string {\n\t\tconst fields: string[] = [''];\n\n\t\tif (typeof opts !== 'object' || opts === null) {\n\t\t\tthrow new TypeError('opts must be an object');\n\t\t}\n\n\t\t// Identifier Validation\n\t\tif (typeof opts.id !== 'string') {\n\t\t\tthrow new TypeError('id must be a string');\n\t\t}\n\n\t\tif (!idRegex.test(opts.id)) {\n\t\t\tthrow new TypeError(`id must satisfy ${idRegex}`);\n\t\t}\n\n\t\tfields.push(opts.id);\n\n\t\tif (typeof opts.version !== 'undefined') {\n\t\t\tif (typeof opts.version !== 'number' || opts.version < 0 || !Number.isInteger(opts.version)) {\n\t\t\t\tthrow new TypeError('version must be a positive integer number');\n\t\t\t}\n\n\t\t\tfields.push(`v=${opts.version}`);\n\t\t}\n\n\t\t// Parameters Validation\n\t\tif (typeof opts.params !== 'undefined') {\n\t\t\tif (typeof opts.params !== 'object' || opts.params === null) {\n\t\t\t\tthrow new TypeError('params must be an object');\n\t\t\t}\n\n\t\t\tconst pk = objectKeys(opts.params);\n\t\t\tif (!pk.every((p) => nameRegex.test(p.toString()))) {\n\t\t\t\tthrow new TypeError(`params names must satisfy ${nameRegex}`);\n\t\t\t}\n\n\t\t\t// Convert Numbers into Numeric Strings and Buffers into B64 encoded strings.\n\t\t\tpk.forEach((k) => {\n\t\t\t\tconst value = opts.params![k];\n\t\t\t\tif (typeof value === 'number') {\n\t\t\t\t\topts.params![k] = value.toString();\n\t\t\t\t} else if (value instanceof Uint8Array) {\n\t\t\t\t\topts.params![k] = toBase64(value as BufferSource).split('=')[0];\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst pv = objectValues(opts.params);\n\t\t\tif (!pv.every((v) => typeof v === 'string')) {\n\t\t\t\tthrow new TypeError('params values must be strings');\n\t\t\t}\n\n\t\t\tif (!pv.every((v) => valueRegex.test(v))) {\n\t\t\t\tthrow new TypeError(`params values must satisfy ${valueRegex}`);\n\t\t\t}\n\n\t\t\tconst strpar = objToKeyVal(opts.params as Record<string, string>);\n\t\t\tfields.push(strpar);\n\t\t}\n\n\t\tif (typeof opts.salt !== 'undefined') {\n\t\t\t// Salt Validation\n\t\t\tif (!isBuffer(opts.salt)) {\n\t\t\t\tthrow new TypeError('salt must be a Buffer');\n\t\t\t}\n\n\t\t\tfields.push(toBase64(opts.salt as BufferSource).split('=')[0]);\n\n\t\t\tif (typeof opts.hash !== 'undefined') {\n\t\t\t\t// Hash Validation\n\t\t\t\tif (!isBuffer(opts.hash)) {\n\t\t\t\t\tthrow new TypeError('hash must be a Buffer');\n\t\t\t\t}\n\n\t\t\t\tfields.push(toBase64(opts.hash as BufferSource).split('=')[0]);\n\t\t\t}\n\t\t}\n\n\t\t// Create the PHC formatted string\n\t\tconst phcstr = fields.join('$');\n\n\t\treturn phcstr;\n\t}\n\n\tinterface DeserializeResult {\n\t\tid: string;\n\t\tversion?: number;\n\t\tparams?: Record<string, string | number>;\n\t\tsalt?: Uint8Array;\n\t\thash?: Uint8Array;\n\t}\n\n\t/**\n\t * Parses data from a PHC string.\n\t * @param {string} phcstr A PHC string to parse.\n\t * @return {DeserializeResult} The object containing the data parsed from the PHC string.\n\t */\n\texport function deserialize(phcstr: string): DeserializeResult {\n\t\tif (typeof phcstr !== 'string' || phcstr === '') {\n\t\t\tthrow new TypeError('pchstr must be a non-empty string');\n\t\t}\n\n\t\tif (phcstr[0] !== '$') {\n\t\t\tthrow new TypeError('pchstr must contain a $ as first char');\n\t\t}\n\n\t\tconst fields = phcstr.split('$');\n\t\t// Remove first empty $\n\t\tfields.shift();\n\n\t\t// Parse Fields\n\t\tlet maxf = 5;\n\t\tif (!versionRegex.test(fields[1])) maxf--;\n\t\tif (fields.length > maxf) {\n\t\t\tthrow new TypeError(`pchstr contains too many fileds: ${fields.length}/${maxf}`);\n\t\t}\n\n\t\t// Parse Identifier\n\t\tconst id = fields.shift();\n\t\tif (!id || !idRegex.test(id)) {\n\t\t\tthrow new TypeError(`id must satisfy ${idRegex}`);\n\t\t}\n\n\t\tlet version: number | undefined;\n\t\t// Parse Version\n\t\tif (fields[0] && versionRegex.test(fields[0])) {\n\t\t\tconst versionMatch = fields.shift()?.match(versionRegex);\n\t\t\tversion = versionMatch ? parseInt(versionMatch[1], 10) : undefined;\n\t\t}\n\n\t\tlet hash: Uint8Array | undefined;\n\t\tlet salt: Uint8Array | undefined;\n\t\tif (fields[fields.length - 1] && b64Regex.test(fields[fields.length - 1])) {\n\t\t\tif (fields.length > 1 && b64Regex.test(fields[fields.length - 2])) {\n\t\t\t\t// Parse Hash\n\t\t\t\tconst hashStr = fields.pop();\n\t\t\t\tif (hashStr) hash = fromBase64(hashStr);\n\t\t\t\t// Parse Salt\n\t\t\t\tconst saltStr = fields.pop();\n\t\t\t\tif (saltStr !== undefined) salt = fromBase64(saltStr);\n\t\t\t} else {\n\t\t\t\t// Parse Salt\n\t\t\t\tconst saltStr = fields.pop();\n\t\t\t\tif (saltStr !== undefined) salt = fromBase64(saltStr);\n\t\t\t}\n\t\t}\n\n\t\t// Parse Parameters\n\t\tlet params: Record<string, string | number> | undefined;\n\t\tif (fields.length > 0) {\n\t\t\tconst parstr = fields.pop();\n\t\t\tif (parstr) {\n\t\t\t\tparams = keyValtoObj(parstr);\n\t\t\t\tif (!Object.keys(params).every((p) => nameRegex.test(p))) {\n\t\t\t\t\tthrow new TypeError(`params names must satisfy ${nameRegex}}`);\n\t\t\t\t}\n\n\t\t\t\tconst pv = Object.values(params);\n\t\t\t\tif (!pv.every((v) => valueRegex.test(String(v)))) {\n\t\t\t\t\tthrow new TypeError(`params values must satisfy ${valueRegex}`);\n\t\t\t\t}\n\n\t\t\t\t// Convert Decimal Strings into Numbers\n\t\t\t\tObject.keys(params).forEach((k) => {\n\t\t\t\t\tconst value = params![k];\n\t\t\t\t\tif (typeof value === 'string' && decimalRegex.test(value)) {\n\t\t\t\t\t\tparams![k] = parseInt(value, 10);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (fields.length > 0) {\n\t\t\tthrow new TypeError(`pchstr contains unrecognized fileds: ${fields}`);\n\t\t}\n\n\t\t// Build the output object\n\t\tconst phcobj: DeserializeResult = { id };\n\t\tif (version !== undefined) phcobj.version = version;\n\t\tif (params) phcobj.params = params;\n\t\tif (salt) phcobj.salt = salt;\n\t\tif (hash) phcobj.hash = hash;\n\n\t\treturn phcobj;\n\t}\n}\n"],"names":["ArrayBuffers","PHC","idRegex","nameRegex","valueRegex","b64Regex","decimalRegex","versionRegex","fromBase64","toBase64","isBuffer","v","Uint8Array","objToKeyVal","obj","objectKeys","map","k","join","keyValtoObj","str","split","forEach","ps","pss","length","TypeError","key","shift","undefined","object","Object","keys","objectValues","values","serialize","opts","fields","id","test","push","version","Number","isInteger","params","pk","every","p","toString","value","pv","strpar","salt","hash","phcstr","deserialize","maxf","versionMatch","match","parseInt","hashStr","pop","saltStr","parstr","String","phcobj"],"mappings":"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"}
@@ -39,9 +39,17 @@ function _ts_generator(thisArg, body) {
39
39
  },
40
40
  trys: [],
41
41
  ops: []
42
- }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
43
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function () {
44
- return this;
42
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
43
+ return d(g, "next", {
44
+ value: verb(0)
45
+ }), d(g, "throw", {
46
+ value: verb(1)
47
+ }), d(g, "return", {
48
+ value: verb(2)
49
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
50
+ value: function () {
51
+ return this;
52
+ }
45
53
  }), g;
46
54
  function verb(n) {
47
55
  return function (v) {