@breautek/storm 3.3.0 → 4.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 (303) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/docs/README.md +153 -62
  3. package/docs/classes/{Application.Application-1.md → Application.md} +110 -112
  4. package/docs/classes/{BackendAuthenticationMiddleware.BackendAuthenticationMiddleware-1.md → BackendAuthenticationMiddleware.md} +6 -8
  5. package/docs/classes/CORSMiddleware.md +143 -0
  6. package/docs/classes/{ConfigLoader.ConfigLoader-1.md → ConfigLoader.md} +5 -7
  7. package/docs/classes/{Database.Database-1.md → Database.md} +30 -32
  8. package/docs/classes/{DatabaseConnection.DatabaseConnection-1.md → DatabaseConnection.md} +57 -59
  9. package/docs/classes/DatabaseQueryError.md +307 -0
  10. package/docs/classes/DiskSpaceError.md +301 -0
  11. package/docs/classes/DropTemporaryTableQuery.md +201 -0
  12. package/docs/classes/DumpStream.md +23 -0
  13. package/docs/classes/DuplicateEntryError.md +303 -0
  14. package/docs/classes/EntityNotFoundError.md +301 -0
  15. package/docs/classes/ExpiredTokenError.md +301 -0
  16. package/docs/classes/Handler.md +323 -0
  17. package/docs/classes/InternalError.md +301 -0
  18. package/docs/classes/InvalidCredentialsError.md +301 -0
  19. package/docs/classes/InvalidValueError.md +309 -0
  20. package/docs/classes/ManagedDatabaseConnection.md +397 -0
  21. package/docs/classes/Middleware.md +72 -0
  22. package/docs/classes/MissingConfigError.md +301 -0
  23. package/docs/classes/MissingParameterError.md +301 -0
  24. package/docs/classes/{MySQLConnection.MySQLConnection-1.md → MySQLConnection.md} +63 -65
  25. package/docs/classes/MySQLDatabase.md +314 -0
  26. package/docs/classes/{Query.Query-1.md → Query.md} +38 -32
  27. package/docs/classes/{RawQuery.RawQuery-1.md → RawQuery.md} +36 -32
  28. package/docs/classes/Request.md +321 -0
  29. package/docs/classes/Response.md +242 -0
  30. package/docs/classes/{ResponseData.ResponseData-1.md → ResponseData.md} +18 -20
  31. package/docs/classes/{ServiceProvider.ServiceProvider-1.md → ServiceProvider.md} +52 -54
  32. package/docs/classes/{ServiceResponse.ServiceResponse-1.md → ServiceResponse.md} +9 -11
  33. package/docs/classes/SetSessionVariableQuery.md +201 -0
  34. package/docs/classes/StormError.md +307 -0
  35. package/docs/classes/TemporaryTableQuery.md +207 -0
  36. package/docs/classes/{Token.Token-1.md → Token.md} +5 -7
  37. package/docs/classes/{TokenManager.TokenManager-1.md → TokenManager.md} +16 -18
  38. package/docs/classes/UnauthorizedAccessError.md +301 -0
  39. package/docs/enums/ErrorCode.md +107 -0
  40. package/docs/enums/ExitCode.md +30 -0
  41. package/docs/enums/HTTPMethod.md +52 -0
  42. package/docs/enums/JWTError.md +30 -0
  43. package/docs/enums/StatusCode.md +536 -0
  44. package/docs/interfaces/IAdditionalErrorDetails.md +7 -0
  45. package/docs/interfaces/{IAuthTokenData.IAuthTokenData-1.md → IAuthTokenData.md} +4 -6
  46. package/docs/interfaces/IConfig.md +112 -0
  47. package/docs/interfaces/{IDatabaseConfig.IDatabaseConfig-1.md → IDatabaseConfig.md} +13 -15
  48. package/docs/interfaces/{IDatabaseConnection.IDatabaseConnection-1.md → IDatabaseConnection.md} +33 -35
  49. package/docs/interfaces/IErrorResponse.md +52 -0
  50. package/docs/interfaces/IFormData.md +30 -0
  51. package/docs/interfaces/{IHandler.IHandler-1.md → IHandler.md} +4 -6
  52. package/docs/interfaces/IInsertQueryResult.md +41 -0
  53. package/docs/interfaces/IJWTVerifyOptions.md +19 -0
  54. package/docs/interfaces/IParameterMap.md +7 -0
  55. package/docs/interfaces/IRequestResponse.md +37 -0
  56. package/docs/interfaces/IServiceHeaders.md +7 -0
  57. package/docs/interfaces/ISetSessionVariableQueryInput.md +30 -0
  58. package/docs/interfaces/ITemporaryTableQueryInput.md +30 -0
  59. package/docs/interfaces/IUpdateQueryResult.md +30 -0
  60. package/docs/interfaces/{api.formidable.EmitData.md → formidable.EmitData.md} +7 -7
  61. package/docs/interfaces/{api.formidable.EventData.md → formidable.EventData.md} +10 -10
  62. package/docs/interfaces/formidable.Fields.md +9 -0
  63. package/docs/interfaces/{api.formidable.File.md → formidable.File.md} +12 -12
  64. package/docs/interfaces/{api.formidable.FileJSON.md → formidable.FileJSON.md} +12 -12
  65. package/docs/interfaces/formidable.Files.md +9 -0
  66. package/docs/interfaces/{api.formidable.Options.md → formidable.Options.md} +17 -15
  67. package/docs/interfaces/{api.formidable.Part.md → formidable.Part.md} +41 -41
  68. package/docs/modules/{api.formidable.md → formidable.md} +23 -25
  69. package/lib/Application.js +1 -1
  70. package/lib/Application.js.map +1 -1
  71. package/lib/BackendAuthenticationMiddleware.js +2 -2
  72. package/lib/BackendAuthenticationMiddleware.js.map +1 -1
  73. package/lib/CORSMiddleware.js +1 -1
  74. package/lib/CORSMiddleware.js.map +1 -1
  75. package/lib/ConfigLoader.js +1 -1
  76. package/lib/ConfigLoader.js.map +1 -1
  77. package/lib/Database.js +1 -1
  78. package/lib/Database.js.map +1 -1
  79. package/lib/DatabaseConnection.js +4 -4
  80. package/lib/DatabaseConnection.js.map +1 -1
  81. package/lib/Handler.js +2 -2
  82. package/lib/Handler.js.map +1 -1
  83. package/lib/ManagedDatabaseConnection.js +4 -4
  84. package/lib/ManagedDatabaseConnection.js.map +1 -1
  85. package/lib/MySQLConnection.js +7 -7
  86. package/lib/MySQLConnection.js.map +1 -1
  87. package/lib/MySQLDatabase.js +4 -4
  88. package/lib/MySQLDatabase.js.map +1 -1
  89. package/lib/Query.d.ts +2 -2
  90. package/lib/Query.js +2 -2
  91. package/lib/Query.js.map +1 -1
  92. package/lib/Request.js +2 -2
  93. package/lib/Request.js.map +1 -1
  94. package/lib/Response.js +1 -1
  95. package/lib/Response.js.map +1 -1
  96. package/lib/SetSessionVariableQuery.d.ts +10 -0
  97. package/lib/SetSessionVariableQuery.js +20 -0
  98. package/lib/SetSessionVariableQuery.js.map +1 -0
  99. package/lib/StormError.js +1 -1
  100. package/lib/StormError.js.map +1 -1
  101. package/lib/TemporaryTableQuery.d.ts +2 -1
  102. package/lib/TemporaryTableQuery.js +2 -2
  103. package/lib/TemporaryTableQuery.js.map +1 -1
  104. package/lib/TokenManager.js +1 -1
  105. package/lib/TokenManager.js.map +1 -1
  106. package/lib/api.d.ts +1 -0
  107. package/lib/api.js +3 -1
  108. package/lib/api.js.map +1 -1
  109. package/package.json +20 -20
  110. package/src/DatabaseConnection.ts +2 -2
  111. package/src/Query.ts +3 -3
  112. package/src/SetSessionVariableQuery.ts +29 -0
  113. package/src/TemporaryTableQuery.ts +3 -2
  114. package/src/api.ts +1 -0
  115. package/.nyc_output/01d7f3ed-ada5-4fbf-bf72-17458de5eda1.json +0 -1
  116. package/.nyc_output/07a372ea-5f20-411a-8f9b-5cfd38c9f7cf.json +0 -1
  117. package/.nyc_output/1a03fe29-15f4-4d36-a6f1-061f95c919d2.json +0 -1
  118. package/.nyc_output/1be973a3-2986-4e51-9bef-ffa834a81029.json +0 -1
  119. package/.nyc_output/1fa3f196-6284-4422-b186-8fb97ac299b1.json +0 -1
  120. package/.nyc_output/21b4136c-a3f4-465a-ab85-cdfa70dda252.json +0 -1
  121. package/.nyc_output/279ce3fa-118b-4b21-bbd4-a0dbabb3cf28.json +0 -1
  122. package/.nyc_output/370daf16-8792-4296-a491-4b0ff8c5c03d.json +0 -1
  123. package/.nyc_output/44cabfc1-f759-4ff5-9502-0967bba28c3b.json +0 -1
  124. package/.nyc_output/52cc8740-cb58-4b4e-b952-bedee8b2a4b9.json +0 -1
  125. package/.nyc_output/5359ad53-153e-4a68-9158-095880ce3682.json +0 -1
  126. package/.nyc_output/54476a59-73ed-43c2-b90f-46bad1fd2b24.json +0 -1
  127. package/.nyc_output/5e815b47-2082-47aa-8d02-548d8f0175a6.json +0 -1
  128. package/.nyc_output/6300a22c-16ee-4f46-a5bc-ac392153ef39.json +0 -1
  129. package/.nyc_output/6331ec83-1ccd-4980-8cdb-55f87f01b6a0.json +0 -1
  130. package/.nyc_output/6a819ad4-b691-45b3-b693-98f812bd3249.json +0 -1
  131. package/.nyc_output/77e0e45c-5d9f-4848-96a1-cc36e5373078.json +0 -1
  132. package/.nyc_output/790a50c9-e677-48ed-9d87-3ca0d173f7b0.json +0 -1
  133. package/.nyc_output/7dad65fb-92f5-4d0a-a576-e071c1ab73e5.json +0 -1
  134. package/.nyc_output/7ee3638f-2a2d-4d5a-9970-254a86884c40.json +0 -1
  135. package/.nyc_output/883b8a83-3a1e-4153-a987-3a2f5455a627.json +0 -1
  136. package/.nyc_output/8dc3a0b6-b04e-45f5-85ec-99efabb63499.json +0 -1
  137. package/.nyc_output/8e03b522-9fef-4fae-82c0-f51611fab55a.json +0 -1
  138. package/.nyc_output/946bad92-6c4b-4ac1-b508-83983322629c.json +0 -1
  139. package/.nyc_output/95d30443-c776-4f68-ab14-34ecdccdaee4.json +0 -1
  140. package/.nyc_output/abc21188-b3dc-4cce-bc20-f0680a4dde62.json +0 -1
  141. package/.nyc_output/ac7ebac2-d226-41f9-b271-25b0ad449de0.json +0 -1
  142. package/.nyc_output/ae1048af-74db-41a3-b4d7-e511f60259ef.json +0 -1
  143. package/.nyc_output/b121ce1e-5d6b-4b6d-93a7-21b315098afc.json +0 -1
  144. package/.nyc_output/bb6d14e4-2e75-45bd-a1f0-67c21781bcf6.json +0 -1
  145. package/.nyc_output/c5d84f76-682f-429c-9b0d-241c81a72907.json +0 -1
  146. package/.nyc_output/d14c616f-ca9b-402d-879d-c7e91ecc6b89.json +0 -1
  147. package/.nyc_output/d3096a06-29ef-4de7-b565-b7b1ca58471a.json +0 -1
  148. package/.nyc_output/d6313ced-0715-41aa-a0bb-22eeae3cccc1.json +0 -1
  149. package/.nyc_output/e7143b16-9cb3-4900-9498-05c40f90af46.json +0 -1
  150. package/.nyc_output/eb21b824-fc88-4f0c-9e72-bd691a141b75.json +0 -1
  151. package/.nyc_output/ee09e08d-c0f5-4fba-9fa1-849b0f32f347.json +0 -1
  152. package/.nyc_output/ee8b9792-e4fc-4950-8532-733858a2a7f2.json +0 -1
  153. package/.nyc_output/f4344c1d-e947-4c51-abe0-e3600b4e721d.json +0 -1
  154. package/.nyc_output/f7d0a4d2-62db-494d-bb67-78e3f93ae05b.json +0 -1
  155. package/.nyc_output/processinfo/01d7f3ed-ada5-4fbf-bf72-17458de5eda1.json +0 -1
  156. package/.nyc_output/processinfo/07a372ea-5f20-411a-8f9b-5cfd38c9f7cf.json +0 -1
  157. package/.nyc_output/processinfo/1a03fe29-15f4-4d36-a6f1-061f95c919d2.json +0 -1
  158. package/.nyc_output/processinfo/1be973a3-2986-4e51-9bef-ffa834a81029.json +0 -1
  159. package/.nyc_output/processinfo/1fa3f196-6284-4422-b186-8fb97ac299b1.json +0 -1
  160. package/.nyc_output/processinfo/21b4136c-a3f4-465a-ab85-cdfa70dda252.json +0 -1
  161. package/.nyc_output/processinfo/279ce3fa-118b-4b21-bbd4-a0dbabb3cf28.json +0 -1
  162. package/.nyc_output/processinfo/370daf16-8792-4296-a491-4b0ff8c5c03d.json +0 -1
  163. package/.nyc_output/processinfo/44cabfc1-f759-4ff5-9502-0967bba28c3b.json +0 -1
  164. package/.nyc_output/processinfo/52cc8740-cb58-4b4e-b952-bedee8b2a4b9.json +0 -1
  165. package/.nyc_output/processinfo/5359ad53-153e-4a68-9158-095880ce3682.json +0 -1
  166. package/.nyc_output/processinfo/54476a59-73ed-43c2-b90f-46bad1fd2b24.json +0 -1
  167. package/.nyc_output/processinfo/5e815b47-2082-47aa-8d02-548d8f0175a6.json +0 -1
  168. package/.nyc_output/processinfo/6300a22c-16ee-4f46-a5bc-ac392153ef39.json +0 -1
  169. package/.nyc_output/processinfo/6331ec83-1ccd-4980-8cdb-55f87f01b6a0.json +0 -1
  170. package/.nyc_output/processinfo/6a819ad4-b691-45b3-b693-98f812bd3249.json +0 -1
  171. package/.nyc_output/processinfo/77e0e45c-5d9f-4848-96a1-cc36e5373078.json +0 -1
  172. package/.nyc_output/processinfo/790a50c9-e677-48ed-9d87-3ca0d173f7b0.json +0 -1
  173. package/.nyc_output/processinfo/7dad65fb-92f5-4d0a-a576-e071c1ab73e5.json +0 -1
  174. package/.nyc_output/processinfo/7ee3638f-2a2d-4d5a-9970-254a86884c40.json +0 -1
  175. package/.nyc_output/processinfo/883b8a83-3a1e-4153-a987-3a2f5455a627.json +0 -1
  176. package/.nyc_output/processinfo/8dc3a0b6-b04e-45f5-85ec-99efabb63499.json +0 -1
  177. package/.nyc_output/processinfo/8e03b522-9fef-4fae-82c0-f51611fab55a.json +0 -1
  178. package/.nyc_output/processinfo/946bad92-6c4b-4ac1-b508-83983322629c.json +0 -1
  179. package/.nyc_output/processinfo/95d30443-c776-4f68-ab14-34ecdccdaee4.json +0 -1
  180. package/.nyc_output/processinfo/abc21188-b3dc-4cce-bc20-f0680a4dde62.json +0 -1
  181. package/.nyc_output/processinfo/ac7ebac2-d226-41f9-b271-25b0ad449de0.json +0 -1
  182. package/.nyc_output/processinfo/ae1048af-74db-41a3-b4d7-e511f60259ef.json +0 -1
  183. package/.nyc_output/processinfo/b121ce1e-5d6b-4b6d-93a7-21b315098afc.json +0 -1
  184. package/.nyc_output/processinfo/bb6d14e4-2e75-45bd-a1f0-67c21781bcf6.json +0 -1
  185. package/.nyc_output/processinfo/c5d84f76-682f-429c-9b0d-241c81a72907.json +0 -1
  186. package/.nyc_output/processinfo/d14c616f-ca9b-402d-879d-c7e91ecc6b89.json +0 -1
  187. package/.nyc_output/processinfo/d3096a06-29ef-4de7-b565-b7b1ca58471a.json +0 -1
  188. package/.nyc_output/processinfo/d6313ced-0715-41aa-a0bb-22eeae3cccc1.json +0 -1
  189. package/.nyc_output/processinfo/e7143b16-9cb3-4900-9498-05c40f90af46.json +0 -1
  190. package/.nyc_output/processinfo/eb21b824-fc88-4f0c-9e72-bd691a141b75.json +0 -1
  191. package/.nyc_output/processinfo/ee09e08d-c0f5-4fba-9fa1-849b0f32f347.json +0 -1
  192. package/.nyc_output/processinfo/ee8b9792-e4fc-4950-8532-733858a2a7f2.json +0 -1
  193. package/.nyc_output/processinfo/f4344c1d-e947-4c51-abe0-e3600b4e721d.json +0 -1
  194. package/.nyc_output/processinfo/f7d0a4d2-62db-494d-bb67-78e3f93ae05b.json +0 -1
  195. package/.nyc_output/processinfo/index.json +0 -1
  196. package/docs/classes/CORSMiddleware.CORSMiddleware-1.md +0 -145
  197. package/docs/classes/DatabaseQueryError.DatabaseQueryError-1.md +0 -309
  198. package/docs/classes/DiskSpaceError.DiskSpaceError-1.md +0 -303
  199. package/docs/classes/DropTemporaryTableQuery.DropTemporaryTableQuery-1.md +0 -197
  200. package/docs/classes/DumpStream.DumpStream-1.md +0 -25
  201. package/docs/classes/DuplicateEntryError.DuplicateEntryError-1.md +0 -305
  202. package/docs/classes/EntityNotFoundError.EntityNotFoundError-1.md +0 -303
  203. package/docs/classes/ExpiredTokenError.ExpiredTokenError-1.md +0 -303
  204. package/docs/classes/Handler.Handler-1.md +0 -325
  205. package/docs/classes/InternalError.InternalError-1.md +0 -303
  206. package/docs/classes/InvalidConfigError.InvalidConfigError-1.md +0 -316
  207. package/docs/classes/InvalidCredentialsError.InvalidCredentialsError-1.md +0 -303
  208. package/docs/classes/InvalidValueError.InvalidValueError-1.md +0 -311
  209. package/docs/classes/JWTVerifyOptionsParser.JWTVerifyOptionsParser-1.md +0 -45
  210. package/docs/classes/ManagedDatabaseConnection.ManagedDatabaseConnection-1.md +0 -399
  211. package/docs/classes/Middleware.Middleware-1.md +0 -74
  212. package/docs/classes/MissingConfigError.MissingConfigError-1.md +0 -303
  213. package/docs/classes/MissingParameterError.MissingParameterError-1.md +0 -303
  214. package/docs/classes/MySQLDatabase.MySQLDatabase-1.md +0 -316
  215. package/docs/classes/Request.Request-1.md +0 -323
  216. package/docs/classes/Response.Response-1.md +0 -244
  217. package/docs/classes/StormError.StormError-1.md +0 -309
  218. package/docs/classes/TemporaryTableQuery.TemporaryTableQuery-1.md +0 -197
  219. package/docs/classes/UnauthorizedAccessError.UnauthorizedAccessError-1.md +0 -301
  220. package/docs/classes/private_CommitQuery.CommitQuery.md +0 -197
  221. package/docs/classes/private_RollbackQuery.RollbackQuery.md +0 -197
  222. package/docs/classes/private_StartTransactionQuery.StartTransactionQuery.md +0 -197
  223. package/docs/enums/ApplicationEvent.ApplicationEvent-1.md +0 -21
  224. package/docs/enums/ErrorCode.ErrorCode-1.md +0 -109
  225. package/docs/enums/ExitCode.ExitCode-1.md +0 -32
  226. package/docs/enums/HTTPMethod.HTTPMethod-1.md +0 -54
  227. package/docs/enums/JWTError.JWTError-1.md +0 -32
  228. package/docs/enums/StatusCode.StatusCode-1.md +0 -538
  229. package/docs/interfaces/DropTemporaryTableQuery.IDropTemporaryTableQueryInput.md +0 -21
  230. package/docs/interfaces/IConfig.IConfig-1.md +0 -114
  231. package/docs/interfaces/IFormData.IFormData-1.md +0 -32
  232. package/docs/interfaces/IInsertQueryResult.IInsertQueryResult-1.md +0 -43
  233. package/docs/interfaces/IJWTVerifyOptions.IJWTVerifyOptions-1.md +0 -21
  234. package/docs/interfaces/IRequestResponse.IRequestResponse-1.md +0 -39
  235. package/docs/interfaces/IServiceHeaders.IServiceHeaders-1.md +0 -9
  236. package/docs/interfaces/IUpdateQueryResult.IUpdateQueryResult-1.md +0 -32
  237. package/docs/interfaces/Request.IParameterMap.md +0 -9
  238. package/docs/interfaces/Response.IHeaderKeyValuePair.md +0 -9
  239. package/docs/interfaces/StormError.IAdditionalErrorDetails.md +0 -9
  240. package/docs/interfaces/StormError.IErrorResponse.md +0 -54
  241. package/docs/interfaces/TemporaryTableQuery.ITemporaryTableQueryInput.md +0 -32
  242. package/docs/interfaces/api.formidable.Fields.md +0 -9
  243. package/docs/interfaces/api.formidable.Files.md +0 -9
  244. package/docs/modules/Application.md +0 -9
  245. package/docs/modules/ApplicationEvent.md +0 -9
  246. package/docs/modules/BackendAuthenticationMiddleware.md +0 -9
  247. package/docs/modules/CORSMiddleware.md +0 -9
  248. package/docs/modules/ConfigLoader.md +0 -9
  249. package/docs/modules/Database.md +0 -9
  250. package/docs/modules/DatabaseConnection.md +0 -34
  251. package/docs/modules/DatabaseQueryError.md +0 -9
  252. package/docs/modules/DiskSpaceError.md +0 -9
  253. package/docs/modules/DropTemporaryTableQuery.md +0 -13
  254. package/docs/modules/DumpStream.md +0 -9
  255. package/docs/modules/DuplicateEntryError.md +0 -9
  256. package/docs/modules/EntityNotFoundError.md +0 -9
  257. package/docs/modules/ErrorCode.md +0 -9
  258. package/docs/modules/ExitCode.md +0 -9
  259. package/docs/modules/ExpiredTokenError.md +0 -9
  260. package/docs/modules/HTTPMethod.md +0 -9
  261. package/docs/modules/Handler.md +0 -50
  262. package/docs/modules/IAuthTokenData.md +0 -9
  263. package/docs/modules/IConfig.md +0 -9
  264. package/docs/modules/IDatabaseConfig.md +0 -9
  265. package/docs/modules/IDatabaseConnection.md +0 -9
  266. package/docs/modules/IDeleteQueryResult.md +0 -19
  267. package/docs/modules/IFormData.md +0 -9
  268. package/docs/modules/IHandler.md +0 -9
  269. package/docs/modules/IInsertQueryResult.md +0 -9
  270. package/docs/modules/IJWTVerifyOptions.md +0 -9
  271. package/docs/modules/IRequestResponse.md +0 -9
  272. package/docs/modules/IServiceHeaders.md +0 -9
  273. package/docs/modules/IUpdateQueryResult.md +0 -9
  274. package/docs/modules/InternalError.md +0 -9
  275. package/docs/modules/InvalidConfigError.md +0 -9
  276. package/docs/modules/InvalidCredentialsError.md +0 -9
  277. package/docs/modules/InvalidValueError.md +0 -9
  278. package/docs/modules/JWTError.md +0 -9
  279. package/docs/modules/JWTVerifyOptionsParser.md +0 -9
  280. package/docs/modules/ManagedDatabaseConnection.md +0 -9
  281. package/docs/modules/Middleware.md +0 -9
  282. package/docs/modules/MissingConfigError.md +0 -9
  283. package/docs/modules/MissingParameterError.md +0 -9
  284. package/docs/modules/MySQLConnection.md +0 -9
  285. package/docs/modules/MySQLDatabase.md +0 -9
  286. package/docs/modules/Query.md +0 -9
  287. package/docs/modules/RawQuery.md +0 -9
  288. package/docs/modules/Request.md +0 -13
  289. package/docs/modules/Response.md +0 -27
  290. package/docs/modules/ResponseData.md +0 -9
  291. package/docs/modules/ServiceProvider.md +0 -9
  292. package/docs/modules/ServiceResponse.md +0 -9
  293. package/docs/modules/StatusCode.md +0 -9
  294. package/docs/modules/StormError.md +0 -14
  295. package/docs/modules/TemporaryTableQuery.md +0 -13
  296. package/docs/modules/Token.md +0 -9
  297. package/docs/modules/TokenManager.md +0 -9
  298. package/docs/modules/UnauthorizedAccessError.md +0 -9
  299. package/docs/modules/api.md +0 -439
  300. package/docs/modules/instance.md +0 -44
  301. package/docs/modules/private_CommitQuery.md +0 -9
  302. package/docs/modules/private_RollbackQuery.md +0 -9
  303. package/docs/modules/private_StartTransactionQuery.md +0 -9
@@ -133,7 +133,7 @@ export abstract class DatabaseConnection<TAPI> implements IDatabaseConnection {
133
133
  this.$armLingerWarning();
134
134
 
135
135
  let queryStr: string = null;
136
- queryStr = query.getQuery();
136
+ queryStr = query.getQuery(this);
137
137
  let params: IDictionary = query.getParametersForQuery();
138
138
 
139
139
  await query.onPreQuery(this);
@@ -153,7 +153,7 @@ export abstract class DatabaseConnection<TAPI> implements IDatabaseConnection {
153
153
  this.$armLingerWarning();
154
154
  let queryStr: string = null;
155
155
  let params: IDictionary = query.getParametersForQuery();
156
- queryStr = query.getQuery();
156
+ queryStr = query.getQuery(this);
157
157
  return this._stream(queryStr, params, streamOptions);
158
158
  }
159
159
 
package/src/Query.ts CHANGED
@@ -32,10 +32,10 @@ export abstract class Query<TQueryParameters = any, TQueryResultSet = any, TQuer
32
32
  return this.$params;
33
33
  }
34
34
 
35
- protected abstract _getQuery(): string;
35
+ protected abstract _getQuery(connection: IDatabaseConnection): string;
36
36
 
37
- public getQuery(): string {
38
- return this._getQuery();
37
+ public getQuery(connection: IDatabaseConnection): string {
38
+ return this._getQuery(connection);
39
39
  }
40
40
 
41
41
  /**
@@ -0,0 +1,29 @@
1
+
2
+ import {
3
+ Query
4
+ } from './Query';
5
+ import { IDictionary } from '@totalpave/interfaces';
6
+
7
+ export interface ISetSessionVariableQueryInput {
8
+ name: string;
9
+ value: any;
10
+ }
11
+
12
+ export class SetSessionVariableQuery extends Query<ISetSessionVariableQueryInput, void> {
13
+ protected _getQuery(): string {
14
+ let params: ISetSessionVariableQueryInput = this.getParameters();
15
+
16
+ if (!/[a-zA-Z_]/ig.test(params.name)) {
17
+ throw new Error('Illegal Variable Name');
18
+ }
19
+
20
+ // Only allow alpha letters & underscores for variable names
21
+ return `SET SESSION ${params.name} = :value`;
22
+ }
23
+
24
+ public getParametersForQuery(): IDictionary {
25
+ return {
26
+ value: this.getParameters().value
27
+ };
28
+ }
29
+ }
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  import { IDictionary } from '@totalpave/interfaces';
18
+ import { IDatabaseConnection } from './IDatabaseConnection';
18
19
  import {Query} from './Query';
19
20
 
20
21
  export interface ITemporaryTableQueryInput {
@@ -32,12 +33,12 @@ export class TemporaryTableQuery extends Query<any> {
32
33
  };
33
34
  }
34
35
 
35
- protected _getQuery(): string {
36
+ protected override _getQuery(connection: IDatabaseConnection): string {
36
37
  let params: ITemporaryTableQueryInput = this.getParameters();
37
38
 
38
39
  return `
39
40
  CREATE TEMPORARY TABLE \`${params.tableName}\`
40
- ${params.selectQuery.getQuery()}
41
+ ${params.selectQuery.getQuery(connection)}
41
42
  `;
42
43
  }
43
44
  }
package/src/api.ts CHANGED
@@ -34,6 +34,7 @@ export {RawQuery} from './RawQuery';
34
34
  export {IInsertQueryResult} from './IInsertQueryResult';
35
35
  export {IDeleteQueryResult} from './IDeleteQueryResult';
36
36
  export {IUpdateQueryResult} from './IUpdateQueryResult';
37
+ export {SetSessionVariableQuery, ISetSessionVariableQueryInput} from './SetSessionVariableQuery';
37
38
 
38
39
  // Errors
39
40
  export {ErrorCode} from './ErrorCode';
@@ -1 +0,0 @@
1
- {"/development/breautek/storm/src/Application.ts":{"path":"/development/breautek/storm/src/Application.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":34}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":40}},"4":{"start":{"line":6,"column":27},"end":{"line":6,"column":56}},"5":{"start":{"line":7,"column":18},"end":{"line":7,"column":38}},"6":{"start":{"line":8,"column":19},"end":{"line":8,"column":40}},"7":{"start":{"line":9,"column":23},"end":{"line":9,"column":48}},"8":{"start":{"line":10,"column":18},"end":{"line":10,"column":38}},"9":{"start":{"line":11,"column":16},"end":{"line":11,"column":34}},"10":{"start":{"line":12,"column":19},"end":{"line":12,"column":41}},"11":{"start":{"line":13,"column":13},"end":{"line":13,"column":28}},"12":{"start":{"line":14,"column":17},"end":{"line":14,"column":42}},"13":{"start":{"line":15,"column":12},"end":{"line":15,"column":25}},"14":{"start":{"line":18,"column":8},"end":{"line":18,"column":16}},"15":{"start":{"line":19,"column":8},"end":{"line":19,"column":37}},"16":{"start":{"line":20,"column":8},"end":{"line":20,"column":32}},"17":{"start":{"line":21,"column":8},"end":{"line":21,"column":42}},"18":{"start":{"line":22,"column":8},"end":{"line":22,"column":26}},"19":{"start":{"line":23,"column":8},"end":{"line":25,"column":11}},"20":{"start":{"line":24,"column":12},"end":{"line":24,"column":48}},"21":{"start":{"line":26,"column":8},"end":{"line":26,"column":55}},"22":{"start":{"line":27,"column":21},"end":{"line":27,"column":49}},"23":{"start":{"line":28,"column":8},"end":{"line":28,"column":54}},"24":{"start":{"line":29,"column":8},"end":{"line":29,"column":53}},"25":{"start":{"line":30,"column":8},"end":{"line":30,"column":21}},"26":{"start":{"line":33,"column":8},"end":{"line":97,"column":11}},"27":{"start":{"line":34,"column":12},"end":{"line":34,"column":34}},"28":{"start":{"line":35,"column":12},"end":{"line":35,"column":52}},"29":{"start":{"line":36,"column":12},"end":{"line":36,"column":66}},"30":{"start":{"line":37,"column":12},"end":{"line":37,"column":73}},"31":{"start":{"line":38,"column":12},"end":{"line":38,"column":44}},"32":{"start":{"line":39,"column":12},"end":{"line":39,"column":37}},"33":{"start":{"line":41,"column":12},"end":{"line":41,"column":63}},"34":{"start":{"line":42,"column":12},"end":{"line":42,"column":49}},"35":{"start":{"line":44,"column":12},"end":{"line":49,"column":13}},"36":{"start":{"line":45,"column":16},"end":{"line":45,"column":64}},"37":{"start":{"line":48,"column":16},"end":{"line":48,"column":71}},"38":{"start":{"line":50,"column":12},"end":{"line":50,"column":26}},"39":{"start":{"line":51,"column":12},"end":{"line":51,"column":37}},"40":{"start":{"line":53,"column":12},"end":{"line":53,"column":63}},"41":{"start":{"line":54,"column":12},"end":{"line":54,"column":37}},"42":{"start":{"line":55,"column":12},"end":{"line":58,"column":16}},"43":{"start":{"line":59,"column":12},"end":{"line":62,"column":16}},"44":{"start":{"line":63,"column":12},"end":{"line":63,"column":37}},"45":{"start":{"line":65,"column":12},"end":{"line":65,"column":66}},"46":{"start":{"line":66,"column":12},"end":{"line":66,"column":41}},"47":{"start":{"line":68,"column":12},"end":{"line":68,"column":33}},"48":{"start":{"line":69,"column":12},"end":{"line":89,"column":15}},"49":{"start":{"line":70,"column":32},"end":{"line":70,"column":53}},"50":{"start":{"line":71,"column":27},"end":{"line":71,"column":48}},"51":{"start":{"line":72,"column":16},"end":{"line":88,"column":17}},"52":{"start":{"line":73,"column":20},"end":{"line":83,"column":21}},"53":{"start":{"line":74,"column":24},"end":{"line":74,"column":71}},"54":{"start":{"line":75,"column":24},"end":{"line":78,"column":27}},"55":{"start":{"line":76,"column":28},"end":{"line":76,"column":109}},"56":{"start":{"line":77,"column":28},"end":{"line":77,"column":38}},"57":{"start":{"line":81,"column":24},"end":{"line":81,"column":115}},"58":{"start":{"line":82,"column":24},"end":{"line":82,"column":34}},"59":{"start":{"line":86,"column":20},"end":{"line":86,"column":141}},"60":{"start":{"line":87,"column":20},"end":{"line":87,"column":30}},"61":{"start":{"line":91,"column":12},"end":{"line":91,"column":54}},"62":{"start":{"line":93,"column":12},"end":{"line":93,"column":27}},"63":{"start":{"line":94,"column":12},"end":{"line":94,"column":31}},"64":{"start":{"line":96,"column":12},"end":{"line":96,"column":48}},"65":{"start":{"line":100,"column":8},"end":{"line":100,"column":33}},"66":{"start":{"line":103,"column":8},"end":{"line":103,"column":93}},"67":{"start":{"line":106,"column":8},"end":{"line":106,"column":28}},"68":{"start":{"line":109,"column":19},"end":{"line":109,"column":23}},"69":{"start":{"line":110,"column":8},"end":{"line":115,"column":9}},"70":{"start":{"line":111,"column":26},"end":{"line":111,"column":48}},"71":{"start":{"line":112,"column":12},"end":{"line":114,"column":13}},"72":{"start":{"line":113,"column":16},"end":{"line":113,"column":36}},"73":{"start":{"line":116,"column":8},"end":{"line":116,"column":20}},"74":{"start":{"line":119,"column":8},"end":{"line":119,"column":34}},"75":{"start":{"line":120,"column":18},"end":{"line":120,"column":44}},"76":{"start":{"line":121,"column":8},"end":{"line":121,"column":60}},"77":{"start":{"line":122,"column":8},"end":{"line":122,"column":77}},"78":{"start":{"line":123,"column":8},"end":{"line":123,"column":75}},"79":{"start":{"line":124,"column":8},"end":{"line":124,"column":112}},"80":{"start":{"line":125,"column":8},"end":{"line":125,"column":45}},"81":{"start":{"line":129,"column":8},"end":{"line":129,"column":29}},"82":{"start":{"line":132,"column":8},"end":{"line":132,"column":51}},"83":{"start":{"line":135,"column":22},"end":{"line":135,"column":44}},"84":{"start":{"line":136,"column":8},"end":{"line":139,"column":11}},"85":{"start":{"line":137,"column":20},"end":{"line":137,"column":50}},"86":{"start":{"line":138,"column":12},"end":{"line":138,"column":74}},"87":{"start":{"line":140,"column":8},"end":{"line":143,"column":11}},"88":{"start":{"line":141,"column":20},"end":{"line":141,"column":50}},"89":{"start":{"line":142,"column":12},"end":{"line":142,"column":75}},"90":{"start":{"line":144,"column":8},"end":{"line":147,"column":11}},"91":{"start":{"line":145,"column":20},"end":{"line":145,"column":50}},"92":{"start":{"line":146,"column":12},"end":{"line":146,"column":74}},"93":{"start":{"line":148,"column":8},"end":{"line":151,"column":11}},"94":{"start":{"line":149,"column":20},"end":{"line":149,"column":50}},"95":{"start":{"line":150,"column":12},"end":{"line":150,"column":77}},"96":{"start":{"line":154,"column":8},"end":{"line":163,"column":11}},"97":{"start":{"line":155,"column":12},"end":{"line":162,"column":13}},"98":{"start":{"line":156,"column":16},"end":{"line":158,"column":19}},"99":{"start":{"line":157,"column":20},"end":{"line":157,"column":30}},"100":{"start":{"line":161,"column":16},"end":{"line":161,"column":26}},"101":{"start":{"line":166,"column":8},"end":{"line":172,"column":11}},"102":{"start":{"line":167,"column":12},"end":{"line":171,"column":15}},"103":{"start":{"line":168,"column":16},"end":{"line":168,"column":32}},"104":{"start":{"line":170,"column":16},"end":{"line":170,"column":39}},"105":{"start":{"line":175,"column":8},"end":{"line":175,"column":26}},"106":{"start":{"line":178,"column":8},"end":{"line":178,"column":28}},"107":{"start":{"line":181,"column":8},"end":{"line":181,"column":28}},"108":{"start":{"line":184,"column":8},"end":{"line":184,"column":20}},"109":{"start":{"line":188,"column":8},"end":{"line":188,"column":42}},"110":{"start":{"line":191,"column":8},"end":{"line":191,"column":34}},"111":{"start":{"line":194,"column":8},"end":{"line":194,"column":24}},"112":{"start":{"line":197,"column":22},"end":{"line":197,"column":35}},"113":{"start":{"line":198,"column":16},"end":{"line":198,"column":18}},"114":{"start":{"line":199,"column":19},"end":{"line":199,"column":33}},"115":{"start":{"line":200,"column":8},"end":{"line":202,"column":9}},"116":{"start":{"line":201,"column":12},"end":{"line":201,"column":21}},"117":{"start":{"line":203,"column":8},"end":{"line":205,"column":9}},"118":{"start":{"line":204,"column":12},"end":{"line":204,"column":31}},"119":{"start":{"line":206,"column":8},"end":{"line":208,"column":9}},"120":{"start":{"line":207,"column":12},"end":{"line":207,"column":31}},"121":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"122":{"start":{"line":210,"column":12},"end":{"line":210,"column":65}},"123":{"start":{"line":212,"column":8},"end":{"line":212,"column":17}},"124":{"start":{"line":215,"column":8},"end":{"line":215,"column":37}},"125":{"start":{"line":220,"column":0},"end":{"line":220,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":34},"end":{"line":31,"column":5}},"line":17},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":41},"end":{"line":23,"column":42}},"loc":{"start":{"line":23,"column":52},"end":{"line":25,"column":9}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":12},"end":{"line":98,"column":5}},"line":32},"3":{"name":"(anonymous_3)","decl":{"start":{"line":33,"column":47},"end":{"line":33,"column":48}},"loc":{"start":{"line":33,"column":59},"end":{"line":40,"column":9}},"line":33},"4":{"name":"(anonymous_4)","decl":{"start":{"line":40,"column":16},"end":{"line":40,"column":17}},"loc":{"start":{"line":40,"column":22},"end":{"line":43,"column":9}},"line":40},"5":{"name":"(anonymous_5)","decl":{"start":{"line":43,"column":16},"end":{"line":43,"column":17}},"loc":{"start":{"line":43,"column":24},"end":{"line":52,"column":9}},"line":43},"6":{"name":"(anonymous_6)","decl":{"start":{"line":52,"column":16},"end":{"line":52,"column":17}},"loc":{"start":{"line":52,"column":22},"end":{"line":64,"column":9}},"line":52},"7":{"name":"(anonymous_7)","decl":{"start":{"line":64,"column":16},"end":{"line":64,"column":17}},"loc":{"start":{"line":64,"column":22},"end":{"line":67,"column":9}},"line":64},"8":{"name":"(anonymous_8)","decl":{"start":{"line":67,"column":16},"end":{"line":67,"column":17}},"loc":{"start":{"line":67,"column":22},"end":{"line":90,"column":9}},"line":67},"9":{"name":"(anonymous_9)","decl":{"start":{"line":69,"column":31},"end":{"line":69,"column":32}},"loc":{"start":{"line":69,"column":52},"end":{"line":89,"column":13}},"line":69},"10":{"name":"(anonymous_10)","decl":{"start":{"line":75,"column":61},"end":{"line":75,"column":62}},"loc":{"start":{"line":75,"column":67},"end":{"line":78,"column":25}},"line":75},"11":{"name":"(anonymous_11)","decl":{"start":{"line":90,"column":16},"end":{"line":90,"column":17}},"loc":{"start":{"line":90,"column":22},"end":{"line":92,"column":9}},"line":90},"12":{"name":"(anonymous_12)","decl":{"start":{"line":92,"column":16},"end":{"line":92,"column":17}},"loc":{"start":{"line":92,"column":22},"end":{"line":95,"column":9}},"line":92},"13":{"name":"(anonymous_13)","decl":{"start":{"line":95,"column":17},"end":{"line":95,"column":18}},"loc":{"start":{"line":95,"column":28},"end":{"line":97,"column":9}},"line":95},"14":{"name":"(anonymous_14)","decl":{"start":{"line":99,"column":4},"end":{"line":99,"column":5}},"loc":{"start":{"line":99,"column":24},"end":{"line":101,"column":5}},"line":99},"15":{"name":"(anonymous_15)","decl":{"start":{"line":102,"column":4},"end":{"line":102,"column":5}},"loc":{"start":{"line":102,"column":24},"end":{"line":104,"column":5}},"line":102},"16":{"name":"(anonymous_16)","decl":{"start":{"line":105,"column":4},"end":{"line":105,"column":5}},"loc":{"start":{"line":105,"column":16},"end":{"line":107,"column":5}},"line":105},"17":{"name":"(anonymous_17)","decl":{"start":{"line":108,"column":4},"end":{"line":108,"column":5}},"loc":{"start":{"line":108,"column":14},"end":{"line":117,"column":5}},"line":108},"18":{"name":"(anonymous_18)","decl":{"start":{"line":118,"column":4},"end":{"line":118,"column":5}},"loc":{"start":{"line":118,"column":23},"end":{"line":126,"column":5}},"line":118},"19":{"name":"(anonymous_19)","decl":{"start":{"line":127,"column":4},"end":{"line":127,"column":5}},"loc":{"start":{"line":127,"column":30},"end":{"line":127,"column":33}},"line":127},"20":{"name":"(anonymous_20)","decl":{"start":{"line":128,"column":4},"end":{"line":128,"column":5}},"loc":{"start":{"line":128,"column":17},"end":{"line":130,"column":5}},"line":128},"21":{"name":"(anonymous_21)","decl":{"start":{"line":131,"column":4},"end":{"line":131,"column":5}},"loc":{"start":{"line":131,"column":26},"end":{"line":133,"column":5}},"line":131},"22":{"name":"(anonymous_22)","decl":{"start":{"line":134,"column":4},"end":{"line":134,"column":5}},"loc":{"start":{"line":134,"column":38},"end":{"line":152,"column":5}},"line":134},"23":{"name":"(anonymous_23)","decl":{"start":{"line":136,"column":31},"end":{"line":136,"column":32}},"loc":{"start":{"line":136,"column":54},"end":{"line":139,"column":9}},"line":136},"24":{"name":"(anonymous_24)","decl":{"start":{"line":140,"column":32},"end":{"line":140,"column":33}},"loc":{"start":{"line":140,"column":55},"end":{"line":143,"column":9}},"line":140},"25":{"name":"(anonymous_25)","decl":{"start":{"line":144,"column":31},"end":{"line":144,"column":32}},"loc":{"start":{"line":144,"column":54},"end":{"line":147,"column":9}},"line":144},"26":{"name":"(anonymous_26)","decl":{"start":{"line":148,"column":34},"end":{"line":148,"column":35}},"loc":{"start":{"line":148,"column":57},"end":{"line":151,"column":9}},"line":148},"27":{"name":"(anonymous_27)","decl":{"start":{"line":153,"column":4},"end":{"line":153,"column":5}},"loc":{"start":{"line":153,"column":12},"end":{"line":164,"column":5}},"line":153},"28":{"name":"(anonymous_28)","decl":{"start":{"line":154,"column":27},"end":{"line":154,"column":28}},"loc":{"start":{"line":154,"column":48},"end":{"line":163,"column":9}},"line":154},"29":{"name":"(anonymous_29)","decl":{"start":{"line":156,"column":35},"end":{"line":156,"column":36}},"loc":{"start":{"line":156,"column":41},"end":{"line":158,"column":17}},"line":156},"30":{"name":"(anonymous_30)","decl":{"start":{"line":165,"column":4},"end":{"line":165,"column":5}},"loc":{"start":{"line":165,"column":21},"end":{"line":173,"column":5}},"line":165},"31":{"name":"(anonymous_31)","decl":{"start":{"line":166,"column":27},"end":{"line":166,"column":28}},"loc":{"start":{"line":166,"column":48},"end":{"line":172,"column":9}},"line":166},"32":{"name":"(anonymous_32)","decl":{"start":{"line":167,"column":56},"end":{"line":167,"column":57}},"loc":{"start":{"line":167,"column":68},"end":{"line":169,"column":13}},"line":167},"33":{"name":"(anonymous_33)","decl":{"start":{"line":169,"column":21},"end":{"line":169,"column":22}},"loc":{"start":{"line":169,"column":35},"end":{"line":171,"column":13}},"line":169},"34":{"name":"(anonymous_34)","decl":{"start":{"line":174,"column":4},"end":{"line":174,"column":5}},"loc":{"start":{"line":174,"column":14},"end":{"line":176,"column":5}},"line":174},"35":{"name":"(anonymous_35)","decl":{"start":{"line":177,"column":4},"end":{"line":177,"column":5}},"loc":{"start":{"line":177,"column":17},"end":{"line":179,"column":5}},"line":177},"36":{"name":"(anonymous_36)","decl":{"start":{"line":180,"column":4},"end":{"line":180,"column":5}},"loc":{"start":{"line":180,"column":16},"end":{"line":182,"column":5}},"line":180},"37":{"name":"(anonymous_37)","decl":{"start":{"line":183,"column":4},"end":{"line":183,"column":5}},"loc":{"start":{"line":183,"column":19},"end":{"line":185,"column":5}},"line":183},"38":{"name":"(anonymous_38)","decl":{"start":{"line":186,"column":4},"end":{"line":186,"column":5}},"loc":{"start":{"line":186,"column":25},"end":{"line":186,"column":28}},"line":186},"39":{"name":"(anonymous_39)","decl":{"start":{"line":187,"column":4},"end":{"line":187,"column":5}},"loc":{"start":{"line":187,"column":34},"end":{"line":189,"column":5}},"line":187},"40":{"name":"(anonymous_40)","decl":{"start":{"line":190,"column":4},"end":{"line":190,"column":5}},"loc":{"start":{"line":190,"column":22},"end":{"line":192,"column":5}},"line":190},"41":{"name":"(anonymous_41)","decl":{"start":{"line":193,"column":4},"end":{"line":193,"column":5}},"loc":{"start":{"line":193,"column":12},"end":{"line":195,"column":5}},"line":193},"42":{"name":"(anonymous_42)","decl":{"start":{"line":196,"column":4},"end":{"line":196,"column":5}},"loc":{"start":{"line":196,"column":21},"end":{"line":213,"column":5}},"line":196},"43":{"name":"(anonymous_43)","decl":{"start":{"line":214,"column":4},"end":{"line":214,"column":5}},"loc":{"start":{"line":214,"column":19},"end":{"line":216,"column":5}},"line":214},"44":{"name":"(anonymous_44)","decl":{"start":{"line":217,"column":4},"end":{"line":217,"column":5}},"loc":{"start":{"line":217,"column":20},"end":{"line":217,"column":23}},"line":217},"45":{"name":"(anonymous_45)","decl":{"start":{"line":218,"column":4},"end":{"line":218,"column":5}},"loc":{"start":{"line":218,"column":14},"end":{"line":218,"column":17}},"line":218}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":27},"end":{"line":26,"column":54}},"type":"binary-expr","locations":[{"start":{"line":26,"column":27},"end":{"line":26,"column":37}},{"start":{"line":26,"column":41},"end":{"line":26,"column":54}}],"line":26},"1":{"loc":{"start":{"line":44,"column":12},"end":{"line":49,"column":13}},"type":"if","locations":[{"start":{"line":44,"column":12},"end":{"line":49,"column":13}},{"start":{"line":44,"column":12},"end":{"line":49,"column":13}}],"line":44},"2":{"loc":{"start":{"line":72,"column":16},"end":{"line":88,"column":17}},"type":"if","locations":[{"start":{"line":72,"column":16},"end":{"line":88,"column":17}},{"start":{"line":72,"column":16},"end":{"line":88,"column":17}}],"line":72},"3":{"loc":{"start":{"line":72,"column":20},"end":{"line":72,"column":62}},"type":"binary-expr","locations":[{"start":{"line":72,"column":20},"end":{"line":72,"column":38}},{"start":{"line":72,"column":42},"end":{"line":72,"column":62}}],"line":72},"4":{"loc":{"start":{"line":73,"column":20},"end":{"line":83,"column":21}},"type":"if","locations":[{"start":{"line":73,"column":20},"end":{"line":83,"column":21}},{"start":{"line":73,"column":20},"end":{"line":83,"column":21}}],"line":73},"5":{"loc":{"start":{"line":110,"column":8},"end":{"line":115,"column":9}},"type":"if","locations":[{"start":{"line":110,"column":8},"end":{"line":115,"column":9}},{"start":{"line":110,"column":8},"end":{"line":115,"column":9}}],"line":110},"6":{"loc":{"start":{"line":110,"column":12},"end":{"line":110,"column":50}},"type":"binary-expr","locations":[{"start":{"line":110,"column":12},"end":{"line":110,"column":24}},{"start":{"line":110,"column":28},"end":{"line":110,"column":50}}],"line":110},"7":{"loc":{"start":{"line":112,"column":12},"end":{"line":114,"column":13}},"type":"if","locations":[{"start":{"line":112,"column":12},"end":{"line":114,"column":13}},{"start":{"line":112,"column":12},"end":{"line":114,"column":13}}],"line":112},"8":{"loc":{"start":{"line":155,"column":12},"end":{"line":162,"column":13}},"type":"if","locations":[{"start":{"line":155,"column":12},"end":{"line":162,"column":13}},{"start":{"line":155,"column":12},"end":{"line":162,"column":13}}],"line":155},"9":{"loc":{"start":{"line":155,"column":16},"end":{"line":155,"column":54}},"type":"binary-expr","locations":[{"start":{"line":155,"column":16},"end":{"line":155,"column":28}},{"start":{"line":155,"column":32},"end":{"line":155,"column":54}}],"line":155},"10":{"loc":{"start":{"line":200,"column":8},"end":{"line":202,"column":9}},"type":"if","locations":[{"start":{"line":200,"column":8},"end":{"line":202,"column":9}},{"start":{"line":200,"column":8},"end":{"line":202,"column":9}}],"line":200},"11":{"loc":{"start":{"line":203,"column":8},"end":{"line":205,"column":9}},"type":"if","locations":[{"start":{"line":203,"column":8},"end":{"line":205,"column":9}},{"start":{"line":203,"column":8},"end":{"line":205,"column":9}}],"line":203},"12":{"loc":{"start":{"line":206,"column":8},"end":{"line":208,"column":9}},"type":"if","locations":[{"start":{"line":206,"column":8},"end":{"line":208,"column":9}},{"start":{"line":206,"column":8},"end":{"line":208,"column":9}}],"line":206},"13":{"loc":{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},"type":"if","locations":[{"start":{"line":209,"column":8},"end":{"line":211,"column":9}},{"start":{"line":209,"column":8},"end":{"line":211,"column":9}}],"line":209}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":1},"f":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":1,"19":1,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Application.ts","sources":["/development/breautek/storm/src/Application.ts"],"names":[],"mappings":"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","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nimport {EventEmitter} from 'events';\r\nimport {setInstance} from './instance';\r\nimport {TokenManager} from './TokenManager';\r\nimport {ApplicationEvent} from './ApplicationEvent';\r\nimport {ExitCode} from './ExitCode';\r\nimport {Database} from './Database';\r\nimport {Handler} from './Handler';\r\nimport {IHandler} from './IHandler';\r\nimport {Request} from './Request';\r\nimport {Response} from './Response';\r\nimport {ConfigLoader} from './ConfigLoader';\r\nimport {IConfig} from './IConfig';\r\nimport Commander = require('commander');\r\nimport * as Express from 'express';\r\nimport * as BodyParser from 'body-parser';\r\nimport * as http from 'http';\r\nimport { IAuthTokenData } from '@arashi/token';\r\nimport { Logger } from '@arashi/logger';\r\n\r\nconst TAG: string = 'Application';\r\n\r\n/**\r\n * Main entry point for the Application. Should be extended and have the abstract methods implemented.\r\n */\r\nexport abstract class Application\r\n <\r\n TConfig extends IConfig = IConfig,\r\n TAuthToken extends IAuthTokenData = IAuthTokenData,\r\n TDBConfig = any,\r\n TDBConnectionAPI = any\r\n >\r\n extends EventEmitter {\r\n private _logger: Logger;\r\n private _name: string;\r\n private _configPath: string;\r\n private _config: TConfig;\r\n private _tokenManager: TokenManager<TAuthToken>;\r\n private _server: Express.Application;\r\n private _db: Database<TDBConfig, TDBConnectionAPI>;\r\n private _socket: http.Server;\r\n private _program: Commander.CommanderStatic;\r\n\r\n /**\r\n * \r\n * @param name The application name\r\n * @param configPath The directory where bt-config.json and bt-local-config.json can be found. Defaults to current working directory.\r\n */\r\n public constructor(name: string, configPath: string) {\r\n super();\r\n\r\n setInstance(this);\r\n \r\n this.$buildArgOptions();\r\n \r\n this._program.parse(process.argv);\r\n\r\n this._name = name;\r\n\r\n process.on('unhandledRejection', (error: any) => {\r\n this._getLogger().error(TAG, error);\r\n });\r\n\r\n this._configPath = configPath || process.cwd();\r\n\r\n let logger: Logger = new Logger('Storm');\r\n\r\n logger.info(TAG, 'Application is booting...');\r\n logger.info(TAG, 'Loading Configuration...');\r\n\r\n this._load();\r\n }\r\n\r\n private _load(): void {\r\n this.loadConfig(this._configPath).then((config: TConfig) => {\r\n this._config = config;\r\n this._logger = this._initLogger(config);\r\n this._getLogger().trace(TAG, 'Configuration loaded.');\r\n this.emit(ApplicationEvent.CONFIG_LOADED);\r\n this.onConfigLoad(this._config);\r\n return Promise.resolve();\r\n }).then(() => {\r\n this._getLogger().trace(TAG, 'Initializing DB...');\r\n return this.initDB(this.getConfig());\r\n }).then((db: Database<TDBConfig, TDBConnectionAPI>) => {\r\n if (db) {\r\n this._getLogger().trace(TAG, 'DB Initialized.');\r\n }\r\n else {\r\n this._getLogger().trace(TAG, 'DB is not initialized.');\r\n }\r\n this._db = db;\r\n\r\n return Promise.resolve();\r\n }).then(() => {\r\n this._getLogger().trace(TAG, 'Starting server...');\r\n this._server = Express();\r\n this._server.use(BodyParser.json({\r\n type : 'application/json',\r\n limit : this.getRequestSizeLimit()\r\n }));\r\n this._server.use(BodyParser.text({\r\n type : 'text/*',\r\n limit : this.getRequestSizeLimit()\r\n }));\r\n\r\n return Promise.resolve();\r\n }).then(() => {\r\n this._getLogger().trace(TAG, 'Attaching handlers...');\r\n return this.attachHandlers();\r\n }).then(() => {\r\n this.onBeforeReady();\r\n\r\n return new Promise<void>((resolve, reject) => {\r\n let bindingIP: string = this.getConfig().bind;\r\n let port: number = this.getConfig().port;\r\n\r\n if (bindingIP !== null && bindingIP !== 'null') {\r\n if (this.shouldListen()) {\r\n this._socket = http.createServer(this._server);\r\n this._socket.listen(port, bindingIP, () => {\r\n this._getLogger().trace(TAG, `Server started on ${bindingIP}:${this.getPort()}`);\r\n resolve();\r\n });\r\n }\r\n else {\r\n this._getLogger().trace(TAG, 'Server did not bind because shouldListen() returned false.');\r\n resolve();\r\n }\r\n }\r\n else {\r\n this._getLogger().info(TAG, `Server does not have a bounding IP set. The server will not be listening for connections.`);\r\n resolve();\r\n }\r\n });\r\n }).then(() => {\r\n return this._initialize(this.getConfig());\r\n }).then(() => {\r\n this.onReady();\r\n this.emit('ready');\r\n }).catch((error) => {\r\n this._getLogger().error(TAG, error);\r\n });\r\n }\r\n\r\n protected _initialize(config: TConfig): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n \r\n protected _initLogger(config: TConfig): Logger {\r\n return new Logger(this.getName(), config.log?.level, config.log?.directory);\r\n }\r\n\r\n public getLogger(): Logger {\r\n return this._logger;\r\n }\r\n\r\n public getPort(): number {\r\n let port: number = null;\r\n if (this._socket && this._socket.listening) {\r\n let address = this._socket.address();\r\n if (typeof address !== 'string') {\r\n port = address.port;\r\n }\r\n }\r\n return port;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private $buildArgOptions() {\r\n this._program = Commander;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n let pkg: any = require('../package.json');\r\n \r\n this._program.version(pkg.version, '-v, --version');\r\n this._program.option('--port <port>', 'The running port to consume');\r\n this._program.option('--bind <ip>', 'The binding IP to listen on');\r\n this._program.option('--authentication_header <header>', 'The header name of the authentication token');\r\n\r\n this._buildArgOptions(this._program);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n protected _buildArgOptions(program: Commander.CommanderStatic): void {}\r\n\r\n public getProgram(): Commander.CommanderStatic {\r\n return this._program;\r\n }\r\n\r\n /**\r\n * The maximum size limit for incoming requests that this service needs to handle.\r\n */\r\n public getRequestSizeLimit(): number {\r\n return this.getConfig().request_size_limit;\r\n }\r\n\r\n /**\r\n * \r\n * @param path The URL API path. E.g. /api/myService/myCommand/\r\n * @param HandlerClass The concrete class (not the instance) of Handler to be used for this API.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public attachHandler(path: string, HandlerClass: IHandler): void {\r\n let handler: Handler = new HandlerClass(this);\r\n this._server.get(path, (request: Express.Request, response: Express.Response) => {\r\n let r: Request = new Request(request);\r\n handler.get(r, new Response(response, r.getURL()));\r\n });\r\n this._server.post(path, (request: Express.Request, response: Express.Response) => {\r\n let r: Request = new Request(request);\r\n handler.post(r, new Response(response, r.getURL()));\r\n });\r\n this._server.put(path, (request: Express.Request, response: Express.Response) => {\r\n let r: Request = new Request(request);\r\n handler.put(r, new Response(response, r.getURL()));\r\n });\r\n this._server.delete(path, (request: Express.Request, response: Express.Response) => {\r\n let r: Request = new Request(request);\r\n handler.delete(r, new Response(response, r.getURL()));\r\n });\r\n }\r\n\r\n public close(): Promise<void> {\r\n return new Promise<void>((resolve, reject) => {\r\n if (this._socket && this._socket.listening) {\r\n this._socket.close(() => {\r\n resolve();\r\n });\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Subclasses are expected to attach the API handlers for their service. This will be invoked during application startup.\r\n * @returns Promise<void>\r\n */\r\n protected abstract attachHandlers(): Promise<void>;\r\n\r\n /**\r\n * \r\n * @param path The directory path that contains bt-config.json and bt-local-config.json\r\n */\r\n public loadConfig(path: string): Promise<TConfig> {\r\n return new Promise<TConfig>((resolve, reject) => {\r\n ConfigLoader.load(path).then((config: TConfig) => {\r\n resolve(config);\r\n }).catch((exitCode: ExitCode) => {\r\n process.exit(exitCode);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @returns the application name\r\n */\r\n public getName(): string {\r\n return this._name;\r\n }\r\n\r\n private _getLogger(): Logger {\r\n return this._logger;\r\n }\r\n\r\n /**\r\n * @returns the config object.\r\n */\r\n public getConfig(): TConfig {\r\n return this._config;\r\n }\r\n\r\n /**\r\n * @returns true if the Application should bind to an IP address\r\n */\r\n public shouldListen(): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * Invoked once the config has been loaded and ready to be used.\r\n * \r\n * @param config The config object (as defined in bt-config.json/bt-local-config.json)\r\n */\r\n protected onConfigLoad(config: TConfig): void {}\r\n\r\n /**\r\n * Sets the TokenManager to be used for authentication.\r\n * @param tokenManager \r\n */\r\n public setTokenManager(tokenManager: TokenManager<TAuthToken>): void {\r\n this._tokenManager = tokenManager;\r\n }\r\n\r\n /**\r\n * @returns the token manager\r\n */\r\n public getTokenManager(): TokenManager<TAuthToken> {\r\n return this._tokenManager;\r\n }\r\n\r\n /**\r\n * @returns the database pool. This will need to be casted based on your preferred database dialect.\r\n */\r\n public getDB(): Database<TDBConfig, TDBConnectionAPI> {\r\n return this._db;\r\n }\r\n\r\n /**\r\n * @returns command line arguments\r\n */\r\n public getCmdLineArgs(): TConfig {\r\n let program: Commander.CommanderStatic = this._program;\r\n let o: any = {};\r\n\r\n let opts: any = program.opts();\r\n\r\n if (!program) {\r\n return o;\r\n }\r\n\r\n if (opts.bind !== undefined) {\r\n o.bind = opts.bind;\r\n }\r\n\r\n if (opts.port !== undefined) {\r\n o.port = opts.port;\r\n }\r\n\r\n if (opts.authentication_header !== undefined) {\r\n o.authentication_header = opts.authentication_header;\r\n }\r\n\r\n return o;\r\n }\r\n\r\n /**\r\n * Subclasses are expected to override this to configure their database setup, if the service uses a database.\r\n * @param config The bt-config object\r\n */\r\n protected initDB(config: TConfig): Promise<Database<TDBConfig, TDBConnectionAPI>> {\r\n return Promise.resolve(null);\r\n }\r\n\r\n protected onBeforeReady(): void {}\r\n\r\n /**\r\n * Invoked when the application is considered ready for operation.\r\n */\r\n protected onReady(): void {}\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d1b57e562c4b48b8151b1ac8e6f9488958b31b90","contentHash":"4f617343079675e8a68b5f4363e62a46f761099adc54ba3d87a24f5f052c8c81"},"/development/breautek/storm/src/instance.ts":{"path":"/development/breautek/storm/src/instance.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":51}},"2":{"start":{"line":5,"column":18},"end":{"line":10,"column":1}},"3":{"start":{"line":6,"column":4},"end":{"line":8,"column":5}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":98}},"5":{"start":{"line":9,"column":4},"end":{"line":9,"column":19}},"6":{"start":{"line":11,"column":0},"end":{"line":11,"column":34}},"7":{"start":{"line":12,"column":18},"end":{"line":14,"column":1}},"8":{"start":{"line":13,"column":4},"end":{"line":13,"column":20}},"9":{"start":{"line":15,"column":0},"end":{"line":15,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":18},"end":{"line":5,"column":19}},"loc":{"start":{"line":5,"column":27},"end":{"line":10,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":18},"end":{"line":12,"column":19}},"loc":{"start":{"line":12,"column":24},"end":{"line":14,"column":1}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":4},"end":{"line":8,"column":5}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":8,"column":5}},{"start":{"line":6,"column":4},"end":{"line":8,"column":5}}],"line":6}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":1,"6":1,"7":1,"8":0,"9":1},"f":{"0":1,"1":0},"b":{"0":[0,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/instance.ts","sources":["/development/breautek/storm/src/instance.ts"],"names":[],"mappings":";;;AAkBA,IAAI,QAAqB,CAAC;AAE1B,IAAI,WAAW,GAAG,CAAC,GAAgB,EAAQ,EAAE;IACzC,IAAI,QAAQ,EAAE;QACV,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,uCAAuC,CAAC,CAAC;KAC7F;IACD,QAAQ,GAAG,GAAG,CAAC;AACnB,CAAC,CAAC;AAOE,kCAAW;AALf,IAAI,WAAW,GAAG,GAAgB,EAAE;IAChC,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAIE,kCAAW","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nimport {Application} from './Application';\r\n\r\nlet instance: Application;\r\n\r\nlet setInstance = (app: Application): void => {\r\n if (instance) {\r\n instance.getLogger().warn('ApplicationInstance', 'Storm application already initialized');\r\n }\r\n instance = app;\r\n};\r\n\r\nlet getInstance = (): Application => {\r\n return instance;\r\n};\r\n\r\nexport {\r\n setInstance,\r\n getInstance\r\n};\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"293cef1e59e52fdf6436822c424d1f2e6c44d8f4","contentHash":"5ec2a23e6786939cf8d08712275f5144052ce995bd4d21623c1b6cb99fc187ab"},"/development/breautek/storm/src/ApplicationEvent.ts":{"path":"/development/breautek/storm/src/ApplicationEvent.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"2":{"start":{"line":5,"column":0},"end":{"line":7,"column":83}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":56}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":1},"end":{"line":5,"column":2}},"loc":{"start":{"line":5,"column":29},"end":{"line":7,"column":1}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":22},"end":{"line":7,"column":81}},"type":"binary-expr","locations":[{"start":{"line":7,"column":22},"end":{"line":7,"column":46}},{"start":{"line":7,"column":51},"end":{"line":7,"column":80}}],"line":7}},"s":{"0":1,"1":1,"2":1,"3":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ApplicationEvent.ts","sources":["/development/breautek/storm/src/ApplicationEvent.ts"],"names":[],"mappings":";;;AAgBA,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IACxB,mDAA+B,CAAA;AACnC,CAAC,EAFW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAE3B","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nexport enum ApplicationEvent {\r\n CONFIG_LOADED = 'config_loaded'\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"11a84a67f8cc2a931997fa91c4e9e5849ad43b13","contentHash":"017a259bd54c00b6831849af6dadbf4438d88cb2777afadcbed6f02d060251b3"},"/development/breautek/storm/src/Request.ts":{"path":"/development/breautek/storm/src/Request.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":40}},"4":{"start":{"line":6,"column":16},"end":{"line":6,"column":34}},"5":{"start":{"line":7,"column":19},"end":{"line":7,"column":40}},"6":{"start":{"line":8,"column":23},"end":{"line":8,"column":48}},"7":{"start":{"line":9,"column":21},"end":{"line":9,"column":44}},"8":{"start":{"line":10,"column":24},"end":{"line":10,"column":50}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":32}},"10":{"start":{"line":16,"column":8},"end":{"line":16,"column":34}},"11":{"start":{"line":19,"column":8},"end":{"line":32,"column":11}},"12":{"start":{"line":20,"column":20},"end":{"line":20,"column":43}},"13":{"start":{"line":21,"column":23},"end":{"line":21,"column":52}},"14":{"start":{"line":22,"column":12},"end":{"line":22,"column":30}},"15":{"start":{"line":23,"column":12},"end":{"line":31,"column":15}},"16":{"start":{"line":24,"column":16},"end":{"line":26,"column":17}},"17":{"start":{"line":25,"column":20},"end":{"line":25,"column":41}},"18":{"start":{"line":27,"column":16},"end":{"line":30,"column":19}},"19":{"start":{"line":35,"column":8},"end":{"line":35,"column":37}},"20":{"start":{"line":38,"column":20},"end":{"line":38,"column":61}},"21":{"start":{"line":39,"column":8},"end":{"line":44,"column":9}},"22":{"start":{"line":40,"column":12},"end":{"line":40,"column":25}},"23":{"start":{"line":43,"column":12},"end":{"line":43,"column":55}},"24":{"start":{"line":47,"column":8},"end":{"line":47,"column":35}},"25":{"start":{"line":50,"column":8},"end":{"line":50,"column":36}},"26":{"start":{"line":53,"column":8},"end":{"line":53,"column":42}},"27":{"start":{"line":56,"column":8},"end":{"line":56,"column":32}},"28":{"start":{"line":59,"column":8},"end":{"line":59,"column":49}},"29":{"start":{"line":62,"column":8},"end":{"line":62,"column":38}},"30":{"start":{"line":65,"column":8},"end":{"line":65,"column":36}},"31":{"start":{"line":68,"column":8},"end":{"line":68,"column":41}},"32":{"start":{"line":71,"column":8},"end":{"line":71,"column":36}},"33":{"start":{"line":74,"column":8},"end":{"line":74,"column":47}},"34":{"start":{"line":77,"column":8},"end":{"line":77,"column":37}},"35":{"start":{"line":80,"column":8},"end":{"line":80,"column":29}},"36":{"start":{"line":83,"column":25},"end":{"line":83,"column":83}},"37":{"start":{"line":84,"column":20},"end":{"line":84,"column":24}},"38":{"start":{"line":85,"column":8},"end":{"line":114,"column":9}},"39":{"start":{"line":86,"column":12},"end":{"line":86,"column":125}},"40":{"start":{"line":89,"column":24},"end":{"line":89,"column":28}},"41":{"start":{"line":90,"column":12},"end":{"line":105,"column":13}},"42":{"start":{"line":91,"column":16},"end":{"line":104,"column":17}},"43":{"start":{"line":93,"column":24},"end":{"line":96,"column":27}},"44":{"start":{"line":97,"column":24},"end":{"line":97,"column":30}},"45":{"start":{"line":99,"column":24},"end":{"line":102,"column":27}},"46":{"start":{"line":103,"column":24},"end":{"line":103,"column":30}},"47":{"start":{"line":106,"column":12},"end":{"line":112,"column":13}},"48":{"start":{"line":107,"column":25},"end":{"line":107,"column":62}},"49":{"start":{"line":108,"column":16},"end":{"line":111,"column":19}},"50":{"start":{"line":113,"column":12},"end":{"line":113,"column":24}},"51":{"start":{"line":115,"column":8},"end":{"line":115,"column":21}},"52":{"start":{"line":118,"column":0},"end":{"line":118,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":25},"end":{"line":14,"column":5}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":14},"end":{"line":17,"column":5}},"line":15},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":14},"end":{"line":33,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":27},"end":{"line":19,"column":28}},"loc":{"start":{"line":19,"column":48},"end":{"line":32,"column":9}},"line":19},"4":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":26},"end":{"line":23,"column":27}},"loc":{"start":{"line":23,"column":52},"end":{"line":31,"column":13}},"line":23},"5":{"name":"(anonymous_5)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":17},"end":{"line":36,"column":5}},"line":34},"6":{"name":"(anonymous_6)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":20},"end":{"line":45,"column":5}},"line":37},"7":{"name":"(anonymous_7)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":24},"end":{"line":48,"column":5}},"line":46},"8":{"name":"(anonymous_8)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":16},"end":{"line":51,"column":5}},"line":49},"9":{"name":"(anonymous_9)","decl":{"start":{"line":52,"column":4},"end":{"line":52,"column":5}},"loc":{"start":{"line":52,"column":19},"end":{"line":54,"column":5}},"line":52},"10":{"name":"(anonymous_10)","decl":{"start":{"line":55,"column":4},"end":{"line":55,"column":5}},"loc":{"start":{"line":55,"column":12},"end":{"line":57,"column":5}},"line":55},"11":{"name":"(anonymous_11)","decl":{"start":{"line":58,"column":4},"end":{"line":58,"column":5}},"loc":{"start":{"line":58,"column":21},"end":{"line":60,"column":5}},"line":58},"12":{"name":"(anonymous_12)","decl":{"start":{"line":61,"column":4},"end":{"line":61,"column":5}},"loc":{"start":{"line":61,"column":18},"end":{"line":63,"column":5}},"line":61},"13":{"name":"(anonymous_13)","decl":{"start":{"line":64,"column":4},"end":{"line":64,"column":5}},"loc":{"start":{"line":64,"column":16},"end":{"line":66,"column":5}},"line":64},"14":{"name":"(anonymous_14)","decl":{"start":{"line":67,"column":4},"end":{"line":67,"column":5}},"loc":{"start":{"line":67,"column":13},"end":{"line":69,"column":5}},"line":67},"15":{"name":"(anonymous_15)","decl":{"start":{"line":70,"column":4},"end":{"line":70,"column":5}},"loc":{"start":{"line":70,"column":15},"end":{"line":72,"column":5}},"line":70},"16":{"name":"(anonymous_16)","decl":{"start":{"line":73,"column":4},"end":{"line":73,"column":5}},"loc":{"start":{"line":73,"column":22},"end":{"line":75,"column":5}},"line":73},"17":{"name":"(anonymous_17)","decl":{"start":{"line":76,"column":4},"end":{"line":76,"column":5}},"loc":{"start":{"line":76,"column":19},"end":{"line":78,"column":5}},"line":76},"18":{"name":"(anonymous_18)","decl":{"start":{"line":79,"column":4},"end":{"line":79,"column":5}},"loc":{"start":{"line":79,"column":23},"end":{"line":81,"column":5}},"line":79},"19":{"name":"(anonymous_19)","decl":{"start":{"line":82,"column":4},"end":{"line":82,"column":5}},"loc":{"start":{"line":82,"column":35},"end":{"line":116,"column":5}},"line":82}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":16},"end":{"line":26,"column":17}},"type":"if","locations":[{"start":{"line":24,"column":16},"end":{"line":26,"column":17}},{"start":{"line":24,"column":16},"end":{"line":26,"column":17}}],"line":24},"1":{"loc":{"start":{"line":39,"column":8},"end":{"line":44,"column":9}},"type":"if","locations":[{"start":{"line":39,"column":8},"end":{"line":44,"column":9}},{"start":{"line":39,"column":8},"end":{"line":44,"column":9}}],"line":39},"2":{"loc":{"start":{"line":43,"column":19},"end":{"line":43,"column":54}},"type":"cond-expr","locations":[{"start":{"line":43,"column":39},"end":{"line":43,"column":47}},{"start":{"line":43,"column":50},"end":{"line":43,"column":54}}],"line":43},"3":{"loc":{"start":{"line":43,"column":19},"end":{"line":43,"column":36}},"type":"binary-expr","locations":[{"start":{"line":43,"column":19},"end":{"line":43,"column":24}},{"start":{"line":43,"column":28},"end":{"line":43,"column":36}}],"line":43},"4":{"loc":{"start":{"line":90,"column":12},"end":{"line":105,"column":13}},"type":"if","locations":[{"start":{"line":90,"column":12},"end":{"line":105,"column":13}},{"start":{"line":90,"column":12},"end":{"line":105,"column":13}}],"line":90},"5":{"loc":{"start":{"line":90,"column":16},"end":{"line":90,"column":29}},"type":"binary-expr","locations":[{"start":{"line":90,"column":16},"end":{"line":90,"column":18}},{"start":{"line":90,"column":22},"end":{"line":90,"column":29}}],"line":90},"6":{"loc":{"start":{"line":91,"column":16},"end":{"line":104,"column":17}},"type":"switch","locations":[{"start":{"line":92,"column":20},"end":{"line":97,"column":30}},{"start":{"line":98,"column":20},"end":{"line":103,"column":30}}],"line":91},"7":{"loc":{"start":{"line":106,"column":12},"end":{"line":112,"column":13}},"type":"if","locations":[{"start":{"line":106,"column":12},"end":{"line":112,"column":13}},{"start":{"line":106,"column":12},"end":{"line":112,"column":13}}],"line":106}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Request.ts","sources":["/development/breautek/storm/src/Request.ts"],"names":[],"mappings":"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","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nimport * as express from 'express';\r\nimport { IncomingHttpHeaders } from 'http';\r\nimport {Writable} from 'stream';\r\nimport * as formidable from 'formidable';\r\nimport {IFormData} from './IFormData';\r\nimport { IAuthTokenData } from './IAuthTokenData';\r\nimport { getInstance } from './instance';\r\nimport { Token } from './Token';\r\nimport { JWTError } from './JWTError';\r\nimport { ResponseData } from './ResponseData';\r\nimport {StatusCode} from './StatusCode';\r\nimport { InternalError } from './InternalError';\r\n\r\nexport interface IParameterMap {\r\n [key: string]: string;\r\n}\r\n\r\nexport class Request<TBody = any, TAuthToken extends IAuthTokenData = IAuthTokenData> {\r\n private _request: express.Request;\r\n\r\n public constructor(request: express.Request) {\r\n this._request = request;\r\n }\r\n\r\n public getBody(): TBody {\r\n return this._request.body;\r\n }\r\n\r\n public getForm(): Promise<IFormData> {\r\n return new Promise<IFormData>((resolve, reject) => {\r\n let r: express.Request = this.getRequestSource();\r\n let form: formidable.IncomingForm = new formidable.IncomingForm();\r\n form.hash = 'md5';\r\n\r\n form.parse(r, (error: any, fields: formidable.Fields, files: formidable.Files): any => {\r\n if (error) {\r\n return reject(error);\r\n }\r\n\r\n return resolve({\r\n fields,\r\n files: files\r\n });\r\n });\r\n });\r\n }\r\n\r\n public getHeaders(): IncomingHttpHeaders {\r\n return this._request.headers;\r\n }\r\n\r\n public getHeader(name: string): string {\r\n let value: string | Array<string> = this._request.headers[name.toLowerCase()];\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n else {\r\n return value && value[0] ? value[0] : null;\r\n }\r\n }\r\n\r\n public getQueryVariables(): any {\r\n return this._request.query;\r\n }\r\n\r\n public getParams(): IParameterMap {\r\n return this._request.params;\r\n }\r\n\r\n public getParam(name: string): string {\r\n return this._request.params[name];\r\n }\r\n\r\n public getIP(): string {\r\n return this._request.ip;\r\n }\r\n\r\n public getForwardedIP(): string {\r\n return this.getHeader('X-Forwarded-For');\r\n }\r\n\r\n public getHostname(): string {\r\n return this._request.hostname;\r\n }\r\n\r\n public getMethod(): string {\r\n return this._request.method;\r\n }\r\n\r\n public getURL(): string {\r\n return this._request.originalUrl;\r\n }\r\n\r\n public isSecure(): boolean {\r\n return this._request.secure;\r\n }\r\n\r\n public pipe(destination: Writable): any {\r\n return this._request.pipe(destination);\r\n }\r\n\r\n public unpipe(source: Writable): void {\r\n this._request.unpipe(source);\r\n }\r\n\r\n public getRequestSource(): express.Request {\r\n return this._request;\r\n }\r\n\r\n public async getAuthenticationToken(): Promise<TAuthToken> {\r\n let authHeader: string = getInstance().getConfig().authentication_header;\r\n let tdata: TAuthToken = null;\r\n try {\r\n tdata = <TAuthToken>(await getInstance().getTokenManager().verify(new Token(this.getHeader(authHeader))));\r\n }\r\n catch (ex) {\r\n let error: ResponseData = null;\r\n if (ex && ex.name) {\r\n switch (ex.name) {\r\n case JWTError.ERR_EXPIRED:\r\n error = new ResponseData(StatusCode.ERR_UNAUTHORIZED, {\r\n code: ex.name,\r\n reason: ex.message\r\n });\r\n break;\r\n case JWTError.ERR_GENERIC:\r\n error = new ResponseData(StatusCode.ERR_UNAUTHORIZED, {\r\n code: ex.name,\r\n reason : ex.message\r\n });\r\n break;\r\n }\r\n }\r\n\r\n if (error === null) {\r\n let ie: InternalError = new InternalError(ex);\r\n error = new ResponseData(ie.getHTTPCode(), {\r\n code: ie.getCode(),\r\n reason: ie.getMessage()\r\n });\r\n }\r\n\r\n throw error;\r\n }\r\n\r\n return tdata;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f4d1088f8152d4e05603f5130f5d715c63a62292","contentHash":"d49acaa420c7e325f36f2d082fe1702d462922ce6bc955a6c7c6c65a06e72ff3"},"/development/breautek/storm/src/Token.ts":{"path":"/development/breautek/storm/src/Token.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":36}},"3":{"start":{"line":9,"column":8},"end":{"line":9,"column":31}},"4":{"start":{"line":12,"column":0},"end":{"line":12,"column":22}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":27},"end":{"line":7,"column":5}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":19},"end":{"line":10,"column":5}},"line":8}},"branchMap":{},"s":{"0":1,"1":1,"2":0,"3":0,"4":1},"f":{"0":0,"1":0},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Token.ts","sources":["/development/breautek/storm/src/Token.ts"],"names":[],"mappings":";;;AAgBA,MAAa,KAAK;IAGd,YAAY,SAAiB;QACzB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ;AAVD,sBAUC","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nexport class Token {\r\n private _signature: string;\r\n\r\n constructor(signature: string) {\r\n this._signature = signature;\r\n }\r\n\r\n public getSignature(): string {\r\n return this._signature;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"58ce526d990100b0a47bcabad073543b26e442bf","contentHash":"2c76f9641dc1ce755e16a12519f4ed5ab3c209ea93323dbaf883992f23ba0a9f"},"/development/breautek/storm/src/JWTError.ts":{"path":"/development/breautek/storm/src/JWTError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":5,"column":0},"end":{"line":8,"column":59}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":50}},"4":{"start":{"line":7,"column":4},"end":{"line":7,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":1},"end":{"line":5,"column":2}},"loc":{"start":{"line":5,"column":21},"end":{"line":8,"column":1}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":14},"end":{"line":8,"column":57}},"type":"binary-expr","locations":[{"start":{"line":8,"column":14},"end":{"line":8,"column":30}},{"start":{"line":8,"column":35},"end":{"line":8,"column":56}}],"line":8}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/JWTError.ts","sources":["/development/breautek/storm/src/JWTError.ts"],"names":[],"mappings":";;;AAgBA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,6CAAiC,CAAA;IACjC,6CAAiC,CAAA;AACrC,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB","sourcesContent":["/*\n Copyright 2017-2021 Norman Breau\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\nexport enum JWTError {\n ERR_EXPIRED = 'TokenExpiredError',\n ERR_GENERIC = 'JsonWebTokenError'\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"52baf598a2739474a8d378762a5da217317705d8","contentHash":"5853738e8d975d6c625d8376206b07928c785923b58fd2241861d66d3619c108"},"/development/breautek/storm/src/ResponseData.ts":{"path":"/development/breautek/storm/src/ResponseData.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":30}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":26}},"4":{"start":{"line":10,"column":8},"end":{"line":10,"column":28}},"5":{"start":{"line":13,"column":8},"end":{"line":13,"column":26}},"6":{"start":{"line":16,"column":0},"end":{"line":16,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":30},"end":{"line":8,"column":5}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":16},"end":{"line":11,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":14},"end":{"line":14,"column":5}},"line":12}},"branchMap":{},"s":{"0":1,"1":1,"2":0,"3":0,"4":0,"5":0,"6":1},"f":{"0":0,"1":0,"2":0},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ResponseData.ts","sources":["/development/breautek/storm/src/ResponseData.ts"],"names":[],"mappings":";;;AAkBA,MAAa,YAAY;IAIrB,YAAmB,MAAkB,EAAE,IAAY;QAC/C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;CACJ;AAhBD,oCAgBC","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class ResponseData<TData = any> {\r\n private _status: StatusCode;\r\n private _data: TData;\r\n\r\n public constructor(status: StatusCode, data?: TData) {\r\n this._status = status;\r\n this._data = data;\r\n }\r\n\r\n public getStatus(): StatusCode {\r\n return this._status;\r\n }\r\n\r\n public getData(): TData {\r\n return this._data;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ff09ff67e2e67c83ff906496324aad488b4b1ff1","contentHash":"e9bc7b41cac98fcb0af0e09827a8e23ec94aacacd6945fe43cc22f123a7f5546"},"/development/breautek/storm/src/StatusCode.ts":{"path":"/development/breautek/storm/src/StatusCode.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":5,"column":0},"end":{"line":54,"column":65}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":68}},"4":{"start":{"line":7,"column":4},"end":{"line":7,"column":90}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":72}},"6":{"start":{"line":9,"column":4},"end":{"line":9,"column":46}},"7":{"start":{"line":10,"column":4},"end":{"line":10,"column":62}},"8":{"start":{"line":11,"column":4},"end":{"line":11,"column":64}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":74}},"10":{"start":{"line":13,"column":4},"end":{"line":13,"column":68}},"11":{"start":{"line":14,"column":4},"end":{"line":14,"column":74}},"12":{"start":{"line":15,"column":4},"end":{"line":15,"column":78}},"13":{"start":{"line":16,"column":4},"end":{"line":16,"column":72}},"14":{"start":{"line":17,"column":4},"end":{"line":17,"column":80}},"15":{"start":{"line":18,"column":4},"end":{"line":18,"column":84}},"16":{"start":{"line":19,"column":4},"end":{"line":19,"column":88}},"17":{"start":{"line":20,"column":4},"end":{"line":20,"column":64}},"18":{"start":{"line":21,"column":4},"end":{"line":21,"column":72}},"19":{"start":{"line":22,"column":4},"end":{"line":22,"column":78}},"20":{"start":{"line":23,"column":4},"end":{"line":23,"column":72}},"21":{"start":{"line":24,"column":4},"end":{"line":24,"column":62}},"22":{"start":{"line":25,"column":4},"end":{"line":25,"column":72}},"23":{"start":{"line":26,"column":4},"end":{"line":26,"column":74}},"24":{"start":{"line":27,"column":4},"end":{"line":27,"column":82}},"25":{"start":{"line":28,"column":4},"end":{"line":28,"column":68}},"26":{"start":{"line":29,"column":4},"end":{"line":29,"column":68}},"27":{"start":{"line":30,"column":4},"end":{"line":30,"column":72}},"28":{"start":{"line":31,"column":4},"end":{"line":31,"column":78}},"29":{"start":{"line":32,"column":4},"end":{"line":32,"column":88}},"30":{"start":{"line":33,"column":4},"end":{"line":33,"column":80}},"31":{"start":{"line":34,"column":4},"end":{"line":34,"column":66}},"32":{"start":{"line":35,"column":4},"end":{"line":35,"column":58}},"33":{"start":{"line":36,"column":4},"end":{"line":36,"column":80}},"34":{"start":{"line":37,"column":4},"end":{"line":37,"column":88}},"35":{"start":{"line":38,"column":4},"end":{"line":38,"column":84}},"36":{"start":{"line":39,"column":4},"end":{"line":39,"column":90}},"37":{"start":{"line":40,"column":4},"end":{"line":40,"column":94}},"38":{"start":{"line":41,"column":4},"end":{"line":41,"column":108}},"39":{"start":{"line":42,"column":4},"end":{"line":42,"column":86}},"40":{"start":{"line":43,"column":4},"end":{"line":43,"column":62}},"41":{"start":{"line":44,"column":4},"end":{"line":44,"column":82}},"42":{"start":{"line":45,"column":4},"end":{"line":45,"column":92}},"43":{"start":{"line":46,"column":4},"end":{"line":46,"column":84}},"44":{"start":{"line":47,"column":4},"end":{"line":47,"column":100}},"45":{"start":{"line":48,"column":4},"end":{"line":48,"column":60}},"46":{"start":{"line":49,"column":4},"end":{"line":49,"column":70}},"47":{"start":{"line":50,"column":4},"end":{"line":50,"column":90}},"48":{"start":{"line":51,"column":4},"end":{"line":51,"column":82}},"49":{"start":{"line":52,"column":4},"end":{"line":52,"column":98}},"50":{"start":{"line":53,"column":4},"end":{"line":53,"column":74}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":1},"end":{"line":5,"column":2}},"loc":{"start":{"line":5,"column":23},"end":{"line":54,"column":1}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":54,"column":16},"end":{"line":54,"column":63}},"type":"binary-expr","locations":[{"start":{"line":54,"column":16},"end":{"line":54,"column":34}},{"start":{"line":54,"column":39},"end":{"line":54,"column":62}}],"line":54}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/StatusCode.ts","sources":["/development/breautek/storm/src/StatusCode.ts"],"names":[],"mappings":";;;AAgBA,IAAY,UAqDX;AArDD,WAAY,UAAU;IAClB,+DAAmB,CAAA;IACnB,qFAA8B,CAAA;IAC9B,mEAAqB,CAAA;IAErB,yCAAQ,CAAA;IACR,yDAAgB,CAAA;IAChB,2DAAiB,CAAA;IACjB,qEAAsB,CAAA;IACtB,+DAAmB,CAAA;IACnB,qEAAsB,CAAA;IACtB,yEAAwB,CAAA;IACxB,mEAAqB,CAAA;IACrB,2EAAyB,CAAA;IAEzB,+EAA2B,CAAA;IAC3B,mFAA6B,CAAA;IAC7B,2DAAiB,CAAA;IACjB,mEAAqB,CAAA;IACrB,yEAAwB,CAAA;IACxB,mEAAqB,CAAA;IACrB,yDAAgB,CAAA;IAEhB,mEAAqB,CAAA;IACrB,qEAAsB,CAAA;IACtB,6EAA0B,CAAA;IAC1B,+DAAmB,CAAA;IACnB,+DAAmB,CAAA;IACnB,mEAAqB,CAAA;IACrB,yEAAwB,CAAA;IACxB,mFAA6B,CAAA;IAC7B,2EAAyB,CAAA;IACzB,6DAAiB,CAAA;IACjB,qDAAc,CAAA;IACd,2EAAyB,CAAA;IACzB,mFAA6B,CAAA;IAC7B,+EAA2B,CAAA;IAC3B,qFAA8B,CAAA;IAC9B,yFAAgC,CAAA;IAChC,uGAAuC,CAAA;IACvC,iFAA4B,CAAA;IAC5B,yDAAgB,CAAA;IAChB,6EAA0B,CAAA;IAC1B,uFAA+B,CAAA;IAC/B,+EAA2B,CAAA;IAC3B,+FAAmC,CAAA;IACnC,uDAAe,CAAA;IAEf,iEAAoB,CAAA;IACpB,qFAA8B,CAAA;IAC9B,6EAA0B,CAAA;IAC1B,6FAAkC,CAAA;IAClC,qEAAsB,CAAA;AAC1B,CAAC,EArDW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAqDrB","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nexport enum StatusCode {\r\n INFO_CONTINUE = 100,\r\n INFO_SWITCHING_PROTOCOLS = 101,\r\n INFO_PROCESSING = 102,\r\n\r\n OK = 200,\r\n OK_CREATED = 201,\r\n OK_ACCEPTED = 202,\r\n OK_NON_AUTH_INFO = 203,\r\n OK_NO_CONTENT = 204,\r\n OK_RESET_CONTENT = 205,\r\n OK_PARTIAL_CONTENT = 206,\r\n OK_MULTI_STATUS = 207,\r\n OK_ALREADY_REPORTED = 208,\r\n\r\n REDIR_MULTIPLE_CHOICE = 300,\r\n REDIR_MOVED_PERMANENTLY = 301,\r\n REDIR_FOUND = 301,\r\n REDIR_SEE_OTHER = 303,\r\n REDIR_NOT_MODIFIED = 304,\r\n REDIR_USE_PROXY = 305,\r\n REDIR_TEMP = 307,\r\n\r\n ERR_BAD_REQUEST = 400,\r\n ERR_UNAUTHORIZED = 401,\t\t// Used when the user needs to authorize.\r\n ERR_PAYMENT_REQUIRED = 402,\r\n ERR_FORBIDDEN = 403,\t\t// USed when the user is authorized but is not allowed access.\r\n ERR_NOT_FOUND = 404,\r\n ERR_NOT_ALLOWED = 405,\r\n ERR_NOT_ACCEPTABLE = 406,\r\n ERR_PROXY_AUTH_REQUIRED = 407,\r\n ERR_REQUEST_TIMEOUT = 408,\r\n ERR_CONFLICT= 409,\r\n ERR_GONE = 410,\r\n ERR_LENGTH_REQUIRED = 411,\r\n ERR_PRECONDITION_FAILED = 412,\r\n ERR_REQUEST_TOO_LARGE = 413,\r\n ERR_REQUEST_URI_TOO_LONG = 414,\r\n ERR_UNSUPPORTED_MEDIA_TYPE = 415,\r\n ERR_REQUEST_RANGE_NOT_SATISFIABLE = 416,\r\n ERR_EXPECTATION_FAILED = 417,\r\n ERR_TEAPOT = 418,\r\n ERR_UPGRADE_REQUIRED = 426,\r\n ERR_PRECONDITION_REQUIRED = 428,\r\n ERR_TOO_MANY_REQUESTS = 429,\r\n ERR_REQUEST_HEADERS_TOO_LARGE = 431,\r\n ERR_LEGAL = 451,\r\n\r\n INTERNAL_ERROR = 500,\r\n INTERNAL_NOT_IMPLEMENTED = 501,\r\n INTERNAL_BAD_GATEWAY = 502,\r\n INTERNAL_SERVICE_UNAVAILABLE = 503,\r\n INTERNAL_TIMEOUT = 504\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d6ad336df6dc19448baa9a62978f0e2672b304dc","contentHash":"58a89acac443def46cd91bbb69ae1b0f72fd0615dd0daac4d26ada58e84f366b"},"/development/breautek/storm/src/InternalError.ts":{"path":"/development/breautek/storm/src/InternalError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":44}},"3":{"start":{"line":5,"column":20},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":21},"end":{"line":6,"column":44}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":23}},"6":{"start":{"line":12,"column":8},"end":{"line":12,"column":73}},"7":{"start":{"line":15,"column":8},"end":{"line":15,"column":46}},"8":{"start":{"line":18,"column":8},"end":{"line":18,"column":54}},"9":{"start":{"line":21,"column":0},"end":{"line":21,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":25},"end":{"line":10,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":17},"end":{"line":13,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":14},"end":{"line":16,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":18},"end":{"line":19,"column":5}},"line":17}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/InternalError.ts","sources":["/development/breautek/storm/src/InternalError.ts"],"names":[],"mappings":";;;AAgBA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAExC,MAAa,aAAc,SAAQ,uBAAe;IAE9C,YAAmB,OAAa;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAEM,UAAU;QACb,OAAO,yDAAyD,CAAC;IACrE,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,cAAc,CAAC;IACrC,CAAC;CACJ;AAjBD,sCAiBC","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nimport {StormError} from './StormError';\r\nimport {ErrorCode} from './ErrorCode';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class InternalError extends StormError<any> {\r\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n public constructor(details?: any) {\r\n super(details);\r\n }\r\n\r\n public getMessage(): string {\r\n return `An internal server error has occured. Please try again.`;\r\n }\r\n\r\n public getCode(): ErrorCode {\r\n return ErrorCode.INTERNAL;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.INTERNAL_ERROR;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3005450d266674eebc9c0f670677b5f78a33140b","contentHash":"54e9d2a49a5e9b2a4caf7b003f523915f03e5f541340d9f5c1de3d4101968e98"},"/development/breautek/storm/src/StormError.ts":{"path":"/development/breautek/storm/src/StormError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":6,"column":12},"end":{"line":6,"column":24}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":16}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":32}},"7":{"start":{"line":11,"column":21},"end":{"line":11,"column":57}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":72}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":51}},"10":{"start":{"line":16,"column":8},"end":{"line":16,"column":18}},"11":{"start":{"line":19,"column":8},"end":{"line":19,"column":29}},"12":{"start":{"line":22,"column":8},"end":{"line":22,"column":54}},"13":{"start":{"line":25,"column":8},"end":{"line":30,"column":10}},"14":{"start":{"line":33,"column":0},"end":{"line":33,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":25},"end":{"line":14,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":23},"end":{"line":17,"column":5}},"line":15},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":24},"end":{"line":20,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":18},"end":{"line":23,"column":5}},"line":21},"4":{"name":"(anonymous_4)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":23},"end":{"line":31,"column":5}},"line":24}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/StormError.ts","sources":["/development/breautek/storm/src/StormError.ts"],"names":[],"mappings":";;;AAgBA,yCAAuC;AAEvC,6CAAwC;AAExC,MAAM,GAAG,GAAW,YAAY,CAAC;AAajC,MAAsB,UAAgC,SAAQ,KAAK;IAG/D,YAAmB,OAAuB;QACtC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,MAAM,GAAW,sBAAW,EAAE,CAAC,SAAS,EAAE,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC/C,CAAC;IAaM,gBAAgB;QACnB,OAAO,EAAE,CAAC;IACd,CAAC;IAMM,iBAAiB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,cAAc,CAAC;IACrC,CAAC;IAEM,gBAAgB;QACnB,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC3B,OAAO,EAAG,IAAI,CAAC,UAAU,EAAE;YAC3B,IAAI,EAAG,IAAI,CAAC,OAAO,EAAE;YACrB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;SACnC,CAAC;IACN,CAAC;CACJ;AAhDD,gCAgDC","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nimport {getInstance} from './instance';\r\nimport {Logger} from '@arashi/logger';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nconst TAG: string = 'StormError';\r\n\r\nexport interface IAdditionalErrorDetails {\r\n [key: string]: any;\r\n}\r\n\r\nexport interface IErrorResponse {\r\n name: string;\r\n message: string;\r\n code: number;\r\n details: IAdditionalErrorDetails;\r\n}\r\n\r\nexport abstract class StormError<TErrorDetails = any> extends Error {\r\n private _details: TErrorDetails;\r\n\r\n public constructor(details?: TErrorDetails) {\r\n super();\r\n\r\n this._details = details;\r\n\r\n let logger: Logger = getInstance().getLogger();\r\n logger.error(TAG, `${this.getMessage()}... See details below:`);\r\n logger.info(TAG, this.getPrivateDetails());\r\n }\r\n\r\n public abstract getMessage(): string;\r\n public abstract getCode(): number;\r\n\r\n // public getDetails(): any {\r\n // getInstance().getLogger().deprecate('getPrivateDetails()');\r\n // return this.getPrivateDetails();\r\n // }\r\n\r\n /**\r\n * Sends details to the client.\r\n */\r\n public getPublicDetails(): IAdditionalErrorDetails {\r\n return {};\r\n }\r\n\r\n /**\r\n * Private details are only logged to the server log.\r\n * They are kept secret from the client.\r\n */\r\n public getPrivateDetails(): TErrorDetails {\r\n return this._details;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.INTERNAL_ERROR;\r\n }\r\n\r\n public getErrorResponse(): IErrorResponse {\r\n return {\r\n name: this.constructor.name,\r\n message : this.getMessage(),\r\n code : this.getCode(),\r\n details: this.getPublicDetails()\r\n };\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3ff3db76a6ab74e2b9290c71fbf8d0da0bb6cf6e","contentHash":"83f1b00863a09dd0e6134c974d4e89715466a49ffeef7909019d81d88ee43d46"},"/development/breautek/storm/src/ErrorCode.ts":{"path":"/development/breautek/storm/src/ErrorCode.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":27}},"2":{"start":{"line":5,"column":0},"end":{"line":14,"column":62}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":54}},"4":{"start":{"line":7,"column":4},"end":{"line":7,"column":72}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":64}},"6":{"start":{"line":9,"column":4},"end":{"line":9,"column":76}},"7":{"start":{"line":10,"column":4},"end":{"line":10,"column":64}},"8":{"start":{"line":11,"column":4},"end":{"line":11,"column":68}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":76}},"10":{"start":{"line":13,"column":4},"end":{"line":13,"column":84}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":1},"end":{"line":5,"column":2}},"loc":{"start":{"line":5,"column":22},"end":{"line":14,"column":1}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":15},"end":{"line":14,"column":60}},"type":"binary-expr","locations":[{"start":{"line":14,"column":15},"end":{"line":14,"column":32}},{"start":{"line":14,"column":37},"end":{"line":14,"column":59}}],"line":14}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ErrorCode.ts","sources":["/development/breautek/storm/src/ErrorCode.ts"],"names":[],"mappings":";;;AAgBA,IAAY,SASX;AATD,WAAY,SAAS;IACjB,iDAAQ,CAAA;IACR,mEAAiB,CAAA;IACjB,2DAAa,CAAA;IACb,uEAAmB,CAAA;IACnB,2DAAa,CAAA;IACb,+DAAe,CAAA;IACf,uEAAmB,CAAA;IACnB,+EAAuB,CAAA;AAC3B,CAAC,EATW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QASpB","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nexport enum ErrorCode {\r\n INTERNAL,\r\n MISSING_PARAMETER,\r\n EXPIRED_TOKEN,\r\n INVALID_CREDENTIALS,\r\n INVALID_VALUE,\r\n DUPLICATE_ENTRY,\r\n UNAUTHORIZED_ACCESS,\r\n INSUFFICIENT_DISK_SPACE\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6f059622cf8bf1326df8d96a3f5471d55c44a2de","contentHash":"521b7184df860f70e1e1271d499bfd79d26c0c938b120d290d651ed047a19dd8"},"/development/breautek/storm/src/Response.ts":{"path":"/development/breautek/storm/src/Response.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":44}},"3":{"start":{"line":5,"column":23},"end":{"line":5,"column":48}},"4":{"start":{"line":6,"column":21},"end":{"line":6,"column":44}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":50}},"6":{"start":{"line":8,"column":19},"end":{"line":8,"column":40}},"7":{"start":{"line":9,"column":12},"end":{"line":9,"column":22}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":34}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":35}},"10":{"start":{"line":14,"column":8},"end":{"line":14,"column":38}},"11":{"start":{"line":17,"column":8},"end":{"line":17,"column":38}},"12":{"start":{"line":18,"column":8},"end":{"line":18,"column":20}},"13":{"start":{"line":21,"column":8},"end":{"line":21,"column":41}},"14":{"start":{"line":24,"column":8},"end":{"line":24,"column":37}},"15":{"start":{"line":27,"column":8},"end":{"line":35,"column":9}},"16":{"start":{"line":28,"column":12},"end":{"line":28,"column":66}},"17":{"start":{"line":30,"column":13},"end":{"line":35,"column":9}},"18":{"start":{"line":31,"column":12},"end":{"line":31,"column":77}},"19":{"start":{"line":34,"column":12},"end":{"line":34,"column":38}},"20":{"start":{"line":36,"column":8},"end":{"line":36,"column":169}},"21":{"start":{"line":39,"column":8},"end":{"line":41,"column":11}},"22":{"start":{"line":40,"column":12},"end":{"line":40,"column":42}},"23":{"start":{"line":42,"column":8},"end":{"line":42,"column":36}},"24":{"start":{"line":45,"column":8},"end":{"line":50,"column":9}},"25":{"start":{"line":46,"column":12},"end":{"line":46,"column":66}},"26":{"start":{"line":49,"column":12},"end":{"line":49,"column":55}},"27":{"start":{"line":51,"column":8},"end":{"line":51,"column":24}},"28":{"start":{"line":54,"column":8},"end":{"line":54,"column":39}},"29":{"start":{"line":57,"column":8},"end":{"line":57,"column":41}},"30":{"start":{"line":60,"column":8},"end":{"line":60,"column":42}},"31":{"start":{"line":63,"column":8},"end":{"line":76,"column":9}},"32":{"start":{"line":64,"column":12},"end":{"line":72,"column":13}},"33":{"start":{"line":65,"column":16},"end":{"line":65,"column":33}},"34":{"start":{"line":67,"column":17},"end":{"line":72,"column":13}},"35":{"start":{"line":68,"column":16},"end":{"line":68,"column":33}},"36":{"start":{"line":71,"column":16},"end":{"line":71,"column":68}},"37":{"start":{"line":75,"column":12},"end":{"line":75,"column":64}},"38":{"start":{"line":79,"column":0},"end":{"line":79,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":38},"end":{"line":15,"column":5}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":22},"end":{"line":19,"column":5}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":16},"end":{"line":22,"column":5}},"line":20},"3":{"name":"(anonymous_3)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":18},"end":{"line":25,"column":5}},"line":23},"4":{"name":"(anonymous_4)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":15},"end":{"line":37,"column":5}},"line":26},"5":{"name":"(anonymous_5)","decl":{"start":{"line":38,"column":4},"end":{"line":38,"column":5}},"loc":{"start":{"line":38,"column":17},"end":{"line":43,"column":5}},"line":38},"6":{"name":"(anonymous_6)","decl":{"start":{"line":39,"column":25},"end":{"line":39,"column":26}},"loc":{"start":{"line":39,"column":31},"end":{"line":41,"column":9}},"line":39},"7":{"name":"(anonymous_7)","decl":{"start":{"line":44,"column":4},"end":{"line":44,"column":5}},"loc":{"start":{"line":44,"column":18},"end":{"line":52,"column":5}},"line":44},"8":{"name":"(anonymous_8)","decl":{"start":{"line":53,"column":4},"end":{"line":53,"column":5}},"loc":{"start":{"line":53,"column":26},"end":{"line":55,"column":5}},"line":53},"9":{"name":"(anonymous_9)","decl":{"start":{"line":56,"column":4},"end":{"line":56,"column":5}},"loc":{"start":{"line":56,"column":29},"end":{"line":58,"column":5}},"line":56},"10":{"name":"(anonymous_10)","decl":{"start":{"line":59,"column":4},"end":{"line":59,"column":5}},"loc":{"start":{"line":59,"column":20},"end":{"line":61,"column":5}},"line":59},"11":{"name":"(anonymous_11)","decl":{"start":{"line":62,"column":4},"end":{"line":62,"column":5}},"loc":{"start":{"line":62,"column":17},"end":{"line":77,"column":5}},"line":62}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":8},"end":{"line":35,"column":9}},"type":"if","locations":[{"start":{"line":27,"column":8},"end":{"line":35,"column":9}},{"start":{"line":27,"column":8},"end":{"line":35,"column":9}}],"line":27},"1":{"loc":{"start":{"line":30,"column":13},"end":{"line":35,"column":9}},"type":"if","locations":[{"start":{"line":30,"column":13},"end":{"line":35,"column":9}},{"start":{"line":30,"column":13},"end":{"line":35,"column":9}}],"line":30},"2":{"loc":{"start":{"line":45,"column":8},"end":{"line":50,"column":9}},"type":"if","locations":[{"start":{"line":45,"column":8},"end":{"line":50,"column":9}},{"start":{"line":45,"column":8},"end":{"line":50,"column":9}}],"line":45},"3":{"loc":{"start":{"line":63,"column":8},"end":{"line":76,"column":9}},"type":"if","locations":[{"start":{"line":63,"column":8},"end":{"line":76,"column":9}},{"start":{"line":63,"column":8},"end":{"line":76,"column":9}}],"line":63},"4":{"loc":{"start":{"line":64,"column":12},"end":{"line":72,"column":13}},"type":"if","locations":[{"start":{"line":64,"column":12},"end":{"line":72,"column":13}},{"start":{"line":64,"column":12},"end":{"line":72,"column":13}}],"line":64},"5":{"loc":{"start":{"line":67,"column":17},"end":{"line":72,"column":13}},"type":"if","locations":[{"start":{"line":67,"column":17},"end":{"line":72,"column":13}},{"start":{"line":67,"column":17},"end":{"line":72,"column":13}}],"line":67}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Response.ts","sources":["/development/breautek/storm/src/Response.ts"],"names":[],"mappings":"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","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nimport {StatusCode} from './StatusCode';\r\nimport {ResponseData} from './ResponseData';\r\nimport {StormError, IErrorResponse} from './StormError';\r\nimport * as express from 'express';\r\nimport { InternalError } from './InternalError';\r\nimport { getInstance } from './instance';\r\n\r\nconst TAG: string = 'Response';\r\n\r\nexport type SendableData = ResponseData | Error | IErrorResponse | any;\r\n\r\nexport interface IHeaderKeyValuePair {\r\n [key: string]: string;\r\n}\r\n\r\nexport class Response<TResponse = SendableData, TErrorResponse = Error | IErrorResponse | string> {\r\n private _response: express.Response;\r\n private _created: Date;\r\n private _requestURL: string;\r\n\r\n public constructor(response: express.Response, requestURL: string) {\r\n this._response = response;\r\n this._created = new Date();\r\n this._requestURL = requestURL;\r\n }\r\n\r\n public setStatus(status: StatusCode): Response<TResponse, TErrorResponse> {\r\n this._response.status(status);\r\n return this;\r\n }\r\n\r\n public getStatus(): StatusCode {\r\n return this._response.statusCode;\r\n }\r\n\r\n public redirect(url: string): void {\r\n this._response.redirect(url);\r\n }\r\n\r\n public send(data?: TResponse | TErrorResponse | StormError | IErrorResponse): void {\r\n if (data instanceof ResponseData) {\r\n this.setStatus(data.getStatus()).send(data.getData());\r\n }\r\n else if (data instanceof StormError) {\r\n this.setStatus(data.getHTTPCode()).send(data.getErrorResponse());\r\n }\r\n else {\r\n this._response.send(data);\r\n }\r\n \r\n getInstance().getLogger().info(TAG, `API ${this._requestURL} (${this.getStatus()}) responded in ${new Date().getTime() - this._created.getTime()}ms`);\r\n }\r\n\r\n public pipe(stream: NodeJS.ReadableStream): void {\r\n stream.on('end', () => {\r\n stream.unpipe(this._response);\r\n });\r\n \r\n stream.pipe(this._response);\r\n }\r\n\r\n public success(data?: TResponse): void {\r\n if (data === undefined) {\r\n this.setStatus(StatusCode.OK_NO_CONTENT);\r\n }\r\n else {\r\n this.setStatus(StatusCode.OK);\r\n }\r\n\r\n this.send(data);\r\n }\r\n\r\n public setHeader(key: string, value: string): void {\r\n this._response.set(key, value);\r\n }\r\n\r\n public setHeaders(keyValuePair: IHeaderKeyValuePair): void {\r\n this._response.set(keyValuePair);\r\n }\r\n\r\n public isHeadersSent(): boolean {\r\n return this._response.headersSent;\r\n }\r\n\r\n public error(error?: TErrorResponse | ResponseData<TErrorResponse>): void {\r\n if (error) {\r\n if (error instanceof StormError) {\r\n this.send(error);\r\n }\r\n else if (error instanceof ResponseData) {\r\n // If it was not ResponseData<TResponse> then\r\n // the method signature should have caught it\r\n this.send((<TErrorResponse><unknown>error));\r\n }\r\n else {\r\n this.send(new InternalError(error));\r\n }\r\n }\r\n else {\r\n this.send(new InternalError(error));\r\n }\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a27b32ef5e6c34e02212756cc14d52897394adc0","contentHash":"6af4db8dc5ba962a6f9d6402b65486226770e7a1db2498634a95dc939721d0ac"},"/development/breautek/storm/src/ConfigLoader.ts":{"path":"/development/breautek/storm/src/ConfigLoader.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":30}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":13},"end":{"line":6,"column":28}},"5":{"start":{"line":7,"column":19},"end":{"line":7,"column":40}},"6":{"start":{"line":8,"column":14},"end":{"line":8,"column":28}},"7":{"start":{"line":9,"column":20},"end":{"line":9,"column":43}},"8":{"start":{"line":10,"column":29},"end":{"line":10,"column":60}},"9":{"start":{"line":11,"column":12},"end":{"line":11,"column":26}},"10":{"start":{"line":15,"column":21},"end":{"line":15,"column":46}},"11":{"start":{"line":16,"column":8},"end":{"line":61,"column":11}},"12":{"start":{"line":17,"column":12},"end":{"line":17,"column":55}},"13":{"start":{"line":18,"column":25},"end":{"line":18,"column":27}},"14":{"start":{"line":19,"column":24},"end":{"line":19,"column":60}},"15":{"start":{"line":20,"column":24},"end":{"line":20,"column":66}},"16":{"start":{"line":24,"column":12},"end":{"line":24,"column":62}},"17":{"start":{"line":25,"column":12},"end":{"line":25,"column":63}},"18":{"start":{"line":26,"column":12},"end":{"line":26,"column":65}},"19":{"start":{"line":27,"column":12},"end":{"line":27,"column":86}},"20":{"start":{"line":28,"column":12},"end":{"line":28,"column":57}},"21":{"start":{"line":29,"column":12},"end":{"line":39,"column":13}},"22":{"start":{"line":30,"column":16},"end":{"line":30,"column":35}},"23":{"start":{"line":31,"column":16},"end":{"line":31,"column":57}},"24":{"start":{"line":34,"column":16},"end":{"line":34,"column":55}},"25":{"start":{"line":35,"column":16},"end":{"line":37,"column":19}},"26":{"start":{"line":36,"column":20},"end":{"line":36,"column":63}},"27":{"start":{"line":38,"column":16},"end":{"line":38,"column":23}},"28":{"start":{"line":40,"column":12},"end":{"line":40,"column":64}},"29":{"start":{"line":41,"column":12},"end":{"line":48,"column":13}},"30":{"start":{"line":42,"column":16},"end":{"line":42,"column":35}},"31":{"start":{"line":43,"column":16},"end":{"line":43,"column":58}},"32":{"start":{"line":46,"column":16},"end":{"line":46,"column":71}},"33":{"start":{"line":47,"column":16},"end":{"line":47,"column":38}},"34":{"start":{"line":49,"column":12},"end":{"line":54,"column":13}},"35":{"start":{"line":50,"column":16},"end":{"line":50,"column":59}},"36":{"start":{"line":53,"column":16},"end":{"line":53,"column":56}},"37":{"start":{"line":55,"column":12},"end":{"line":55,"column":67}},"38":{"start":{"line":56,"column":12},"end":{"line":56,"column":79}},"39":{"start":{"line":57,"column":12},"end":{"line":57,"column":56}},"40":{"start":{"line":58,"column":12},"end":{"line":58,"column":38}},"41":{"start":{"line":59,"column":12},"end":{"line":59,"column":49}},"42":{"start":{"line":60,"column":12},"end":{"line":60,"column":28}},"43":{"start":{"line":64,"column":18},"end":{"line":66,"column":10}},"44":{"start":{"line":67,"column":23},"end":{"line":129,"column":10}},"45":{"start":{"line":130,"column":22},"end":{"line":130,"column":38}},"46":{"start":{"line":131,"column":8},"end":{"line":133,"column":9}},"47":{"start":{"line":132,"column":12},"end":{"line":132,"column":87}},"48":{"start":{"line":136,"column":18},"end":{"line":136,"column":42}},"49":{"start":{"line":137,"column":8},"end":{"line":139,"column":9}},"50":{"start":{"line":138,"column":12},"end":{"line":138,"column":22}},"51":{"start":{"line":140,"column":8},"end":{"line":140,"column":36}},"52":{"start":{"line":144,"column":8},"end":{"line":146,"column":9}},"53":{"start":{"line":145,"column":12},"end":{"line":145,"column":57}},"54":{"start":{"line":147,"column":8},"end":{"line":147,"column":22}},"55":{"start":{"line":150,"column":0},"end":{"line":150,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":18},"end":{"line":13,"column":21}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":22},"end":{"line":62,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":27},"end":{"line":16,"column":28}},"loc":{"start":{"line":16,"column":48},"end":{"line":61,"column":9}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":35,"column":33},"end":{"line":35,"column":34}},"loc":{"start":{"line":35,"column":39},"end":{"line":37,"column":17}},"line":35},"4":{"name":"(anonymous_4)","decl":{"start":{"line":63,"column":4},"end":{"line":63,"column":5}},"loc":{"start":{"line":63,"column":41},"end":{"line":134,"column":5}},"line":63},"5":{"name":"(anonymous_5)","decl":{"start":{"line":135,"column":4},"end":{"line":135,"column":5}},"loc":{"start":{"line":135,"column":29},"end":{"line":141,"column":5}},"line":135},"6":{"name":"(anonymous_6)","decl":{"start":{"line":142,"column":4},"end":{"line":142,"column":5}},"loc":{"start":{"line":142,"column":24},"end":{"line":148,"column":5}},"line":142}},"branchMap":{"0":{"loc":{"start":{"line":49,"column":12},"end":{"line":54,"column":13}},"type":"if","locations":[{"start":{"line":49,"column":12},"end":{"line":54,"column":13}},{"start":{"line":49,"column":12},"end":{"line":54,"column":13}}],"line":49},"1":{"loc":{"start":{"line":131,"column":8},"end":{"line":133,"column":9}},"type":"if","locations":[{"start":{"line":131,"column":8},"end":{"line":133,"column":9}},{"start":{"line":131,"column":8},"end":{"line":133,"column":9}}],"line":131},"2":{"loc":{"start":{"line":137,"column":8},"end":{"line":139,"column":9}},"type":"if","locations":[{"start":{"line":137,"column":8},"end":{"line":139,"column":9}},{"start":{"line":137,"column":8},"end":{"line":139,"column":9}}],"line":137},"3":{"loc":{"start":{"line":144,"column":8},"end":{"line":146,"column":9}},"type":"if","locations":[{"start":{"line":144,"column":8},"end":{"line":146,"column":9}},{"start":{"line":144,"column":8},"end":{"line":146,"column":9}}],"line":144}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ConfigLoader.ts","sources":["/development/breautek/storm/src/ConfigLoader.ts"],"names":[],"mappings":";;;AAkBA,yCAAuC;AACvC,2CAAsC;AACtC,6BAA6B;AAE7B,yCAAoC;AAEpC,6BAAsB;AACtB,4CAA4C;AAC5C,6DAA0D;AAE1D,MAAM,GAAG,GAAW,cAAc,CAAC;AAEnC,MAAa,YAAY;IACrB,gBAAuB,CAAC;IAEjB,MAAM,CAAC,IAAI,CAAC,IAAY;QAC3B,IAAI,MAAM,GAAW,YAAY,CAAC,UAAU,EAAE,CAAC;QAE/C,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;YAE3C,IAAI,MAAM,GAAQ,EAAE,CAAC;YAErB,IAAI,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACzD,IAAI,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;YAE/D,IAAI,CAAM,CAAC;YACX,IAAI,CAAM,CAAC;YACX,IAAI,QAAa,CAAC;YAElB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,uBAAuB,KAAK,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,wBAAwB,KAAK,EAAE,CAAC,CAAC;YAEnD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC;YACrD,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC,CAAC;YAE1E,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;YAC7C,IAAI;gBACA,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;aAC5C;YACD,OAAO,EAAE,EAAE;gBACP,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,KAAK,GAAG,CAAC,CAAC;gBACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;oBAClB,MAAM,CAAC,mBAAQ,CAAC,cAAc,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;gBACH,OAAO;aACV;YAED,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;YACpD,IAAI;gBACA,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;aAC7C;YACD,OAAO,EAAE,EAAE;gBACP,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;gBACvD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aACzB;YAED,IAAI,CAAC,EAAE;gBACH,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAC9C;iBACI;gBACD,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;aAC3C;YAED,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;YACvD,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAE1B,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAErC,OAAO,CAAU,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAe;QAEhD,IAAI,GAAG,GAAQ,IAAI,aAAG,CAAC;YACnB,SAAS,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACR,IAAI,EAA4B,EAAE,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE,EAAE;gBAC9D,IAAI,EAA4B,EAAE,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE,EAAE;gBAC9D,qBAAqB,EAAW,EAAE,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE,EAAE;gBAC9D,6BAA6B,EAAG,EAAE,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE,EAAE;gBAC9D,6BAA6B,EAAG,EAAE,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE,EAAE;gBAC9D,kBAAkB,EAAc,EAAE,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE,EAAE;gBAC9D,GAAG,EAAE;oBACD,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE;oBAC1B,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACR,KAAK,EAAmB,EAAE,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE,EAAE;wBACtD,SAAS,EAAe,EAAE,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE,EAAE;wBACtD,OAAO,EAAE;4BACL,IAAI,EAAE,CAAE,OAAO,EAAE,MAAM,CAAE;4BACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC5B;qBACJ;iBACJ;gBACD,QAAQ,EAAE;oBACN,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE;oBAC1B,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACR,aAAa,EAAE,EAAE,IAAI,EAAE,CAAE,SAAS,EAAE,MAAM,CAAE,EAAE,OAAO,EAAE,CAAC,EAAE;wBAC1D,IAAI,EAAE;4BACF,IAAI,EAAE,CAAE,QAAQ,EAAE,MAAM,CAAE;4BAC1B,oBAAoB,EAAE,KAAK;4BAC3B,UAAU,EAAE;gCACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gCACzC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gCACxB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;gCACrC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gCAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gCACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BAC/B;yBACJ;wBACD,gBAAgB,EAAE;4BACd,IAAI,EAAE,CAAE,OAAO,EAAE,MAAM,CAAE;4BACzB,KAAK,EAAE;gCACH,IAAI,EAAE,QAAQ;gCACd,oBAAoB,EAAE,KAAK;gCAC3B,UAAU,EAAE;oCACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oCACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oCACxB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;oCACrC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oCAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oCACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iCAC/B;6BACJ;yBACJ;qBACJ;iBACJ;gBACD,YAAY,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,oBAAoB,EAAE,IAAI;oBAC1B,UAAU,EAAE,EAAE;iBACjB;aACJ;SACJ,CAAC,CAAC;QAEH,IAAI,OAAO,GAAY,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,uCAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;SACzD;IACL,CAAC;IAEO,MAAM,CAAC,eAAe;QAC1B,IAAI,GAAG,GAAgB,sBAAW,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE;YACN,OAAO,EAAE,CAAC;SACb;QAED,OAAO,GAAG,CAAC,cAAc,EAAE,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,UAAU;QACrB,IAAI,MAAc,CAAC;QAEnB,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAG,IAAI,eAAM,CAAC,cAAc,CAAC,CAAC;SACvC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAhKD,oCAgKC","sourcesContent":["/// <reference path=\"./defs/merge-change.d.ts\" />\r\n\r\n/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nimport {getInstance} from './instance';\r\nimport {Logger} from '@arashi/logger';\r\nimport * as Path from 'path';\r\nimport {Application} from './Application';\r\nimport {ExitCode} from './ExitCode';\r\nimport {IConfig} from './IConfig';\r\nimport Ajv from 'ajv';\r\nimport * as MergeChange from 'merge-change';\r\nimport { InvalidConfigError } from './InvalidConfigError';\r\n\r\nconst TAG: string = 'ConfigLoader';\r\n\r\nexport class ConfigLoader {\r\n private constructor() {}\r\n\r\n public static load(path: string): Promise<IConfig> {\r\n let logger: Logger = ConfigLoader._getLogger();\r\n\r\n return new Promise<IConfig>((resolve, reject) => {\r\n logger.trace(TAG, 'Configuration loaded.');\r\n \r\n let config: any = {};\r\n\r\n let cPath: string = Path.resolve(path, 'bt-config.json');\r\n let lPath: string = Path.resolve(path, 'bt-local-config.json');\r\n \r\n let c: any;\r\n let l: any;\r\n let defaults: any;\r\n\r\n logger.trace(TAG, `Main Config Path:\\t ${cPath}`);\r\n logger.trace(TAG, `Local Config Path:\\t ${lPath}`);\r\n \r\n logger.trace(TAG, 'Loading configuration defaults.');\r\n defaults = require(Path.resolve(__dirname, '../bt-config-defaults.json'));\r\n\r\n logger.trace(TAG, 'Loading main confing...');\r\n try {\r\n c = require(cPath);\r\n logger.trace(TAG, 'Main config loaded.');\r\n }\r\n catch (ex) {\r\n logger.error(TAG, `Missing ${cPath}.`);\r\n process.nextTick(() => {\r\n reject(ExitCode.MISSING_CONFIG);\r\n });\r\n return;\r\n }\r\n\r\n logger.trace(TAG, 'Loading optional local config.');\r\n try {\r\n l = require(lPath);\r\n logger.trace(TAG, 'Local config loaded.');\r\n }\r\n catch (ex) {\r\n logger.trace(TAG, 'Local config could not be loaded.');\r\n logger.trace(TAG, ex);\r\n }\r\n\r\n if (l) {\r\n config = MergeChange.merge(defaults, c, l);\r\n }\r\n else {\r\n config = MergeChange.merge(defaults, c);\r\n }\r\n\r\n logger.trace(TAG, 'Reading command line arguments...');\r\n config = MergeChange.merge(config, ConfigLoader._getCmdLineArgs());\r\n\r\n logger.trace(TAG, 'Configurations merged.');\r\n logger.trace(TAG, config);\r\n\r\n ConfigLoader._validateSchema(config);\r\n\r\n resolve(<IConfig>config);\r\n });\r\n }\r\n\r\n private static async _validateSchema(config: IConfig): Promise<void> {\r\n // return;\r\n let ajv: Ajv = new Ajv({\r\n allErrors: true\r\n });\r\n\r\n let validate = ajv.compile({\r\n type: 'object',\r\n additionalProperties: false,\r\n properties: {\r\n bind: { type: [ 'string', 'null' ] },\r\n port: { type: [ 'number', 'null' ] },\r\n authentication_header: { type: [ 'string', 'null' ] },\r\n backend_authentication_header: { type: [ 'string', 'null' ] },\r\n backend_authentication_secret: { type: [ 'string', 'null' ] },\r\n request_size_limit: { type: [ 'number', 'null' ] },\r\n log: {\r\n type: [ 'object', 'null' ],\r\n additionalProperties: false,\r\n properties: {\r\n level: { type: [ 'string', 'null' ] },\r\n directory: { type: [ 'string', 'null' ] },\r\n filters: {\r\n type: [ 'array', 'null' ],\r\n items: { type: 'string' }\r\n }\r\n }\r\n },\r\n database: {\r\n type: [ 'object', 'null' ],\r\n additionalProperties: false,\r\n properties: {\r\n query_timeout: { type: [ 'integer', 'null' ], minimum: 0 },\r\n main: {\r\n type: [ 'object', 'null' ],\r\n additionalProperties: false,\r\n properties: {\r\n name: { type: 'string', const: \"MASTER\" },\r\n host: { type: 'string' },\r\n port: { type: 'integer', minimum: 0 },\r\n schema: { type: 'string' },\r\n user: { type: 'string' },\r\n password: { type: 'string' }\r\n }\r\n },\r\n replicationNodes: {\r\n type: [ 'array', 'null' ],\r\n items: {\r\n type: 'object',\r\n additionalProperties: false,\r\n properties: {\r\n name: { type: 'string' },\r\n host: { type: 'string' },\r\n port: { type: 'integer', minimum: 0 },\r\n schema: { type: 'string' },\r\n user: { type: 'string' },\r\n password: { type: 'string' }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n customConfig: {\r\n type: 'object',\r\n additionalProperties: true,\r\n properties: {}\r\n }\r\n }\r\n });\r\n\r\n let isValid: boolean = validate(config);\r\n if (!isValid) {\r\n throw new InvalidConfigError(config, validate.errors);\r\n }\r\n }\r\n\r\n private static _getCmdLineArgs(): any {\r\n let app: Application = getInstance();\r\n if (!app) {\r\n return {};\r\n }\r\n\r\n return app.getCmdLineArgs();\r\n }\r\n\r\n private static _getLogger(): Logger {\r\n let logger: Logger;\r\n \r\n if (!logger) {\r\n logger = new Logger('ConfigLoader');\r\n }\r\n\r\n return logger;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e6592c29f6746924df3132dae5cb782121bbab36","contentHash":"389ad2df03e1cdadb522dd26c4fae68157e7ebc37f5f1fb4807fa4b87975a186"},"/development/breautek/storm/src/ExitCode.ts":{"path":"/development/breautek/storm/src/ExitCode.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":5,"column":0},"end":{"line":7,"column":59}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":64}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":1},"end":{"line":5,"column":2}},"loc":{"start":{"line":5,"column":21},"end":{"line":7,"column":1}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":14},"end":{"line":7,"column":57}},"type":"binary-expr","locations":[{"start":{"line":7,"column":14},"end":{"line":7,"column":30}},{"start":{"line":7,"column":35},"end":{"line":7,"column":56}}],"line":7}},"s":{"0":1,"1":1,"2":1,"3":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ExitCode.ts","sources":["/development/breautek/storm/src/ExitCode.ts"],"names":[],"mappings":";;;AAgBA,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,2DAAkB,CAAA;AACtB,CAAC,EAFW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAEnB","sourcesContent":["/*\r\n Copyright 2017-2021 Norman Breau\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\n\r\nexport enum ExitCode {\r\n MISSING_CONFIG = 1\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f1465f10337891785fce11f384c7e0fc5f095a8f","contentHash":"c2aad1e4e18a41e500e57548d8275bfc6d8a72d69fdfa49d9272f9e54a6381e3"},"/development/breautek/storm/src/InvalidConfigError.ts":{"path":"/development/breautek/storm/src/InvalidConfigError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":44}},"3":{"start":{"line":5,"column":20},"end":{"line":5,"column":42}},"4":{"start":{"line":6,"column":21},"end":{"line":6,"column":44}},"5":{"start":{"line":9,"column":8},"end":{"line":12,"column":11}},"6":{"start":{"line":15,"column":8},"end":{"line":16,"column":44}},"7":{"start":{"line":19,"column":8},"end":{"line":19,"column":57}},"8":{"start":{"line":22,"column":8},"end":{"line":22,"column":56}},"9":{"start":{"line":25,"column":0},"end":{"line":25,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":32},"end":{"line":13,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":17},"end":{"line":17,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":14},"end":{"line":20,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":18},"end":{"line":23,"column":5}},"line":21}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":1},"f":{"0":0,"1":0,"2":0,"3":0},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/InvalidConfigError.ts","sources":["/development/breautek/storm/src/InvalidConfigError.ts"],"names":[],"mappings":";;;AAgBA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AASxC,MAAa,kBAA4C,SAAQ,uBAA+C;IAC5G,YAAmB,MAAe,EAAE,MAA0B;QAC1D,KAAK,CAAC;YACF,MAAM;YACN,MAAM;SACT,CAAC,CAAC;IACP,CAAC;IAEM,UAAU;QACb,OAAO,4BAA4B;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC5C,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,mBAAmB,CAAC;IACzC,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;CACJ;AApBD,gDAoBC","sourcesContent":["/*\n Copyright 2017-2021 Norman Breau\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\nimport {StormError} from './StormError';\nimport {ErrorCode} from './ErrorCode';\nimport {StatusCode} from './StatusCode';\nimport { IConfig } from './IConfig';\nimport { ErrorObject } from 'ajv';\n\ninterface IInvalidConfigErrorDetails<TConfig extends IConfig> {\n config: TConfig;\n errors: Array<ErrorObject>;\n}\n\nexport class InvalidConfigError<TConfig extends IConfig> extends StormError<IInvalidConfigErrorDetails<TConfig>> {\n public constructor(config: TConfig, errors: Array<ErrorObject>) {\n super({\n config,\n errors\n });\n }\n\n public getMessage(): string {\n return `Storm config has issues:\\n` +\n this.getPrivateDetails().errors;\n }\n\n public getCode(): ErrorCode {\n return ErrorCode.INVALID_CREDENTIALS;\n }\n\n public getHTTPCode(): StatusCode {\n return StatusCode.ERR_UNAUTHORIZED;\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8a981e9c6936925b03205b5efdf7129d5d5478d7","contentHash":"af629eeb94ec70c47420b96f6ae9a8d2130fabbef7a8b2b5dded030faf44bee4"}}