typesql-cli 0.18.3 → 0.18.5

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 (48) hide show
  1. package/code-generator2.d.ts.map +1 -1
  2. package/code-generator2.js +14 -2
  3. package/code-generator2.js.map +1 -1
  4. package/dialects/postgres.d.ts +2 -1
  5. package/dialects/postgres.d.ts.map +1 -1
  6. package/dialects/postgres.js +18 -1
  7. package/dialects/postgres.js.map +1 -1
  8. package/drivers/postgres.d.ts +4 -1
  9. package/drivers/postgres.d.ts.map +1 -1
  10. package/drivers/postgres.js +21 -0
  11. package/drivers/postgres.js.map +1 -1
  12. package/drivers/types.d.ts +4 -2
  13. package/drivers/types.d.ts.map +1 -1
  14. package/mysql-query-analyzer/select-columns.d.ts +1 -0
  15. package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
  16. package/mysql-query-analyzer/select-columns.js +13 -0
  17. package/mysql-query-analyzer/select-columns.js.map +1 -1
  18. package/package.json +1 -1
  19. package/postgres-query-analyzer/case-nullability-checker.d.ts +3 -0
  20. package/postgres-query-analyzer/case-nullability-checker.d.ts.map +1 -0
  21. package/postgres-query-analyzer/case-nullability-checker.js +110 -0
  22. package/postgres-query-analyzer/case-nullability-checker.js.map +1 -0
  23. package/postgres-query-analyzer/describe.d.ts.map +1 -1
  24. package/postgres-query-analyzer/describe.js +9 -8
  25. package/postgres-query-analyzer/describe.js.map +1 -1
  26. package/postgres-query-analyzer/enum-parser.d.ts +2 -1
  27. package/postgres-query-analyzer/enum-parser.d.ts.map +1 -1
  28. package/postgres-query-analyzer/enum-parser.js.map +1 -1
  29. package/postgres-query-analyzer/nullability-checker.d.ts +3 -0
  30. package/postgres-query-analyzer/nullability-checker.d.ts.map +1 -0
  31. package/postgres-query-analyzer/nullability-checker.js +110 -0
  32. package/postgres-query-analyzer/nullability-checker.js.map +1 -0
  33. package/postgres-query-analyzer/parser.d.ts +3 -2
  34. package/postgres-query-analyzer/parser.d.ts.map +1 -1
  35. package/postgres-query-analyzer/parser.js +19 -5
  36. package/postgres-query-analyzer/parser.js.map +1 -1
  37. package/postgres-query-analyzer/traverse.d.ts +19 -8
  38. package/postgres-query-analyzer/traverse.d.ts.map +1 -1
  39. package/postgres-query-analyzer/traverse.js +488 -174
  40. package/postgres-query-analyzer/traverse.js.map +1 -1
  41. package/postgres-query-analyzer/types.d.ts +8 -0
  42. package/postgres-query-analyzer/types.d.ts.map +1 -1
  43. package/sqlite-query-analyzer/replace-list-params.d.ts +0 -1
  44. package/sqlite-query-analyzer/replace-list-params.d.ts.map +1 -1
  45. package/sqlite-query-analyzer/replace-list-params.js +0 -57
  46. package/sqlite-query-analyzer/replace-list-params.js.map +1 -1
  47. package/sqlite-query-analyzer/types.d.ts +8 -2
  48. package/sqlite-query-analyzer/types.d.ts.map +1 -1
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.evaluatesTrueIfNull = evaluatesTrueIfNull;
4
+ const PostgreSQLParser_1 = require("@wsporto/typesql-parser/postgres/PostgreSQLParser");
5
+ const select_columns_1 = require("../mysql-query-analyzer/select-columns");
6
+ const typesql_parser_1 = require("@wsporto/typesql-parser");
7
+ function getSingleColumnRefOrNull(elseExpr) {
8
+ var _a;
9
+ if (((_a = elseExpr.children) === null || _a === void 0 ? void 0 : _a.length) != 1) {
10
+ return null;
11
+ }
12
+ const child = elseExpr.children[0];
13
+ if (child instanceof PostgreSQLParser_1.ColumnrefContext) {
14
+ return child;
15
+ }
16
+ if (child instanceof typesql_parser_1.ParserRuleContext) { //composite
17
+ return getSingleColumnRefOrNull(child);
18
+ }
19
+ return null;
20
+ }
21
+ function evaluatesTrueIfNull(elseExpr, a_expr) {
22
+ // Can only infer if the elseExpr is a single column;
23
+ const columnRef = getSingleColumnRefOrNull(elseExpr.a_expr());
24
+ if (!columnRef) {
25
+ return false;
26
+ }
27
+ const a_expr_qual = a_expr.a_expr_qual();
28
+ if (a_expr_qual) {
29
+ return evaluatesTrueIfNull_a_expr_qual(a_expr_qual, (0, select_columns_1.splitName)(columnRef.getText()));
30
+ }
31
+ return false;
32
+ }
33
+ function evaluatesTrueIfNull_a_expr_qual(a_expr_qual, field) {
34
+ const a_expr_lessless = a_expr_qual.a_expr_lessless();
35
+ if (a_expr_lessless) {
36
+ return evaluatesTrueIfNull_a_expr_lessless(a_expr_lessless, field);
37
+ }
38
+ return false;
39
+ }
40
+ function evaluatesTrueIfNull_a_expr_lessless(a_expr_lessless, field) {
41
+ const a_expr_or = a_expr_lessless.a_expr_or_list()[0];
42
+ if (a_expr_or) {
43
+ return evaluatesTrueIfNull_a_expr_or(a_expr_or, field);
44
+ }
45
+ return false;
46
+ }
47
+ //a_expr_or: "valueisnotnulland(id>0orvalueisnotnull)"
48
+ //a_expr_or: "valueisnotnullor(id>0orvalueisnotnull)"
49
+ function evaluatesTrueIfNull_a_expr_or(a_expr_or, field) {
50
+ const a_expr_and = a_expr_or.a_expr_and_list();
51
+ if (a_expr_and) {
52
+ //1. valueisnotnull
53
+ //2. (id>0orvalueisnotnull)
54
+ const result = a_expr_and.some(a_expr_and => evaluatesTrueIfNull_a_expr_and(a_expr_and, field));
55
+ return result;
56
+ }
57
+ return false;
58
+ }
59
+ function evaluatesTrueIfNull_a_expr_and(a_expr_and, field) {
60
+ const a_expr_between_list = a_expr_and.a_expr_between_list();
61
+ if (a_expr_between_list) {
62
+ return a_expr_between_list.every(a_expr_between => evaluatesTrueIfNull_a_expr_between(a_expr_between, field));
63
+ }
64
+ return false;
65
+ }
66
+ function evaluatesTrueIfNull_a_expr_between(a_expr_between, field) {
67
+ const a_expr_in = a_expr_between.a_expr_in_list()[0];
68
+ if (a_expr_in) {
69
+ return evaluatesTrueIfNull_a_expr_in(a_expr_in, field);
70
+ }
71
+ return false;
72
+ }
73
+ function evaluatesTrueIfNull_a_expr_in(a_expr_in, field) {
74
+ const a_expr_unary_not = a_expr_in.a_expr_unary_not();
75
+ if (a_expr_unary_not) {
76
+ return evaluatesTrueIfNull_a_expr_unary_not(a_expr_unary_not, field);
77
+ }
78
+ return false;
79
+ }
80
+ function evaluatesTrueIfNull_a_expr_unary_not(a_expr_unary_not, field) {
81
+ const a_expr_isnull = a_expr_unary_not.a_expr_isnull();
82
+ if (a_expr_isnull) {
83
+ return evaluatesTrueIfNull_a_expr_isnull(a_expr_isnull, field);
84
+ }
85
+ return false;
86
+ }
87
+ function evaluatesTrueIfNull_a_expr_isnull(a_expr_isnull, field) {
88
+ const a_expr_is_not = a_expr_isnull.a_expr_is_not();
89
+ if (a_expr_is_not) {
90
+ const a_expr_compare = a_expr_is_not.a_expr_compare();
91
+ if (!a_expr_compare) {
92
+ return false;
93
+ }
94
+ const columnRef = getSingleColumnRefOrNull(a_expr_compare);
95
+ if (!columnRef) {
96
+ return false;
97
+ }
98
+ const fieldName = (0, select_columns_1.splitName)(columnRef.getText());
99
+ if (fieldName.name === field.name && (field.prefix === fieldName.prefix || fieldName.prefix === '' || field.prefix === '')
100
+ && a_expr_is_not.IS() && a_expr_is_not.NULL_P()) {
101
+ if (a_expr_is_not.NOT()) {
102
+ return false;
103
+ }
104
+ return true;
105
+ }
106
+ return false;
107
+ }
108
+ return false;
109
+ }
110
+ //# sourceMappingURL=case-nullability-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-nullability-checker.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/case-nullability-checker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,OAAO,EAAc,WAAW,EAAO,MAAM,YAAY,CAAC;AAO1D,OAAO,EAA4C,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA0GtF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAgBjI"}
1
+ {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAc,WAAW,EAAO,MAAM,YAAY,CAAC;AAO1D,OAAO,EAA4C,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA0GtF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAiBjI"}
@@ -11,10 +11,10 @@ const Either_1 = require("fp-ts/lib/Either");
11
11
  const describe_query_1 = require("../describe-query");
12
12
  const describe_dynamic_query_1 = require("../describe-dynamic-query");
13
13
  function describeQueryRefine(describeParameters) {
14
- const { sql, dbSchema, postgresDescribeResult, enumsTypes, checkConstraints, namedParameters } = describeParameters;
14
+ const { sql, dbSchema, postgresDescribeResult, enumsTypes, checkConstraints, namedParameters, userFunctions } = describeParameters;
15
15
  const generateNestedInfo = (0, describe_query_1.hasAnnotation)(sql, '@nested');
16
16
  const generateDynamicQueryInfo = (0, describe_query_1.hasAnnotation)(sql, '@dynamicQuery');
17
- const parseResult = (0, parser_1.safeParseSql)(sql, dbSchema, checkConstraints, { collectNestedInfo: generateNestedInfo, collectDynamicQueryInfo: generateDynamicQueryInfo });
17
+ const parseResult = (0, parser_1.safeParseSql)(sql, dbSchema, checkConstraints, userFunctions, { collectNestedInfo: generateNestedInfo, collectDynamicQueryInfo: generateDynamicQueryInfo });
18
18
  if (parseResult.isErr()) {
19
19
  return (0, neverthrow_1.err)({
20
20
  name: 'ParserError',
@@ -70,16 +70,16 @@ function createIndexToNameMap(names) {
70
70
  return indexToName;
71
71
  }
72
72
  function mapToColumnInfo(col, posgresTypes, enumTypes, checkConstraints, colInfo) {
73
- var _a;
74
73
  const constraintKey = `[${colInfo.table_schema}][${colInfo.table_name}][${colInfo.column_name}]`;
75
74
  return {
76
75
  name: col.name,
77
- notNull: !colInfo.is_nullable,
78
- type: (_a = createType(col.typeId, posgresTypes, enumTypes.get(col.typeId), checkConstraints[constraintKey], colInfo.jsonType)) !== null && _a !== void 0 ? _a : '?',
76
+ notNull: !colInfo.is_nullable || colInfo.column_default === true,
77
+ type: createType(col.typeId, posgresTypes, enumTypes.get(col.typeId), checkConstraints[constraintKey], colInfo.jsonType),
79
78
  table: colInfo.table_name
80
79
  };
81
80
  }
82
81
  function createType(typeId, postgresTypes, enumType, checkConstraint, jsonType) {
82
+ var _a;
83
83
  if (enumType) {
84
84
  return createEnumType(enumType);
85
85
  }
@@ -89,7 +89,7 @@ function createType(typeId, postgresTypes, enumType, checkConstraint, jsonType)
89
89
  if (jsonType) {
90
90
  return jsonType;
91
91
  }
92
- return postgresTypes[typeId];
92
+ return (_a = postgresTypes[typeId]) !== null && _a !== void 0 ? _a : 'unknown';
93
93
  }
94
94
  function createEnumType(enumList) {
95
95
  const enumListStr = enumList.map(col => `'${col.enumlabel}'`).join(',');
@@ -104,8 +104,8 @@ function mapToParamDef(postgresTypes, enumTypes, paramName, paramType, checkCons
104
104
  };
105
105
  }
106
106
  function describeQuery(postgres, sql, namedParameters) {
107
- return neverthrow_1.ResultAsync.combine([(0, postgres_1.loadDbSchema)(postgres), (0, postgres_1.loadEnumsMap)(postgres), (0, postgres_1.loadCheckConstraints)(postgres)])
108
- .andThen(([dbSchema, enumsTypes, checkConstraints]) => {
107
+ return neverthrow_1.ResultAsync.combine([(0, postgres_1.loadDbSchema)(postgres), (0, postgres_1.loadEnumsMap)(postgres), (0, postgres_1.loadCheckConstraints)(postgres), (0, postgres_1.loadUserFunctions)(postgres)])
108
+ .andThen(([dbSchema, enumsTypes, checkConstraints, userFunctions]) => {
109
109
  return (0, postgres_1.postgresDescribe)(postgres, sql)
110
110
  .andThen(analyzeResult => {
111
111
  const describeParameters = {
@@ -114,6 +114,7 @@ function describeQuery(postgres, sql, namedParameters) {
114
114
  dbSchema,
115
115
  enumsTypes,
116
116
  checkConstraints,
117
+ userFunctions,
117
118
  namedParameters
118
119
  };
119
120
  return describeQueryRefine(describeParameters);
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare function transformCheckToEnum(checkStr: string): string | null;
1
+ import { PostgresEnumType } from '../sqlite-query-analyzer/types';
2
+ export declare function transformCheckToEnum(checkStr: string): PostgresEnumType | null;
2
3
  //# sourceMappingURL=enum-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum-parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum-parser.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBpE"}
1
+ {"version":3,"file":"enum-parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAyB9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"enum-parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum-parser.ts"],"names":[],"mappings":";;AAAA,oDAyBC;AAzBD,SAAgB,oBAAoB,CAAC,QAAgB;IACpD,wCAAwC;IACxC,MAAM,aAAa,GAAG,qCAAqC,CAAC;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE5C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACvD,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,uCAAuC;QAE1F,iEAAiE;QACjE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,IAAI,KAAK,GAAG,CAAC;QACrB,CAAC;QAED,+DAA+D;QAC/D,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"enum-parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum-parser.ts"],"names":[],"mappings":";;AAEA,oDAyBC;AAzBD,SAAgB,oBAAoB,CAAC,QAAgB;IACpD,wCAAwC;IACxC,MAAM,aAAa,GAAG,qCAAqC,CAAC;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE5C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACvD,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,uCAAuC;QAE1F,iEAAiE;QACjE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,IAAI,KAAK,GAAG,CAAC;QACrB,CAAC;QAED,+DAA+D;QAC/D,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { A_exprContext, Case_defaultContext } from '@wsporto/typesql-parser/postgres/PostgreSQLParser';
2
+ export declare function evaluatesTrueIfNull(elseExpr: Case_defaultContext, a_expr: A_exprContext): boolean;
3
+ //# sourceMappingURL=nullability-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullability-checker.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/nullability-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2K,aAAa,EAAE,mBAAmB,EAAoB,MAAM,mDAAmD,CAAC;AAmBlS,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAWjG"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.evaluatesTrueIfNull = evaluatesTrueIfNull;
4
+ const PostgreSQLParser_1 = require("@wsporto/typesql-parser/postgres/PostgreSQLParser");
5
+ const select_columns_1 = require("../mysql-query-analyzer/select-columns");
6
+ const typesql_parser_1 = require("@wsporto/typesql-parser");
7
+ function getSingleColumnRefOrNull(elseExpr) {
8
+ var _a;
9
+ if (((_a = elseExpr.children) === null || _a === void 0 ? void 0 : _a.length) != 1) {
10
+ return null;
11
+ }
12
+ const child = elseExpr.children[0];
13
+ if (child instanceof PostgreSQLParser_1.ColumnrefContext) {
14
+ return child;
15
+ }
16
+ if (child instanceof typesql_parser_1.ParserRuleContext) { //composite
17
+ return getSingleColumnRefOrNull(child);
18
+ }
19
+ return null;
20
+ }
21
+ function evaluatesTrueIfNull(elseExpr, a_expr) {
22
+ // Can only infer if the elseExpr is a single column;
23
+ const columnRef = getSingleColumnRefOrNull(elseExpr.a_expr());
24
+ if (!columnRef) {
25
+ return false;
26
+ }
27
+ const a_expr_qual = a_expr.a_expr_qual();
28
+ if (a_expr_qual) {
29
+ return evaluatesTrueIfNull_a_expr_qual(a_expr_qual, (0, select_columns_1.splitName)(columnRef.getText()));
30
+ }
31
+ return false;
32
+ }
33
+ function evaluatesTrueIfNull_a_expr_qual(a_expr_qual, field) {
34
+ const a_expr_lessless = a_expr_qual.a_expr_lessless();
35
+ if (a_expr_lessless) {
36
+ return evaluatesTrueIfNull_a_expr_lessless(a_expr_lessless, field);
37
+ }
38
+ return false;
39
+ }
40
+ function evaluatesTrueIfNull_a_expr_lessless(a_expr_lessless, field) {
41
+ const a_expr_or = a_expr_lessless.a_expr_or_list()[0];
42
+ if (a_expr_or) {
43
+ return evaluatesTrueIfNull_a_expr_or(a_expr_or, field);
44
+ }
45
+ return false;
46
+ }
47
+ //a_expr_or: "valueisnotnulland(id>0orvalueisnotnull)"
48
+ //a_expr_or: "valueisnotnullor(id>0orvalueisnotnull)"
49
+ function evaluatesTrueIfNull_a_expr_or(a_expr_or, field) {
50
+ const a_expr_and = a_expr_or.a_expr_and_list();
51
+ if (a_expr_and) {
52
+ //1. valueisnotnull
53
+ //2. (id>0orvalueisnotnull)
54
+ const result = a_expr_and.some(a_expr_and => evaluatesTrueIfNull_a_expr_and(a_expr_and, field));
55
+ return result;
56
+ }
57
+ return false;
58
+ }
59
+ function evaluatesTrueIfNull_a_expr_and(a_expr_and, field) {
60
+ const a_expr_between_list = a_expr_and.a_expr_between_list();
61
+ if (a_expr_between_list) {
62
+ return a_expr_between_list.every(a_expr_between => evaluatesTrueIfNull_a_expr_between(a_expr_between, field));
63
+ }
64
+ return false;
65
+ }
66
+ function evaluatesTrueIfNull_a_expr_between(a_expr_between, field) {
67
+ const a_expr_in = a_expr_between.a_expr_in_list()[0];
68
+ if (a_expr_in) {
69
+ return evaluatesTrueIfNull_a_expr_in(a_expr_in, field);
70
+ }
71
+ return false;
72
+ }
73
+ function evaluatesTrueIfNull_a_expr_in(a_expr_in, field) {
74
+ const a_expr_unary_not = a_expr_in.a_expr_unary_not();
75
+ if (a_expr_unary_not) {
76
+ return evaluatesTrueIfNull_a_expr_unary_not(a_expr_unary_not, field);
77
+ }
78
+ return false;
79
+ }
80
+ function evaluatesTrueIfNull_a_expr_unary_not(a_expr_unary_not, field) {
81
+ const a_expr_isnull = a_expr_unary_not.a_expr_isnull();
82
+ if (a_expr_isnull) {
83
+ return evaluatesTrueIfNull_a_expr_isnull(a_expr_isnull, field);
84
+ }
85
+ return false;
86
+ }
87
+ function evaluatesTrueIfNull_a_expr_isnull(a_expr_isnull, field) {
88
+ const a_expr_is_not = a_expr_isnull.a_expr_is_not();
89
+ if (a_expr_is_not) {
90
+ const a_expr_compare = a_expr_is_not.a_expr_compare();
91
+ if (!a_expr_compare) {
92
+ return false;
93
+ }
94
+ const columnRef = getSingleColumnRefOrNull(a_expr_compare);
95
+ if (!columnRef) {
96
+ return false;
97
+ }
98
+ const fieldName = (0, select_columns_1.splitName)(columnRef.getText());
99
+ if (fieldName.name === field.name && (field.prefix === fieldName.prefix || fieldName.prefix === '' || field.prefix === '')
100
+ && a_expr_is_not.IS() && a_expr_is_not.NULL_P()) {
101
+ if (a_expr_is_not.NOT()) {
102
+ return false;
103
+ }
104
+ return true;
105
+ }
106
+ return false;
107
+ }
108
+ return false;
109
+ }
110
+ //# sourceMappingURL=nullability-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullability-checker.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/nullability-checker.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { PostgresTraverseResult } from './traverse';
2
2
  import { PostgresColumnSchema } from '../drivers/types';
3
3
  import { Result } from 'neverthrow';
4
4
  import { CheckConstraintResult } from '../drivers/postgres';
5
- export declare function parseSql(sql: string, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, options?: import("./traverse").TraverseOptions): PostgresTraverseResult;
6
- export declare function safeParseSql(sql: string, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, options?: import("./traverse").TraverseOptions): Result<PostgresTraverseResult, string>;
5
+ import { UserFunctionSchema } from './types';
6
+ export declare function parseSql(sql: string, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, userFunctions: UserFunctionSchema[], options?: import("./traverse").TraverseOptions): PostgresTraverseResult;
7
+ export declare function safeParseSql(sql: string, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, userFunctions: UserFunctionSchema[], options?: import("./traverse").TraverseOptions): Result<PostgresTraverseResult, string>;
7
8
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,sBAAsB,EAAe,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,uCAAmB,GAAG,sBAAsB,CAMnK;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,uCAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CASvL"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,sBAAsB,EAAe,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,OAAO,uCAAmB,GAAG,sBAAsB,CASxM;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,OAAO,uCAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAS5N"}
@@ -1,18 +1,32 @@
1
1
  "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
14
  exports.parseSql = parseSql;
4
15
  exports.safeParseSql = safeParseSql;
5
16
  const postgres_1 = require("@wsporto/typesql-parser/postgres");
6
17
  const traverse_1 = require("./traverse");
7
18
  const neverthrow_1 = require("neverthrow");
8
- function parseSql(sql, dbSchema, checkConstraints, options = (0, traverse_1.defaultOptions)()) {
19
+ function parseSql(sql, dbSchema, checkConstraints, userFunctions, options = (0, traverse_1.defaultOptions)()) {
9
20
  const parser = (0, postgres_1.parseSql)(sql);
10
- const traverseResult = (0, traverse_1.traverseSmt)(parser.stmt(), dbSchema, checkConstraints, options);
11
- return traverseResult;
21
+ const traverseResult = (0, traverse_1.traverseSmt)(parser.stmt(), dbSchema, checkConstraints, userFunctions, options);
22
+ return Object.assign(Object.assign({}, traverseResult), { columns: traverseResult.columns.map((_a) => {
23
+ var { column_key: _ } = _a, rest = __rest(_a, ["column_key"]);
24
+ return rest;
25
+ }) });
12
26
  }
13
- function safeParseSql(sql, dbSchema, checkConstraints, options = (0, traverse_1.defaultOptions)()) {
27
+ function safeParseSql(sql, dbSchema, checkConstraints, userFunctions, options = (0, traverse_1.defaultOptions)()) {
14
28
  try {
15
- const result = parseSql(sql, dbSchema, checkConstraints, options);
29
+ const result = parseSql(sql, dbSchema, checkConstraints, userFunctions, options);
16
30
  return (0, neverthrow_1.ok)(result);
17
31
  }
18
32
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":";;AAMA,4BAMC;AAED,oCASC;AAvBD,+DAAyE;AACzE,yCAAiF;AAEjF,2CAA6C;AAG7C,SAAgB,QAAQ,CAAC,GAAW,EAAE,QAAgC,EAAE,gBAAuC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IAC1I,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAA,sBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAEvF,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,QAAgC,EAAE,gBAAuC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IAC9I,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,IAAA,eAAE,EAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAU,CAAC;QACzB,OAAO,IAAA,gBAAG,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAOA,4BASC;AAED,oCASC;AA3BD,+DAAyE;AACzE,yCAAiF;AAEjF,2CAA6C;AAI7C,SAAgB,QAAQ,CAAC,GAAW,EAAE,QAAgC,EAAE,gBAAuC,EAAE,aAAmC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IAC/K,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAA,sBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAEtG,uCACI,cAAc,KACjB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAA0B,EAAE,EAAE;gBAA9B,EAAE,UAAU,EAAE,CAAC,OAAW,EAAN,IAAI,cAAxB,cAA0B,CAAF;YAAO,OAAA,IAAI,CAAA;SAAA,CAAC,IACxE;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,QAAgC,EAAE,gBAAuC,EAAE,aAAmC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IACnL,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACjF,OAAO,IAAA,eAAE,EAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAU,CAAC;QACzB,OAAO,IAAA,gBAAG,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACF,CAAC"}
@@ -4,7 +4,8 @@ import { DynamicSqlInfo2 } from '../mysql-query-analyzer/types';
4
4
  import { QueryType } from '../types';
5
5
  import { Relation2 } from '../sqlite-query-analyzer/sqlite-describe-nested-query';
6
6
  import { CheckConstraintResult } from '../drivers/postgres';
7
- import { JsonType, PostgresSimpleType } from '../sqlite-query-analyzer/types';
7
+ import { JsonType, PostgresEnumType, PostgresSimpleType } from '../sqlite-query-analyzer/types';
8
+ import { UserFunctionSchema } from './types';
8
9
  export type NotNullInfo = {
9
10
  table_schema: string;
10
11
  table_name: string;
@@ -12,13 +13,10 @@ export type NotNullInfo = {
12
13
  is_nullable: boolean;
13
14
  original_is_nullable?: boolean;
14
15
  column_default?: true;
16
+ column_key?: 'PRI' | 'UNI' | '';
15
17
  type: PostgresSimpleType;
16
18
  jsonType?: JsonType;
17
- recordTypes?: RecordType[];
18
- };
19
- export type RecordType = {
20
- type: PostgresSimpleType;
21
- notNull: boolean;
19
+ recordTypes?: NotNullInfo[];
22
20
  };
23
21
  export type PostgresTraverseResult = {
24
22
  queryType: QueryType;
@@ -34,7 +32,7 @@ export type PostgresTraverseResult = {
34
32
  };
35
33
  export type ParamInfo = {
36
34
  isNotNull: boolean;
37
- checkConstraint?: string;
35
+ checkConstraint?: PostgresEnumType;
38
36
  };
39
37
  export type Relation3 = {
40
38
  name: string;
@@ -47,5 +45,18 @@ export type TraverseOptions = {
47
45
  collectDynamicQueryInfo?: boolean;
48
46
  };
49
47
  export declare function defaultOptions(): TraverseOptions;
50
- export declare function traverseSmt(stmt: StmtContext, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, options: TraverseOptions): PostgresTraverseResult;
48
+ export declare function traverseSmt(stmt: StmtContext, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, userFunctions: UserFunctionSchema[], options: TraverseOptions): PostgresTraverseResult;
49
+ export type TableReturnType = {
50
+ kind: 'table';
51
+ columns: {
52
+ name: string;
53
+ type: string;
54
+ }[];
55
+ };
56
+ export type SetofReturnType = {
57
+ kind: 'setof';
58
+ table: string;
59
+ };
60
+ export type FunctionReturnType = TableReturnType | SetofReturnType;
61
+ export declare function parseReturnType(returnType: string): FunctionReturnType;
51
62
  //# sourceMappingURL=traverse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAguC,WAAW,EAA4L,MAAM,mDAAmD,CAAC;AAEx+C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAa,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,uDAAuD,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAA+C,QAAQ,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE3H,MAAM,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACnC,yBAAyB,CAAC,EAAE,SAAS,EAAE,CAAC;IACxC,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACnC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA;AAyBD,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAA;AAED,wBAAgB,cAAc,IAAI,eAAe,CAKhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,GAAG,sBAAsB,CAiD1K"}
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqyC,WAAW,EAA4L,MAAM,mDAAmD,CAAC;AAE7iD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAa,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,uDAAuD,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAA8D,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE5J,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,MAAM,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IAChC,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CAC5B,CAAA;AAGD,MAAM,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACnC,yBAAyB,CAAC,EAAE,SAAS,EAAE,CAAC;IACxC,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACnC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACnC,CAAA;AA2BD,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAA;AAED,wBAAgB,cAAc,IAAI,eAAe,CAKhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,sBAAsB,CAmD/M;AA2rDD,MAAM,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAWF,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,eAAe,CAAC;AAEnE,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CA6BtE"}