@visulima/ono 1.0.12 → 2.0.0-alpha.10

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,113 @@
1
+ ## @visulima/ono [2.0.0-alpha.10](https://github.com/visulima/visulima/compare/@visulima/ono@2.0.0-alpha.9...@visulima/ono@2.0.0-alpha.10) (2026-04-09)
2
+
3
+ ## @visulima/ono [2.0.0-alpha.9](https://github.com/visulima/visulima/compare/@visulima/ono@2.0.0-alpha.8...@visulima/ono@2.0.0-alpha.9) (2026-04-08)
4
+
5
+ ### Bug Fixes
6
+
7
+ * **ono:** properly fix eslint errors in code ([ca1d1a2](https://github.com/visulima/visulima/commit/ca1d1a2aa4d4db69f2f38d2b85d8df5e32b906fb))
8
+ * **ono:** remove remaining eslint suppressions with proper code fixes ([ab20811](https://github.com/visulima/visulima/commit/ab20811c01df07a836303c4b4a478de79d1d338c))
9
+ * **ono:** resolve eslint errors ([4d8e045](https://github.com/visulima/visulima/commit/4d8e0455f2420bef082e3aa3f00e76461e8c17c8))
10
+ * **ono:** use min-dark/min-light shiki themes for code highlighting ([793a345](https://github.com/visulima/visulima/commit/793a345bbb9dc6520ce8d37a3488a83b1cbe8ce2))
11
+ * remove deprecated baseUrl and downlevelIteration from tsconfigs ([a708366](https://github.com/visulima/visulima/commit/a708366b5c3bc73cfde480a712ed397bd921fb93))
12
+
13
+
14
+ ### Dependencies
15
+
16
+ * **@visulima/error:** upgraded to 6.0.0-alpha.8
17
+ * **@visulima/path:** upgraded to 3.0.0-alpha.8
18
+
19
+ ## @visulima/ono [2.0.0-alpha.8](https://github.com/visulima/visulima/compare/@visulima/ono@2.0.0-alpha.7...@visulima/ono@2.0.0-alpha.8) (2026-03-26)
20
+
21
+ ### Features
22
+
23
+ * **web:** auto-generate packages page from workspace metadata ([623e520](https://github.com/visulima/visulima/commit/623e5207693a7fe720f5f2f179593a3654c880e3))
24
+
25
+
26
+ ### Dependencies
27
+
28
+ * **@visulima/error:** upgraded to 6.0.0-alpha.7
29
+ * **@visulima/path:** upgraded to 3.0.0-alpha.7
30
+
31
+ ## @visulima/ono [2.0.0-alpha.7](https://github.com/visulima/visulima/compare/@visulima/ono@2.0.0-alpha.6...@visulima/ono@2.0.0-alpha.7) (2026-03-26)
32
+
33
+ ### Bug Fixes
34
+
35
+ * **ono:** use workspace:* for internal [@visulima](https://github.com/visulima) deps ([2e4ff1a](https://github.com/visulima/visulima/commit/2e4ff1a1ae8f849f9fb4cf26e7b58446bb47c1f1))
36
+ * **web:** improve build setup with incremental stats caching and prod install ([fe33e75](https://github.com/visulima/visulima/commit/fe33e75827586779b4b3a0c6d57b39f889ee6207))
37
+
38
+
39
+ ### Dependencies
40
+
41
+ * **@visulima/error:** upgraded to 6.0.0-alpha.6
42
+ * **@visulima/path:** upgraded to 3.0.0-alpha.6
43
+
44
+ ## @visulima/ono [2.0.0-alpha.6](https://github.com/visulima/visulima/compare/@visulima/ono@2.0.0-alpha.5...@visulima/ono@2.0.0-alpha.6) (2026-03-06)
45
+
46
+ ### Bug Fixes
47
+
48
+ * **ono:** update packem to 2.0.0-alpha.54 ([e3bf220](https://github.com/visulima/visulima/commit/e3bf220c8813bb04a1d5061c62e1897010f5340b))
49
+
50
+
51
+ ### Dependencies
52
+
53
+ * **@visulima/error:** upgraded to 6.0.0-alpha.5
54
+ * **@visulima/path:** upgraded to 3.0.0-alpha.5
55
+
56
+ ## @visulima/ono [2.0.0-alpha.5](https://github.com/visulima/visulima/compare/@visulima/ono@2.0.0-alpha.4...@visulima/ono@2.0.0-alpha.5) (2026-01-17)
57
+
58
+
59
+ ### Dependencies
60
+
61
+ * **@visulima/error:** upgraded to 6.0.0-alpha.4
62
+
63
+ ## @visulima/ono [2.0.0-alpha.4](https://github.com/visulima/visulima/compare/@visulima/ono@2.0.0-alpha.3...@visulima/ono@2.0.0-alpha.4) (2025-12-27)
64
+
65
+ ### Bug Fixes
66
+
67
+ * **dependencies:** update hono and isomorphic-dompurify to versions 4.11.3 and 2.35.0 in package.json files ([0169fa9](https://github.com/visulima/visulima/commit/0169fa94d187c5e6a22e2ed48353124953996aee))
68
+ * **dependencies:** update hono and related packages to version 4.11.2 and update @hono/swagger-ui to version 0.5.3 ([5d3eed5](https://github.com/visulima/visulima/commit/5d3eed57d30d8216bf91484f35d39678938651fb))
69
+ * **ono:** update package files ([2e8a1dd](https://github.com/visulima/visulima/commit/2e8a1dd987c061f57e9e60c64a40245c499f8c98))
70
+
71
+
72
+ ### Dependencies
73
+
74
+ * **@visulima/error:** upgraded to 6.0.0-alpha.3
75
+ * **@visulima/path:** upgraded to 3.0.0-alpha.4
76
+
77
+ ## @visulima/ono [2.0.0-alpha.3](https://github.com/visulima/visulima/compare/@visulima/ono@2.0.0-alpha.2...@visulima/ono@2.0.0-alpha.3) (2025-12-11)
78
+
79
+ ### Bug Fixes
80
+
81
+ * update package OG images across multiple packages ([f08e4dd](https://github.com/visulima/visulima/commit/f08e4dd2b105ccb29c8412020a9c2be36d6c1e9e))
82
+
83
+
84
+ ### Dependencies
85
+
86
+ * **@visulima/error:** upgraded to 6.0.0-alpha.2
87
+ * **@visulima/path:** upgraded to 3.0.0-alpha.3
88
+
89
+ ## @visulima/ono [2.0.0-alpha.2](https://github.com/visulima/visulima/compare/@visulima/ono@2.0.0-alpha.1...@visulima/ono@2.0.0-alpha.2) (2025-12-11)
90
+
91
+ ### Bug Fixes
92
+
93
+ * update dependencies and improve error handling in error-debugging packages ([b95fea4](https://github.com/visulima/visulima/commit/b95fea4ef0e0a6777b3dd465603b1dd3c40aa4e8))
94
+
95
+ ## @visulima/ono [2.0.0-alpha.1](https://github.com/visulima/visulima/compare/@visulima/ono@1.0.12...@visulima/ono@2.0.0-alpha.1) (2025-12-07)
96
+
97
+ ### ⚠ BREAKING CHANGES
98
+
99
+ * change min node version to 22.13
100
+
101
+ ### Bug Fixes
102
+
103
+ * add new package image, fixed readme rendering on npm, fixed building of packages ([b790ba2](https://github.com/visulima/visulima/commit/b790ba253ea07fef83528fd822a678facf021b5f))
104
+ * update Node.js engine version requirement to >=22.13 in multiple package.json files for improved compatibility ([b828e9a](https://github.com/visulima/visulima/commit/b828e9aeaebfc798eecddccd90e6ec7560c6d36a))
105
+
106
+
107
+ ### Dependencies
108
+
109
+ * **@visulima/error:** upgraded to 6.0.0-alpha.1
110
+
1
111
  ## @visulima/ono [1.0.12](https://github.com/visulima/visulima/compare/@visulima/ono@1.0.11...@visulima/ono@1.0.12) (2025-11-13)
2
112
 
3
113
  ### Bug Fixes
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 visulima
3
+ Copyright (c) 2026 visulima
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,15 +1,24 @@
1
- <div align="center">
2
- <h3>Visulima ono (Oh No!)</h3>
3
- <p>
4
- A modern, delightful error overlay and inspector for Node.js servers and dev tooling.
5
- </p>
6
- </div>
1
+ <!-- START_PACKAGE_OG_IMAGE_PLACEHOLDER -->
2
+
3
+ <a href="https://www.anolilab.com/open-source" align="center">
4
+
5
+ <img src="__assets__/package-og.svg" alt="ono" />
6
+
7
+ </a>
8
+
9
+ <h3 align="center">Ono is an error-parsing library that pretty prints JavaScript errors on a web page or the terminal.</h3>
10
+
11
+ <!-- END_PACKAGE_OG_IMAGE_PLACEHOLDER -->
7
12
 
8
13
  <br />
9
14
 
10
15
  <div align="center">
11
16
 
12
- [![typescript-image]][typescript-url] [![npm-image]][npm-url] [![license-image]][license-url]
17
+ [![typescript-image][typescript-badge]][typescript-url]
18
+ [![mit licence][license-badge]][license]
19
+ [![npm downloads][npm-downloads-badge]][npm-downloads]
20
+ [![Chat][chat-badge]][chat]
21
+ [![PRs Welcome][prs-welcome-badge]][prs-welcome]
13
22
 
14
23
  </div>
15
24
 
@@ -605,13 +614,23 @@ If you would like to help take a look at the [list of issues](https://github.com
605
614
  - [Daniel Bannert](https://github.com/prisis)
606
615
  - [All Contributors](https://github.com/visulima/visulima/graphs/contributors)
607
616
 
617
+ ## Made with ❤️ at Anolilab
618
+
619
+ This is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. [Anolilab](https://www.anolilab.com/open-source) is a Development and AI Studio. Contact us at [hello@anolilab.com](mailto:hello@anolilab.com) if you need any help with these technologies or just want to say hi!
620
+
608
621
  ## License
609
622
 
610
- The visulima error is open-sourced software licensed under the [MIT][license-url]
623
+ The visulima error is open-sourced software licensed under the [MIT][license]
624
+
625
+ <!-- badges -->
611
626
 
612
- [typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript
613
- [typescript-url]: "typescript"
614
- [license-image]: https://img.shields.io/npm/l/@visulima/ono?color=blueviolet&style=for-the-badge
615
- [license-url]: LICENSE.md "license"
616
- [npm-image]: https://img.shields.io/npm/v/@visulima/ono/latest.svg?style=for-the-badge&logo=npm
617
- [npm-url]: https://www.npmjs.com/package/@visulima/ono/v/latest "npm"
627
+ [license-badge]: https://img.shields.io/npm/l/@visulima/ono?style=for-the-badge
628
+ [license]: https://github.com/visulima/visulima/blob/main/LICENSE
629
+ [npm-downloads-badge]: https://img.shields.io/npm/dm/@visulima/ono?style=for-the-badge
630
+ [npm-downloads]: https://www.npmjs.com/package/@visulima/ono
631
+ [prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
632
+ [prs-welcome]: https://github.com/visulima/visulima/blob/main/.github/CONTRIBUTING.md
633
+ [chat-badge]: https://img.shields.io/discord/932323359193186354.svg?style=for-the-badge
634
+ [chat]: https://discord.gg/TtFJY8xkFK
635
+ [typescript-badge]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript
636
+ [typescript-url]: https://www.typescriptlang.org/
@@ -1,3 +1,3 @@
1
- import Editors from "../../../../../../shared/utils/editors.d.ts";
1
+ import Editors from "../../../../../../../shared/utils/editors.d.ts";
2
2
  declare const editorSelector: (editor?: Editors) => string;
3
3
  export default editorSelector;
@@ -1,4 +1,4 @@
1
- import type Editors from "../../../../../../shared/utils/editors.d.ts";
1
+ import type Editors from "../../../../../../../shared/utils/editors.d.ts";
2
2
  import type { Theme } from "../../../types.d.ts";
3
3
  declare const headerBar: (options: Partial<{
4
4
  editor: Editors;
@@ -1,7 +1,7 @@
1
- var ie=Object.defineProperty;var T=(e,o)=>ie(e,"name",{value:o,configurable:!0});import{a as P,s as G,n as X,e as W,c as de,g as le,d as ce}from"../../packem_shared/clipboard-CI3XgYla.js";const q="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-braces%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M8%203H7a2%202%200%200%200-2%202v5a2%202%200%200%201-2%202%202%202%200%200%201%202%202v5c0%201.1.9%202%202%202h1%22%20%2F%3E%20%3Cpath%20d%3D%22M16%2021h1a2%202%200%200%200%202-2v-5c0-1.1.9-2%202-2a2%202%200%200%201-2-2V5a2%202%200%200%200-2-2h-1%22%20%2F%3E%20%3C%2Fsvg%3E",J="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-cookie%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M12%202a10%2010%200%201%200%2010%2010%204%204%200%200%201-5-5%204%204%200%200%201-5-5%22%20%2F%3E%20%3Cpath%20d%3D%22M8.5%208.5v.01%22%20%2F%3E%20%3Cpath%20d%3D%22M16%2015.5v.01%22%20%2F%3E%20%3Cpath%20d%3D%22M12%2012v.01%22%20%2F%3E%20%3Cpath%20d%3D%22M11%2017v.01%22%20%2F%3E%20%3Cpath%20d%3D%22M7%2014v.01%22%20%2F%3E%20%3C%2Fsvg%3E",S="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-file-text%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M6%2022a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h8a2.4%202.4%200%200%201%201.704.706l3.588%203.588A2.4%202.4%200%200%201%2020%208v12a2%202%200%200%201-2%202z%22%20%2F%3E%20%3Cpath%20d%3D%22M14%202v5a1%201%200%200%200%201%201h5%22%20%2F%3E%20%3Cpath%20d%3D%22M10%209H8%22%20%2F%3E%20%3Cpath%20d%3D%22M16%2013H8%22%20%2F%3E%20%3Cpath%20d%3D%22M16%2017H8%22%20%2F%3E%20%3C%2Fsvg%3E",I="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-globe%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20%2F%3E%20%3Cpath%20d%3D%22M12%202a14.5%2014.5%200%200%200%200%2020%2014.5%2014.5%200%200%200%200-20%22%20%2F%3E%20%3Cpath%20d%3D%22M2%2012h20%22%20%2F%3E%20%3C%2Fsvg%3E",R="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-user%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M19%2021v-2a4%204%200%200%200-4-4H9a4%204%200%200%200-4%204v2%22%20%2F%3E%20%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%224%22%20%2F%3E%20%3C%2Fsvg%3E";var ue=Object.defineProperty,ve=T((e,o)=>ue(e,"name",{value:o,configurable:!0}),"s$2");const O=ve(({label:e="Copy",successText:o="Copied!",targetId:r})=>{const c=P(r),h=P(e),x=G(e),l=G(o);return{html:`
1
+ var ie=Object.defineProperty;var T=(e,r)=>ie(e,"name",{value:r,configurable:!0});import{a as G,s as P,n as X,e as W,d as de,g as le,c as ce}from"../../packem_shared/clipboard-jWc8JBuB.js";const q="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-braces%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M8%203H7a2%202%200%200%200-2%202v5a2%202%200%200%201-2%202%202%202%200%200%201%202%202v5c0%201.1.9%202%202%202h1%22%20%2F%3E%20%3Cpath%20d%3D%22M16%2021h1a2%202%200%200%200%202-2v-5c0-1.1.9-2%202-2a2%202%200%200%201-2-2V5a2%202%200%200%200-2-2h-1%22%20%2F%3E%20%3C%2Fsvg%3E",I="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-cookie%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M12%202a10%2010%200%201%200%2010%2010%204%204%200%200%201-5-5%204%204%200%200%201-5-5%22%20%2F%3E%20%3Cpath%20d%3D%22M8.5%208.5v.01%22%20%2F%3E%20%3Cpath%20d%3D%22M16%2015.5v.01%22%20%2F%3E%20%3Cpath%20d%3D%22M12%2012v.01%22%20%2F%3E%20%3Cpath%20d%3D%22M11%2017v.01%22%20%2F%3E%20%3Cpath%20d%3D%22M7%2014v.01%22%20%2F%3E%20%3C%2Fsvg%3E",S="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-file-text%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M6%2022a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h8a2.4%202.4%200%200%201%201.704.706l3.588%203.588A2.4%202.4%200%200%201%2020%208v12a2%202%200%200%201-2%202z%22%20%2F%3E%20%3Cpath%20d%3D%22M14%202v5a1%201%200%200%200%201%201h5%22%20%2F%3E%20%3Cpath%20d%3D%22M10%209H8%22%20%2F%3E%20%3Cpath%20d%3D%22M16%2013H8%22%20%2F%3E%20%3Cpath%20d%3D%22M16%2017H8%22%20%2F%3E%20%3C%2Fsvg%3E",J="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-globe%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20%2F%3E%20%3Cpath%20d%3D%22M12%202a14.5%2014.5%200%200%200%200%2020%2014.5%2014.5%200%200%200%200-20%22%20%2F%3E%20%3Cpath%20d%3D%22M2%2012h20%22%20%2F%3E%20%3C%2Fsvg%3E",R="data:image/svg+xml;charset=utf-8,%3Csvg%20class%3D%22lucide%20lucide-user%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M19%2021v-2a4%204%200%200%200-4-4H9a4%204%200%200%200-4%204v2%22%20%2F%3E%20%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%224%22%20%2F%3E%20%3C%2Fsvg%3E";var ve=Object.defineProperty,ue=T((e,r)=>ve(e,"name",{value:r,configurable:!0}),"s$2");const O=ue(({label:e="Copy",successText:r="Copied!",targetId:o})=>{const c=G(o),m=G(e),x=P(e),l=P(r);return{html:`
2
2
  <button
3
3
  type="button"
4
- aria-label="${h}"
4
+ aria-label="${m}"
5
5
  title="${x}"
6
6
  class="ono-copy-btn relative inline-flex justify-center items-center size-8 rounded-[var(--ono-radius-md)] shadow-[var(--ono-elevation-1)] bg-[var(--ono-surface)] text-[var(--ono-text)] hover:bg-[var(--ono-hover-overlay)] focus:outline-hidden focus:bg-[var(--ono-hover-overlay)] disabled:opacity-50 disabled:pointer-events-none cursor-pointer"
7
7
  data-target="#${c}"
@@ -11,19 +11,19 @@ var ie=Object.defineProperty;var T=(e,o)=>ie(e,"name",{value:o,configurable:!0})
11
11
  <span class="ono-copy-success dui hidden size-4 text-[var(--ono-red-orange)]" style="-webkit-mask-image: url('${W}'); mask-image: url('${W}')"></span>
12
12
  <span class="sr-only">${x}</span>
13
13
  </button>
14
- `}},"copyButton");var pe=Object.defineProperty,j=T((e,o)=>pe(e,"name",{value:o,configurable:!0}),"s$1");const xe=typeof globalThis<"u"&&"Request"in globalThis,Z=j((e,o)=>o in e,"hasProperty"),V=j((e,o)=>Z(e,o)&&typeof e[o]=="function","hasMethod"),ee=j((e,o)=>Z(e,o)&&typeof e[o]=="string","hasStringProperty"),me=j(e=>xe&&V(e,"clone"),"isNativeRequest"),be=j(e=>V(e,"on")&&ee(e,"method"),"isIncomingMessage");j(e=>!me(e)&&!be(e)&&ee(e,"method"),"isExpressRequest");const L=j(e=>typeof e=="object"&&e!==null&&V(e,"forEach")&&V(e,"get"),"isHeadersObject");var ge=Object.defineProperty,a=T((e,o)=>ge(e,"name",{value:o,configurable:!0}),"s");const he=[/authorization/i,/cookie/i,/set-cookie/i,/x-api-key/i,/api-key/i,/x-auth/i,/token/i,/secret/i],H=a((e,o)=>{if(typeof e=="object"&&e!==null&&o in e)return e[o]},"safeGetProperty"),p=a((e,o)=>{const r=H(e,o);return typeof r=="function"?r:void 0},"safeGetMethod"),A=a((e,o)=>{const r=H(e,o);return typeof r=="string"?r:void 0},"safeGetString"),fe=a((e,o)=>o&&o.some(r=>r.toLowerCase()===e.toLowerCase())?!0:he.some(r=>r.test(e)),"isSensitiveHeader"),ye=a(e=>{if(!e)return[];if(L(e)){const o=p(e,"entries");if(o)return[...o()].map(([r,c])=>[r,c])}return Object.entries(e)},"normalizeHeadersToEntries"),we=a((e,o)=>!o||o.length===0?!0:o.some(r=>r.toLowerCase()===e.toLowerCase()),"shouldIncludeHeader"),$e=a((e,o)=>!e||!o?e:Array.isArray(e)?e.map(()=>o):o,"maskHeaderValue"),ke=a((e,o,r,c="[masked]")=>{const h=ye(e);if(h.length===0)return;const x={};for(const[l,s]of h){if(!we(l,o)||s===void 0)continue;const m=fe(l.toLowerCase(),r)?c:void 0;x[l]=$e(s,m)}return x},"filterHeaders"),Y=a(e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},"safeJsonStringify"),De=a(e=>{if(!e)return{};const o={};return e.split(";").map(r=>r.trim()).filter(Boolean).forEach(r=>{const c=r.indexOf("=");if(c===-1)return;const h=r.slice(0,c).trim(),x=r.slice(c+1).trim();o[h]=x}),o},"parseCookieString"),Ce=a(async(e,o)=>{try{const r=String(A(e,"method")||"GET").toUpperCase();if(r==="GET"||r==="HEAD")return;const c=H(e,"headers"),h=L(c)?p(c,"get")?.("content-type")||"":String(c?.["content-type"]||""),x=p(e,"clone"),l=x?x():e;if(p(l,"json")&&String(h).includes("application/json"))try{const s=p(l,"json");return s?await s():void 0}catch{try{const s=p(l,"text");return s?await s()||"":void 0}catch{return}}if(p(l,"text"))try{const s=p(l,"text");return s?await s():void 0}catch{return}return p(e,"on")?await new Promise(s=>{try{let m="",N=!1;const C=p(e,"setEncoding");C&&C("utf8");const k=a(y=>{if(N)return;const M=typeof y=="string"?y:String(y);if(m.length+M.length>o){const D=Math.max(0,o-m.length);m+=M.slice(0,D),N=!0,b(),s(`${m}
15
- … [truncated]`);return}m+=M},"onData"),E=a(()=>{b(),s(m||void 0)},"onEnd"),B=a(()=>{b(),s(void 0)},"onError"),b=a(()=>{const y=p(e,"off");y?.("data",k),y?.("end",E),y?.("error",B)},"cleanup"),F=p(e,"on");F?.("data",k),F?.("end",E),F?.("error",B)}catch{s(void 0)}}):void 0}catch{return}},"readRequestBody"),Fe=a(async(e,o)=>{const r=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,11)}`,{headerAllowlist:c,headerDenylist:h,maskValue:x="[masked]"}=o||{},l=ke(H(e,"headers"),c,h,x),s=a(t=>{if(t!==void 0)return Array.isArray(t)?t.join(", "):t},"toSingle"),m=a(t=>`'${String(t).replaceAll("'",String.raw`'\''`)}'`,"shellQuote"),N=a(t=>{if(!t)return;const n=[];for(const[i,d]of Object.entries(t)){const g=s(d)??"";n.push(`${i}=${g}`)}return n.length>0?n.join("; "):void 0},"buildCookieHeader");let C;const k=H(e,"headers");if(L(k)){const t=p(k,"get")?.("cookie");C=typeof t=="string"?t:void 0}else if(Array.isArray(k?.cookie))C=k?.cookie?.[0];else{const t=k?.cookie;C=typeof t=="string"?t:void 0}const E=De(C),B=Math.max(0,Number(o?.previewBytes??64e3)),b=await Ce(e,B),F=a(()=>{const t=String(A(e,"method")||"GET").toUpperCase(),n=String(A(e,"url")||""),i=[],d={};if(l)for(const[w,$]of Object.entries(l)){const Q=s($);Q!==void 0&&(d[w]=Q)}const g=N(E);g&&!d.cookie&&(d.Cookie=g);for(const[w,$]of Object.entries(d))i.push(`-H ${m(`${w}: ${$}`)}`);let v="";if(e&&b!==void 0&&b!==null&&t!=="GET"){const w=typeof b=="string"?b:Y(b);v=`--data ${m(w)}`}const u=["curl","-X",t];return i.length>0&&u.push("\\",` ${i.join(` \\
16
- `)}`),v&&u.push("\\",` ${v}`),u.push("\\",` ${m(n)}`),u.join(" ")},"buildCurl")(),y=await(await de()).codeToHtml(F,{lang:"bash",themes:{dark:"github-dark-default",light:"github-light"}}),M=le(y),D=a(t=>P(t),"attributeEscape"),f=a(t=>G(t),"escapeHtml"),U=a(t=>!t||Object.keys(t).length===0?'<div class="px-4 pb-4 pt-2 text-xs text-[var(--ono-text-muted)]">(empty)</div>':`<div class="px-4 pb-4">${Object.entries(t).map(([n,i])=>{const d=Array.isArray(i)?i.join(", "):i;return`<div class="grid grid-cols-[200px_1fr] gap-3 items-start py-2 border-b border-[var(--ono-border)]">
17
- <div class="text-[11px] uppercase tracking-wide text-[var(--ono-text-muted)]">${f(n)}</div>
18
- <div class="text-sm break-words whitespace-pre-wrap text-[var(--ono-text)]">${f(String(d))}</div>
19
- </div>`}).join("")}</div>`,"renderKeyValueTable"),te=a(t=>`<span class="text-[var(--ono-red-orange)]">${typeof t=="string"?`"${f(t)}"`:String(t)}</span>`,"renderPrimitiveValue"),oe=a(t=>`<span class="italic text-[var(--ono-text-muted)]">${t===null?"null":"undefined"}</span>`,"renderNullishValue"),re=a((t,n)=>{if(Object.keys(t).length===0)return'<span class="italic text-[var(--ono-text-muted)]">(empty object)</span>';if(n>=3)return`<span class="italic text-[var(--ono-text-muted)]">{Object with ${Object.keys(t).length} keys}</span>`;const i=Object.entries(t).slice(0,10).map(([g,v])=>{const u=z(v,n+1);return`
14
+ `}},"copyButton");var pe=Object.defineProperty,j=T((e,r)=>pe(e,"name",{value:r,configurable:!0}),"s$1");const me=typeof globalThis<"u"&&"Request"in globalThis,Z=j((e,r)=>r in e,"hasProperty"),V=j((e,r)=>Z(e,r)&&typeof e[r]=="function","hasMethod"),ee=j((e,r)=>Z(e,r)&&typeof e[r]=="string","hasStringProperty"),xe=j(e=>me&&V(e,"clone"),"isNativeRequest"),be=j(e=>V(e,"on")&&ee(e,"method"),"isIncomingMessage");j(e=>!xe(e)&&!be(e)&&ee(e,"method"),"isExpressRequest");const L=j(e=>typeof e=="object"&&e!==null&&V(e,"forEach")&&V(e,"get"),"isHeadersObject");var ge=Object.defineProperty,a=T((e,r)=>ge(e,"name",{value:r,configurable:!0}),"s");const he=[/authorization/i,/cookie/i,/set-cookie/i,/x-api-key/i,/api-key/i,/x-auth/i,/token/i,/secret/i],H=a((e,r)=>{if(typeof e=="object"&&e!==null&&r in e)return e[r]},"safeGetProperty"),p=a((e,r)=>{const o=H(e,r);return typeof o=="function"?o:void 0},"safeGetMethod"),A=a((e,r)=>{const o=H(e,r);return typeof o=="string"?o:void 0},"safeGetString"),fe=a((e,r)=>r?.some(o=>o.toLowerCase()===e.toLowerCase())?!0:he.some(o=>o.test(e)),"isSensitiveHeader"),ye=a(e=>{if(!e)return[];if(L(e)){const r=p(e,"entries");if(r){const o=r();return Array.from(o,([c,m])=>[c,m])}}return Object.entries(e)},"normalizeHeadersToEntries"),$e=a((e,r)=>!r||r.length===0?!0:r.some(o=>o.toLowerCase()===e.toLowerCase()),"shouldIncludeHeader"),we=a((e,r)=>!e||!r?e:Array.isArray(e)?e.map(()=>r):r,"maskHeaderValue"),ke=a((e,r,o,c="[masked]")=>{const m=ye(e);if(m.length===0)return;const x={};return m.forEach(([l,n])=>{if(!$e(l,r)||n===void 0)return;const b=fe(l.toLowerCase(),o)?c:void 0;x[l]=we(n,b)}),x},"filterHeaders"),Y=a(e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},"safeJsonStringify"),De=a(e=>{if(!e)return{};const r={};return e.split(";").map(o=>o.trim()).filter(Boolean).forEach(o=>{const c=o.indexOf("=");if(c===-1)return;const m=o.slice(0,c).trim(),x=o.slice(c+1).trim();r[m]=x}),r},"parseCookieString"),Ce=a(async(e,r)=>{try{const o=(A(e,"method")??"GET").toUpperCase();if(o==="GET"||o==="HEAD")return;const c=H(e,"headers"),m=L(c)?p(c,"get")?.("content-type")??"":String(c["content-type"]??""),x=p(e,"clone"),l=x?x():e;if(p(l,"json")&&m.includes("application/json"))try{const n=p(l,"json");return n?await n():void 0}catch{try{const n=p(l,"text");return n?await n()??"":void 0}catch{return}}if(p(l,"text"))try{const n=p(l,"text");return n?await n():void 0}catch{return}return p(e,"on")?await new Promise(n=>{try{let b="",B=!1;const D=p(e,"setEncoding");D&&D("utf8");const C=a(y=>{if(B)return;const M=typeof y=="string"?y:String(y);if(b.length+M.length>r){const k=Math.max(0,r-b.length);b+=M.slice(0,k),B=!0,h(),n(`${b}
15
+ … [truncated]`);return}b+=M},"onData"),E=a(()=>{h(),n(b||void 0)},"onEnd"),N=a(()=>{h(),n(void 0)},"onError"),h=a(()=>{const y=p(e,"off");y?.("data",C),y?.("end",E),y?.("error",N)},"cleanup"),F=p(e,"on");F?.("data",C),F?.("end",E),F?.("error",N)}catch{n(void 0)}}):void 0}catch{return}},"readRequestBody"),Fe=a(async(e,r)=>{const o=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,11)}`,{headerAllowlist:c,headerDenylist:m,maskValue:x="[masked]"}=r,l=ke(H(e,"headers"),c,m,x),n=a(t=>{if(t!==void 0)return Array.isArray(t)?t.join(", "):t},"toSingle"),b=a(t=>`'${t.replaceAll("'",String.raw`'\''`)}'`,"shellQuote"),B=a(t=>{if(!t)return;const s=[];return Object.entries(t).forEach(([i,d])=>{const g=n(d)??"";s.push(`${i}=${g}`)}),s.length>0?s.join("; "):void 0},"buildCookieHeader");let D;const C=H(e,"headers");if(L(C)){const t=p(C,"get")?.("cookie");D=typeof t=="string"?t:void 0}else if(C!==void 0){const t=C;if(Array.isArray(t.cookie))D=t.cookie[0];else{const s=t.cookie;D=typeof s=="string"?s:void 0}}const E=De(D),N=Math.max(0,r.previewBytes??64e3),h=await Ce(e,N),F=a(()=>{const t=(A(e,"method")??"GET").toUpperCase(),s=A(e,"url")??"",i=[],d={};l&&Object.entries(l).forEach(([$,w])=>{const Q=n(w);Q!==void 0&&(d[$]=Q)});const g=B(E);g&&!d.cookie&&(d.Cookie=g),Object.entries(d).forEach(([$,w])=>{i.push(`-H ${b(`${$}: ${w}`)}`)});let u="";if(h!=null&&t!=="GET"){const $=typeof h=="string"?h:Y(h);u=`--data ${b($)}`}const v=["curl","-X",t];return i.length>0&&v.push("\\",` ${i.join(` \\
16
+ `)}`),u&&v.push("\\",` ${u}`),v.push("\\",` ${b(s)}`),v.join(" ")},"buildCurl")(),y=(await de(["bash"])).codeToHtml(F,{lang:"bash",themes:{dark:"min-dark",light:"min-light"}}),M=le(y),k=a(t=>G(t),"attributeEscape"),f=a(t=>P(t),"escapeHtml"),U=a(t=>!t||Object.keys(t).length===0?'<div class="px-4 pb-4 pt-2 text-xs text-[var(--ono-text-muted)]">(empty)</div>':`<div class="px-4 pb-4">${Object.entries(t).map(([s,i])=>{const d=Array.isArray(i)?i.join(", "):i;return`<div class="grid grid-cols-[200px_1fr] gap-3 items-start py-2 border-b border-[var(--ono-border)]">
17
+ <div class="text-[11px] uppercase tracking-wide text-[var(--ono-text-muted)]">${f(s)}</div>
18
+ <div class="text-sm break-words whitespace-pre-wrap text-[var(--ono-text)]">${f(d)}</div>
19
+ </div>`}).join("")}</div>`,"renderKeyValueTable"),te=a(t=>`<span class="text-[var(--ono-red-orange)]">${typeof t=="string"?`"${f(t)}"`:String(t)}</span>`,"renderPrimitiveValue"),re=a(t=>`<span class="italic text-[var(--ono-text-muted)]">${t===null?"null":"undefined"}</span>`,"renderNullishValue"),oe=a((t,s)=>{if(Object.keys(t).length===0)return'<span class="italic text-[var(--ono-text-muted)]">(empty object)</span>';if(s>=3)return`<span class="italic text-[var(--ono-text-muted)]">{Object with ${String(Object.keys(t).length)} keys}</span>`;const i=Object.entries(t).slice(0,10).map(([g,u])=>{const v=z(u,s+1);return`
20
20
  <div class="ml-4 pl-3 py-1 border-l-2 border-[var(--ono-border)]">
21
- <span class="font-medium text-[var(--ono-text)]">${f(g)}:</span> ${u}
22
- </div>`}).join(""),d=Object.keys(t).length>10?`<div class="ml-4 italic text-[var(--ono-text-muted)]">... and ${Object.keys(t).length-10} more keys</div>`:"";return`<div class="space-y-1">${i}${d}</div>`},"renderObjectValue"),z=a((t,n=0)=>{if(t==null)return oe(t);if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")return te(t);if(Array.isArray(t)){if(t.length===0)return'<span class="italic text-[var(--ono-text-muted)]">(empty array)</span>';if(n>=3)return`<span class="italic text-[var(--ono-text-muted)]">[Array with ${t.length} items]</span>`;const i=t.slice(0,10).map((g,v)=>{const u=z(g,n+1);return`
21
+ <span class="font-medium text-[var(--ono-text)]">${f(g)}:</span> ${v}
22
+ </div>`}).join(""),d=Object.keys(t).length>10?`<div class="ml-4 italic text-[var(--ono-text-muted)]">... and ${String(Object.keys(t).length-10)} more keys</div>`:"";return`<div class="space-y-1">${i}${d}</div>`},"renderObjectValue"),z=a((t,s=0)=>{if(t==null)return re(t);if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")return te(t);if(Array.isArray(t)){if(t.length===0)return'<span class="italic text-[var(--ono-text-muted)]">(empty array)</span>';if(s>=3)return`<span class="italic text-[var(--ono-text-muted)]">[Array with ${String(t.length)} items]</span>`;const i=t.slice(0,10).map((g,u)=>{const v=z(g,s+1);return`
23
23
  <div class="ml-4 pl-3 py-1 border-l-2 border-[var(--ono-border)]">
24
- <span class="text-xs text-[var(--ono-text-muted)]">[${v}]:</span> ${u}
25
- </div>`}).join(""),d=t.length>10?`<div class="ml-4 text-sm italic text-[var(--ono-text-muted)]">... and ${t.length-10} more items</div>`:"";return`<div class="space-y-1">${i}${d}</div>`}return typeof t=="object"?re(t,n):`<span class="text-[var(--ono-text)]">${f(String(t))}</span>`},"renderValue"),_=a(t=>!t||Object.keys(t).length===0?'<div class="px-4 pb-4 pt-2 text-xs text-[var(--ono-text-muted)]">(empty)</div>':`<div class="px-4 pb-4">${Object.entries(t).map(([n,i])=>{const d=z(i);return`<div class="grid grid-cols-[200px_1fr] gap-3 items-start py-2 border-b border-[var(--ono-border)]">
26
- <div class="text-[11px] uppercase tracking-wide text-[var(--ono-text-muted)]">${f(n)}</div>
24
+ <span class="text-xs text-[var(--ono-text-muted)]">[${String(u)}]:</span> ${v}
25
+ </div>`}).join(""),d=t.length>10?`<div class="ml-4 text-sm italic text-[var(--ono-text-muted)]">... and ${String(t.length-10)} more items</div>`:"";return`<div class="space-y-1">${i}${d}</div>`}return typeof t=="object"?oe(t,s):`<span class="text-[var(--ono-text)]">${f(typeof t=="symbol"?t.toString():String(t))}</span>`},"renderValue"),_=a(t=>!t||Object.keys(t).length===0?'<div class="px-4 pb-4 pt-2 text-xs text-[var(--ono-text-muted)]">(empty)</div>':`<div class="px-4 pb-4">${Object.entries(t).map(([s,i])=>{const d=z(i);return`<div class="grid grid-cols-[200px_1fr] gap-3 items-start py-2 border-b border-[var(--ono-border)]">
26
+ <div class="text-[11px] uppercase tracking-wide text-[var(--ono-text-muted)]">${f(s)}</div>
27
27
  <div class="text-sm break-words text-[var(--ono-text)]">${d}</div>
28
28
  </div>`}).join("")}</div>`,"renderObjectTable"),ae=a(t=>t==null?'<div class="px-4 pb-4 pt-2 text-xs text-[var(--ono-text-muted)]">(no body)</div>':typeof t=="string"?t.trim()===""?'<div class="px-4 pb-4 pt-2 text-xs text-[var(--ono-text-muted)]">(empty string)</div>':`<div class="px-4 pb-4">
29
29
  <div class="text-sm break-words whitespace-pre-wrap font-mono p-3 rounded border border-[var(--ono-border)] bg-[var(--ono-surface-muted)] text-[var(--ono-text)]">${f(t)}</div>
@@ -32,29 +32,29 @@ var ie=Object.defineProperty;var T=(e,o)=>ie(e,"name",{value:o,configurable:!0})
32
32
  </div>`:Object.keys(t).length===0?'<div class="px-4 pb-4 pt-2 text-xs text-[var(--ono-text-muted)]">(empty object)</div>':`<div class="px-4 pb-4">
33
33
  <div class="text-sm break-words p-3 rounded border border-[var(--ono-border)] bg-[var(--ono-surface-muted)] text-[var(--ono-text)]">${z(t)}</div>
34
34
  </div>`:`<div class="px-4 pb-4">
35
- <div class="text-sm break-words whitespace-pre-wrap font-mono p-3 rounded border border-[var(--ono-border)] bg-[var(--ono-surface-muted)] text-[var(--ono-text)]">${f(String(t))}</div>
36
- </div>`,"renderBodyContent"),K=a(t=>{if(!t)return{content:"",sidebar:""};const n=new Set(["request"]),i=Object.keys(t).filter(v=>!n.has(v));if(i.length===0)return{content:"",sidebar:""};let d="",g="";return i.forEach(v=>{const u=t[v];if(u&&typeof u=="object"&&(Array.isArray(u)||Object.keys(u).length>0)){const w=v.charAt(0).toUpperCase()+v.slice(1),$=`context-${v}`;d+=`
35
+ <div class="text-sm break-words whitespace-pre-wrap font-mono p-3 rounded border border-[var(--ono-border)] bg-[var(--ono-surface-muted)] text-[var(--ono-text)]">${f(typeof t=="symbol"?t.toString():String(t))}</div>
36
+ </div>`,"renderBodyContent"),K=a(t=>{if(!t)return{content:"",sidebar:""};const s=new Set(["request"]),i=Object.keys(t).filter(u=>!s.has(u));if(i.length===0)return{content:"",sidebar:""};let d="",g="";return i.forEach(u=>{const v=t[u];if(v&&typeof v=="object"&&(Array.isArray(v)||Object.keys(v).length>0)){const $=u.charAt(0).toUpperCase()+u.slice(1),w=`context-${u}`;d+=`
37
37
  <div>
38
- <div class="text-[11px] uppercase tracking-wide mb-2 text-[var(--ono-text-muted)]">${w}</div>
38
+ <div class="text-[11px] uppercase tracking-wide mb-2 text-[var(--ono-text-muted)]">${$}</div>
39
39
  <ul class="space-y-1 text-sm">
40
40
  <li>
41
- <a href="#${$}" class="flex items-center gap-2 px-2 py-1 rounded text-[var(--ono-text)] hover:bg-[var(--ono-surface-muted)] ono-scrollspy-active:bg-[var(--ono-surface-muted)] ono-scrollspy-active:font-semibold">
41
+ <a href="#${w}" class="flex items-center gap-2 px-2 py-1 rounded text-[var(--ono-text)] hover:bg-[var(--ono-surface-muted)] ono-scrollspy-active:bg-[var(--ono-surface-muted)] ono-scrollspy-active:font-semibold">
42
42
  <span class="dui size-3" style="-webkit-mask-image:url('${S}'); mask-image:url('${S}')"></span>
43
- <span>${w}</span>
43
+ <span>${$}</span>
44
44
  </a>
45
45
  </li>
46
46
  </ul>
47
47
  </div>`,g+=`
48
- <input type="hidden" id="clipboard-${$}-${r}" value="${D(JSON.stringify(u))}">
49
- <section id="${$}" class="mb-4 rounded-[var(--ono-radius-lg)] shadow-[var(--ono-elevation-1)] overflow-hidden bg-[var(--ono-surface)] border border-[var(--ono-border)]">
48
+ <input type="hidden" id="clipboard-${w}-${o}" value="${k(JSON.stringify(v))}">
49
+ <section id="${w}" class="mb-4 rounded-[var(--ono-radius-lg)] shadow-[var(--ono-elevation-1)] overflow-hidden bg-[var(--ono-surface)] border border-[var(--ono-border)]">
50
50
  <div class="px-4 py-2 flex items-center gap-2 bg-[var(--ono-surface-muted)] border-b border-[var(--ono-border)]">
51
- <h3 class="text-sm font-semibold text-[var(--ono-text)]">${w}</h3>
51
+ <h3 class="text-sm font-semibold text-[var(--ono-text)]">${$}</h3>
52
52
  <div class="grow"></div>
53
- <a href="#${$}" class="text-xs text-[var(--ono-text-muted)]" aria-label="Anchor">#</a>
54
- ${O({label:"Copy JSON",targetId:`clipboard-${$}-${r}`}).html}
53
+ <a href="#${w}" class="text-xs text-[var(--ono-text-muted)]" aria-label="Anchor">#</a>
54
+ ${O({label:"Copy JSON",targetId:`clipboard-${w}-${o}`}).html}
55
55
  </div>
56
- <div class="max-w-full overflow-auto mt-2">${_(u)}</div>
57
- </section>`}}),{content:g,sidebar:d}},"generateContextSections")(o.context),se=`
56
+ <div class="max-w-full overflow-auto mt-2">${_(v)}</div>
57
+ </section>`}}),{content:g,sidebar:d}},"generateContextSections")(r.context),se=`
58
58
  <aside class="shrink-0 w-64 sticky top-4 self-start">
59
59
  <nav aria-label="Context sections" class="p-3 rounded-[var(--ono-radius-md)] shadow-[var(--ono-elevation-1)] space-y-4 overflow-auto bg-[var(--ono-surface)] border border-[var(--ono-border)] max-h-[calc(100dvh-2rem)]">
60
60
  <div>
@@ -62,7 +62,7 @@ var ie=Object.defineProperty;var T=(e,o)=>ie(e,"name",{value:o,configurable:!0})
62
62
  <ul class="space-y-1 text-sm">
63
63
  <li>
64
64
  <a href="#context-request" class="flex items-center gap-2 px-2 py-1 rounded text-[var(--ono-text)] hover:bg-[var(--ono-surface-muted)]">
65
- <span class="dui size-3" style="-webkit-mask-image:url('${I}'); mask-image:url('${I}')"></span>
65
+ <span class="dui size-3" style="-webkit-mask-image:url('${J}'); mask-image:url('${J}')"></span>
66
66
  <span>Overview</span>
67
67
  </a>
68
68
  </li>
@@ -86,7 +86,7 @@ var ie=Object.defineProperty;var T=(e,o)=>ie(e,"name",{value:o,configurable:!0})
86
86
  </li>
87
87
  <li>
88
88
  <a href="#context-cookies" class="flex items-center gap-2 px-2 py-1 rounded text-[var(--ono-text)] hover:bg-[var(--ono-surface-muted)]">
89
- <span class="dui size-3" style="-webkit-mask-image:url('${J}'); mask-image:url('${J}')"></span>
89
+ <span class="dui size-3" style="-webkit-mask-image:url('${I}'); mask-image:url('${I}')"></span>
90
90
  <span>Cookies</span>
91
91
  </a>
92
92
  </li>
@@ -95,63 +95,63 @@ var ie=Object.defineProperty;var T=(e,o)=>ie(e,"name",{value:o,configurable:!0})
95
95
  </nav>
96
96
  </aside>`,ne=`
97
97
  <div class="grow min-w-0">
98
- <input type="hidden" id="clipboard-curl-${r}" value="${D(F)}">
98
+ <input type="hidden" id="clipboard-curl-${o}" value="${k(F)}">
99
99
  <section id="context-request" class="mb-4 rounded-[var(--ono-radius-lg)] shadow-[var(--ono-elevation-1)] overflow-hidden bg-[var(--ono-surface)] border border-[var(--ono-border)]">
100
100
  <div class="px-4 py-2 flex items-center gap-3 min-w-0 bg-[var(--ono-surface-muted)] border-b border-[var(--ono-border)]">
101
- <span class="dui size-4" style="-webkit-mask-image:url('${I}'); mask-image:url('${I}')"></span>
101
+ <span class="dui size-4" style="-webkit-mask-image:url('${J}'); mask-image:url('${J}')"></span>
102
102
  <h2 class="text-sm font-semibold text-[var(--ono-text)]">Request</h2>
103
- <a class="text-sm truncate text-[var(--ono-red-orange)]" href="${ce(A(e,"url")||"#")}">${f(A(e,"url")||"")}</a>
104
- <span class="inline-block text-[10px] px-2 py-0.5 rounded-full bg-[var(--ono-chip-bg)] text-[var(--ono-chip-text)]">${f(String(A(e,"method")||"GET"))}</span>
103
+ <a class="text-sm truncate text-[var(--ono-red-orange)]" href="${ce(A(e,"url")??"#")}">${f(A(e,"url")??"")}</a>
104
+ <span class="inline-block text-[10px] px-2 py-0.5 rounded-full bg-[var(--ono-chip-bg)] text-[var(--ono-chip-text)]">${f(A(e,"method")??"GET")}</span>
105
105
  <div class="grow"></div>
106
- ${O({label:"Copy cURL",targetId:`clipboard-curl-${r}`}).html}
106
+ ${O({label:"Copy cURL",targetId:`clipboard-curl-${o}`}).html}
107
107
  </div>
108
108
  <div class="px-4 pb-4 overflow-auto mt-2">${M}</div>
109
109
  </section>
110
110
 
111
- <input type="hidden" id="clipboard-headers-${r}" value="${D(JSON.stringify(l||{}))}">
111
+ <input type="hidden" id="clipboard-headers-${o}" value="${k(JSON.stringify(l??{}))}">
112
112
  <section id="context-headers" class="mb-4 rounded-[var(--ono-radius-lg)] shadow-[var(--ono-elevation-1)] overflow-hidden bg-[var(--ono-surface)] border border-[var(--ono-border)]">
113
113
  <div class="px-4 py-2 flex items-center gap-2 bg-[var(--ono-surface-muted)] border-b border-[var(--ono-border)]">
114
114
  <span class="dui size-4" style="-webkit-mask-image:url('${S}'); mask-image:url('${S}')"></span>
115
115
  <h3 class="text-sm font-semibold text-[var(--ono-text)]">Headers</h3>
116
116
  <div class="grow"></div>
117
117
  <a href="#context-headers" class="text-xs text-[var(--ono-text-muted)]" aria-label="Anchor">#</a>
118
- ${O({label:"Copy JSON",targetId:`clipboard-headers-${r}`}).html}
118
+ ${O({label:"Copy JSON",targetId:`clipboard-headers-${o}`}).html}
119
119
  </div>
120
120
  <div class="max-w-full overflow-auto mt-2">${U(l)}</div>
121
121
  </section>
122
122
 
123
- <input type="hidden" id="clipboard-body-${r}" value="${D(Y(b??{}))}">
123
+ <input type="hidden" id="clipboard-body-${o}" value="${k(Y(h??{}))}">
124
124
  <section id="context-body" class="mb-4 rounded-[var(--ono-radius-lg)] shadow-[var(--ono-elevation-1)] overflow-hidden bg-[var(--ono-surface)] border border-[var(--ono-border)]">
125
125
  <div class="px-4 py-2 flex items-center gap-2 bg-[var(--ono-surface-muted)] border-b border-[var(--ono-border)]">
126
126
  <span class="dui size-4" style="-webkit-mask-image:url('${q}'); mask-image:url('${q}')"></span>
127
127
  <h3 class="text-sm font-semibold text-[var(--ono-text)]">Body</h3>
128
128
  <div class="grow"></div>
129
129
  <a href="#context-body" class="text-xs text-[var(--ono-text-muted)]" aria-label="Anchor">#</a>
130
- ${O({label:"Copy JSON",targetId:`clipboard-body-${r}`}).html}
130
+ ${O({label:"Copy JSON",targetId:`clipboard-body-${o}`}).html}
131
131
  </div>
132
- <div class="max-w-full overflow-auto mt-2">${ae(b)}</div>
132
+ <div class="max-w-full overflow-auto mt-2">${ae(h)}</div>
133
133
  </section>
134
134
 
135
- <input type="hidden" id="clipboard-session-${r}" value="${D(JSON.stringify(e?.session??{}))}">
135
+ <input type="hidden" id="clipboard-session-${o}" value="${k(JSON.stringify(e.session??{}))}">
136
136
  <section id="context-session" class="mb-4 rounded-[var(--ono-radius-lg)] shadow-[var(--ono-elevation-1)] overflow-hidden bg-[var(--ono-surface)] border border-[var(--ono-border)]">
137
137
  <div class="px-4 py-2 flex items-center gap-2 bg-[var(--ono-surface-muted)] border-b border-[var(--ono-border)]">
138
138
  <span class="dui size-4" style="-webkit-mask-image:url('${R}'); mask-image:url('${R}')"></span>
139
139
  <h3 class="text-sm font-semibold text-[var(--ono-text)]">Session</h3>
140
140
  <div class="grow"></div>
141
141
  <a href="#context-session" class="text-xs text-[var(--ono-text-muted)]" aria-label="Anchor">#</a>
142
- ${O({label:"Copy JSON",targetId:`clipboard-session-${r}`}).html}
142
+ ${O({label:"Copy JSON",targetId:`clipboard-session-${o}`}).html}
143
143
  </div>
144
- <div class="max-w-full overflow-auto mt-2">${_(e?.session)}</div>
144
+ <div class="max-w-full overflow-auto mt-2">${_(e.session)}</div>
145
145
  </section>
146
146
 
147
- <input type="hidden" id="clipboard-cookies-${r}" value="${D(JSON.stringify(E||{}))}">
147
+ <input type="hidden" id="clipboard-cookies-${o}" value="${k(JSON.stringify(E))}">
148
148
  <section id="context-cookies" class="mb-4 rounded-[var(--ono-radius-lg)] shadow-[var(--ono-elevation-1)] overflow-hidden bg-[var(--ono-surface)] border border-[var(--ono-border)]">
149
149
  <div class="px-4 py-2 flex items-center gap-2 bg-[var(--ono-surface-muted)] border-b border-[var(--ono-border)]">
150
- <span class="dui size-4" style="-webkit-mask-image:url('${J}'); mask-image:url('${J}')"></span>
150
+ <span class="dui size-4" style="-webkit-mask-image:url('${I}'); mask-image:url('${I}')"></span>
151
151
  <h3 class="text-sm font-semibold text-[var(--ono-text)]">Cookies</h3>
152
152
  <div class="grow"></div>
153
153
  <a href="#context-cookies" class="text-xs text-[var(--ono-text-muted)]" aria-label="Anchor">#</a>
154
- ${O({label:"Copy JSON",targetId:`clipboard-cookies-${r}`}).html}
154
+ ${O({label:"Copy JSON",targetId:`clipboard-cookies-${o}`}).html}
155
155
  </div>
156
156
  <div class="max-w-full overflow-auto mt-2">${U(E)}
157
157
  </div>
@@ -1,4 +1,4 @@
1
- import type Editors from "../../../../shared/utils/editors.d.ts";
1
+ import type Editors from "../../../../../shared/utils/editors.d.ts";
2
2
  import type { Theme } from "../types.d.ts";
3
3
  export type RequestTimings = {
4
4
  elapsedMs?: number;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { SolutionFinder } from "@visulima/error/solution";
2
- import type { BaseCliOptions } from "../../../shared/utils/cli-error-builder.d.ts";
2
+ import type { BaseCliOptions } from "../../../../shared/utils/cli-error-builder.d.ts";
3
3
  import type { TemplateOptions as BaseTemplateOptions } from "./error-inspector/types.d.ts";
4
4
  export type TemplateOptions = BaseTemplateOptions & {
5
5
  solutionFinders?: SolutionFinder[];