katanakit-js 4.0.4 → 5.2.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 (130) hide show
  1. package/README.md +184 -10
  2. package/dist/adapters/insforge/index.d.ts +3 -0
  3. package/dist/adapters/insforge/index.d.ts.map +1 -0
  4. package/dist/adapters/insforge/index.js +2 -0
  5. package/dist/adapters/insforge/index.js.map +1 -0
  6. package/dist/adapters/insforge/insforge.service.d.ts +116 -0
  7. package/dist/adapters/insforge/insforge.service.d.ts.map +1 -0
  8. package/dist/adapters/insforge/insforge.service.js +437 -0
  9. package/dist/adapters/insforge/insforge.service.js.map +1 -0
  10. package/dist/adapters/notion/notion.service.d.ts.map +1 -1
  11. package/dist/adapters/notion/notion.service.js +72 -54
  12. package/dist/adapters/notion/notion.service.js.map +1 -1
  13. package/dist/adapters/wordpress/wordpress.service.d.ts.map +1 -1
  14. package/dist/adapters/wordpress/wordpress.service.js +163 -85
  15. package/dist/adapters/wordpress/wordpress.service.js.map +1 -1
  16. package/dist/config/seo.service.d.ts.map +1 -1
  17. package/dist/config/seo.service.js +42 -4
  18. package/dist/config/seo.service.js.map +1 -1
  19. package/dist/core/index.d.ts +5 -0
  20. package/dist/core/index.d.ts.map +1 -1
  21. package/dist/core/index.js +5 -0
  22. package/dist/core/index.js.map +1 -1
  23. package/dist/core/services/error.service.d.ts +21 -1
  24. package/dist/core/services/error.service.d.ts.map +1 -1
  25. package/dist/core/services/error.service.js +39 -0
  26. package/dist/core/services/error.service.js.map +1 -1
  27. package/dist/core/services/faker.service.d.ts +160 -0
  28. package/dist/core/services/faker.service.d.ts.map +1 -0
  29. package/dist/core/services/faker.service.js +235 -0
  30. package/dist/core/services/faker.service.js.map +1 -0
  31. package/dist/core/services/http.service.d.ts.map +1 -1
  32. package/dist/core/services/http.service.js +10 -16
  33. package/dist/core/services/http.service.js.map +1 -1
  34. package/dist/core/services/media.service.d.ts +97 -0
  35. package/dist/core/services/media.service.d.ts.map +1 -0
  36. package/dist/core/services/media.service.js +239 -0
  37. package/dist/core/services/media.service.js.map +1 -0
  38. package/dist/core/services/reactive.service.d.ts.map +1 -1
  39. package/dist/core/services/reactive.service.js +5 -14
  40. package/dist/core/services/reactive.service.js.map +1 -1
  41. package/dist/core/services/result.service.d.ts +41 -0
  42. package/dist/core/services/result.service.d.ts.map +1 -0
  43. package/dist/core/services/result.service.js +60 -0
  44. package/dist/core/services/result.service.js.map +1 -0
  45. package/dist/core/services/validation.service.d.ts +22 -0
  46. package/dist/core/services/validation.service.d.ts.map +1 -0
  47. package/dist/core/services/validation.service.js +41 -0
  48. package/dist/core/services/validation.service.js.map +1 -0
  49. package/dist/core/services/youtube.service.d.ts +79 -0
  50. package/dist/core/services/youtube.service.d.ts.map +1 -0
  51. package/dist/core/services/youtube.service.js +388 -0
  52. package/dist/core/services/youtube.service.js.map +1 -0
  53. package/dist/index.d.ts +1 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +1 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/infrastructure/filesystem/filesystem.service.d.ts +267 -0
  58. package/dist/infrastructure/filesystem/filesystem.service.d.ts.map +1 -0
  59. package/dist/infrastructure/filesystem/filesystem.service.js +453 -0
  60. package/dist/infrastructure/filesystem/filesystem.service.js.map +1 -0
  61. package/dist/infrastructure/filesystem/path.service.d.ts +115 -0
  62. package/dist/infrastructure/filesystem/path.service.d.ts.map +1 -0
  63. package/dist/infrastructure/filesystem/path.service.js +154 -0
  64. package/dist/infrastructure/filesystem/path.service.js.map +1 -0
  65. package/dist/infrastructure/index.d.ts +3 -0
  66. package/dist/infrastructure/index.d.ts.map +1 -1
  67. package/dist/infrastructure/index.js +3 -0
  68. package/dist/infrastructure/index.js.map +1 -1
  69. package/dist/infrastructure/media/media.service.d.ts +15 -0
  70. package/dist/infrastructure/media/media.service.d.ts.map +1 -0
  71. package/dist/infrastructure/media/media.service.js +44 -0
  72. package/dist/infrastructure/media/media.service.js.map +1 -0
  73. package/dist/infrastructure/storage/storage.service.d.ts.map +1 -1
  74. package/dist/infrastructure/storage/storage.service.js +10 -8
  75. package/dist/infrastructure/storage/storage.service.js.map +1 -1
  76. package/dist/schemas/access.schema.d.ts +69 -0
  77. package/dist/schemas/access.schema.d.ts.map +1 -0
  78. package/dist/schemas/access.schema.js +36 -0
  79. package/dist/schemas/access.schema.js.map +1 -0
  80. package/dist/schemas/ai.schema.d.ts +53 -0
  81. package/dist/schemas/ai.schema.d.ts.map +1 -0
  82. package/dist/schemas/ai.schema.js +34 -0
  83. package/dist/schemas/ai.schema.js.map +1 -0
  84. package/dist/schemas/common.schema.d.ts +49 -0
  85. package/dist/schemas/common.schema.d.ts.map +1 -0
  86. package/dist/schemas/common.schema.js +23 -0
  87. package/dist/schemas/common.schema.js.map +1 -0
  88. package/dist/schemas/core.schema.d.ts +164 -0
  89. package/dist/schemas/core.schema.d.ts.map +1 -0
  90. package/dist/schemas/core.schema.js +109 -0
  91. package/dist/schemas/core.schema.js.map +1 -0
  92. package/dist/schemas/faker.schema.d.ts +12 -0
  93. package/dist/schemas/faker.schema.d.ts.map +1 -0
  94. package/dist/schemas/faker.schema.js +12 -0
  95. package/dist/schemas/faker.schema.js.map +1 -0
  96. package/dist/schemas/filesystem.schema.d.ts +71 -0
  97. package/dist/schemas/filesystem.schema.d.ts.map +1 -0
  98. package/dist/schemas/filesystem.schema.js +56 -0
  99. package/dist/schemas/filesystem.schema.js.map +1 -0
  100. package/dist/schemas/index.d.ts +13 -0
  101. package/dist/schemas/index.d.ts.map +1 -0
  102. package/dist/schemas/index.js +13 -0
  103. package/dist/schemas/index.js.map +1 -0
  104. package/dist/schemas/insforge.schema.d.ts +69 -0
  105. package/dist/schemas/insforge.schema.d.ts.map +1 -0
  106. package/dist/schemas/insforge.schema.js +82 -0
  107. package/dist/schemas/insforge.schema.js.map +1 -0
  108. package/dist/schemas/media.schema.d.ts +51 -0
  109. package/dist/schemas/media.schema.d.ts.map +1 -0
  110. package/dist/schemas/media.schema.js +50 -0
  111. package/dist/schemas/media.schema.js.map +1 -0
  112. package/dist/schemas/notion.schema.d.ts +1058 -0
  113. package/dist/schemas/notion.schema.d.ts.map +1 -0
  114. package/dist/schemas/notion.schema.js +248 -0
  115. package/dist/schemas/notion.schema.js.map +1 -0
  116. package/dist/schemas/rss.schema.d.ts +35 -0
  117. package/dist/schemas/rss.schema.d.ts.map +1 -0
  118. package/dist/schemas/rss.schema.js +44 -0
  119. package/dist/schemas/rss.schema.js.map +1 -0
  120. package/dist/schemas/wordpress.schema.d.ts +1304 -0
  121. package/dist/schemas/wordpress.schema.d.ts.map +1 -0
  122. package/dist/schemas/wordpress.schema.js +404 -0
  123. package/dist/schemas/wordpress.schema.js.map +1 -0
  124. package/dist/schemas/youtube.schema.d.ts +122 -0
  125. package/dist/schemas/youtube.schema.d.ts.map +1 -0
  126. package/dist/schemas/youtube.schema.js +113 -0
  127. package/dist/schemas/youtube.schema.js.map +1 -0
  128. package/dist/types/index.d.ts +191 -800
  129. package/dist/types/index.d.ts.map +1 -1
  130. package/package.json +40 -15
@@ -0,0 +1,235 @@
1
+ /** Cached lazy faker instance (reset on failure so a later call can retry). */
2
+ let fakerPromise = null;
3
+ /** Loads faker on first use, or rejects with an actionable install error. */
4
+ async function loadFaker() {
5
+ if (!fakerPromise) {
6
+ fakerPromise = import("@faker-js/faker")
7
+ .then((module) => module.faker)
8
+ .catch((error) => {
9
+ fakerPromise = null;
10
+ throw new Error('[Faker] The optional peer dependency "@faker-js/faker" is not installed. Run "bun add @faker-js/faker" (or "npm install @faker-js/faker").', { cause: error });
11
+ });
12
+ }
13
+ return fakerPromise;
14
+ }
15
+ /**
16
+ * Seeds the faker instance for reproducible output, or rolls a new random seed.
17
+ *
18
+ * The sequence depends on the seed, the number of calls made since it was set
19
+ * and the faker major version — keep the call order stable for stable output.
20
+ *
21
+ * @param seed - Optional numeric seed. Omit it to generate a fresh random seed
22
+ * (log the returned value and pass it back later to replay the exact run).
23
+ * @returns The seed that was set.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * import { useFakeSeed, useFakeUuid } from "katanakit-js";
28
+ *
29
+ * const seed = await useFakeSeed(); // random, but loggable/replayable
30
+ * await useFakeSeed(seed); // replays the same sequence
31
+ * await useFakeUuid();
32
+ * ```
33
+ */
34
+ export async function useFakeSeed(seed) {
35
+ const faker = await loadFaker();
36
+ return seed === undefined ? faker.seed() : faker.seed(seed);
37
+ }
38
+ /**
39
+ * Pins the reference date faker uses for relative date helpers, so
40
+ * date-dependent output stays reproducible next to {@link useFakeSeed}.
41
+ *
42
+ * @param refDate - Static date (`Date`, ISO string or epoch ms) or a factory
43
+ * returning a fresh `Date` on every call. Omit it to reset to the current time.
44
+ * @returns The reference date now in effect.
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * import { useFakeSeed, useFakeSetDefaultRefDate, useFakeDate } from "katanakit-js";
49
+ *
50
+ * await useFakeSeed(42);
51
+ * await useFakeSetDefaultRefDate("2026-01-01");
52
+ * await useFakeDate(); // reproducible between 1970-01-01 and 2026-01-01
53
+ * ```
54
+ */
55
+ export async function useFakeSetDefaultRefDate(refDate) {
56
+ const faker = await loadFaker();
57
+ faker.setDefaultRefDate(refDate);
58
+ return faker.defaultRefDate();
59
+ }
60
+ /**
61
+ * Generates a v4 UUID.
62
+ *
63
+ * @returns A random UUID string.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * const id = await useFakeUuid();
68
+ * ```
69
+ */
70
+ export async function useFakeUuid() {
71
+ const faker = await loadFaker();
72
+ return faker.string.uuid();
73
+ }
74
+ /**
75
+ * Generates a fake email address.
76
+ *
77
+ * @returns An email address.
78
+ */
79
+ export async function useFakeEmail() {
80
+ const faker = await loadFaker();
81
+ return faker.internet.email();
82
+ }
83
+ /**
84
+ * Generates a fake full name.
85
+ *
86
+ * @returns A full name, e.g. `"Ada Lovelace"`.
87
+ */
88
+ export async function useFakeFullName() {
89
+ const faker = await loadFaker();
90
+ return faker.person.fullName();
91
+ }
92
+ /**
93
+ * Generates a fake first name.
94
+ *
95
+ * @returns A first name.
96
+ */
97
+ export async function useFakeFirstName() {
98
+ const faker = await loadFaker();
99
+ return faker.person.firstName();
100
+ }
101
+ /**
102
+ * Generates a fake last name.
103
+ *
104
+ * @returns A last name.
105
+ */
106
+ export async function useFakeLastName() {
107
+ const faker = await loadFaker();
108
+ return faker.person.lastName();
109
+ }
110
+ /**
111
+ * Generates a fake phone number.
112
+ *
113
+ * @returns A phone number string.
114
+ */
115
+ export async function useFakePhone() {
116
+ const faker = await loadFaker();
117
+ return faker.phone.number();
118
+ }
119
+ /**
120
+ * Generates a fake company name.
121
+ *
122
+ * @returns A company name.
123
+ */
124
+ export async function useFakeCompanyName() {
125
+ const faker = await loadFaker();
126
+ return faker.company.name();
127
+ }
128
+ /**
129
+ * Generates a fake URL.
130
+ *
131
+ * @returns An absolute URL.
132
+ */
133
+ export async function useFakeUrl() {
134
+ const faker = await loadFaker();
135
+ return faker.internet.url();
136
+ }
137
+ /**
138
+ * Generates lorem-ipsum text.
139
+ *
140
+ * @param words - Number of words (default: `12`).
141
+ * @returns A space-separated string of words.
142
+ */
143
+ export async function useFakeText(words = 12) {
144
+ const faker = await loadFaker();
145
+ return faker.lorem.words(words);
146
+ }
147
+ /**
148
+ * Generates an integer within an inclusive range.
149
+ *
150
+ * @param min - Lower bound (default: `0`).
151
+ * @param max - Upper bound (default: `100`).
152
+ * @returns A random integer between `min` and `max`.
153
+ *
154
+ * @example
155
+ * ```ts
156
+ * const age = await useFakeNumber(18, 65);
157
+ * ```
158
+ */
159
+ export async function useFakeNumber(min = 0, max = 100) {
160
+ const faker = await loadFaker();
161
+ return faker.number.int({ max, min });
162
+ }
163
+ /**
164
+ * Generates a random boolean.
165
+ *
166
+ * @returns `true` or `false`.
167
+ */
168
+ export async function useFakeBoolean() {
169
+ const faker = await loadFaker();
170
+ return faker.datatype.boolean();
171
+ }
172
+ /**
173
+ * Generates a random date within an optional range.
174
+ *
175
+ * @param from - Lower bound (default: `1970-01-01`).
176
+ * @param to - Upper bound (default: faker's reference date, see
177
+ * {@link useFakeSetDefaultRefDate} — the current time when unset).
178
+ * @returns A `Date` instance.
179
+ *
180
+ * @example
181
+ * ```ts
182
+ * const hiredAt = await useFakeDate(new Date("2020-01-01"), new Date("2025-12-31"));
183
+ * ```
184
+ */
185
+ export async function useFakeDate(from, to) {
186
+ const faker = await loadFaker();
187
+ return faker.date.between({
188
+ from: from ?? "1970-01-01",
189
+ to: to ?? faker.defaultRefDate(),
190
+ });
191
+ }
192
+ /**
193
+ * Generates a generic fake vehicle (brand, model, type, fuel, color, vin, plate).
194
+ *
195
+ * @returns A {@link FakeVehicle} object.
196
+ *
197
+ * @example
198
+ * ```ts
199
+ * const vehicle = await useFakeVehicle();
200
+ * // { brand: "Jeep", model: "Wrangler", plate: "HJ47FNP", ... }
201
+ * ```
202
+ */
203
+ export async function useFakeVehicle() {
204
+ const faker = await loadFaker();
205
+ return {
206
+ brand: faker.vehicle.manufacturer(),
207
+ color: faker.vehicle.color(),
208
+ fuel: faker.vehicle.fuel(),
209
+ model: faker.vehicle.model(),
210
+ plate: faker.vehicle.vrm(),
211
+ type: faker.vehicle.type(),
212
+ vin: faker.vehicle.vin(),
213
+ };
214
+ }
215
+ /**
216
+ * Builds an array of fake items from a factory (sync or async).
217
+ *
218
+ * @typeParam T - Item type produced by the factory.
219
+ * @param factory - Called once per item; receives the zero-based index.
220
+ * @param count - Number of items to generate (non-negative integer).
221
+ * @returns A promise resolving to the generated array.
222
+ *
223
+ * @example
224
+ * ```ts
225
+ * const vehicles = await useFakeList(() => useFakeVehicle(), 5);
226
+ * const relations = await useFakeList((index) => ({ user: users[index % users.length] }), 10);
227
+ * ```
228
+ */
229
+ export async function useFakeList(factory, count) {
230
+ if (!Number.isInteger(count) || count < 0) {
231
+ throw new Error("[Faker] count must be a non-negative integer.");
232
+ }
233
+ return Promise.all(Array.from({ length: count }, (_, index) => factory(index)));
234
+ }
235
+ //# sourceMappingURL=faker.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faker.service.js","sourceRoot":"","sources":["../../../src/core/services/faker.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/http.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/http.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,sBAAsB,CAAC;AA0E9B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAEpD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAExD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,IAAI,UAAU,CAEvC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,WAAW,CAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,UAAe,GACtB,MAAM,CAuCR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC7B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,UAAe,GACtB,MAAM,CAER;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EACzC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAE,YAAiB,GACxC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA0EzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,EAC5C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAEzB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EACvC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAEzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EAC1C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAEzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACxC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,OAAO,EACd,UAAU,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAMzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EACvC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,OAAO,EACd,UAAU,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAMzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EACzC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,OAAO,EACd,UAAU,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAMzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EAC1C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAKzB"}
@@ -1,3 +1,4 @@
1
+ import { useTryJsonParse } from "./result.service.js";
1
2
  /** Module-level API registry. */
2
3
  let apis = {};
3
4
  /**
@@ -20,25 +21,18 @@ function getApiEntry(apiName) {
20
21
  * @param response - The fetch Response to read.
21
22
  * @returns The parsed body or `null` for empty responses.
22
23
  */
23
- async function readBody(response) {
24
+ /** Error bodies are truncated so a hostile response cannot exhaust memory. */
25
+ const MAX_ERROR_BODY_CHARS = 32 * 1024;
26
+ async function readBody(response, maxChars) {
24
27
  const text = await response.text();
25
28
  if (!text)
26
29
  return null;
27
- const contentType = response.headers.get("content-type") ?? "";
28
- if (contentType.includes("application/json")) {
29
- try {
30
- return JSON.parse(text);
31
- }
32
- catch {
33
- return text;
34
- }
35
- }
36
- try {
37
- return JSON.parse(text);
38
- }
39
- catch {
40
- return text;
30
+ if (maxChars !== undefined && text.length > maxChars) {
31
+ return `${text.slice(0, maxChars)}… [truncated]`;
41
32
  }
33
+ // JSON first; non-JSON bodies fall back to the raw text.
34
+ const parsed = useTryJsonParse(text);
35
+ return parsed.ok ? parsed.data : text;
42
36
  }
43
37
  /**
44
38
  * Internal: serializes a request body.
@@ -266,7 +260,7 @@ export async function useFetch(apiName, endpointName, { urlOptions, ...init } =
266
260
  // host (SSRF). Callers that need redirects can pass `redirect: "follow"`.
267
261
  const response = await fetch(url, { redirect: "error", ...init });
268
262
  if (!response.ok) {
269
- const errorDetails = await readBody(response);
263
+ const errorDetails = await readBody(response, MAX_ERROR_BODY_CHARS);
270
264
  return {
271
265
  data: null,
272
266
  error: {
@@ -1 +1 @@
1
- {"version":3,"file":"http.service.js","sourceRoot":"","sources":["../../../src/core/services/http.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.service.js","sourceRoot":"","sources":["../../../src/core/services/http.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import type { FetchResult, MediaSource, SmartVideoOptions, YoutubeEmbedOptions, YoutubeThumbnailQuality } from "../../types/index.js";
2
+ /**
3
+ * Extracts a YouTube video id from a watch / shorts / live / embed /
4
+ * `youtu.be` URL or a bare 11-char id. Returns `null` when not matched.
5
+ *
6
+ * @param input - URL or bare video id.
7
+ * @returns The 11-char video id or `null`.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * useGetYoutubeVideoId("https://www.youtube.com/watch?v=dQw4w9WgXcQ"); // "dQw4w9WgXcQ"
12
+ * useGetYoutubeVideoId("https://youtu.be/dQw4w9WgXcQ"); // "dQw4w9WgXcQ"
13
+ * useGetYoutubeVideoId("dQw4w9WgXcQ"); // "dQw4w9WgXcQ"
14
+ * ```
15
+ */
16
+ export declare function useGetYoutubeVideoId(input: string): string | null;
17
+ /**
18
+ * Extracts a Vimeo video id from a URL or bare numeric id.
19
+ *
20
+ * @param input - URL or bare numeric id.
21
+ * @returns The numeric id or `null`.
22
+ */
23
+ export declare function useGetVimeoVideoId(input: string): string | null;
24
+ /**
25
+ * Normalizes any supported input into a {@link MediaSource}.
26
+ * Pure and SSR-safe: no DOM, no fetch.
27
+ *
28
+ * @param input - YouTube/Vimeo URL or id, or direct video file URL.
29
+ * @returns Normalized `{ provider, id, raw }`.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * useParseMediaSource("https://youtu.be/dQw4w9WgXcQ");
34
+ * // { provider: "youtube", id: "dQw4w9WgXcQ", raw: "…" }
35
+ * ```
36
+ */
37
+ export declare function useParseMediaSource(input: string): MediaSource;
38
+ /**
39
+ * Builds the privacy-enhanced YouTube embed URL (`youtube-nocookie`).
40
+ *
41
+ * @param videoId - 11-char YouTube video id.
42
+ * @param options - Player options (start/end/autoplay/extra params).
43
+ * @returns Embed URL ready for `<iframe src>`.
44
+ */
45
+ export declare function useBuildYoutubeEmbedUrl(videoId: string, options?: YoutubeEmbedOptions): string;
46
+ /**
47
+ * Builds the Vimeo player embed URL with privacy defaults.
48
+ *
49
+ * @param videoId - Numeric Vimeo video id.
50
+ * @returns Player URL ready for `<iframe src>`.
51
+ */
52
+ export declare function useBuildVimeoEmbedUrl(videoId: string): string;
53
+ /**
54
+ * Builds the public YouTube thumbnail URL (no API key needed).
55
+ *
56
+ * @param videoId - 11-char YouTube video id.
57
+ * @param quality - Thumbnail quality (defaults to `hqdefault`).
58
+ * @returns Thumbnail image URL.
59
+ */
60
+ export declare function useBuildYoutubeThumbnail(videoId: string, quality?: YoutubeThumbnailQuality): string;
61
+ /**
62
+ * Validates unknown input (parsed JSON, frontmatter, CMS payloads) against
63
+ * the `SmartVideoOptions` schema. Returns a Safe Result instead of throwing.
64
+ *
65
+ * @param input - Unknown value to validate.
66
+ * @returns `FetchResult<SmartVideoOptions>` with typed options or a `Validation Error`.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const result = useParseSmartVideoOptions(JSON.parse(raw));
71
+ * if (result.ok) useBuildVideoEmbed(result.data);
72
+ * ```
73
+ */
74
+ export declare function useParseSmartVideoOptions(input: unknown): FetchResult<SmartVideoOptions>;
75
+ /**
76
+ * Builds the semantically correct embed HTML for any supported source.
77
+ *
78
+ * - Direct files (`.mp4`/`.webm`) → `<figure><video controls …>` (native).
79
+ * - YouTube / Vimeo → `<figure><iframe …>` (embedded context), or a
80
+ * click-to-play facade (`<button>` + thumbnail) when `facade: true`
81
+ * so `.md/.mdx` posts never pay the iframe cost on load.
82
+ *
83
+ * Pure string builder: SSR-safe, no DOM access. Escape is applied to
84
+ * all interpolated attributes.
85
+ *
86
+ * @param options - Source + a11y + presentation options.
87
+ * @returns `{ provider, id, html }` with the ready-to-inject markup.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * const { html } = useBuildVideoEmbed({ src: "https://youtu.be/…", title: "My talk" });
92
+ * ```
93
+ */
94
+ export declare function useBuildVideoEmbed(options: SmartVideoOptions): MediaSource & {
95
+ html: string;
96
+ };
97
+ //# sourceMappingURL=media.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/media.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,MAAM,sBAAsB,CAAC;AAsB9B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgCjE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAS9D;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAC/B,MAAM,CAaR;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAAqC,GAC5C,MAAM,CAER;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAExF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAsD7F"}