@breautek/storm 9.3.1 → 9.4.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 (103) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/docs/assets/hierarchy.js +1 -1
  3. package/docs/assets/search.js +1 -1
  4. package/docs/classes/Application.html +17 -17
  5. package/docs/classes/Command.html +90 -90
  6. package/docs/classes/ConfigLoader.html +3 -3
  7. package/docs/classes/Database.html +2 -2
  8. package/docs/classes/DatabaseCastObject.html +2 -2
  9. package/docs/classes/DatabaseConnection.html +21 -21
  10. package/docs/classes/DatabaseQueryError.html +6 -6
  11. package/docs/classes/DeadLockError.html +6 -6
  12. package/docs/classes/DiskSpaceError.html +5 -5
  13. package/docs/classes/DropTemporaryTableQuery.html +7 -7
  14. package/docs/classes/DuplicateEntryError.html +5 -5
  15. package/docs/classes/EntityNotFoundError.html +5 -5
  16. package/docs/classes/ExpiredTokenError.html +5 -5
  17. package/docs/classes/ForbiddenError.html +5 -5
  18. package/docs/classes/GetMySQLVersion.html +7 -7
  19. package/docs/classes/Handler.html +4 -2
  20. package/docs/classes/IllegalStateError.html +5 -5
  21. package/docs/classes/InternalError.html +5 -5
  22. package/docs/classes/InvalidCredentialsError.html +5 -5
  23. package/docs/classes/InvalidValueError.html +5 -5
  24. package/docs/classes/LineString.html +2 -2
  25. package/docs/classes/LockWaitTimeoutError.html +6 -6
  26. package/docs/classes/ManagedDatabaseConnection.html +5 -5
  27. package/docs/classes/MetricStore.html +2 -2
  28. package/docs/classes/Middleware.html +2 -2
  29. package/docs/classes/MissingConfigError.html +5 -5
  30. package/docs/classes/MissingParameterError.html +5 -5
  31. package/docs/classes/MySQLConnection.html +25 -25
  32. package/docs/classes/MySQLDatabase.html +2 -2
  33. package/docs/classes/NotImplementedError.html +5 -5
  34. package/docs/classes/Point.html +2 -2
  35. package/docs/classes/Polygon.html +2 -2
  36. package/docs/classes/Query.html +7 -7
  37. package/docs/classes/RawError.html +5 -5
  38. package/docs/classes/RawQuery.html +7 -7
  39. package/docs/classes/Request.html +3 -3
  40. package/docs/classes/Response.html +2 -2
  41. package/docs/classes/ResponseData.html +3 -3
  42. package/docs/classes/ServiceProvider.html +2 -2
  43. package/docs/classes/ServiceResponse.html +2 -2
  44. package/docs/classes/SetSessionVariableQuery.html +7 -7
  45. package/docs/classes/StormError.html +5 -5
  46. package/docs/classes/TemporaryTableQuery.html +7 -7
  47. package/docs/classes/TimeoutError.html +5 -5
  48. package/docs/classes/Token.html +2 -2
  49. package/docs/classes/TokenManager.html +5 -2
  50. package/docs/classes/Transaction.html +2 -2
  51. package/docs/classes/UnauthorizedAccessError.html +5 -5
  52. package/docs/enums/ErrorCode.html +2 -2
  53. package/docs/enums/ExitCode.html +2 -2
  54. package/docs/enums/HTTPMethod.html +2 -2
  55. package/docs/enums/IsolationLevel.html +2 -2
  56. package/docs/enums/JWTError.html +2 -2
  57. package/docs/enums/StatusCode.html +2 -2
  58. package/docs/enums/TransactionAccessLevel.html +2 -2
  59. package/docs/functions/getInstance.html +1 -1
  60. package/docs/hierarchy.html +1 -1
  61. package/docs/interfaces/IAdditionalErrorDetails.html +1 -1
  62. package/docs/interfaces/ICloudwatchConfig.html +2 -2
  63. package/docs/interfaces/ICloudwatchCredentials.html +2 -2
  64. package/docs/interfaces/ICloudwatchStreamConfig.html +2 -2
  65. package/docs/interfaces/IConfig.html +3 -3
  66. package/docs/interfaces/IDatabaseConfig.html +2 -2
  67. package/docs/interfaces/IDatabaseConnection.html +5 -5
  68. package/docs/interfaces/IDatabasePosition.html +2 -2
  69. package/docs/interfaces/IErrorResponse.html +2 -2
  70. package/docs/interfaces/IFormData.html +2 -2
  71. package/docs/interfaces/IGetMySQLVersionResult.html +2 -2
  72. package/docs/interfaces/IGetMySQLVersionRow.html +2 -2
  73. package/docs/interfaces/IInsertQueryResult.html +2 -2
  74. package/docs/interfaces/IJWTVerifyOptions.html +2 -2
  75. package/docs/interfaces/IOKPacket.html +2 -2
  76. package/docs/interfaces/IParameterMap.html +1 -1
  77. package/docs/interfaces/IQueryable.html +2 -2
  78. package/docs/interfaces/IRequestResponse.html +2 -2
  79. package/docs/interfaces/ISetSessionVariableQueryInput.html +2 -2
  80. package/docs/interfaces/IStormCLIArgs.html +2 -2
  81. package/docs/interfaces/ITemporaryTableQueryInput.html +2 -2
  82. package/docs/interfaces/IUpdateQueryResult.html +2 -2
  83. package/docs/interfaces/formidable.FileJSON.html +1 -1
  84. package/docs/interfaces/formidable.Part.html +1 -1
  85. package/docs/types/IDeleteQueryResult.html +1 -1
  86. package/docs/types/IStoredProcedureResult.html +1 -1
  87. package/docs/types/TCoordinate.html +1 -1
  88. package/docs/types/TExpiresIn.html +1 -1
  89. package/docs/types/TSerializableResponse.html +1 -1
  90. package/docs/types/TSupportedResponsePrimitives.html +1 -1
  91. package/docs/types/TSupportedResponseTypes.html +1 -1
  92. package/lib/Handler.d.ts +2 -0
  93. package/lib/Handler.js +18 -4
  94. package/lib/Handler.js.map +1 -1
  95. package/lib/Request.d.ts +6 -3
  96. package/lib/Request.js.map +1 -1
  97. package/lib/TokenManager.d.ts +13 -0
  98. package/lib/TokenManager.js +15 -0
  99. package/lib/TokenManager.js.map +1 -1
  100. package/package.json +5 -5
  101. package/src/Handler.ts +24 -4
  102. package/src/Request.ts +7 -3
  103. package/src/TokenManager.ts +16 -0
@@ -1,4 +1,4 @@
1
1
  <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>IStoredProcedureResult | @breautek/storm</title><meta name="description" content="Documentation for @breautek/storm"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@breautek/storm</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">IStoredProcedureResult</a></li></ul><h1>Type Alias IStoredProcedureResult&lt;T&gt;</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">IStoredProcedureResult</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">...</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#t">T</a><span class="tsd-signature-symbol">,</span> <a href="../interfaces/IOKPacket.html" class="tsd-signature-type tsd-kind-interface">IOKPacket</a><span class="tsd-signature-symbol">]</span></div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="t"><span class="tsd-kind-type-parameter">T</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">[]</span> = <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">[]</span></span></li></ul></section><div class="tsd-comment tsd-typography"><div class="tsd-tag-since"><h4 class="tsd-anchor-link" id="since">Since<a href="#since" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>7.1.0</p>
2
2
  </div><div class="tsd-tag-remarks"><h4 class="tsd-anchor-link" id="remarks">Remarks<a href="#remarks" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>Symbol introduced in 7.1.0 but did not accurately represent the actual call
3
3
  result. Symbol was (breakingly) changed in 7.1.1 to fix this issue.</p>
4
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/1730c85c03f72ff31a0783cfb16124f7b5c82a69/src/IStoredProcedureResult.ts#L27">src/IStoredProcedureResult.ts:27</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
4
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/0a69ec149381405151a792789dcd81158aeac0df/src/IStoredProcedureResult.ts#L27">src/IStoredProcedureResult.ts:27</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>TCoordinate | @breautek/storm</title><meta name="description" content="Documentation for @breautek/storm"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@breautek/storm</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">TCoordinate</a></li></ul><h1>Type Alias TCoordinate</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">TCoordinate</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>x<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">,</span> y<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/1730c85c03f72ff31a0783cfb16124f7b5c82a69/src/TCoordinate.ts#L17">src/TCoordinate.ts:17</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>TCoordinate | @breautek/storm</title><meta name="description" content="Documentation for @breautek/storm"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@breautek/storm</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">TCoordinate</a></li></ul><h1>Type Alias TCoordinate</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">TCoordinate</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>x<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">,</span> y<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/0a69ec149381405151a792789dcd81158aeac0df/src/TCoordinate.ts#L17">src/TCoordinate.ts:17</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>TExpiresIn | @breautek/storm</title><meta name="description" content="Documentation for @breautek/storm"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@breautek/storm</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">TExpiresIn</a></li></ul><h1>Type Alias TExpiresIn</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">TExpiresIn</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">StringValue</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/1730c85c03f72ff31a0783cfb16124f7b5c82a69/src/TokenManager.ts#L27">src/TokenManager.ts:27</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>TExpiresIn | @breautek/storm</title><meta name="description" content="Documentation for @breautek/storm"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@breautek/storm</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">TExpiresIn</a></li></ul><h1>Type Alias TExpiresIn</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">TExpiresIn</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">StringValue</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/0a69ec149381405151a792789dcd81158aeac0df/src/TokenManager.ts#L27">src/TokenManager.ts:27</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -10,4 +10,4 @@ Use this to declare that your interface is Response Serializable.</p>
10
10
 
11
11
  <p>NOTE: This actually will allow more than what is within the <code>TSupportedResponsePrimitives</code> union type.
12
12
  TypeScript doesn't offer a way to properly restrict or infer the type.</p>
13
- </div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="t"><span class="tsd-kind-type-parameter">T</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">object</span></span></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/1730c85c03f72ff31a0783cfb16124f7b5c82a69/src/Response.ts#L58">src/Response.ts:58</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
13
+ </div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="t"><span class="tsd-kind-type-parameter">T</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">object</span></span></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/0a69ec149381405151a792789dcd81158aeac0df/src/Response.ts#L58">src/Response.ts:58</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>TSupportedResponsePrimitives | @breautek/storm</title><meta name="description" content="Documentation for @breautek/storm"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@breautek/storm</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">TSupportedResponsePrimitives</a></li></ul><h1>Type Alias TSupportedResponsePrimitives</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">TSupportedResponsePrimitives</span><span class="tsd-signature-symbol">:</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">boolean</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">string</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">Date</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/IErrorResponse.html" class="tsd-signature-type tsd-kind-interface">IErrorResponse</a><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">void</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="" class="tsd-signature-type tsd-kind-type-alias">TSupportedResponsePrimitives</a><span class="tsd-signature-symbol">[]</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="TSerializableResponse.html" class="tsd-signature-type tsd-kind-type-alias">TSerializableResponse</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/1730c85c03f72ff31a0783cfb16124f7b5c82a69/src/Response.ts#L27">src/Response.ts:27</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>TSupportedResponsePrimitives | @breautek/storm</title><meta name="description" content="Documentation for @breautek/storm"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@breautek/storm</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">TSupportedResponsePrimitives</a></li></ul><h1>Type Alias TSupportedResponsePrimitives</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">TSupportedResponsePrimitives</span><span class="tsd-signature-symbol">:</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">boolean</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">string</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">Date</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/IErrorResponse.html" class="tsd-signature-type tsd-kind-interface">IErrorResponse</a><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">void</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="" class="tsd-signature-type tsd-kind-type-alias">TSupportedResponsePrimitives</a><span class="tsd-signature-symbol">[]</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="TSerializableResponse.html" class="tsd-signature-type tsd-kind-type-alias">TSerializableResponse</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/0a69ec149381405151a792789dcd81158aeac0df/src/Response.ts#L27">src/Response.ts:27</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>TSupportedResponseTypes | @breautek/storm</title><meta name="description" content="Documentation for @breautek/storm"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@breautek/storm</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">TSupportedResponseTypes</a></li></ul><h1>Type Alias TSupportedResponseTypes</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">TSupportedResponseTypes</span><span class="tsd-signature-symbol">:</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="TSupportedResponsePrimitives.html" class="tsd-signature-type tsd-kind-type-alias">TSupportedResponsePrimitives</a><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">Error</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="../classes/StormError.html" class="tsd-signature-type tsd-kind-class">StormError</a><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">Buffer</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">ReadableStream</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">Stream.Readable</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/1730c85c03f72ff31a0783cfb16124f7b5c82a69/src/Response.ts#L62">src/Response.ts:62</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>TSupportedResponseTypes | @breautek/storm</title><meta name="description" content="Documentation for @breautek/storm"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@breautek/storm</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">TSupportedResponseTypes</a></li></ul><h1>Type Alias TSupportedResponseTypes</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">TSupportedResponseTypes</span><span class="tsd-signature-symbol">:</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="TSupportedResponsePrimitives.html" class="tsd-signature-type tsd-kind-type-alias">TSupportedResponsePrimitives</a><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">Error</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="../classes/StormError.html" class="tsd-signature-type tsd-kind-class">StormError</a><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">Buffer</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">ReadableStream</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">Stream.Readable</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/breautek/storm/blob/0a69ec149381405151a792789dcd81158aeac0df/src/Response.ts#L62">src/Response.ts:62</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../index.html">@breautek/storm</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
package/lib/Handler.d.ts CHANGED
@@ -33,6 +33,8 @@ export declare class Handler<TApplication extends Application = Application, TGe
33
33
  protected _onMiddlewareReject(request: Request, response: Response<any>, error: StormError): void;
34
34
  private $handleResponse;
35
35
  private $handleResponseError;
36
+ protected _logRequestStart(request: Request<unknown>): void;
37
+ protected _logRequestEnd(request: Request<unknown>, response: Response<any>, elapsed: number): void;
36
38
  get(request: Request<TGetRequest>, response: Response<TGetResponse>): Promise<void>;
37
39
  put(request: Request<TPutRequest>, response: Response<TPutResponse>): Promise<void>;
38
40
  post(request: Request<TPostRequest>, response: Response<TPostResponse>): Promise<void>;
package/lib/Handler.js CHANGED
@@ -98,8 +98,15 @@ class Handler {
98
98
  $handleResponseError(response, error) {
99
99
  response.error(error);
100
100
  }
101
- async get(request, response) {
101
+ _logRequestStart(request) {
102
102
  this.getApplication().getLogger().info(TAG, `${request.getForwardedIP()} (${request.getIP()}) - ${request.getMethod()} ${request.getURL()} - UA(${request.getHeader('user-agent')})`);
103
+ }
104
+ _logRequestEnd(request, response, elapsed) {
105
+ this.$app.getLogger().info(TAG, `API ${request.getURL()} (${response.getStatus()}) responded in ${elapsed}ms`);
106
+ }
107
+ async get(request, response) {
108
+ let startTime = new Date();
109
+ this._logRequestStart(request);
103
110
  try {
104
111
  let result = await this.$executeMiddlewares(request, response);
105
112
  let req = await this._get(result.request);
@@ -108,9 +115,11 @@ class Handler {
108
115
  catch (ex) {
109
116
  this.$handleResponseError(response, ex);
110
117
  }
118
+ this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
111
119
  }
112
120
  async put(request, response) {
113
- this.getApplication().getLogger().info(TAG, `${request.getForwardedIP()} (${request.getIP()}) - ${request.getMethod()} ${request.getURL()} - UA(${request.getHeader('user-agent')})`);
121
+ let startTime = new Date();
122
+ this._logRequestStart(request);
114
123
  try {
115
124
  let result = await this.$executeMiddlewares(request, response);
116
125
  let req = await this._put(result.request);
@@ -119,9 +128,11 @@ class Handler {
119
128
  catch (ex) {
120
129
  this.$handleResponseError(response, ex);
121
130
  }
131
+ this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
122
132
  }
123
133
  async post(request, response) {
124
- this.getApplication().getLogger().info(TAG, `${request.getForwardedIP()} (${request.getIP()}) - ${request.getMethod()} ${request.getURL()} - UA(${request.getHeader('user-agent')})`);
134
+ let startTime = new Date();
135
+ this._logRequestStart(request);
125
136
  try {
126
137
  let result = await this.$executeMiddlewares(request, response);
127
138
  let req = await this._post(result.request);
@@ -130,9 +141,11 @@ class Handler {
130
141
  catch (ex) {
131
142
  this.$handleResponseError(response, ex);
132
143
  }
144
+ this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
133
145
  }
134
146
  async delete(request, response) {
135
- this.getApplication().getLogger().info(TAG, `${request.getForwardedIP()} (${request.getIP()}) - ${request.getMethod()} ${request.getURL()} - UA(${request.getHeader('user-agent')})`);
147
+ let startTime = new Date();
148
+ this._logRequestStart(request);
136
149
  try {
137
150
  let result = await this.$executeMiddlewares(request, response);
138
151
  let req = await this._delete(result.request);
@@ -141,6 +154,7 @@ class Handler {
141
154
  catch (ex) {
142
155
  this.$handleResponseError(response, ex);
143
156
  }
157
+ this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
144
158
  }
145
159
  async _get(request) {
146
160
  throw new NotImplementedError_1.NotImplementedError(HTTPMethod_1.HTTPMethod.GET);
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.js","sourceRoot":"","sources":["../src/Handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Handler.js","sourceRoot":"","sources":["../src/Handler.ts"],"names":[],"mappings":"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"}
package/lib/Request.d.ts CHANGED
@@ -4,8 +4,11 @@ import { Writable } from 'stream';
4
4
  import { IFormData } from './IFormData';
5
5
  import { IAuthTokenData } from './IAuthTokenData';
6
6
  import { IDatabasePosition } from './IDatabasePosition';
7
+ export interface IQueryParams {
8
+ [key: string]: undefined | string | IQueryParams | (string | IQueryParams)[];
9
+ }
7
10
  export interface IParameterMap {
8
- [key: string]: string;
11
+ [key: string]: string | string[];
9
12
  }
10
13
  export declare class Request<TBody = any, TAuthToken extends IAuthTokenData = IAuthTokenData> {
11
14
  private $request;
@@ -14,9 +17,9 @@ export declare class Request<TBody = any, TAuthToken extends IAuthTokenData = IA
14
17
  getForm(): Promise<IFormData>;
15
18
  getHeaders(): IncomingHttpHeaders;
16
19
  getHeader(name: string): string;
17
- getQueryVariables(): any;
20
+ getQueryVariables(): IQueryParams;
18
21
  getParams(): IParameterMap;
19
- getParam(name: string): string;
22
+ getParam(name: string): string | string[];
20
23
  getIP(): string;
21
24
  getForwardedIP(): string;
22
25
  getHostname(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"Request.js","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Request.js","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,18 @@ export declare class TokenManager<TAuthToken extends IAuthTokenData = IAuthToken
10
10
  [key: string]: any;
11
11
  }, expiresIn: TExpiresIn): Promise<Token>;
12
12
  verify(token: Token, options?: IJWTVerifyOptions): Promise<TAuthToken>;
13
+ /**
14
+ * Decodes the token. Use this method only on verified tokens as this does not verify against tampering
15
+ *
16
+ * @param token
17
+ * @returns
18
+ */
19
+ decodeSync(token: Token): TAuthToken;
20
+ /**
21
+ * Decodes the token. Use this method only on verified tokens as this does not verify against tampering
22
+ *
23
+ * @param token
24
+ * @returns
25
+ */
13
26
  decode(token: Token): Promise<TAuthToken>;
14
27
  }
@@ -63,6 +63,21 @@ class TokenManager {
63
63
  });
64
64
  });
65
65
  }
66
+ /**
67
+ * Decodes the token. Use this method only on verified tokens as this does not verify against tampering
68
+ *
69
+ * @param token
70
+ * @returns
71
+ */
72
+ decodeSync(token) {
73
+ return jwt.decode(token.getSignature());
74
+ }
75
+ /**
76
+ * Decodes the token. Use this method only on verified tokens as this does not verify against tampering
77
+ *
78
+ * @param token
79
+ * @returns
80
+ */
66
81
  decode(token) {
67
82
  return new Promise((resolve, reject) => {
68
83
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../src/TokenManager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;AAEF,0DAAoC;AACpC,mCAA8B;AAE9B,qEAAgE;AAChE,mCAAmC;AAQnC,MAAa,YAAY;IAGrB,YAAmB,MAAc;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEM,IAAI,CAAC,OAA6B,EAAE,SAAqB;QAC5D,OAAO,IAAI,OAAO,CAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAA,oBAAW,EAAC,EAAE,EAAE,CAAC,GAAU,EAAE,MAAc,EAAE,EAAE;gBAC3C,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACX,CAAC;gBAED,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAE5C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;oBAC5B,SAAS,EAAG,SAAS;iBACxB,EAAE,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE;oBAC/B,IAAI,KAAK,EAAE,CAAC;wBACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAED,OAAO,OAAO,CAAC,IAAI,aAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,KAAY,EAAE,OAA2B;QACnD,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,0EAA0E;YAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,GAAG;oBACN,gBAAgB,EAAE,IAAI;iBACzB,CAAC;YACN,CAAC;iBACI,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC9C,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACpC,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,+CAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAmB,EAAE,EAAE;gBACjH,IAAI,KAAK,EAAE,CAAC;oBACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC;gBAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,KAAY;QACtB,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI,CAAC;gBACD,IAAI,OAAO,GAAe,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAe,CAAC;gBACzE,OAAO,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,EAAE,EAAE,CAAC;gBACR,MAAM,CAAC,EAAE,CAAC,CAAC;YACf,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA/DD,oCA+DC"}
1
+ {"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../src/TokenManager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;AAEF,0DAAoC;AACpC,mCAA8B;AAE9B,qEAAgE;AAChE,mCAAmC;AAQnC,MAAa,YAAY;IAGrB,YAAmB,MAAc;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEM,IAAI,CAAC,OAA6B,EAAE,SAAqB;QAC5D,OAAO,IAAI,OAAO,CAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAA,oBAAW,EAAC,EAAE,EAAE,CAAC,GAAU,EAAE,MAAc,EAAE,EAAE;gBAC3C,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACX,CAAC;gBAED,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAE5C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;oBAC5B,SAAS,EAAG,SAAS;iBACxB,EAAE,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE;oBAC/B,IAAI,KAAK,EAAE,CAAC;wBACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAED,OAAO,OAAO,CAAC,IAAI,aAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,KAAY,EAAE,OAA2B;QACnD,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,0EAA0E;YAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,GAAG;oBACN,gBAAgB,EAAE,IAAI;iBACzB,CAAC;YACN,CAAC;iBACI,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC9C,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACpC,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,+CAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAmB,EAAE,EAAE;gBACjH,IAAI,KAAK,EAAE,CAAC;oBACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC;gBAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,KAAY;QAC1B,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAe,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAY;QACtB,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI,CAAC;gBACD,IAAI,OAAO,GAAe,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAe,CAAC;gBACzE,OAAO,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,EAAE,EAAE,CAAC;gBACR,MAAM,CAAC,EAAE,CAAC,CAAC;YACf,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA/ED,oCA+EC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@breautek/storm",
3
- "version": "9.3.1",
3
+ "version": "9.4.0",
4
4
  "description": "Object-Oriented REST API framework",
5
5
  "main": "lib/api.js",
6
6
  "types": "lib/api.d.ts",
@@ -54,12 +54,12 @@
54
54
  "@types/node": "24.10.1",
55
55
  "ajv": "8.17.1",
56
56
  "body-parser": "2.2.2",
57
- "commander": "14.0.2",
57
+ "commander": "14.0.3",
58
58
  "express": "5.2.1",
59
59
  "form-data": "4.0.5",
60
60
  "formidable": "3.5.4",
61
61
  "jsonwebtoken": "9.0.3",
62
- "mysql2": "3.16.1",
62
+ "mysql2": "3.16.3",
63
63
  "sql-formatter": "15.7.0",
64
64
  "tslib": "2.8.1",
65
65
  "uuid": "11.1.0"
@@ -70,7 +70,7 @@
70
70
  },
71
71
  "devDependencies": {
72
72
  "@arashi/interfaces": "1.2.1",
73
- "@arashi/logger": "4.1.3",
73
+ "@arashi/logger": "4.1.4",
74
74
  "@jest/types": "30.2.0",
75
75
  "@totalpave/eslint-plugin": "7.0.17",
76
76
  "@types/jest": "30.0.0",
@@ -81,7 +81,7 @@
81
81
  "ts-jest": "29.4.6",
82
82
  "ts-node": "10.9.2",
83
83
  "typedoc": "0.28.16",
84
- "typedoc-plugin-markdown": "4.9.0",
84
+ "typedoc-plugin-markdown": "4.10.0",
85
85
  "typescript": "5.9.3"
86
86
  }
87
87
  }
package/src/Handler.ts CHANGED
@@ -138,8 +138,17 @@ export class Handler<
138
138
  response.error(error);
139
139
  }
140
140
 
141
- public async get(request: Request<TGetRequest>, response: Response<TGetResponse>): Promise<void> {
141
+ protected _logRequestStart(request: Request<unknown>): void {
142
142
  this.getApplication().getLogger().info(TAG, `${request.getForwardedIP()} (${request.getIP()}) - ${request.getMethod()} ${request.getURL()} - UA(${request.getHeader('user-agent')})`);
143
+ }
144
+
145
+ protected _logRequestEnd(request: Request<unknown>, response: Response<any>, elapsed: number): void {
146
+ this.$app.getLogger().info(TAG, `API ${request.getURL()} (${response.getStatus()}) responded in ${elapsed}ms`);
147
+ }
148
+
149
+ public async get(request: Request<TGetRequest>, response: Response<TGetResponse>): Promise<void> {
150
+ let startTime: Date = new Date();
151
+ this._logRequestStart(request);
143
152
 
144
153
  try {
145
154
  let result: IRequestResponse<TGetRequest, TGetResponse> = await this.$executeMiddlewares(request, response);
@@ -149,10 +158,13 @@ export class Handler<
149
158
  catch (ex) {
150
159
  this.$handleResponseError(response as Response<StormError>, ex);
151
160
  }
161
+
162
+ this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
152
163
  }
153
164
 
154
165
  public async put(request: Request<TPutRequest>, response: Response<TPutResponse>): Promise<void> {
155
- this.getApplication().getLogger().info(TAG, `${request.getForwardedIP()} (${request.getIP()}) - ${request.getMethod()} ${request.getURL()} - UA(${request.getHeader('user-agent')})`);
166
+ let startTime: Date = new Date();
167
+ this._logRequestStart(request);
156
168
 
157
169
  try {
158
170
  let result: IRequestResponse<TPutRequest, TPutResponse> = await this.$executeMiddlewares(request, response);
@@ -162,10 +174,13 @@ export class Handler<
162
174
  catch (ex) {
163
175
  this.$handleResponseError(response as Response<StormError>, ex);
164
176
  }
177
+
178
+ this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
165
179
  }
166
180
 
167
181
  public async post(request: Request<TPostRequest>, response: Response<TPostResponse>): Promise<void> {
168
- this.getApplication().getLogger().info(TAG, `${request.getForwardedIP()} (${request.getIP()}) - ${request.getMethod()} ${request.getURL()} - UA(${request.getHeader('user-agent')})`);
182
+ let startTime: Date = new Date();
183
+ this._logRequestStart(request);
169
184
 
170
185
  try {
171
186
  let result: IRequestResponse<TPostRequest, TPostResponse> = await this.$executeMiddlewares(request, response);
@@ -175,10 +190,13 @@ export class Handler<
175
190
  catch (ex) {
176
191
  this.$handleResponseError(response as Response<StormError>, ex);
177
192
  }
193
+
194
+ this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
178
195
  }
179
196
 
180
197
  public async delete(request: Request<TDeleteRequest>, response: Response<TDeleteResponse>): Promise<void> {
181
- this.getApplication().getLogger().info(TAG, `${request.getForwardedIP()} (${request.getIP()}) - ${request.getMethod()} ${request.getURL()} - UA(${request.getHeader('user-agent')})`);
198
+ let startTime: Date = new Date();
199
+ this._logRequestStart(request);
182
200
 
183
201
  try {
184
202
  let result: IRequestResponse<TDeleteRequest, TDeleteResponse> = await this.$executeMiddlewares(request, response);
@@ -188,6 +206,8 @@ export class Handler<
188
206
  catch (ex) {
189
207
  this.$handleResponseError(response as Response<StormError>, ex);
190
208
  }
209
+
210
+ this._logRequestEnd(request, response, new Date().getTime() - startTime.getTime());
191
211
  }
192
212
 
193
213
  protected async _get(request: Request<TGetRequest>): Promise<TGetResponse | ResponseData<TGetResponse>> {
package/src/Request.ts CHANGED
@@ -34,8 +34,12 @@ import { InternalError } from './InternalError';
34
34
  import IncomingForm = require('formidable/Formidable');
35
35
  import { IDatabasePosition } from './IDatabasePosition';
36
36
 
37
+ export interface IQueryParams {
38
+ [key: string]: undefined | string | IQueryParams | (string | IQueryParams)[];
39
+ }
40
+
37
41
  export interface IParameterMap {
38
- [key: string]: string;
42
+ [key: string]: string | string[];
39
43
  }
40
44
 
41
45
  export class Request<TBody = any, TAuthToken extends IAuthTokenData = IAuthTokenData> {
@@ -83,7 +87,7 @@ export class Request<TBody = any, TAuthToken extends IAuthTokenData = IAuthToken
83
87
  }
84
88
  }
85
89
 
86
- public getQueryVariables(): any {
90
+ public getQueryVariables(): IQueryParams {
87
91
  return this.$request.query;
88
92
  }
89
93
 
@@ -91,7 +95,7 @@ export class Request<TBody = any, TAuthToken extends IAuthTokenData = IAuthToken
91
95
  return this.$request.params;
92
96
  }
93
97
 
94
- public getParam(name: string): string {
98
+ public getParam(name: string): string | string[] {
95
99
  return this.$request.params[name];
96
100
  }
97
101