@bgord/bun 0.6.0 → 0.8.0

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 (238) hide show
  1. package/dist/basic-auth.d.ts +14 -0
  2. package/dist/basic-auth.d.ts.map +1 -0
  3. package/dist/basic-auth.js +13 -0
  4. package/dist/basic-auth.js.map +1 -0
  5. package/dist/correlation-id.d.ts.map +1 -1
  6. package/dist/decorators.d.ts +4 -0
  7. package/dist/decorators.d.ts.map +1 -0
  8. package/dist/decorators.js +62 -0
  9. package/dist/decorators.js.map +1 -0
  10. package/dist/encryption.d.ts +8 -3
  11. package/dist/encryption.d.ts.map +1 -0
  12. package/dist/encryption.js +37 -0
  13. package/dist/encryption.js.map +1 -0
  14. package/dist/env-validator.d.ts +21 -0
  15. package/dist/env-validator.d.ts.map +1 -0
  16. package/dist/env-validator.js +28 -0
  17. package/dist/env-validator.js.map +1 -0
  18. package/dist/event-handler.d.ts +8 -0
  19. package/dist/event-handler.d.ts.map +1 -0
  20. package/dist/event-handler.js +21 -0
  21. package/dist/event-handler.js.map +1 -0
  22. package/dist/event-logger.d.ts +8 -0
  23. package/dist/event-logger.d.ts.map +1 -0
  24. package/dist/event-logger.js +19 -0
  25. package/dist/event-logger.js.map +1 -0
  26. package/dist/event.d.ts +7 -46
  27. package/dist/event.d.ts.map +1 -0
  28. package/dist/event.js +23 -0
  29. package/dist/event.js.map +1 -0
  30. package/dist/file-location.d.ts +10 -9
  31. package/dist/file-location.d.ts.map +1 -0
  32. package/dist/file-location.js +46 -0
  33. package/dist/file-location.js.map +1 -0
  34. package/dist/gzip.d.ts +1 -0
  35. package/dist/gzip.d.ts.map +1 -0
  36. package/dist/gzip.js +18 -0
  37. package/dist/gzip.js.map +1 -0
  38. package/dist/hcaptcha-shield.d.ts +12 -13
  39. package/dist/hcaptcha-shield.d.ts.map +1 -0
  40. package/dist/hcaptcha-shield.js +34 -0
  41. package/dist/hcaptcha-shield.js.map +1 -0
  42. package/dist/healthcheck.d.ts +5 -5
  43. package/dist/healthcheck.d.ts.map +1 -1
  44. package/dist/healthcheck.js +5 -5
  45. package/dist/healthcheck.js.map +1 -1
  46. package/dist/i18n.d.ts.map +1 -1
  47. package/dist/i18n.js.map +1 -1
  48. package/dist/image-compressor.d.ts +9 -4
  49. package/dist/image-compressor.d.ts.map +1 -0
  50. package/dist/image-compressor.js +13 -0
  51. package/dist/image-compressor.js.map +1 -0
  52. package/dist/image-exif.d.ts +10 -9
  53. package/dist/image-exif.d.ts.map +1 -0
  54. package/dist/image-exif.js +21 -0
  55. package/dist/image-exif.js.map +1 -0
  56. package/dist/index.d.ts +19 -0
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +19 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/jobs.d.ts.map +1 -1
  61. package/dist/jobs.js.map +1 -1
  62. package/dist/logger.d.ts.map +1 -1
  63. package/dist/logger.js.map +1 -1
  64. package/dist/mailer.d.ts +13 -0
  65. package/dist/mailer.d.ts.map +1 -1
  66. package/dist/mailer.js +6 -0
  67. package/dist/mailer.js.map +1 -1
  68. package/dist/node-env.vo.d.ts.map +1 -1
  69. package/dist/node-env.vo.js.map +1 -1
  70. package/dist/open-graph.d.ts +31 -12
  71. package/dist/open-graph.d.ts.map +1 -0
  72. package/dist/open-graph.js +172 -0
  73. package/dist/open-graph.js.map +1 -0
  74. package/dist/passwords.d.ts.map +1 -1
  75. package/dist/passwords.js.map +1 -1
  76. package/dist/path.d.ts.map +1 -1
  77. package/dist/policy.service.d.ts +12 -0
  78. package/dist/policy.service.d.ts.map +1 -0
  79. package/dist/policy.service.js +14 -0
  80. package/dist/policy.service.js.map +1 -0
  81. package/dist/port.d.ts.map +1 -1
  82. package/dist/prerequisites/binary.d.ts +5 -5
  83. package/dist/prerequisites/binary.d.ts.map +1 -1
  84. package/dist/prerequisites/binary.js +4 -4
  85. package/dist/prerequisites/binary.js.map +1 -1
  86. package/dist/prerequisites/bun.d.ts +5 -5
  87. package/dist/prerequisites/bun.d.ts.map +1 -1
  88. package/dist/prerequisites/bun.js +5 -3
  89. package/dist/prerequisites/bun.js.map +1 -1
  90. package/dist/prerequisites/dependency-vulnerabilities.d.ts +13 -0
  91. package/dist/prerequisites/dependency-vulnerabilities.d.ts.map +1 -0
  92. package/dist/prerequisites/dependency-vulnerabilities.js +30 -0
  93. package/dist/prerequisites/dependency-vulnerabilities.js.map +1 -0
  94. package/dist/prerequisites/external-api.d.ts +14 -0
  95. package/dist/prerequisites/external-api.d.ts.map +1 -0
  96. package/dist/prerequisites/external-api.js +21 -0
  97. package/dist/prerequisites/external-api.js.map +1 -0
  98. package/dist/prerequisites/index.d.ts +2 -0
  99. package/dist/prerequisites/index.d.ts.map +1 -1
  100. package/dist/prerequisites/index.js +2 -0
  101. package/dist/prerequisites/index.js.map +1 -1
  102. package/dist/prerequisites/jobs.d.ts +5 -5
  103. package/dist/prerequisites/jobs.d.ts.map +1 -1
  104. package/dist/prerequisites/jobs.js +4 -4
  105. package/dist/prerequisites/jobs.js.map +1 -1
  106. package/dist/prerequisites/log-file.d.ts +5 -5
  107. package/dist/prerequisites/log-file.d.ts.map +1 -1
  108. package/dist/prerequisites/log-file.js +4 -4
  109. package/dist/prerequisites/log-file.js.map +1 -1
  110. package/dist/prerequisites/mailer.d.ts +5 -5
  111. package/dist/prerequisites/mailer.d.ts.map +1 -1
  112. package/dist/prerequisites/mailer.js +4 -4
  113. package/dist/prerequisites/mailer.js.map +1 -1
  114. package/dist/prerequisites/memory.d.ts +5 -5
  115. package/dist/prerequisites/memory.d.ts.map +1 -1
  116. package/dist/prerequisites/memory.js +4 -4
  117. package/dist/prerequisites/memory.js.map +1 -1
  118. package/dist/prerequisites/node.d.ts +5 -5
  119. package/dist/prerequisites/node.d.ts.map +1 -1
  120. package/dist/prerequisites/node.js +4 -4
  121. package/dist/prerequisites/node.js.map +1 -1
  122. package/dist/prerequisites/outside-connectivity.d.ts +5 -5
  123. package/dist/prerequisites/outside-connectivity.d.ts.map +1 -1
  124. package/dist/prerequisites/outside-connectivity.js +4 -4
  125. package/dist/prerequisites/outside-connectivity.js.map +1 -1
  126. package/dist/prerequisites/path.d.ts +5 -5
  127. package/dist/prerequisites/path.d.ts.map +1 -1
  128. package/dist/prerequisites/path.js +4 -4
  129. package/dist/prerequisites/path.js.map +1 -1
  130. package/dist/prerequisites/port.d.ts +5 -5
  131. package/dist/prerequisites/port.d.ts.map +1 -1
  132. package/dist/prerequisites/port.js +6 -6
  133. package/dist/prerequisites/port.js.map +1 -1
  134. package/dist/prerequisites/ram.d.ts +5 -5
  135. package/dist/prerequisites/ram.d.ts.map +1 -1
  136. package/dist/prerequisites/ram.js +4 -4
  137. package/dist/prerequisites/ram.js.map +1 -1
  138. package/dist/prerequisites/self.d.ts +5 -5
  139. package/dist/prerequisites/self.d.ts.map +1 -1
  140. package/dist/prerequisites/self.js +4 -4
  141. package/dist/prerequisites/self.js.map +1 -1
  142. package/dist/prerequisites/space.d.ts +5 -5
  143. package/dist/prerequisites/space.d.ts.map +1 -1
  144. package/dist/prerequisites/space.js +4 -4
  145. package/dist/prerequisites/space.js.map +1 -1
  146. package/dist/prerequisites/ssl-certificate-expiry.d.ts +5 -5
  147. package/dist/prerequisites/ssl-certificate-expiry.d.ts.map +1 -1
  148. package/dist/prerequisites/ssl-certificate-expiry.js +5 -5
  149. package/dist/prerequisites/ssl-certificate-expiry.js.map +1 -1
  150. package/dist/prerequisites/timezone-utc.d.ts +7 -5
  151. package/dist/prerequisites/timezone-utc.d.ts.map +1 -1
  152. package/dist/prerequisites/timezone-utc.js +6 -5
  153. package/dist/prerequisites/timezone-utc.js.map +1 -1
  154. package/dist/prerequisites/translations.d.ts +8 -8
  155. package/dist/prerequisites/translations.d.ts.map +1 -1
  156. package/dist/prerequisites/translations.js +8 -8
  157. package/dist/prerequisites/translations.js.map +1 -1
  158. package/dist/prerequisites.d.ts +2 -0
  159. package/dist/prerequisites.d.ts.map +1 -1
  160. package/dist/prerequisites.js +2 -0
  161. package/dist/prerequisites.js.map +1 -1
  162. package/dist/recaptcha-shield.d.ts +13 -5
  163. package/dist/recaptcha-shield.d.ts.map +1 -0
  164. package/dist/recaptcha-shield.js +50 -0
  165. package/dist/recaptcha-shield.js.map +1 -0
  166. package/dist/setup.js +1 -1
  167. package/dist/setup.js.map +1 -1
  168. package/dist/simulated-error.d.ts +2 -2
  169. package/dist/simulated-error.d.ts.map +1 -0
  170. package/dist/simulated-error.js +7 -0
  171. package/dist/simulated-error.js.map +1 -0
  172. package/dist/sitemap.d.ts +19 -27
  173. package/dist/sitemap.d.ts.map +1 -0
  174. package/dist/sitemap.js +57 -0
  175. package/dist/sitemap.js.map +1 -0
  176. package/dist/slower.d.ts +3 -6
  177. package/dist/slower.d.ts.map +1 -0
  178. package/dist/slower.js +8 -0
  179. package/dist/slower.js.map +1 -0
  180. package/dist/tsconfig.tsbuildinfo +1 -1
  181. package/dist/url-wo-trailing-slash.d.ts +4 -0
  182. package/dist/url-wo-trailing-slash.d.ts.map +1 -0
  183. package/dist/url-wo-trailing-slash.js +9 -0
  184. package/dist/url-wo-trailing-slash.js.map +1 -0
  185. package/dist/uuid.d.ts.map +1 -1
  186. package/package.json +5 -2
  187. package/src/basic-auth.ts +26 -0
  188. package/src/correlation-id.ts +1 -0
  189. package/src/decorators.ts +78 -0
  190. package/src/encryption.ts +60 -0
  191. package/src/env-validator.ts +43 -0
  192. package/src/event-handler.ts +20 -0
  193. package/src/event-logger.ts +24 -0
  194. package/src/event.ts +29 -0
  195. package/src/file-location.ts +70 -0
  196. package/src/gzip.ts +23 -0
  197. package/src/hcaptcha-shield.ts +57 -0
  198. package/src/healthcheck.ts +9 -14
  199. package/src/i18n.ts +4 -0
  200. package/src/image-compressor.ts +26 -0
  201. package/src/image-exif.ts +38 -0
  202. package/src/index.ts +19 -0
  203. package/src/jobs.ts +1 -0
  204. package/src/logger.ts +6 -0
  205. package/src/mailer.ts +25 -0
  206. package/src/node-env.vo.ts +1 -0
  207. package/src/open-graph.ts +259 -0
  208. package/src/passwords.ts +1 -0
  209. package/src/path.ts +1 -0
  210. package/src/policy.service.ts +25 -0
  211. package/src/port.ts +1 -0
  212. package/src/prerequisites/binary.ts +6 -10
  213. package/src/prerequisites/bun.ts +7 -10
  214. package/src/prerequisites/dependency-vulnerabilities.ts +54 -0
  215. package/src/prerequisites/external-api.ts +27 -0
  216. package/src/prerequisites/index.ts +2 -0
  217. package/src/prerequisites/jobs.ts +6 -12
  218. package/src/prerequisites/log-file.ts +6 -11
  219. package/src/prerequisites/mailer.ts +6 -11
  220. package/src/prerequisites/memory.ts +7 -12
  221. package/src/prerequisites/node.ts +6 -11
  222. package/src/prerequisites/outside-connectivity.ts +6 -11
  223. package/src/prerequisites/path.ts +6 -11
  224. package/src/prerequisites/port.ts +8 -14
  225. package/src/prerequisites/ram.ts +6 -11
  226. package/src/prerequisites/self.ts +6 -11
  227. package/src/prerequisites/space.ts +6 -11
  228. package/src/prerequisites/ssl-certificate-expiry.ts +7 -12
  229. package/src/prerequisites/timezone-utc.ts +9 -12
  230. package/src/prerequisites/translations.ts +14 -19
  231. package/src/prerequisites.ts +2 -0
  232. package/src/recaptcha-shield.ts +76 -0
  233. package/src/setup.ts +1 -1
  234. package/src/simulated-error.ts +8 -0
  235. package/src/sitemap.ts +98 -0
  236. package/src/slower.ts +10 -0
  237. package/src/url-wo-trailing-slash.ts +11 -0
  238. package/src/uuid.ts +1 -0
package/src/sitemap.ts ADDED
@@ -0,0 +1,98 @@
1
+ import { z } from "zod/v4";
2
+
3
+ import { PathType } from "./path";
4
+ import { UrlWithoutTrailingSlashType } from "./url-wo-trailing-slash";
5
+
6
+ export const SitemapLoc = z.string().min(1);
7
+
8
+ export type SitemapLocType = z.infer<typeof SitemapLoc>;
9
+
10
+ export const SitemapLastmod = z
11
+ .string()
12
+ .refine(
13
+ (value) => {
14
+ const [year, month, day] = value.split("-");
15
+
16
+ return (
17
+ Number.isInteger(Number(year)) && Number.isInteger(Number(month)) && Number.isInteger(Number(day))
18
+ );
19
+ },
20
+ { message: "sitemap.lastmod.invalid" },
21
+ )
22
+ .optional();
23
+
24
+ export type SitemapLastmodType = z.infer<typeof SitemapLastmod>;
25
+
26
+ export const SitemapChangefreq = z
27
+ .union([
28
+ z.literal("always"),
29
+ z.literal("hourly"),
30
+ z.literal("daily"),
31
+ z.literal("weekly"),
32
+ z.literal("monthly"),
33
+ z.literal("yearly"),
34
+ z.literal("never"),
35
+ ])
36
+ .optional();
37
+
38
+ export type SitemapChangefreqType = z.infer<typeof SitemapChangefreq>;
39
+
40
+ export const SitemapPriority = z.number().min(0).max(1).default(0.5);
41
+
42
+ export type SitemapPriorityType = z.infer<typeof SitemapPriority>;
43
+
44
+ export const SitemapEntry = z.object({
45
+ loc: SitemapLoc,
46
+ lastmod: SitemapLastmod,
47
+ changefreq: SitemapChangefreq,
48
+ priority: SitemapPriority,
49
+ });
50
+
51
+ export type SitemapEntryType = z.infer<typeof SitemapEntry>;
52
+
53
+ export type SitemapConfigType = {
54
+ path?: PathType;
55
+ entries: SitemapEntryType[];
56
+ BASE_URL: UrlWithoutTrailingSlashType;
57
+ };
58
+
59
+ export class Sitemap {
60
+ static DEFAULT_PATH = "static/sitemap.xml";
61
+
62
+ static generate(config: SitemapConfigType) {
63
+ let sitemap = `<?xml version="1.0" encoding="UTF-8"?>\n`;
64
+ sitemap += `<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n`;
65
+
66
+ for (const entry of config.entries) {
67
+ {
68
+ let output = "<url>\n";
69
+ output += `\t<loc>${config.BASE_URL}${entry.loc}</loc>\n`;
70
+
71
+ if (entry.lastmod) {
72
+ output += `\t<lastmod>${entry.lastmod}</lastmod>\n`;
73
+ }
74
+
75
+ if (entry.changefreq) {
76
+ output += `\t<changefreq>${entry.changefreq}</changefreq>\n`;
77
+ }
78
+
79
+ output += `\t<priority>${entry.priority}</priority>\n`;
80
+
81
+ output += "</url>\n";
82
+
83
+ sitemap += output;
84
+ }
85
+ }
86
+
87
+ sitemap += "</urlset>";
88
+
89
+ return sitemap;
90
+ }
91
+
92
+ static async save(config: SitemapConfigType) {
93
+ const output = config.path ?? Sitemap.DEFAULT_PATH;
94
+ const content = Sitemap.generate(config);
95
+
96
+ return Bun.file(output).write(content);
97
+ }
98
+ }
package/src/slower.ts ADDED
@@ -0,0 +1,10 @@
1
+ import * as tools from "@bgord/tools";
2
+ import { createMiddleware } from "hono/factory";
3
+
4
+ export class Slower {
5
+ static handle = (time: tools.TimeResult) =>
6
+ createMiddleware(async (_c, next) => {
7
+ await Bun.sleep(time.ms);
8
+ return next();
9
+ });
10
+ }
@@ -0,0 +1,11 @@
1
+ import { z } from "zod/v4";
2
+
3
+ export const UrlWithoutTrailingSlash = z
4
+ .url()
5
+ .trim()
6
+ .min(1)
7
+ .refine((value) => !value.endsWith("/"), {
8
+ message: "url_cannot_end_with_trailing_slash",
9
+ });
10
+
11
+ export type UrlWithoutTrailingSlashType = z.infer<typeof UrlWithoutTrailingSlash>;
package/src/uuid.ts CHANGED
@@ -3,4 +3,5 @@ import { z } from "zod/v4";
3
3
  import { NewUUID } from "./new-uuid";
4
4
 
5
5
  export const UUID = z.uuid().default(() => NewUUID.generate());
6
+
6
7
  export type UUIDType = z.infer<typeof UUID>;