@query-doctor/core 0.4.1 → 0.4.2

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 (63) hide show
  1. package/dist/index.cjs +1678 -2000
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +750 -0
  4. package/dist/index.d.cts.map +1 -0
  5. package/dist/index.d.mts +750 -0
  6. package/dist/index.d.mts.map +1 -0
  7. package/dist/index.mjs +1676 -24978
  8. package/dist/index.mjs.map +1 -1
  9. package/package.json +12 -11
  10. package/dist/explain/rewriter.d.ts +0 -4
  11. package/dist/explain/rewriter.d.ts.map +0 -1
  12. package/dist/explain/traverse.d.ts +0 -3
  13. package/dist/explain/traverse.d.ts.map +0 -1
  14. package/dist/explain/tree.d.ts +0 -73
  15. package/dist/explain/tree.d.ts.map +0 -1
  16. package/dist/index.d.ts +0 -10
  17. package/dist/index.d.ts.map +0 -1
  18. package/dist/index.js +0 -2352
  19. package/dist/index.js.map +0 -1
  20. package/dist/optimizer/genalgo.d.ts +0 -104
  21. package/dist/optimizer/genalgo.d.ts.map +0 -1
  22. package/dist/optimizer/genalgo.test.d.ts +0 -2
  23. package/dist/optimizer/genalgo.test.d.ts.map +0 -1
  24. package/dist/optimizer/index-candidate.d.ts +0 -23
  25. package/dist/optimizer/index-candidate.d.ts.map +0 -1
  26. package/dist/optimizer/index-shrinker.d.ts +0 -10
  27. package/dist/optimizer/index-shrinker.d.ts.map +0 -1
  28. package/dist/optimizer/index-shrinker.test.d.ts +0 -2
  29. package/dist/optimizer/index-shrinker.test.d.ts.map +0 -1
  30. package/dist/optimizer/index-tester.d.ts +0 -2
  31. package/dist/optimizer/index-tester.d.ts.map +0 -1
  32. package/dist/optimizer/pss-rewriter.d.ts +0 -11
  33. package/dist/optimizer/pss-rewriter.d.ts.map +0 -1
  34. package/dist/optimizer/pss-rewriter.test.d.ts +0 -2
  35. package/dist/optimizer/pss-rewriter.test.d.ts.map +0 -1
  36. package/dist/optimizer/statistics.d.ts +0 -360
  37. package/dist/optimizer/statistics.d.ts.map +0 -1
  38. package/dist/sql/analyzer.d.ts +0 -105
  39. package/dist/sql/analyzer.d.ts.map +0 -1
  40. package/dist/sql/analyzer.test.d.ts +0 -2
  41. package/dist/sql/analyzer.test.d.ts.map +0 -1
  42. package/dist/sql/builder.d.ts +0 -31
  43. package/dist/sql/builder.d.ts.map +0 -1
  44. package/dist/sql/builder.test.d.ts +0 -2
  45. package/dist/sql/builder.test.d.ts.map +0 -1
  46. package/dist/sql/database.d.ts +0 -84
  47. package/dist/sql/database.d.ts.map +0 -1
  48. package/dist/sql/indexes.d.ts +0 -8
  49. package/dist/sql/indexes.d.ts.map +0 -1
  50. package/dist/sql/nudges.d.ts +0 -16
  51. package/dist/sql/nudges.d.ts.map +0 -1
  52. package/dist/sql/permutations.d.ts +0 -10
  53. package/dist/sql/permutations.d.ts.map +0 -1
  54. package/dist/sql/permutations.test.d.ts +0 -2
  55. package/dist/sql/permutations.test.d.ts.map +0 -1
  56. package/dist/sql/pg-identifier.d.ts +0 -26
  57. package/dist/sql/pg-identifier.d.ts.map +0 -1
  58. package/dist/sql/pg-identifier.test.d.ts +0 -2
  59. package/dist/sql/pg-identifier.test.d.ts.map +0 -1
  60. package/dist/sql/walker.d.ts +0 -46
  61. package/dist/sql/walker.d.ts.map +0 -1
  62. package/dist/sql/walker.test.d.ts +0 -2
  63. package/dist/sql/walker.test.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@query-doctor/core",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "private": false,
5
5
  "description": "Core logic for Query Doctor",
6
6
  "license": "",
@@ -9,19 +9,19 @@
9
9
  "dist/**"
10
10
  ],
11
11
  "type": "module",
12
- "main": "dist/index.js",
13
- "types": "dist/index.d.ts",
12
+ "main": "./dist/index.cjs",
13
+ "types": "./dist/index.d.mts",
14
14
  "exports": {
15
15
  ".": {
16
- "types": "./dist/index.d.ts",
17
- "require": "./dist/index.cjs",
18
- "import": "./dist/index.js"
16
+ "types": "./dist/index.d.mts",
17
+ "import": "./dist/index.mjs",
18
+ "require": "./dist/index.cjs"
19
19
  }
20
20
  },
21
21
  "scripts": {
22
- "dev": "tsup src/index.ts --target es2020 --format esm,cjs --watch --external react --onSuccess 'tsc --emitDeclarationOnly --declaration'",
23
- "build": "tsup src/index.ts --target es2020 --format esm,cjs --external react",
24
- "test": "node --import tsx --test src/**/*.test.ts"
22
+ "dev": "tsdown --watch",
23
+ "build": "tsdown",
24
+ "test": "vitest"
25
25
  },
26
26
  "dependencies": {
27
27
  "@pgsql/types": "^17.6.2",
@@ -33,7 +33,8 @@
33
33
  "devDependencies": {
34
34
  "@pgsql/parser": "^17.5.0",
35
35
  "@query-doctor/typescript-config": "*",
36
- "tsup": "^8.5.1",
37
- "typescript": "^5.9.0"
36
+ "tsdown": "^0.20.3",
37
+ "typescript": "^5.9.0",
38
+ "vitest": "^4.0.18"
38
39
  }
39
40
  }
@@ -1,4 +0,0 @@
1
- import type { PostgresExplainResult } from "../sql/database.js";
2
- import type { ExplainPlan } from "./tree.js";
3
- export declare function convertPostgresExplain(explainResult: PostgresExplainResult, query: string): ExplainPlan;
4
- //# sourceMappingURL=rewriter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rewriter.d.ts","sourceRoot":"","sources":["../../src/explain/rewriter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAIV,WAAW,EAIZ,MAAM,WAAW,CAAC;AA0CnB,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,qBAAqB,EACpC,KAAK,EAAE,MAAM,GACZ,WAAW,CA8Bb"}
@@ -1,3 +0,0 @@
1
- import type { PostgresExplainStage } from "../sql/database";
2
- export declare function traverseExplain(explain: PostgresExplainStage): Generator<PostgresExplainStage>;
3
- //# sourceMappingURL=traverse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../src/explain/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAiB,eAAe,CAC9B,OAAO,EAAE,oBAAoB,GAC5B,SAAS,CAAC,oBAAoB,CAAC,CAUjC"}
@@ -1,73 +0,0 @@
1
- import type { PostgresExplainResult } from "../sql/database.js";
2
- export type ExplainNodeKind = string;
3
- export interface ExplainCostMetrics {
4
- startupCost: number;
5
- totalCost: number;
6
- }
7
- export interface ExplainRowMetrics {
8
- estimatedRows: number;
9
- actualRows?: number;
10
- }
11
- export interface ExplainNodeMetadata {
12
- raw: Record<string, unknown>;
13
- }
14
- export type DatabaseSystem = "postgresql";
15
- export interface ExplainPlanMetadata {
16
- databaseSystem: DatabaseSystem;
17
- query: string;
18
- analyzed: boolean;
19
- planningTime?: number;
20
- executionTime?: number;
21
- raw: Record<string, unknown>;
22
- }
23
- export interface CostBreakdown {
24
- reason: string;
25
- cost: number;
26
- }
27
- export interface ExplainAlternativePlan {
28
- kind: ExplainNodeKind;
29
- indexName?: string;
30
- pruneReason: string;
31
- costBreakdown: CostBreakdown[];
32
- totalCost: number;
33
- }
34
- export declare class ExplainNode {
35
- readonly id: string;
36
- readonly kind: ExplainNodeKind;
37
- readonly cost: ExplainCostMetrics;
38
- readonly rows: ExplainRowMetrics;
39
- readonly metadata: ExplainNodeMetadata;
40
- parent: ExplainNode | null;
41
- private _children;
42
- private _alternatives;
43
- get children(): readonly ExplainNode[];
44
- get alternatives(): readonly ExplainNode[];
45
- constructor(params: {
46
- id: string;
47
- kind: ExplainNodeKind;
48
- cost: ExplainCostMetrics;
49
- rows: ExplainRowMetrics;
50
- metadata: ExplainNodeMetadata;
51
- });
52
- addChild(node: ExplainNode): void;
53
- addAlternative(node: ExplainNode): void;
54
- root(): ExplainNode;
55
- depth(): number;
56
- siblings(): ExplainNode[];
57
- ancestors(): ExplainNode[];
58
- find(predicate: (node: ExplainNode) => boolean): ExplainNode | undefined;
59
- walk(visitor: (node: ExplainNode) => void): void;
60
- walkBreadth(visitor: (node: ExplainNode) => void): void;
61
- }
62
- export declare class ExplainTree {
63
- root: ExplainNode;
64
- metadata: ExplainPlanMetadata;
65
- constructor(root: ExplainNode, metadata: ExplainPlanMetadata);
66
- static fromPostgresExplain(explainResult: PostgresExplainResult, query: string): ExplainTree;
67
- replaceFromPostgresExplain(explainResult: PostgresExplainResult, query: string): void;
68
- find(predicate: (node: ExplainNode) => boolean): ExplainNode | undefined;
69
- walk(visitor: (node: ExplainNode) => void): void;
70
- walkBreadth(visitor: (node: ExplainNode) => void): void;
71
- nodeCount(): number;
72
- }
73
- //# sourceMappingURL=tree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/explain/tree.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,10 +0,0 @@
1
- export * from "./sql/analyzer.js";
2
- export * from "./sql/database.js";
3
- export * from "./sql/nudges.js";
4
- export * from "./sql/indexes.js";
5
- export * from "./sql/builder.js";
6
- export * from "./sql/pg-identifier.js";
7
- export * from "./optimizer/genalgo.js";
8
- export * from "./optimizer/statistics.js";
9
- export * from "./optimizer/pss-rewriter.js";
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC"}