@riducms/plugin-seo 0.16.2 → 0.18.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 (37) hide show
  1. package/dist/generation-controller.svelte.d.ts +7 -0
  2. package/dist/generation-controller.svelte.js +68 -0
  3. package/dist/generation-snapshot.d.ts +3 -0
  4. package/dist/generation-snapshot.js +11 -0
  5. package/dist/index.d.ts +59 -0
  6. package/dist/index.js +48 -0
  7. package/dist/length-indicator.d.ts +8 -0
  8. package/dist/length-indicator.js +24 -0
  9. package/{src → dist}/length-indicator.svelte +2 -2
  10. package/dist/length-indicator.svelte.d.ts +11 -0
  11. package/dist/messages.d.ts +33 -0
  12. package/dist/messages.js +104 -0
  13. package/{src → dist}/meta-description-field.svelte +4 -4
  14. package/dist/meta-description-field.svelte.d.ts +6 -0
  15. package/{src → dist}/meta-image-field.svelte +5 -5
  16. package/dist/meta-image-field.svelte.d.ts +7 -0
  17. package/{src → dist}/meta-title-field.svelte +4 -4
  18. package/dist/meta-title-field.svelte.d.ts +6 -0
  19. package/{src → dist}/overview-field.svelte +2 -2
  20. package/dist/overview-field.svelte.d.ts +6 -0
  21. package/{src → dist}/preview-field.svelte +3 -3
  22. package/dist/preview-field.svelte.d.ts +6 -0
  23. package/dist/seo-config.d.ts +27 -0
  24. package/dist/seo-config.js +74 -0
  25. package/dist/seo.css +308 -0
  26. package/dist/~icons/lucide/image.svelte +2 -0
  27. package/dist/~icons/lucide/pencil.svelte +2 -0
  28. package/dist/~icons/lucide/x.svelte +2 -0
  29. package/package.json +32 -13
  30. package/src/generation-controller.svelte.ts +0 -84
  31. package/src/generation-snapshot.ts +0 -17
  32. package/src/index.ts +0 -59
  33. package/src/length-indicator.ts +0 -32
  34. package/src/messages.ts +0 -113
  35. package/src/seo-config.ts +0 -96
  36. package/src/vite-env.d.ts +0 -7
  37. /package/{src → dist}/seo.scss +0 -0
package/src/seo-config.ts DELETED
@@ -1,96 +0,0 @@
1
- export interface LengthConfig {
2
- generate: boolean;
3
- minLength: number;
4
- maxLength: number;
5
- }
6
-
7
- export interface OverviewConfig {
8
- titlePath: string;
9
- descriptionPath: string;
10
- imagePath: string;
11
- titleMin: number;
12
- titleMax: number;
13
- descriptionMin: number;
14
- descriptionMax: number;
15
- }
16
-
17
- export interface PreviewConfig {
18
- generate: boolean;
19
- titlePath: string;
20
- descriptionPath: string;
21
- }
22
-
23
- export function decodeLengthConfig(raw: unknown, type: "text" | "textarea"): LengthConfig {
24
- const value = componentConfig(raw, ["generate", "minLength", "maxLength"]);
25
- return {
26
- generate: value.generate === true,
27
- minLength: positiveInteger(value.minLength, type === "textarea" ? 100 : 50),
28
- maxLength: positiveInteger(value.maxLength, type === "textarea" ? 150 : 60),
29
- };
30
- }
31
-
32
- export function decodeOverviewConfig(raw: unknown): OverviewConfig {
33
- const value = componentConfig(raw, [
34
- "titlePath",
35
- "descriptionPath",
36
- "imagePath",
37
- "titleMin",
38
- "titleMax",
39
- "descriptionMin",
40
- "descriptionMax",
41
- ]);
42
- return {
43
- titlePath: stringValue(value.titlePath, "meta.title"),
44
- descriptionPath: stringValue(value.descriptionPath, "meta.description"),
45
- imagePath: stringValue(value.imagePath, "meta.image"),
46
- titleMin: positiveInteger(value.titleMin, 50),
47
- titleMax: positiveInteger(value.titleMax, 60),
48
- descriptionMin: positiveInteger(value.descriptionMin, 100),
49
- descriptionMax: positiveInteger(value.descriptionMax, 150),
50
- };
51
- }
52
-
53
- export function decodePreviewConfig(raw: unknown): PreviewConfig {
54
- const value = componentConfig(raw, ["generate", "titlePath", "descriptionPath"]);
55
- return {
56
- generate: value.generate === true,
57
- titlePath: stringValue(value.titlePath, "meta.title"),
58
- descriptionPath: stringValue(value.descriptionPath, "meta.description"),
59
- };
60
- }
61
-
62
- export function decodeImageConfig(raw: unknown): { generate: boolean } {
63
- return { generate: componentConfig(raw, ["generate"]).generate === true };
64
- }
65
- function componentConfig(raw: unknown, allowed: readonly string[]): Record<string, unknown> {
66
- if (typeof raw !== "object" || raw === null || Array.isArray(raw))
67
- throw new Error("SEO config must be an object.");
68
- const value = raw as Record<string, unknown>;
69
- for (const key of Object.keys(value))
70
- if (!allowed.includes(key)) throw new Error(`Unsupported SEO config key ${key}.`);
71
- if (value.generate !== undefined && typeof value.generate !== "boolean")
72
- throw new Error("generate must be a boolean.");
73
- return value;
74
- }
75
- export function decodeString(value: unknown): string {
76
- if (typeof value !== "string") throw new Error("Expected a string value.");
77
- return value;
78
- }
79
- export function decodeUI(value: unknown): undefined {
80
- if (value !== undefined) throw new Error("UI fields have no stored value.");
81
- return undefined;
82
- }
83
-
84
- function stringValue(value: unknown, fallback: string) {
85
- if (value === undefined) return fallback;
86
- if (typeof value !== "string" || !value.length)
87
- throw new Error("Expected a nonempty string config value.");
88
- return value;
89
- }
90
-
91
- function positiveInteger(value: unknown, fallback: number) {
92
- if (value === undefined) return fallback;
93
- if (typeof value !== "number" || !Number.isInteger(value) || value <= 0)
94
- throw new Error("Expected a positive integer config value.");
95
- return value;
96
- }
package/src/vite-env.d.ts DELETED
@@ -1,7 +0,0 @@
1
- /// <reference types="vite/client" />
2
-
3
- declare module "~icons/*" {
4
- import type { Component } from "svelte";
5
- const icon: Component<Record<string, unknown>>;
6
- export default icon;
7
- }
File without changes