@breautek/storm 8.4.0 → 8.6.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 (144) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/docs/assets/hierarchy.js +1 -1
  3. package/docs/assets/highlight.css +16 -16
  4. package/docs/assets/main.js +5 -5
  5. package/docs/assets/navigation.js +1 -1
  6. package/docs/assets/search.js +1 -1
  7. package/docs/assets/style.css +251 -229
  8. package/docs/classes/Application.html +173 -173
  9. package/docs/classes/BackendAuthenticationMiddleware.html +5 -5
  10. package/docs/classes/CORSMiddleware.html +10 -10
  11. package/docs/classes/ConfigLoader.html +5 -5
  12. package/docs/classes/Database.html +13 -13
  13. package/docs/classes/DatabaseCastObject.html +5 -5
  14. package/docs/classes/DatabaseConnection.html +48 -48
  15. package/docs/classes/DatabaseQueryError.html +26 -22
  16. package/docs/classes/DeadLockError.html +27 -23
  17. package/docs/classes/DiskSpaceError.html +22 -22
  18. package/docs/classes/DropTemporaryTableQuery.html +20 -17
  19. package/docs/classes/DuplicateEntryError.html +22 -22
  20. package/docs/classes/EntityNotFoundError.html +22 -22
  21. package/docs/classes/ExpiredTokenError.html +22 -22
  22. package/docs/classes/Handler.html +14 -14
  23. package/docs/classes/InternalError.html +22 -22
  24. package/docs/classes/InvalidCredentialsError.html +22 -22
  25. package/docs/classes/InvalidValueError.html +22 -22
  26. package/docs/classes/LineString.html +5 -5
  27. package/docs/classes/LockWaitTimeoutError.html +27 -23
  28. package/docs/classes/ManagedDatabaseConnection.html +27 -24
  29. package/docs/classes/Middleware.html +4 -4
  30. package/docs/classes/MissingConfigError.html +22 -22
  31. package/docs/classes/MissingParameterError.html +22 -22
  32. package/docs/classes/MySQLConnection.html +50 -50
  33. package/docs/classes/MySQLDatabase.html +14 -14
  34. package/docs/classes/NotImplementedError.html +22 -22
  35. package/docs/classes/Point.html +5 -5
  36. package/docs/classes/Polygon.html +5 -5
  37. package/docs/classes/Query.html +20 -17
  38. package/docs/classes/RawError.html +23 -23
  39. package/docs/classes/RawQuery.html +20 -17
  40. package/docs/classes/Request.html +19 -19
  41. package/docs/classes/Response.html +12 -12
  42. package/docs/classes/ResponseData.html +8 -8
  43. package/docs/classes/ServiceProvider.html +16 -16
  44. package/docs/classes/ServiceResponse.html +6 -6
  45. package/docs/classes/SetSessionVariableQuery.html +20 -17
  46. package/docs/classes/StormError.html +22 -22
  47. package/docs/classes/TemporaryTableQuery.html +20 -17
  48. package/docs/classes/TimeoutError.html +23 -23
  49. package/docs/classes/Token.html +3 -3
  50. package/docs/classes/TokenManager.html +5 -5
  51. package/docs/classes/Transaction.html +9 -9
  52. package/docs/classes/UnauthorizedAccessError.html +22 -22
  53. package/docs/enums/ErrorCode.html +10 -10
  54. package/docs/enums/ExitCode.html +3 -3
  55. package/docs/enums/HTTPMethod.html +5 -5
  56. package/docs/enums/IsolationLevel.html +5 -5
  57. package/docs/enums/JWTError.html +3 -3
  58. package/docs/enums/StatusCode.html +49 -49
  59. package/docs/enums/TransactionAccessLevel.html +4 -0
  60. package/docs/functions/getInstance.html +2 -2
  61. package/docs/hierarchy.html +1 -1
  62. package/docs/index.html +1 -1
  63. package/docs/interfaces/IAdditionalErrorDetails.html +1 -1
  64. package/docs/interfaces/IAuthTokenData.html +4 -4
  65. package/docs/interfaces/ICloudwatchConfig.html +4 -4
  66. package/docs/interfaces/ICloudwatchCredentials.html +3 -3
  67. package/docs/interfaces/ICloudwatchStreamConfig.html +3 -3
  68. package/docs/interfaces/IConfig.html +10 -10
  69. package/docs/interfaces/IDatabaseConfig.html +7 -7
  70. package/docs/interfaces/IDatabaseConnection.html +22 -19
  71. package/docs/interfaces/IDatabasePosition.html +4 -4
  72. package/docs/interfaces/IErrorResponse.html +6 -6
  73. package/docs/interfaces/IFormData.html +3 -3
  74. package/docs/interfaces/IHandler.html +2 -2
  75. package/docs/interfaces/IInsertQueryResult.html +4 -4
  76. package/docs/interfaces/IJWTVerifyOptions.html +2 -2
  77. package/docs/interfaces/IOKPacket.html +10 -10
  78. package/docs/interfaces/IParameterMap.html +1 -1
  79. package/docs/interfaces/IQueryable.html +7 -7
  80. package/docs/interfaces/IRequestResponse.html +3 -3
  81. package/docs/interfaces/IServiceHeaders.html +1 -1
  82. package/docs/interfaces/ISetSessionVariableQueryInput.html +3 -3
  83. package/docs/interfaces/IStormCLIArgs.html +7 -7
  84. package/docs/interfaces/ITemporaryTableQueryInput.html +3 -3
  85. package/docs/interfaces/IUpdateQueryResult.html +3 -3
  86. package/docs/interfaces/formidable.EmitData.html +5 -0
  87. package/docs/interfaces/formidable.EventData.html +8 -0
  88. package/docs/interfaces/formidable.File.html +25 -0
  89. package/docs/interfaces/formidable.FileJSON.html +19 -0
  90. package/docs/interfaces/formidable.Options.html +88 -0
  91. package/docs/interfaces/formidable.Part.html +148 -0
  92. package/docs/modules/formidable.html +1 -1
  93. package/docs/types/IDeleteQueryResult.html +1 -1
  94. package/docs/types/IHandlerError.html +2 -2
  95. package/docs/types/IHandlerResponse.html +2 -2
  96. package/docs/types/IStoredProcedureResult.html +3 -3
  97. package/docs/types/TCoordinate.html +1 -1
  98. package/docs/types/formidable.BufferEncoding.html +1 -0
  99. package/docs/types/formidable.DefaultOptions.html +1 -0
  100. package/docs/types/formidable.EnabledPlugins.html +1 -0
  101. package/docs/types/formidable.EventNames.html +15 -0
  102. package/docs/types/formidable.Fields.html +1 -0
  103. package/docs/types/formidable.Files.html +1 -0
  104. package/docs/types/formidable.MappedParsers.html +1 -0
  105. package/docs/types/formidable.Plugin.html +1 -0
  106. package/docs/types/formidable.PluginFunction.html +1 -0
  107. package/docs/types/formidable.Plugins.html +1 -0
  108. package/docs/variables/formidable.html +1 -0
  109. package/lib/DatabaseQueryError.d.ts +6 -0
  110. package/lib/DatabaseQueryError.js +8 -0
  111. package/lib/DatabaseQueryError.js.map +1 -1
  112. package/lib/IDatabaseConnection.d.ts +5 -1
  113. package/lib/ManagedDatabaseConnection.d.ts +2 -1
  114. package/lib/ManagedDatabaseConnection.js +2 -2
  115. package/lib/ManagedDatabaseConnection.js.map +1 -1
  116. package/lib/MySQLConnection.d.ts +2 -1
  117. package/lib/MySQLConnection.js +7 -5
  118. package/lib/MySQLConnection.js.map +1 -1
  119. package/lib/Query.d.ts +2 -0
  120. package/lib/Query.js +2 -0
  121. package/lib/Query.js.map +1 -1
  122. package/lib/Transaction.d.ts +3 -1
  123. package/lib/Transaction.js +4 -2
  124. package/lib/Transaction.js.map +1 -1
  125. package/lib/TransactionAccessLevel.d.ts +7 -0
  126. package/lib/TransactionAccessLevel.js +27 -0
  127. package/lib/TransactionAccessLevel.js.map +1 -0
  128. package/lib/api.d.ts +1 -0
  129. package/lib/api.js +4 -2
  130. package/lib/api.js.map +1 -1
  131. package/lib/private/StartTransactionQuery.d.ts +8 -1
  132. package/lib/private/StartTransactionQuery.js +11 -2
  133. package/lib/private/StartTransactionQuery.js.map +1 -1
  134. package/package.json +15 -15
  135. package/src/DatabaseQueryError.ts +9 -0
  136. package/src/IDatabaseConnection.ts +6 -1
  137. package/src/ManagedDatabaseConnection.ts +3 -2
  138. package/src/MySQLConnection.ts +9 -8
  139. package/src/Query.ts +2 -0
  140. package/src/Transaction.ts +5 -2
  141. package/src/TransactionAccessLevel.ts +23 -0
  142. package/src/api.ts +1 -0
  143. package/src/private/StartTransactionQuery.ts +22 -4
  144. package/docs/variables/formidable-1.html +0 -1
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ /*
3
+ Copyright 2017-2025 Norman Breau
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TransactionAccessLevel = void 0;
19
+ /**
20
+ * @since 8.6.0
21
+ */
22
+ var TransactionAccessLevel;
23
+ (function (TransactionAccessLevel) {
24
+ TransactionAccessLevel[TransactionAccessLevel["RW"] = 0] = "RW";
25
+ TransactionAccessLevel[TransactionAccessLevel["RO"] = 1] = "RO";
26
+ })(TransactionAccessLevel || (exports.TransactionAccessLevel = TransactionAccessLevel = {}));
27
+ //# sourceMappingURL=TransactionAccessLevel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionAccessLevel.js","sourceRoot":"","sources":["../src/TransactionAccessLevel.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF;;GAEG;AACH,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,+DAAE,CAAA;IACF,+DAAE,CAAA;AACN,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC"}
package/lib/api.d.ts CHANGED
@@ -18,6 +18,7 @@ export { IsolationLevel } from './IsolationLevel';
18
18
  export { Transaction } from './Transaction';
19
19
  export { IOKPacket } from './IOKPacket';
20
20
  export { IStoredProcedureResult } from './IStoredProcedureResult';
21
+ export { TransactionAccessLevel } from './TransactionAccessLevel';
21
22
  export { ErrorCode } from './ErrorCode';
22
23
  export { RawError } from './RawError';
23
24
  export { StormError, IErrorResponse, IAdditionalErrorDetails } from './StormError';
package/lib/api.js CHANGED
@@ -15,8 +15,8 @@
15
15
  limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.Point = exports.DatabaseCastObject = exports.ExitCode = exports.TokenManager = exports.Token = exports.BackendAuthenticationMiddleware = exports.ServiceResponse = exports.HTTPMethod = exports.ServiceProvider = exports.CORSMiddleware = exports.Handler = exports.ResponseData = exports.Response = exports.Request = exports.Middleware = exports.StatusCode = exports.LockWaitTimeoutError = exports.DeadLockError = exports.NotImplementedError = exports.DatabaseQueryError = exports.MissingConfigError = exports.DuplicateEntryError = exports.DiskSpaceError = exports.EntityNotFoundError = exports.UnauthorizedAccessError = exports.InvalidValueError = exports.ExpiredTokenError = exports.InternalError = exports.InvalidCredentialsError = exports.MissingParameterError = exports.JWTError = exports.TimeoutError = exports.StormError = exports.RawError = exports.ErrorCode = exports.Transaction = exports.IsolationLevel = exports.SetSessionVariableQuery = exports.RawQuery = exports.DropTemporaryTableQuery = exports.TemporaryTableQuery = exports.Query = exports.ManagedDatabaseConnection = exports.MySQLConnection = exports.MySQLDatabase = exports.DatabaseConnection = exports.Database = exports.ConfigLoader = exports.Application = exports.getInstance = void 0;
19
- exports.formidable = exports.Polygon = exports.LineString = void 0;
18
+ exports.DatabaseCastObject = exports.ExitCode = exports.TokenManager = exports.Token = exports.BackendAuthenticationMiddleware = exports.ServiceResponse = exports.HTTPMethod = exports.ServiceProvider = exports.CORSMiddleware = exports.Handler = exports.ResponseData = exports.Response = exports.Request = exports.Middleware = exports.StatusCode = exports.LockWaitTimeoutError = exports.DeadLockError = exports.NotImplementedError = exports.DatabaseQueryError = exports.MissingConfigError = exports.DuplicateEntryError = exports.DiskSpaceError = exports.EntityNotFoundError = exports.UnauthorizedAccessError = exports.InvalidValueError = exports.ExpiredTokenError = exports.InternalError = exports.InvalidCredentialsError = exports.MissingParameterError = exports.JWTError = exports.TimeoutError = exports.StormError = exports.RawError = exports.ErrorCode = exports.TransactionAccessLevel = exports.Transaction = exports.IsolationLevel = exports.SetSessionVariableQuery = exports.RawQuery = exports.DropTemporaryTableQuery = exports.TemporaryTableQuery = exports.Query = exports.ManagedDatabaseConnection = exports.MySQLConnection = exports.MySQLDatabase = exports.DatabaseConnection = exports.Database = exports.ConfigLoader = exports.Application = exports.getInstance = void 0;
19
+ exports.formidable = exports.Polygon = exports.LineString = exports.Point = void 0;
20
20
  const tslib_1 = require("tslib");
21
21
  // Application
22
22
  var instance_1 = require("./instance");
@@ -51,6 +51,8 @@ var IsolationLevel_1 = require("./IsolationLevel");
51
51
  Object.defineProperty(exports, "IsolationLevel", { enumerable: true, get: function () { return IsolationLevel_1.IsolationLevel; } });
52
52
  var Transaction_1 = require("./Transaction");
53
53
  Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return Transaction_1.Transaction; } });
54
+ var TransactionAccessLevel_1 = require("./TransactionAccessLevel");
55
+ Object.defineProperty(exports, "TransactionAccessLevel", { enumerable: true, get: function () { return TransactionAccessLevel_1.TransactionAccessLevel; } });
54
56
  // Errors
55
57
  var ErrorCode_1 = require("./ErrorCode");
56
58
  Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return ErrorCode_1.ErrorCode; } });
package/lib/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;;AAEF,cAAc;AACd,uCAAuC;AAA/B,uGAAA,WAAW,OAAA;AACnB,6CAGuB;AAFnB,0GAAA,WAAW,OAAA;AAIf,SAAS;AACT,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AAEpB,WAAW;AACX,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,yEAAsE;AAA9D,sIAAA,yBAAyB,OAAA;AACjC,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,6DAAqF;AAA7E,0HAAA,mBAAmB,OAAA;AAC3B,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAIhB,qEAAiG;AAAzF,kIAAA,uBAAuB,OAAA;AAC/B,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,6CAA0C;AAAlC,0GAAA,WAAW,OAAA;AAInB,SAAS;AACT,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,2CAIsB;AAHlB,wGAAA,UAAU,OAAA;AAId,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,iEAA8D;AAAtD,8HAAA,qBAAqB,OAAA;AAC7B,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AACzB,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AACzB,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,+DAA4D;AAApD,4HAAA,oBAAoB,OAAA;AAE5B,OAAO;AACP,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qCAAiD;AAAzC,kGAAA,OAAO,OAAA;AACf,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,qCAAmE;AAA3D,kGAAA,OAAO,OAAA;AACf,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,qFAAkF;AAA1E,kJAAA,+BAA+B,OAAA;AAoBvC,QAAQ;AACR,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AAEpB,QAAQ;AACR,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAIhB,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qCAAkC;AAA1B,kGAAA,OAAO,OAAA;AAEf,cAAc;AACd,+DAAyC;AACjC,gCAAU"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;;AAEF,cAAc;AACd,uCAAuC;AAA/B,uGAAA,WAAW,OAAA;AACnB,6CAGuB;AAFnB,0GAAA,WAAW,OAAA;AAIf,SAAS;AACT,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AAEpB,WAAW;AACX,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,yEAAsE;AAA9D,sIAAA,yBAAyB,OAAA;AACjC,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,6DAAqF;AAA7E,0HAAA,mBAAmB,OAAA;AAC3B,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAIhB,qEAAiG;AAAzF,kIAAA,uBAAuB,OAAA;AAC/B,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,6CAA0C;AAAlC,0GAAA,WAAW,OAAA;AAGnB,mEAAgE;AAAxD,gIAAA,sBAAsB,OAAA;AAE9B,SAAS;AACT,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,2CAIsB;AAHlB,wGAAA,UAAU,OAAA;AAId,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,iEAA8D;AAAtD,8HAAA,qBAAqB,OAAA;AAC7B,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AACzB,yDAAsD;AAA9C,sHAAA,iBAAiB,OAAA;AACzB,qEAAkE;AAA1D,kIAAA,uBAAuB,OAAA;AAC/B,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,6DAA0D;AAAlD,0HAAA,mBAAmB,OAAA;AAC3B,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,+DAA4D;AAApD,4HAAA,oBAAoB,OAAA;AAE5B,OAAO;AACP,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qCAAiD;AAAzC,kGAAA,OAAO,OAAA;AACf,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,qCAAmE;AAA3D,kGAAA,OAAO,OAAA;AACf,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AACtB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,qFAAkF;AAA1E,kJAAA,+BAA+B,OAAA;AAoBvC,QAAQ;AACR,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AAEpB,QAAQ;AACR,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAIhB,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qCAAkC;AAA1B,kGAAA,OAAO,OAAA;AAEf,cAAc;AACd,+DAAyC;AACjC,gCAAU"}
@@ -1,4 +1,11 @@
1
1
  import { Query } from '../Query';
2
- export declare class StartTransactionQuery extends Query<void, void> {
2
+ import { TransactionAccessLevel } from '../TransactionAccessLevel';
3
+ /**
4
+ * @since 8.6.0
5
+ */
6
+ export interface IStartTransactionQueryInput {
7
+ accessLevel?: TransactionAccessLevel;
8
+ }
9
+ export declare class StartTransactionQuery extends Query<IStartTransactionQueryInput, void> {
3
10
  protected _getQuery(): string;
4
11
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- Copyright 2017-2021 Norman Breau
3
+ Copyright 2017-2025 Norman Breau
4
4
 
5
5
  Licensed under the Apache License, Version 2.0 (the "License");
6
6
  you may not use this file except in compliance with the License.
@@ -17,9 +17,18 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.StartTransactionQuery = void 0;
19
19
  const Query_1 = require("../Query");
20
+ const TransactionAccessLevel_1 = require("../TransactionAccessLevel");
20
21
  class StartTransactionQuery extends Query_1.Query {
21
22
  _getQuery() {
22
- return 'START TRANSACTION';
23
+ let params = this.getParameters();
24
+ let accessString;
25
+ if (params?.accessLevel === TransactionAccessLevel_1.TransactionAccessLevel.RO) {
26
+ accessString = 'READ ONLY';
27
+ }
28
+ else {
29
+ accessString = 'READ WRITE';
30
+ }
31
+ return `START TRANSACTION ${accessString}`;
23
32
  }
24
33
  }
25
34
  exports.StartTransactionQuery = StartTransactionQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"StartTransactionQuery.js","sourceRoot":"","sources":["../../src/private/StartTransactionQuery.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,oCAA+B;AAE/B,MAAa,qBAAsB,SAAQ,aAAiB;IAC9C,SAAS;QACf,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ;AAJD,sDAIC"}
1
+ {"version":3,"file":"StartTransactionQuery.js","sourceRoot":"","sources":["../../src/private/StartTransactionQuery.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,oCAA+B;AAC/B,sEAAmE;AASnE,MAAa,qBAAsB,SAAQ,aAAwC;IAC5D,SAAS;QACxB,IAAI,MAAM,GAAgC,IAAI,CAAC,aAAa,EAAE,CAAC;QAE/D,IAAI,YAAoB,CAAC;QACzB,IAAI,MAAM,EAAE,WAAW,KAAK,+CAAsB,CAAC,EAAE,EAAE,CAAC;YACpD,YAAY,GAAG,WAAW,CAAC;QAC/B,CAAC;aACI,CAAC;YACF,YAAY,GAAG,YAAY,CAAC;QAChC,CAAC;QAED,OAAO,qBAAqB,YAAY,EAAE,CAAC;IAC/C,CAAC;CACJ;AAdD,sDAcC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@breautek/storm",
3
- "version": "8.4.0",
3
+ "version": "8.6.0",
4
4
  "description": "Object-Oriented REST API framework",
5
5
  "main": "lib/api.js",
6
6
  "types": "lib/api.d.ts",
@@ -46,22 +46,22 @@
46
46
  "dependencies": {
47
47
  "@arashi/token": "1.0.1",
48
48
  "@breautek/merge-change": "1.0.0",
49
- "@types/body-parser": "1.19.5",
50
- "@types/express": "4.17.21",
49
+ "@types/body-parser": "1.19.6",
50
+ "@types/express": "4.17.23",
51
51
  "@types/formidable": "3.4.5",
52
52
  "@types/jsonwebtoken": "9.0.7",
53
- "@types/mysql": "2.15.26",
53
+ "@types/mysql": "2.15.27",
54
54
  "@types/node": "22.13.10",
55
55
  "@types/uuid": "10.0.0",
56
56
  "ajv": "8.17.1",
57
57
  "body-parser": "1.20.3",
58
58
  "commander": "13.1.0",
59
59
  "express": "4.21.2",
60
- "form-data": "4.0.2",
61
- "formidable": "3.5.2",
60
+ "form-data": "4.0.3",
61
+ "formidable": "3.5.4",
62
62
  "jsonwebtoken": "9.0.2",
63
63
  "mysql": "2.18.1",
64
- "sql-formatter": "15.4.11",
64
+ "sql-formatter": "15.6.6",
65
65
  "tslib": "2.8.1",
66
66
  "uuid": "11.1.0"
67
67
  },
@@ -72,15 +72,15 @@
72
72
  "devDependencies": {
73
73
  "@arashi/interfaces": "1.2.1",
74
74
  "@arashi/logger": "4.1.3",
75
- "@totalpave/eslint-plugin": "7.0.10",
76
- "@types/jest": "29.5.14",
75
+ "@totalpave/eslint-plugin": "7.0.11",
76
+ "@types/jest": "30.0.0",
77
77
  "auto-changelog": "2.5.0",
78
- "jest": "29.7.0",
79
- "jest-jasmine2": "29.7.0",
80
- "ts-jest": "29.2.6",
78
+ "jest": "30.0.3",
79
+ "jest-jasmine2": "30.0.3",
80
+ "ts-jest": "29.4.0",
81
81
  "ts-node": "10.9.2",
82
- "typedoc": "0.27.9",
83
- "typedoc-plugin-markdown": "4.4.2",
84
- "typescript": "5.8.2"
82
+ "typedoc": "0.28.7",
83
+ "typedoc-plugin-markdown": "4.7.0",
84
+ "typescript": "5.8.3"
85
85
  }
86
86
  }
@@ -36,6 +36,15 @@ export class DatabaseQueryError extends StormError<{
36
36
  return 0;
37
37
  }
38
38
 
39
+ /**
40
+ * If the underlying error is a database error, then
41
+ * returns the database error code as sting.
42
+ * @since 8.5.0
43
+ */
44
+ public getDBErrorCode(): string | null {
45
+ return this.getPrivateDetails()?.error?.code || null;
46
+ }
47
+
39
48
  public getHTTPCode(): StatusCode {
40
49
  return StatusCode.INTERNAL_ERROR;
41
50
  }
@@ -18,6 +18,7 @@ import { Readable } from 'stream';
18
18
  import { IQueryable } from './IQueryable';
19
19
  import { IsolationLevel } from './IsolationLevel';
20
20
  import { IDatabasePosition } from './IDatabasePosition';
21
+ import { TransactionAccessLevel } from './TransactionAccessLevel';
21
22
 
22
23
  export interface IDatabaseConnection {
23
24
  setInstantiationStack(stack: string): void;
@@ -27,10 +28,14 @@ export interface IDatabaseConnection {
27
28
  setTimeout(timeout: number): void;
28
29
  getTimeout(): number;
29
30
  query(query: IQueryable<any>, params?: any): Promise<any>;
31
+
32
+ /**
33
+ * @deprecated - Streaming queries does not support post processing, creating a confusing API
34
+ */
30
35
  stream(query: IQueryable<any>, params?: any, streamOptions?: any): Readable;
31
36
  close(forceClose?: boolean): Promise<void>;
32
37
  isClosed(): boolean;
33
- startTransaction(level?: IsolationLevel): Promise<void>;
38
+ startTransaction(level?: IsolationLevel, accessLevel?: TransactionAccessLevel): Promise<void>;
34
39
  isTransaction(): boolean;
35
40
  commit(): Promise<void>;
36
41
  rollback(): Promise<void>;
@@ -21,6 +21,7 @@ import { Query } from './Query';
21
21
  import { IsolationLevel } from './IsolationLevel';
22
22
  import { IDatabasePosition } from './IDatabasePosition';
23
23
  import { IQueryable } from './IQueryable';
24
+ import { TransactionAccessLevel } from './TransactionAccessLevel';
24
25
 
25
26
  const TAG: string = 'ManagedDatabaseConnection';
26
27
 
@@ -176,11 +177,11 @@ export class ManagedDatabaseConnection implements IDatabaseConnection {
176
177
  });
177
178
  }
178
179
 
179
- public startTransaction(isolationLevel?: IsolationLevel): Promise<void> {
180
+ public startTransaction(isolationLevel?: IsolationLevel, accessLevel?: TransactionAccessLevel): Promise<void> {
180
181
  return new Promise<void>((resolve, reject) => {
181
182
  this.$getConnection().then((connection: IDatabaseConnection) => {
182
183
  if (!this.isManaged()) {
183
- connection.startTransaction(isolationLevel).then(resolve).catch(reject);
184
+ connection.startTransaction(isolationLevel, accessLevel).then(resolve).catch(reject);
184
185
  }
185
186
  else {
186
187
  resolve();
@@ -19,7 +19,6 @@ import {DatabaseQueryError} from './DatabaseQueryError';
19
19
  import {getInstance} from './instance';
20
20
  import * as MySQL from 'mysql';
21
21
  import {Readable} from 'stream';
22
- import {Query} from './Query';
23
22
  import { StartTransactionQuery } from './private/StartTransactionQuery';
24
23
  import { CommitQuery } from './private/CommitQuery';
25
24
  import { RollbackQuery } from './private/RollbackQuery';
@@ -37,6 +36,7 @@ import { GetSlavePositionQuery } from './private/GetSlavePositionQuery';
37
36
  import { GetMasterPositionQuery } from './private/GetMasterPositionQuery';
38
37
  import { IQueryable } from './IQueryable';
39
38
  import { queryFormatter } from './mysql/queryFormatter';
39
+ import { TransactionAccessLevel } from './TransactionAccessLevel';
40
40
 
41
41
  const DEFAULT_HIGH_WATERMARK: number = 512; // in number of result objects
42
42
  const TAG: string = 'MySQLConnection';
@@ -56,9 +56,8 @@ const SQL_FORMATTING_OPTIONS: SQLFormatter.FormatOptions = {
56
56
  functionCase: 'upper'
57
57
  };
58
58
 
59
- let startTransactionQuery: Query = new StartTransactionQuery();
60
- let commitQuery: Query = new CommitQuery();
61
- let rollbackQuery: Query = new RollbackQuery();
59
+ let commitQuery: CommitQuery = new CommitQuery();
60
+ let rollbackQuery: RollbackQuery = new RollbackQuery();
62
61
 
63
62
  export class MySQLConnection extends DatabaseConnection<MySQL.PoolConnection> {
64
63
  private $transaction: boolean;
@@ -196,9 +195,9 @@ export class MySQLConnection extends DatabaseConnection<MySQL.PoolConnection> {
196
195
  return queryObject.stream(streamOptions);
197
196
  }
198
197
 
199
- public override async startTransaction(isolationLevel?: IsolationLevel): Promise<void> {
200
- if (this.isReadOnly()) {
201
- throw new Error('A readonly connection cannot start a transaction.')
198
+ public override async startTransaction(isolationLevel?: IsolationLevel, accessLevel: TransactionAccessLevel = TransactionAccessLevel.RW): Promise<void> {
199
+ if (this.isReadOnly() && accessLevel === TransactionAccessLevel.RW) {
200
+ throw new Error('A readonly connection cannot start a read/write transaction.')
202
201
  }
203
202
 
204
203
  if (this.isTransaction()) {
@@ -211,7 +210,9 @@ export class MySQLConnection extends DatabaseConnection<MySQL.PoolConnection> {
211
210
  if (isolationLevel) {
212
211
  await new SetIsolationLevelQuery(isolationLevel).execute(this);
213
212
  }
214
- await startTransactionQuery.execute(this);
213
+ await new StartTransactionQuery({
214
+ accessLevel: accessLevel
215
+ }).execute(this);
215
216
  }
216
217
  catch (ex) {
217
218
  this.$transaction = false;
package/src/Query.ts CHANGED
@@ -76,6 +76,8 @@ export abstract class Query<TQueryParameters = any, TQueryResultSet = any, TQuer
76
76
  /**
77
77
  * Override to augment/manipulate the returned result set.
78
78
  *
79
+ * @deprecated - Streaming queries does not support post processing, creating a confusing API
80
+ *
79
81
  * @param connection The connection object used for this query execution. Useful if further queries are required.
80
82
  * @param resultset The original result set
81
83
  */
@@ -22,6 +22,7 @@ import { InternalError } from './InternalError';
22
22
  import { DeadLockError } from './DeadLockError';
23
23
  import { InvalidValueError } from './InvalidValueError';
24
24
  import { LockWaitTimeoutError } from './LockWaitTimeoutError';
25
+ import { TransactionAccessLevel } from './TransactionAccessLevel';
25
26
 
26
27
  const TAG: string = 'Transaction';
27
28
 
@@ -43,8 +44,9 @@ export class Transaction implements IQueryable<void> {
43
44
  private $application: Application;
44
45
  private $isolationLevel: IsolationLevel;
45
46
  private $executor: ITransactionExecutor;
47
+ private $accessLevel: TransactionAccessLevel;
46
48
 
47
- public constructor(app: Application, executor: ITransactionExecutor, retryLimit: number = Infinity, isolationLevel: IsolationLevel = IsolationLevel.REPEATABLE_READ) {
49
+ public constructor(app: Application, executor: ITransactionExecutor, retryLimit: number = Infinity, isolationLevel: IsolationLevel = IsolationLevel.REPEATABLE_READ, accessLevel: TransactionAccessLevel = TransactionAccessLevel.RW) {
48
50
  this.$application = app;
49
51
  this.$executor = executor;
50
52
 
@@ -57,6 +59,7 @@ export class Transaction implements IQueryable<void> {
57
59
 
58
60
  this.$retryLimit = retryLimit;
59
61
  this.$isolationLevel = isolationLevel;
62
+ this.$accessLevel = accessLevel;
60
63
  }
61
64
 
62
65
  public async onPreQuery(connection: IDatabaseConnection): Promise<void> {}
@@ -81,7 +84,7 @@ export class Transaction implements IQueryable<void> {
81
84
  do {
82
85
  attemptCount++;
83
86
  this.$application.getLogger().info(TAG, `Starting transaction attempt ${attemptCount} of ${this.$retryLimit === Infinity ? 'Infinity' : this.$retryLimit.toString()}`);
84
- await connection.startTransaction(this.$isolationLevel);
87
+ await connection.startTransaction(this.$isolationLevel, this.$accessLevel);
85
88
  try {
86
89
  await this.$executor(connection);
87
90
  await connection.commit();
@@ -0,0 +1,23 @@
1
+ /*
2
+ Copyright 2017-2025 Norman Breau
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * @since 8.6.0
19
+ */
20
+ export enum TransactionAccessLevel {
21
+ RW,
22
+ RO
23
+ }
package/src/api.ts CHANGED
@@ -42,6 +42,7 @@ export {IsolationLevel} from './IsolationLevel';
42
42
  export {Transaction} from './Transaction';
43
43
  export {IOKPacket} from './IOKPacket';
44
44
  export {IStoredProcedureResult} from './IStoredProcedureResult';
45
+ export {TransactionAccessLevel} from './TransactionAccessLevel';
45
46
 
46
47
  // Errors
47
48
  export {ErrorCode} from './ErrorCode';
@@ -1,5 +1,5 @@
1
1
  /*
2
- Copyright 2017-2021 Norman Breau
2
+ Copyright 2017-2025 Norman Breau
3
3
 
4
4
  Licensed under the Apache License, Version 2.0 (the "License");
5
5
  you may not use this file except in compliance with the License.
@@ -15,9 +15,27 @@
15
15
  */
16
16
 
17
17
  import {Query} from '../Query';
18
+ import { TransactionAccessLevel } from '../TransactionAccessLevel';
18
19
 
19
- export class StartTransactionQuery extends Query<void, void> {
20
- protected _getQuery(): string {
21
- return 'START TRANSACTION';
20
+ /**
21
+ * @since 8.6.0
22
+ */
23
+ export interface IStartTransactionQueryInput {
24
+ accessLevel?: TransactionAccessLevel;
25
+ }
26
+
27
+ export class StartTransactionQuery extends Query<IStartTransactionQueryInput, void> {
28
+ protected override _getQuery(): string {
29
+ let params: IStartTransactionQueryInput = this.getParameters();
30
+
31
+ let accessString: string;
32
+ if (params?.accessLevel === TransactionAccessLevel.RO) {
33
+ accessString = 'READ ONLY';
34
+ }
35
+ else {
36
+ accessString = 'READ WRITE';
37
+ }
38
+
39
+ return `START TRANSACTION ${accessString}`;
22
40
  }
23
41
  }
@@ -1 +0,0 @@
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>formidable | @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(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@breautek/storm</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" 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></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">@breautek/storm</a></li><li><a href="formidable-1.html">formidable</a></li></ul><h1>Variable formidable</h1></div><div class="tsd-signature"><span class="tsd-kind-variable">formidable</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/>    <span class="tsd-kind-namespace">default</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">defaultOptions</span><span class="tsd-signature-symbol">:</span> <a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultdefaultoptions" class="tsd-signature-type tsd-kind-type-alias">DefaultOptions</a><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">DummyParser</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">DummyParser</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">enabledPlugins</span><span class="tsd-signature-symbol">:</span> <a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultenabledplugins" class="tsd-signature-type tsd-kind-type-alias">EnabledPlugins</a><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">errors</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">FormidableError</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">FormidableError</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;aborted&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;missingPlugin&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;pluginFunction&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;noParser&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;uninitializedParser&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;filenameNotString&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;maxFieldsSizeExceeded&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;maxFieldsExceeded&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;smallerThanMinFileSize&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;biggerThanMaxFileSize&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;noEmptyFiles&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;missingContentType&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;malformedMultipart&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;missingMultipartBoundary&quot;</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;unknownTransferEncoding&quot;</span><span class="tsd-signature-symbol">,</span><br/>        <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">File</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">PersistentFile</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">formidable</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultoptions" class="tsd-signature-type tsd-kind-interface">Options</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">IncomingForm</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">Formidable</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">IncomingForm</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">IncomingForm</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">IncomingForm</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">JSONParser</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">JSONParser</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">MultipartParser</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">MultipartParser</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">OctetStreamParser</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">OctetStreamParser</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">parsers</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">__module</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PersistentFile</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">PersistentFile</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">plugins</span><span class="tsd-signature-symbol">:</span> <a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultenabledplugins" class="tsd-signature-type tsd-kind-type-alias">EnabledPlugins</a><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">QuerystringParser</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">QuerystringParser</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">StreamingQuerystring</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">StreamingQuerystring</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">VolatileFile</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">VolatileFile</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-call-signature">default</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultoptions" class="tsd-signature-type tsd-kind-interface">Options</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">IncomingForm</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">defaultOptions</span><a id="__typedefaultoptions-1" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultdefaultoptions" class="tsd-signature-type tsd-kind-type-alias">DefaultOptions</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">DummyParser</span><a id="__typedummyparser" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">DummyParser</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">enabledPlugins</span><a id="__typeenabledplugins" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultenabledplugins" class="tsd-signature-type tsd-kind-type-alias">EnabledPlugins</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">errors</span><a id="__typeerrors" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">FormidableError</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">FormidableError</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;aborted&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;missingPlugin&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;pluginFunction&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;noParser&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;uninitializedParser&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;filenameNotString&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;maxFieldsSizeExceeded&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;maxFieldsExceeded&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;smallerThanMinFileSize&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;biggerThanMaxFileSize&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;noEmptyFiles&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;missingContentType&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;malformedMultipart&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;missingMultipartBoundary&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;unknownTransferEncoding&quot;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">File</span><a id="__typefile" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">PersistentFile</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">formidable</span><a id="__typeformidable" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultoptions" class="tsd-signature-type tsd-kind-interface">Options</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">IncomingForm</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">Formidable</span><a id="__typeformidable-1" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">IncomingForm</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">IncomingForm</span><a id="__typeincomingform" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">IncomingForm</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">JSONParser</span><a id="__typejsonparser" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">JSONParser</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">MultipartParser</span><a id="__typemultipartparser" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">MultipartParser</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">OctetStreamParser</span><a id="__typeoctetstreamparser" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">OctetStreamParser</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">parsers</span><a id="__typeparsers" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">__module</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">PersistentFile</span><a id="__typepersistentfile" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">PersistentFile</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">plugins</span><a id="__typeplugins" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultenabledplugins" class="tsd-signature-type tsd-kind-type-alias">EnabledPlugins</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">QuerystringParser</span><a id="__typequerystringparser" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">QuerystringParser</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">StreamingQuerystring</span><a id="__typestreamingquerystring" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">StreamingQuerystring</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">VolatileFile</span><a id="__typevolatilefile" class="tsd-anchor"></a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <span class="tsd-signature-type">VolatileFile</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-method">default</span><a id="__typedefault-1" class="tsd-anchor"></a><span class="tsd-signature-symbol">:</span>function</h5><ul class="tsd-signatures tsd-is-external"><li class="tsd-is-external"><div class="tsd-signature tsd-anchor-link"><a id="__typedefault-2" class="tsd-anchor"></a><span class="tsd-kind-call-signature">default</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultoptions" class="tsd-signature-type tsd-kind-interface">Options</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">IncomingForm</span><a href="#__typedefault-2" 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></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">options</span>: <a href="formidable-1.html#__typedefault" class="tsd-signature-type tsd-kind-namespace">default</a><span class="tsd-signature-symbol">.</span><a href="formidable-1.html#__typedefaultoptions" class="tsd-signature-type tsd-kind-interface">Options</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IncomingForm</span></h4><aside class="tsd-sources"><ul><li>Defined in node_modules/@types/formidable/index.d.ts:315</li></ul></aside></div></li></ul></li></ul></div><aside class="tsd-sources"><ul><li>Defined in node_modules/@types/formidable/index.d.ts:10</li><li>Defined in node_modules/@types/formidable/index.d.ts:314</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"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>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>