@hmcts/opal-frontend-common-node 0.0.24 → 0.0.27

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hmcts/opal-frontend-common-node",
3
3
  "type": "module",
4
- "version": "0.0.24",
4
+ "version": "0.0.27",
5
5
  "license": "MIT",
6
6
  "description": "Common nodejs library components for opal",
7
7
  "repository": {
@@ -49,14 +49,14 @@
49
49
  "@types/luxon": "^3.4.2",
50
50
  "@types/node": "^24.0.0",
51
51
  "@types/session-file-store": "^1.2.5",
52
- "@typescript-eslint/eslint-plugin": "8.56.0",
53
- "@typescript-eslint/parser": "8.56.0",
52
+ "@typescript-eslint/eslint-plugin": "8.57.2",
53
+ "@typescript-eslint/parser": "8.57.2",
54
54
  "eslint": "^10.0.0",
55
55
  "eslint-plugin-prettier": "^5.2.6",
56
56
  "typescript": "~5.9.0",
57
57
  "typescript-eslint": "^8.30.1"
58
58
  },
59
- "packageManager": "yarn@4.12.0",
59
+ "packageManager": "yarn@4.13.0",
60
60
  "exports": {
61
61
  ".": {
62
62
  "import": "./index.js",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proxy/opal-api-proxy/index.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,YAAY,GAAI,eAAe,MAAM,EAAE,YAAY,OAAO,4IAoB/D,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proxy/opal-api-proxy/index.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,YAAY,GAAI,eAAe,MAAM,EAAE,YAAY,OAAO,4IAsB/D,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -12,7 +12,9 @@ const opalApiProxy = (opalApiTarget, logEnabled) => {
12
12
  if (req.session.securityToken?.access_token) {
13
13
  proxyReq.setHeader('Authorization', `Bearer ${req.session.securityToken.access_token}`);
14
14
  }
15
- const requestIp = req.ip || 'unknown';
15
+ const forwardedForHeader = req.headers?.['x-forwarded-for'];
16
+ const forwardedFor = Array.isArray(forwardedForHeader) ? forwardedForHeader.join(',') : forwardedForHeader;
17
+ const requestIp = forwardedFor?.split(',')[0].trim() || req.socket?.remoteAddress || 'unknown';
16
18
  proxyReq.setHeader('x-user-ip', requestIp);
17
19
  if (logEnabled) {
18
20
  logger.info(`client ip: ${requestIp}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/proxy/opal-api-proxy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAEhD,MAAM,YAAY,GAAG,CAAC,aAAqB,EAAE,UAAmB,EAAE,EAAE;IAClE,OAAO,qBAAqB,CAAC;QAC3B,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO;QACf,EAAE,EAAE;YACF,8DAA8D;YAC9D,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAQ,EAAE,EAAE;gBAC/B,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;oBAC5C,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC1F,CAAC;gBAED,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC;gBACtC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC3C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/proxy/opal-api-proxy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAEhD,MAAM,YAAY,GAAG,CAAC,aAAqB,EAAE,UAAmB,EAAE,EAAE;IAClE,OAAO,qBAAqB,CAAC;QAC3B,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO;QACf,EAAE,EAAE;YACF,8DAA8D;YAC9D,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAQ,EAAE,EAAE;gBAC/B,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;oBAC5C,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC1F,CAAC;gBAED,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBAC3G,MAAM,SAAS,GAAG,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,IAAI,SAAS,CAAC;gBAC/F,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC3C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"opal-user-service.d.ts","sourceRoot":"","sources":["../../src/services/opal-user-service.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,MAAM,wCAAwC,CAAC;AA0HlF;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,qBAAqB,EAAE,MAAM,EAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,OAAO,CAAC,CAoDlB"}
1
+ {"version":3,"file":"opal-user-service.d.ts","sourceRoot":"","sources":["../../src/services/opal-user-service.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,MAAM,wCAAwC,CAAC;AA2HlF;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,qBAAqB,EAAE,MAAM,EAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,OAAO,CAAC,CAoDlB"}
@@ -13,6 +13,7 @@ async function checkUserExists(opalUserServiceTarget, accessToken, userStateUrl)
13
13
  headers: {
14
14
  Authorization: `Bearer ${accessToken}`,
15
15
  'Content-Type': 'application/json',
16
+ 'X-New-Login': 'true',
16
17
  },
17
18
  });
18
19
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"opal-user-service.js","sourceRoot":"","sources":["../../src/services/opal-user-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opal-user-service.js","sourceRoot":"","sources":["../../src/services/opal-user-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;AAErD;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAC5B,qBAA6B,EAC7B,WAAmB,EACnB,YAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,qBAAqB,GAAG,YAAY,EAAE,EAAE;YAC1E,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,EAAE;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,MAAM;aACtB;SACF,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;SAClC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,MAAM;oBACN,qDAAqD;oBACrD,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU;oBACzC,0DAA0D;oBAC1D,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;iBACzC,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,8DAA8D,EAAE;gBAC3E,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,OAAO,CAAC,qBAA6B,EAAE,WAAmB,EAAE,UAAkB;IAC3F,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,GAAG,qBAAqB,GAAG,UAAU,EAAE,EACvC,EAAE,EACF;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,EAAE;gBACtC,cAAc,EAAE,kBAAkB;aACnC;SACF,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,UAAU,CACvB,qBAA6B,EAC7B,WAAmB,EACnB,aAAqB,EACrB,MAAc,EACd,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,OAAO,GAA2B;YACtC,aAAa,EAAE,UAAU,WAAW,EAAE;YACtC,cAAc,EAAE,kBAAkB;YAClC,UAAU,EAAE,OAAO;SACpB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,qBAAqB,GAAG,aAAa,IAAI,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAExG,OAAO,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;gBACrC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM;gBAC9B,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU;gBACtC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI;gBAC1B,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,qBAA6B,EAC7B,WAAmB,EACnB,MAAoC;IAEpC,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,qBAAqB,EAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAElG,QAAQ,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1B,KAAK,GAAG;YACN,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QAEd,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,qBAAqB,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACvF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACnC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YACjE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACzD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC1D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,UAAU,CACnC,qBAAqB,EACrB,WAAW,EACX,MAAM,CAAC,aAAa,EACpB,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,OAAO,CACnB,CAAC;YACF,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED;YACE,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5E,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}