shelfware 0.0.1 → 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.
Files changed (206) hide show
  1. package/.output/nitro.json +15 -0
  2. package/.output/public/_nuxt/6IstVYrV.js +1 -0
  3. package/.output/public/_nuxt/9C5WUlLE.js +36 -0
  4. package/.output/public/_nuxt/BDNMzG2s.js +1 -0
  5. package/.output/public/_nuxt/BW3xJdEx.js +1 -0
  6. package/.output/public/_nuxt/BXXtFil5.js +1 -0
  7. package/.output/public/_nuxt/BZuUK3cr.js +1 -0
  8. package/.output/public/_nuxt/BeLyMmd4.js +1 -0
  9. package/.output/public/_nuxt/C_VgD9ZI.js +3 -0
  10. package/.output/public/_nuxt/DB5Vxbte.js +2 -0
  11. package/.output/public/_nuxt/DMg0j7gv.js +14 -0
  12. package/.output/public/_nuxt/builds/latest.json +1 -0
  13. package/.output/public/_nuxt/builds/meta/4c307968-4837-497b-a570-d6ee336accc4.json +1 -0
  14. package/.output/public/_nuxt/entry.b3_DJTEt.css +2 -0
  15. package/.output/public/_nuxt/error-404.CHsn7XF-.css +1 -0
  16. package/.output/public/_nuxt/error-500.Bawx2bLr.css +1 -0
  17. package/.output/server/chunks/_/api-handler.mjs +44 -0
  18. package/.output/server/chunks/_/batch.mjs +27 -0
  19. package/.output/server/chunks/_/catalog.mjs +1115 -0
  20. package/.output/server/chunks/_/detail.mjs +16 -0
  21. package/.output/server/chunks/_/error-500.mjs +19 -0
  22. package/.output/server/chunks/_/quarantine.mjs +159 -0
  23. package/.output/server/chunks/nitro/nitro.mjs +5399 -0
  24. package/.output/server/chunks/routes/api/_..._.mjs +16 -0
  25. package/.output/server/chunks/routes/api/health.get.mjs +13 -0
  26. package/.output/server/chunks/routes/api/skills/_id/file.get.mjs +25 -0
  27. package/.output/server/chunks/routes/api/skills/_id_.get.mjs +25 -0
  28. package/.output/server/chunks/routes/api/skills/_id_.put.mjs +74 -0
  29. package/.output/server/chunks/routes/api/skills/delete.post.mjs +48 -0
  30. package/.output/server/chunks/routes/api/skills/quarantine.post.mjs +26 -0
  31. package/.output/server/chunks/routes/api/skills/restore.post.mjs +26 -0
  32. package/.output/server/chunks/routes/api/skills.get.mjs +41 -0
  33. package/.output/server/chunks/routes/renderer.mjs +341 -0
  34. package/.output/server/chunks/virtual/_virtual_spa-template.mjs +3 -0
  35. package/.output/server/chunks/virtual/precomputed.mjs +3 -0
  36. package/.output/server/index.mjs +9 -0
  37. package/.output/server/node_modules/@babel/parser/lib/index.js +14611 -0
  38. package/.output/server/node_modules/@babel/parser/package.json +50 -0
  39. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6801 -0
  40. package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  41. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +692 -0
  42. package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  43. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1420 -0
  44. package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  45. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1903 -0
  46. package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  47. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6980 -0
  48. package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  49. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1867 -0
  50. package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  51. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +904 -0
  52. package/.output/server/node_modules/@vue/server-renderer/package.json +53 -0
  53. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +636 -0
  54. package/.output/server/node_modules/@vue/shared/package.json +47 -0
  55. package/.output/server/node_modules/devalue/index.js +17 -0
  56. package/.output/server/node_modules/devalue/package.json +39 -0
  57. package/.output/server/node_modules/devalue/src/base64.js +60 -0
  58. package/.output/server/node_modules/devalue/src/constants.js +12 -0
  59. package/.output/server/node_modules/devalue/src/operations.js +193 -0
  60. package/.output/server/node_modules/devalue/src/parse.js +274 -0
  61. package/.output/server/node_modules/devalue/src/stringify.js +428 -0
  62. package/.output/server/node_modules/devalue/src/uneval.js +606 -0
  63. package/.output/server/node_modules/devalue/src/utils.js +185 -0
  64. package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  65. package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  66. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  67. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  68. package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  69. package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  70. package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
  71. package/.output/server/node_modules/entities/package.json +120 -0
  72. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  73. package/.output/server/node_modules/estree-walker/package.json +37 -0
  74. package/.output/server/node_modules/hookable/dist/index.mjs +257 -0
  75. package/.output/server/node_modules/hookable/package.json +53 -0
  76. package/.output/server/node_modules/nostics/dist/formatters/ansi.mjs +19 -0
  77. package/.output/server/node_modules/nostics/dist/index.mjs +187 -0
  78. package/.output/server/node_modules/nostics/package.json +125 -0
  79. package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  80. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  81. package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  82. package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  83. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  84. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  85. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  86. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  87. package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
  88. package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  89. package/.output/server/node_modules/source-map-js/package.json +71 -0
  90. package/.output/server/node_modules/source-map-js/source-map.js +8 -0
  91. package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
  92. package/.output/server/node_modules/ufo/package.json +48 -0
  93. package/.output/server/node_modules/unhead/dist/client.mjs +22 -0
  94. package/.output/server/node_modules/unhead/dist/legacy.mjs +33 -0
  95. package/.output/server/node_modules/unhead/dist/minify.mjs +183 -0
  96. package/.output/server/node_modules/unhead/dist/parser.mjs +518 -0
  97. package/.output/server/node_modules/unhead/dist/plugins.mjs +720 -0
  98. package/.output/server/node_modules/unhead/dist/server.mjs +99 -0
  99. package/.output/server/node_modules/unhead/dist/shared/unhead.-hZVKou0.mjs +400 -0
  100. package/.output/server/node_modules/unhead/dist/shared/unhead.BEmVMkeA.mjs +673 -0
  101. package/.output/server/node_modules/unhead/dist/shared/unhead.BGFxPGPQ.mjs +47 -0
  102. package/.output/server/node_modules/unhead/dist/shared/unhead.BQWSw36o.mjs +192 -0
  103. package/.output/server/node_modules/unhead/dist/shared/unhead.Bf_fPVYA.mjs +6 -0
  104. package/.output/server/node_modules/unhead/dist/shared/unhead.Bjbp1C8D.mjs +224 -0
  105. package/.output/server/node_modules/unhead/dist/shared/unhead.Bm4Y6XQI.mjs +17 -0
  106. package/.output/server/node_modules/unhead/dist/shared/unhead.C5Bksi2B.mjs +49 -0
  107. package/.output/server/node_modules/unhead/dist/shared/unhead.CGPOfp5O.mjs +32 -0
  108. package/.output/server/node_modules/unhead/dist/shared/unhead.CHEy9ana.mjs +7 -0
  109. package/.output/server/node_modules/unhead/dist/shared/unhead.D7HkBzZn.mjs +59 -0
  110. package/.output/server/node_modules/unhead/dist/shared/unhead.Dssd7L5I.mjs +196 -0
  111. package/.output/server/node_modules/unhead/dist/shared/unhead.jEy9BmRq.mjs +264 -0
  112. package/.output/server/node_modules/unhead/dist/shared/unhead.oZ7pkTV1.mjs +19 -0
  113. package/.output/server/node_modules/unhead/dist/shared/unhead.tQnRaXfX.mjs +240 -0
  114. package/.output/server/node_modules/unhead/dist/stream/client.mjs +33 -0
  115. package/.output/server/node_modules/unhead/dist/stream/iife.mjs +2 -0
  116. package/.output/server/node_modules/unhead/dist/stream/server.mjs +445 -0
  117. package/.output/server/node_modules/unhead/dist/utils.mjs +7 -0
  118. package/.output/server/node_modules/unhead/package.json +179 -0
  119. package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  120. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  121. package/.output/server/node_modules/vue/index.js +7 -0
  122. package/.output/server/node_modules/vue/index.mjs +1 -0
  123. package/.output/server/node_modules/vue/package.json +112 -0
  124. package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  125. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +278 -0
  126. package/.output/server/node_modules/vue-bundle-renderer/package.json +54 -0
  127. package/.output/server/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  128. package/.output/server/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  129. package/.output/server/node_modules/yaml/dist/compose/compose-node.js +112 -0
  130. package/.output/server/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  131. package/.output/server/node_modules/yaml/dist/compose/composer.js +224 -0
  132. package/.output/server/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  133. package/.output/server/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  134. package/.output/server/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  135. package/.output/server/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  136. package/.output/server/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  137. package/.output/server/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
  138. package/.output/server/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  139. package/.output/server/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  140. package/.output/server/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  141. package/.output/server/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  142. package/.output/server/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  143. package/.output/server/node_modules/yaml/dist/doc/Document.js +337 -0
  144. package/.output/server/node_modules/yaml/dist/doc/anchors.js +76 -0
  145. package/.output/server/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  146. package/.output/server/node_modules/yaml/dist/doc/createNode.js +90 -0
  147. package/.output/server/node_modules/yaml/dist/doc/directives.js +178 -0
  148. package/.output/server/node_modules/yaml/dist/errors.js +62 -0
  149. package/.output/server/node_modules/yaml/dist/index.js +50 -0
  150. package/.output/server/node_modules/yaml/dist/log.js +19 -0
  151. package/.output/server/node_modules/yaml/dist/nodes/Alias.js +118 -0
  152. package/.output/server/node_modules/yaml/dist/nodes/Collection.js +151 -0
  153. package/.output/server/node_modules/yaml/dist/nodes/Node.js +40 -0
  154. package/.output/server/node_modules/yaml/dist/nodes/Pair.js +39 -0
  155. package/.output/server/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  156. package/.output/server/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  157. package/.output/server/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  158. package/.output/server/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  159. package/.output/server/node_modules/yaml/dist/nodes/identity.js +53 -0
  160. package/.output/server/node_modules/yaml/dist/nodes/toJS.js +39 -0
  161. package/.output/server/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  162. package/.output/server/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  163. package/.output/server/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  164. package/.output/server/node_modules/yaml/dist/parse/cst.js +112 -0
  165. package/.output/server/node_modules/yaml/dist/parse/lexer.js +723 -0
  166. package/.output/server/node_modules/yaml/dist/parse/line-counter.js +41 -0
  167. package/.output/server/node_modules/yaml/dist/parse/parser.js +980 -0
  168. package/.output/server/node_modules/yaml/dist/public-api.js +107 -0
  169. package/.output/server/node_modules/yaml/dist/schema/Schema.js +39 -0
  170. package/.output/server/node_modules/yaml/dist/schema/common/map.js +19 -0
  171. package/.output/server/node_modules/yaml/dist/schema/common/null.js +17 -0
  172. package/.output/server/node_modules/yaml/dist/schema/common/seq.js +19 -0
  173. package/.output/server/node_modules/yaml/dist/schema/common/string.js +16 -0
  174. package/.output/server/node_modules/yaml/dist/schema/core/bool.js +21 -0
  175. package/.output/server/node_modules/yaml/dist/schema/core/float.js +47 -0
  176. package/.output/server/node_modules/yaml/dist/schema/core/int.js +42 -0
  177. package/.output/server/node_modules/yaml/dist/schema/core/schema.js +25 -0
  178. package/.output/server/node_modules/yaml/dist/schema/json/schema.js +64 -0
  179. package/.output/server/node_modules/yaml/dist/schema/tags.js +99 -0
  180. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  181. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  182. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  183. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  184. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  185. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  186. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  187. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  188. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  189. package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  190. package/.output/server/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  191. package/.output/server/node_modules/yaml/dist/stringify/stringify.js +132 -0
  192. package/.output/server/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  193. package/.output/server/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  194. package/.output/server/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  195. package/.output/server/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  196. package/.output/server/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  197. package/.output/server/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  198. package/.output/server/node_modules/yaml/dist/visit.js +236 -0
  199. package/.output/server/node_modules/yaml/package.json +97 -0
  200. package/.output/server/package.json +28 -0
  201. package/LICENSE +21 -0
  202. package/README.md +57 -1
  203. package/bin/launch.mjs +158 -0
  204. package/bin/shelfware.mjs +6 -0
  205. package/package.json +64 -5
  206. package/cli.mjs +0 -3
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BinTrieFlags = void 0;
4
+ /**
5
+ * Bit flags & masks for the binary trie encoding used for entity decoding.
6
+ *
7
+ * Bit layout (16 bits total):
8
+ * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value)
9
+ * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';').
10
+ * If valueLength==0: compact run flag.
11
+ * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run)
12
+ * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char
13
+ */
14
+ var BinTrieFlags;
15
+ (function (BinTrieFlags) {
16
+ BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
17
+ BinTrieFlags[BinTrieFlags["FLAG13"] = 8192] = "FLAG13";
18
+ BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 8064] = "BRANCH_LENGTH";
19
+ BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE";
20
+ })(BinTrieFlags || (exports.BinTrieFlags = BinTrieFlags = {}));
21
+ //# sourceMappingURL=bin-trie-flags.js.map
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeBase64 = decodeBase64;
4
+ /*
5
+ * Shared base64 decode helper for generated decode data.
6
+ * Assumes global atob is available.
7
+ */
8
+ function decodeBase64(input) {
9
+ const binary =
10
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
11
+ typeof atob === "function"
12
+ ? // Browser (and Node >=16)
13
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
14
+ atob(input)
15
+ : // Older Node versions (<16)
16
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
17
+ typeof Buffer.from === "function"
18
+ ? // eslint-disable-next-line n/no-unsupported-features/node-builtins
19
+ Buffer.from(input, "base64").toString("binary")
20
+ : // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api
21
+ new Buffer(input, "base64").toString("binary");
22
+ const evenLength = binary.length & ~1; // Round down to even length
23
+ const out = new Uint16Array(evenLength / 2);
24
+ for (let index = 0, outIndex = 0; index < evenLength; index += 2) {
25
+ const lo = binary.charCodeAt(index);
26
+ const hi = binary.charCodeAt(index + 1);
27
+ out[outIndex++] = lo | (hi << 8);
28
+ }
29
+ return out;
30
+ }
31
+ //# sourceMappingURL=decode-shared.js.map
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,120 @@
1
+ {
2
+ "name": "entities",
3
+ "version": "7.0.1",
4
+ "description": "Encode & decode XML and HTML entities with ease & speed",
5
+ "keywords": [
6
+ "html entities",
7
+ "entity decoder",
8
+ "entity encoding",
9
+ "html decoding",
10
+ "html encoding",
11
+ "xml decoding",
12
+ "xml encoding"
13
+ ],
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/fb55/entities.git"
17
+ },
18
+ "funding": "https://github.com/fb55/entities?sponsor=1",
19
+ "license": "BSD-2-Clause",
20
+ "author": "Felix Boehm <me@feedic.com>",
21
+ "sideEffects": false,
22
+ "type": "module",
23
+ "exports": {
24
+ ".": {
25
+ "import": {
26
+ "types": "./dist/esm/index.d.ts",
27
+ "default": "./dist/esm/index.js"
28
+ },
29
+ "require": {
30
+ "types": "./dist/commonjs/index.d.ts",
31
+ "default": "./dist/commonjs/index.js"
32
+ }
33
+ },
34
+ "./decode": {
35
+ "import": {
36
+ "types": "./dist/esm/decode.d.ts",
37
+ "default": "./dist/esm/decode.js"
38
+ },
39
+ "require": {
40
+ "types": "./dist/commonjs/decode.d.ts",
41
+ "default": "./dist/commonjs/decode.js"
42
+ }
43
+ },
44
+ "./escape": {
45
+ "import": {
46
+ "types": "./dist/esm/escape.d.ts",
47
+ "default": "./dist/esm/escape.js"
48
+ },
49
+ "require": {
50
+ "types": "./dist/commonjs/escape.d.ts",
51
+ "default": "./dist/commonjs/escape.js"
52
+ }
53
+ }
54
+ },
55
+ "main": "./dist/commonjs/index.js",
56
+ "module": "./dist/esm/index.js",
57
+ "types": "./dist/commonjs/index.d.ts",
58
+ "files": [
59
+ "decode.js",
60
+ "decode.d.ts",
61
+ "escape.js",
62
+ "escape.d.ts",
63
+ "dist",
64
+ "src",
65
+ "!**/*.spec.ts"
66
+ ],
67
+ "scripts": {
68
+ "build:docs": "typedoc --hideGenerator src/index.ts",
69
+ "build:encode-trie": "node --import=tsx scripts/write-encode-map.ts",
70
+ "build:trie": "node --import=tsx scripts/write-decode-map.ts",
71
+ "benchmark": "node --import=tsx scripts/benchmark.ts",
72
+ "format": "npm run format:es && npm run format:biome",
73
+ "format:es": "npm run lint:es -- --fix",
74
+ "format:biome": "biome check --fix .",
75
+ "lint": "npm run lint:es && npm run lint:ts && npm run lint:biome",
76
+ "lint:es": "eslint . --ignore-path .gitignore",
77
+ "lint:biome": "biome check .",
78
+ "lint:ts": "tsc --noEmit",
79
+ "prepublishOnly": "tshy",
80
+ "test": "npm run test:vi && npm run lint",
81
+ "test:vi": "vitest run"
82
+ },
83
+ "devDependencies": {
84
+ "@biomejs/biome": "^2.3.11",
85
+ "@types/node": "^25.0.9",
86
+ "@typescript-eslint/eslint-plugin": "^8.53.1",
87
+ "@typescript-eslint/parser": "^8.53.1",
88
+ "@vitest/coverage-v8": "^3.2.4",
89
+ "@types/he": "^1.2.3",
90
+ "eslint": "^8.57.1",
91
+ "eslint-config-biome": "^2.1.3",
92
+ "eslint-plugin-n": "^17.23.2",
93
+ "eslint-plugin-unicorn": "^56.0.1",
94
+ "he": "^1.2.0",
95
+ "html-entities": "^2.6.0",
96
+ "parse-entities": "^4.0.2",
97
+ "tinybench": "^5.1.0",
98
+ "tshy": "^3.1.0",
99
+ "tsx": "^4.21.0",
100
+ "typedoc": "^0.28.16",
101
+ "typescript": "^5.9.3",
102
+ "vitest": "^3.2.4"
103
+ },
104
+ "engines": {
105
+ "node": ">=0.12"
106
+ },
107
+ "tshy": {
108
+ "exclude": [
109
+ "**/*.spec.ts",
110
+ "**/__fixtures__/*",
111
+ "**/__tests__/*",
112
+ "**/__snapshots__/*"
113
+ ],
114
+ "exports": {
115
+ ".": "./src/index.ts",
116
+ "./decode": "./src/decode.ts",
117
+ "./escape": "./src/escape.ts"
118
+ }
119
+ }
120
+ }
@@ -0,0 +1,344 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = global || self, factory(global.estreeWalker = {}));
5
+ }(this, (function (exports) { 'use strict';
6
+
7
+ // @ts-check
8
+ /** @typedef { import('estree').BaseNode} BaseNode */
9
+
10
+ /** @typedef {{
11
+ skip: () => void;
12
+ remove: () => void;
13
+ replace: (node: BaseNode) => void;
14
+ }} WalkerContext */
15
+
16
+ class WalkerBase {
17
+ constructor() {
18
+ /** @type {boolean} */
19
+ this.should_skip = false;
20
+
21
+ /** @type {boolean} */
22
+ this.should_remove = false;
23
+
24
+ /** @type {BaseNode | null} */
25
+ this.replacement = null;
26
+
27
+ /** @type {WalkerContext} */
28
+ this.context = {
29
+ skip: () => (this.should_skip = true),
30
+ remove: () => (this.should_remove = true),
31
+ replace: (node) => (this.replacement = node)
32
+ };
33
+ }
34
+
35
+ /**
36
+ *
37
+ * @param {any} parent
38
+ * @param {string} prop
39
+ * @param {number} index
40
+ * @param {BaseNode} node
41
+ */
42
+ replace(parent, prop, index, node) {
43
+ if (parent) {
44
+ if (index !== null) {
45
+ parent[prop][index] = node;
46
+ } else {
47
+ parent[prop] = node;
48
+ }
49
+ }
50
+ }
51
+
52
+ /**
53
+ *
54
+ * @param {any} parent
55
+ * @param {string} prop
56
+ * @param {number} index
57
+ */
58
+ remove(parent, prop, index) {
59
+ if (parent) {
60
+ if (index !== null) {
61
+ parent[prop].splice(index, 1);
62
+ } else {
63
+ delete parent[prop];
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ // @ts-check
70
+
71
+ /** @typedef { import('estree').BaseNode} BaseNode */
72
+ /** @typedef { import('./walker.js').WalkerContext} WalkerContext */
73
+
74
+ /** @typedef {(
75
+ * this: WalkerContext,
76
+ * node: BaseNode,
77
+ * parent: BaseNode,
78
+ * key: string,
79
+ * index: number
80
+ * ) => void} SyncHandler */
81
+
82
+ class SyncWalker extends WalkerBase {
83
+ /**
84
+ *
85
+ * @param {SyncHandler} enter
86
+ * @param {SyncHandler} leave
87
+ */
88
+ constructor(enter, leave) {
89
+ super();
90
+
91
+ /** @type {SyncHandler} */
92
+ this.enter = enter;
93
+
94
+ /** @type {SyncHandler} */
95
+ this.leave = leave;
96
+ }
97
+
98
+ /**
99
+ *
100
+ * @param {BaseNode} node
101
+ * @param {BaseNode} parent
102
+ * @param {string} [prop]
103
+ * @param {number} [index]
104
+ * @returns {BaseNode}
105
+ */
106
+ visit(node, parent, prop, index) {
107
+ if (node) {
108
+ if (this.enter) {
109
+ const _should_skip = this.should_skip;
110
+ const _should_remove = this.should_remove;
111
+ const _replacement = this.replacement;
112
+ this.should_skip = false;
113
+ this.should_remove = false;
114
+ this.replacement = null;
115
+
116
+ this.enter.call(this.context, node, parent, prop, index);
117
+
118
+ if (this.replacement) {
119
+ node = this.replacement;
120
+ this.replace(parent, prop, index, node);
121
+ }
122
+
123
+ if (this.should_remove) {
124
+ this.remove(parent, prop, index);
125
+ }
126
+
127
+ const skipped = this.should_skip;
128
+ const removed = this.should_remove;
129
+
130
+ this.should_skip = _should_skip;
131
+ this.should_remove = _should_remove;
132
+ this.replacement = _replacement;
133
+
134
+ if (skipped) return node;
135
+ if (removed) return null;
136
+ }
137
+
138
+ for (const key in node) {
139
+ const value = node[key];
140
+
141
+ if (typeof value !== "object") {
142
+ continue;
143
+ } else if (Array.isArray(value)) {
144
+ for (let i = 0; i < value.length; i += 1) {
145
+ if (value[i] !== null && typeof value[i].type === 'string') {
146
+ if (!this.visit(value[i], node, key, i)) {
147
+ // removed
148
+ i--;
149
+ }
150
+ }
151
+ }
152
+ } else if (value !== null && typeof value.type === "string") {
153
+ this.visit(value, node, key, null);
154
+ }
155
+ }
156
+
157
+ if (this.leave) {
158
+ const _replacement = this.replacement;
159
+ const _should_remove = this.should_remove;
160
+ this.replacement = null;
161
+ this.should_remove = false;
162
+
163
+ this.leave.call(this.context, node, parent, prop, index);
164
+
165
+ if (this.replacement) {
166
+ node = this.replacement;
167
+ this.replace(parent, prop, index, node);
168
+ }
169
+
170
+ if (this.should_remove) {
171
+ this.remove(parent, prop, index);
172
+ }
173
+
174
+ const removed = this.should_remove;
175
+
176
+ this.replacement = _replacement;
177
+ this.should_remove = _should_remove;
178
+
179
+ if (removed) return null;
180
+ }
181
+ }
182
+
183
+ return node;
184
+ }
185
+ }
186
+
187
+ // @ts-check
188
+
189
+ /** @typedef { import('estree').BaseNode} BaseNode */
190
+ /** @typedef { import('./walker').WalkerContext} WalkerContext */
191
+
192
+ /** @typedef {(
193
+ * this: WalkerContext,
194
+ * node: BaseNode,
195
+ * parent: BaseNode,
196
+ * key: string,
197
+ * index: number
198
+ * ) => Promise<void>} AsyncHandler */
199
+
200
+ class AsyncWalker extends WalkerBase {
201
+ /**
202
+ *
203
+ * @param {AsyncHandler} enter
204
+ * @param {AsyncHandler} leave
205
+ */
206
+ constructor(enter, leave) {
207
+ super();
208
+
209
+ /** @type {AsyncHandler} */
210
+ this.enter = enter;
211
+
212
+ /** @type {AsyncHandler} */
213
+ this.leave = leave;
214
+ }
215
+
216
+ /**
217
+ *
218
+ * @param {BaseNode} node
219
+ * @param {BaseNode} parent
220
+ * @param {string} [prop]
221
+ * @param {number} [index]
222
+ * @returns {Promise<BaseNode>}
223
+ */
224
+ async visit(node, parent, prop, index) {
225
+ if (node) {
226
+ if (this.enter) {
227
+ const _should_skip = this.should_skip;
228
+ const _should_remove = this.should_remove;
229
+ const _replacement = this.replacement;
230
+ this.should_skip = false;
231
+ this.should_remove = false;
232
+ this.replacement = null;
233
+
234
+ await this.enter.call(this.context, node, parent, prop, index);
235
+
236
+ if (this.replacement) {
237
+ node = this.replacement;
238
+ this.replace(parent, prop, index, node);
239
+ }
240
+
241
+ if (this.should_remove) {
242
+ this.remove(parent, prop, index);
243
+ }
244
+
245
+ const skipped = this.should_skip;
246
+ const removed = this.should_remove;
247
+
248
+ this.should_skip = _should_skip;
249
+ this.should_remove = _should_remove;
250
+ this.replacement = _replacement;
251
+
252
+ if (skipped) return node;
253
+ if (removed) return null;
254
+ }
255
+
256
+ for (const key in node) {
257
+ const value = node[key];
258
+
259
+ if (typeof value !== "object") {
260
+ continue;
261
+ } else if (Array.isArray(value)) {
262
+ for (let i = 0; i < value.length; i += 1) {
263
+ if (value[i] !== null && typeof value[i].type === 'string') {
264
+ if (!(await this.visit(value[i], node, key, i))) {
265
+ // removed
266
+ i--;
267
+ }
268
+ }
269
+ }
270
+ } else if (value !== null && typeof value.type === "string") {
271
+ await this.visit(value, node, key, null);
272
+ }
273
+ }
274
+
275
+ if (this.leave) {
276
+ const _replacement = this.replacement;
277
+ const _should_remove = this.should_remove;
278
+ this.replacement = null;
279
+ this.should_remove = false;
280
+
281
+ await this.leave.call(this.context, node, parent, prop, index);
282
+
283
+ if (this.replacement) {
284
+ node = this.replacement;
285
+ this.replace(parent, prop, index, node);
286
+ }
287
+
288
+ if (this.should_remove) {
289
+ this.remove(parent, prop, index);
290
+ }
291
+
292
+ const removed = this.should_remove;
293
+
294
+ this.replacement = _replacement;
295
+ this.should_remove = _should_remove;
296
+
297
+ if (removed) return null;
298
+ }
299
+ }
300
+
301
+ return node;
302
+ }
303
+ }
304
+
305
+ // @ts-check
306
+
307
+ /** @typedef { import('estree').BaseNode} BaseNode */
308
+ /** @typedef { import('./sync.js').SyncHandler} SyncHandler */
309
+ /** @typedef { import('./async.js').AsyncHandler} AsyncHandler */
310
+
311
+ /**
312
+ *
313
+ * @param {BaseNode} ast
314
+ * @param {{
315
+ * enter?: SyncHandler
316
+ * leave?: SyncHandler
317
+ * }} walker
318
+ * @returns {BaseNode}
319
+ */
320
+ function walk(ast, { enter, leave }) {
321
+ const instance = new SyncWalker(enter, leave);
322
+ return instance.visit(ast, null);
323
+ }
324
+
325
+ /**
326
+ *
327
+ * @param {BaseNode} ast
328
+ * @param {{
329
+ * enter?: AsyncHandler
330
+ * leave?: AsyncHandler
331
+ * }} walker
332
+ * @returns {Promise<BaseNode>}
333
+ */
334
+ async function asyncWalk(ast, { enter, leave }) {
335
+ const instance = new AsyncWalker(enter, leave);
336
+ return await instance.visit(ast, null);
337
+ }
338
+
339
+ exports.asyncWalk = asyncWalk;
340
+ exports.walk = walk;
341
+
342
+ Object.defineProperty(exports, '__esModule', { value: true });
343
+
344
+ })));
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "estree-walker",
3
+ "description": "Traverse an ESTree-compliant AST",
4
+ "version": "2.0.2",
5
+ "private": false,
6
+ "author": "Rich Harris",
7
+ "license": "MIT",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/Rich-Harris/estree-walker"
11
+ },
12
+ "type": "commonjs",
13
+ "main": "./dist/umd/estree-walker.js",
14
+ "module": "./dist/esm/estree-walker.js",
15
+ "exports": {
16
+ "require": "./dist/umd/estree-walker.js",
17
+ "import": "./dist/esm/estree-walker.js"
18
+ },
19
+ "types": "types/index.d.ts",
20
+ "scripts": {
21
+ "prepublishOnly": "npm run build && npm test",
22
+ "build": "tsc && rollup -c",
23
+ "test": "uvu test"
24
+ },
25
+ "devDependencies": {
26
+ "@types/estree": "0.0.42",
27
+ "rollup": "^2.10.9",
28
+ "typescript": "^3.7.5",
29
+ "uvu": "^0.5.1"
30
+ },
31
+ "files": [
32
+ "src",
33
+ "dist",
34
+ "types",
35
+ "README.md"
36
+ ]
37
+ }