katanakit-js 5.0.0 → 5.1.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 (93) hide show
  1. package/README.md +35 -1
  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 +449 -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 +58 -19
  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 +161 -44
  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 +3 -0
  20. package/dist/core/index.d.ts.map +1 -1
  21. package/dist/core/index.js +3 -0
  22. package/dist/core/index.js.map +1 -1
  23. package/dist/core/services/media.service.d.ts +97 -0
  24. package/dist/core/services/media.service.d.ts.map +1 -0
  25. package/dist/core/services/media.service.js +239 -0
  26. package/dist/core/services/media.service.js.map +1 -0
  27. package/dist/core/services/validation.service.d.ts +22 -0
  28. package/dist/core/services/validation.service.d.ts.map +1 -0
  29. package/dist/core/services/validation.service.js +41 -0
  30. package/dist/core/services/validation.service.js.map +1 -0
  31. package/dist/core/services/youtube.service.d.ts +79 -0
  32. package/dist/core/services/youtube.service.d.ts.map +1 -0
  33. package/dist/core/services/youtube.service.js +388 -0
  34. package/dist/core/services/youtube.service.js.map +1 -0
  35. package/dist/index.d.ts +1 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +1 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/infrastructure/index.d.ts +1 -0
  40. package/dist/infrastructure/index.d.ts.map +1 -1
  41. package/dist/infrastructure/index.js +1 -0
  42. package/dist/infrastructure/index.js.map +1 -1
  43. package/dist/infrastructure/media/media.service.d.ts +15 -0
  44. package/dist/infrastructure/media/media.service.d.ts.map +1 -0
  45. package/dist/infrastructure/media/media.service.js +44 -0
  46. package/dist/infrastructure/media/media.service.js.map +1 -0
  47. package/dist/schemas/access.schema.d.ts +69 -0
  48. package/dist/schemas/access.schema.d.ts.map +1 -0
  49. package/dist/schemas/access.schema.js +36 -0
  50. package/dist/schemas/access.schema.js.map +1 -0
  51. package/dist/schemas/ai.schema.d.ts +53 -0
  52. package/dist/schemas/ai.schema.d.ts.map +1 -0
  53. package/dist/schemas/ai.schema.js +34 -0
  54. package/dist/schemas/ai.schema.js.map +1 -0
  55. package/dist/schemas/common.schema.d.ts +49 -0
  56. package/dist/schemas/common.schema.d.ts.map +1 -0
  57. package/dist/schemas/common.schema.js +23 -0
  58. package/dist/schemas/common.schema.js.map +1 -0
  59. package/dist/schemas/core.schema.d.ts +164 -0
  60. package/dist/schemas/core.schema.d.ts.map +1 -0
  61. package/dist/schemas/core.schema.js +109 -0
  62. package/dist/schemas/core.schema.js.map +1 -0
  63. package/dist/schemas/index.d.ts +11 -0
  64. package/dist/schemas/index.d.ts.map +1 -0
  65. package/dist/schemas/index.js +11 -0
  66. package/dist/schemas/index.js.map +1 -0
  67. package/dist/schemas/insforge.schema.d.ts +69 -0
  68. package/dist/schemas/insforge.schema.d.ts.map +1 -0
  69. package/dist/schemas/insforge.schema.js +82 -0
  70. package/dist/schemas/insforge.schema.js.map +1 -0
  71. package/dist/schemas/media.schema.d.ts +51 -0
  72. package/dist/schemas/media.schema.d.ts.map +1 -0
  73. package/dist/schemas/media.schema.js +50 -0
  74. package/dist/schemas/media.schema.js.map +1 -0
  75. package/dist/schemas/notion.schema.d.ts +1058 -0
  76. package/dist/schemas/notion.schema.d.ts.map +1 -0
  77. package/dist/schemas/notion.schema.js +248 -0
  78. package/dist/schemas/notion.schema.js.map +1 -0
  79. package/dist/schemas/rss.schema.d.ts +35 -0
  80. package/dist/schemas/rss.schema.d.ts.map +1 -0
  81. package/dist/schemas/rss.schema.js +44 -0
  82. package/dist/schemas/rss.schema.js.map +1 -0
  83. package/dist/schemas/wordpress.schema.d.ts +1304 -0
  84. package/dist/schemas/wordpress.schema.d.ts.map +1 -0
  85. package/dist/schemas/wordpress.schema.js +404 -0
  86. package/dist/schemas/wordpress.schema.js.map +1 -0
  87. package/dist/schemas/youtube.schema.d.ts +122 -0
  88. package/dist/schemas/youtube.schema.d.ts.map +1 -0
  89. package/dist/schemas/youtube.schema.js +113 -0
  90. package/dist/schemas/youtube.schema.js.map +1 -0
  91. package/dist/types/index.d.ts +150 -770
  92. package/dist/types/index.d.ts.map +1 -1
  93. package/package.json +23 -3
@@ -16,6 +16,9 @@ import { siteConfig as defaultSiteConfig } from "./site.config.js";
16
16
  * ```
17
17
  */
18
18
  export function useSeoMeta(opts, defaults = defaultSiteConfig) {
19
+ if (opts == null || typeof opts !== "object") {
20
+ throw new Error("[Seo] useSeoMeta(opts) is required (received empty options).");
21
+ }
19
22
  const { config, meta } = splitUseSeoMetaOptions(opts, defaults);
20
23
  const merged = mergeSeoDefaults(meta, config);
21
24
  const tags = flattenSeoMetaToTags(merged, config);
@@ -63,12 +66,38 @@ export function useSeoMeta(opts, defaults = defaultSiteConfig) {
63
66
  * Legacy: `useSeoTag(siteConfig, { title, description, ... })`.
64
67
  */
65
68
  export function useSeoTag(config, meta) {
66
- return useSeoMeta({ ...siteConfigToOpts(config), ...legacySeoMetaToInput(meta) });
69
+ assertSiteConfigSeo(config, "useSeoTag");
70
+ return useSeoMeta({ ...siteConfigToOpts(config, "useSeoTag"), ...legacySeoMetaToInput(meta) });
67
71
  }
68
72
  /** @deprecated Prefer {@link useSeoMeta}. */
69
73
  export const useSeoTags = useSeoTag;
74
+ /**
75
+ * Fail-fast guard for legacy `SiteConfig` inputs.
76
+ *
77
+ * `SiteConfig.seo` / `SiteConfig.rss` are required by the type, but JS
78
+ * consumers can omit them at runtime — without this the code crashes later
79
+ * with `Cannot read properties of undefined (reading 'noindex')`.
80
+ * `nav` stays optional on purpose (copied by reference, never dereferenced).
81
+ */
82
+ function assertSiteConfigSeo(config, caller) {
83
+ if (config == null || typeof config !== "object") {
84
+ throw new Error(`[Seo] SiteConfig is required (${caller} received ${config === null ? "null" : typeof config}).`);
85
+ }
86
+ if (config.seo == null) {
87
+ throw new Error(`[Seo] SiteConfig.seo is required (${caller}). Pass seo: { noindex, canonical, openGraph, jsonLd }.`);
88
+ }
89
+ }
90
+ function assertSiteConfigRss(config, caller) {
91
+ if (config == null || typeof config !== "object") {
92
+ throw new Error(`[Seo] SiteConfig is required (${caller} received ${config === null ? "null" : typeof config}).`);
93
+ }
94
+ if (config.rss == null) {
95
+ throw new Error(`[Seo] SiteConfig.rss is required (${caller}). Pass rss: { enabled, path, limit }.`);
96
+ }
97
+ }
70
98
  /** Maps a {@link SiteConfig} into unified {@link UseSeoMetaOptions} site fields. */
71
- function siteConfigToOpts(config) {
99
+ function siteConfigToOpts(config, caller = "siteConfigToOpts") {
100
+ assertSiteConfigSeo(config, caller);
72
101
  return {
73
102
  site: config.site,
74
103
  siteTitle: config.title,
@@ -87,6 +116,8 @@ function siteConfigToOpts(config) {
87
116
  };
88
117
  }
89
118
  function splitUseSeoMetaOptions(opts, defaults) {
119
+ assertSiteConfigSeo(defaults, "useSeoMeta(defaults)");
120
+ assertSiteConfigRss(defaults, "useSeoMeta(defaults)");
90
121
  const { site, siteTitle, lang, rss, seo, nav, ...metaRest } = opts;
91
122
  const brand = siteTitle ??
92
123
  (typeof opts.ogSiteName === "string" ? opts.ogSiteName : undefined) ??
@@ -144,19 +175,25 @@ export function useApplySeoTag(seo, head = typeof document !== "undefined" ? doc
144
175
  }
145
176
  /** HTML string of meta tags (no RSS). Prefer {@link useSeoMeta}. */
146
177
  export function useGenerateMetaTags(config, meta) {
178
+ assertSiteConfigSeo(config, "useGenerateMetaTags");
179
+ assertSiteConfigRss(config, "useGenerateMetaTags");
147
180
  const { tags } = useSeoMeta({
148
- ...siteConfigToOpts({ ...config, rss: { ...config.rss, enabled: false } }),
181
+ ...siteConfigToOpts({ ...config, rss: { ...config.rss, enabled: false } }, "useGenerateMetaTags"),
149
182
  ...legacySeoMetaToInput(meta),
150
183
  });
151
184
  return serializeSeoTags(tags.filter((t) => !(t.tag === "link" && t.attrs?.rel === "alternate")));
152
185
  }
153
186
  export function useTitle(config, pageTitle) {
187
+ if (config == null || typeof config !== "object") {
188
+ throw new Error("[Seo] SiteConfig is required (useTitle received empty config).");
189
+ }
154
190
  if (!pageTitle || pageTitle === config.title) {
155
191
  return `<title>${escapeHtml(config.title)}</title>`;
156
192
  }
157
193
  return `<title>${escapeHtml(`${pageTitle} | ${config.title}`)}</title>`;
158
194
  }
159
195
  export function useRssHeadLink(config) {
196
+ assertSiteConfigRss(config, "useRssHeadLink");
160
197
  const node = buildRssTagNode(config);
161
198
  return node ? serializeSeoTag(node) : "";
162
199
  }
@@ -165,7 +202,7 @@ export function useHeadTags(config, meta) {
165
202
  if (isLegacySeoMeta(meta)) {
166
203
  return useSeoTag(config, meta).html;
167
204
  }
168
- return useSeoMeta({ ...siteConfigToOpts(config), ...meta }).html;
205
+ return useSeoMeta({ ...siteConfigToOpts(config, "useHeadTags"), ...meta }).html;
169
206
  }
170
207
  function isLegacySeoMeta(meta) {
171
208
  return ("publishedTime" in meta ||
@@ -429,6 +466,7 @@ function camelToMetaProperty(key) {
429
466
  return camelToKebab(key);
430
467
  }
431
468
  function buildRssTagNode(config) {
469
+ assertSiteConfigRss(config, "buildRssTagNode");
432
470
  if (!config.rss.enabled)
433
471
  return null;
434
472
  const path = config.rss.path ?? "/rss.xml";
@@ -1 +1 @@
1
- {"version":3,"file":"seo.service.js","sourceRoot":"","sources":["../../src/config/seo.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seo.service.js","sourceRoot":"","sources":["../../src/config/seo.service.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,11 @@ export * from "./services/generator.service.js";
8
8
  export * from "./services/geometry.service.js";
9
9
  export * from "./services/http.service.js";
10
10
  export * from "./services/logger.service.js";
11
+ export * from "./services/media.service.js";
11
12
  export * from "./services/query.service.js";
12
13
  export * from "./services/reactive.service.js";
13
14
  export * from "./services/timing.service.js";
14
15
  export * from "./services/utils.service.js";
16
+ export * from "./services/validation.service.js";
17
+ export * from "./services/youtube.service.js";
15
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC"}
@@ -8,8 +8,11 @@ export * from "./services/generator.service.js";
8
8
  export * from "./services/geometry.service.js";
9
9
  export * from "./services/http.service.js";
10
10
  export * from "./services/logger.service.js";
11
+ export * from "./services/media.service.js";
11
12
  export * from "./services/query.service.js";
12
13
  export * from "./services/reactive.service.js";
13
14
  export * from "./services/timing.service.js";
14
15
  export * from "./services/utils.service.js";
16
+ export * from "./services/validation.service.js";
17
+ export * from "./services/youtube.service.js";
15
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC"}
@@ -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"}
@@ -0,0 +1,239 @@
1
+ import { SmartVideoOptionsSchema } from "../../schemas/media.schema.js";
2
+ import { useValidate } from "./validation.service.js";
3
+ const YOUTUBE_ID_PATTERN = /^[A-Za-z0-9_-]{11}$/;
4
+ const VIMEO_ID_PATTERN = /^\d{6,12}$/;
5
+ const DIRECT_FILE_PATTERN = /\.(mp4|webm|ogv|mov|m4v)(\?|#|$)/i;
6
+ /**
7
+ * Escapes HTML special chars for safe attribute/text interpolation.
8
+ *
9
+ * @param value - Raw string to escape.
10
+ * @returns Escaped string safe for HTML contexts.
11
+ */
12
+ function escapeHtml(value) {
13
+ return value
14
+ .replace(/&/g, "&amp;")
15
+ .replace(/</g, "&lt;")
16
+ .replace(/>/g, "&gt;")
17
+ .replace(/"/g, "&quot;")
18
+ .replace(/'/g, "&#39;");
19
+ }
20
+ /**
21
+ * Extracts a YouTube video id from a watch / shorts / live / embed /
22
+ * `youtu.be` URL or a bare 11-char id. Returns `null` when not matched.
23
+ *
24
+ * @param input - URL or bare video id.
25
+ * @returns The 11-char video id or `null`.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * useGetYoutubeVideoId("https://www.youtube.com/watch?v=dQw4w9WgXcQ"); // "dQw4w9WgXcQ"
30
+ * useGetYoutubeVideoId("https://youtu.be/dQw4w9WgXcQ"); // "dQw4w9WgXcQ"
31
+ * useGetYoutubeVideoId("dQw4w9WgXcQ"); // "dQw4w9WgXcQ"
32
+ * ```
33
+ */
34
+ export function useGetYoutubeVideoId(input) {
35
+ const value = input.trim();
36
+ if (!value)
37
+ return null;
38
+ if (YOUTUBE_ID_PATTERN.test(value))
39
+ return value;
40
+ let url;
41
+ try {
42
+ url = new URL(value.startsWith("http") ? value : `https://${value}`);
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ const host = url.hostname.replace(/^www\./, "").toLowerCase();
48
+ const path = url.pathname;
49
+ if (host === "youtu.be") {
50
+ const id = path.split("/").filter(Boolean)[0] ?? "";
51
+ return YOUTUBE_ID_PATTERN.test(id) ? id : null;
52
+ }
53
+ if (host.endsWith("youtube.com") || host.endsWith("youtube-nocookie.com")) {
54
+ const paramId = url.searchParams.get("v") ?? "";
55
+ if (YOUTUBE_ID_PATTERN.test(paramId))
56
+ return paramId;
57
+ const segments = path.split("/").filter(Boolean);
58
+ const prefix = segments[0] ?? "";
59
+ const candidate = segments[1] ?? "";
60
+ if (["embed", "shorts", "live", "v"].includes(prefix) && YOUTUBE_ID_PATTERN.test(candidate)) {
61
+ return candidate;
62
+ }
63
+ }
64
+ return null;
65
+ }
66
+ /**
67
+ * Extracts a Vimeo video id from a URL or bare numeric id.
68
+ *
69
+ * @param input - URL or bare numeric id.
70
+ * @returns The numeric id or `null`.
71
+ */
72
+ export function useGetVimeoVideoId(input) {
73
+ const value = input.trim();
74
+ if (!value)
75
+ return null;
76
+ if (VIMEO_ID_PATTERN.test(value))
77
+ return value;
78
+ try {
79
+ const url = new URL(value.startsWith("http") ? value : `https://${value}`);
80
+ if (!url.hostname.toLowerCase().includes("vimeo.com"))
81
+ return null;
82
+ const candidate = url.pathname.split("/").filter(Boolean).pop() ?? "";
83
+ return VIMEO_ID_PATTERN.test(candidate) ? candidate : null;
84
+ }
85
+ catch {
86
+ return null;
87
+ }
88
+ }
89
+ /**
90
+ * Normalizes any supported input into a {@link MediaSource}.
91
+ * Pure and SSR-safe: no DOM, no fetch.
92
+ *
93
+ * @param input - YouTube/Vimeo URL or id, or direct video file URL.
94
+ * @returns Normalized `{ provider, id, raw }`.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * useParseMediaSource("https://youtu.be/dQw4w9WgXcQ");
99
+ * // { provider: "youtube", id: "dQw4w9WgXcQ", raw: "…" }
100
+ * ```
101
+ */
102
+ export function useParseMediaSource(input) {
103
+ const raw = input;
104
+ const value = input.trim();
105
+ const youtubeId = useGetYoutubeVideoId(value);
106
+ if (youtubeId)
107
+ return { provider: "youtube", id: youtubeId, raw };
108
+ const vimeoId = useGetVimeoVideoId(value);
109
+ if (vimeoId)
110
+ return { provider: "vimeo", id: vimeoId, raw };
111
+ if (DIRECT_FILE_PATTERN.test(value))
112
+ return { provider: "file", id: value, raw };
113
+ return { provider: "unknown", id: value, raw };
114
+ }
115
+ /**
116
+ * Builds the privacy-enhanced YouTube embed URL (`youtube-nocookie`).
117
+ *
118
+ * @param videoId - 11-char YouTube video id.
119
+ * @param options - Player options (start/end/autoplay/extra params).
120
+ * @returns Embed URL ready for `<iframe src>`.
121
+ */
122
+ export function useBuildYoutubeEmbedUrl(videoId, options = {}) {
123
+ const url = new URL(`https://www.youtube-nocookie.com/embed/${videoId}`);
124
+ const params = { rel: "0" };
125
+ if (options.autoplay)
126
+ params["autoplay"] = "1";
127
+ if (options.start !== undefined)
128
+ params["start"] = String(options.start);
129
+ if (options.end !== undefined)
130
+ params["end"] = String(options.end);
131
+ for (const [key, value] of Object.entries(options.params ?? {})) {
132
+ params[key] = String(value);
133
+ }
134
+ for (const [key, value] of Object.entries(params)) {
135
+ url.searchParams.set(key, value);
136
+ }
137
+ return url.toString();
138
+ }
139
+ /**
140
+ * Builds the Vimeo player embed URL with privacy defaults.
141
+ *
142
+ * @param videoId - Numeric Vimeo video id.
143
+ * @returns Player URL ready for `<iframe src>`.
144
+ */
145
+ export function useBuildVimeoEmbedUrl(videoId) {
146
+ const url = new URL(`https://player.vimeo.com/video/${videoId}`);
147
+ url.searchParams.set("dnt", "1");
148
+ return url.toString();
149
+ }
150
+ /**
151
+ * Builds the public YouTube thumbnail URL (no API key needed).
152
+ *
153
+ * @param videoId - 11-char YouTube video id.
154
+ * @param quality - Thumbnail quality (defaults to `hqdefault`).
155
+ * @returns Thumbnail image URL.
156
+ */
157
+ export function useBuildYoutubeThumbnail(videoId, quality = "hqdefault") {
158
+ return `https://i.ytimg.com/vi/${videoId}/${quality}.jpg`;
159
+ }
160
+ /**
161
+ * Validates unknown input (parsed JSON, frontmatter, CMS payloads) against
162
+ * the `SmartVideoOptions` schema. Returns a Safe Result instead of throwing.
163
+ *
164
+ * @param input - Unknown value to validate.
165
+ * @returns `FetchResult<SmartVideoOptions>` with typed options or a `Validation Error`.
166
+ *
167
+ * @example
168
+ * ```ts
169
+ * const result = useParseSmartVideoOptions(JSON.parse(raw));
170
+ * if (result.ok) useBuildVideoEmbed(result.data);
171
+ * ```
172
+ */
173
+ export function useParseSmartVideoOptions(input) {
174
+ return useValidate(SmartVideoOptionsSchema, input);
175
+ }
176
+ /**
177
+ * Builds the semantically correct embed HTML for any supported source.
178
+ *
179
+ * - Direct files (`.mp4`/`.webm`) → `<figure><video controls …>` (native).
180
+ * - YouTube / Vimeo → `<figure><iframe …>` (embedded context), or a
181
+ * click-to-play facade (`<button>` + thumbnail) when `facade: true`
182
+ * so `.md/.mdx` posts never pay the iframe cost on load.
183
+ *
184
+ * Pure string builder: SSR-safe, no DOM access. Escape is applied to
185
+ * all interpolated attributes.
186
+ *
187
+ * @param options - Source + a11y + presentation options.
188
+ * @returns `{ provider, id, html }` with the ready-to-inject markup.
189
+ *
190
+ * @example
191
+ * ```ts
192
+ * const { html } = useBuildVideoEmbed({ src: "https://youtu.be/…", title: "My talk" });
193
+ * ```
194
+ */
195
+ export function useBuildVideoEmbed(options) {
196
+ const { src, title, caption, poster, className, aspect = "16/9", facade = true } = options;
197
+ const source = useParseMediaSource(src);
198
+ const safeTitle = escapeHtml(title);
199
+ const safeCaption = caption ? `<figcaption>${escapeHtml(caption)}</figcaption>` : "";
200
+ const figureClass = ["katanakit-video", className].filter(Boolean).join(" ");
201
+ const ratio = escapeHtml(aspect);
202
+ if (source.provider === "file") {
203
+ const safeSrc = escapeHtml(source.id);
204
+ const safePoster = poster ? ` poster="${escapeHtml(poster)}"` : "";
205
+ const html = `<figure class="${escapeHtml(figureClass)}" style="aspect-ratio:${ratio}">` +
206
+ `<video controls preload="metadata"${safePoster} aria-label="${safeTitle}">` +
207
+ `<source src="${safeSrc}" />` +
208
+ `</video>${safeCaption}</figure>`;
209
+ return { ...source, html };
210
+ }
211
+ if (source.provider === "youtube" || source.provider === "vimeo") {
212
+ const embedUrl = source.provider === "youtube"
213
+ ? useBuildYoutubeEmbedUrl(source.id, {
214
+ autoplay: facade,
215
+ ...(options.youtube ?? {}),
216
+ })
217
+ : useBuildVimeoEmbedUrl(source.id);
218
+ const safeEmbed = escapeHtml(embedUrl);
219
+ const thumb = poster ?? (source.provider === "youtube" ? useBuildYoutubeThumbnail(source.id) : undefined);
220
+ const safeThumb = thumb ? escapeHtml(thumb) : "";
221
+ if (facade && safeThumb) {
222
+ const html = `<figure class="${escapeHtml(figureClass)}" style="aspect-ratio:${ratio}">` +
223
+ `<button type="button" data-video-facade="${safeEmbed}" aria-label="${safeTitle}" ` +
224
+ `style="background-image:url('${safeThumb}')">` +
225
+ `<span aria-hidden="true">▶</span></button>${safeCaption}</figure>`;
226
+ return { ...source, html };
227
+ }
228
+ const html = `<figure class="${escapeHtml(figureClass)}" style="aspect-ratio:${ratio}">` +
229
+ `<iframe src="${safeEmbed}" title="${safeTitle}" loading="lazy" ` +
230
+ `allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" ` +
231
+ `referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>${safeCaption}</figure>`;
232
+ return { ...source, html };
233
+ }
234
+ const safeSrc = escapeHtml(src);
235
+ const html = `<figure class="${escapeHtml(figureClass)}" style="aspect-ratio:${ratio}">` +
236
+ `<a href="${safeSrc}">${safeTitle}</a>${safeCaption}</figure>`;
237
+ return { ...source, html };
238
+ }
239
+ //# sourceMappingURL=media.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.service.js","sourceRoot":"","sources":["../../../src/core/services/media.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { z } from "zod";
2
+ import type { FetchResult } from "../../types/index.js";
3
+ /**
4
+ * Validates unknown data (API responses, configs, user input) against a
5
+ * Zod schema and returns a Safe Result instead of throwing.
6
+ * Framework-agnostic and pure: no I/O, SSR-safe.
7
+ *
8
+ * @typeParam T - The validated output type (`z.infer` of the schema).
9
+ * @param schema - Any Zod schema.
10
+ * @param data - Unknown input to validate.
11
+ * @returns `FetchResult<T>` with typed data or a `Validation Error`.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { SmartVideoOptionsSchema } from "katanakit-js/schemas";
16
+ *
17
+ * const result = useValidate(SmartVideoOptionsSchema, JSON.parse(raw));
18
+ * if (result.ok) useBuildVideoEmbed(result.data);
19
+ * ```
20
+ */
21
+ export declare function useValidate<T>(schema: z.ZodType<T>, data: unknown): FetchResult<T>;
22
+ //# sourceMappingURL=validation.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/validation.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAqBlF"}