@breautek/storm 9.0.4 → 9.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +6 -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/ConfigLoader.html +3 -3
  6. package/docs/classes/Database.html +2 -2
  7. package/docs/classes/DatabaseCastObject.html +2 -2
  8. package/docs/classes/DatabaseConnection.html +21 -21
  9. package/docs/classes/DatabaseQueryError.html +6 -6
  10. package/docs/classes/DeadLockError.html +6 -6
  11. package/docs/classes/DiskSpaceError.html +5 -5
  12. package/docs/classes/DropTemporaryTableQuery.html +7 -7
  13. package/docs/classes/DuplicateEntryError.html +5 -5
  14. package/docs/classes/EntityNotFoundError.html +5 -5
  15. package/docs/classes/ExpiredTokenError.html +5 -5
  16. package/docs/classes/Handler.html +2 -2
  17. package/docs/classes/InternalError.html +5 -5
  18. package/docs/classes/InvalidCredentialsError.html +5 -5
  19. package/docs/classes/InvalidValueError.html +5 -5
  20. package/docs/classes/LineString.html +2 -2
  21. package/docs/classes/LockWaitTimeoutError.html +6 -6
  22. package/docs/classes/ManagedDatabaseConnection.html +5 -5
  23. package/docs/classes/Middleware.html +2 -2
  24. package/docs/classes/MissingConfigError.html +5 -5
  25. package/docs/classes/MissingParameterError.html +5 -5
  26. package/docs/classes/MySQLConnection.html +25 -25
  27. package/docs/classes/MySQLDatabase.html +2 -2
  28. package/docs/classes/NotImplementedError.html +5 -5
  29. package/docs/classes/Point.html +2 -2
  30. package/docs/classes/Polygon.html +2 -2
  31. package/docs/classes/Query.html +7 -7
  32. package/docs/classes/RawError.html +5 -5
  33. package/docs/classes/RawQuery.html +7 -7
  34. package/docs/classes/Request.html +6 -2
  35. package/docs/classes/Response.html +2 -2
  36. package/docs/classes/ResponseData.html +5 -2
  37. package/docs/classes/ServiceProvider.html +2 -2
  38. package/docs/classes/ServiceResponse.html +2 -2
  39. package/docs/classes/SetSessionVariableQuery.html +7 -7
  40. package/docs/classes/StormError.html +5 -5
  41. package/docs/classes/TemporaryTableQuery.html +7 -7
  42. package/docs/classes/TimeoutError.html +5 -5
  43. package/docs/classes/Token.html +2 -2
  44. package/docs/classes/TokenManager.html +2 -2
  45. package/docs/classes/Transaction.html +2 -2
  46. package/docs/classes/UnauthorizedAccessError.html +5 -5
  47. package/docs/enums/ErrorCode.html +2 -2
  48. package/docs/enums/ExitCode.html +2 -2
  49. package/docs/enums/HTTPMethod.html +2 -2
  50. package/docs/enums/IsolationLevel.html +2 -2
  51. package/docs/enums/JWTError.html +2 -2
  52. package/docs/enums/StatusCode.html +2 -2
  53. package/docs/enums/TransactionAccessLevel.html +2 -2
  54. package/docs/functions/getInstance.html +1 -1
  55. package/docs/hierarchy.html +1 -1
  56. package/docs/interfaces/IAdditionalErrorDetails.html +1 -1
  57. package/docs/interfaces/ICloudwatchConfig.html +2 -2
  58. package/docs/interfaces/ICloudwatchCredentials.html +2 -2
  59. package/docs/interfaces/ICloudwatchStreamConfig.html +2 -2
  60. package/docs/interfaces/IConfig.html +2 -2
  61. package/docs/interfaces/IDatabaseConfig.html +2 -2
  62. package/docs/interfaces/IDatabaseConnection.html +5 -5
  63. package/docs/interfaces/IDatabasePosition.html +2 -2
  64. package/docs/interfaces/IErrorResponse.html +2 -2
  65. package/docs/interfaces/IFormData.html +2 -2
  66. package/docs/interfaces/IInsertQueryResult.html +2 -2
  67. package/docs/interfaces/IJWTVerifyOptions.html +2 -2
  68. package/docs/interfaces/IOKPacket.html +2 -2
  69. package/docs/interfaces/IParameterMap.html +1 -1
  70. package/docs/interfaces/IQueryable.html +2 -2
  71. package/docs/interfaces/IRequestResponse.html +2 -2
  72. package/docs/interfaces/ISetSessionVariableQueryInput.html +2 -2
  73. package/docs/interfaces/IStormCLIArgs.html +2 -2
  74. package/docs/interfaces/ITemporaryTableQueryInput.html +2 -2
  75. package/docs/interfaces/IUpdateQueryResult.html +2 -2
  76. package/docs/interfaces/formidable.FileJSON.html +1 -1
  77. package/docs/interfaces/formidable.Part.html +1 -1
  78. package/docs/types/IDeleteQueryResult.html +1 -1
  79. package/docs/types/IStoredProcedureResult.html +1 -1
  80. package/docs/types/TCoordinate.html +1 -1
  81. package/docs/types/TSerializableResponse.html +1 -1
  82. package/docs/types/TSupportedResponsePrimitives.html +1 -1
  83. package/docs/types/TSupportedResponseTypes.html +1 -1
  84. package/jest.config.js +2 -0
  85. package/lib/Request.d.ts +10 -1
  86. package/lib/Request.js +29 -0
  87. package/lib/Request.js.map +1 -1
  88. package/lib/ResponseData.d.ts +8 -0
  89. package/lib/ResponseData.js +16 -0
  90. package/lib/ResponseData.js.map +1 -1
  91. package/package.json +1 -1
  92. package/src/Request.ts +38 -1
  93. package/src/ResponseData.ts +20 -0
package/lib/Request.d.ts CHANGED
@@ -3,6 +3,7 @@ import { IncomingHttpHeaders } from 'http';
3
3
  import { Writable } from 'stream';
4
4
  import { IFormData } from './IFormData';
5
5
  import { IAuthTokenData } from './IAuthTokenData';
6
+ import { IDatabasePosition } from './IDatabasePosition';
6
7
  export interface IParameterMap {
7
8
  [key: string]: string;
8
9
  }
@@ -22,8 +23,16 @@ export declare class Request<TBody = any, TAuthToken extends IAuthTokenData = IA
22
23
  getMethod(): string;
23
24
  getURL(): string;
24
25
  isSecure(): boolean;
25
- pipe(destination: Writable): any;
26
+ pipe(destination: Writable): Writable;
26
27
  unpipe(source: Writable): void;
27
28
  getRequestSource(): express.Request;
29
+ /**
30
+ * Reads the Page/Position DB headers if present
31
+ * Will return null if headers are not parseable.
32
+ *
33
+ * @since 9.1.0
34
+ * @returns {IDatabasePosition}
35
+ */
36
+ getDatabasePosition(): IDatabasePosition;
28
37
  getAuthenticationToken(): Promise<TAuthToken>;
29
38
  }
package/lib/Request.js CHANGED
@@ -96,6 +96,35 @@ class Request {
96
96
  getRequestSource() {
97
97
  return this.$request;
98
98
  }
99
+ /**
100
+ * Reads the Page/Position DB headers if present
101
+ * Will return null if headers are not parseable.
102
+ *
103
+ * @since 9.1.0
104
+ * @returns {IDatabasePosition}
105
+ */
106
+ getDatabasePosition() {
107
+ let pageStr = this.getHeader('X-DATABASE-PAGE');
108
+ let positionStr = this.getHeader('X-DATABASE-POSITION');
109
+ let page = null;
110
+ let position = null;
111
+ let out = null;
112
+ if (pageStr && positionStr) {
113
+ page = parseInt(pageStr);
114
+ position = parseInt(positionStr);
115
+ if (isNaN(page) || isNaN(position)) {
116
+ page = null;
117
+ position = null;
118
+ }
119
+ }
120
+ if (page && position) {
121
+ out = {
122
+ page,
123
+ position
124
+ };
125
+ }
126
+ return out;
127
+ }
99
128
  async getAuthenticationToken() {
100
129
  let authHeader = (0, instance_1.getInstance)().getConfig().authentication_header;
101
130
  let tdata = null;
@@ -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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"}
@@ -1,3 +1,4 @@
1
+ import { IDatabasePosition } from './IDatabasePosition';
1
2
  import { StatusCode } from './StatusCode';
2
3
  export declare class ResponseData<TData = any> {
3
4
  private $status;
@@ -5,6 +6,13 @@ export declare class ResponseData<TData = any> {
5
6
  private $headers;
6
7
  private $redirect;
7
8
  constructor(status: StatusCode, data?: TData);
9
+ /**
10
+ * Sets the DB position response headers
11
+ *
12
+ * @since 9.1.0
13
+ * @param pos
14
+ */
15
+ setDatabasePosition(pos: IDatabasePosition | null): void;
8
16
  setHeader(name: string, value: string): void;
9
17
  getHeaders(): Map<string, string>;
10
18
  getStatus(): StatusCode;
@@ -23,6 +23,22 @@ class ResponseData {
23
23
  this.$data = data;
24
24
  this.$redirect = null;
25
25
  }
26
+ /**
27
+ * Sets the DB position response headers
28
+ *
29
+ * @since 9.1.0
30
+ * @param pos
31
+ */
32
+ setDatabasePosition(pos) {
33
+ let page = '0';
34
+ let position = '0';
35
+ if (pos) {
36
+ page = pos.page.toString();
37
+ position = pos.position.toString();
38
+ }
39
+ this.setHeader('X-DATABASE-PAGE', page);
40
+ this.setHeader('X-DATABASE-POSITION', position);
41
+ }
26
42
  setHeader(name, value) {
27
43
  this.$headers.set(name, value);
28
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseData.js","sourceRoot":"","sources":["../src/ResponseData.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAIF,MAAa,YAAY;IAMrB,YAAmB,MAAkB,EAAE,IAAY;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEM,SAAS,CAAC,IAAY,EAAE,KAAa;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAC,GAAW;QACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACzB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AApCD,oCAoCC"}
1
+ {"version":3,"file":"ResponseData.js","sourceRoot":"","sources":["../src/ResponseData.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAKF,MAAa,YAAY;IAMrB,YAAmB,MAAkB,EAAE,IAAY;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACI,mBAAmB,CAAC,GAA6B;QACpD,IAAI,IAAI,GAAW,GAAG,CAAC;QACvB,IAAI,QAAQ,GAAW,GAAG,CAAC;QAE3B,IAAI,GAAG,EAAE,CAAC;YACN,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEM,SAAS,CAAC,IAAY,EAAE,KAAa;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAC,GAAW;QACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACzB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAvDD,oCAuDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@breautek/storm",
3
- "version": "9.0.4",
3
+ "version": "9.0.5",
4
4
  "description": "Object-Oriented REST API framework",
5
5
  "main": "lib/api.js",
6
6
  "types": "lib/api.d.ts",
package/src/Request.ts CHANGED
@@ -32,6 +32,7 @@ import {StatusCode} from './StatusCode';
32
32
  import { InternalError } from './InternalError';
33
33
  // eslint-disable-next-line @typescript-eslint/no-require-imports
34
34
  import IncomingForm = require('formidable/Formidable');
35
+ import { IDatabasePosition } from './IDatabasePosition';
35
36
 
36
37
  export interface IParameterMap {
37
38
  [key: string]: string;
@@ -118,7 +119,7 @@ export class Request<TBody = any, TAuthToken extends IAuthTokenData = IAuthToken
118
119
  return this.$request.secure;
119
120
  }
120
121
 
121
- public pipe(destination: Writable): any {
122
+ public pipe(destination: Writable): Writable {
122
123
  return this.$request.pipe(destination);
123
124
  }
124
125
 
@@ -130,6 +131,42 @@ export class Request<TBody = any, TAuthToken extends IAuthTokenData = IAuthToken
130
131
  return this.$request;
131
132
  }
132
133
 
134
+ /**
135
+ * Reads the Page/Position DB headers if present
136
+ * Will return null if headers are not parseable.
137
+ *
138
+ * @since 9.1.0
139
+ * @returns {IDatabasePosition}
140
+ */
141
+ public getDatabasePosition(): IDatabasePosition {
142
+ let pageStr: string = this.getHeader('X-DATABASE-PAGE');
143
+ let positionStr: string = this.getHeader('X-DATABASE-POSITION');
144
+
145
+ let page: number = null;
146
+ let position: number = null;
147
+
148
+ let out: IDatabasePosition = null;
149
+
150
+ if (pageStr && positionStr) {
151
+ page = parseInt(pageStr);
152
+ position = parseInt(positionStr);
153
+
154
+ if (isNaN(page) || isNaN(position)) {
155
+ page = null;
156
+ position = null;
157
+ }
158
+ }
159
+
160
+ if (page && position) {
161
+ out = {
162
+ page,
163
+ position
164
+ };
165
+ }
166
+
167
+ return out;
168
+ }
169
+
133
170
  public async getAuthenticationToken(): Promise<TAuthToken> {
134
171
  let authHeader: string = getInstance().getConfig().authentication_header;
135
172
  let tdata: TAuthToken = null;
@@ -14,6 +14,7 @@
14
14
  limitations under the License.
15
15
  */
16
16
 
17
+ import { IDatabasePosition } from './IDatabasePosition';
17
18
  import {StatusCode} from './StatusCode';
18
19
 
19
20
  export class ResponseData<TData = any> {
@@ -29,6 +30,25 @@ export class ResponseData<TData = any> {
29
30
  this.$redirect = null;
30
31
  }
31
32
 
33
+ /**
34
+ * Sets the DB position response headers
35
+ *
36
+ * @since 9.1.0
37
+ * @param pos
38
+ */
39
+ public setDatabasePosition(pos: IDatabasePosition | null): void {
40
+ let page: string = '0';
41
+ let position: string = '0';
42
+
43
+ if (pos) {
44
+ page = pos.page.toString();
45
+ position = pos.position.toString();
46
+ }
47
+
48
+ this.setHeader('X-DATABASE-PAGE', page);
49
+ this.setHeader('X-DATABASE-POSITION', position);
50
+ }
51
+
32
52
  public setHeader(name: string, value: string): void {
33
53
  this.$headers.set(name, value);
34
54
  }