codeanalyzer-typescript 1.5.0__py3-none-win_amd64.whl → 1.5.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__ = "1.5.0"
21
+ __version__ = "1.5.2"
22
22
 
23
23
  __all__ = ["bin_path", "schema_path", "__version__"]
24
24
 
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: codeanalyzer-typescript
3
- Version: 1.5.0
3
+ Version: 1.5.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
@@ -270,7 +270,7 @@ deeply; each level only ever *adds*.
270
270
  {
271
271
  "schema_version": "2.0.0", "language": "typescript", "max_level": 4, "k_limit": 3,
272
272
  "application": {
273
- "id": "can://typescript/<app>", "kind": "application",
273
+ "id": "can://<app>", "kind": "application",
274
274
  "symbol_table": { // L1: the tree, keyed by file path
275
275
  "<file>": { "kind": "module", "source": "…",
276
276
  "types": { /* class | interface | enum | type_alias | namespace nodes */ },
@@ -341,6 +341,11 @@ Levels 1/2 are unaffected: nothing in level 3 runs unless `-a 3` is requested.
341
341
  **always full-depth** — analysis levels gate the JSON path only, so combining `-a`/`--graphs` with
342
342
  `--emit neo4j` is an error:
343
343
 
344
+ Every node id is `can://<app>/…`, so `can://<app>` is a prefix of every node the application
345
+ emits — the `typescript` and `javascript` namespaces are two segments *inside* it, not two
346
+ top-level namespaces a consumer has to enumerate. That single prefix is what the destructive
347
+ statements scope on, and `:Application` is keyed on the id rather than on `--app-name`.
348
+
344
349
  - **Without `--neo4j-uri`** — writes a self-contained `graph.cypher` (constraints + indexes, a
345
350
  scoped wipe, then batched `MERGE`s). Load it with `cypher-shell < graph.cypher`.
346
351
  - **With `--neo4j-uri`** — pushes to a live Neo4j over Bolt **incrementally**: only modules whose
@@ -387,3 +392,25 @@ bun run gen:readme # regenerate the cants --help block
387
392
  ## License
388
393
 
389
394
  Apache 2.0 — see [LICENSE](./LICENSE).
395
+
396
+ ## Polyglot applications: all languages, or none
397
+
398
+ A `--emit neo4j` push is **destructive**. It sweeps everything under `can://<app>/` that this
399
+ analyzer marked, then rewrites what it found. Since the id grammar puts the application outermost,
400
+ every analyzer over the same `<app>` shares that prefix — so a push reclaims stale rows belonging to
401
+ *this* analyzer and, in the shared namespaces, sweeps rows a sibling wrote.
402
+
403
+ For most of what is shared that is harmless: the artifact walk is a whole-repo inventory, so an
404
+ `:Artifact` a sibling wrote is re-created by this push (with a thinner view of it — `roles` falls
405
+ back to `unknown` and its config keys and dependency edges are gone until that sibling pushes
406
+ again). `@external` ghosts are not inventoried that way: they are per-language, so a sibling's
407
+ ghosts are swept and not restored.
408
+
409
+ **So for an application analysed in more than one language, run every analyzer or none.** Running
410
+ one in isolation leaves the others' derived rows missing until they run again. Running them
411
+ together is always correct, in any order, because the last push restores everything the batch
412
+ swept.
413
+
414
+ Nothing here corrupts a graph: what is lost is derived and regenerates. But a partial run leaves a
415
+ partial answer, and nothing in the data says so.
416
+
@@ -0,0 +1,9 @@
1
+ codeanalyzer_typescript/__init__.py,sha256=Z_BFMiWzGtVcZ-0Rmn-E1q_rqHgIxRFlEB6jI7Q3Dcg,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=wvbyCfvxadwbxhO1gm4-gFq8b306ZL61iZnN8d6gIRU,100727808
5
+ codeanalyzer_typescript/_bin/schema.json,sha256=5eX2C8DxsZQoN3UXa5NptZZItqbGeqh_Of484JR02Sw,13379
6
+ codeanalyzer_typescript-1.5.2.dist-info/METADATA,sha256=Mlt9zVzvFvClsre1-fzv6ebY2uK_WRRZKivOJUDFN_s,21443
7
+ codeanalyzer_typescript-1.5.2.dist-info/WHEEL,sha256=ntsWXhYJu-JTQqohzBZIuALw3B9yb-GeNPKXq8syg68,94
8
+ codeanalyzer_typescript-1.5.2.dist-info/entry_points.txt,sha256=-kWzUa53_kUEbiwup53Q5GqeSOdQM1iIRJHzPIwV7S0,64
9
+ codeanalyzer_typescript-1.5.2.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- codeanalyzer_typescript/__init__.py,sha256=-anYQWlOzTrqJ9JvWhogWw44qlDpk0NJaNqBald4ajM,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=D3CGoyxn1KogT-VtuUau5kc5SZL4pNp50-VHnjbxARg,100728320
5
- codeanalyzer_typescript/_bin/schema.json,sha256=5eX2C8DxsZQoN3UXa5NptZZItqbGeqh_Of484JR02Sw,13379
6
- codeanalyzer_typescript-1.5.0.dist-info/METADATA,sha256=DXWjM0sPsPZVKMc1YMnjOk84YS1bGjvoNWzi1zZ9XtM,19798
7
- codeanalyzer_typescript-1.5.0.dist-info/WHEEL,sha256=ntsWXhYJu-JTQqohzBZIuALw3B9yb-GeNPKXq8syg68,94
8
- codeanalyzer_typescript-1.5.0.dist-info/entry_points.txt,sha256=-kWzUa53_kUEbiwup53Q5GqeSOdQM1iIRJHzPIwV7S0,64
9
- codeanalyzer_typescript-1.5.0.dist-info/RECORD,,