@highstate/designer 0.7.3 → 0.7.4

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 (240) hide show
  1. package/.output/nitro.json +15 -0
  2. package/.output/public/_nuxt/0cvrggvQ.js +6 -0
  3. package/.output/public/_nuxt/25W9uPmb.js +6 -0
  4. package/.output/public/_nuxt/4Ik7cdeQ.js +8 -0
  5. package/.output/public/_nuxt/5Rap-vPy.js +6 -0
  6. package/.output/public/_nuxt/B03wrqEc.js +6 -0
  7. package/.output/public/_nuxt/B5zXfXm9.js +6 -0
  8. package/.output/public/_nuxt/B9Xyijhd.js +6 -0
  9. package/.output/public/_nuxt/BFG1Mk7z.js +6 -0
  10. package/.output/public/_nuxt/BIHI7g3E.js +1 -0
  11. package/.output/public/_nuxt/BKlk5iyT.js +6 -0
  12. package/.output/public/_nuxt/BSkB5QuD.js +6 -0
  13. package/.output/public/_nuxt/BWmkvLm_.js +9 -0
  14. package/.output/public/_nuxt/BY4ic99o.js +1 -0
  15. package/.output/public/_nuxt/B_c3zf-v.js +6 -0
  16. package/.output/public/_nuxt/B_fMsGYe.js +6 -0
  17. package/.output/public/_nuxt/BaJupSGV.js +6 -0
  18. package/.output/public/_nuxt/BaLxmfj-.js +6 -0
  19. package/.output/public/_nuxt/BaiHcgzs.js +6 -0
  20. package/.output/public/_nuxt/Bc-ZgV77.js +6 -0
  21. package/.output/public/_nuxt/BfEKNvv3.js +7 -0
  22. package/.output/public/_nuxt/Bhzvs7bI.js +6 -0
  23. package/.output/public/_nuxt/Bio4gycK.js +6 -0
  24. package/.output/public/_nuxt/BoFRg7Ot.js +6 -0
  25. package/.output/public/_nuxt/Bqgm2twL.js +6 -0
  26. package/.output/public/_nuxt/BrdhNivz.js +1 -0
  27. package/.output/public/_nuxt/BrgZPUOV.js +6 -0
  28. package/.output/public/_nuxt/BsTHnhdd.js +7 -0
  29. package/.output/public/_nuxt/C5WLch3f.js +6 -0
  30. package/.output/public/_nuxt/C7NrX02N.js +6 -0
  31. package/.output/public/_nuxt/CCSDG5nI.js +6 -0
  32. package/.output/public/_nuxt/CDGzqUPQ.js +6 -0
  33. package/.output/public/_nuxt/CDntyWJ8.js +6 -0
  34. package/.output/public/_nuxt/CFKIUWau.js +6 -0
  35. package/.output/public/_nuxt/CFOPXBzS.js +6 -0
  36. package/.output/public/_nuxt/CLLBncYj.js +6 -0
  37. package/.output/public/_nuxt/COyEY5Pt.js +7 -0
  38. package/.output/public/_nuxt/CPajHgWi.js +6 -0
  39. package/.output/public/_nuxt/CVwtpugi.js +6 -0
  40. package/.output/public/_nuxt/CWsALi_N.js +6 -0
  41. package/.output/public/_nuxt/CX-rkNHf.js +6 -0
  42. package/.output/public/_nuxt/CXOwvkN_.js +6 -0
  43. package/.output/public/_nuxt/CdQndTaG.js +6 -0
  44. package/.output/public/_nuxt/Ce3n6wWz.js +6 -0
  45. package/.output/public/_nuxt/Cg7bfA9N.js +6 -0
  46. package/.output/public/_nuxt/Ch4PGxFq.js +6 -0
  47. package/.output/public/_nuxt/Cp1zYvxS.js +6 -0
  48. package/.output/public/_nuxt/CpIb_Oan.js +6 -0
  49. package/.output/public/_nuxt/Cpb6xl2v.js +6 -0
  50. package/.output/public/_nuxt/Cphgjts3.js +6 -0
  51. package/.output/public/_nuxt/CrUIUSRQ.js +1 -0
  52. package/.output/public/_nuxt/CwNk8-XU.js +6 -0
  53. package/.output/public/_nuxt/CxQiO5cn.js +8 -0
  54. package/.output/public/_nuxt/CzKuDChf.js +6 -0
  55. package/.output/public/_nuxt/D-MeaMDU.js +6 -0
  56. package/.output/public/_nuxt/D0A5LTnE.js +9 -0
  57. package/.output/public/_nuxt/D3h14YRZ.js +8 -0
  58. package/.output/public/_nuxt/D5C2fndG.js +6 -0
  59. package/.output/public/_nuxt/DDwshQtU.js +6 -0
  60. package/.output/public/_nuxt/DFGrbNda.js +16 -0
  61. package/.output/public/_nuxt/DGinXpNd.js +6 -0
  62. package/.output/public/_nuxt/DHaeiCBh.js +6 -0
  63. package/.output/public/_nuxt/DHbdnjwW.js +6 -0
  64. package/.output/public/_nuxt/DSZPf7rp.js +6 -0
  65. package/.output/public/_nuxt/DTECt2xU.js +6 -0
  66. package/.output/public/_nuxt/DXyYeYxl.js +6 -0
  67. package/.output/public/_nuxt/DYQUnd45.js +303 -0
  68. package/.output/public/_nuxt/Dd3NCNK9.js +6 -0
  69. package/.output/public/_nuxt/DfzH4Xui.js +6 -0
  70. package/.output/public/_nuxt/DgpMLyT9.js +6 -0
  71. package/.output/public/_nuxt/DgyLZaXg.js +6 -0
  72. package/.output/public/_nuxt/DnHyzjbg.js +6 -0
  73. package/.output/public/_nuxt/DqxlV1Dz.js +6 -0
  74. package/.output/public/_nuxt/DrQuvNYM.js +6 -0
  75. package/.output/public/_nuxt/Drc7WvVn.js +6 -0
  76. package/.output/public/_nuxt/DtSS2RIy.js +6 -0
  77. package/.output/public/_nuxt/DwJ7jVG9.js +8 -0
  78. package/.output/public/_nuxt/DwN8ib1V.js +1111 -0
  79. package/.output/public/_nuxt/DyP6w7ZV.js +6 -0
  80. package/.output/public/_nuxt/Tw7wswEv.js +6 -0
  81. package/.output/public/_nuxt/YWi4-JPR.js +6 -0
  82. package/.output/public/_nuxt/Zznr-cwX.js +6 -0
  83. package/.output/public/_nuxt/builds/latest.json +1 -0
  84. package/.output/public/_nuxt/builds/meta/3c52625f-fbe1-4d7a-b238-1f1c3696fd48.json +1 -0
  85. package/.output/public/_nuxt/codicon.DCmgc-ay.ttf +0 -0
  86. package/.output/public/_nuxt/dUCx_-0o.js +6 -0
  87. package/.output/public/_nuxt/deUWdS0T.js +6 -0
  88. package/.output/public/_nuxt/edge-router-BFNVMcBx.js +4 -0
  89. package/.output/public/_nuxt/editor.worker-B6Jl4jUd.js +12 -0
  90. package/.output/public/_nuxt/entry.BD0Qz9HR.css +5 -0
  91. package/.output/public/_nuxt/error-404.D7tj2jQK.css +1 -0
  92. package/.output/public/_nuxt/error-500.TOCKLquH.css +1 -0
  93. package/.output/public/_nuxt/gYnoVL96.js +6 -0
  94. package/.output/public/_nuxt/graph-resolver-Y9hmyS-J.js +8 -0
  95. package/.output/public/_nuxt/i9-g7ZhI.js +6 -0
  96. package/.output/public/_nuxt/jDosRYr7.js +15 -0
  97. package/.output/public/_nuxt/materialdesignicons-webfont.B6OSyW2I.woff2 +0 -0
  98. package/.output/public/_nuxt/materialdesignicons-webfont.BpRar1d5.ttf +0 -0
  99. package/.output/public/_nuxt/materialdesignicons-webfont.Bvl3VxMs.woff +0 -0
  100. package/.output/public/_nuxt/materialdesignicons-webfont.TEmAk13K.eot +0 -0
  101. package/.output/public/_nuxt/nf6ki56Z.js +6 -0
  102. package/.output/public/_nuxt/pnP8ivHi.js +6 -0
  103. package/.output/public/_nuxt/rUNN04Wq.js +6 -0
  104. package/.output/public/_nuxt/tGk8EFnU.js +6 -0
  105. package/.output/public/_nuxt/yaml.worker-B8S0iqeR.js +411 -0
  106. package/.output/public/favicon.ico +0 -0
  107. package/.output/public/libavoid.wasm +0 -0
  108. package/.output/public/robots.txt +1 -0
  109. package/.output/server/index.mjs +13188 -0
  110. package/.output/server/index.mjs.map +1 -0
  111. package/.output/server/node_modules/@babel/parser/lib/index.js +14246 -0
  112. package/.output/server/node_modules/@babel/parser/package.json +50 -0
  113. package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/fetchRequestHandler.mjs +74 -0
  114. package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/index.mjs +1 -0
  115. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/incomingMessageToRequest.mjs +119 -0
  116. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/index.mjs +2 -0
  117. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +92 -0
  118. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/writeResponse.mjs +79 -0
  119. package/.output/server/node_modules/@trpc/server/dist/adapters/ws.mjs +521 -0
  120. package/.output/server/node_modules/@trpc/server/dist/index.mjs +12 -0
  121. package/.output/server/node_modules/@trpc/server/dist/observable/observable.mjs +175 -0
  122. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/createProxy.mjs +73 -0
  123. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/TRPCError.mjs +79 -0
  124. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/formatter.mjs +5 -0
  125. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/getErrorShape.mjs +29 -0
  126. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/abortError.mjs +10 -0
  127. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/contentType.mjs +229 -0
  128. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +76 -0
  129. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +39 -0
  130. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/resolveResponse.mjs +570 -0
  131. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/initTRPC.mjs +80 -0
  132. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/middleware.mjs +90 -0
  133. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/parser.mjs +52 -0
  134. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/procedure.mjs +7 -0
  135. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/procedureBuilder.mjs +198 -0
  136. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rootConfig.mjs +6 -0
  137. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/router.mjs +278 -0
  138. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rpc/codes.mjs +54 -0
  139. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.mjs +61 -0
  140. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/jsonl.mjs +603 -0
  141. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/sse.mjs +369 -0
  142. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/tracked.mjs +25 -0
  143. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/asyncIterable.mjs +165 -0
  144. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +15 -0
  145. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/disposable.mjs +43 -0
  146. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.mjs +239 -0
  147. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.mjs +23 -0
  148. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/timerResource.mjs +23 -0
  149. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/withPing.mjs +127 -0
  150. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/transformer.mjs +101 -0
  151. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/utils.mjs +83 -0
  152. package/.output/server/node_modules/@trpc/server/dist/vendor/standard-schema-v1/error.mjs +26 -0
  153. package/.output/server/node_modules/@trpc/server/dist/vendor/unpromise/unpromise.mjs +289 -0
  154. package/.output/server/node_modules/@trpc/server/package.json +156 -0
  155. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6690 -0
  156. package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  157. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +686 -0
  158. package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  159. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1404 -0
  160. package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  161. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1789 -0
  162. package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  163. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6654 -0
  164. package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  165. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1669 -0
  166. package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  167. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +857 -0
  168. package/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
  169. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +594 -0
  170. package/.output/server/node_modules/@vue/shared/package.json +47 -0
  171. package/.output/server/node_modules/devalue/index.js +3 -0
  172. package/.output/server/node_modules/devalue/package.json +34 -0
  173. package/.output/server/node_modules/devalue/src/base64.js +110 -0
  174. package/.output/server/node_modules/devalue/src/constants.js +6 -0
  175. package/.output/server/node_modules/devalue/src/parse.js +160 -0
  176. package/.output/server/node_modules/devalue/src/stringify.js +232 -0
  177. package/.output/server/node_modules/devalue/src/uneval.js +351 -0
  178. package/.output/server/node_modules/devalue/src/utils.js +113 -0
  179. package/.output/server/node_modules/entities/lib/decode.js +536 -0
  180. package/.output/server/node_modules/entities/lib/decode_codepoint.js +76 -0
  181. package/.output/server/node_modules/entities/lib/generated/decode-data-html.js +9 -0
  182. package/.output/server/node_modules/entities/lib/generated/decode-data-xml.js +9 -0
  183. package/.output/server/node_modules/entities/package.json +90 -0
  184. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  185. package/.output/server/node_modules/estree-walker/package.json +37 -0
  186. package/.output/server/node_modules/hookable/dist/index.mjs +290 -0
  187. package/.output/server/node_modules/hookable/package.json +49 -0
  188. package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  189. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  190. package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  191. package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  192. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  193. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  194. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  195. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  196. package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
  197. package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  198. package/.output/server/node_modules/source-map-js/package.json +71 -0
  199. package/.output/server/node_modules/source-map-js/source-map.js +8 -0
  200. package/.output/server/node_modules/ufo/dist/index.mjs +630 -0
  201. package/.output/server/node_modules/ufo/package.json +47 -0
  202. package/.output/server/node_modules/unhead/dist/plugins.mjs +94 -0
  203. package/.output/server/node_modules/unhead/dist/server.mjs +220 -0
  204. package/.output/server/node_modules/unhead/dist/shared/unhead.C13swrCa.mjs +48 -0
  205. package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +148 -0
  206. package/.output/server/node_modules/unhead/dist/shared/unhead.Cp0iF6eN.mjs +177 -0
  207. package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
  208. package/.output/server/node_modules/unhead/dist/shared/unhead.DZbvapt-.mjs +70 -0
  209. package/.output/server/node_modules/unhead/dist/shared/unhead.DeCxexjU.mjs +166 -0
  210. package/.output/server/node_modules/unhead/dist/shared/unhead.Txd0XTIP.mjs +172 -0
  211. package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
  212. package/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
  213. package/.output/server/node_modules/unhead/package.json +101 -0
  214. package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  215. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  216. package/.output/server/node_modules/vue/index.js +7 -0
  217. package/.output/server/node_modules/vue/index.mjs +1 -0
  218. package/.output/server/node_modules/vue/package.json +112 -0
  219. package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  220. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +196 -0
  221. package/.output/server/node_modules/vue-bundle-renderer/package.json +50 -0
  222. package/.output/server/node_modules/ws/lib/buffer-util.js +131 -0
  223. package/.output/server/node_modules/ws/lib/constants.js +18 -0
  224. package/.output/server/node_modules/ws/lib/event-target.js +292 -0
  225. package/.output/server/node_modules/ws/lib/extension.js +203 -0
  226. package/.output/server/node_modules/ws/lib/limiter.js +55 -0
  227. package/.output/server/node_modules/ws/lib/permessage-deflate.js +514 -0
  228. package/.output/server/node_modules/ws/lib/receiver.js +706 -0
  229. package/.output/server/node_modules/ws/lib/sender.js +602 -0
  230. package/.output/server/node_modules/ws/lib/stream.js +161 -0
  231. package/.output/server/node_modules/ws/lib/subprotocol.js +62 -0
  232. package/.output/server/node_modules/ws/lib/validation.js +152 -0
  233. package/.output/server/node_modules/ws/lib/websocket-server.js +540 -0
  234. package/.output/server/node_modules/ws/lib/websocket.js +1388 -0
  235. package/.output/server/node_modules/ws/package.json +69 -0
  236. package/.output/server/node_modules/ws/wrapper.mjs +8 -0
  237. package/.output/server/node_modules/zod/lib/index.mjs +4405 -0
  238. package/.output/server/node_modules/zod/package.json +122 -0
  239. package/.output/server/package.json +1 -0
  240. package/package.json +4 -4
@@ -0,0 +1,94 @@
1
+ export { A as AliasSortingPlugin, D as DeprecationsPlugin, P as PromisesPlugin, T as TemplateParamsPlugin } from './shared/unhead.DeCxexjU.mjs';
2
+ import { d as defineHeadPlugin } from './shared/unhead.CApf5sj3.mjs';
3
+ export { F as FlatMetaPlugin, S as SafeInputPlugin } from './shared/unhead.CApf5sj3.mjs';
4
+ import './shared/unhead.DZbvapt-.mjs';
5
+ import './shared/unhead.C13swrCa.mjs';
6
+ import './shared/unhead.DQc16pHI.mjs';
7
+ import './shared/unhead.yem5I2v_.mjs';
8
+
9
+ function CanonicalPlugin(options) {
10
+ return (head) => {
11
+ function resolvePath(path) {
12
+ if (options?.customResolver) {
13
+ return options.customResolver(path);
14
+ }
15
+ let host = options.canonicalHost || (!head.ssr ? window.location.origin : "");
16
+ if (!host.startsWith("http") && !host.startsWith("//")) {
17
+ host = `https://${host}`;
18
+ }
19
+ host = new URL(host).origin;
20
+ if (path.startsWith("http") || path.startsWith("//"))
21
+ return path;
22
+ try {
23
+ return new URL(path, host).toString();
24
+ } catch {
25
+ return path;
26
+ }
27
+ }
28
+ return {
29
+ key: "canonical",
30
+ hooks: {
31
+ "tags:resolve": (ctx) => {
32
+ for (const tag of ctx.tags) {
33
+ if (tag.tag === "meta") {
34
+ if (tag.props.property?.startsWith("og:image") || tag.props.name?.startsWith("twitter:image")) {
35
+ tag.props.content = resolvePath(tag.props.content);
36
+ } else if (tag.props?.property === "og:url") {
37
+ tag.props.content = resolvePath(tag.props.content);
38
+ }
39
+ } else if (tag.tag === "link" && tag.props.rel === "canonical") {
40
+ tag.props.href = resolvePath(tag.props.href);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ };
46
+ };
47
+ }
48
+
49
+ function InferSeoMetaPlugin(options = {}) {
50
+ return defineHeadPlugin((head) => {
51
+ head.push({
52
+ meta: [
53
+ {
54
+ name: "twitter:card",
55
+ content: options.twitterCard || "summary_large_image",
56
+ tagPriority: "low"
57
+ },
58
+ {
59
+ "property": "og:title",
60
+ "tagPriority": "low",
61
+ "data-infer": ""
62
+ },
63
+ {
64
+ "property": "og:description",
65
+ "tagPriority": "low",
66
+ "data-infer": ""
67
+ }
68
+ ]
69
+ });
70
+ return {
71
+ key: "infer-seo-meta",
72
+ hooks: {
73
+ "tags:beforeResolve": ({ tagMap }) => {
74
+ let title = head._title || "";
75
+ const titleTemplate = head._titleTemplate;
76
+ const ogTitle = tagMap.get("meta:og:title");
77
+ if (typeof ogTitle?.props["data-infer"] !== "undefined") {
78
+ if (titleTemplate) {
79
+ title = typeof titleTemplate === "function" ? titleTemplate(title) : titleTemplate.replace("%s", title);
80
+ }
81
+ ogTitle.props.content = options.ogTitle ? options.ogTitle(title) : title || "";
82
+ }
83
+ const description = tagMap.get("meta:description")?.props?.content;
84
+ const ogDescription = tagMap.get("meta:og:description");
85
+ if (typeof ogDescription?.props["data-infer"] !== "undefined") {
86
+ ogDescription.props.content = options.ogDescription ? options.ogDescription(description) : description || "";
87
+ }
88
+ }
89
+ }
90
+ };
91
+ });
92
+ }
93
+
94
+ export { CanonicalPlugin, InferSeoMetaPlugin, defineHeadPlugin };
@@ -0,0 +1,220 @@
1
+ import { a as createUnhead } from './shared/unhead.Txd0XTIP.mjs';
2
+ import { T as TagsWithInnerContent, S as SelfClosingTags$1 } from './shared/unhead.yem5I2v_.mjs';
3
+ import 'hookable';
4
+ import './shared/unhead.Cp0iF6eN.mjs';
5
+ import './shared/unhead.DZbvapt-.mjs';
6
+
7
+ // @__NO_SIDE_EFFECTS__
8
+ function createHead(options = {}) {
9
+ const unhead = createUnhead({
10
+ ...options,
11
+ // @ts-expect-error untyped
12
+ document: false,
13
+ propResolvers: [
14
+ ...options.propResolvers || [],
15
+ (k, v) => {
16
+ if (k && k.startsWith("on") && typeof v === "function") {
17
+ return `this.dataset.${k}fired = true`;
18
+ }
19
+ return v;
20
+ }
21
+ ],
22
+ init: [
23
+ options.disableDefaults ? void 0 : {
24
+ htmlAttrs: {
25
+ lang: "en"
26
+ },
27
+ meta: [
28
+ {
29
+ charset: "utf-8"
30
+ },
31
+ {
32
+ name: "viewport",
33
+ content: "width=device-width, initial-scale=1"
34
+ }
35
+ ]
36
+ },
37
+ ...options.init || []
38
+ ]
39
+ });
40
+ unhead._ssrPayload = {};
41
+ unhead.use({
42
+ key: "server",
43
+ hooks: {
44
+ "tags:resolve": function(ctx) {
45
+ const title = ctx.tagMap.get("title");
46
+ const titleTemplate = ctx.tagMap.get("titleTemplate");
47
+ let payload = {
48
+ title: title?.mode === "server" ? unhead._title : void 0,
49
+ titleTemplate: titleTemplate?.mode === "server" ? unhead._titleTemplate : void 0
50
+ };
51
+ if (Object.keys(unhead._ssrPayload || {}).length > 0) {
52
+ payload = {
53
+ ...unhead._ssrPayload,
54
+ ...payload
55
+ };
56
+ }
57
+ if (Object.values(payload).some(Boolean)) {
58
+ ctx.tags.push({
59
+ tag: "script",
60
+ innerHTML: JSON.stringify(payload),
61
+ props: { id: "unhead:payload", type: "application/json" }
62
+ });
63
+ }
64
+ }
65
+ }
66
+ });
67
+ return unhead;
68
+ }
69
+
70
+ const Attrs = /(\w+)(?:=["']([^"']*)["'])?/g;
71
+ const HtmlTag = /<html[^>]*>/;
72
+ const BodyTag = /<body[^>]*>/;
73
+ const HeadContent = /<head[^>]*>(.*?)<\/head>/s;
74
+ const SelfClosingTags = /<(meta|link|base)[^>]*>/g;
75
+ const ClosingTags = /<(title|script|style)[^>]*>[\s\S]*?<\/\1>/g;
76
+ const NewLines = /(\n\s*)+/g;
77
+ function extractAttributes(tag) {
78
+ const inner = tag.match(/<([^>]*)>/)?.[1].split(" ").slice(1).join(" ");
79
+ if (!inner)
80
+ return {};
81
+ const attrs = inner.match(Attrs);
82
+ return attrs?.reduce((acc, attr) => {
83
+ const sep = attr.indexOf("=");
84
+ const key = sep > 0 ? attr.slice(0, sep) : attr;
85
+ const val = sep > 0 ? attr.slice(sep + 1).slice(1, -1) : true;
86
+ return { ...acc, [key]: val };
87
+ }, {}) || {};
88
+ }
89
+ function extractUnheadInputFromHtml(html) {
90
+ const input = {};
91
+ input.htmlAttrs = extractAttributes(html.match(HtmlTag)?.[0] || "");
92
+ html = html.replace(HtmlTag, "<html>");
93
+ input.bodyAttrs = extractAttributes(html.match(BodyTag)?.[0] || "");
94
+ html = html.replace(BodyTag, "<body>");
95
+ const innerHead = html.match(HeadContent)?.[1] || "";
96
+ innerHead.match(SelfClosingTags)?.forEach((s) => {
97
+ html = html.replace(s, "");
98
+ const tag = s.split(" ")[0].slice(1);
99
+ input[tag] = input[tag] || [];
100
+ input[tag].push(extractAttributes(s));
101
+ });
102
+ innerHead.match(ClosingTags)?.map((tag) => tag.trim()).filter(Boolean).forEach((tag) => {
103
+ html = html.replace(tag, "");
104
+ const type = tag.match(/<([a-z-]+)/)?.[1];
105
+ const res = extractAttributes(tag);
106
+ const innerContent = tag.match(/>([\s\S]*)</)?.[1];
107
+ if (innerContent) {
108
+ res[type !== "script" ? "textContent" : "innerHTML"] = innerContent;
109
+ }
110
+ if (type === "title") {
111
+ input.title = res;
112
+ } else {
113
+ input[type] = input[type] || [];
114
+ input[type].push(res);
115
+ }
116
+ });
117
+ html = html.replace(NewLines, "\n");
118
+ return { html, input };
119
+ }
120
+
121
+ function encodeAttribute(value) {
122
+ return String(value).replace(/"/g, "&quot;");
123
+ }
124
+ function propsToString(props) {
125
+ let attrs = "";
126
+ for (const key in props) {
127
+ if (!Object.hasOwn(props, key))
128
+ continue;
129
+ let value = props[key];
130
+ if ((key === "class" || key === "style") && typeof value !== "string") {
131
+ value = key === "class" ? Array.from(value).join(" ") : Array.from(value).map(([k, v]) => `${k}:${v}`).join(";");
132
+ }
133
+ if (value !== false && value !== null) {
134
+ attrs += value === true ? ` ${key}` : ` ${key}="${encodeAttribute(value)}"`;
135
+ }
136
+ }
137
+ return attrs;
138
+ }
139
+
140
+ function escapeHtml(str) {
141
+ return str.replace(/[&<>"'/]/g, (char) => {
142
+ switch (char) {
143
+ case "&":
144
+ return "&amp;";
145
+ case "<":
146
+ return "&lt;";
147
+ case ">":
148
+ return "&gt;";
149
+ case '"':
150
+ return "&quot;";
151
+ case "'":
152
+ return "&#x27;";
153
+ case "/":
154
+ return "&#x2F;";
155
+ default:
156
+ return char;
157
+ }
158
+ });
159
+ }
160
+ function tagToString(tag) {
161
+ const attrs = propsToString(tag.props);
162
+ const openTag = `<${tag.tag}${attrs}>`;
163
+ if (!TagsWithInnerContent.has(tag.tag))
164
+ return SelfClosingTags$1.has(tag.tag) ? openTag : `${openTag}</${tag.tag}>`;
165
+ let content = String(tag.innerHTML || "");
166
+ if (tag.textContent)
167
+ content = escapeHtml(String(tag.textContent));
168
+ return SelfClosingTags$1.has(tag.tag) ? openTag : `${openTag}${content}</${tag.tag}>`;
169
+ }
170
+
171
+ function ssrRenderTags(tags, options) {
172
+ const schema = { htmlAttrs: {}, bodyAttrs: {}, tags: { head: "", bodyClose: "", bodyOpen: "" } };
173
+ const lineBreaks = !options?.omitLineBreaks ? "\n" : "";
174
+ for (const tag of tags) {
175
+ if (tag.tag === "htmlAttrs" || tag.tag === "bodyAttrs") {
176
+ Object.assign(schema[tag.tag], tag.props);
177
+ continue;
178
+ }
179
+ const s = tagToString(tag);
180
+ const tagPosition = tag.tagPosition || "head";
181
+ schema.tags[tagPosition] += schema.tags[tagPosition] ? `${lineBreaks}${s}` : s;
182
+ }
183
+ return {
184
+ headTags: schema.tags.head,
185
+ bodyTags: schema.tags.bodyClose,
186
+ bodyTagsOpen: schema.tags.bodyOpen,
187
+ htmlAttrs: propsToString(schema.htmlAttrs),
188
+ bodyAttrs: propsToString(schema.bodyAttrs)
189
+ };
190
+ }
191
+
192
+ async function renderSSRHead(head, options) {
193
+ const beforeRenderCtx = { shouldRender: true };
194
+ await head.hooks.callHook("ssr:beforeRender", beforeRenderCtx);
195
+ if (!beforeRenderCtx.shouldRender) {
196
+ return {
197
+ headTags: "",
198
+ bodyTags: "",
199
+ bodyTagsOpen: "",
200
+ htmlAttrs: "",
201
+ bodyAttrs: ""
202
+ };
203
+ }
204
+ const ctx = { tags: options?.resolvedTags || await head.resolveTags() };
205
+ await head.hooks.callHook("ssr:render", ctx);
206
+ const html = ssrRenderTags(ctx.tags, options);
207
+ const renderCtx = { tags: ctx.tags, html };
208
+ await head.hooks.callHook("ssr:rendered", renderCtx);
209
+ return renderCtx.html;
210
+ }
211
+
212
+ async function transformHtmlTemplate(head, html, options) {
213
+ const { html: parsedHtml, input } = extractUnheadInputFromHtml(html);
214
+ head.push(input, { _index: 0 });
215
+ const headHtml = await renderSSRHead(head, options);
216
+ return parsedHtml.replace("<html>", `<html${headHtml.htmlAttrs}>`).replace("<body>", `<body>${headHtml.bodyTagsOpen ? `
217
+ ${headHtml.bodyTagsOpen}` : ``}`).replace("<body>", `<body${headHtml.bodyAttrs}>`).replace("</head>", `${headHtml.headTags}</head>`).replace("</body>", `${headHtml.bodyTags}</body>`);
218
+ }
219
+
220
+ export { createHead, escapeHtml, extractUnheadInputFromHtml, propsToString, renderSSRHead, ssrRenderTags, tagToString, transformHtmlTemplate };
@@ -0,0 +1,48 @@
1
+ const SepSub = "%separator";
2
+ const SepSubRE = new RegExp(`${SepSub}(?:\\s*${SepSub})*`, "g");
3
+ function sub(p, token, isJson = false) {
4
+ let val;
5
+ if (token === "s" || token === "pageTitle") {
6
+ val = p.pageTitle;
7
+ } else if (token.includes(".")) {
8
+ const dotIndex = token.indexOf(".");
9
+ val = p[token.substring(0, dotIndex)]?.[token.substring(dotIndex + 1)];
10
+ } else {
11
+ val = p[token];
12
+ }
13
+ if (val !== void 0) {
14
+ return isJson ? (val || "").replace(/\\/g, "\\\\").replace(/</g, "\\u003C").replace(/"/g, '\\"') : val || "";
15
+ }
16
+ return void 0;
17
+ }
18
+ function processTemplateParams(s, p, sep, isJson = false) {
19
+ if (typeof s !== "string" || !s.includes("%"))
20
+ return s;
21
+ let decoded = s;
22
+ try {
23
+ decoded = decodeURI(s);
24
+ } catch {
25
+ }
26
+ const tokens = decoded.match(/%\w+(?:\.\w+)?/g);
27
+ if (!tokens) {
28
+ return s;
29
+ }
30
+ const hasSepSub = s.includes(SepSub);
31
+ s = s.replace(/%\w+(?:\.\w+)?/g, (token) => {
32
+ if (token === SepSub || !tokens.includes(token)) {
33
+ return token;
34
+ }
35
+ const re = sub(p, token.slice(1), isJson);
36
+ return re !== void 0 ? re : token;
37
+ }).trim();
38
+ if (hasSepSub) {
39
+ if (s.endsWith(SepSub))
40
+ s = s.slice(0, -SepSub.length);
41
+ if (s.startsWith(SepSub))
42
+ s = s.slice(SepSub.length);
43
+ s = s.replace(SepSubRE, sep || "").trim();
44
+ }
45
+ return s;
46
+ }
47
+
48
+ export { processTemplateParams as p };
@@ -0,0 +1,148 @@
1
+ import { u as unpackMeta } from './unhead.DQc16pHI.mjs';
2
+
3
+ function defineHeadPlugin(plugin) {
4
+ return plugin;
5
+ }
6
+
7
+ const FlatMetaPlugin = /* @__PURE__ */ defineHeadPlugin({
8
+ key: "flatMeta",
9
+ hooks: {
10
+ "entries:normalize": (ctx) => {
11
+ const tagsToAdd = [];
12
+ ctx.tags = ctx.tags.map((t) => {
13
+ if (t.tag !== "_flatMeta") {
14
+ return t;
15
+ }
16
+ tagsToAdd.push(unpackMeta(t.props).map((p) => ({
17
+ ...t,
18
+ tag: "meta",
19
+ props: p
20
+ })));
21
+ return false;
22
+ }).filter(Boolean).concat(...tagsToAdd);
23
+ }
24
+ }
25
+ });
26
+
27
+ const WhitelistAttributes = {
28
+ htmlAttrs: /* @__PURE__ */ new Set(["class", "style", "lang", "dir"]),
29
+ bodyAttrs: /* @__PURE__ */ new Set(["class", "style"]),
30
+ meta: /* @__PURE__ */ new Set(["name", "property", "charset", "content", "media"]),
31
+ noscript: /* @__PURE__ */ new Set(["textContent"]),
32
+ style: /* @__PURE__ */ new Set(["media", "textContent", "nonce", "title", "blocking"]),
33
+ script: /* @__PURE__ */ new Set(["type", "textContent", "nonce", "blocking"]),
34
+ link: /* @__PURE__ */ new Set(["color", "crossorigin", "fetchpriority", "href", "hreflang", "imagesrcset", "imagesizes", "integrity", "media", "referrerpolicy", "rel", "sizes", "type"])
35
+ };
36
+ function acceptDataAttrs(value) {
37
+ return Object.fromEntries(
38
+ Object.entries(value || {}).filter(([key]) => key === "id" || key.startsWith("data-"))
39
+ );
40
+ }
41
+ function makeTagSafe(tag) {
42
+ let next = {};
43
+ const { tag: type, props: prev } = tag;
44
+ switch (type) {
45
+ // always safe
46
+ case "title":
47
+ case "titleTemplate":
48
+ case "templateParams":
49
+ next = prev;
50
+ break;
51
+ case "htmlAttrs":
52
+ case "bodyAttrs":
53
+ WhitelistAttributes[type].forEach((attr) => {
54
+ if (prev[attr]) {
55
+ next[attr] = prev[attr];
56
+ }
57
+ });
58
+ break;
59
+ case "style":
60
+ next = acceptDataAttrs(prev);
61
+ WhitelistAttributes.style.forEach((key) => {
62
+ if (prev[key]) {
63
+ next[key] = prev[key];
64
+ }
65
+ });
66
+ break;
67
+ // meta is safe, except for http-equiv
68
+ case "meta":
69
+ WhitelistAttributes.meta.forEach((key) => {
70
+ if (prev[key]) {
71
+ next[key] = prev[key];
72
+ }
73
+ });
74
+ break;
75
+ // link tags we don't allow stylesheets, scripts, preloading, prerendering, prefetching, etc
76
+ case "link":
77
+ WhitelistAttributes.link.forEach((key) => {
78
+ const val = prev[key];
79
+ if (!val) {
80
+ return;
81
+ }
82
+ if (key === "rel" && (val === "canonical" || val === "modulepreload" || val === "prerender" || val === "preload" || val === "prefetch")) {
83
+ return;
84
+ }
85
+ if (key === "href") {
86
+ if (val.includes("javascript:") || val.includes("data:")) {
87
+ return;
88
+ }
89
+ next[key] = val;
90
+ } else if (val) {
91
+ next[key] = val;
92
+ }
93
+ });
94
+ if (!next.href && !next.imagesrcset || !next.rel) {
95
+ return false;
96
+ }
97
+ break;
98
+ case "noscript":
99
+ WhitelistAttributes.noscript.forEach((key) => {
100
+ if (prev[key]) {
101
+ next[key] = prev[key];
102
+ }
103
+ });
104
+ break;
105
+ // we only allow JSON in scripts
106
+ case "script":
107
+ if (!tag.textContent || !prev.type?.endsWith("json")) {
108
+ return false;
109
+ }
110
+ WhitelistAttributes.script.forEach((s) => {
111
+ if (prev[s] === "textContent") {
112
+ try {
113
+ const jsonVal = typeof prev[s] === "string" ? JSON.parse(prev[s]) : prev[s];
114
+ next[s] = JSON.stringify(jsonVal, null, 0);
115
+ } catch {
116
+ }
117
+ } else if (prev[s]) {
118
+ next[s] = prev[s];
119
+ }
120
+ });
121
+ break;
122
+ }
123
+ if (!Object.keys(next).length && !tag.tag.endsWith("Attrs")) {
124
+ return false;
125
+ }
126
+ tag.props = { ...acceptDataAttrs(prev), ...next };
127
+ return tag;
128
+ }
129
+ const SafeInputPlugin = (
130
+ /* @PURE */
131
+ defineHeadPlugin({
132
+ key: "safe",
133
+ hooks: {
134
+ "entries:normalize": (ctx) => {
135
+ if (ctx.entry.options?._safe) {
136
+ ctx.tags = ctx.tags.reduce((acc, tag) => {
137
+ const safeTag = makeTagSafe(tag);
138
+ if (safeTag)
139
+ acc.push(safeTag);
140
+ return acc;
141
+ }, []);
142
+ }
143
+ }
144
+ }
145
+ })
146
+ );
147
+
148
+ export { FlatMetaPlugin as F, SafeInputPlugin as S, defineHeadPlugin as d };
@@ -0,0 +1,177 @@
1
+ import { U as UniqueTags, T as TagsWithInnerContent, M as MetaTagsArrayable, a as TagConfigKeys, D as DupeableTags } from './unhead.yem5I2v_.mjs';
2
+
3
+ const allowedMetaProperties = ["name", "property", "http-equiv"];
4
+ function isMetaArrayDupeKey(v) {
5
+ const k = v.split(":")[1];
6
+ return MetaTagsArrayable.has(k);
7
+ }
8
+ function dedupeKey(tag) {
9
+ const { props, tag: name } = tag;
10
+ if (UniqueTags.has(name))
11
+ return name;
12
+ if (name === "link" && props.rel === "canonical")
13
+ return "canonical";
14
+ if (props.charset)
15
+ return "charset";
16
+ if (tag.tag === "meta") {
17
+ for (const n of allowedMetaProperties) {
18
+ if (props[n] !== void 0) {
19
+ return `${name}:${props[n]}`;
20
+ }
21
+ }
22
+ }
23
+ if (tag.key) {
24
+ return `${name}:key:${tag.key}`;
25
+ }
26
+ if (props.id) {
27
+ return `${name}:id:${props.id}`;
28
+ }
29
+ if (TagsWithInnerContent.has(name)) {
30
+ const v = tag.textContent || tag.innerHTML;
31
+ if (v) {
32
+ return `${name}:content:${v}`;
33
+ }
34
+ }
35
+ }
36
+ function hashTag(tag) {
37
+ const dedupe = tag._h || tag._d;
38
+ if (dedupe)
39
+ return dedupe;
40
+ const inner = tag.textContent || tag.innerHTML;
41
+ if (inner)
42
+ return inner;
43
+ return `${tag.tag}:${Object.entries(tag.props).map(([k, v]) => `${k}:${String(v)}`).join(",")}`;
44
+ }
45
+
46
+ function walkResolver(val, resolve, key) {
47
+ const type = typeof val;
48
+ if (type === "function") {
49
+ if (!key || key !== "titleTemplate" && !(key[0] === "o" && key[1] === "n")) {
50
+ val = val();
51
+ }
52
+ }
53
+ let v;
54
+ if (resolve) {
55
+ v = resolve(key, val);
56
+ }
57
+ if (Array.isArray(v)) {
58
+ return v.map((r) => walkResolver(r, resolve));
59
+ }
60
+ if (v?.constructor === Object) {
61
+ const next = {};
62
+ for (const key2 of Object.keys(v)) {
63
+ next[key2] = walkResolver(v[key2], resolve, key2);
64
+ }
65
+ return next;
66
+ }
67
+ return v;
68
+ }
69
+
70
+ function normalizeStyleClassProps(key, value) {
71
+ const store = key === "style" ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new Set();
72
+ function processValue(rawValue) {
73
+ const value2 = rawValue.trim();
74
+ if (!value2)
75
+ return;
76
+ if (key === "style") {
77
+ const [k, ...v] = value2.split(":").map((s) => s.trim());
78
+ if (k && v.length)
79
+ store.set(k, v.join(":"));
80
+ } else {
81
+ value2.split(" ").filter(Boolean).forEach((c) => store.add(c));
82
+ }
83
+ }
84
+ if (typeof value === "string") {
85
+ key === "style" ? value.split(";").forEach(processValue) : processValue(value);
86
+ } else if (Array.isArray(value)) {
87
+ value.forEach((item) => processValue(item));
88
+ } else if (value && typeof value === "object") {
89
+ Object.entries(value).forEach(([k, v]) => {
90
+ if (v && v !== "false") {
91
+ key === "style" ? store.set(k.trim(), v) : processValue(k);
92
+ }
93
+ });
94
+ }
95
+ return store;
96
+ }
97
+ function normalizeProps(tag, input) {
98
+ tag.props = tag.props || {};
99
+ if (!input) {
100
+ return tag;
101
+ }
102
+ Object.entries(input).forEach(([key, value]) => {
103
+ if (value === null) {
104
+ tag.props[key] = null;
105
+ return;
106
+ }
107
+ if (key === "class" || key === "style") {
108
+ tag.props[key] = normalizeStyleClassProps(key, value);
109
+ return;
110
+ }
111
+ if (TagConfigKeys.has(key)) {
112
+ if (["textContent", "innerHTML"].includes(key) && typeof value === "object") {
113
+ let type = input.type;
114
+ if (!input.type) {
115
+ type = "application/json";
116
+ }
117
+ if (!type?.endsWith("json") && type !== "speculationrules") {
118
+ return;
119
+ }
120
+ input.type = type;
121
+ tag.props.type = type;
122
+ tag[key] = JSON.stringify(value);
123
+ } else {
124
+ tag[key] = value;
125
+ }
126
+ return;
127
+ }
128
+ const strValue = String(value);
129
+ const isDataKey = key.startsWith("data-");
130
+ if (strValue === "true" || strValue === "") {
131
+ tag.props[key] = isDataKey ? strValue : true;
132
+ } else if (!value && isDataKey && strValue === "false") {
133
+ tag.props[key] = "false";
134
+ } else if (value !== void 0) {
135
+ tag.props[key] = value;
136
+ }
137
+ });
138
+ return tag;
139
+ }
140
+ function normalizeTag(tagName, _input) {
141
+ const input = typeof _input === "object" && typeof _input !== "function" ? _input : { [tagName === "script" || tagName === "noscript" || tagName === "style" ? "innerHTML" : "textContent"]: _input };
142
+ const tag = normalizeProps({ tag: tagName, props: {} }, input);
143
+ if (tag.key && DupeableTags.has(tag.tag)) {
144
+ tag.props["data-hid"] = tag._h = tag.key;
145
+ }
146
+ if (tag.tag === "script" && typeof tag.innerHTML === "object") {
147
+ tag.innerHTML = JSON.stringify(tag.innerHTML);
148
+ tag.props.type = tag.props.type || "application/json";
149
+ }
150
+ return Array.isArray(tag.props.content) ? tag.props.content.map((v) => ({ ...tag, props: { ...tag.props, content: v } })) : tag;
151
+ }
152
+ function normalizeEntryToTags(input, propResolvers) {
153
+ if (!input) {
154
+ return [];
155
+ }
156
+ if (typeof input === "function") {
157
+ input = input();
158
+ }
159
+ const resolvers = (key, val) => {
160
+ for (let i = 0; i < propResolvers.length; i++) {
161
+ val = propResolvers[i](key, val);
162
+ }
163
+ return val;
164
+ };
165
+ input = resolvers(void 0, input);
166
+ const tags = [];
167
+ input = walkResolver(input, resolvers);
168
+ Object.entries(input || {}).forEach(([key, value]) => {
169
+ if (value === void 0)
170
+ return;
171
+ for (const v of Array.isArray(value) ? value : [value])
172
+ tags.push(normalizeTag(key, v));
173
+ });
174
+ return tags.flat();
175
+ }
176
+
177
+ export { normalizeProps as a, dedupeKey as d, hashTag as h, isMetaArrayDupeKey as i, normalizeEntryToTags as n, walkResolver as w };