codeanalyzer-typescript 0.4.0__py3-none-win_amd64.whl → 0.4.2__py3-none-win_amd64.whl

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.
@@ -18,7 +18,7 @@ import sys
18
18
  from importlib import resources
19
19
  from pathlib import Path
20
20
 
21
- __version__ = "0.4.0"
21
+ __version__ = "0.4.2"
22
22
 
23
23
  __all__ = ["bin_path", "schema_path", "__version__"]
24
24
 
Binary file
@@ -174,6 +174,19 @@
174
174
  "module": "string"
175
175
  }
176
176
  },
177
+ {
178
+ "label": "AnonymousCallable",
179
+ "mergeLabel": "Symbol",
180
+ "key": "signature",
181
+ "properties": {
182
+ "signature": "string",
183
+ "name": "string",
184
+ "path": "string",
185
+ "start_line": "integer",
186
+ "start_column": "integer",
187
+ "_module": "string"
188
+ }
189
+ },
177
190
  {
178
191
  "label": "Package",
179
192
  "mergeLabel": "Package",
@@ -430,14 +443,14 @@
430
443
  }
431
444
  ],
432
445
  "constraints": [
433
- "CREATE CONSTRAINT symbol_sig IF NOT EXISTS FOR (s:Symbol) REQUIRE s.signature IS UNIQUE",
434
- "CREATE CONSTRAINT app_name IF NOT EXISTS FOR (a:Application) REQUIRE a.name IS UNIQUE",
435
- "CREATE CONSTRAINT module_key IF NOT EXISTS FOR (m:Module) REQUIRE m.file_key IS UNIQUE",
436
- "CREATE CONSTRAINT package_name IF NOT EXISTS FOR (p:Package) REQUIRE p.name IS UNIQUE",
437
- "CREATE CONSTRAINT decorator_qn IF NOT EXISTS FOR (d:Decorator) REQUIRE d.qualified_name IS UNIQUE",
438
- "CREATE CONSTRAINT callsite_id IF NOT EXISTS FOR (c:CallSite) REQUIRE c.id IS UNIQUE",
439
- "CREATE CONSTRAINT attribute_id IF NOT EXISTS FOR (a:Attribute) REQUIRE a.id IS UNIQUE",
440
- "CREATE CONSTRAINT variable_id IF NOT EXISTS FOR (v:Variable) REQUIRE v.id IS UNIQUE"
446
+ "CREATE CONSTRAINT application_name IF NOT EXISTS FOR (x:Application) REQUIRE x.name IS UNIQUE",
447
+ "CREATE CONSTRAINT module_file_key IF NOT EXISTS FOR (x:Module) REQUIRE x.file_key IS UNIQUE",
448
+ "CREATE CONSTRAINT symbol_signature IF NOT EXISTS FOR (x:Symbol) REQUIRE x.signature IS UNIQUE",
449
+ "CREATE CONSTRAINT package_name IF NOT EXISTS FOR (x:Package) REQUIRE x.name IS UNIQUE",
450
+ "CREATE CONSTRAINT decorator_qualified_name IF NOT EXISTS FOR (x:Decorator) REQUIRE x.qualified_name IS UNIQUE",
451
+ "CREATE CONSTRAINT callsite_id IF NOT EXISTS FOR (x:CallSite) REQUIRE x.id IS UNIQUE",
452
+ "CREATE CONSTRAINT attribute_id IF NOT EXISTS FOR (x:Attribute) REQUIRE x.id IS UNIQUE",
453
+ "CREATE CONSTRAINT variable_id IF NOT EXISTS FOR (x:Variable) REQUIRE x.id IS UNIQUE"
441
454
  ],
442
455
  "indexes": [
443
456
  "CREATE INDEX callable_name IF NOT EXISTS FOR (c:Callable) ON (c.name)",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codeanalyzer-typescript
3
- Version: 0.4.0
3
+ Version: 0.4.2
4
4
  Summary: Prebuilt codeanalyzer-typescript backend binary for CLDK (codellm-devkit).
5
5
  Project-URL: Homepage, https://codellm-devkit.info
6
6
  Project-URL: Repository, https://github.com/codellm-devkit/codeanalyzer-ts
@@ -39,10 +39,11 @@ analysis into a **Neo4j property graph**. It is the TypeScript backend behind
39
39
  [Python](https://github.com/codellm-devkit/codeanalyzer-python) and
40
40
  [Java](https://github.com/codellm-devkit/codeanalyzer-java) siblings.
41
41
 
42
- The call graph defaults to the TypeScript compiler's resolver, but the `cants` binary also embeds
42
+ By default the call graph is the **union** of two backends: the TypeScript compiler's resolver and
43
43
  [Jelly](https://github.com/cs-au-dk/jelly) — a flow-based analyzer that resolves higher-order and
44
- callback edges the resolver misses — as an experimental backend (`--call-graph-provider jelly`, or
45
- `both` to diff them). No extra install is needed; Jelly ships inside the binary.
44
+ callback edges the resolver misses, embedded in the `cants` binary (no extra install). Merged edges
45
+ keep a `provenance` tag (`tsc` / `jelly`), so you can still tell the two apart. Pass `--tsc-only` to
46
+ drop Jelly and run the resolver alone, or `--call-graph-provider jelly` for Jelly alone.
46
47
 
47
48
  ## Table of Contents
48
49
 
@@ -69,8 +70,9 @@ callback edges the resolver misses — as an experimental backend (`--call-graph
69
70
  methods, variables, decorators, and JSDoc, with precise source spans.
70
71
  - **Call graph** — the TypeScript compiler's resolver plus Rapid Type Analysis (RTA), with
71
72
  **phantom (external) nodes** for calls into imported libraries and Node builtins.
72
- - **Pluggable call-graph backend** — the `tsc` resolver by default, the embedded
73
- [Jelly](https://github.com/cs-au-dk/jelly) flow analyzer, or `both` to compare edge sets.
73
+ - **Pluggable call-graph backend** — the `union` of the `tsc` resolver and the embedded
74
+ [Jelly](https://github.com/cs-au-dk/jelly) flow analyzer by default (`--tsc-only` for the resolver
75
+ alone, `--call-graph-provider jelly` for Jelly alone).
74
76
  - **Neo4j output** — project the analysis into a labeled property graph: a self-contained
75
77
  `graph.cypher` snapshot, or an **incremental** push to a live database over Bolt.
76
78
  - **Versioned schema** — a machine-readable, version-stamped Neo4j schema contract
@@ -163,10 +165,14 @@ Options:
163
165
  --app-name <name> logical application name for the graph
164
166
  :Application anchor (default: input dir name)
165
167
  --neo4j-uri <uri> push the graph to a live Neo4j over Bolt
166
- (incremental); omit to write graph.cypher
167
- --neo4j-user <user> Neo4j username (default: "neo4j")
168
- --neo4j-password <password> Neo4j password (default: "neo4j")
169
- --neo4j-database <db> Neo4j database name (default: server default)
168
+ (incremental); omit to write graph.cypher (env:
169
+ NEO4J_URI)
170
+ --neo4j-user <user> Neo4j username (default: "neo4j", env:
171
+ NEO4J_USERNAME)
172
+ --neo4j-password <password> Neo4j password (prefer the env var; a flag is
173
+ visible in shell history / process list)
174
+ (default: "neo4j", env: NEO4J_PASSWORD)
175
+ --neo4j-database <db> Neo4j database name (env: NEO4J_DATABASE)
170
176
  -a, --analysis-level <n> analysis depth: 1 = symbol table + tsc resolver
171
177
  call graph + RTA (default); 2 = call graph
172
178
  (default: "1")
@@ -181,8 +187,11 @@ Options:
181
187
  node_modules)
182
188
  --no-phantoms disable phantom (external) nodes for
183
189
  imported/required library calls
184
- --call-graph-provider <name> call-graph backend: tsc (default) | jelly |
185
- both (default: "tsc")
190
+ --call-graph-provider <name> call-graph backend: union (default, tsc ∪
191
+ jelly) | tsc | jelly | both (deprecated alias
192
+ of union) (default: "union")
193
+ --tsc-only use the tsc resolver only — opt out of Jelly
194
+ edges (overrides --call-graph-provider)
186
195
  -c, --cache-dir <dir> cache/intermediate directory
187
196
  -v, --verbose increase verbosity (repeatable)
188
197
  -h, --help display help for command
@@ -210,9 +219,9 @@ Options:
210
219
  cants --input ./my-ts-project --target-files src/a.ts src/b.ts
211
220
  ```
212
221
 
213
- 4. **Compare call-graph backends:**
222
+ 4. **Resolver-only call graph (opt out of Jelly):**
214
223
  ```sh
215
- cants --input ./my-ts-project --call-graph-provider both
224
+ cants --input ./my-ts-project --tsc-only
216
225
  ```
217
226
 
218
227
  5. **Force a clean rebuild with a custom cache directory:**
@@ -253,6 +262,17 @@ sites as relationships):
253
262
  content hash changed are rewritten, and on a full run modules whose source file vanished are
254
263
  pruned. Every graph carries a `schema_version` on its `:Application` node.
255
264
 
265
+ The connection options also read the standard Neo4j environment variables — `NEO4J_URI`,
266
+ `NEO4J_USERNAME`, `NEO4J_PASSWORD`, `NEO4J_DATABASE` — when the corresponding flag is omitted (an
267
+ explicit flag wins). Prefer the env var for the password so it doesn't land in shell history or the
268
+ process list:
269
+
270
+ ```sh
271
+ export NEO4J_URI=bolt://localhost:7687
272
+ export NEO4J_PASSWORD=secret
273
+ cants --input ./my-ts-project --emit neo4j # credentials picked up from the environment
274
+ ```
275
+
256
276
  ### Schema contract
257
277
 
258
278
  `--emit schema` writes the machine-readable, version-stamped Neo4j schema (`schema.json`: node
@@ -0,0 +1,9 @@
1
+ codeanalyzer_typescript/__init__.py,sha256=oLUBq_rNjih1pCXN_cYqOYL0qTE5nyAwIrkKEhrnMP4,2734
2
+ codeanalyzer_typescript/__main__.py,sha256=f8C3GgPB5RutSyYkwjas31c3M0zae5sKeudYWXHuQIg,1054
3
+ codeanalyzer_typescript/_bin/.gitignore,sha256=_mZ_61eDWQ65V05VrmLP33rSeppQmwCwV8_qsgHUOHM,251
4
+ codeanalyzer_typescript/_bin/cants.exe,sha256=MZTer89irVVSRfSWc22C8u-_kUq2MsqwiMzMOdH3uHg,125326336
5
+ codeanalyzer_typescript/_bin/schema.json,sha256=FhFz2LlDgdihev9Hli1RIjtdVj9JB3tr0FlSBw35YTU,11016
6
+ codeanalyzer_typescript-0.4.2.dist-info/METADATA,sha256=OOU7Y1RAyA2j0lUYsGDq4fsi43XcydvGZJhKWk1cVG0,13367
7
+ codeanalyzer_typescript-0.4.2.dist-info/WHEEL,sha256=pp_iTzO0EBcCvlZZV2dJYp6L2tdDWBsn1ceo50wEt8Q,94
8
+ codeanalyzer_typescript-0.4.2.dist-info/entry_points.txt,sha256=-kWzUa53_kUEbiwup53Q5GqeSOdQM1iIRJHzPIwV7S0,64
9
+ codeanalyzer_typescript-0.4.2.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- codeanalyzer_typescript/__init__.py,sha256=JT668Rl9peZDvEuWcpnNFE22ZGWKqjNHl1wtAgz0830,2734
2
- codeanalyzer_typescript/__main__.py,sha256=f8C3GgPB5RutSyYkwjas31c3M0zae5sKeudYWXHuQIg,1054
3
- codeanalyzer_typescript/_bin/.gitignore,sha256=_mZ_61eDWQ65V05VrmLP33rSeppQmwCwV8_qsgHUOHM,251
4
- codeanalyzer_typescript/_bin/cants.exe,sha256=6ueGY4e_EQoTPlty_tEZa6ZbK9xQkNjXkEUl4KvAQlY,125322752
5
- codeanalyzer_typescript/_bin/schema.json,sha256=QIXUpCeGp8VZFGQzyooXkBHiERFovuzBUrYkajshqyY,10671
6
- codeanalyzer_typescript-0.4.0.dist-info/METADATA,sha256=5NJSPjOuMnIdZtHH4jMCCaAAzsitGsNWvBfz6UVp_eA,12210
7
- codeanalyzer_typescript-0.4.0.dist-info/WHEEL,sha256=pp_iTzO0EBcCvlZZV2dJYp6L2tdDWBsn1ceo50wEt8Q,94
8
- codeanalyzer_typescript-0.4.0.dist-info/entry_points.txt,sha256=-kWzUa53_kUEbiwup53Q5GqeSOdQM1iIRJHzPIwV7S0,64
9
- codeanalyzer_typescript-0.4.0.dist-info/RECORD,,