@unito/integration-sdk 1.0.13 → 1.0.15

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.
@@ -352,13 +352,13 @@ function buildHttpError(responseStatus, message) {
352
352
  return httpError;
353
353
  }
354
354
 
355
- const middleware$9 = (req, res, next) => {
355
+ const middleware$a = (req, res, next) => {
356
356
  res.locals.correlationId = req.header('X-Unito-Correlation-Id') ?? crypto.randomUUID();
357
357
  next();
358
358
  };
359
359
 
360
360
  const ADDITIONAL_CONTEXT_HEADER = 'X-Unito-Additional-Logging-Context';
361
- const middleware$8 = (req, res, next) => {
361
+ const middleware$9 = (req, res, next) => {
362
362
  const logger = new Logger({ correlation_id: res.locals.correlationId });
363
363
  res.locals.logger = logger;
364
364
  const rawAdditionalContext = req.header(ADDITIONAL_CONTEXT_HEADER);
@@ -375,7 +375,7 @@ const middleware$8 = (req, res, next) => {
375
375
  };
376
376
 
377
377
  const CREDENTIALS_HEADER = 'X-Unito-Credentials';
378
- const middleware$7 = (req, res, next) => {
378
+ const middleware$8 = (req, res, next) => {
379
379
  const credentialsHeader = req.header(CREDENTIALS_HEADER);
380
380
  if (credentialsHeader) {
381
381
  let credentials;
@@ -391,7 +391,7 @@ const middleware$7 = (req, res, next) => {
391
391
  };
392
392
 
393
393
  const OPERATION_DEADLINE_HEADER = 'X-Unito-Operation-Deadline';
394
- const middleware$6 = (req, res, next) => {
394
+ const middleware$7 = (req, res, next) => {
395
395
  const operationDeadlineHeader = Number(req.header(OPERATION_DEADLINE_HEADER));
396
396
  if (operationDeadlineHeader) {
397
397
  // `operationDeadlineHeader` represents a timestamp in the future, in seconds.
@@ -412,7 +412,7 @@ const middleware$6 = (req, res, next) => {
412
412
  };
413
413
 
414
414
  const SECRETS_HEADER = 'X-Unito-Secrets';
415
- const middleware$5 = (req, res, next) => {
415
+ const middleware$6 = (req, res, next) => {
416
416
  const secretsHeader = req.header(SECRETS_HEADER);
417
417
  if (secretsHeader) {
418
418
  let secrets;
@@ -427,6 +427,30 @@ const middleware$5 = (req, res, next) => {
427
427
  next();
428
428
  };
429
429
 
430
+ // The operators are ordered by their symbol length, in descending order.
431
+ // This is necessary because the symbol of an operator can be
432
+ // a subset of the symbol of another operator.
433
+ //
434
+ // For example, the symbol "=" (EQUAL) is a subset of the symbol "!=" (NOT_EQUAL).
435
+ const ORDERED_OPERATORS = Object.values(integrationApi.OperatorType).sort((o1, o2) => o1.length - o2.length);
436
+ const middleware$5 = (req, res, next) => {
437
+ const rawFilters = req.query.filter;
438
+ res.locals.filters = [];
439
+ if (typeof rawFilters === 'string') {
440
+ for (const rawFilter of rawFilters.split(',')) {
441
+ for (const operator of ORDERED_OPERATORS) {
442
+ if (rawFilter.includes(operator)) {
443
+ const [field, valuesRaw] = rawFilter.split(operator, 2);
444
+ const values = valuesRaw ? valuesRaw.split('|').map(decodeURIComponent) : [];
445
+ res.locals.filters.push({ field: field, operator, values });
446
+ break;
447
+ }
448
+ }
449
+ }
450
+ }
451
+ next();
452
+ };
453
+
430
454
  const middleware$4 = (req, res, next) => {
431
455
  const rawSelect = req.query.select;
432
456
  if (typeof rawSelect === 'string') {
@@ -912,12 +936,13 @@ class Integration {
912
936
  // Must be one of the first handlers (to catch all the errors).
913
937
  app.use(middleware$2);
914
938
  app.use(middleware);
939
+ app.use(middleware$a);
915
940
  app.use(middleware$9);
916
941
  app.use(middleware$8);
917
- app.use(middleware$7);
942
+ app.use(middleware$6);
918
943
  app.use(middleware$5);
919
944
  app.use(middleware$4);
920
- app.use(middleware$6);
945
+ app.use(middleware$7);
921
946
  // Making sure we log all incomming requests, prior to any processing.
922
947
  app.use((req, res, next) => {
923
948
  res.locals.logger.info(`Initializing request for ${req.originalUrl}`);
@@ -5,6 +5,7 @@ import loggerMiddleware from './middlewares/logger.js';
5
5
  import credentialsMiddleware from './middlewares/credentials.js';
6
6
  import signalMiddleware from './middlewares/signal.js';
7
7
  import secretsMiddleware from './middlewares/secrets.js';
8
+ import filtersMiddleware from './middlewares/filters.js';
8
9
  import selectsMiddleware from './middlewares/selects.js';
9
10
  import errorsMiddleware from './middlewares/errors.js';
10
11
  import finishMiddleware from './middlewares/finish.js';
@@ -118,6 +119,7 @@ export default class Integration {
118
119
  app.use(loggerMiddleware);
119
120
  app.use(credentialsMiddleware);
120
121
  app.use(secretsMiddleware);
122
+ app.use(filtersMiddleware);
121
123
  app.use(selectsMiddleware);
122
124
  app.use(signalMiddleware);
123
125
  // Making sure we log all incomming requests, prior to any processing.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unito/integration-sdk",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "Integration SDK",
5
5
  "type": "module",
6
6
  "types": "dist/src/index.d.ts",
@@ -7,6 +7,7 @@ import loggerMiddleware from './middlewares/logger.js';
7
7
  import credentialsMiddleware from './middlewares/credentials.js';
8
8
  import signalMiddleware from './middlewares/signal.js';
9
9
  import secretsMiddleware from './middlewares/secrets.js';
10
+ import filtersMiddleware from './middlewares/filters.js';
10
11
  import selectsMiddleware from './middlewares/selects.js';
11
12
  import errorsMiddleware from './middlewares/errors.js';
12
13
  import finishMiddleware from './middlewares/finish.js';
@@ -134,6 +135,7 @@ export default class Integration {
134
135
  app.use(loggerMiddleware);
135
136
  app.use(credentialsMiddleware);
136
137
  app.use(secretsMiddleware);
138
+ app.use(filtersMiddleware);
137
139
  app.use(selectsMiddleware);
138
140
  app.use(signalMiddleware);
139
141