@creator.co/wapi 1.6.1 → 2.0.0-alpha.1

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 (84) hide show
  1. package/.github/workflows/npmpublish.yml +1 -1
  2. package/.github/workflows/prs.yml +1 -1
  3. package/dist/index.js +45 -31
  4. package/dist/index.js.map +1 -1
  5. package/dist/jest.config.js +2 -4
  6. package/dist/jest.config.js.map +1 -1
  7. package/dist/package.json +12 -12
  8. package/dist/src/API/Request.js +53 -59
  9. package/dist/src/API/Request.js.map +1 -1
  10. package/dist/src/API/Response.js +81 -156
  11. package/dist/src/API/Response.js.map +1 -1
  12. package/dist/src/BaseEvent/EventProcessor.js +54 -132
  13. package/dist/src/BaseEvent/EventProcessor.js.map +1 -1
  14. package/dist/src/BaseEvent/Process.js +40 -98
  15. package/dist/src/BaseEvent/Process.js.map +1 -1
  16. package/dist/src/BaseEvent/Transaction.js +122 -310
  17. package/dist/src/BaseEvent/Transaction.js.map +1 -1
  18. package/dist/src/Cache/Redis.js +55 -119
  19. package/dist/src/Cache/Redis.js.map +1 -1
  20. package/dist/src/Cache/types.js +1 -2
  21. package/dist/src/Config/Configuration.js +46 -86
  22. package/dist/src/Config/Configuration.js.map +1 -1
  23. package/dist/src/Config/EnvironmentVar.js +57 -119
  24. package/dist/src/Config/EnvironmentVar.js.map +1 -1
  25. package/dist/src/Crypto/Crypto.js +35 -82
  26. package/dist/src/Crypto/Crypto.js.map +1 -1
  27. package/dist/src/Crypto/JWT.js +12 -27
  28. package/dist/src/Crypto/JWT.js.map +1 -1
  29. package/dist/src/Database/Database.js +3 -8
  30. package/dist/src/Database/Database.js.map +1 -1
  31. package/dist/src/Database/DatabaseManager.js +23 -28
  32. package/dist/src/Database/DatabaseManager.js.map +1 -1
  33. package/dist/src/Database/DatabaseTransaction.js +50 -166
  34. package/dist/src/Database/DatabaseTransaction.js.map +1 -1
  35. package/dist/src/Database/index.js +11 -15
  36. package/dist/src/Database/index.js.map +1 -1
  37. package/dist/src/Database/integrations/knex/KnexDatabase.js +22 -76
  38. package/dist/src/Database/integrations/knex/KnexDatabase.js.map +1 -1
  39. package/dist/src/Database/integrations/knex/KnexTransaction.js +19 -85
  40. package/dist/src/Database/integrations/knex/KnexTransaction.js.map +1 -1
  41. package/dist/src/Database/integrations/kysely/KyselyDatabase.js +37 -88
  42. package/dist/src/Database/integrations/kysely/KyselyDatabase.js.map +1 -1
  43. package/dist/src/Database/integrations/kysely/KyselyTransaction.js +46 -114
  44. package/dist/src/Database/integrations/kysely/KyselyTransaction.js.map +1 -1
  45. package/dist/src/Database/integrations/pgsql/PostgresDatabase.js +20 -71
  46. package/dist/src/Database/integrations/pgsql/PostgresDatabase.js.map +1 -1
  47. package/dist/src/Database/integrations/pgsql/PostgresTransaction.js +19 -85
  48. package/dist/src/Database/integrations/pgsql/PostgresTransaction.js.map +1 -1
  49. package/dist/src/Database/types.js +1 -2
  50. package/dist/src/Globals.js +93 -98
  51. package/dist/src/Globals.js.map +1 -1
  52. package/dist/src/Logger/Logger.js +88 -222
  53. package/dist/src/Logger/Logger.js.map +1 -1
  54. package/dist/src/Mailer/Mailer.js +83 -204
  55. package/dist/src/Mailer/Mailer.js.map +1 -1
  56. package/dist/src/Publisher/Publisher.js +43 -107
  57. package/dist/src/Publisher/Publisher.js.map +1 -1
  58. package/dist/src/Server/RouteResolver.js +22 -49
  59. package/dist/src/Server/RouteResolver.js.map +1 -1
  60. package/dist/src/Server/Router.js +12 -16
  61. package/dist/src/Server/Router.js.map +1 -1
  62. package/dist/src/Server/lib/ContainerServer.js +21 -83
  63. package/dist/src/Server/lib/ContainerServer.js.map +1 -1
  64. package/dist/src/Server/lib/Server.js +50 -99
  65. package/dist/src/Server/lib/Server.js.map +1 -1
  66. package/dist/src/Server/lib/container/GenericHandler.js +32 -107
  67. package/dist/src/Server/lib/container/GenericHandler.js.map +1 -1
  68. package/dist/src/Server/lib/container/GenericHandlerEvent.js +37 -81
  69. package/dist/src/Server/lib/container/GenericHandlerEvent.js.map +1 -1
  70. package/dist/src/Server/lib/container/HealthHandler.js +3 -35
  71. package/dist/src/Server/lib/container/HealthHandler.js.map +1 -1
  72. package/dist/src/Server/lib/container/Proxy.js +64 -127
  73. package/dist/src/Server/lib/container/Proxy.js.map +1 -1
  74. package/dist/src/Server/lib/container/Utils.js +12 -55
  75. package/dist/src/Server/lib/container/Utils.js.map +1 -1
  76. package/dist/src/Util/AsyncSingleton.js +40 -164
  77. package/dist/src/Util/AsyncSingleton.js.map +1 -1
  78. package/dist/src/Util/Utils.js +18 -24
  79. package/dist/src/Util/Utils.js.map +1 -1
  80. package/dist/src/Validation/Validator.js +10 -16
  81. package/dist/src/Validation/Validator.js.map +1 -1
  82. package/package.json +12 -12
  83. package/tests/Logger/Logger.test.ts +5 -3
  84. package/tsconfig.json +3 -1
@@ -1,30 +1,3 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -34,35 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
34
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
35
8
  });
36
9
  };
37
- var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
- function verb(n) { return function (v) { return step([n, v]); }; }
41
- function step(op) {
42
- if (f) throw new TypeError("Generator is already executing.");
43
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
- if (y = 0, t) op = [op[0] & 2, t.value];
46
- switch (op[0]) {
47
- case 0: case 1: t = op; break;
48
- case 4: _.label++; return { value: op[1], done: false };
49
- case 5: _.label++; y = op[1]; op = [0]; continue;
50
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
- default:
52
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
- if (t[2]) _.ops.pop();
57
- _.trys.pop(); continue;
58
- }
59
- op = body.call(thisArg, _);
60
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
- }
63
- };
64
- Object.defineProperty(exports, "__esModule", { value: true });
65
- var Globals_1 = require("../Globals");
10
+ import Globals from '../Globals';
66
11
  /**
67
12
  * CustomError class that extends the built-in Error class.
68
13
  * @class
@@ -71,20 +16,17 @@ var Globals_1 = require("../Globals");
71
16
  * @constructor
72
17
  * @property {string} name - The name of the error.
73
18
  */
74
- var CustomError = /** @class */ (function (_super) {
75
- __extends(CustomError, _super);
76
- function CustomError(body) {
77
- var _this = _super.call(this, body.message || 'Unknown error!') || this;
78
- _this.name = body.error || 'UnknownError';
79
- return _this;
19
+ class CustomError extends Error {
20
+ constructor(body) {
21
+ super(body.message || 'Unknown error!');
22
+ this.name = body.error || 'UnknownError';
80
23
  }
81
- return CustomError;
82
- }(Error));
24
+ }
83
25
  /**
84
26
  * Represents a response object with various methods for building and manipulating the response.
85
27
  * @template BodyType - The type of the response body.
86
28
  */
87
- var Response = /** @class */ (function () {
29
+ export default class Response {
88
30
  /**
89
31
  * Constructs a new Response object with the given status code, body, and optional behavior.
90
32
  * @param {number} statusCode - The HTTP status code of the response.
@@ -95,7 +37,7 @@ var Response = /** @class */ (function () {
95
37
  * @param {boolean} [optBehaviour.throwOnErrors] - Indicates whether errors should be thrown for non-successful status codes.
96
38
  * @param {boolean} [optBehaviour
97
39
  */
98
- function Response(statusCode, body, optBehaviour) {
40
+ constructor(statusCode, body, optBehaviour) {
99
41
  // response
100
42
  this.statusCode = statusCode;
101
43
  this.body = body;
@@ -116,34 +58,34 @@ var Response = /** @class */ (function () {
116
58
  * Get the status code of the response.
117
59
  * @returns {number} The status code.
118
60
  */
119
- Response.prototype.getCode = function () {
61
+ getCode() {
120
62
  return this.statusCode;
121
- };
63
+ }
122
64
  /**
123
65
  * Get the body of the object.
124
66
  * @returns {BodyType} The body of the object.
125
67
  */
126
- Response.prototype.getBody = function () {
68
+ getBody() {
127
69
  return this.body;
128
- };
70
+ }
129
71
  /**
130
72
  * Appends a key-value pair into the body object.
131
73
  * @param {string} key - The key to append.
132
74
  * @param {any} value - The value to append.
133
75
  * @returns None
134
76
  */
135
- Response.prototype.appendIntoBody = function (key, value) {
77
+ appendIntoBody(key, value) {
136
78
  this.body[key] = value;
137
- };
79
+ }
138
80
  /**
139
81
  * Appends a header to the existing headers object.
140
82
  * @param {string} key - The key of the header.
141
83
  * @param {any} value - The value of the header.
142
84
  * @returns None
143
85
  */
144
- Response.prototype.appendHeader = function (key, value) {
86
+ appendHeader(key, value) {
145
87
  this.headers[key] = value;
146
- };
88
+ }
147
89
  /**
148
90
  * Builds the response for the given context and transaction.
149
91
  * @param {Context} context - The context object.
@@ -151,70 +93,55 @@ var Response = /** @class */ (function () {
151
93
  * @param {boolean} optDoNotCallContext - Optional flag to indicate whether to call the context or not.
152
94
  * @returns {Promise<void>} - A promise that resolves when the response is built.
153
95
  */
154
- Response.prototype.build = function (context, transaction, optDoNotCallContext) {
155
- return __awaiter(this, void 0, void 0, function () {
156
- var b;
157
- return __generator(this, function (_a) {
158
- switch (_a.label) {
159
- case 0:
160
- //Stream support
161
- if (this.isPipingOut)
162
- return [2 /*return*/];
163
- if (this.shouldStream)
164
- return [2 /*return*/, this.pipe(context)
165
- //append default fields
166
- ];
167
- //append default fields
168
- if (transaction.request.getRequestID() && this.body && !this.disableTransactionID)
169
- this.appendIntoBody('transactionID', transaction.request.getRequestID()); //append transaction ID
170
- //Raw response support
171
- if (this.rawBody)
172
- return [2 /*return*/, this.rawContext(context, transaction)
173
- //build response
174
- ];
175
- b = __assign({ statusCode: this.statusCode, headers: this.headers }, (this.body ? { body: JSON.stringify(this.body) } : {}));
176
- //log response and respond to context
177
- transaction.logger.debug(b);
178
- if (!transaction.responseProxy) return [3 /*break*/, 2];
179
- return [4 /*yield*/, transaction.responseProxy(this)
180
- //Batch does not succeed directly just on upper transaction (which will should be a batch)
181
- ];
182
- case 1:
183
- _a.sent();
184
- _a.label = 2;
185
- case 2:
186
- //Batch does not succeed directly just on upper transaction (which will should be a batch)
187
- if (!optDoNotCallContext)
188
- context.succeed(b);
189
- return [2 /*return*/];
190
- }
191
- });
96
+ build(context, transaction, optDoNotCallContext) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ //Stream support
99
+ if (this.isPipingOut)
100
+ return;
101
+ if (this.shouldStream)
102
+ return this.pipe(context);
103
+ //append default fields
104
+ if (transaction.request.getRequestID() && this.body && !this.disableTransactionID)
105
+ this.appendIntoBody('transactionID', transaction.request.getRequestID()); //append transaction ID
106
+ //Raw response support
107
+ if (this.rawBody)
108
+ return this.rawContext(context, transaction);
109
+ //build response
110
+ const b = Object.assign({ statusCode: this.statusCode, headers: this.headers }, (this.body ? { body: JSON.stringify(this.body) } : {}));
111
+ //log response and respond to context
112
+ transaction.logger.debug(b);
113
+ //Check for transaction response proxy
114
+ if (transaction.responseProxy)
115
+ yield transaction.responseProxy(this);
116
+ //Batch does not succeed directly just on upper transaction (which will should be a batch)
117
+ if (!optDoNotCallContext)
118
+ context.succeed(b);
192
119
  });
193
- };
120
+ }
194
121
  /**
195
122
  * Private method that pipes the response to the given context.
196
123
  * @param {Context} context - The context object provided by AWS Lambda.
197
124
  * @returns None
198
125
  */
199
- Response.prototype.pipe = function (context) {
126
+ pipe(context) {
200
127
  //Check if not streaming
201
128
  this.isPipingOut = true;
202
129
  //build response
203
- var b = {
130
+ const b = {
204
131
  statusCode: this.statusCode,
205
132
  body: this.body,
206
133
  headers: this.headers,
207
134
  };
208
135
  //log response and respond to context
209
136
  context.succeed(b);
210
- };
137
+ }
211
138
  /**
212
139
  * Private method that handles the raw context of a transaction.
213
140
  * @param {Context} context - The context object.
214
141
  * @param {Transaction<null, BodyType>} transaction - The transaction object.
215
142
  * @returns None
216
143
  */
217
- Response.prototype.rawContext = function (context, transaction) {
144
+ rawContext(context, transaction) {
218
145
  //log response and respond to context
219
146
  transaction.logger.debug(this.body);
220
147
  if (this.getCode() <= 200 && this.getCode() <= 299)
@@ -225,31 +152,31 @@ var Response = /** @class */ (function () {
225
152
  else
226
153
  throw new CustomError(this.body);
227
154
  }
228
- };
155
+ }
229
156
  /**
230
157
  * Generates a response object for a missing path parameter error.
231
158
  * @param {string} paramName - The name of the missing path parameter.
232
159
  * @returns {Response<ResponseErrorType>} - The response object with error details.
233
160
  */
234
- Response.MissingParamResponse = function (paramName) {
235
- console.warn("Invalid request - Path parameter ".concat(paramName, " is missing."));
161
+ static MissingParamResponse(paramName) {
162
+ console.warn(`Invalid request - Path parameter ${paramName} is missing.`);
236
163
  return new Response(400, {
237
- err: "Invalid request. Path parameter ".concat(paramName, " is missing."),
238
- errCode: Globals_1.default.ErrorCode_MissingParam,
164
+ err: `Invalid request. Path parameter ${paramName} is missing.`,
165
+ errCode: Globals.ErrorCode_MissingParam,
239
166
  });
240
- };
167
+ }
241
168
  /**
242
169
  * Creates a response object for a missing query parameter error.
243
170
  * @param {string} paramName - The name of the missing query parameter.
244
171
  * @returns {Response<ResponseErrorType>} - The response object with error details.
245
172
  */
246
- Response.MissingQueryResponse = function (paramName) {
247
- console.warn("Invalid request - Query parameter ".concat(paramName, " is missing."));
173
+ static MissingQueryResponse(paramName) {
174
+ console.warn(`Invalid request - Query parameter ${paramName} is missing.`);
248
175
  return new Response(400, {
249
- err: "Invalid request. Query parameter ".concat(paramName, " is missing."),
250
- errCode: Globals_1.default.ErrorCode_MissingParam,
176
+ err: `Invalid request. Query parameter ${paramName} is missing.`,
177
+ errCode: Globals.ErrorCode_MissingParam,
251
178
  });
252
- };
179
+ }
253
180
  /**
254
181
  * Creates a BadRequestResponse object with the given parameters.
255
182
  * @param {string} [msg] - The error message.
@@ -257,10 +184,10 @@ var Response = /** @class */ (function () {
257
184
  * @param {any} [optBody] - Optional additional body data.
258
185
  * @returns {Response<ResponseErrorType>} - The BadRequestResponse object.
259
186
  */
260
- Response.BadRequestResponse = function (msg, errCode, optBody) {
261
- console.warn("Bad request - ".concat(msg));
262
- return new Response(400, __assign(__assign({ err: msg }, (errCode ? { errCode: errCode } : {})), (optBody || {})));
263
- };
187
+ static BadRequestResponse(msg, errCode, optBody) {
188
+ console.warn(`Bad request - ${msg}`);
189
+ return new Response(400, Object.assign(Object.assign({ err: msg }, (errCode ? { errCode: errCode } : {})), (optBody || {})));
190
+ }
264
191
  /**
265
192
  * Creates a BadRequestResponse object with rollback option.
266
193
  * @param {string} msg - The error message.
@@ -268,71 +195,69 @@ var Response = /** @class */ (function () {
268
195
  * @param {any} [optBody] - Optional body to include in the response.
269
196
  * @returns {Response<ResponseErrorType>} - The BadRequestResponse object.
270
197
  */
271
- Response.BadRequestResponseWithRollback = function (msg, errCode, optBody) {
272
- console.warn("Bad request - ".concat(msg));
273
- return new Response(400, __assign(__assign({ err: msg, rollback: true }, (errCode ? { errCode: errCode } : {})), (optBody || {})));
274
- };
198
+ static BadRequestResponseWithRollback(msg, errCode, optBody) {
199
+ console.warn(`Bad request - ${msg}`);
200
+ return new Response(400, Object.assign(Object.assign({ err: msg, rollback: true }, (errCode ? { errCode: errCode } : {})), (optBody || {})));
201
+ }
275
202
  /**
276
203
  * Creates an unauthorized response with the given error message and error code.
277
204
  * @param {string} msg - The error message.
278
205
  * @param {string} [errCode] - The error code (optional).
279
206
  * @returns {Response<ResponseErrorType>} - The unauthorized response.
280
207
  */
281
- Response.UnauthorizedResponse = function (msg, errCode) {
282
- console.warn("Denying request - ".concat(msg));
283
- return new Response(401, __assign({ err: msg }, (errCode ? { errCode: errCode } : {})));
284
- };
208
+ static UnauthorizedResponse(msg, errCode) {
209
+ console.warn(`Denying request - ${msg}`);
210
+ return new Response(401, Object.assign({ err: msg }, (errCode ? { errCode: errCode } : {})));
211
+ }
285
212
  /**
286
213
  * Creates a success response object with the given body.
287
214
  * @param {BodyType} body - The body of the response.
288
215
  * @returns {Response<BodyType>} - The success response object.
289
216
  */
290
- Response.SuccessResponse = function (body) {
217
+ static SuccessResponse(body) {
291
218
  return new Response(200, (body ? body : {}));
292
- };
219
+ }
293
220
  /**
294
221
  * Creates a redirect response with the specified URL.
295
222
  * @param {string} url - The URL to redirect to.
296
223
  * @returns {Response<null>} - The redirect response.
297
224
  */
298
- Response.RedirectResponse = function (url) {
299
- var resp = new Response(302, null);
225
+ static RedirectResponse(url) {
226
+ const resp = new Response(302, null);
300
227
  resp.appendHeader('Location', url);
301
228
  return resp;
302
- };
229
+ }
303
230
  /**
304
231
  * Creates a success response with no content.
305
232
  * @returns {Response<null>} A response object with a status code of 204 and no content.
306
233
  */
307
- Response.SuccessNoContentResponse = function () {
234
+ static SuccessNoContentResponse() {
308
235
  return new Response(204, null);
309
- };
236
+ }
310
237
  /**
311
238
  * Creates a success response object with a streaming body and specified content type.
312
239
  * @param {any} stream - The stream object to be used as the response body.
313
240
  * @param {string} contentType - The content type of the response.
314
241
  * @returns {Response} - The success response object.
315
242
  */
316
- Response.SuccessStreamResponse = function (stream, contentType) {
317
- var resp = new Response(200, stream, {
243
+ static SuccessStreamResponse(stream, contentType) {
244
+ const resp = new Response(200, stream, {
318
245
  shouldStream: true,
319
246
  });
320
247
  resp.appendHeader('Connection', 'keep-alive');
321
248
  if (contentType)
322
249
  resp.appendHeader('Content-Type', contentType);
323
250
  return resp;
324
- };
251
+ }
325
252
  /**
326
253
  * Creates a simple HTTP response with the given body and optional status code.
327
254
  * @param {BodyType} body - The body of the response.
328
255
  * @param {number} [optionalCode] - The optional status code of the response. Defaults to 200.
329
256
  * @returns {Response<BodyType>} - The created response object.
330
257
  */
331
- Response.SimpleResponse = function (body, optionalCode) {
332
- var resp = new Response(optionalCode || 200, body);
258
+ static SimpleResponse(body, optionalCode) {
259
+ const resp = new Response(optionalCode || 200, body);
333
260
  return resp;
334
- };
335
- return Response;
336
- }());
337
- exports.default = Response;
261
+ }
262
+ }
338
263
  //# sourceMappingURL=Response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Response.js","sourceRoot":"","sources":["../../../src/API/Response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Response.js","sourceRoot":"","sources":["../../../src/API/Response.ts"],"names":[],"mappings":"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"}