@pgsql/transform 18.1.1 → 18.3.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 (113) hide show
  1. package/README.md +29 -73
  2. package/categorize.d.ts +52 -0
  3. package/categorize.js +56 -0
  4. package/esm/categorize.js +51 -0
  5. package/esm/facts.js +289 -0
  6. package/esm/fixture-closure.js +197 -0
  7. package/esm/index.js +7 -22
  8. package/esm/qualify.js +297 -0
  9. package/esm/round-trip-core.js +126 -0
  10. package/esm/round-trip.js +116 -0
  11. package/esm/transform.js +1169 -0
  12. package/facts.d.ts +69 -0
  13. package/facts.js +292 -0
  14. package/fixture-closure.d.ts +71 -0
  15. package/fixture-closure.js +200 -0
  16. package/index.d.ts +14 -28
  17. package/index.js +43 -76
  18. package/package.json +22 -14
  19. package/qualify.d.ts +125 -0
  20. package/qualify.js +303 -0
  21. package/round-trip-core.d.ts +60 -0
  22. package/round-trip-core.js +133 -0
  23. package/round-trip.d.ts +47 -0
  24. package/round-trip.js +123 -0
  25. package/transform.d.ts +259 -0
  26. package/transform.js +1190 -0
  27. package/13/enums.d.ts +0 -62
  28. package/13/enums.js +0 -2
  29. package/13/types.d.ts +0 -2103
  30. package/13/types.js +0 -2
  31. package/14/enums.d.ts +0 -62
  32. package/14/enums.js +0 -2
  33. package/14/types.d.ts +0 -2164
  34. package/14/types.js +0 -2
  35. package/15/enums.d.ts +0 -64
  36. package/15/enums.js +0 -2
  37. package/15/types.d.ts +0 -2222
  38. package/15/types.js +0 -2
  39. package/16/enums.d.ts +0 -69
  40. package/16/enums.js +0 -2
  41. package/16/types.d.ts +0 -2328
  42. package/16/types.js +0 -2
  43. package/17/enums.d.ts +0 -76
  44. package/17/enums.js +0 -2
  45. package/17/types.d.ts +0 -2488
  46. package/17/types.js +0 -2
  47. package/18/enums.d.ts +0 -78
  48. package/18/enums.js +0 -2
  49. package/18/types.d.ts +0 -2538
  50. package/18/types.js +0 -2
  51. package/esm/13/enums.js +0 -1
  52. package/esm/13/types.js +0 -1
  53. package/esm/14/enums.js +0 -1
  54. package/esm/14/types.js +0 -1
  55. package/esm/15/enums.js +0 -1
  56. package/esm/15/types.js +0 -1
  57. package/esm/16/enums.js +0 -1
  58. package/esm/16/types.js +0 -1
  59. package/esm/17/enums.js +0 -1
  60. package/esm/17/types.js +0 -1
  61. package/esm/18/enums.js +0 -1
  62. package/esm/18/types.js +0 -1
  63. package/esm/multi-version-transformer.js +0 -80
  64. package/esm/transformers/context.js +0 -1
  65. package/esm/transformers/v13-to-v14.js +0 -2767
  66. package/esm/transformers/v14-to-v15.js +0 -1218
  67. package/esm/transformers/v15-to-v16.js +0 -2935
  68. package/esm/transformers/v16-to-v17.js +0 -1526
  69. package/esm/transformers/v17-to-v18.js +0 -204
  70. package/esm/transformers-direct/index.js +0 -13
  71. package/esm/transformers-direct/v13-to-v17/index.js +0 -74
  72. package/esm/transformers-direct/v13-to-v18/index.js +0 -84
  73. package/esm/transformers-direct/v14-to-v17/index.js +0 -63
  74. package/esm/transformers-direct/v14-to-v18/index.js +0 -73
  75. package/esm/transformers-direct/v15-to-v17/index.js +0 -53
  76. package/esm/transformers-direct/v15-to-v18/index.js +0 -62
  77. package/esm/transformers-direct/v16-to-v17/index.js +0 -40
  78. package/esm/transformers-direct/v16-to-v18/index.js +0 -51
  79. package/esm/transformers-direct/v17-to-v18/index.js +0 -39
  80. package/multi-version-transformer.d.ts +0 -14
  81. package/multi-version-transformer.js +0 -84
  82. package/transformers/context.d.ts +0 -4
  83. package/transformers/context.js +0 -2
  84. package/transformers/v13-to-v14.d.ts +0 -255
  85. package/transformers/v13-to-v14.js +0 -2771
  86. package/transformers/v14-to-v15.d.ts +0 -615
  87. package/transformers/v14-to-v15.js +0 -1222
  88. package/transformers/v15-to-v16.d.ts +0 -632
  89. package/transformers/v15-to-v16.js +0 -2939
  90. package/transformers/v16-to-v17.d.ts +0 -640
  91. package/transformers/v16-to-v17.js +0 -1530
  92. package/transformers/v17-to-v18.d.ts +0 -54
  93. package/transformers/v17-to-v18.js +0 -208
  94. package/transformers-direct/index.d.ts +0 -13
  95. package/transformers-direct/index.js +0 -25
  96. package/transformers-direct/v13-to-v17/index.d.ts +0 -27
  97. package/transformers-direct/v13-to-v17/index.js +0 -78
  98. package/transformers-direct/v13-to-v18/index.d.ts +0 -28
  99. package/transformers-direct/v13-to-v18/index.js +0 -88
  100. package/transformers-direct/v14-to-v17/index.d.ts +0 -26
  101. package/transformers-direct/v14-to-v17/index.js +0 -67
  102. package/transformers-direct/v14-to-v18/index.d.ts +0 -27
  103. package/transformers-direct/v14-to-v18/index.js +0 -77
  104. package/transformers-direct/v15-to-v17/index.d.ts +0 -25
  105. package/transformers-direct/v15-to-v17/index.js +0 -57
  106. package/transformers-direct/v15-to-v18/index.d.ts +0 -26
  107. package/transformers-direct/v15-to-v18/index.js +0 -66
  108. package/transformers-direct/v16-to-v17/index.d.ts +0 -24
  109. package/transformers-direct/v16-to-v17/index.js +0 -44
  110. package/transformers-direct/v16-to-v18/index.d.ts +0 -25
  111. package/transformers-direct/v16-to-v18/index.js +0 -55
  112. package/transformers-direct/v17-to-v18/index.d.ts +0 -24
  113. package/transformers-direct/v17-to-v18/index.js +0 -43
@@ -1,54 +0,0 @@
1
- import * as PG17 from '../17/types';
2
- import * as PG18 from '../18/types';
3
- import { TransformerContext } from './context';
4
- /**
5
- * V17 to V18 AST Transformer
6
- * Transforms PostgreSQL v17 AST nodes to v18 format
7
- *
8
- * Structural changes in v18:
9
- * - InsertStmt/UpdateStmt/DeleteStmt/MergeStmt: returningList -> returningClause { exprs }
10
- * - Constraint: new is_enforced flag (true by default for CHECK/FOREIGN/NOTNULL)
11
- * - Constraint: CONSTR_GENERATED gains generated_kind ('s' = STORED, 'v' = VIRTUAL)
12
- * - Column-level NOT NULL constraints gain initially_valid: true
13
- */
14
- export declare class V17ToV18Transformer {
15
- transform(node: PG17.Node, context?: TransformerContext): any;
16
- visit(node: PG17.Node, context?: TransformerContext): any;
17
- /**
18
- * Generic recursive walk that re-dispatches wrapped nodes with a
19
- * dedicated transformer method and deep-copies everything else.
20
- */
21
- private walkValue;
22
- getNodeType(node: PG17.Node): any;
23
- getNodeData(node: PG17.Node): any;
24
- ParseResult(node: PG17.ParseResult, context: TransformerContext): PG18.ParseResult;
25
- RawStmt(node: PG17.RawStmt, context: TransformerContext): {
26
- RawStmt: PG18.RawStmt;
27
- };
28
- /**
29
- * Convert a v17 returningList into a v18 ReturningClause
30
- */
31
- private transformReturningList;
32
- private transformDmlStatement;
33
- InsertStmt(node: PG17.InsertStmt, context: TransformerContext): {
34
- InsertStmt: PG18.InsertStmt;
35
- };
36
- UpdateStmt(node: PG17.UpdateStmt, context: TransformerContext): {
37
- UpdateStmt: PG18.UpdateStmt;
38
- };
39
- DeleteStmt(node: PG17.DeleteStmt, context: TransformerContext): {
40
- DeleteStmt: PG18.DeleteStmt;
41
- };
42
- MergeStmt(node: PG17.MergeStmt, context: TransformerContext): {
43
- MergeStmt: PG18.MergeStmt;
44
- };
45
- AlterTableCmd(node: PG17.AlterTableCmd, context: TransformerContext): {
46
- AlterTableCmd: PG18.AlterTableCmd;
47
- };
48
- VariableSetStmt(node: PG17.VariableSetStmt, context: TransformerContext): {
49
- VariableSetStmt: PG18.VariableSetStmt;
50
- };
51
- Constraint(node: PG17.Constraint, context: TransformerContext): {
52
- Constraint: PG18.Constraint;
53
- };
54
- }
@@ -1,208 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.V17ToV18Transformer = void 0;
4
- /**
5
- * V17 to V18 AST Transformer
6
- * Transforms PostgreSQL v17 AST nodes to v18 format
7
- *
8
- * Structural changes in v18:
9
- * - InsertStmt/UpdateStmt/DeleteStmt/MergeStmt: returningList -> returningClause { exprs }
10
- * - Constraint: new is_enforced flag (true by default for CHECK/FOREIGN/NOTNULL)
11
- * - Constraint: CONSTR_GENERATED gains generated_kind ('s' = STORED, 'v' = VIRTUAL)
12
- * - Column-level NOT NULL constraints gain initially_valid: true
13
- */
14
- class V17ToV18Transformer {
15
- transform(node, context = { parentNodeTypes: [] }) {
16
- if (node == null) {
17
- return null;
18
- }
19
- if (typeof node === 'number' || node instanceof Number) {
20
- return node;
21
- }
22
- if (typeof node === 'string') {
23
- return node;
24
- }
25
- try {
26
- return this.visit(node, context);
27
- }
28
- catch (error) {
29
- const nodeType = Object.keys(node)[0];
30
- throw new Error(`Error transforming ${nodeType}: ${error.message}`);
31
- }
32
- }
33
- visit(node, context = { parentNodeTypes: [] }) {
34
- if (node && typeof node === 'object' && 'version' in node && 'stmts' in node) {
35
- return this.ParseResult(node, context);
36
- }
37
- const nodeType = this.getNodeType(node);
38
- // Handle empty objects
39
- if (!nodeType) {
40
- return {};
41
- }
42
- const nodeData = this.getNodeData(node);
43
- const methodName = nodeType;
44
- if (typeof this[methodName] === 'function') {
45
- const childContext = {
46
- ...context,
47
- parentNodeTypes: [...context.parentNodeTypes, nodeType]
48
- };
49
- const result = this[methodName](nodeData, childContext);
50
- return result;
51
- }
52
- // No specific method: recurse into children so nested statements
53
- // (e.g. DML inside CTEs) still get transformed
54
- return this.walkValue(node, context);
55
- }
56
- /**
57
- * Generic recursive walk that re-dispatches wrapped nodes with a
58
- * dedicated transformer method and deep-copies everything else.
59
- */
60
- walkValue(value, context) {
61
- if (value == null || typeof value !== 'object') {
62
- return value;
63
- }
64
- if (Array.isArray(value)) {
65
- return value.map(item => this.walkValue(item, context));
66
- }
67
- const keys = Object.keys(value);
68
- if (keys.length === 1 && typeof this[keys[0]] === 'function') {
69
- // Wrapped node with a dedicated transformer method
70
- return this.visit(value, context);
71
- }
72
- const result = {};
73
- for (const key of keys) {
74
- result[key] = this.walkValue(value[key], context);
75
- }
76
- return result;
77
- }
78
- getNodeType(node) {
79
- return Object.keys(node)[0];
80
- }
81
- getNodeData(node) {
82
- const keys = Object.keys(node);
83
- if (keys.length === 1 && typeof node[keys[0]] === 'object') {
84
- return node[keys[0]];
85
- }
86
- return node;
87
- }
88
- ParseResult(node, context) {
89
- if (node && typeof node === 'object' && 'version' in node && 'stmts' in node) {
90
- return {
91
- version: 180004, // PG18 version
92
- stmts: node.stmts.map((stmt) => {
93
- if (stmt && typeof stmt === 'object' && 'stmt' in stmt) {
94
- return {
95
- ...stmt,
96
- stmt: this.transform(stmt.stmt, context)
97
- };
98
- }
99
- return this.transform(stmt, context);
100
- })
101
- };
102
- }
103
- return node;
104
- }
105
- RawStmt(node, context) {
106
- const result = {};
107
- if (node.stmt !== undefined) {
108
- result.stmt = this.transform(node.stmt, context);
109
- }
110
- if (node.stmt_location !== undefined) {
111
- result.stmt_location = node.stmt_location;
112
- }
113
- if (node.stmt_len !== undefined) {
114
- result.stmt_len = node.stmt_len;
115
- }
116
- return { RawStmt: result };
117
- }
118
- /**
119
- * Convert a v17 returningList into a v18 ReturningClause
120
- */
121
- transformReturningList(returningList, context) {
122
- return {
123
- exprs: returningList.map(item => this.transform(item, context))
124
- };
125
- }
126
- transformDmlStatement(nodeType, node, context) {
127
- const result = {};
128
- for (const key of Object.keys(node)) {
129
- if (key === 'returningList') {
130
- result.returningClause = this.transformReturningList(node.returningList, context);
131
- }
132
- else {
133
- result[key] = this.walkValue(node[key], context);
134
- }
135
- }
136
- return { [nodeType]: result };
137
- }
138
- InsertStmt(node, context) {
139
- return this.transformDmlStatement('InsertStmt', node, context);
140
- }
141
- UpdateStmt(node, context) {
142
- return this.transformDmlStatement('UpdateStmt', node, context);
143
- }
144
- DeleteStmt(node, context) {
145
- return this.transformDmlStatement('DeleteStmt', node, context);
146
- }
147
- MergeStmt(node, context) {
148
- return this.transformDmlStatement('MergeStmt', node, context);
149
- }
150
- AlterTableCmd(node, context) {
151
- const result = {};
152
- for (const key of Object.keys(node)) {
153
- result[key] = this.walkValue(node[key], context);
154
- }
155
- // v18 wraps ALTER CONSTRAINT definitions in the new ATAlterConstraint node
156
- if (node.subtype === 'AT_AlterConstraint' && node.def?.Constraint) {
157
- const constraint = node.def.Constraint;
158
- const alterConstraint = {};
159
- if (constraint.conname !== undefined) {
160
- alterConstraint.conname = constraint.conname;
161
- }
162
- alterConstraint.is_enforced = true;
163
- // v17 ALTER CONSTRAINT could only change deferrability
164
- alterConstraint.alterDeferrability = true;
165
- if (constraint.deferrable !== undefined) {
166
- alterConstraint.deferrable = constraint.deferrable;
167
- }
168
- if (constraint.initdeferred !== undefined) {
169
- alterConstraint.initdeferred = constraint.initdeferred;
170
- }
171
- result.def = { ATAlterConstraint: alterConstraint };
172
- }
173
- return { AlterTableCmd: result };
174
- }
175
- VariableSetStmt(node, context) {
176
- const result = {};
177
- for (const key of Object.keys(node)) {
178
- result[key] = this.walkValue(node[key], context);
179
- }
180
- // v18 marks SET TRANSACTION / SESSION CHARACTERISTICS args as jumbled
181
- if (node.kind === 'VAR_SET_MULTI' && (node.name === 'TRANSACTION' || node.name === 'SESSION CHARACTERISTICS')) {
182
- result.jumble_args = true;
183
- }
184
- return { VariableSetStmt: result };
185
- }
186
- Constraint(node, context) {
187
- const result = {};
188
- for (const key of Object.keys(node)) {
189
- result[key] = this.walkValue(node[key], context);
190
- }
191
- // v18 constraints are enforced by default; v17 grammar had no ENFORCED syntax
192
- if (node.contype === 'CONSTR_CHECK' || node.contype === 'CONSTR_FOREIGN') {
193
- result.is_enforced = true;
194
- }
195
- if (node.contype === 'CONSTR_NOTNULL') {
196
- // v17 only produces column-level NOT NULL constraints, which in v18
197
- // carry is_enforced and initially_valid
198
- result.is_enforced = true;
199
- result.initially_valid = true;
200
- }
201
- if (node.contype === 'CONSTR_GENERATED' && result.generated_kind === undefined) {
202
- // v17 only supports STORED generated columns
203
- result.generated_kind = 's';
204
- }
205
- return { Constraint: result };
206
- }
207
- }
208
- exports.V17ToV18Transformer = V17ToV18Transformer;
@@ -1,13 +0,0 @@
1
- /**
2
- * Direct transformers for PostgreSQL version upgrades to PG17/PG18
3
- * These transformers are designed for tree-shaking optimization
4
- */
5
- export { PG13ToPG17Transformer } from './v13-to-v17';
6
- export { PG14ToPG17Transformer } from './v14-to-v17';
7
- export { PG15ToPG17Transformer } from './v15-to-v17';
8
- export { PG16ToPG17Transformer } from './v16-to-v17';
9
- export { PG13ToPG18Transformer } from './v13-to-v18';
10
- export { PG14ToPG18Transformer } from './v14-to-v18';
11
- export { PG15ToPG18Transformer } from './v15-to-v18';
12
- export { PG16ToPG18Transformer } from './v16-to-v18';
13
- export { PG17ToPG18Transformer } from './v17-to-v18';
@@ -1,25 +0,0 @@
1
- "use strict";
2
- /**
3
- * Direct transformers for PostgreSQL version upgrades to PG17/PG18
4
- * These transformers are designed for tree-shaking optimization
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.PG17ToPG18Transformer = exports.PG16ToPG18Transformer = exports.PG15ToPG18Transformer = exports.PG14ToPG18Transformer = exports.PG13ToPG18Transformer = exports.PG16ToPG17Transformer = exports.PG15ToPG17Transformer = exports.PG14ToPG17Transformer = exports.PG13ToPG17Transformer = void 0;
8
- var v13_to_v17_1 = require("./v13-to-v17");
9
- Object.defineProperty(exports, "PG13ToPG17Transformer", { enumerable: true, get: function () { return v13_to_v17_1.PG13ToPG17Transformer; } });
10
- var v14_to_v17_1 = require("./v14-to-v17");
11
- Object.defineProperty(exports, "PG14ToPG17Transformer", { enumerable: true, get: function () { return v14_to_v17_1.PG14ToPG17Transformer; } });
12
- var v15_to_v17_1 = require("./v15-to-v17");
13
- Object.defineProperty(exports, "PG15ToPG17Transformer", { enumerable: true, get: function () { return v15_to_v17_1.PG15ToPG17Transformer; } });
14
- var v16_to_v17_1 = require("./v16-to-v17");
15
- Object.defineProperty(exports, "PG16ToPG17Transformer", { enumerable: true, get: function () { return v16_to_v17_1.PG16ToPG17Transformer; } });
16
- var v13_to_v18_1 = require("./v13-to-v18");
17
- Object.defineProperty(exports, "PG13ToPG18Transformer", { enumerable: true, get: function () { return v13_to_v18_1.PG13ToPG18Transformer; } });
18
- var v14_to_v18_1 = require("./v14-to-v18");
19
- Object.defineProperty(exports, "PG14ToPG18Transformer", { enumerable: true, get: function () { return v14_to_v18_1.PG14ToPG18Transformer; } });
20
- var v15_to_v18_1 = require("./v15-to-v18");
21
- Object.defineProperty(exports, "PG15ToPG18Transformer", { enumerable: true, get: function () { return v15_to_v18_1.PG15ToPG18Transformer; } });
22
- var v16_to_v18_1 = require("./v16-to-v18");
23
- Object.defineProperty(exports, "PG16ToPG18Transformer", { enumerable: true, get: function () { return v16_to_v18_1.PG16ToPG18Transformer; } });
24
- var v17_to_v18_1 = require("./v17-to-v18");
25
- Object.defineProperty(exports, "PG17ToPG18Transformer", { enumerable: true, get: function () { return v17_to_v18_1.PG17ToPG18Transformer; } });
@@ -1,27 +0,0 @@
1
- import * as PG13 from '../../13/types';
2
- import * as PG17 from '../../17/types';
3
- /**
4
- * Direct transformer from PG13 to PG17
5
- * This transformer chains v13->v14->v15->v16->v17 transformations
6
- */
7
- export declare class PG13ToPG17Transformer {
8
- private v13to14;
9
- private v14to15;
10
- private v15to16;
11
- private v16to17;
12
- /**
13
- * Transform a node or parse result from PG13 to PG17
14
- * @param node - Can be a ParseResult or any Node type
15
- */
16
- transform(node: PG13.Node): PG17.Node;
17
- transform(node: PG13.ParseResult): PG17.ParseResult;
18
- /**
19
- * Transform a single statement from PG13 to PG17
20
- * @deprecated Use transform() instead, which handles all node types
21
- */
22
- transformStatement(stmt: any): any;
23
- /**
24
- * Type guard to check if a node is a ParseResult
25
- */
26
- private isParseResult;
27
- }
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PG13ToPG17Transformer = void 0;
4
- const v13_to_v14_1 = require("../../transformers/v13-to-v14");
5
- const v14_to_v15_1 = require("../../transformers/v14-to-v15");
6
- const v15_to_v16_1 = require("../../transformers/v15-to-v16");
7
- const v16_to_v17_1 = require("../../transformers/v16-to-v17");
8
- /**
9
- * Direct transformer from PG13 to PG17
10
- * This transformer chains v13->v14->v15->v16->v17 transformations
11
- */
12
- class PG13ToPG17Transformer {
13
- v13to14 = new v13_to_v14_1.V13ToV14Transformer();
14
- v14to15 = new v14_to_v15_1.V14ToV15Transformer();
15
- v15to16 = new v15_to_v16_1.V15ToV16Transformer();
16
- v16to17 = new v16_to_v17_1.V16ToV17Transformer();
17
- transform(node) {
18
- // If it's a ParseResult, handle it specially
19
- if (this.isParseResult(node)) {
20
- // Transform through the chain: v13->v14->v15->v16->v17
21
- const v14Stmts = node.stmts.map((stmtWrapper) => {
22
- if (stmtWrapper.stmt) {
23
- const v14Stmt = this.v13to14.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
24
- return { ...stmtWrapper, stmt: v14Stmt };
25
- }
26
- return stmtWrapper;
27
- });
28
- const v15Stmts = v14Stmts.map((stmtWrapper) => {
29
- if (stmtWrapper.stmt) {
30
- const v15Stmt = this.v14to15.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
31
- return { ...stmtWrapper, stmt: v15Stmt };
32
- }
33
- return stmtWrapper;
34
- });
35
- const v16Stmts = v15Stmts.map((stmtWrapper) => {
36
- if (stmtWrapper.stmt) {
37
- const v16Stmt = this.v15to16.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
38
- return { ...stmtWrapper, stmt: v16Stmt };
39
- }
40
- return stmtWrapper;
41
- });
42
- const v17Stmts = v16Stmts.map((stmtWrapper) => {
43
- if (stmtWrapper.stmt) {
44
- const v17Stmt = this.v16to17.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
45
- return { ...stmtWrapper, stmt: v17Stmt };
46
- }
47
- return stmtWrapper;
48
- });
49
- return {
50
- ...node,
51
- version: 170004, // PG17 version
52
- stmts: v17Stmts
53
- };
54
- }
55
- // Otherwise, transform as a regular node through the chain
56
- const v14Node = this.v13to14.transform(node, { parentNodeTypes: [] });
57
- const v15Node = this.v14to15.transform(v14Node, { parentNodeTypes: [] });
58
- const v16Node = this.v15to16.transform(v15Node, { parentNodeTypes: [] });
59
- return this.v16to17.transform(v16Node, { parentNodeTypes: [] });
60
- }
61
- /**
62
- * Transform a single statement from PG13 to PG17
63
- * @deprecated Use transform() instead, which handles all node types
64
- */
65
- transformStatement(stmt) {
66
- const v14Stmt = this.v13to14.transform(stmt, { parentNodeTypes: [] });
67
- const v15Stmt = this.v14to15.transform(v14Stmt, { parentNodeTypes: [] });
68
- const v16Stmt = this.v15to16.transform(v15Stmt, { parentNodeTypes: [] });
69
- return this.v16to17.transform(v16Stmt, { parentNodeTypes: [] });
70
- }
71
- /**
72
- * Type guard to check if a node is a ParseResult
73
- */
74
- isParseResult(node) {
75
- return node && typeof node === 'object' && 'version' in node && 'stmts' in node;
76
- }
77
- }
78
- exports.PG13ToPG17Transformer = PG13ToPG17Transformer;
@@ -1,28 +0,0 @@
1
- import * as PG13 from '../../13/types';
2
- import * as PG18 from '../../18/types';
3
- /**
4
- * Direct transformer from PG13 to PG18
5
- * This transformer chains v13->...->v18 transformations
6
- */
7
- export declare class PG13ToPG18Transformer {
8
- private v13to14;
9
- private v14to15;
10
- private v15to16;
11
- private v16to17;
12
- private v17to18;
13
- /**
14
- * Transform a node or parse result from PG13 to PG18
15
- * @param node - Can be a ParseResult or any Node type
16
- */
17
- transform(node: PG13.Node): PG18.Node;
18
- transform(node: PG13.ParseResult): PG18.ParseResult;
19
- /**
20
- * Transform a single statement from PG13 to PG18
21
- * @deprecated Use transform() instead, which handles all node types
22
- */
23
- transformStatement(stmt: any): any;
24
- /**
25
- * Type guard to check if a node is a ParseResult
26
- */
27
- private isParseResult;
28
- }
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PG13ToPG18Transformer = void 0;
4
- const v13_to_v14_1 = require("../../transformers/v13-to-v14");
5
- const v14_to_v15_1 = require("../../transformers/v14-to-v15");
6
- const v15_to_v16_1 = require("../../transformers/v15-to-v16");
7
- const v16_to_v17_1 = require("../../transformers/v16-to-v17");
8
- const v17_to_v18_1 = require("../../transformers/v17-to-v18");
9
- /**
10
- * Direct transformer from PG13 to PG18
11
- * This transformer chains v13->...->v18 transformations
12
- */
13
- class PG13ToPG18Transformer {
14
- v13to14 = new v13_to_v14_1.V13ToV14Transformer();
15
- v14to15 = new v14_to_v15_1.V14ToV15Transformer();
16
- v15to16 = new v15_to_v16_1.V15ToV16Transformer();
17
- v16to17 = new v16_to_v17_1.V16ToV17Transformer();
18
- v17to18 = new v17_to_v18_1.V17ToV18Transformer();
19
- transform(node) {
20
- if (this.isParseResult(node)) {
21
- // Transform through the chain: v13->v14->v15->v16->v17->v18
22
- const v14Stmts = node.stmts.map((stmtWrapper) => {
23
- if (stmtWrapper.stmt) {
24
- const stmt = this.v13to14.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
25
- return { ...stmtWrapper, stmt };
26
- }
27
- return stmtWrapper;
28
- });
29
- const v15Stmts = v14Stmts.map((stmtWrapper) => {
30
- if (stmtWrapper.stmt) {
31
- const stmt = this.v14to15.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
32
- return { ...stmtWrapper, stmt };
33
- }
34
- return stmtWrapper;
35
- });
36
- const v16Stmts = v15Stmts.map((stmtWrapper) => {
37
- if (stmtWrapper.stmt) {
38
- const stmt = this.v15to16.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
39
- return { ...stmtWrapper, stmt };
40
- }
41
- return stmtWrapper;
42
- });
43
- const v17Stmts = v16Stmts.map((stmtWrapper) => {
44
- if (stmtWrapper.stmt) {
45
- const stmt = this.v16to17.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
46
- return { ...stmtWrapper, stmt };
47
- }
48
- return stmtWrapper;
49
- });
50
- const v18Stmts = v17Stmts.map((stmtWrapper) => {
51
- if (stmtWrapper.stmt) {
52
- const stmt = this.v17to18.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
53
- return { ...stmtWrapper, stmt };
54
- }
55
- return stmtWrapper;
56
- });
57
- return {
58
- ...node,
59
- version: 180004, // PG18 version
60
- stmts: v18Stmts
61
- };
62
- }
63
- // Otherwise, transform as a regular node through the chain
64
- const v14Node = this.v13to14.transform(node, { parentNodeTypes: [] });
65
- const v15Node = this.v14to15.transform(v14Node, { parentNodeTypes: [] });
66
- const v16Node = this.v15to16.transform(v15Node, { parentNodeTypes: [] });
67
- const v17Node = this.v16to17.transform(v16Node, { parentNodeTypes: [] });
68
- return this.v17to18.transform(v17Node, { parentNodeTypes: [] });
69
- }
70
- /**
71
- * Transform a single statement from PG13 to PG18
72
- * @deprecated Use transform() instead, which handles all node types
73
- */
74
- transformStatement(stmt) {
75
- const v14Stmt = this.v13to14.transform(stmt, { parentNodeTypes: [] });
76
- const v15Stmt = this.v14to15.transform(v14Stmt, { parentNodeTypes: [] });
77
- const v16Stmt = this.v15to16.transform(v15Stmt, { parentNodeTypes: [] });
78
- const v17Stmt = this.v16to17.transform(v16Stmt, { parentNodeTypes: [] });
79
- return this.v17to18.transform(v17Stmt, { parentNodeTypes: [] });
80
- }
81
- /**
82
- * Type guard to check if a node is a ParseResult
83
- */
84
- isParseResult(node) {
85
- return node && typeof node === 'object' && 'version' in node && 'stmts' in node;
86
- }
87
- }
88
- exports.PG13ToPG18Transformer = PG13ToPG18Transformer;
@@ -1,26 +0,0 @@
1
- import * as PG14 from '../../14/types';
2
- import * as PG17 from '../../17/types';
3
- /**
4
- * Direct transformer from PG14 to PG17
5
- * This transformer chains v14->v15->v16->v17 transformations
6
- */
7
- export declare class PG14ToPG17Transformer {
8
- private v14to15;
9
- private v15to16;
10
- private v16to17;
11
- /**
12
- * Transform a node or parse result from PG14 to PG17
13
- * @param node - Can be a ParseResult or any Node type
14
- */
15
- transform(node: PG14.Node): PG17.Node;
16
- transform(node: PG14.ParseResult): PG17.ParseResult;
17
- /**
18
- * Transform a single statement from PG14 to PG17
19
- * @deprecated Use transform() instead, which handles all node types
20
- */
21
- transformStatement(stmt: any): any;
22
- /**
23
- * Type guard to check if a node is a ParseResult
24
- */
25
- private isParseResult;
26
- }
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PG14ToPG17Transformer = void 0;
4
- const v14_to_v15_1 = require("../../transformers/v14-to-v15");
5
- const v15_to_v16_1 = require("../../transformers/v15-to-v16");
6
- const v16_to_v17_1 = require("../../transformers/v16-to-v17");
7
- /**
8
- * Direct transformer from PG14 to PG17
9
- * This transformer chains v14->v15->v16->v17 transformations
10
- */
11
- class PG14ToPG17Transformer {
12
- v14to15 = new v14_to_v15_1.V14ToV15Transformer();
13
- v15to16 = new v15_to_v16_1.V15ToV16Transformer();
14
- v16to17 = new v16_to_v17_1.V16ToV17Transformer();
15
- transform(node) {
16
- // If it's a ParseResult, handle it specially
17
- if (this.isParseResult(node)) {
18
- // Transform through the chain: v14->v15->v16->v17
19
- const v15Stmts = node.stmts.map((stmtWrapper) => {
20
- if (stmtWrapper.stmt) {
21
- const v15Stmt = this.v14to15.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
22
- return { ...stmtWrapper, stmt: v15Stmt };
23
- }
24
- return stmtWrapper;
25
- });
26
- const v16Stmts = v15Stmts.map((stmtWrapper) => {
27
- if (stmtWrapper.stmt) {
28
- const v16Stmt = this.v15to16.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
29
- return { ...stmtWrapper, stmt: v16Stmt };
30
- }
31
- return stmtWrapper;
32
- });
33
- const v17Stmts = v16Stmts.map((stmtWrapper) => {
34
- if (stmtWrapper.stmt) {
35
- const v17Stmt = this.v16to17.transform(stmtWrapper.stmt, { parentNodeTypes: [] });
36
- return { ...stmtWrapper, stmt: v17Stmt };
37
- }
38
- return stmtWrapper;
39
- });
40
- return {
41
- ...node,
42
- version: 170004, // PG17 version
43
- stmts: v17Stmts
44
- };
45
- }
46
- // Otherwise, transform as a regular node through the chain
47
- const v15Node = this.v14to15.transform(node, { parentNodeTypes: [] });
48
- const v16Node = this.v15to16.transform(v15Node, { parentNodeTypes: [] });
49
- return this.v16to17.transform(v16Node, { parentNodeTypes: [] });
50
- }
51
- /**
52
- * Transform a single statement from PG14 to PG17
53
- * @deprecated Use transform() instead, which handles all node types
54
- */
55
- transformStatement(stmt) {
56
- const v15Stmt = this.v14to15.transform(stmt, { parentNodeTypes: [] });
57
- const v16Stmt = this.v15to16.transform(v15Stmt, { parentNodeTypes: [] });
58
- return this.v16to17.transform(v16Stmt, { parentNodeTypes: [] });
59
- }
60
- /**
61
- * Type guard to check if a node is a ParseResult
62
- */
63
- isParseResult(node) {
64
- return node && typeof node === 'object' && 'version' in node && 'stmts' in node;
65
- }
66
- }
67
- exports.PG14ToPG17Transformer = PG14ToPG17Transformer;
@@ -1,27 +0,0 @@
1
- import * as PG14 from '../../14/types';
2
- import * as PG18 from '../../18/types';
3
- /**
4
- * Direct transformer from PG14 to PG18
5
- * This transformer chains v14->...->v18 transformations
6
- */
7
- export declare class PG14ToPG18Transformer {
8
- private v14to15;
9
- private v15to16;
10
- private v16to17;
11
- private v17to18;
12
- /**
13
- * Transform a node or parse result from PG14 to PG18
14
- * @param node - Can be a ParseResult or any Node type
15
- */
16
- transform(node: PG14.Node): PG18.Node;
17
- transform(node: PG14.ParseResult): PG18.ParseResult;
18
- /**
19
- * Transform a single statement from PG14 to PG18
20
- * @deprecated Use transform() instead, which handles all node types
21
- */
22
- transformStatement(stmt: any): any;
23
- /**
24
- * Type guard to check if a node is a ParseResult
25
- */
26
- private isParseResult;
27
- }