@l-v-yonsama/multi-platform-database-drivers 1.3.0 → 2.0.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 (267) hide show
  1. package/README.md +40 -0
  2. package/built/src/drivers/Auth0Driver.js +9 -9
  3. package/built/src/drivers/Auth0Driver.js.map +1 -1
  4. package/built/src/drivers/AwsDriver.js +3 -3
  5. package/built/src/drivers/AwsDriver.js.map +1 -1
  6. package/built/src/drivers/BaseDriver.d.ts +1 -1
  7. package/built/src/drivers/BaseDriver.js +4 -6
  8. package/built/src/drivers/BaseDriver.js.map +1 -1
  9. package/built/src/drivers/DBDriverResolver.js.map +1 -1
  10. package/built/src/drivers/DBError.js.map +1 -1
  11. package/built/src/drivers/KeycloakDriver.d.ts +2 -3
  12. package/built/src/drivers/KeycloakDriver.js +27 -262
  13. package/built/src/drivers/KeycloakDriver.js.map +1 -1
  14. package/built/src/drivers/MemcacheDriver.d.ts +0 -1
  15. package/built/src/drivers/MemcacheDriver.js +5 -5
  16. package/built/src/drivers/MemcacheDriver.js.map +1 -1
  17. package/built/src/drivers/MqttDriver.d.ts +0 -1
  18. package/built/src/drivers/MqttDriver.js +4 -4
  19. package/built/src/drivers/MqttDriver.js.map +1 -1
  20. package/built/src/drivers/MySQLDriver.js +12 -12
  21. package/built/src/drivers/MySQLDriver.js.map +1 -1
  22. package/built/src/drivers/OracleDriver.js +13 -13
  23. package/built/src/drivers/OracleDriver.js.map +1 -1
  24. package/built/src/drivers/PostgresDriver.js +22 -2
  25. package/built/src/drivers/PostgresDriver.js.map +1 -1
  26. package/built/src/drivers/RDSBaseDriver.d.ts +1 -1
  27. package/built/src/drivers/RDSBaseDriver.js +6 -6
  28. package/built/src/drivers/RDSBaseDriver.js.map +1 -1
  29. package/built/src/drivers/RedisDriver.js +2 -2
  30. package/built/src/drivers/RedisDriver.js.map +1 -1
  31. package/built/src/drivers/SQLServerDriver.js +7 -7
  32. package/built/src/drivers/SQLServerDriver.js.map +1 -1
  33. package/built/src/drivers/SQLiteDriver.d.ts +1 -1
  34. package/built/src/drivers/SQLiteDriver.js +7 -7
  35. package/built/src/drivers/SQLiteDriver.js.map +1 -1
  36. package/built/src/drivers/aws/AwsCloudFormationServiceClient.js +2 -2
  37. package/built/src/drivers/aws/AwsCloudFormationServiceClient.js.map +1 -1
  38. package/built/src/drivers/aws/AwsCloudwatchServiceClient.js +3 -3
  39. package/built/src/drivers/aws/AwsCloudwatchServiceClient.js.map +1 -1
  40. package/built/src/drivers/aws/AwsDynamoServiceClient.js +7 -7
  41. package/built/src/drivers/aws/AwsDynamoServiceClient.js.map +1 -1
  42. package/built/src/drivers/aws/AwsS3ServiceClient.js +24 -24
  43. package/built/src/drivers/aws/AwsS3ServiceClient.js.map +1 -1
  44. package/built/src/drivers/aws/AwsSESServiceClient.js.map +1 -1
  45. package/built/src/drivers/aws/AwsSQSServiceClient.js +8 -8
  46. package/built/src/drivers/aws/AwsSQSServiceClient.js.map +1 -1
  47. package/built/src/drivers/aws/AwsSecretsManagerServiceClient.js +1 -1
  48. package/built/src/drivers/aws/AwsSecretsManagerServiceClient.js.map +1 -1
  49. package/built/src/drivers/aws/AwsServiceClient.js +2 -2
  50. package/built/src/drivers/aws/AwsServiceClient.js.map +1 -1
  51. package/built/src/drivers/aws/AwsSsmServiceClient.js +1 -1
  52. package/built/src/drivers/aws/AwsSsmServiceClient.js.map +1 -1
  53. package/built/src/drivers/keycloak/resourceTreeBuilder.d.ts +5 -0
  54. package/built/src/drivers/keycloak/resourceTreeBuilder.js +37 -0
  55. package/built/src/drivers/keycloak/resourceTreeBuilder.js.map +1 -0
  56. package/built/src/drivers/keycloak/scanResultBuilder.d.ts +8 -0
  57. package/built/src/drivers/keycloak/scanResultBuilder.js +212 -0
  58. package/built/src/drivers/keycloak/scanResultBuilder.js.map +1 -0
  59. package/built/src/drivers/memcache/helper.d.ts +0 -1
  60. package/built/src/drivers/memcache/helper.js +13 -14
  61. package/built/src/drivers/memcache/helper.js.map +1 -1
  62. package/built/src/helpers/ProposalHelper.js +3 -3
  63. package/built/src/helpers/ProposalHelper.js.map +1 -1
  64. package/built/src/helpers/RdhRecordRuleHelper.js.map +1 -1
  65. package/built/src/helpers/RuleEngine.d.ts +5 -5
  66. package/built/src/helpers/RuleEngine.js +14 -14
  67. package/built/src/helpers/RuleEngine.js.map +1 -1
  68. package/built/src/helpers/SQLHelper.d.ts +8 -115
  69. package/built/src/helpers/SQLHelper.js +35 -1084
  70. package/built/src/helpers/SQLHelper.js.map +1 -1
  71. package/built/src/helpers/prompts/Auth0PromptHelper.js.map +1 -1
  72. package/built/src/helpers/prompts/AwsPromptHelper.js.map +1 -1
  73. package/built/src/helpers/prompts/KeycloakPromptHelper.js.map +1 -1
  74. package/built/src/helpers/prompts/MemcachePromptHelper.js.map +1 -1
  75. package/built/src/helpers/prompts/MqttPromptHelper.js.map +1 -1
  76. package/built/src/helpers/prompts/RdsPromptHelper.js +1 -1
  77. package/built/src/helpers/prompts/RdsPromptHelper.js.map +1 -1
  78. package/built/src/helpers/prompts/RedisPromptHelper.js.map +1 -1
  79. package/built/src/helpers/prompts/SchemaPromptHelper.js.map +1 -1
  80. package/built/src/helpers/sql/dynamoConversion.d.ts +2 -0
  81. package/built/src/helpers/sql/dynamoConversion.js +27 -0
  82. package/built/src/helpers/sql/dynamoConversion.js.map +1 -0
  83. package/built/src/helpers/sql/formatQuery.d.ts +6 -0
  84. package/built/src/helpers/sql/formatQuery.js +45 -0
  85. package/built/src/helpers/sql/formatQuery.js.map +1 -0
  86. package/built/src/helpers/sql/mutationQuery.d.ts +54 -0
  87. package/built/src/helpers/sql/mutationQuery.js +250 -0
  88. package/built/src/helpers/sql/mutationQuery.js.map +1 -0
  89. package/built/src/helpers/sql/parameterNormalizer.d.ts +16 -0
  90. package/built/src/helpers/sql/parameterNormalizer.js +166 -0
  91. package/built/src/helpers/sql/parameterNormalizer.js.map +1 -0
  92. package/built/src/helpers/sql/queryParser.d.ts +6 -0
  93. package/built/src/helpers/sql/queryParser.js +239 -0
  94. package/built/src/helpers/sql/queryParser.js.map +1 -0
  95. package/built/src/helpers/sql/quote.d.ts +17 -0
  96. package/built/src/helpers/sql/quote.js +140 -0
  97. package/built/src/helpers/sql/quote.js.map +1 -0
  98. package/built/src/helpers/sql/selectQuery.d.ts +24 -0
  99. package/built/src/helpers/sql/selectQuery.js +262 -0
  100. package/built/src/helpers/sql/selectQuery.js.map +1 -0
  101. package/built/src/resource/aws.d.ts +106 -0
  102. package/built/src/resource/aws.js +219 -0
  103. package/built/src/resource/aws.js.map +1 -0
  104. package/built/src/resource/base.d.ts +28 -0
  105. package/built/src/resource/base.js +76 -0
  106. package/built/src/resource/base.js.map +1 -0
  107. package/built/src/resource/connection.d.ts +35 -0
  108. package/built/src/resource/connection.js +52 -0
  109. package/built/src/resource/connection.js.map +1 -0
  110. package/built/src/resource/fromJson.d.ts +2 -0
  111. package/built/src/resource/fromJson.js +125 -0
  112. package/built/src/resource/fromJson.js.map +1 -0
  113. package/built/src/resource/iam.d.ts +70 -0
  114. package/built/src/resource/iam.js +175 -0
  115. package/built/src/resource/iam.js.map +1 -0
  116. package/built/src/resource/index.d.ts +8 -1
  117. package/built/src/resource/index.js +8 -1
  118. package/built/src/resource/index.js.map +1 -1
  119. package/built/src/resource/keyValue.d.ts +85 -0
  120. package/built/src/resource/keyValue.js +74 -0
  121. package/built/src/resource/keyValue.js.map +1 -0
  122. package/built/src/resource/rdb.d.ts +49 -0
  123. package/built/src/resource/rdb.js +155 -0
  124. package/built/src/resource/rdb.js.map +1 -0
  125. package/built/src/resource/types.d.ts +18 -0
  126. package/built/src/resource/types.js +3 -0
  127. package/built/src/resource/types.js.map +1 -0
  128. package/built/src/types/drivers/Keycloak.js +1 -1
  129. package/built/src/types/drivers/Keycloak.js.map +1 -1
  130. package/built/src/types/drivers/MemcachedParams.d.ts +0 -1
  131. package/built/src/types/helpers/index.js +1 -1
  132. package/built/src/types/helpers/index.js.map +1 -1
  133. package/built/src/types/resource/AwsCfnStackAttributes.d.ts +1 -1
  134. package/built/src/types/resource/MySQLColumnType.js +2 -2
  135. package/built/src/types/resource/MySQLColumnType.js.map +1 -1
  136. package/built/src/types/resource/OracleColumnType.js +2 -2
  137. package/built/src/types/resource/OracleColumnType.js.map +1 -1
  138. package/built/src/types/resource/PartiQLAttrType.js.map +1 -1
  139. package/built/src/types/resource/PostgresColumnType.js +2 -2
  140. package/built/src/types/resource/PostgresColumnType.js.map +1 -1
  141. package/built/src/types/resource/SQLServerColumnType.js +2 -2
  142. package/built/src/types/resource/SQLServerColumnType.js.map +1 -1
  143. package/built/src/types/utils/index.js +2 -2
  144. package/built/src/types/utils/index.js.map +1 -1
  145. package/built/src/utils/base.js +1 -1
  146. package/built/src/utils/base.js.map +1 -1
  147. package/built/src/utils/cfn/applicationDiagram.js +52 -12
  148. package/built/src/utils/cfn/applicationDiagram.js.map +1 -1
  149. package/built/src/utils/cfn/applicationRelations.d.ts +1 -1
  150. package/built/src/utils/cfn/applicationRelations.js +107 -15
  151. package/built/src/utils/cfn/applicationRelations.js.map +1 -1
  152. package/built/src/utils/cfn/cfnDependencyGraphDiagram.js.map +1 -1
  153. package/built/src/utils/cfn/{architectureTopology.d.ts → deploymentTopology.d.ts} +5 -1
  154. package/built/src/utils/cfn/{architectureTopology.js → deploymentTopology.js} +127 -13
  155. package/built/src/utils/cfn/deploymentTopology.js.map +1 -0
  156. package/built/src/utils/cfn/diagramFileModel.js.map +1 -1
  157. package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.d.ts +3 -0
  158. package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.js +174 -0
  159. package/built/src/utils/cfn/drawio/cfnDependencyGraphDiagram.js.map +1 -0
  160. package/built/src/utils/cfn/drawio/commonCells.d.ts +22 -0
  161. package/built/src/utils/cfn/drawio/commonCells.js +83 -0
  162. package/built/src/utils/cfn/drawio/commonCells.js.map +1 -0
  163. package/built/src/utils/cfn/drawio/edgeRouting.d.ts +34 -0
  164. package/built/src/utils/cfn/drawio/edgeRouting.js +77 -0
  165. package/built/src/utils/cfn/drawio/edgeRouting.js.map +1 -0
  166. package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.d.ts +3 -0
  167. package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.js +812 -0
  168. package/built/src/utils/cfn/drawio/multiAzInfrastructureDiagram.js.map +1 -0
  169. package/built/src/utils/cfn/drawioApplicationDiagram.d.ts +1 -0
  170. package/built/src/utils/cfn/drawioApplicationDiagram.js +290 -32
  171. package/built/src/utils/cfn/drawioApplicationDiagram.js.map +1 -1
  172. package/built/src/utils/cfn/drawioInfrastructureDiagrams.d.ts +2 -4
  173. package/built/src/utils/cfn/drawioInfrastructureDiagrams.js +7 -441
  174. package/built/src/utils/cfn/drawioInfrastructureDiagrams.js.map +1 -1
  175. package/built/src/utils/cfn/drawioXml.d.ts +0 -24
  176. package/built/src/utils/cfn/drawioXml.js +5 -47
  177. package/built/src/utils/cfn/drawioXml.js.map +1 -1
  178. package/built/src/utils/cfn/generateDiagram.js +3 -4
  179. package/built/src/utils/cfn/generateDiagram.js.map +1 -1
  180. package/built/src/utils/cfn/icons.js.map +1 -1
  181. package/built/src/utils/cfn/index.d.ts +4 -4
  182. package/built/src/utils/cfn/index.js +9 -8
  183. package/built/src/utils/cfn/index.js.map +1 -1
  184. package/built/src/utils/cfn/intrinsics.d.ts +1 -1
  185. package/built/src/utils/cfn/intrinsics.js.map +1 -1
  186. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.d.ts +27 -0
  187. package/built/src/utils/cfn/{multiAzDeploymentDataPaths.js → multiAzDeploymentTrafficPathsAndProtection.js} +162 -10
  188. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtection.js.map +1 -0
  189. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.d.ts +2 -0
  190. package/built/src/utils/cfn/{architectureDiagram.js → multiAzDeploymentTrafficPathsAndProtectionDiagram.js} +82 -34
  191. package/built/src/utils/cfn/multiAzDeploymentTrafficPathsAndProtectionDiagram.js.map +1 -0
  192. package/built/src/utils/cfn/naming.d.ts +2 -1
  193. package/built/src/utils/cfn/naming.js +3 -3
  194. package/built/src/utils/cfn/naming.js.map +1 -1
  195. package/built/src/utils/cfn/resourceDependencies.js.map +1 -1
  196. package/built/src/utils/cfn/templateParsing.js +11 -26
  197. package/built/src/utils/cfn/templateParsing.js.map +1 -1
  198. package/built/src/utils/csv.js.map +1 -1
  199. package/built/src/utils/dbType.js.map +1 -1
  200. package/built/src/utils/diagramLayout/elkLayoutEngine.d.ts +3 -0
  201. package/built/src/utils/diagramLayout/elkLayoutEngine.js +199 -0
  202. package/built/src/utils/diagramLayout/elkLayoutEngine.js.map +1 -0
  203. package/built/src/utils/diagramLayout/index.d.ts +4 -0
  204. package/built/src/utils/diagramLayout/index.js +13 -0
  205. package/built/src/utils/diagramLayout/index.js.map +1 -0
  206. package/built/src/utils/diagramLayout/normalizeLayout.d.ts +33 -0
  207. package/built/src/utils/diagramLayout/normalizeLayout.js +116 -0
  208. package/built/src/utils/diagramLayout/normalizeLayout.js.map +1 -0
  209. package/built/src/utils/diagramLayout/types.d.ts +64 -0
  210. package/built/src/utils/diagramLayout/types.js +3 -0
  211. package/built/src/utils/diagramLayout/types.js.map +1 -0
  212. package/built/src/utils/drawio/drawioXml.d.ts +24 -0
  213. package/built/src/utils/drawio/drawioXml.js +47 -0
  214. package/built/src/utils/drawio/drawioXml.js.map +1 -0
  215. package/built/src/utils/drawio/index.d.ts +2 -0
  216. package/built/src/utils/drawio/index.js +10 -0
  217. package/built/src/utils/drawio/index.js.map +1 -0
  218. package/built/src/utils/driverUtil.d.ts +1 -1
  219. package/built/src/utils/driverUtil.js.map +1 -1
  220. package/built/src/utils/er/erDiagramDrawioGenerator.d.ts +26 -0
  221. package/built/src/utils/er/erDiagramDrawioGenerator.js +99 -0
  222. package/built/src/utils/er/erDiagramDrawioGenerator.js.map +1 -0
  223. package/built/src/utils/er/erDiagramDrawioGeneratorAuto.d.ts +2 -0
  224. package/built/src/utils/er/erDiagramDrawioGeneratorAuto.js +103 -0
  225. package/built/src/utils/er/erDiagramDrawioGeneratorAuto.js.map +1 -0
  226. package/built/src/utils/er/erDiagramGenerator.d.ts +7 -0
  227. package/built/src/utils/er/erDiagramGenerator.js +321 -0
  228. package/built/src/utils/er/erDiagramGenerator.js.map +1 -0
  229. package/built/src/utils/er/index.d.ts +4 -0
  230. package/built/src/utils/er/index.js +13 -0
  231. package/built/src/utils/er/index.js.map +1 -0
  232. package/built/src/utils/er/types.d.ts +31 -0
  233. package/built/src/utils/er/types.js +3 -0
  234. package/built/src/utils/er/types.js.map +1 -0
  235. package/built/src/utils/index.d.ts +1 -0
  236. package/built/src/utils/index.js +1 -0
  237. package/built/src/utils/index.js.map +1 -1
  238. package/built/src/utils/log/LogParser.js.map +1 -1
  239. package/built/src/utils/log/buildSqlExecutions.js +3 -4
  240. package/built/src/utils/log/buildSqlExecutions.js.map +1 -1
  241. package/built/src/utils/log/classify/classifyEvent.js +2 -3
  242. package/built/src/utils/log/classify/classifyEvent.js.map +1 -1
  243. package/built/src/utils/log/detect/presetDetector.js +4 -5
  244. package/built/src/utils/log/detect/presetDetector.js.map +1 -1
  245. package/built/src/utils/log/extract/runExtractors.js +1 -2
  246. package/built/src/utils/log/extract/runExtractors.js.map +1 -1
  247. package/built/src/utils/log/logSummary.js +5 -5
  248. package/built/src/utils/log/logSummary.js.map +1 -1
  249. package/built/src/utils/log/pattern/logEventPattern.js +2 -3
  250. package/built/src/utils/log/pattern/logEventPattern.js.map +1 -1
  251. package/built/src/utils/log/rdh/convertExtractedSqlRdhResult.js +2 -3
  252. package/built/src/utils/log/rdh/convertExtractedSqlRdhResult.js.map +1 -1
  253. package/built/src/utils/log/split/splitLogEvents.js +1 -2
  254. package/built/src/utils/log/split/splitLogEvents.js.map +1 -1
  255. package/built/src/utils/log/sql/removeSqlComments.js +2 -3
  256. package/built/src/utils/log/sql/removeSqlComments.js.map +1 -1
  257. package/built/src/utils/log/validator.js +8 -5
  258. package/built/src/utils/log/validator.js.map +1 -1
  259. package/package.json +13 -9
  260. package/built/src/resource/DbResource.d.ts +0 -373
  261. package/built/src/resource/DbResource.js +0 -836
  262. package/built/src/resource/DbResource.js.map +0 -1
  263. package/built/src/utils/cfn/architectureDiagram.d.ts +0 -3
  264. package/built/src/utils/cfn/architectureDiagram.js.map +0 -1
  265. package/built/src/utils/cfn/architectureTopology.js.map +0 -1
  266. package/built/src/utils/cfn/multiAzDeploymentDataPaths.d.ts +0 -27
  267. package/built/src/utils/cfn/multiAzDeploymentDataPaths.js.map +0 -1
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toViewDataNormalizedQuery = exports.toViewDataQuery = exports.createColumnNames = exports.createTableNames = exports.toCountRecordsQuery = void 0;
4
+ exports.toViewRecordsQuery = toViewRecordsQuery;
5
+ const tslib_1 = require("tslib");
6
+ const rdh_1 = require("@l-v-yonsama/rdh");
7
+ const os = tslib_1.__importStar(require("os"));
8
+ const resource_1 = require("../../resource");
9
+ const types_1 = require("../../types");
10
+ const constant_1 = require("../constant");
11
+ const RuleEngine_1 = require("../RuleEngine");
12
+ const parameterNormalizer_1 = require("./parameterNormalizer");
13
+ const quote_1 = require("./quote");
14
+ function toViewRecordsQuery({ tableRes, schemaName, idQuoteCharacter, sqlLang, limit, limitClauseStyle, limitMode, limitLastColumn, }) {
15
+ const tableNameWithSchema = (0, quote_1.createTableNameWithSchema)({
16
+ schema: schemaName,
17
+ table: tableRes.name,
18
+ idQuoteCharacter,
19
+ sqlLang,
20
+ });
21
+ let query = '';
22
+ if (limitClauseStyle === 'top' && limit) {
23
+ query = `SELECT TOP ${limit} * FROM ${tableNameWithSchema}`;
24
+ }
25
+ else {
26
+ query = `SELECT * FROM ${tableNameWithSchema}`;
27
+ }
28
+ if (limitMode === 'last') {
29
+ if (!limitLastColumn) {
30
+ throw new Error('limitLastColumn is required when limitMode is "last"');
31
+ }
32
+ const quotedColumn = (0, quote_1.needsQuoting)(limitLastColumn)
33
+ ? (0, quote_1.wrapBackQuote)(limitLastColumn)
34
+ : limitLastColumn;
35
+ query += ` ORDER BY ${quotedColumn} DESC`;
36
+ }
37
+ if (limitClauseStyle === 'trailing' && limit) {
38
+ query += ` LIMIT ${limit}`;
39
+ }
40
+ else if (limitClauseStyle === 'fetchFirst' && limit) {
41
+ query += ` FETCH FIRST ${limit} ROWS ONLY`;
42
+ }
43
+ return query;
44
+ }
45
+ const toCountRecordsQuery = (params) => {
46
+ return toGeneralQuery(Object.assign({ selectClause: 'COUNT(*)' }, params));
47
+ };
48
+ exports.toCountRecordsQuery = toCountRecordsQuery;
49
+ const createTableNames = (schemaRes) => {
50
+ return schemaRes.children
51
+ .filter((it) => it.resourceType === types_1.ResourceType.Table)
52
+ .map((it) => constant_1.RESERVED_WORDS.includes(it.name.toUpperCase())
53
+ ? '`' + it.name + '`'
54
+ : it.name)
55
+ .join(',');
56
+ };
57
+ exports.createTableNames = createTableNames;
58
+ const createColumnNames = (tableRes) => {
59
+ return tableRes.children
60
+ .map((it) => constant_1.RESERVED_WORDS.includes(it.name.toUpperCase())
61
+ ? '`' + it.name + '`'
62
+ : it.name)
63
+ .join(',');
64
+ };
65
+ exports.createColumnNames = createColumnNames;
66
+ const toViewDataQuery = (params) => {
67
+ return toGeneralQuery(Object.assign({ selectClause: '*' }, params));
68
+ };
69
+ exports.toViewDataQuery = toViewDataQuery;
70
+ const toViewDataNormalizedQuery = (params) => {
71
+ const { toPositionedParameter, toPositionalCharacter } = params, others = tslib_1.__rest(params, ["toPositionedParameter", "toPositionalCharacter"]);
72
+ const result = (0, exports.toViewDataQuery)(others);
73
+ return (0, parameterNormalizer_1.normalizeQuery)({
74
+ query: result.query,
75
+ toPositionedParameter,
76
+ toPositionalCharacter,
77
+ bindParams: result.binds,
78
+ });
79
+ };
80
+ exports.toViewDataNormalizedQuery = toViewDataNormalizedQuery;
81
+ const createConditionalClause = ({ conditions, columns, params, indent, quote, sqlLang, }) => {
82
+ var _a, _b, _c, _d;
83
+ const queries = [];
84
+ let andOr = 'AND';
85
+ const nestedList = [];
86
+ if ((0, RuleEngine_1.isAllConditions)(conditions)) {
87
+ nestedList.push(...conditions.all);
88
+ }
89
+ else if ((0, RuleEngine_1.isAnyConditions)(conditions)) {
90
+ nestedList.push(...conditions.any);
91
+ andOr = 'OR';
92
+ }
93
+ for (const nest of nestedList) {
94
+ if ((0, RuleEngine_1.isTopLevelCondition)(nest)) {
95
+ const q = createConditionalClause({
96
+ conditions: nest,
97
+ columns,
98
+ params,
99
+ indent: indent + ' ',
100
+ quote,
101
+ sqlLang,
102
+ });
103
+ queries.push(`(${os.EOL}${q}${os.EOL}${indent})`);
104
+ }
105
+ else {
106
+ const { fact, value, operator } = nest;
107
+ const mcol = columns.find((it) => (0, rdh_1.equalsIgnoreCase)(it.name, fact));
108
+ let colType = rdh_1.GeneralColumnType.TEXT;
109
+ if (mcol) {
110
+ if (mcol instanceof resource_1.DbColumn) {
111
+ colType = mcol.colType;
112
+ }
113
+ else {
114
+ colType = (0, types_1.parseDynamoAttrType)(mcol.attrType);
115
+ }
116
+ }
117
+ let q = `${sqlLang === 'partiql'
118
+ ? (0, quote_1.wrapDoubleQuote)(fact)
119
+ : quote
120
+ ? (0, quote_1.wrapBackQuote)(fact)
121
+ : fact}`;
122
+ q += ` ${(0, RuleEngine_1.operatorToSQLString)(operator)} `;
123
+ if (operator === 'isNull' || operator === 'isNotNull') {
124
+ }
125
+ else if (operator === 'between' ||
126
+ operator === 'in' ||
127
+ operator === 'notIn') {
128
+ let val = null;
129
+ if (value === undefined || value === null) {
130
+ val = null;
131
+ }
132
+ else {
133
+ let arr = [];
134
+ if (Array.isArray(value)) {
135
+ arr = value;
136
+ }
137
+ else if (value.startsWith('[') && value.endsWith(']')) {
138
+ arr = JSON.parse(value);
139
+ }
140
+ else {
141
+ arr = ('' + value).split(/,/).map((it) => it.trim());
142
+ }
143
+ if ((0, rdh_1.isNumericLike)(colType)) {
144
+ val = arr.map((it) => { var _a; return (_a = (0, rdh_1.toNum)(it)) !== null && _a !== void 0 ? _a : null; });
145
+ }
146
+ else if ((0, rdh_1.isBooleanLike)(colType)) {
147
+ val = arr.map((it) => { var _a; return (_a = (0, rdh_1.toBoolean)(it)) !== null && _a !== void 0 ? _a : null; });
148
+ }
149
+ else if ((0, rdh_1.isDateTimeOrDate)(colType)) {
150
+ val = arr.map((it) => { var _a; return (_a = (0, rdh_1.toDate)(it)) !== null && _a !== void 0 ? _a : null; });
151
+ }
152
+ else if ((0, rdh_1.isTime)(colType)) {
153
+ val = arr.map((it) => { var _a; return (_a = (0, rdh_1.toTime)(it)) !== null && _a !== void 0 ? _a : null; });
154
+ }
155
+ else {
156
+ val = arr.map((it) => it + '');
157
+ }
158
+ }
159
+ if (operator === 'between') {
160
+ const bindName1 = `val${params.pos}`;
161
+ params.pos++;
162
+ const bindName2 = `val${params.pos}`;
163
+ params.pos++;
164
+ q += `:${bindName1} AND :${bindName2}`;
165
+ if (val === null) {
166
+ params.bindParams[bindName1] = null;
167
+ params.bindParams[bindName2] = null;
168
+ }
169
+ else {
170
+ params.bindParams[bindName1] = val[0];
171
+ params.bindParams[bindName2] = val[1];
172
+ }
173
+ }
174
+ else {
175
+ const bindName = `val${params.pos}`;
176
+ params.pos++;
177
+ q += `(:${bindName})`;
178
+ params.bindParams[bindName] = val;
179
+ }
180
+ }
181
+ else if (operator === 'like' && sqlLang === 'partiql') {
182
+ if (value === undefined || value === null) {
183
+ q = `Contains(${(0, quote_1.wrapDoubleQuote)(fact)}, NULL)`;
184
+ }
185
+ else {
186
+ const bindName = `val${params.pos}`;
187
+ params.bindParams[bindName] = value;
188
+ q = `Contains(${(0, quote_1.wrapDoubleQuote)(fact)}, :${bindName})`;
189
+ params.pos++;
190
+ }
191
+ }
192
+ else {
193
+ let val = null;
194
+ if ((0, rdh_1.isNumericLike)(colType)) {
195
+ val = (_a = (0, rdh_1.toNum)(value)) !== null && _a !== void 0 ? _a : null;
196
+ }
197
+ else if ((0, rdh_1.isBooleanLike)(colType)) {
198
+ val = (_b = (0, rdh_1.toBoolean)(value)) !== null && _b !== void 0 ? _b : null;
199
+ }
200
+ else if ((0, rdh_1.isDateTimeOrDate)(colType)) {
201
+ val = (_c = (0, rdh_1.toDate)(value)) !== null && _c !== void 0 ? _c : null;
202
+ }
203
+ else if ((0, rdh_1.isTime)(colType)) {
204
+ val = (_d = (0, rdh_1.toTime)(value)) !== null && _d !== void 0 ? _d : null;
205
+ }
206
+ else {
207
+ val = value;
208
+ }
209
+ const bindName = `val${params.pos}`;
210
+ q += `:${bindName}`;
211
+ params.bindParams[bindName] = val;
212
+ params.pos++;
213
+ }
214
+ queries.push(q);
215
+ }
216
+ }
217
+ if (queries.length > 0) {
218
+ return indent + queries.join(`${os.EOL}${indent}${andOr} `);
219
+ }
220
+ return '';
221
+ };
222
+ const toGeneralQuery = ({ selectClause, tableRes, schemaName, conditions, quote, idQuoteCharacter, sqlLang, limit, limitClauseStyle, }) => {
223
+ const tableNameWithSchema = (0, quote_1.createTableNameWithSchema)({
224
+ schema: schemaName,
225
+ table: tableRes.name,
226
+ idQuoteCharacter,
227
+ sqlLang,
228
+ });
229
+ const params = {
230
+ pos: 1,
231
+ bindParams: {},
232
+ };
233
+ let top = '';
234
+ if (limitClauseStyle === 'top' && limit !== undefined) {
235
+ top = `TOP ${limit} `;
236
+ }
237
+ let query = `SELECT ${top}${selectClause} ${os.EOL}FROM ${tableNameWithSchema} `;
238
+ if (conditions && conditions) {
239
+ const q = createConditionalClause({
240
+ conditions,
241
+ columns: tableRes.children,
242
+ params,
243
+ indent: ' ',
244
+ quote,
245
+ sqlLang,
246
+ });
247
+ if (q) {
248
+ query += os.EOL + 'WHERE' + os.EOL + q;
249
+ }
250
+ }
251
+ if (limitClauseStyle === 'trailing' && limit !== undefined) {
252
+ query += os.EOL + 'LIMIT ' + limit;
253
+ }
254
+ else if (limitClauseStyle === 'fetchFirst' && limit !== undefined) {
255
+ query += os.EOL + 'FETCH FIRST ' + limit + ' ROWS ONLY';
256
+ }
257
+ return {
258
+ query: query.trim(),
259
+ binds: params.bindParams,
260
+ };
261
+ };
262
+ //# sourceMappingURL=selectQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectQuery.js","sourceRoot":"","sources":["../../../../src/helpers/sql/selectQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { CompareKey } from '@l-v-yonsama/rdh';
2
+ import { AwsCfnStackAttributes, AwsDynamoTableAttributes, AwsSecretAttributes, AwsServiceType, AwsSESIdentityAttributes, AwsSQSAttributes, AwsSsmParameterAttributes, ResourceType } from '../types';
3
+ import { DbResource } from './base';
4
+ import type { AllSubDbResource, ITableComparable } from './types';
5
+ export declare class AwsDatabase extends DbResource<DbS3Bucket | DbSQSQueue | DbLogGroup | DbS3Owner | DbDynamoTable | DbSESIdentity | DbSsmParameter | DbSecretsManagerSecret | DbCfnStack | DbResourceGroup> {
6
+ readonly serviceType: AwsServiceType;
7
+ constructor(name: string, serviceType: AwsServiceType);
8
+ }
9
+ export declare class AwsDbResource<T = any, U extends AllSubDbResource = any> extends DbResource<U> {
10
+ readonly attr: T;
11
+ private dateProperties?;
12
+ private byteProperties?;
13
+ constructor(resourceType: ResourceType, name: string, attr: T);
14
+ protected setPropertyFormat({ dates, bytes, }: {
15
+ dates?: string[];
16
+ bytes?: string[];
17
+ }): void;
18
+ getProperties(): {
19
+ [key: string]: any;
20
+ };
21
+ }
22
+ export declare class DbDynamoTable extends AwsDbResource<AwsDynamoTableAttributes, DbDynamoTableColumn> implements ITableComparable {
23
+ constructor(name: string, attr: AwsDynamoTableAttributes);
24
+ getProperties(): {
25
+ [key: string]: any;
26
+ };
27
+ getPrimaryColumnNames(): string[];
28
+ getPkAndSkByIndex(indexName?: string): {
29
+ pk?: string;
30
+ sk?: string;
31
+ };
32
+ getCompareKeys(availableColumnNames?: string[]): CompareKey[];
33
+ }
34
+ export declare class DbDynamoTableColumn extends DbResource {
35
+ readonly attrType: string;
36
+ readonly pk: boolean;
37
+ readonly sk: boolean;
38
+ constructor(name: string, attrType: string, pk: boolean, sk: boolean);
39
+ toString(): string;
40
+ getProperties(): {
41
+ [key: string]: any;
42
+ };
43
+ }
44
+ export declare class DbS3Bucket extends AwsDbResource<{
45
+ CreationDate?: Date;
46
+ }> {
47
+ constructor(name?: string, CreationDate?: Date);
48
+ }
49
+ export declare class DbSQSQueue extends AwsDbResource<AwsSQSAttributes> {
50
+ readonly url: string;
51
+ constructor(name: string, url: string, attr: AwsSQSAttributes);
52
+ getProperties(): {
53
+ [key: string]: any;
54
+ };
55
+ }
56
+ export declare class DbLogGroup extends AwsDbResource<{
57
+ creationTime?: number;
58
+ storedBytes?: number;
59
+ retentionInDays?: number;
60
+ kmsKeyId?: string;
61
+ }> {
62
+ constructor(name: string, attr: {
63
+ creationTime?: number;
64
+ storedBytes?: number;
65
+ retentionInDays?: number;
66
+ kmsKeyId?: string;
67
+ });
68
+ }
69
+ export declare class DbLogStream extends AwsDbResource<{
70
+ creationTime: Date;
71
+ firstEventTimestamp: Date;
72
+ lastEventTimestamp: Date;
73
+ lastIngestionTime: Date;
74
+ }> {
75
+ constructor(name: string, attr: {
76
+ creationTime: Date;
77
+ firstEventTimestamp: Date;
78
+ lastEventTimestamp: Date;
79
+ lastIngestionTime: Date;
80
+ });
81
+ }
82
+ export declare class DbS3Owner extends AwsDbResource<Record<string, never>> {
83
+ readonly ownerId: string;
84
+ constructor(ownerId: string, name: string);
85
+ getProperties(): {
86
+ [key: string]: any;
87
+ };
88
+ }
89
+ export declare class DbSESIdentity extends AwsDbResource<AwsSESIdentityAttributes> {
90
+ constructor(name: string, attr: AwsSESIdentityAttributes);
91
+ getProperties(): {
92
+ [key: string]: any;
93
+ };
94
+ }
95
+ export declare class DbSsmParameter extends AwsDbResource<AwsSsmParameterAttributes> {
96
+ constructor(name: string, attr: AwsSsmParameterAttributes);
97
+ }
98
+ export declare class DbSecretsManagerSecret extends AwsDbResource<AwsSecretAttributes> {
99
+ constructor(name: string, attr: AwsSecretAttributes);
100
+ }
101
+ export declare class DbCfnStack extends AwsDbResource<AwsCfnStackAttributes> {
102
+ constructor(name: string, attr: AwsCfnStackAttributes);
103
+ }
104
+ export declare class DbResourceGroup extends DbResource {
105
+ constructor(name: string);
106
+ }
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DbResourceGroup = exports.DbCfnStack = exports.DbSecretsManagerSecret = exports.DbSsmParameter = exports.DbSESIdentity = exports.DbS3Owner = exports.DbLogStream = exports.DbLogGroup = exports.DbSQSQueue = exports.DbS3Bucket = exports.DbDynamoTableColumn = exports.DbDynamoTable = exports.AwsDbResource = exports.AwsDatabase = void 0;
4
+ const rdh_1 = require("@l-v-yonsama/rdh");
5
+ const bytes_1 = require("bytes");
6
+ const types_1 = require("../types");
7
+ const base_1 = require("./base");
8
+ class AwsDatabase extends base_1.DbResource {
9
+ constructor(name, serviceType) {
10
+ super(types_1.ResourceType.AwsDatabase, name);
11
+ this.serviceType = serviceType;
12
+ }
13
+ }
14
+ exports.AwsDatabase = AwsDatabase;
15
+ class AwsDbResource extends base_1.DbResource {
16
+ constructor(resourceType, name, attr) {
17
+ super(resourceType, name);
18
+ this.attr = attr;
19
+ }
20
+ setPropertyFormat({ dates, bytes, }) {
21
+ this.dateProperties = dates;
22
+ this.byteProperties = bytes;
23
+ }
24
+ getProperties() {
25
+ var _a, _b;
26
+ const props = Object.assign(Object.assign({}, super.getProperties()), this.attr);
27
+ (_a = this.dateProperties) === null || _a === void 0 ? void 0 : _a.forEach((name) => {
28
+ var _a;
29
+ const v = props[name];
30
+ props[name] = (_a = (0, rdh_1.toDate)(v)) === null || _a === void 0 ? void 0 : _a.toISOString();
31
+ });
32
+ (_b = this.byteProperties) === null || _b === void 0 ? void 0 : _b.forEach((name) => {
33
+ const v = props[name];
34
+ props[name] = (0, bytes_1.format)(v);
35
+ });
36
+ return props;
37
+ }
38
+ }
39
+ exports.AwsDbResource = AwsDbResource;
40
+ class DbDynamoTable extends AwsDbResource {
41
+ constructor(name, attr) {
42
+ super(types_1.ResourceType.DynamoTable, name, attr);
43
+ this.setPropertyFormat({
44
+ dates: ['CreationDateTime'],
45
+ bytes: ['TableSizeBytes'],
46
+ });
47
+ }
48
+ getProperties() {
49
+ const props = Object.assign(Object.assign({}, super.getProperties()), { lsi: this.attr.lsi.length, gsi: this.attr.gsi.length });
50
+ if (this.attr.ttl) {
51
+ props.ttl = `${this.attr.ttl.AttributeName} (${this.attr.ttl.TimeToLiveStatus})`;
52
+ }
53
+ if (this.attr.lsi) {
54
+ this.attr.lsi.forEach((it, idx) => {
55
+ props[`lsi${idx + 1}_${it.IndexName}`] = it.KeySchema.map((ks) => `${ks.AttributeName}(${ks.KeyType})`).join(', ');
56
+ });
57
+ }
58
+ if (this.attr.gsi) {
59
+ this.attr.gsi.forEach((it, idx) => {
60
+ props[`gsi${idx + 1}_${it.IndexName}`] = it.KeySchema.map((ks) => `${ks.AttributeName}(${ks.KeyType})`).join(', ');
61
+ });
62
+ }
63
+ return props;
64
+ }
65
+ getPrimaryColumnNames() {
66
+ var _a;
67
+ return ((_a = this.children.filter((it) => it.pk || it.sk).map((it) => it.name)) !== null && _a !== void 0 ? _a : []);
68
+ }
69
+ getPkAndSkByIndex(indexName) {
70
+ var _a, _b, _c, _d;
71
+ if (!indexName) {
72
+ return {
73
+ pk: (_a = this.children.find((it) => it.pk)) === null || _a === void 0 ? void 0 : _a.name,
74
+ sk: (_b = this.children.find((it) => it.sk)) === null || _b === void 0 ? void 0 : _b.name,
75
+ };
76
+ }
77
+ let index = this.attr.lsi.find((it) => it.IndexName === indexName);
78
+ if (index === undefined) {
79
+ index = this.attr.gsi.find((it) => it.IndexName === indexName);
80
+ }
81
+ if (index) {
82
+ return {
83
+ pk: (_c = index.KeySchema.find((it) => it.KeyType === 'HASH')) === null || _c === void 0 ? void 0 : _c.AttributeName,
84
+ sk: (_d = index.KeySchema.find((it) => it.KeyType === 'RANGE')) === null || _d === void 0 ? void 0 : _d.AttributeName,
85
+ };
86
+ }
87
+ return {
88
+ pk: undefined,
89
+ sk: undefined,
90
+ };
91
+ }
92
+ getCompareKeys(availableColumnNames) {
93
+ const ret = [];
94
+ const pks = this.getPrimaryColumnNames();
95
+ if (pks.length) {
96
+ if (availableColumnNames) {
97
+ if (pks.every((pk) => availableColumnNames.some((ac) => (0, rdh_1.equalsIgnoreCase)(ac, pk)))) {
98
+ ret.push({
99
+ kind: 'primary',
100
+ names: pks.map((pk) => availableColumnNames.find((ac) => (0, rdh_1.equalsIgnoreCase)(ac, pk))),
101
+ });
102
+ }
103
+ }
104
+ else {
105
+ ret.push({
106
+ kind: 'primary',
107
+ names: pks,
108
+ });
109
+ }
110
+ }
111
+ return ret;
112
+ }
113
+ }
114
+ exports.DbDynamoTable = DbDynamoTable;
115
+ class DbDynamoTableColumn extends base_1.DbResource {
116
+ constructor(name, attrType, pk, sk) {
117
+ super(types_1.ResourceType.DynamoColumn, name);
118
+ this.attrType = attrType;
119
+ this.pk = pk;
120
+ this.sk = sk;
121
+ }
122
+ toString() {
123
+ return `[${super.toString()}]: Pk[${this.pk}]]`;
124
+ }
125
+ getProperties() {
126
+ return Object.assign(Object.assign({}, super.getProperties()), { 'attribute type': this.attrType, 'partial key': this.pk, 'sort key': this.sk });
127
+ }
128
+ }
129
+ exports.DbDynamoTableColumn = DbDynamoTableColumn;
130
+ class DbS3Bucket extends AwsDbResource {
131
+ constructor(name, CreationDate) {
132
+ super(types_1.ResourceType.Bucket, name === undefined ? '' : name, {
133
+ CreationDate,
134
+ });
135
+ this.setPropertyFormat({ dates: ['CreationDate'] });
136
+ }
137
+ }
138
+ exports.DbS3Bucket = DbS3Bucket;
139
+ class DbSQSQueue extends AwsDbResource {
140
+ constructor(name, url, attr) {
141
+ super(types_1.ResourceType.Queue, name, attr);
142
+ this.url = url;
143
+ this.setPropertyFormat({
144
+ dates: ['CreatedTimestamp', 'LastModifiedTimestamp'],
145
+ });
146
+ }
147
+ getProperties() {
148
+ return Object.assign(Object.assign({}, super.getProperties()), { url: this.url });
149
+ }
150
+ }
151
+ exports.DbSQSQueue = DbSQSQueue;
152
+ class DbLogGroup extends AwsDbResource {
153
+ constructor(name, attr) {
154
+ super(types_1.ResourceType.LogGroup, name, attr);
155
+ this.setPropertyFormat({ dates: ['creationTime'], bytes: ['storedBytes'] });
156
+ }
157
+ }
158
+ exports.DbLogGroup = DbLogGroup;
159
+ class DbLogStream extends AwsDbResource {
160
+ constructor(name, attr) {
161
+ super(types_1.ResourceType.LogStream, name, attr);
162
+ this.setPropertyFormat({
163
+ dates: [
164
+ 'creationTime',
165
+ 'firstEventTimestamp',
166
+ 'lastEventTimestamp',
167
+ 'lastIngestionTime',
168
+ ],
169
+ });
170
+ }
171
+ }
172
+ exports.DbLogStream = DbLogStream;
173
+ class DbS3Owner extends AwsDbResource {
174
+ constructor(ownerId, name) {
175
+ super(types_1.ResourceType.Owner, name === undefined ? '' : name, {});
176
+ this.ownerId = ownerId;
177
+ }
178
+ getProperties() {
179
+ return Object.assign(Object.assign({}, super.getProperties()), { 'Owner id': this.ownerId });
180
+ }
181
+ }
182
+ exports.DbS3Owner = DbS3Owner;
183
+ class DbSESIdentity extends AwsDbResource {
184
+ constructor(name, attr) {
185
+ super(types_1.ResourceType.Identity, name, attr);
186
+ }
187
+ getProperties() {
188
+ return Object.assign(Object.assign({}, super.getProperties()), { identityType: this.attr.identityType, verificationStatus: this.attr.verificationStatus });
189
+ }
190
+ }
191
+ exports.DbSESIdentity = DbSESIdentity;
192
+ class DbSsmParameter extends AwsDbResource {
193
+ constructor(name, attr) {
194
+ super(types_1.ResourceType.SsmParameter, name, attr);
195
+ this.setPropertyFormat({ dates: ['lastModifiedDate'] });
196
+ }
197
+ }
198
+ exports.DbSsmParameter = DbSsmParameter;
199
+ class DbSecretsManagerSecret extends AwsDbResource {
200
+ constructor(name, attr) {
201
+ super(types_1.ResourceType.SecretsManagerSecret, name, attr);
202
+ this.setPropertyFormat({ dates: ['lastChangedDate', 'lastAccessedDate'] });
203
+ }
204
+ }
205
+ exports.DbSecretsManagerSecret = DbSecretsManagerSecret;
206
+ class DbCfnStack extends AwsDbResource {
207
+ constructor(name, attr) {
208
+ super(types_1.ResourceType.CfnStack, name, attr);
209
+ this.setPropertyFormat({ dates: ['creationTime'] });
210
+ }
211
+ }
212
+ exports.DbCfnStack = DbCfnStack;
213
+ class DbResourceGroup extends base_1.DbResource {
214
+ constructor(name) {
215
+ super(types_1.ResourceType.Group, name);
216
+ }
217
+ }
218
+ exports.DbResourceGroup = DbResourceGroup;
219
+ //# sourceMappingURL=aws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws.js","sourceRoot":"","sources":["../../../src/resource/aws.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { ResourceType } from '../types';
2
+ import type { AllSubDbResource } from './types';
3
+ export declare abstract class DbResource<T extends DbResource = AllSubDbResource> {
4
+ readonly id: string;
5
+ readonly resourceType: ResourceType;
6
+ readonly name: string;
7
+ comment?: string;
8
+ readonly children: Array<T>;
9
+ meta: {
10
+ [key: string]: any;
11
+ };
12
+ isInProgress?: boolean;
13
+ constructor(resourceType: ResourceType, name: string);
14
+ getProperties(): {
15
+ [key: string]: any;
16
+ };
17
+ addChild(res: T): T;
18
+ hasChildren(): boolean;
19
+ clearChildren(): void;
20
+ getChildByName(name: string, insensitive?: boolean): T | undefined;
21
+ findChildren<U extends DbResource = AllSubDbResource>({ keyword, resourceType, recursively, }: {
22
+ resourceType: ResourceType;
23
+ keyword?: string | RegExp;
24
+ recursively?: boolean;
25
+ }): U[];
26
+ toString(): string;
27
+ toJsonStringify(space?: number): string;
28
+ }