sverklo 0.20.25 → 0.20.27

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 (78) hide show
  1. package/dist/src/indexer/grammars-install.js +6 -0
  2. package/dist/src/indexer/grammars-install.js.map +1 -1
  3. package/dist/src/indexer/parser.d.ts +2 -1
  4. package/dist/src/indexer/parser.js +24 -1275
  5. package/dist/src/indexer/parser.js.map +1 -1
  6. package/dist/src/indexer/parsers/_shared.d.ts +11 -0
  7. package/dist/src/indexer/parsers/_shared.js +304 -0
  8. package/dist/src/indexer/parsers/_shared.js.map +1 -0
  9. package/dist/src/indexer/parsers/ccpp.d.ts +2 -0
  10. package/dist/src/indexer/parsers/ccpp.js +32 -0
  11. package/dist/src/indexer/parsers/ccpp.js.map +1 -0
  12. package/dist/src/indexer/parsers/clojure.d.ts +2 -0
  13. package/dist/src/indexer/parsers/clojure.js +37 -0
  14. package/dist/src/indexer/parsers/clojure.js.map +1 -0
  15. package/dist/src/indexer/parsers/csharp.d.ts +2 -0
  16. package/dist/src/indexer/parsers/csharp.js +80 -0
  17. package/dist/src/indexer/parsers/csharp.js.map +1 -0
  18. package/dist/src/indexer/parsers/dart.d.ts +2 -0
  19. package/dist/src/indexer/parsers/dart.js +43 -0
  20. package/dist/src/indexer/parsers/dart.js.map +1 -0
  21. package/dist/src/indexer/parsers/elixir.d.ts +2 -0
  22. package/dist/src/indexer/parsers/elixir.js +37 -0
  23. package/dist/src/indexer/parsers/elixir.js.map +1 -0
  24. package/dist/src/indexer/parsers/go.d.ts +2 -0
  25. package/dist/src/indexer/parsers/go.js +45 -0
  26. package/dist/src/indexer/parsers/go.js.map +1 -0
  27. package/dist/src/indexer/parsers/haskell.d.ts +2 -0
  28. package/dist/src/indexer/parsers/haskell.js +49 -0
  29. package/dist/src/indexer/parsers/haskell.js.map +1 -0
  30. package/dist/src/indexer/parsers/java.d.ts +2 -0
  31. package/dist/src/indexer/parsers/java.js +31 -0
  32. package/dist/src/indexer/parsers/java.js.map +1 -0
  33. package/dist/src/indexer/parsers/kotlin.d.ts +2 -0
  34. package/dist/src/indexer/parsers/kotlin.js +47 -0
  35. package/dist/src/indexer/parsers/kotlin.js.map +1 -0
  36. package/dist/src/indexer/parsers/lua.d.ts +2 -0
  37. package/dist/src/indexer/parsers/lua.js +29 -0
  38. package/dist/src/indexer/parsers/lua.js.map +1 -0
  39. package/dist/src/indexer/parsers/ocaml.d.ts +2 -0
  40. package/dist/src/indexer/parsers/ocaml.js +36 -0
  41. package/dist/src/indexer/parsers/ocaml.js.map +1 -0
  42. package/dist/src/indexer/parsers/php.d.ts +2 -0
  43. package/dist/src/indexer/parsers/php.js +29 -0
  44. package/dist/src/indexer/parsers/php.js.map +1 -0
  45. package/dist/src/indexer/parsers/python.d.ts +2 -0
  46. package/dist/src/indexer/parsers/python.js +78 -0
  47. package/dist/src/indexer/parsers/python.js.map +1 -0
  48. package/dist/src/indexer/parsers/ruby.d.ts +2 -0
  49. package/dist/src/indexer/parsers/ruby.js +36 -0
  50. package/dist/src/indexer/parsers/ruby.js.map +1 -0
  51. package/dist/src/indexer/parsers/rust.d.ts +2 -0
  52. package/dist/src/indexer/parsers/rust.js +47 -0
  53. package/dist/src/indexer/parsers/rust.js.map +1 -0
  54. package/dist/src/indexer/parsers/scala.d.ts +2 -0
  55. package/dist/src/indexer/parsers/scala.js +41 -0
  56. package/dist/src/indexer/parsers/scala.js.map +1 -0
  57. package/dist/src/indexer/parsers/swift.d.ts +2 -0
  58. package/dist/src/indexer/parsers/swift.js +47 -0
  59. package/dist/src/indexer/parsers/swift.js.map +1 -0
  60. package/dist/src/indexer/parsers/tsjs.d.ts +2 -0
  61. package/dist/src/indexer/parsers/tsjs.js +201 -0
  62. package/dist/src/indexer/parsers/tsjs.js.map +1 -0
  63. package/dist/src/indexer/parsers/zig.d.ts +2 -0
  64. package/dist/src/indexer/parsers/zig.js +45 -0
  65. package/dist/src/indexer/parsers/zig.js.map +1 -0
  66. package/dist/src/indexer/setup.js +9 -2
  67. package/dist/src/indexer/setup.js.map +1 -1
  68. package/dist/src/server/assets/dashboard.css +675 -0
  69. package/dist/src/server/assets/dashboard.js +654 -0
  70. package/dist/src/server/dashboard-html.js +19 -1333
  71. package/dist/src/server/dashboard-html.js.map +1 -1
  72. package/dist/src/server/http-server.js +41 -24
  73. package/dist/src/server/http-server.js.map +1 -1
  74. package/dist/src/utils/integrity.d.ts +46 -0
  75. package/dist/src/utils/integrity.js +80 -0
  76. package/dist/src/utils/integrity.js.map +1 -0
  77. package/models.lock.json +46 -0
  78. package/package.json +4 -3
@@ -9,6 +9,7 @@
9
9
  import { existsSync, mkdirSync, writeFileSync, statSync } from "node:fs";
10
10
  import { join } from "node:path";
11
11
  import { homedir } from "node:os";
12
+ import { verifyArtifact } from "../utils/integrity.js";
12
13
  // Update these pins together with parser-tree-sitter.ts. Keep the
13
14
  // version stable across releases so existing user installs don't
14
15
  // invalidate caches when sverklo updates. Tested URLs as of 2026-04.
@@ -90,6 +91,11 @@ export async function installGrammars(opts) {
90
91
  if (buf.length < 1024 || buf[0] !== 0x00 || buf[1] !== 0x61 || buf[2] !== 0x73 || buf[3] !== 0x6d) {
91
92
  throw new Error(`response is not a valid WASM blob (${buf.length} bytes)`);
92
93
  }
94
+ // Integrity check (Tier 3.2 / Security review 2026-05-13). The
95
+ // 4-byte magic above is shape; this is authenticity. A
96
+ // compromised CDN-served WASM still starts with \0asm. Lock
97
+ // entries pin sha256 per filename.
98
+ verifyArtifact("grammars", g.wasm, buf);
93
99
  writeFileSync(out, buf);
94
100
  results.push({ lang: g.lang, path: out, status: "fresh", bytes: buf.length });
95
101
  opts.onProgress?.(` ok ${g.lang} → ${out} (${(buf.length / 1024).toFixed(0)} KB)`);
@@ -1 +1 @@
1
- {"version":3,"file":"grammars-install.js","sourceRoot":"","sources":["../../../src/indexer/grammars-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grammars-install.js","sourceRoot":"","sources":["../../../src/indexer/grammars-install.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { ParseResult } from "../types/index.js";
2
+ import { parseTSJS } from "./parsers/tsjs.js";
3
+ export { parseTSJS };
2
4
  export declare function parseFile(content: string, language: string): ParseResult;
3
- export declare function parseTSJS(content: string, lines: string[]): ParseResult;
4
5
  /**
5
6
  * Async parse path. When SVERKLO_PARSER=tree-sitter is set AND the
6
7
  * web-tree-sitter dep is installed AND a grammar for the language is