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,154 @@
1
+ // ============================================================
2
+ // Path facade — Node-only helpers with runtime guards.
3
+ // `node:path` and `node:url` load through dynamic `import()` so
4
+ // importing this module never pulls Node built-ins into a browser
5
+ // bundle. Outside Node/Bun the helpers throw; the filesystem
6
+ // service catches that surface and returns a Safe Result instead.
7
+ // ============================================================
8
+ /**
9
+ * Checks whether the code runs in a Node.js-compatible runtime
10
+ * (Node, Bun or Deno). Returns `false` in browsers and edge runtimes.
11
+ *
12
+ * @returns `true` when `process.versions.node` is available.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { useIsNode } from "katanakit-js";
17
+ *
18
+ * if (useIsNode()) {
19
+ * // safe to use node:fs / node:path
20
+ * }
21
+ * ```
22
+ */
23
+ export const useIsNode = () => typeof process !== "undefined" && typeof process.versions?.node === "string";
24
+ /** Throws when a path helper is called outside a Node-compatible runtime. */
25
+ function assertNodeRuntime() {
26
+ if (!useIsNode()) {
27
+ throw new Error("[Filesystem] A Node.js-compatible runtime is required to use filesystem helpers.");
28
+ }
29
+ }
30
+ /** Lazily loads `node:path` and `node:url` (the ESM loader caches both). */
31
+ async function loadModules() {
32
+ assertNodeRuntime();
33
+ const [path, url] = await Promise.all([import("node:path"), import("node:url")]);
34
+ return { path, url };
35
+ }
36
+ /**
37
+ * Resolves the directory of a module from its `import.meta.url`.
38
+ *
39
+ * Unlike `import.meta.dirname`, this works for any module you pass in,
40
+ * so a consumer's app resolves its own paths — never KatanaKit's `dist/`.
41
+ *
42
+ * @param importMetaUrl - Your module's `import.meta.url`.
43
+ * @returns The absolute directory that contains the module.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { useGetDirname } from "katanakit-js";
48
+ *
49
+ * const dir = await useGetDirname(import.meta.url);
50
+ * // "<project>/src/features/books"
51
+ * ```
52
+ */
53
+ export async function useGetDirname(importMetaUrl) {
54
+ const { path, url } = await loadModules();
55
+ return path.dirname(url.fileURLToPath(importMetaUrl));
56
+ }
57
+ /**
58
+ * Resolves a sequence of path segments into an absolute path.
59
+ * Relative segments resolve against `process.cwd()`; if the first
60
+ * segment is absolute (like a `useGetDirname` result), cwd is ignored.
61
+ *
62
+ * @param segments - Path segments to resolve.
63
+ * @returns The resolved absolute path.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * const base = await useGetDirname(import.meta.url);
68
+ * const file = await useResolvePath(base, "../data/books.json");
69
+ * ```
70
+ */
71
+ export async function useResolvePath(...segments) {
72
+ const { path } = await loadModules();
73
+ return path.resolve(...segments);
74
+ }
75
+ /**
76
+ * Joins path segments without resolving against `process.cwd()`.
77
+ *
78
+ * @param segments - Path segments to join.
79
+ * @returns The joined (possibly relative) path.
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * await useJoinPath("data", "books.json"); // "data/books.json"
84
+ * ```
85
+ */
86
+ export async function useJoinPath(...segments) {
87
+ const { path } = await loadModules();
88
+ return path.join(...segments);
89
+ }
90
+ /**
91
+ * Computes the relative path from `from` to `to`.
92
+ *
93
+ * @param from - Origin path.
94
+ * @param to - Destination path.
95
+ * @returns The relative path between both.
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * await useGetRelativePath("/app/src", "/app/data/books.json"); // "../data/books.json"
100
+ * ```
101
+ */
102
+ export async function useGetRelativePath(from, to) {
103
+ const { path } = await loadModules();
104
+ return path.relative(from, to);
105
+ }
106
+ /**
107
+ * Returns the last portion of a path (file name).
108
+ *
109
+ * @param filePath - The path to inspect.
110
+ * @param suffix - Optional suffix to strip (e.g. `".json"`).
111
+ * @returns The base name.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * await useGetBasename("/data/books.json"); // "books.json"
116
+ * await useGetBasename("/data/books.json", ".json"); // "books"
117
+ * ```
118
+ */
119
+ export async function useGetBasename(filePath, suffix) {
120
+ const { path } = await loadModules();
121
+ return path.basename(filePath, suffix);
122
+ }
123
+ /**
124
+ * Returns the extension of a path, including the leading dot.
125
+ *
126
+ * @param filePath - The path to inspect.
127
+ * @returns The extension (`""` when there is none).
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * await useGetFileExtension("/data/books.json"); // ".json"
132
+ * ```
133
+ */
134
+ export async function useGetFileExtension(filePath) {
135
+ const { path } = await loadModules();
136
+ return path.extname(filePath);
137
+ }
138
+ /**
139
+ * Returns the current working directory of the process (where the
140
+ * command was launched), or `null` outside a Node-compatible runtime.
141
+ * Use it for project-relative paths; use {@link useGetDirname} for
142
+ * file-relative paths.
143
+ *
144
+ * @returns The cwd, or `null` in browsers/edge runtimes.
145
+ *
146
+ * @example
147
+ * ```ts
148
+ * const cwd = useGetCwd(); // "/app" when launched from the project root
149
+ * ```
150
+ */
151
+ export function useGetCwd() {
152
+ return useIsNode() ? process.cwd() : null;
153
+ }
154
+ //# sourceMappingURL=path.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.service.js","sourceRoot":"","sources":["../../../src/infrastructure/filesystem/path.service.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uDAAuD;AACvD,gEAAgE;AAChE,kEAAkE;AAClE,6DAA6D;AAC7D,kEAAkE;AAClE,+DAA+D;AAK/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,EAAE,CACtC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC;AAE9E,6EAA6E;AAC7E,SAAS,iBAAiB;IACzB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACd,kFAAkF,CAClF,CAAC;IACH,CAAC;AACF,CAAC;AAED,4EAA4E;AAC5E,KAAK,UAAU,WAAW;IACzB,iBAAiB,EAAE,CAAC;IACpB,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACjF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,aAAqB;IACxD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAG,QAAkB;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAG,QAAkB;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,EAAU;IAChE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,MAAe;IACrE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS;IACxB,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC"}
@@ -1,4 +1,7 @@
1
1
  export * from "./dom/dom.service.js";
2
+ export * from "./filesystem/filesystem.service.js";
3
+ export * from "./filesystem/path.service.js";
4
+ export * from "./media/media.service.js";
2
5
  export * from "./observer/observer.service.js";
3
6
  export * from "./sensors/sensors.service.js";
4
7
  export * from "./storage/storage.service.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/infrastructure/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/infrastructure/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC"}
@@ -1,4 +1,7 @@
1
1
  export * from "./dom/dom.service.js";
2
+ export * from "./filesystem/filesystem.service.js";
3
+ export * from "./filesystem/path.service.js";
4
+ export * from "./media/media.service.js";
2
5
  export * from "./observer/observer.service.js";
3
6
  export * from "./sensors/sensors.service.js";
4
7
  export * from "./storage/storage.service.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/infrastructure/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/infrastructure/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Hydrates click-to-play facades rendered by `useBuildVideoEmbed`.
3
+ * SSR-safe: no-op outside the browser, no side effects on import.
4
+ * Call once per page (Astro/React/Vue/MDX `useEffect` or inline script).
5
+ *
6
+ * @param root - Scope element or document (defaults to `document`).
7
+ * @returns Cleanup function removing the delegated listener.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * useEnhanceVideoFacades(); // click on [data-video-facade] swaps in the iframe
12
+ * ```
13
+ */
14
+ export declare function useEnhanceVideoFacades(root?: ParentNode): () => void;
15
+ //# sourceMappingURL=media.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/media/media.service.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,IAAI,CA2BpE"}
@@ -0,0 +1,44 @@
1
+ import { useIsBrowser } from "../dom/dom.service.js";
2
+ /**
3
+ * Hydrates click-to-play facades rendered by `useBuildVideoEmbed`.
4
+ * SSR-safe: no-op outside the browser, no side effects on import.
5
+ * Call once per page (Astro/React/Vue/MDX `useEffect` or inline script).
6
+ *
7
+ * @param root - Scope element or document (defaults to `document`).
8
+ * @returns Cleanup function removing the delegated listener.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * useEnhanceVideoFacades(); // click on [data-video-facade] swaps in the iframe
13
+ * ```
14
+ */
15
+ export function useEnhanceVideoFacades(root) {
16
+ if (!useIsBrowser())
17
+ return () => undefined;
18
+ const scope = root ?? document;
19
+ const onClick = (event) => {
20
+ const target = event.target;
21
+ const button = target?.closest?.("[data-video-facade]");
22
+ if (!button || !scope.contains(button))
23
+ return;
24
+ const src = button.getAttribute("data-video-facade");
25
+ if (!src)
26
+ return;
27
+ const label = button.getAttribute("aria-label") ?? "Embedded video";
28
+ const iframe = document.createElement("iframe");
29
+ iframe.src = src;
30
+ iframe.title = label;
31
+ iframe.loading = "lazy";
32
+ iframe.referrerPolicy = "strict-origin-when-cross-origin";
33
+ iframe.allow =
34
+ "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share";
35
+ iframe.allowFullscreen = true;
36
+ iframe.style.width = "100%";
37
+ iframe.style.height = "100%";
38
+ iframe.style.border = "0";
39
+ button.replaceWith(iframe);
40
+ };
41
+ scope.addEventListener("click", onClick);
42
+ return () => scope.removeEventListener("click", onClick);
43
+ }
44
+ //# sourceMappingURL=media.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.service.js","sourceRoot":"","sources":["../../../src/infrastructure/media/media.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAiB;IACvD,IAAI,CAAC,YAAY,EAAE;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,IAAI,QAAQ,CAAC;IAE/B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAQ,EAAE;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAA4B,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,qBAAqB,CAA6B,CAAC;QACpF,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAC;QACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,cAAc,GAAG,iCAAiC,CAAC;QAC1D,MAAM,CAAC,KAAK;YACX,qGAAqG,CAAC;QACvG,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QAC1B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2D3E;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAuB7C;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,CAGvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,CAGzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD;AAyJD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQhF;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,GAAG,OAAO,EACxC,KAAK,MAAM,EACX,SAAQ,aAA8B,KACpC,CAAC,GAAG,IAAkD,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,GACzB,KAAK,MAAM,EACX,OAAO,OAAO,EACd,SAAQ,aAA8B,KACpC,IAAsD,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,SAAQ,aAA8B,KAAG,IAC5C,CAAC;AAE5C;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,SAAQ,aAA8B,KAAG,IACtC,CAAC"}
1
+ {"version":3,"file":"storage.service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA6D3E;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAuB7C;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,CAGvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,CAGzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD;AAyJD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAQhF;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,GAAG,OAAO,EACxC,KAAK,MAAM,EACX,SAAQ,aAA8B,KACpC,CAAC,GAAG,IAAkD,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,GACzB,KAAK,MAAM,EACX,OAAO,OAAO,EACd,SAAQ,aAA8B,KACpC,IAAsD,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,SAAQ,aAA8B,KAAG,IAC5C,CAAC;AAE5C;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,SAAQ,aAA8B,KAAG,IACtC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { useTryJsonParse } from "../../core/services/result.service.js";
1
2
  // ============================================================
2
3
  // Strategy factories (plain objects implementing StorageStrategy)
3
4
  // ============================================================
@@ -11,18 +12,19 @@
11
12
  function createWebStorageStrategy(storage) {
12
13
  return {
13
14
  useGetItem(key) {
15
+ let raw;
14
16
  try {
15
- const raw = storage.getItem(key);
16
- return raw ? JSON.parse(raw) : null;
17
+ raw = storage.getItem(key);
17
18
  }
18
19
  catch {
19
- try {
20
- return storage.getItem(key);
21
- }
22
- catch {
23
- return null;
24
- }
20
+ // Unavailable storage.
21
+ return null;
25
22
  }
23
+ if (!raw)
24
+ return null;
25
+ // Non-JSON values fall back to the raw string (legacy contract).
26
+ const parsed = useTryJsonParse(raw);
27
+ return parsed.ok ? parsed.data : raw;
26
28
  },
27
29
  useSetItem(key, value) {
28
30
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,kEAAkE;AAClE,+DAA+D;AAE/D;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,OAAgB;IACjD,OAAO;QACN,UAAU,CAAc,GAAW;YAClC,IAAI,CAAC;gBACJ,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACjC,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACR,IAAI,CAAC;oBACJ,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAiB,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;QACF,CAAC;QAED,UAAU,CAAC,GAAW,EAAE,KAAc;YACrC,IAAI,CAAC;gBACJ,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC7E,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACR,iEAAiE;YAClE,CAAC;QACF,CAAC;QAED,aAAa,CAAC,GAAW;YACxB,IAAI,CAAC;gBACJ,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACR,8BAA8B;YAC/B,CAAC;QACF,CAAC;QAED,QAAQ;YACP,IAAI,CAAC;gBACJ,OAAO,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACR,8BAA8B;YAC/B,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,mCAAmC;AACnC,+DAA+D;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExC,OAAO;QACN,IAAI,MAAM;YACT,OAAO,KAAK,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,KAAK;YACJ,KAAK,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QACD,OAAO,CAAC,GAAW;YAClB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,KAAa;YAChB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QAChD,CAAC;QACD,UAAU,CAAC,GAAW;YACrB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,GAAW,EAAE,KAAa;YACjC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC;KACD,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,8BAA8B;AAC9B,+DAA+D;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAiB;IACrD,MAAM,QAAQ,GAAG,OAAO,IAAI,sBAAsB,EAAE,CAAC;IACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAChF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAiB;IACvD,MAAM,QAAQ,GAAG,OAAO,IAAI,wBAAwB,EAAE,CAAC;IACvD,OAAO,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAChF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB;IACpC,OAAO,wBAAwB,CAAC,mBAAmB,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D;AAE/D;;GAEG;AACH,SAAS,sBAAsB;IAC9B,IAAI,CAAC;QACJ,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB;IAChC,IAAI,CAAC;QACJ,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAgBD,SAAS,oBAAoB;IAC5B,OAAO;QACN,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS;QACzB,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;KACzB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,IAAI,aAAa,GAAuC,oBAAoB,EAAE,CAAC;AAE/E;;;;;GAKG;AACH,IAAI,YAAY,GAAyB,IAAI,CAAC;AAE9C,KAAK,UAAU,aAAa;IAC3B,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,CAAC;YACvC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACpC,aAAa,GAAG,IAAI,QAAQ,EAAwC,CAAC;YACtE,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,mEAAmE;QACpE,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,YAAY,CAAC;AACrB,CAAC;AAQD,2DAA2D;AAC3D,IAAI,iBAAiB,GAAuB,IAAI,CAAC;AAEjD,SAAS,sBAAsB;IAC9B,OAAO;QACN,YAAY,EAAE,qBAAqB,EAAE;QACrC,cAAc,EAAE,qBAAqB,EAAE;KACvC,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B;IAClC,MAAM,KAAK,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACtD,OAAO;QACN,YAAY,EAAE,KAAK,IAAI,qBAAqB,EAAE;QAC9C,cAAc,EAAE,OAAO,IAAI,qBAAqB,EAAE;KAClD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,IAAuC;IACnE,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACxC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAClG,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa;IACrB,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IAEhD,IAAI,SAAS,EAAE,CAAC;QACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,iBAAiB,GAAG,0BAA0B,EAAE,CAAC;QAClD,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IAED,4DAA4D;IAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;IACxC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,iFAAiF;IACjF,OAAO,sBAAsB,EAAE,CAAC;AACjC,CAAC;AAED,+DAA+D;AAC/D,aAAa;AACb,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAI,EAAwB;IACnE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,6CAA6C;QAC7C,OAAO,EAAE,EAAE,CAAC;IACb,CAAC;IACD,qEAAqE;IACrE,MAAM,aAAa,EAAE,CAAC;IACtB,OAAO,aAAa,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,GAAW,EACX,SAAwB,cAAc,EAC3B,EAAE,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,CAAI,GAAG,CAAC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,GAAW,EACX,KAAc,EACd,SAAwB,cAAc,EAC/B,EAAE,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,SAAwB,cAAc,EAAQ,EAAE,CAC7F,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAE5C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAwB,cAAc,EAAQ,EAAE,CAC/E,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { z } from "zod";
2
+ /** Built-in roles, ordered from most to least privileged. */
3
+ export declare const AccessRoleSchema: z.ZodEnum<{
4
+ author: "author";
5
+ owner: "owner";
6
+ admin: "admin";
7
+ editor: "editor";
8
+ member: "member";
9
+ guest: "guest";
10
+ }>;
11
+ /**
12
+ * Namespaced capabilities derived from the project domain.
13
+ * Format: `<domain>:<action>[:<scope>]`.
14
+ */
15
+ export declare const AccessCapabilitySchema: z.ZodEnum<{
16
+ "content:create": "content:create";
17
+ "content:publish": "content:publish";
18
+ "content:edit:own": "content:edit:own";
19
+ "content:edit:any": "content:edit:any";
20
+ "content:delete:own": "content:delete:own";
21
+ "content:delete:any": "content:delete:any";
22
+ "conversations:use": "conversations:use";
23
+ "conversations:moderate": "conversations:moderate";
24
+ "members:manage": "members:manage";
25
+ "roles:assign": "roles:assign";
26
+ "system:admin": "system:admin";
27
+ }>;
28
+ /** A role definition: slug, human label and the capabilities it grants. */
29
+ export declare const AccessRoleDefinitionSchema: z.ZodObject<{
30
+ slug: z.ZodEnum<{
31
+ author: "author";
32
+ owner: "owner";
33
+ admin: "admin";
34
+ editor: "editor";
35
+ member: "member";
36
+ guest: "guest";
37
+ }>;
38
+ label: z.ZodString;
39
+ capabilities: z.ZodArray<z.ZodEnum<{
40
+ "content:create": "content:create";
41
+ "content:publish": "content:publish";
42
+ "content:edit:own": "content:edit:own";
43
+ "content:edit:any": "content:edit:any";
44
+ "content:delete:own": "content:delete:own";
45
+ "content:delete:any": "content:delete:any";
46
+ "conversations:use": "conversations:use";
47
+ "conversations:moderate": "conversations:moderate";
48
+ "members:manage": "members:manage";
49
+ "roles:assign": "roles:assign";
50
+ "system:admin": "system:admin";
51
+ }>>;
52
+ }, z.core.$strip>;
53
+ /**
54
+ * Structural subject for access checks. Decoupled from the persistence layer:
55
+ * any object with an id and a role list can be checked (e.g. a Prisma
56
+ * `Account` row, a JWT payload, or a test fixture).
57
+ */
58
+ export declare const AccessSubjectSchema: z.ZodObject<{
59
+ id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
60
+ roles: z.ZodArray<z.ZodEnum<{
61
+ author: "author";
62
+ owner: "owner";
63
+ admin: "admin";
64
+ editor: "editor";
65
+ member: "member";
66
+ guest: "guest";
67
+ }>>;
68
+ }, z.core.$strip>;
69
+ //# sourceMappingURL=access.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/access.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB;;;;;;;EAAoE,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAYjC,CAAC;AAEH,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;iBAIrC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAG9B,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { z } from "zod";
2
+ /** Built-in roles, ordered from most to least privileged. */
3
+ export const AccessRoleSchema = z.enum(["owner", "admin", "editor", "author", "member", "guest"]);
4
+ /**
5
+ * Namespaced capabilities derived from the project domain.
6
+ * Format: `<domain>:<action>[:<scope>]`.
7
+ */
8
+ export const AccessCapabilitySchema = z.enum([
9
+ "content:create",
10
+ "content:publish",
11
+ "content:edit:own",
12
+ "content:edit:any",
13
+ "content:delete:own",
14
+ "content:delete:any",
15
+ "conversations:use",
16
+ "conversations:moderate",
17
+ "members:manage",
18
+ "roles:assign",
19
+ "system:admin",
20
+ ]);
21
+ /** A role definition: slug, human label and the capabilities it grants. */
22
+ export const AccessRoleDefinitionSchema = z.object({
23
+ slug: AccessRoleSchema,
24
+ label: z.string().min(1),
25
+ capabilities: z.array(AccessCapabilitySchema),
26
+ });
27
+ /**
28
+ * Structural subject for access checks. Decoupled from the persistence layer:
29
+ * any object with an id and a role list can be checked (e.g. a Prisma
30
+ * `Account` row, a JWT payload, or a test fixture).
31
+ */
32
+ export const AccessSubjectSchema = z.object({
33
+ id: z.union([z.string(), z.number()]),
34
+ roles: z.array(AccessRoleSchema),
35
+ });
36
+ //# sourceMappingURL=access.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.schema.js","sourceRoot":"","sources":["../../src/schemas/access.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6DAA6D;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAElG;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5C,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,wBAAwB;IACxB,gBAAgB;IAChB,cAAc;IACd,cAAc;CACd,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;CAC7C,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CAChC,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { z } from "zod";
2
+ /** Role of a chat message in the OpenAI-compatible protocol. */
3
+ export declare const AiRoleSchema: z.ZodEnum<{
4
+ system: "system";
5
+ user: "user";
6
+ assistant: "assistant";
7
+ tool: "tool";
8
+ }>;
9
+ /** Function invocation requested by the model when using tools. */
10
+ export declare const AiFunctionCallSchema: z.ZodObject<{
11
+ name: z.ZodString;
12
+ arguments: z.ZodString;
13
+ }, z.core.$strip>;
14
+ /** A single tool call emitted by the model (OpenAI-compatible wire shape). */
15
+ export declare const AiToolCallSchema: z.ZodObject<{
16
+ id: z.ZodString;
17
+ type: z.ZodLiteral<"function">;
18
+ function: z.ZodObject<{
19
+ name: z.ZodString;
20
+ arguments: z.ZodString;
21
+ }, z.core.$strip>;
22
+ }, z.core.$strip>;
23
+ /**
24
+ * A chat message. `tool_calls` and `tool_call_id` use snake_case on purpose:
25
+ * they mirror the OpenAI-compatible protocol so messages pass through unchanged.
26
+ */
27
+ export declare const AiMessageSchema: z.ZodObject<{
28
+ role: z.ZodEnum<{
29
+ system: "system";
30
+ user: "user";
31
+ assistant: "assistant";
32
+ tool: "tool";
33
+ }>;
34
+ content: z.ZodNullable<z.ZodString>;
35
+ tool_calls: z.ZodOptional<z.ZodArray<z.ZodObject<{
36
+ id: z.ZodString;
37
+ type: z.ZodLiteral<"function">;
38
+ function: z.ZodObject<{
39
+ name: z.ZodString;
40
+ arguments: z.ZodString;
41
+ }, z.core.$strip>;
42
+ }, z.core.$strip>>>;
43
+ tool_call_id: z.ZodOptional<z.ZodString>;
44
+ name: z.ZodOptional<z.ZodString>;
45
+ }, z.core.$strip>;
46
+ /** Provider configuration for an OpenAI-compatible chat/agent endpoint. */
47
+ export declare const AiProviderConfigSchema: z.ZodObject<{
48
+ apiKey: z.ZodString;
49
+ baseUrl: z.ZodString;
50
+ model: z.ZodString;
51
+ systemPrompt: z.ZodOptional<z.ZodString>;
52
+ }, z.core.$strip>;
53
+ //# sourceMappingURL=ai.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/ai.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gEAAgE;AAChE,eAAO,MAAM,YAAY;;;;;EAAkD,CAAC;AAE5E,mEAAmE;AACnE,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB;;;;;;;iBAI3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;iBAM1B,CAAC;AAEH,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB;;;;;iBAMjC,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ /** Role of a chat message in the OpenAI-compatible protocol. */
3
+ export const AiRoleSchema = z.enum(["system", "user", "assistant", "tool"]);
4
+ /** Function invocation requested by the model when using tools. */
5
+ export const AiFunctionCallSchema = z.object({
6
+ name: z.string().min(1),
7
+ arguments: z.string(),
8
+ });
9
+ /** A single tool call emitted by the model (OpenAI-compatible wire shape). */
10
+ export const AiToolCallSchema = z.object({
11
+ id: z.string().min(1),
12
+ type: z.literal("function"),
13
+ function: AiFunctionCallSchema,
14
+ });
15
+ /**
16
+ * A chat message. `tool_calls` and `tool_call_id` use snake_case on purpose:
17
+ * they mirror the OpenAI-compatible protocol so messages pass through unchanged.
18
+ */
19
+ export const AiMessageSchema = z.object({
20
+ role: AiRoleSchema,
21
+ content: z.string().nullable(),
22
+ tool_calls: z.array(AiToolCallSchema).optional(),
23
+ tool_call_id: z.string().optional(),
24
+ name: z.string().optional(),
25
+ });
26
+ /** Provider configuration for an OpenAI-compatible chat/agent endpoint. */
27
+ export const AiProviderConfigSchema = z.object({
28
+ apiKey: z.string(),
29
+ baseUrl: z.string().min(1),
30
+ model: z.string().min(1),
31
+ /** Default system prompt. */
32
+ systemPrompt: z.string().optional(),
33
+ });
34
+ //# sourceMappingURL=ai.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.schema.js","sourceRoot":"","sources":["../../src/schemas/ai.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAE5E,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,QAAQ,EAAE,oBAAoB;CAC9B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAChD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,6BAA6B;IAC7B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { z } from "zod";
2
+ /** Native console methods used as log levels. */
3
+ export declare const LogLevelSchema: z.ZodEnum<{
4
+ error: "error";
5
+ log: "log";
6
+ warn: "warn";
7
+ }>;
8
+ /** HTTP verbs supported by the fetch facade. */
9
+ export declare const HttpMethodSchema: z.ZodEnum<{
10
+ GET: "GET";
11
+ POST: "POST";
12
+ PUT: "PUT";
13
+ DELETE: "DELETE";
14
+ PATCH: "PATCH";
15
+ }>;
16
+ /** Storage backends (Web Storage API). */
17
+ export declare const StorageTargetSchema: z.ZodEnum<{
18
+ localStorage: "localStorage";
19
+ sessionStorage: "sessionStorage";
20
+ }>;
21
+ /** Locales with first-class formatting support. */
22
+ export declare const LocaleSchema: z.ZodEnum<{
23
+ en: "en";
24
+ es: "es";
25
+ fr: "fr";
26
+ de: "de";
27
+ it: "it";
28
+ pt: "pt";
29
+ ja: "ja";
30
+ zh: "zh";
31
+ }>;
32
+ /** Color scheme modes. */
33
+ export declare const ThemeModeSchema: z.ZodEnum<{
34
+ system: "system";
35
+ light: "light";
36
+ dark: "dark";
37
+ }>;
38
+ /** Serialized error shape. */
39
+ export declare const SerializedErrorSchema: z.ZodObject<{
40
+ message: z.ZodString;
41
+ code: z.ZodNumber;
42
+ }, z.core.$strip>;
43
+ /** Safe error returned on non-2xx, network or validation failures. */
44
+ export declare const ApiErrorSchema: z.ZodObject<{
45
+ message: z.ZodString;
46
+ status: z.ZodNumber;
47
+ details: z.ZodOptional<z.ZodUnknown>;
48
+ }, z.core.$strip>;
49
+ //# sourceMappingURL=common.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iDAAiD;AACjD,eAAO,MAAM,cAAc;;;;EAAmC,CAAC;AAE/D,gDAAgD;AAChD,eAAO,MAAM,gBAAgB;;;;;;EAAoD,CAAC;AAElF,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB;;;EAA6C,CAAC;AAE9E,mDAAmD;AACnD,eAAO,MAAM,YAAY;;;;;;;;;EAA2D,CAAC;AAErF,0BAA0B;AAC1B,eAAO,MAAM,eAAe;;;;EAAsC,CAAC;AAEnE,8BAA8B;AAC9B,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,cAAc;;;;iBAIzB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ /** Native console methods used as log levels. */
3
+ export const LogLevelSchema = z.enum(["log", "warn", "error"]);
4
+ /** HTTP verbs supported by the fetch facade. */
5
+ export const HttpMethodSchema = z.enum(["GET", "POST", "PUT", "DELETE", "PATCH"]);
6
+ /** Storage backends (Web Storage API). */
7
+ export const StorageTargetSchema = z.enum(["localStorage", "sessionStorage"]);
8
+ /** Locales with first-class formatting support. */
9
+ export const LocaleSchema = z.enum(["en", "es", "fr", "de", "it", "pt", "ja", "zh"]);
10
+ /** Color scheme modes. */
11
+ export const ThemeModeSchema = z.enum(["light", "dark", "system"]);
12
+ /** Serialized error shape. */
13
+ export const SerializedErrorSchema = z.object({
14
+ message: z.string(),
15
+ code: z.number(),
16
+ });
17
+ /** Safe error returned on non-2xx, network or validation failures. */
18
+ export const ApiErrorSchema = z.object({
19
+ message: z.string(),
20
+ status: z.number(),
21
+ details: z.unknown().optional(),
22
+ });
23
+ //# sourceMappingURL=common.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.schema.js","sourceRoot":"","sources":["../../src/schemas/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iDAAiD;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/D,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAElF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAE9E,mDAAmD;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAErF,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEnE,8BAA8B;AAC9B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CAChB,CAAC,CAAC;AAEH,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC"}