@fuzdev/fuz_ui 0.191.4 → 0.193.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 (77) hide show
  1. package/dist/ApiIndex.svelte +3 -3
  2. package/dist/ApiModule.svelte +2 -2
  3. package/dist/ApiModulesList.svelte +3 -3
  4. package/dist/ColorSchemeInput.svelte +6 -6
  5. package/dist/ContextmenuLinkEntry.svelte +1 -1
  6. package/dist/ContextmenuRoot.svelte +10 -10
  7. package/dist/ContextmenuRootForSafariCompatibility.svelte +19 -19
  8. package/dist/ContextmenuSeparator.svelte +3 -3
  9. package/dist/ContextmenuSubmenu.svelte +3 -3
  10. package/dist/CopyToClipboard.svelte +3 -3
  11. package/dist/DeclarationLink.svelte +1 -1
  12. package/dist/Dialog.svelte +16 -16
  13. package/dist/Docs.svelte +12 -12
  14. package/dist/DocsFooter.svelte +2 -2
  15. package/dist/DocsList.svelte +7 -7
  16. package/dist/DocsMenu.svelte +4 -4
  17. package/dist/DocsMenu.svelte.d.ts.map +1 -1
  18. package/dist/DocsPageLinks.svelte +4 -4
  19. package/dist/DocsPrimaryNav.svelte +2 -2
  20. package/dist/DocsSecondaryNav.svelte +4 -4
  21. package/dist/DocsTertiaryNav.svelte +13 -13
  22. package/dist/DocsTertiaryNav.svelte.d.ts +1 -1
  23. package/dist/GithubLink.svelte +1 -1
  24. package/dist/Hashlink.svelte +2 -2
  25. package/dist/HueInput.svelte +5 -5
  26. package/dist/LibraryDetail.svelte +8 -8
  27. package/dist/LibrarySummary.svelte +4 -4
  28. package/dist/MdnLink.svelte +1 -1
  29. package/dist/ModuleLink.svelte +1 -1
  30. package/dist/PasteFromClipboard.svelte +1 -1
  31. package/dist/PendingAnimation.svelte +2 -2
  32. package/dist/PendingButton.svelte +2 -2
  33. package/dist/ProjectLinks.svelte +4 -4
  34. package/dist/Teleport.svelte +2 -2
  35. package/dist/ThemeInput.svelte +5 -5
  36. package/dist/TomeContent.svelte +3 -3
  37. package/dist/TomeHeader.svelte +15 -14
  38. package/dist/TomeHeader.svelte.d.ts.map +1 -1
  39. package/dist/TomeLink.svelte +13 -6
  40. package/dist/TomeLink.svelte.d.ts +1 -1
  41. package/dist/TomeLink.svelte.d.ts.map +1 -1
  42. package/dist/TomeSection.svelte +1 -1
  43. package/dist/TomeSectionHeader.svelte +3 -3
  44. package/dist/api_search.svelte.js +2 -2
  45. package/dist/contextmenu_state.svelte.d.ts.map +1 -1
  46. package/dist/contextmenu_state.svelte.js +11 -10
  47. package/dist/csp.d.ts +81 -90
  48. package/dist/csp.d.ts.map +1 -1
  49. package/dist/csp.js +145 -163
  50. package/dist/csp_of_fuzdev.d.ts +13 -3
  51. package/dist/csp_of_fuzdev.d.ts.map +1 -1
  52. package/dist/csp_of_fuzdev.js +23 -7
  53. package/dist/dimensions.svelte.d.ts.map +1 -1
  54. package/dist/dimensions.svelte.js +2 -2
  55. package/dist/library.svelte.d.ts +1 -1
  56. package/dist/library_generate.js +1 -1
  57. package/dist/style_variable_helpers.svelte.d.ts.map +1 -1
  58. package/dist/style_variable_helpers.svelte.js +1 -1
  59. package/dist/theme_state.svelte.d.ts.map +1 -1
  60. package/dist/theme_state.svelte.js +2 -2
  61. package/dist/tome.d.ts +8 -3
  62. package/dist/tome.d.ts.map +1 -1
  63. package/dist/tome.js +24 -8
  64. package/dist/tsdoc_helpers.d.ts +9 -0
  65. package/dist/tsdoc_helpers.d.ts.map +1 -1
  66. package/dist/tsdoc_helpers.js +15 -5
  67. package/package.json +5 -5
  68. package/src/lib/api_search.svelte.ts +2 -2
  69. package/src/lib/contextmenu_state.svelte.ts +11 -10
  70. package/src/lib/csp.ts +224 -258
  71. package/src/lib/csp_of_fuzdev.ts +24 -8
  72. package/src/lib/dimensions.svelte.ts +2 -2
  73. package/src/lib/library_generate.ts +1 -1
  74. package/src/lib/style_variable_helpers.svelte.ts +1 -1
  75. package/src/lib/theme_state.svelte.ts +2 -2
  76. package/src/lib/tome.ts +25 -8
  77. package/src/lib/tsdoc_helpers.ts +18 -7
@@ -60,7 +60,7 @@
60
60
  </script>
61
61
 
62
62
  <header>
63
- <svelte:element this={final_tag} {...rest} class:tome_section_header={true}>
63
+ <svelte:element this={final_tag} {...rest} class:tome-section-header={true}>
64
64
  <div class="flex:1">
65
65
  {#if children}
66
66
  {@render children()}
@@ -73,14 +73,14 @@
73
73
  </header>
74
74
 
75
75
  <style>
76
- .tome_section_header {
76
+ .tome-section-header {
77
77
  position: relative;
78
78
  display: flex;
79
79
  align-items: center;
80
80
  justify-content: space-between;
81
81
  }
82
82
  /* TODO @many how can this be done composably? currently using `:global` at usage site - ideally we'd continue to use :hover instead of JS */
83
- .tome_section_header:hover :global(.hashlink) {
83
+ .tome-section-header:hover :global(.hashlink) {
84
84
  opacity: 1;
85
85
  }
86
86
  </style>
@@ -2,7 +2,7 @@
2
2
  * Creates unified search state for the API index page (modules and declarations).
3
3
  */
4
4
  export const create_api_search = (library) => {
5
- let query = $state('');
5
+ let query = $state.raw('');
6
6
  // Module filtering
7
7
  const all_modules = $derived(library.modules_sorted);
8
8
  const filtered_modules = $derived.by(() => {
@@ -50,7 +50,7 @@ export const create_api_search = (library) => {
50
50
  * Creates search state for module-specific declaration lists.
51
51
  */
52
52
  export const create_module_declaration_search = (declarations) => {
53
- let query = $state('');
53
+ let query = $state.raw('');
54
54
  const all = $derived(declarations);
55
55
  const filtered = $derived.by(() => {
56
56
  const trimmed_query = query.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"contextmenu_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/contextmenu_state.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAGvD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAIlD,MAAM,MAAM,iBAAiB,GAC1B,OAAO,GAEP;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,GACvD;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,cAAc,CAAA;KAAC,CAAA;CAAC,GAC9E;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAA;CAAC,CAAC;AAE3D,MAAM,MAAM,yBAAyB,GAClC,IAAI,GACJ,SAAS,GACT,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAC,EAAE;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;AAElD,qBAAa,UAAU;IACtB,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IAE5C,QAAQ,CAAC,GAAG,EAAE,MAAM,cAAc,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC;IAEjC,QAAQ,EAAE,OAAO,CAAiB;IAClC,OAAO,EAAE,OAAO,CAAiB;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAgB;IAC5C,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAoB;gBAGrE,IAAI,EAAE,YAAY,GAAG,aAAa,EAClC,GAAG,EAAE,MAAM,cAAc,EACzB,QAAQ,GAAE,MAAM,OAAqB;CAMtC;AAED,qBAAa,YAAY;IACxB,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,EAAE,OAAO,CAAiB;IAClC,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAkB;gBAErC,IAAI,EAAE,YAAY,GAAG,aAAa,EAAE,KAAK,EAAE,MAAM;CAI7D;AAED,qBAAa,aAAa;IACzB,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,IAAI,OAAQ;IACrB,QAAQ,CAAC,KAAK,KAAK;IAEnB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAkB;CACjD;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAElG,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,UAAU,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAGpC,MAAM,EAAE,OAAO,CAAiB;IAChC,CAAC,EAAE,MAAM,CAAa;IACtB,CAAC,EAAE,MAAM,CAAa;IACtB,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAkB;IAC1D,KAAK,EAAE,MAAM,GAAG,SAAS,CAAY;IAMrC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAuB;IACxD,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAAkB;IAEtD,YAAY,UAAwC;IAEpD,UAAU,UAGP;IAEH,eAAe,UAGZ;IAEH,mBAAmB,UAGhB;IAEH,YAAY,UAKT;gBAES,OAAO,GAAE,uBAAsC;IAO3D,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAQlE,KAAK,IAAI,IAAI;IAMb,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI;IAYlD,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAqEvE,iBAAiB,IAAI,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAYxE;;OAEG;IAEH,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAY7B,iBAAiB,IAAI,IAAI;IAOzB,eAAe,IAAI,IAAI;IASvB,WAAW,IAAI,IAAI;IAUnB,eAAe,IAAI,IAAI;IAUvB,YAAY,IAAI,IAAI;IAMpB,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,cAAc,EAAE,QAAQ,GAAE,MAAM,OAAqB,GAAG,UAAU;IAWvF;;OAEG;IACH,WAAW,IAAI,YAAY;CAW3B;AASD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,CAAC,SAAS,iBAAiB,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EACnD,QAAQ,CAAC,GAAG,IAAI,GAAG,SAAS,KAC1B,UAAU,CAAC,WAAW,GAAG,UAAU,CAiBrC,CAAC;AAIH,MAAM,WAAW,sBAAsB;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAC5B,QAAQ,WAAW,GAAG,UAAU,EAChC,GAAG,MAAM,EACT,GAAG,MAAM,EACT,aAAa,gBAAgB,EAC7B,UAAU,sBAAsB,KAC9B,OA8BF,CAAC;AAmDF,eAAO,MAAM,mBAAmB;2CAAwB,gBAAgB;4BAAhB,gBAAgB;uBAAhB,gBAAgB,WAAhB,gBAAgB;CAAG,CAAC;AAE5E,eAAO,MAAM,2BAA2B;;;;CAAiC,CAAC;AAE1E,eAAO,MAAM,8BAA8B;;;CAAyC,CAAC;AAKrF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GAAI,YAAY,MAAM,OAAO,KAAG,IAuBzE,CAAC"}
1
+ {"version":3,"file":"contextmenu_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/contextmenu_state.svelte.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,9 @@ export class EntryState {
10
10
  menu;
11
11
  run;
12
12
  disabled;
13
- selected = $state(false);
14
- pending = $state(false);
15
- error_message = $state(null);
13
+ selected = $state.raw(false);
14
+ pending = $state.raw(false);
15
+ error_message = $state.raw(null);
16
16
  promise = $state.raw(null);
17
17
  constructor(menu, run, disabled = () => false) {
18
18
  this.menu = menu;
@@ -24,7 +24,7 @@ export class SubmenuState {
24
24
  is_menu = true;
25
25
  menu;
26
26
  depth;
27
- selected = $state(false);
27
+ selected = $state.raw(false);
28
28
  items = $state.raw([]);
29
29
  constructor(menu, depth) {
30
30
  this.menu = menu;
@@ -51,11 +51,11 @@ export class ContextmenuState {
51
51
  */
52
52
  has_custom_layout;
53
53
  // State for external consumers.
54
- opened = $state(false);
55
- x = $state(0);
56
- y = $state(0);
54
+ opened = $state.raw(false);
55
+ x = $state.raw(0);
56
+ y = $state.raw(0);
57
57
  params = $state.raw([]);
58
- error = $state();
58
+ error = $state.raw();
59
59
  // These arrays use immutable updates (reassignment, not mutation).
60
60
  // If you need reactivity, use `$contextmenu` in a reactive statement to react to all changes, and
61
61
  // then access the immutable `contextmenu.root_menu` and `contextmenu.selections`.
@@ -213,7 +213,7 @@ export class ContextmenuState {
213
213
  do {
214
214
  i.selected = true;
215
215
  new_selections.unshift(i);
216
- } while ((i = i.menu) && i.menu); // eslint-disable-line @typescript-eslint/no-unnecessary-condition
216
+ } while ((i = i.menu) && i.menu);
217
217
  this.selections = new_selections;
218
218
  }
219
219
  collapse_selected() {
@@ -259,6 +259,8 @@ export class ContextmenuState {
259
259
  }
260
260
  select_last() {
261
261
  const { items } = this.selections.at(-1)?.menu ?? this.root_menu;
262
+ if (!items.length)
263
+ return;
262
264
  this.select(items.at(-1));
263
265
  }
264
266
  /**
@@ -339,7 +341,6 @@ export const contextmenu_open = (target, x, y, contextmenu, options) => {
339
341
  // `navigator.vibrate()` works with `ContextmenuRoot` but gets blocked by some browsers
340
342
  // when used with `ContextmenuRootForSafariCompatibility` because its longpress
341
343
  // workaround triggers from a timeout rather than a direct user interaction.
342
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
343
344
  if (BROWSER && vibrate && navigator.vibrate) {
344
345
  navigator.vibrate(CONTEXTMENU_OPEN_VIBRATE_DURATION);
345
346
  }
package/dist/csp.d.ts CHANGED
@@ -1,121 +1,112 @@
1
- import type { ArrayElement, Defined } from '@fuzdev/fuz_util/types.js';
1
+ import type { Defined } from '@fuzdev/fuz_util/types.js';
2
+ /**
3
+ * Per-directive map of source arrays — accepted as `extend` layer entries.
4
+ * Excludes directives like `'upgrade-insecure-requests'` (boolean) that can't be appended to.
5
+ */
6
+ export type CspDirectiveSourcesMap = {
7
+ [K in CspDirective as CspDirectives[K] extends ReadonlyArray<any> ? K : never]?: CspDirectives[K];
8
+ };
9
+ /**
10
+ * Options for `create_csp_directives`.
11
+ *
12
+ * The pipeline runs in three stages:
13
+ * 1. `replace_defaults` sets the starting state (defaults to `csp_directive_value_defaults`).
14
+ * 2. `extend` appends sources per directive, layered left to right.
15
+ * 3. `overrides` replaces or removes per-directive values as a final pass.
16
+ */
2
17
  export interface CreateCspDirectivesOptions {
3
18
  /**
4
- * Override or transform specific directives.
5
- * Returning `null` or `undefined` from a transform function will remove the directive.
19
+ * Starting values per directive — *wholesale replaces* the library defaults.
20
+ *
21
+ * - Omitted: uses `csp_directive_value_defaults` (the curated library defaults).
22
+ * - Provided: exactly the directives you list, nothing else inherited.
23
+ * Anything not listed is **absent** from the starting state — including security defaults
24
+ * like `default-src: 'none'`. To tweak a single directive while keeping the rest, use
25
+ * `extend` (to append) or `overrides` (to replace per-key) instead.
26
+ * - `{}`: starts blank with no directives.
27
+ *
28
+ * `null` is not accepted (top-level or per-key) — omit the option to use library defaults,
29
+ * pass `{}` to start blank, or use `overrides` to remove a specific directive.
30
+ *
31
+ * Per-key `undefined` is treated as omitted (no-op).
6
32
  */
7
- directives?: {
8
- [K in CspDirective]?: CspDirectiveValue<K> | null | ((value: CspDirectiveValue<K>) => CspDirectiveValue<K> | null);
9
- };
10
- /**
11
- * Sources to include based on their trust levels.
12
- */
13
- trusted_sources?: Array<CspSourceSpec>;
33
+ replace_defaults?: Partial<typeof csp_directive_value_defaults>;
14
34
  /**
15
- * Override default values for specific directives,
16
- * merging with `value_defaults_base` (or replacing if that directive is null in the base).
35
+ * Sources to append per directive, layered left to right.
36
+ * Each entry is a partial map; values append to the result of `replace_defaults` and prior entries.
37
+ * Values are deduplicated within and across layers.
38
+ *
39
+ * Only array-typed directives can be extended (boolean directives like `upgrade-insecure-requests`
40
+ * are excluded by the type). Throws if any entry attempts to extend a directive whose current
41
+ * value is `['none']` — use `replace_defaults` or `overrides` to opt into default-deny directives.
42
+ *
43
+ * Per-key `undefined` is treated as omitted (no-op) — supports conditional patterns like
44
+ * `{'connect-src': is_prod ? [API_URL] : undefined}`. Per-key `null` throws — `extend` only
45
+ * appends; use `overrides: { 'X': null }` to remove a directive.
17
46
  */
18
- value_defaults?: Partial<typeof csp_directive_value_defaults>;
47
+ extend?: ReadonlyArray<CspDirectiveSourcesMap>;
19
48
  /**
20
- * Base values for directive defaults.
21
- * Set to `null` or `{}` to start with no defaults.
22
- * Defaults to `csp_directive_value_defaults`.
49
+ * Final-pass per-directive overrides. Replaces the directive value or removes it entirely.
50
+ * Pass `null` to remove a directive from the output.
51
+ *
52
+ * Highest precedence — wins over `replace_defaults` and `extend`.
53
+ *
54
+ * Per-key `undefined` is treated as omitted (no-op) — distinct from `null`, which removes.
23
55
  */
24
- value_defaults_base?: Partial<typeof csp_directive_value_defaults> | null;
25
- /**
26
- * Override trust requirements for specific directives,
27
- * merging with `required_trust_defaults_base` (or replacing if that directive is null in the base).
28
- */
29
- required_trust_defaults?: Partial<typeof csp_directive_required_trust_defaults>;
30
- /**
31
- * Base values for directive trust requirements.
32
- * Set to `null` or `{}` to start with no trust requirements.
33
- * Defaults to `csp_directive_required_trust_defaults`.
34
- */
35
- required_trust_defaults_base?: Partial<typeof csp_directive_required_trust_defaults> | null;
56
+ overrides?: {
57
+ [K in CspDirective]?: CspDirectiveValue<K> | null;
58
+ };
36
59
  }
37
60
  /**
38
- * This is designed for compatibility with SvelteKit
39
- * and maps to the `KitConfig` `directives` option.
40
- * The goal is to provide an ergonomic, modern, and safe API
41
- * for Content Security Policy (CSP) creation
42
- * that's simple to write and audit, and isn't error-prone.
61
+ * Builds a CSP directives map for use with SvelteKit's `kit.csp.directives` option.
43
62
  *
44
- * Things like validation and rendering to a string
45
- * are out of scope and left to SvelteKit.
63
+ * Restrictive by default; opt into specific permissions via `extend` (append) or
64
+ * `overrides` (replace). Designed to read as an audit log: every user-added source
65
+ * is named at exactly one site in the source code. Library defaults are inherited
66
+ * unless you opt out via `replace_defaults`.
67
+ *
68
+ * Validation:
69
+ * - Unknown directive keys throw.
70
+ * - Extending a `['none']` directive throws (use `replace_defaults`/`overrides` to opt in).
71
+ * - `null` for `replace_defaults` (top-level or per-key) throws — omit the option for library
72
+ * defaults, pass `{}` to start blank, or use `overrides` to remove a specific directive.
73
+ * - `null` per-key in `extend` throws (use `overrides` for removal).
74
+ * - `undefined` per-key is treated as omitted in all three stages.
75
+ * - Non-object entries in `extend` (`null`, `undefined`, primitives) throw with a friendly error.
76
+ * - Output is validated to ensure `'none'` never appears alongside other tokens,
77
+ * that no directive ends up with an empty array (use `['none']` to forbid all),
78
+ * and that every source array contains only strings.
79
+ *
80
+ * Things like rendering to a string are out of scope and left to SvelteKit.
46
81
  */
47
- export declare function create_csp_directives(options?: CreateCspDirectivesOptions): CspDirectives;
82
+ export declare const create_csp_directives: (options?: CreateCspDirectivesOptions) => CspDirectives;
48
83
  export type CspDirective = keyof CspDirectives;
49
84
  export declare const parse_csp_directive: (directive: unknown) => CspDirective | null;
50
85
  export type CspDirectiveValue<T extends CspDirective> = Defined<CspDirectives[T]>;
51
- export declare const csp_trust_levels: readonly ["low", "medium", "high"];
52
- /**
53
- * Numeric values for CSP trust levels. See `csp_trust_levels`.
54
- * Lower is less trusted.
55
- * Includes `undefined` in the type for safety.
56
- */
57
- export declare const csp_trust_level_value: Record<CspTrustLevel, number | undefined>;
86
+ export declare const COLOR_SCHEME_SCRIPT_HASH = "sha256-QOxqn7EUzb3ydF9SALJoJGWSvywW9R0AfTDSenB83Z8=";
58
87
  /**
59
- * Trust levels for CSP sources.
60
- *
61
- * With the base defaults, trust levels roughly correspond to:
88
+ * The library CSP directive defaults — directives enabled out of the box.
89
+ * Prioritizes safety but loosens around media and styles, relying on defense-in-depth.
90
+ * WASM compile is allowed (`'wasm-unsafe-eval'` on `script-src` and `worker-src`); `eval` is not.
62
91
  *
63
- * - `low` – Passive resources only (no script execution, no styling or UI control).
64
- * Examples: `img-src`, `font-src`.
65
- * - `medium` – Content that may affect layout, styling, or embed external browsing contexts,
66
- * but cannot directly run code in the page's JS execution environment or
67
- * perform other high-risk actions. Examples: `style-src`, `frame-src`, `frame-ancestors`.
68
- * - `high` – Sources that can execute code in the page's context or open powerful network
69
- * channels. Examples: `script-src`, `connect-src`, `child-src`.
70
- * - `null` – No trust. This is used for directives that don't support sources.
92
+ * Directives not listed here (`report-to`, `require-trusted-types-for`, `trusted-types`,
93
+ * `sandbox`) are intentionally absent by default — opt in via `replace_defaults` or `overrides`.
71
94
  *
95
+ * Customizable via `CreateCspDirectivesOptions.replace_defaults`.
72
96
  */
73
- export type CspTrustLevel = ArrayElement<typeof csp_trust_levels>;
74
- /**
75
- * Validates and extracts a CSP trust level from an unknown value.
76
- */
77
- export declare const parse_csp_trust_level: (trust: unknown) => CspTrustLevel | null;
78
- export interface CspSourceSpec {
79
- source: CspSource;
80
- trust?: CspTrustLevel;
81
- directives?: Array<CspDirective>;
82
- }
97
+ export declare const csp_directive_value_defaults: Partial<{
98
+ [K in CspDirective]: CspDirectiveValue<K>;
99
+ }>;
83
100
  export interface CspDirectiveSpec {
84
101
  name: CspDirective;
85
102
  fallback: Array<CspDirective> | null;
86
103
  fallback_of: Array<CspDirective> | null;
87
104
  }
88
- /**
89
- * Determines if a granted trust level is sufficient to satisfy a required trust level.
90
- *
91
- * Trust levels have the following hierarchy:
92
- * - 'high' sources can be used in high, medium, and low trust directives (highest privilege)
93
- * - 'medium' sources can be used in medium and low trust directives
94
- * - 'low' sources can only be used in low trust directives (lowest privilege)
95
- */
96
- export declare const is_csp_trusted: (required_trust: CspTrustLevel | null | undefined, granted_trust: CspTrustLevel | null | undefined) => boolean;
97
- export declare const COLOR_SCHEME_SCRIPT_HASH = "sha256-QOxqn7EUzb3ydF9SALJoJGWSvywW9R0AfTDSenB83Z8=";
98
- /**
99
- * The base CSP directive defaults.
100
- * Prioritizes safety but loosens around media and styles, relying on defense-in-depth.
101
- * Customizable via `CreateCspDirectivesOptions`.
102
- */
103
- export declare const csp_directive_value_defaults: Record<CspDirective, CspDirectiveValue<CspDirective> | null>;
104
- /**
105
- * Sources that meet this trust requirement are included for it by default.
106
- * If null, no trusted sources are added to the directive automatically.
107
- * Directives that don't support sources or default to `['none']` are null.
108
- *
109
- * Feedback is welcome, please see the issues - https://github.com/fuzdev/fuz_ui/issues
110
- */
111
- export declare const csp_directive_required_trust_defaults: Record<CspDirective, CspTrustLevel | null>;
112
105
  /**
113
106
  * Static data descriptors for the CSP directives.
114
107
  * Fuz excludes deprecated directives, so those are intentionally omitted,
115
108
  * but any newer missing directives are bugs.
116
109
  *
117
- * Could be co-located but is currently here to keep that module smaller.
118
- *
119
110
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy}
120
111
  */
121
112
  export declare const csp_directive_specs: Array<CspDirectiveSpec>;
package/dist/csp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"csp.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/csp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csp.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/csp.ts"],"names":[],"mappings":"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"}