renovate-log-parser 0.1.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.
- package/LICENSE +21 -0
- package/README.md +402 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +30 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/analyze.d.ts +24 -0
- package/dist/commands/analyze.js +114 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/detect-errors.d.ts +17 -0
- package/dist/commands/detect-errors.js +119 -0
- package/dist/commands/detect-errors.js.map +1 -0
- package/dist/commands/install-analyze-skill.d.ts +27 -0
- package/dist/commands/install-analyze-skill.js +181 -0
- package/dist/commands/install-analyze-skill.js.map +1 -0
- package/dist/commands/web.d.ts +12 -0
- package/dist/commands/web.js +103 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/core/analyzer.d.ts +89 -0
- package/dist/core/analyzer.js +179 -0
- package/dist/core/analyzer.js.map +1 -0
- package/dist/core/error-detector.d.ts +56 -0
- package/dist/core/error-detector.js +236 -0
- package/dist/core/error-detector.js.map +1 -0
- package/dist/core/filters.d.ts +136 -0
- package/dist/core/filters.js +95 -0
- package/dist/core/filters.js.map +1 -0
- package/dist/core/ignore-file.d.ts +52 -0
- package/dist/core/ignore-file.js +104 -0
- package/dist/core/ignore-file.js.map +1 -0
- package/dist/core/levels.d.ts +33 -0
- package/dist/core/levels.js +35 -0
- package/dist/core/levels.js.map +1 -0
- package/dist/core/parser.d.ts +57 -0
- package/dist/core/parser.js +201 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/query-builder.d.ts +47 -0
- package/dist/core/query-builder.js +155 -0
- package/dist/core/query-builder.js.map +1 -0
- package/dist/core/skill-template.d.ts +34 -0
- package/dist/core/skill-template.js +259 -0
- package/dist/core/skill-template.js.map +1 -0
- package/package.json +68 -0
- package/web/.output/nitro.json +15 -0
- package/web/.output/public/_fonts/57NSSoFy1VLVs2gqly8Ls9awBnZMFyXGrefpmqvdqmc-zJfbBtpgM4cDmcXBsqZNW79_kFnlpPd62b48glgdydA.woff2 +0 -0
- package/web/.output/public/_fonts/8VR2wSMN-3U4NbWAVYXlkRV6hA0jFBXP-0RtL3X7fko-x2gYI4qfmkRdxyQQUPaBZdZdgl1TeVrquF_TxHeM4lM.woff2 +0 -0
- package/web/.output/public/_fonts/GsKUclqeNLJ96g5AU593ug6yanivOiwjW_7zESNPChw-jHA4tBeM1bjF7LATGUpfBuSTyomIFrWBTzjF7txVYfg.woff2 +0 -0
- package/web/.output/public/_fonts/Ld1FnTo3yTIwDyGfTQ5-Fws9AWsCbKfMvgxduXr7JcY-W25bL8NF1fjpLRSOgJb7RoZPHqGQNwMTM7S9tHVoxx8.woff2 +0 -0
- package/web/.output/public/_fonts/NdzqRASp2bovDUhQT1IRE_EMqKJ2KYQdTCfFcBvL8yw-KhwZiS86o3fErOe5GGMExHUemmI_dBfaEFxjISZrBd0.woff2 +0 -0
- package/web/.output/public/_fonts/iTkrULNFJJkTvihIg1Vqi5IODRH_9btXCioVF5l98I8-AndUyau2HR2felA_ra8V2mutQgschhasE5FD1dXGJX8.woff2 +0 -0
- package/web/.output/public/_nuxt/BWja8e3M.js +37 -0
- package/web/.output/public/_nuxt/BgApMHS1.js +1 -0
- package/web/.output/public/_nuxt/CGPWRqbc.js +1 -0
- package/web/.output/public/_nuxt/DlAUqK2U.js +1 -0
- package/web/.output/public/_nuxt/Sgtec1U0.js +1 -0
- package/web/.output/public/_nuxt/builds/latest.json +1 -0
- package/web/.output/public/_nuxt/builds/meta/c4723e49-0623-47af-ae79-9ab6428bdcc1.json +1 -0
- package/web/.output/public/_nuxt/entry.9mB-pyEY.css +1 -0
- package/web/.output/public/_nuxt/error-404.B_PvSG-P.css +1 -0
- package/web/.output/public/_nuxt/error-500.CghkKCEr.css +1 -0
- package/web/.output/public/_nuxt/index.BlvAG7F6.css +1 -0
- package/web/.output/public/favicon.ico +0 -0
- package/web/.output/server/chunks/_/error-500.mjs +19 -0
- package/web/.output/server/chunks/_/error-500.mjs.map +1 -0
- package/web/.output/server/chunks/_/icons.mjs +6153 -0
- package/web/.output/server/chunks/_/icons.mjs.map +1 -0
- package/web/.output/server/chunks/_/icons2.mjs +11494 -0
- package/web/.output/server/chunks/_/icons2.mjs.map +1 -0
- package/web/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs +10 -0
- package/web/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs.map +1 -0
- package/web/.output/server/chunks/build/client.precomputed.mjs +4 -0
- package/web/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
- package/web/.output/server/chunks/build/error-404-DyaaQUIS.mjs +106 -0
- package/web/.output/server/chunks/build/error-404-DyaaQUIS.mjs.map +1 -0
- package/web/.output/server/chunks/build/error-404-styles.9cNA4arh.mjs +8 -0
- package/web/.output/server/chunks/build/error-404-styles.9cNA4arh.mjs.map +1 -0
- package/web/.output/server/chunks/build/error-500-CVSP-p02.mjs +89 -0
- package/web/.output/server/chunks/build/error-500-CVSP-p02.mjs.map +1 -0
- package/web/.output/server/chunks/build/error-500-styles.BX54ZlkH.mjs +8 -0
- package/web/.output/server/chunks/build/error-500-styles.BX54ZlkH.mjs.map +1 -0
- package/web/.output/server/chunks/build/index-88dXYOxO.mjs +19675 -0
- package/web/.output/server/chunks/build/index-88dXYOxO.mjs.map +1 -0
- package/web/.output/server/chunks/build/index-styles.V2iua2bE.mjs +8 -0
- package/web/.output/server/chunks/build/index-styles.V2iua2bE.mjs.map +1 -0
- package/web/.output/server/chunks/build/server.mjs +7910 -0
- package/web/.output/server/chunks/build/server.mjs.map +1 -0
- package/web/.output/server/chunks/build/styles.mjs +10 -0
- package/web/.output/server/chunks/build/styles.mjs.map +1 -0
- package/web/.output/server/chunks/nitro/nitro.mjs +6944 -0
- package/web/.output/server/chunks/nitro/nitro.mjs.map +1 -0
- package/web/.output/server/chunks/routes/api/fields.get.mjs +27 -0
- package/web/.output/server/chunks/routes/api/fields.get.mjs.map +1 -0
- package/web/.output/server/chunks/routes/api/findings.get.mjs +30 -0
- package/web/.output/server/chunks/routes/api/findings.get.mjs.map +1 -0
- package/web/.output/server/chunks/routes/api/log/contents.post.mjs +29 -0
- package/web/.output/server/chunks/routes/api/log/contents.post.mjs.map +1 -0
- package/web/.output/server/chunks/routes/api/log/path.post.mjs +30 -0
- package/web/.output/server/chunks/routes/api/log/path.post.mjs.map +1 -0
- package/web/.output/server/chunks/routes/api/repositories.get.mjs +27 -0
- package/web/.output/server/chunks/routes/api/repositories.get.mjs.map +1 -0
- package/web/.output/server/chunks/routes/api/rows.get.mjs +48 -0
- package/web/.output/server/chunks/routes/api/rows.get.mjs.map +1 -0
- package/web/.output/server/chunks/routes/renderer.mjs +451 -0
- package/web/.output/server/chunks/routes/renderer.mjs.map +1 -0
- package/web/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
- package/web/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
- package/web/.output/server/index.mjs +16 -0
- package/web/.output/server/index.mjs.map +1 -0
- package/web/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs +290 -0
- package/web/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +49 -0
- package/web/.output/server/node_modules/.nitro/hookable@6.1.1/dist/index.mjs +257 -0
- package/web/.output/server/node_modules/.nitro/hookable@6.1.1/package.json +53 -0
- package/web/.output/server/node_modules/@babel/parser/lib/index.js +14599 -0
- package/web/.output/server/node_modules/@babel/parser/package.json +50 -0
- package/web/.output/server/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +1038 -0
- package/web/.output/server/node_modules/@floating-ui/core/package.json +63 -0
- package/web/.output/server/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +789 -0
- package/web/.output/server/node_modules/@floating-ui/dom/package.json +72 -0
- package/web/.output/server/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +165 -0
- package/web/.output/server/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +136 -0
- package/web/.output/server/node_modules/@floating-ui/utils/package.json +70 -0
- package/web/.output/server/node_modules/@floating-ui/vue/dist/floating-ui.vue.mjs +190 -0
- package/web/.output/server/node_modules/@floating-ui/vue/package.json +71 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/colors/index.js +295 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +701 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/css/common.js +75 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/css/format.js +39 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/css/icon.js +47 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/css/icons.js +128 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +19 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +13 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +17 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +16 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +30 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +78 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +100 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +28 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +58 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +48 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +203 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +33 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +132 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +165 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +79 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +92 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +26 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +76 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +66 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +45 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +103 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +36 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +92 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +62 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +25 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +16 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/name.js +57 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/square.js +33 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +12 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +125 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +19 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +25 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +36 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +91 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +46 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +23 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +42 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +123 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/index.js +52 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +30 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +26 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +27 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +105 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +26 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +26 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/misc/title.js +9 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/build.js +113 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +31 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +13 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/html.js +9 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/id.js +41 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +22 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +67 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +54 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/size.js +27 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +7 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/url.js +22 -0
- package/web/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +8 -0
- package/web/.output/server/node_modules/@iconify/utils/package.json +119 -0
- package/web/.output/server/node_modules/@iconify/vue/dist/iconify.mjs +1896 -0
- package/web/.output/server/node_modules/@iconify/vue/package.json +62 -0
- package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/index.js +1268 -0
- package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js +34 -0
- package/web/.output/server/node_modules/@tanstack/virtual-core/dist/esm/utils.js +74 -0
- package/web/.output/server/node_modules/@tanstack/virtual-core/package.json +56 -0
- package/web/.output/server/node_modules/@tanstack/vue-virtual/dist/esm/index.js +66 -0
- package/web/.output/server/node_modules/@tanstack/vue-virtual/package.json +68 -0
- package/web/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6759 -0
- package/web/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
- package/web/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
- package/web/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
- package/web/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
- package/web/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
- package/web/.output/server/node_modules/@vue/devtools-api/dist/index.js +2 -0
- package/web/.output/server/node_modules/@vue/devtools-api/package.json +34 -0
- package/web/.output/server/node_modules/@vue/devtools-kit/dist/index.js +5670 -0
- package/web/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable/dist/index.mjs +290 -0
- package/web/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable/package.json +49 -0
- package/web/.output/server/node_modules/@vue/devtools-kit/package.json +44 -0
- package/web/.output/server/node_modules/@vue/devtools-shared/dist/index.js +239 -0
- package/web/.output/server/node_modules/@vue/devtools-shared/package.json +33 -0
- package/web/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1899 -0
- package/web/.output/server/node_modules/@vue/reactivity/package.json +55 -0
- package/web/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6940 -0
- package/web/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
- package/web/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1822 -0
- package/web/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
- package/web/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +896 -0
- package/web/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
- package/web/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +604 -0
- package/web/.output/server/node_modules/@vue/shared/package.json +47 -0
- package/web/.output/server/node_modules/@vueuse/core/dist/index.js +8464 -0
- package/web/.output/server/node_modules/@vueuse/core/package.json +49 -0
- package/web/.output/server/node_modules/@vueuse/shared/dist/index.js +2013 -0
- package/web/.output/server/node_modules/@vueuse/shared/package.json +42 -0
- package/web/.output/server/node_modules/aria-hidden/dist/es5/index.js +174 -0
- package/web/.output/server/node_modules/aria-hidden/package.json +71 -0
- package/web/.output/server/node_modules/birpc/dist/index.mjs +291 -0
- package/web/.output/server/node_modules/birpc/package.json +57 -0
- package/web/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
- package/web/.output/server/node_modules/consola/dist/core.mjs +512 -0
- package/web/.output/server/node_modules/consola/dist/index.mjs +651 -0
- package/web/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
- package/web/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
- package/web/.output/server/node_modules/consola/package.json +136 -0
- package/web/.output/server/node_modules/devalue/index.js +4 -0
- package/web/.output/server/node_modules/devalue/package.json +40 -0
- package/web/.output/server/node_modules/devalue/src/base64.js +60 -0
- package/web/.output/server/node_modules/devalue/src/constants.js +12 -0
- package/web/.output/server/node_modules/devalue/src/parse.js +283 -0
- package/web/.output/server/node_modules/devalue/src/stringify.js +401 -0
- package/web/.output/server/node_modules/devalue/src/uneval.js +552 -0
- package/web/.output/server/node_modules/devalue/src/utils.js +160 -0
- package/web/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/web/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
- package/web/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
- package/web/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
- package/web/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
- package/web/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
- package/web/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
- package/web/.output/server/node_modules/entities/package.json +120 -0
- package/web/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
- package/web/.output/server/node_modules/estree-walker/package.json +37 -0
- package/web/.output/server/node_modules/hookable/dist/index.mjs +257 -0
- package/web/.output/server/node_modules/hookable/package.json +53 -0
- package/web/.output/server/node_modules/nostics/dist/index.mjs +179 -0
- package/web/.output/server/node_modules/nostics/package.json +124 -0
- package/web/.output/server/node_modules/perfect-debounce/dist/index.mjs +89 -0
- package/web/.output/server/node_modules/perfect-debounce/package.json +41 -0
- package/web/.output/server/node_modules/rou3/dist/index.mjs +501 -0
- package/web/.output/server/node_modules/rou3/package.json +48 -0
- package/web/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
- package/web/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/web/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
- package/web/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/web/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/web/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
- package/web/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
- package/web/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
- package/web/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
- package/web/.output/server/node_modules/source-map-js/lib/util.js +594 -0
- package/web/.output/server/node_modules/source-map-js/package.json +71 -0
- package/web/.output/server/node_modules/source-map-js/source-map.js +8 -0
- package/web/.output/server/node_modules/srvx/dist/_chunks/_body-limit.mjs +39 -0
- package/web/.output/server/node_modules/srvx/dist/_chunks/_plugins.mjs +56 -0
- package/web/.output/server/node_modules/srvx/dist/_chunks/_trust-proxy.mjs +58 -0
- package/web/.output/server/node_modules/srvx/dist/_chunks/_url.mjs +134 -0
- package/web/.output/server/node_modules/srvx/dist/_chunks/_utils.mjs +15 -0
- package/web/.output/server/node_modules/srvx/dist/_chunks/_utils2.mjs +75 -0
- package/web/.output/server/node_modules/srvx/dist/adapters/node.mjs +976 -0
- package/web/.output/server/node_modules/srvx/package.json +102 -0
- package/web/.output/server/node_modules/tailwind-merge/dist/bundle-mjs.mjs +3365 -0
- package/web/.output/server/node_modules/tailwind-merge/package.json +93 -0
- package/web/.output/server/node_modules/tailwind-variants/dist/chunk-LQJYWU4O.js +112 -0
- package/web/.output/server/node_modules/tailwind-variants/dist/chunk-RZF76H2U.js +269 -0
- package/web/.output/server/node_modules/tailwind-variants/dist/index.js +38 -0
- package/web/.output/server/node_modules/tailwind-variants/package.json +122 -0
- package/web/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +1 -0
- package/web/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
- package/web/.output/server/node_modules/tailwindcss/package.json +89 -0
- package/web/.output/server/node_modules/ufo/dist/index.mjs +645 -0
- package/web/.output/server/node_modules/ufo/package.json +48 -0
- package/web/.output/server/node_modules/unhead/dist/index.mjs +9 -0
- package/web/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
- package/web/.output/server/node_modules/unhead/dist/plugins.mjs +101 -0
- package/web/.output/server/node_modules/unhead/dist/scripts.mjs +30 -0
- package/web/.output/server/node_modules/unhead/dist/server.mjs +180 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.B3VbJo7Y.mjs +207 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +269 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.CaI5ZD4O.mjs +182 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.D4vSFytZ.mjs +236 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.Dh1cQCTe.mjs +44 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.TxTMM7cM.mjs +166 -0
- package/web/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
- package/web/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
- package/web/.output/server/node_modules/unhead/node_modules/hookable/dist/index.mjs +257 -0
- package/web/.output/server/node_modules/unhead/node_modules/hookable/package.json +53 -0
- package/web/.output/server/node_modules/unhead/package.json +105 -0
- package/web/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
- package/web/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
- package/web/.output/server/node_modules/vue/index.js +7 -0
- package/web/.output/server/node_modules/vue/index.mjs +1 -0
- package/web/.output/server/node_modules/vue/package.json +112 -0
- package/web/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
- package/web/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +249 -0
- package/web/.output/server/node_modules/vue-bundle-renderer/package.json +57 -0
- package/web/.output/server/node_modules/vue-demi/lib/index.mjs +34 -0
- package/web/.output/server/node_modules/vue-demi/package.json +47 -0
- package/web/.output/server/node_modules/vue-router/dist/devtools-Bpr7ZAVB.js +1056 -0
- package/web/.output/server/node_modules/vue-router/dist/useApi-CROJJdhE.js +436 -0
- package/web/.output/server/node_modules/vue-router/dist/vue-router.js +1543 -0
- package/web/.output/server/node_modules/vue-router/package.json +214 -0
- package/web/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
- package/web/.output/server/package.json +51 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
function flatHooks(configHooks, hooks = {}, parentName) {
|
|
2
|
+
for (const key in configHooks) {
|
|
3
|
+
const subHook = configHooks[key];
|
|
4
|
+
const name = parentName ? `${parentName}:${key}` : key;
|
|
5
|
+
if (typeof subHook === "object" && subHook !== null) flatHooks(subHook, hooks, name);
|
|
6
|
+
else if (typeof subHook === "function") hooks[name] = subHook;
|
|
7
|
+
}
|
|
8
|
+
return hooks;
|
|
9
|
+
}
|
|
10
|
+
function mergeHooks(...hooks) {
|
|
11
|
+
const finalHooks = {};
|
|
12
|
+
for (const hook of hooks) {
|
|
13
|
+
const flatenHook = flatHooks(hook);
|
|
14
|
+
for (const key in flatenHook) if (finalHooks[key]) finalHooks[key].push(flatenHook[key]);
|
|
15
|
+
else finalHooks[key] = [flatenHook[key]];
|
|
16
|
+
}
|
|
17
|
+
for (const key in finalHooks) if (finalHooks[key].length > 1) {
|
|
18
|
+
const array = finalHooks[key];
|
|
19
|
+
finalHooks[key] = (...arguments_) => serial(array, (function_) => function_(...arguments_));
|
|
20
|
+
} else finalHooks[key] = finalHooks[key][0];
|
|
21
|
+
return finalHooks;
|
|
22
|
+
}
|
|
23
|
+
function serial(tasks, function_) {
|
|
24
|
+
return tasks.reduce((promise, task) => promise.then(() => function_(task)), Promise.resolve());
|
|
25
|
+
}
|
|
26
|
+
const createTask = /* @__PURE__ */ (() => {
|
|
27
|
+
if (console.createTask) return console.createTask;
|
|
28
|
+
const defaultTask = { run: (fn) => fn() };
|
|
29
|
+
return () => defaultTask;
|
|
30
|
+
})();
|
|
31
|
+
function callHooks(hooks, args, startIndex, task) {
|
|
32
|
+
for (let i = startIndex; i < hooks.length; i += 1) try {
|
|
33
|
+
const result = task ? task.run(() => hooks[i](...args)) : hooks[i](...args);
|
|
34
|
+
if (result && typeof result.then === "function") return Promise.resolve(result).then(() => callHooks(hooks, args, i + 1, task));
|
|
35
|
+
} catch (error) {
|
|
36
|
+
return Promise.reject(error);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function serialTaskCaller(hooks, args, name) {
|
|
40
|
+
if (hooks.length > 0) return callHooks(hooks, args, 0, createTask(name));
|
|
41
|
+
}
|
|
42
|
+
function parallelTaskCaller(hooks, args, name) {
|
|
43
|
+
if (hooks.length > 0) {
|
|
44
|
+
const task = createTask(name);
|
|
45
|
+
return Promise.all(hooks.map((hook) => task.run(() => hook(...args))));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function serialCaller(hooks, arguments_) {
|
|
49
|
+
return hooks.reduce((promise, hookFunction) => promise.then(() => hookFunction(...arguments_ || [])), Promise.resolve());
|
|
50
|
+
}
|
|
51
|
+
function parallelCaller(hooks, args) {
|
|
52
|
+
return Promise.all(hooks.map((hook) => hook(...args || [])));
|
|
53
|
+
}
|
|
54
|
+
function callEachWith(callbacks, arg0) {
|
|
55
|
+
for (const callback of [...callbacks]) callback(arg0);
|
|
56
|
+
}
|
|
57
|
+
var Hookable = class {
|
|
58
|
+
_hooks;
|
|
59
|
+
_before;
|
|
60
|
+
_after;
|
|
61
|
+
_deprecatedHooks;
|
|
62
|
+
_deprecatedMessages;
|
|
63
|
+
constructor() {
|
|
64
|
+
this._hooks = {};
|
|
65
|
+
this._before = void 0;
|
|
66
|
+
this._after = void 0;
|
|
67
|
+
this._deprecatedMessages = void 0;
|
|
68
|
+
this._deprecatedHooks = {};
|
|
69
|
+
this.hook = this.hook.bind(this);
|
|
70
|
+
this.callHook = this.callHook.bind(this);
|
|
71
|
+
this.callHookWith = this.callHookWith.bind(this);
|
|
72
|
+
}
|
|
73
|
+
hook(name, function_, options = {}) {
|
|
74
|
+
if (!name || typeof function_ !== "function") return () => {};
|
|
75
|
+
const originalName = name;
|
|
76
|
+
let dep;
|
|
77
|
+
while (this._deprecatedHooks[name]) {
|
|
78
|
+
dep = this._deprecatedHooks[name];
|
|
79
|
+
name = dep.to;
|
|
80
|
+
}
|
|
81
|
+
if (dep && !options.allowDeprecated) {
|
|
82
|
+
let message = dep.message;
|
|
83
|
+
if (!message) message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : "");
|
|
84
|
+
if (!this._deprecatedMessages) this._deprecatedMessages = /* @__PURE__ */ new Set();
|
|
85
|
+
if (!this._deprecatedMessages.has(message)) {
|
|
86
|
+
console.warn(message);
|
|
87
|
+
this._deprecatedMessages.add(message);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (!function_.name) try {
|
|
91
|
+
Object.defineProperty(function_, "name", {
|
|
92
|
+
get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb",
|
|
93
|
+
configurable: true
|
|
94
|
+
});
|
|
95
|
+
} catch {}
|
|
96
|
+
this._hooks[name] = this._hooks[name] || [];
|
|
97
|
+
this._hooks[name].push(function_);
|
|
98
|
+
return () => {
|
|
99
|
+
if (function_) {
|
|
100
|
+
this.removeHook(name, function_);
|
|
101
|
+
function_ = void 0;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
hookOnce(name, function_) {
|
|
106
|
+
let _unreg;
|
|
107
|
+
let _function = (...arguments_) => {
|
|
108
|
+
if (typeof _unreg === "function") _unreg();
|
|
109
|
+
_unreg = void 0;
|
|
110
|
+
_function = void 0;
|
|
111
|
+
return function_(...arguments_);
|
|
112
|
+
};
|
|
113
|
+
_unreg = this.hook(name, _function);
|
|
114
|
+
return _unreg;
|
|
115
|
+
}
|
|
116
|
+
removeHook(name, function_) {
|
|
117
|
+
const hooks = this._hooks[name];
|
|
118
|
+
if (hooks) {
|
|
119
|
+
const index = hooks.indexOf(function_);
|
|
120
|
+
if (index !== -1) hooks.splice(index, 1);
|
|
121
|
+
if (hooks.length === 0) this._hooks[name] = void 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
clearHook(name) {
|
|
125
|
+
this._hooks[name] = void 0;
|
|
126
|
+
}
|
|
127
|
+
deprecateHook(name, deprecated) {
|
|
128
|
+
this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated;
|
|
129
|
+
const _hooks = this._hooks[name] || [];
|
|
130
|
+
this._hooks[name] = void 0;
|
|
131
|
+
for (const hook of _hooks) this.hook(name, hook);
|
|
132
|
+
}
|
|
133
|
+
deprecateHooks(deprecatedHooks) {
|
|
134
|
+
for (const name in deprecatedHooks) this.deprecateHook(name, deprecatedHooks[name]);
|
|
135
|
+
}
|
|
136
|
+
addHooks(configHooks) {
|
|
137
|
+
const hooks = flatHooks(configHooks);
|
|
138
|
+
const removeFns = Object.keys(hooks).map((key) => this.hook(key, hooks[key]));
|
|
139
|
+
return () => {
|
|
140
|
+
for (const unreg of removeFns) unreg();
|
|
141
|
+
removeFns.length = 0;
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
removeHooks(configHooks) {
|
|
145
|
+
const hooks = flatHooks(configHooks);
|
|
146
|
+
for (const key in hooks) this.removeHook(key, hooks[key]);
|
|
147
|
+
}
|
|
148
|
+
removeAllHooks() {
|
|
149
|
+
this._hooks = {};
|
|
150
|
+
}
|
|
151
|
+
callHook(name, ...args) {
|
|
152
|
+
return this.callHookWith(serialTaskCaller, name, args);
|
|
153
|
+
}
|
|
154
|
+
callHookParallel(name, ...args) {
|
|
155
|
+
return this.callHookWith(parallelTaskCaller, name, args);
|
|
156
|
+
}
|
|
157
|
+
callHookWith(caller, name, args) {
|
|
158
|
+
const event = this._before || this._after ? {
|
|
159
|
+
name,
|
|
160
|
+
args,
|
|
161
|
+
context: {}
|
|
162
|
+
} : void 0;
|
|
163
|
+
if (this._before) callEachWith(this._before, event);
|
|
164
|
+
const result = caller(this._hooks[name] ? [...this._hooks[name]] : [], args, name);
|
|
165
|
+
if (result instanceof Promise) return result.finally(() => {
|
|
166
|
+
if (this._after && event) callEachWith(this._after, event);
|
|
167
|
+
});
|
|
168
|
+
if (this._after && event) callEachWith(this._after, event);
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
beforeEach(function_) {
|
|
172
|
+
this._before = this._before || [];
|
|
173
|
+
this._before.push(function_);
|
|
174
|
+
return () => {
|
|
175
|
+
if (this._before !== void 0) {
|
|
176
|
+
const index = this._before.indexOf(function_);
|
|
177
|
+
if (index !== -1) this._before.splice(index, 1);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
afterEach(function_) {
|
|
182
|
+
this._after = this._after || [];
|
|
183
|
+
this._after.push(function_);
|
|
184
|
+
return () => {
|
|
185
|
+
if (this._after !== void 0) {
|
|
186
|
+
const index = this._after.indexOf(function_);
|
|
187
|
+
if (index !== -1) this._after.splice(index, 1);
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
function createHooks() {
|
|
193
|
+
return new Hookable();
|
|
194
|
+
}
|
|
195
|
+
var HookableCore = class {
|
|
196
|
+
_hooks;
|
|
197
|
+
constructor() {
|
|
198
|
+
this._hooks = {};
|
|
199
|
+
}
|
|
200
|
+
hook(name, fn) {
|
|
201
|
+
if (!name || typeof fn !== "function") return () => {};
|
|
202
|
+
this._hooks[name] = this._hooks[name] || [];
|
|
203
|
+
this._hooks[name].push(fn);
|
|
204
|
+
return () => {
|
|
205
|
+
if (fn) {
|
|
206
|
+
this.removeHook(name, fn);
|
|
207
|
+
fn = void 0;
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
removeHook(name, function_) {
|
|
212
|
+
const hooks = this._hooks[name];
|
|
213
|
+
if (hooks) {
|
|
214
|
+
const index = hooks.indexOf(function_);
|
|
215
|
+
if (index !== -1) hooks.splice(index, 1);
|
|
216
|
+
if (hooks.length === 0) this._hooks[name] = void 0;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
callHook(name, ...args) {
|
|
220
|
+
const hooks = this._hooks[name];
|
|
221
|
+
if (!hooks || hooks.length === 0) return;
|
|
222
|
+
return callHooks(hooks, args, 0);
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
const isBrowser = typeof window !== "undefined";
|
|
226
|
+
function createDebugger(hooks, _options = {}) {
|
|
227
|
+
const options = {
|
|
228
|
+
inspect: isBrowser,
|
|
229
|
+
group: isBrowser,
|
|
230
|
+
filter: () => true,
|
|
231
|
+
..._options
|
|
232
|
+
};
|
|
233
|
+
const _filter = options.filter;
|
|
234
|
+
const filter = typeof _filter === "string" ? (name) => name.startsWith(_filter) : _filter;
|
|
235
|
+
const _tag = options.tag ? `[${options.tag}] ` : "";
|
|
236
|
+
const logPrefix = (event) => _tag + event.name + "".padEnd(event._id, "\0");
|
|
237
|
+
const _idCtr = {};
|
|
238
|
+
const unsubscribeBefore = hooks.beforeEach((event) => {
|
|
239
|
+
if (filter !== void 0 && !filter(event.name)) return;
|
|
240
|
+
_idCtr[event.name] = _idCtr[event.name] || 0;
|
|
241
|
+
event._id = _idCtr[event.name]++;
|
|
242
|
+
console.time(logPrefix(event));
|
|
243
|
+
});
|
|
244
|
+
const unsubscribeAfter = hooks.afterEach((event) => {
|
|
245
|
+
if (filter !== void 0 && !filter(event.name)) return;
|
|
246
|
+
if (options.group) console.groupCollapsed(event.name);
|
|
247
|
+
if (options.inspect) console.timeLog(logPrefix(event), event.args);
|
|
248
|
+
else console.timeEnd(logPrefix(event));
|
|
249
|
+
if (options.group) console.groupEnd();
|
|
250
|
+
_idCtr[event.name]--;
|
|
251
|
+
});
|
|
252
|
+
return { close: () => {
|
|
253
|
+
unsubscribeBefore();
|
|
254
|
+
unsubscribeAfter();
|
|
255
|
+
} };
|
|
256
|
+
}
|
|
257
|
+
export { Hookable, HookableCore, createDebugger, createHooks, flatHooks, mergeHooks, parallelCaller, serial, serialCaller };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "hookable",
|
|
3
|
+
"version": "6.1.1",
|
|
4
|
+
"description": "Awaitable hook system",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"hook",
|
|
7
|
+
"hookable",
|
|
8
|
+
"plugin",
|
|
9
|
+
"tapable",
|
|
10
|
+
"tappable"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"repository": "unjs/hookable",
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"type": "module",
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"main": "./dist/index.mjs",
|
|
20
|
+
"types": "./dist/index.d.mts",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": "./dist/index.mjs"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"bench": "node --expose-gc --allow-natives-syntax test/bench.ts",
|
|
26
|
+
"build": "obuild src/index.ts",
|
|
27
|
+
"dev": "vitest",
|
|
28
|
+
"lint": "oxlint . && oxfmt --check src test",
|
|
29
|
+
"lint:fix": "oxlint . --fix && oxfmt src test",
|
|
30
|
+
"prepublish": "pnpm build",
|
|
31
|
+
"release": "pnpm test && pnpm build && changelogen --release --publish --push",
|
|
32
|
+
"test": "pnpm lint && vitest run --coverage",
|
|
33
|
+
"test:types": "tsgo --noEmit"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/node": "^25.6.0",
|
|
37
|
+
"@typescript/native-preview": "^7.0.0-dev.20260414.1",
|
|
38
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
39
|
+
"changelogen": "^0.6.2",
|
|
40
|
+
"esbuild": "^0.28.0",
|
|
41
|
+
"eslint-config-unjs": "^0.6.2",
|
|
42
|
+
"expect-type": "^1.3.0",
|
|
43
|
+
"hookable-prev": "npm:hookable@^6.1.0",
|
|
44
|
+
"mitata": "^1.0.34",
|
|
45
|
+
"obuild": "^0.4.33",
|
|
46
|
+
"oxfmt": "^0.45.0",
|
|
47
|
+
"oxlint": "^1.60.0",
|
|
48
|
+
"typescript": "^6.0.2",
|
|
49
|
+
"vite": "^8.0.8",
|
|
50
|
+
"vitest": "^4.1.4"
|
|
51
|
+
},
|
|
52
|
+
"packageManager": "pnpm@10.33.0"
|
|
53
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
//#region src/formatters/plain.ts
|
|
2
|
+
/**
|
|
3
|
+
* Renders a diagnostic into a multi-line, unicode-decorated string suitable
|
|
4
|
+
* for terminal output. The first line is `[<name>] <message>`; optional
|
|
5
|
+
* details (`fix`, `sources`, `docs`) follow with `├▶`/`╰▶` connectors.
|
|
6
|
+
*/
|
|
7
|
+
function formatDiagnostic(diagnostic) {
|
|
8
|
+
const header = `[${diagnostic.name}] ${diagnostic.message}`;
|
|
9
|
+
const details = [];
|
|
10
|
+
if (diagnostic.fix) details.push(`fix: ${diagnostic.fix}`);
|
|
11
|
+
if (diagnostic.sources?.length) details.push(`sources: ${diagnostic.sources.join(", ")}`);
|
|
12
|
+
if (diagnostic.docs) details.push(`see: ${diagnostic.docs}`);
|
|
13
|
+
if (details.length === 0) return header;
|
|
14
|
+
return [header, ...details.map((detail, i) => {
|
|
15
|
+
return `${i < details.length - 1 ? "├▶" : "╰▶"} ${detail}`;
|
|
16
|
+
})].join("\n");
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/utils.ts
|
|
20
|
+
/**
|
|
21
|
+
* Transforms a value or a function that returns a value to a value.
|
|
22
|
+
*
|
|
23
|
+
* @param valFn either a value or a function that returns a value
|
|
24
|
+
* @param args arguments to pass to the function if `valFn` is a function
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
function toValueWithArgs(valFn, ...args) {
|
|
29
|
+
return typeof valFn === "function" ? valFn(...args) : valFn;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/diagnostic.ts
|
|
33
|
+
/**
|
|
34
|
+
* Creates a console reporter that renders each diagnostic with `formatter` and
|
|
35
|
+
* prints the result via `console[method]`. Both default sensibly (`'warn'` and
|
|
36
|
+
* {@link formatDiagnostic}); `method` can also be overridden per call through
|
|
37
|
+
* the reporter options.
|
|
38
|
+
*/
|
|
39
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
40
|
+
function createConsoleReporter({ method: defaultMethod = "warn", formatter = formatDiagnostic } = {}) {
|
|
41
|
+
return (diagnostic, { method = defaultMethod } = {}) => {
|
|
42
|
+
console[method](formatter(diagnostic));
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const captureStackTrace = Error.captureStackTrace;
|
|
46
|
+
var Diagnostic = class Diagnostic extends Error {
|
|
47
|
+
name = "Diagnostic";
|
|
48
|
+
/**
|
|
49
|
+
* URL to extended documentation for this diagnostic code.
|
|
50
|
+
* Auto-generated from {@link DefineDiagnosticsOptions.docsBase}.
|
|
51
|
+
*/
|
|
52
|
+
docs;
|
|
53
|
+
/**
|
|
54
|
+
* Optional actionable instructions on how to resolve the problem.
|
|
55
|
+
*/
|
|
56
|
+
fix;
|
|
57
|
+
/**
|
|
58
|
+
* Locations in user code that contributed to this diagnostic, in
|
|
59
|
+
* `file:line:column` format. Relevant when the stack trace doesn't reflect
|
|
60
|
+
* the user's source (e.g. compilers, bundlers), otherwise redundant with the
|
|
61
|
+
* stack and should be omitted.
|
|
62
|
+
*/
|
|
63
|
+
sources;
|
|
64
|
+
/**
|
|
65
|
+
* Alias for {@link Error.message}: the reason this diagnostic was raised.
|
|
66
|
+
*/
|
|
67
|
+
get why() {
|
|
68
|
+
return this.message;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @param init structured initializer; `why` is required
|
|
72
|
+
* @param captureFrom V8 stack-cutoff frame. Defaults to {@link Diagnostic}
|
|
73
|
+
* so the top of the trace is the `new Diagnostic(...)` call site.
|
|
74
|
+
* `defineDiagnostics` passes its action method to strip its own frames too.
|
|
75
|
+
* Ignored on engines without `Error.captureStackTrace`.
|
|
76
|
+
*/
|
|
77
|
+
constructor(init, captureFrom = Diagnostic) {
|
|
78
|
+
super(init.why, { cause: init.cause });
|
|
79
|
+
this.fix = init.fix;
|
|
80
|
+
this.docs = init.docs;
|
|
81
|
+
this.sources = init.sources;
|
|
82
|
+
captureStackTrace?.(this, captureFrom);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Converts the diagnostic into a serializable structured object.
|
|
86
|
+
*/
|
|
87
|
+
toJSON() {
|
|
88
|
+
return {
|
|
89
|
+
name: this.name,
|
|
90
|
+
why: this.why,
|
|
91
|
+
fix: this.fix,
|
|
92
|
+
docs: this.docs,
|
|
93
|
+
sources: this.sources,
|
|
94
|
+
cause: this.cause,
|
|
95
|
+
stack: this.stack
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Resolves the docs URL for a code from a `docsBase` (string template or
|
|
101
|
+
* resolver function). Shared by {@link defineDiagnostics} and
|
|
102
|
+
* {@link defineProdDiagnostics}. Per-code `docs` overrides are handled by the
|
|
103
|
+
* caller; this only covers the `docsBase`-derived case.
|
|
104
|
+
*
|
|
105
|
+
* @internal
|
|
106
|
+
*/
|
|
107
|
+
function deriveDocs(docsBase, code) {
|
|
108
|
+
return typeof docsBase === "string" ? `${docsBase}/${code.toLowerCase()}` : docsBase?.(code);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Creates a typed diagnostics object from a set of code definitions. Each
|
|
112
|
+
* code becomes a callable {@link DiagnosticHandle}: invoke to report, or
|
|
113
|
+
* `throw` the result to raise. No `new` required, no proxy.
|
|
114
|
+
*/
|
|
115
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
116
|
+
function defineDiagnostics(options) {
|
|
117
|
+
const reporters = options.reporters ?? [];
|
|
118
|
+
const result = {};
|
|
119
|
+
const { docsBase } = options;
|
|
120
|
+
for (const code of Object.keys(options.codes)) {
|
|
121
|
+
const def = options.codes[code];
|
|
122
|
+
const docs = def.docs === false ? void 0 : def.docs || deriveDocs(docsBase, code);
|
|
123
|
+
const handle = (params = {}, reporterOptions = {}) => {
|
|
124
|
+
const diagnostic = new Diagnostic({
|
|
125
|
+
why: toValueWithArgs(def.why, params),
|
|
126
|
+
fix: toValueWithArgs(def.fix, params),
|
|
127
|
+
docs,
|
|
128
|
+
cause: params.cause,
|
|
129
|
+
sources: params.sources
|
|
130
|
+
}, handle);
|
|
131
|
+
diagnostic.name = code;
|
|
132
|
+
for (const reporter of reporters) reporter(diagnostic, reporterOptions);
|
|
133
|
+
return diagnostic;
|
|
134
|
+
};
|
|
135
|
+
result[code] = handle;
|
|
136
|
+
}
|
|
137
|
+
return result;
|
|
138
|
+
}
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/prod-diagnostics.ts
|
|
141
|
+
/**
|
|
142
|
+
* Production counterpart to {@link defineDiagnostics}. Returns a `Proxy` that
|
|
143
|
+
* builds a minimal {@link Diagnostic} for any accessed code: the code becomes
|
|
144
|
+
* both the `message` (`why`) and the instance `name`, and `docs` is derived
|
|
145
|
+
* from `docsBase`. It carries no catalog text, so it stays tiny in a bundle.
|
|
146
|
+
*
|
|
147
|
+
* The strip plugin (`@nostics/unplugin`) can rewrite a `defineDiagnostics()`
|
|
148
|
+
* call into a `process.env.NODE_ENV === 'production'` ternary that selects this
|
|
149
|
+
* factory in production, dropping every `why`/`fix` string from the bundle.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* const diagnostics = defineProdDiagnostics({ docsBase: 'https://docs.example.com' })
|
|
154
|
+
* throw diagnostics.NUXT_B2011() // Error: NUXT_B2011, docs derived from docsBase
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
158
|
+
function defineProdDiagnostics(options = {}) {
|
|
159
|
+
const { docsBase, reporters = [] } = options;
|
|
160
|
+
return new Proxy({}, { get(_target, code) {
|
|
161
|
+
if (typeof code !== "string") return void 0;
|
|
162
|
+
const handle = (params = {}, reporterOptions = {}) => {
|
|
163
|
+
const diagnostic = new Diagnostic({
|
|
164
|
+
why: code,
|
|
165
|
+
docs: deriveDocs(docsBase, code),
|
|
166
|
+
cause: params.cause,
|
|
167
|
+
sources: params.sources
|
|
168
|
+
}, handle);
|
|
169
|
+
diagnostic.name = code;
|
|
170
|
+
for (const reporter of reporters) reporter(diagnostic, reporterOptions);
|
|
171
|
+
return diagnostic;
|
|
172
|
+
};
|
|
173
|
+
return handle;
|
|
174
|
+
} });
|
|
175
|
+
}
|
|
176
|
+
//#endregion
|
|
177
|
+
export { Diagnostic, createConsoleReporter, defineDiagnostics, defineProdDiagnostics, formatDiagnostic };
|
|
178
|
+
|
|
179
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nostics",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "1.1.4",
|
|
5
|
+
"description": "Structured diagnostic code library",
|
|
6
|
+
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
|
+
"contributors": [
|
|
8
|
+
"Eduardo San Martin Morote <posva13@gmail.com>"
|
|
9
|
+
],
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"homepage": "https://github.com/vercel-labs/nostics#readme",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/vercel-labs/nostics.git"
|
|
15
|
+
},
|
|
16
|
+
"bugs": "https://github.com/vercel-labs/nostics/issues",
|
|
17
|
+
"keywords": [],
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"exports": {
|
|
20
|
+
".": "./dist/index.mjs",
|
|
21
|
+
"./formatters/ansi": "./dist/formatters/ansi.mjs",
|
|
22
|
+
"./formatters/json": "./dist/formatters/json.mjs",
|
|
23
|
+
"./reporters/dev": "./dist/reporters/dev.mjs",
|
|
24
|
+
"./reporters/fetch": "./dist/reporters/fetch.mjs",
|
|
25
|
+
"./reporters/node": "./dist/reporters/node.mjs",
|
|
26
|
+
"./package.json": "./package.json"
|
|
27
|
+
},
|
|
28
|
+
"types": "./dist/index.d.mts",
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"skills"
|
|
32
|
+
],
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@antfu/eslint-config": "^9.0.0",
|
|
35
|
+
"@antfu/ni": "^30.1.0",
|
|
36
|
+
"@antfu/utils": "^9.3.0",
|
|
37
|
+
"@posva/prompts": "^2.4.4",
|
|
38
|
+
"@size-limit/esbuild-why": "^12.1.0",
|
|
39
|
+
"@size-limit/preset-small-lib": "^12.1.0",
|
|
40
|
+
"@types/node": "^25.9.3",
|
|
41
|
+
"@types/semver": "^7.7.1",
|
|
42
|
+
"@vitest/coverage-v8": "4.1.8",
|
|
43
|
+
"@vitest/ui": "4.1.8",
|
|
44
|
+
"conventional-changelog": "^7.2.0",
|
|
45
|
+
"conventional-changelog-angular": "^8.3.1",
|
|
46
|
+
"eslint": "^10.5.0",
|
|
47
|
+
"lint-staged": "^17.0.7",
|
|
48
|
+
"oxfmt": "^0.54.0",
|
|
49
|
+
"publint": "^0.3.21",
|
|
50
|
+
"semver": "^7.8.4",
|
|
51
|
+
"simple-git-hooks": "^2.13.1",
|
|
52
|
+
"size-limit": "^12.1.0",
|
|
53
|
+
"tsdown": "^0.22.2",
|
|
54
|
+
"tsnapi": "^0.3.3",
|
|
55
|
+
"typescript": "^6.0.3",
|
|
56
|
+
"vite": "^8.0.16",
|
|
57
|
+
"vitest": "^4.1.8",
|
|
58
|
+
"nostics": "1.1.4"
|
|
59
|
+
},
|
|
60
|
+
"simple-git-hooks": {
|
|
61
|
+
"pre-commit": "pnpm i --frozen-lockfile --ignore-scripts --offline && npx lint-staged"
|
|
62
|
+
},
|
|
63
|
+
"lint-staged": {
|
|
64
|
+
"*": "eslint --fix"
|
|
65
|
+
},
|
|
66
|
+
"size-limit": [
|
|
67
|
+
{
|
|
68
|
+
"name": "defineDiagnostics from source",
|
|
69
|
+
"path": "src/index.ts",
|
|
70
|
+
"import": "{ defineDiagnostics }"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "defineDiagnostics",
|
|
74
|
+
"path": "dist/index.mjs",
|
|
75
|
+
"import": "{ defineDiagnostics }"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "defineProdDiagnostics",
|
|
79
|
+
"path": "dist/index.mjs",
|
|
80
|
+
"import": "{ defineProdDiagnostics }"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "defineDiagnostics + createConsoleReporter",
|
|
84
|
+
"path": "dist/index.mjs",
|
|
85
|
+
"import": "{ defineDiagnostics, createConsoleReporter }"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "defineProdDiagnostics + createConsoleReporter",
|
|
89
|
+
"path": "dist/index.mjs",
|
|
90
|
+
"import": "{ defineProdDiagnostics, createConsoleReporter }"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "formatDiagnostic",
|
|
94
|
+
"path": "dist/index.mjs",
|
|
95
|
+
"import": "{ formatDiagnostic }"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "full root",
|
|
99
|
+
"path": "dist/index.mjs",
|
|
100
|
+
"import": "*"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "ansi formatter",
|
|
104
|
+
"path": "dist/formatters/ansi.mjs",
|
|
105
|
+
"import": "*"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"scripts": {
|
|
109
|
+
"build": "tsdown && pnpm --filter \"./packages/*\" run build",
|
|
110
|
+
"dev": "vitest",
|
|
111
|
+
"docs": "pnpm -C docs run dev",
|
|
112
|
+
"docs:build": "pnpm -C docs run build",
|
|
113
|
+
"play": "pnpm -C playground run dev",
|
|
114
|
+
"lint": "eslint",
|
|
115
|
+
"release": "node scripts/release.ts",
|
|
116
|
+
"size": "size-limit",
|
|
117
|
+
"test": "pnpm run build && pnpm run \"/^test:/\"",
|
|
118
|
+
"test:unit": "vitest run --coverage",
|
|
119
|
+
"test:types": "pnpm run typecheck",
|
|
120
|
+
"test:lint": "pnpm run lint",
|
|
121
|
+
"test:demo": "pnpm -C demo-lib run build && pnpm -C demo-lib run test && pnpm -C playground run build",
|
|
122
|
+
"typecheck": "tsc && pnpm --filter \"./packages/*\" run typecheck"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
//#region src/index.ts
|
|
2
|
+
const DEBOUNCE_DEFAULTS = { trailing: true };
|
|
3
|
+
/**
|
|
4
|
+
Debounce functions
|
|
5
|
+
@param fn - Promise-returning/async function to debounce.
|
|
6
|
+
@param wait - Milliseconds to wait before calling `fn`. Default value is 25ms
|
|
7
|
+
@returns A function that delays calling `fn` until after `wait` milliseconds have elapsed since the last time it was called.
|
|
8
|
+
@example
|
|
9
|
+
```
|
|
10
|
+
import { debounce } from 'perfect-debounce';
|
|
11
|
+
const expensiveCall = async input => input;
|
|
12
|
+
const debouncedFn = debounce(expensiveCall, 200);
|
|
13
|
+
for (const number of [1, 2, 3]) {
|
|
14
|
+
console.log(await debouncedFn(number));
|
|
15
|
+
}
|
|
16
|
+
//=> 1
|
|
17
|
+
//=> 2
|
|
18
|
+
//=> 3
|
|
19
|
+
```
|
|
20
|
+
*/
|
|
21
|
+
function debounce(fn, wait = 25, options = {}) {
|
|
22
|
+
options = {
|
|
23
|
+
...DEBOUNCE_DEFAULTS,
|
|
24
|
+
...options
|
|
25
|
+
};
|
|
26
|
+
if (!Number.isFinite(wait)) throw new TypeError("Expected `wait` to be a finite number");
|
|
27
|
+
let leadingValue;
|
|
28
|
+
let timeout;
|
|
29
|
+
let resolveList = [];
|
|
30
|
+
let currentPromise;
|
|
31
|
+
let trailingArgs;
|
|
32
|
+
const applyFn = (_this, args) => {
|
|
33
|
+
currentPromise = _applyPromised(fn, _this, args);
|
|
34
|
+
currentPromise.finally(() => {
|
|
35
|
+
currentPromise = null;
|
|
36
|
+
if (options.trailing && trailingArgs && !timeout) {
|
|
37
|
+
const promise = applyFn(_this, trailingArgs);
|
|
38
|
+
trailingArgs = null;
|
|
39
|
+
return promise;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return currentPromise;
|
|
43
|
+
};
|
|
44
|
+
const debounced = function(...args) {
|
|
45
|
+
if (options.trailing) trailingArgs = args;
|
|
46
|
+
if (currentPromise) return currentPromise;
|
|
47
|
+
return new Promise((resolve) => {
|
|
48
|
+
const shouldCallNow = !timeout && options.leading;
|
|
49
|
+
clearTimeout(timeout);
|
|
50
|
+
timeout = setTimeout(() => {
|
|
51
|
+
timeout = null;
|
|
52
|
+
const promise = options.leading ? leadingValue : applyFn(this, args);
|
|
53
|
+
trailingArgs = null;
|
|
54
|
+
for (const _resolve of resolveList) _resolve(promise);
|
|
55
|
+
resolveList = [];
|
|
56
|
+
}, wait);
|
|
57
|
+
if (shouldCallNow) {
|
|
58
|
+
leadingValue = applyFn(this, args);
|
|
59
|
+
resolve(leadingValue);
|
|
60
|
+
} else resolveList.push(resolve);
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
const _clearTimeout = (timer) => {
|
|
64
|
+
if (timer) {
|
|
65
|
+
clearTimeout(timer);
|
|
66
|
+
timeout = null;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
debounced.isPending = () => !!timeout;
|
|
70
|
+
debounced.cancel = () => {
|
|
71
|
+
_clearTimeout(timeout);
|
|
72
|
+
resolveList = [];
|
|
73
|
+
trailingArgs = null;
|
|
74
|
+
};
|
|
75
|
+
debounced.flush = () => {
|
|
76
|
+
_clearTimeout(timeout);
|
|
77
|
+
if (!trailingArgs || currentPromise) return;
|
|
78
|
+
const args = trailingArgs;
|
|
79
|
+
trailingArgs = null;
|
|
80
|
+
return applyFn(this, args);
|
|
81
|
+
};
|
|
82
|
+
return debounced;
|
|
83
|
+
}
|
|
84
|
+
async function _applyPromised(fn, _this, args) {
|
|
85
|
+
return await fn.apply(_this, args);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
//#endregion
|
|
89
|
+
export { debounce };
|