@dwp/govuk-casa 8.11.1 → 8.12.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.
package/README.md CHANGED
@@ -25,7 +25,7 @@ npm -E @dwp/govuk-casa
25
25
 
26
26
  A series of migration guides are provided in [`docs/migration-guides/`](docs/migration-guides/) that should help you upgrade between major versions of CASA.
27
27
 
28
- Also see our [list of upcoming deprecations](DEPRECATIONS.md) that are planned for delivery in the next major version.
28
+ Also see our [list of upcoming deprecations and breaking changes](UPCOMING.md) that are planned for delivery in the next major version.
29
29
 
30
30
  ## Support
31
31
 
package/dist/casa.d.ts CHANGED
@@ -208,6 +208,10 @@ export type ConfigurationOptions = {
208
208
  * Max total form payload size to ingest
209
209
  */
210
210
  formMaxBytes?: string | number | undefined;
211
+ /**
212
+ * Custom context ID generator
213
+ */
214
+ contextIdGenerator?: ContextIdGenerator | undefined;
211
215
  };
212
216
  /**
213
217
  * Result of a call to configure() function
@@ -485,6 +489,25 @@ export type JourneyContextObject = {
485
489
  */
486
490
  identity?: any;
487
491
  };
492
+ export type ContextIdGeneratorParams = {
493
+ /**
494
+ * Arguments
495
+ */
496
+ args: {
497
+ req: import('express').Request;
498
+ reservedIds: [string];
499
+ };
500
+ };
501
+ /**
502
+ * Generates a GUID for use as a journey context ID. This ID must not clash with
503
+ * any other context IDs in the given session.
504
+ *
505
+ * The resulting ID must match these criteria:
506
+ * - A string
507
+ * - Between 1 and 64 characters
508
+ * - Contain only the characters a-z, 0-9, -
509
+ */
510
+ export type ContextIdGenerator = (params: ContextIdGeneratorParams) => string;
488
511
  import configure from './lib/configure.js';
489
512
  import validators from './lib/validators/index.js';
490
513
  import field from './lib/field.js';
@@ -497,4 +520,5 @@ import waypointUrl from './lib/waypoint-url.js';
497
520
  import endSession from './lib/end-session.js';
498
521
  import * as nunjucksFilters from './lib/nunjucks-filters.js';
499
522
  import * as constants from './lib/constants.js';
500
- export { configure, validators, field, Plan, JourneyContext, ValidatorFactory, ValidationError, MutableRouter, waypointUrl, endSession, nunjucksFilters, constants };
523
+ import * as contextIdGenerators from './lib/context-id-generators.js';
524
+ export { configure, validators, field, Plan, JourneyContext, ValidatorFactory, ValidationError, MutableRouter, waypointUrl, endSession, nunjucksFilters, constants, contextIdGenerators };
package/dist/casa.js CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.constants = exports.nunjucksFilters = exports.endSession = exports.waypointUrl = exports.MutableRouter = exports.ValidationError = exports.ValidatorFactory = exports.JourneyContext = exports.Plan = exports.field = exports.validators = exports.configure = void 0;
29
+ exports.contextIdGenerators = exports.constants = exports.nunjucksFilters = exports.endSession = exports.waypointUrl = exports.MutableRouter = exports.ValidationError = exports.ValidatorFactory = exports.JourneyContext = exports.Plan = exports.field = exports.validators = exports.configure = void 0;
30
30
  // NOTE: Any changes made here must be reflected in `scripts/esm-wrapper.js`
31
31
  const configure_js_1 = __importDefault(require("./lib/configure.js"));
32
32
  exports.configure = configure_js_1.default;
@@ -52,6 +52,8 @@ const nunjucksFilters = __importStar(require("./lib/nunjucks-filters.js"));
52
52
  exports.nunjucksFilters = nunjucksFilters;
53
53
  const constants = __importStar(require("./lib/constants.js"));
54
54
  exports.constants = constants;
55
+ const contextIdGenerators = __importStar(require("./lib/context-id-generators.js"));
56
+ exports.contextIdGenerators = contextIdGenerators;
55
57
  /* ----------------------------------------------------------------- Typedefs */
56
58
  // These exist here so that consumer can import CASA's internal types
57
59
  /**
@@ -162,6 +164,7 @@ exports.constants = constants;
162
164
  * @property {HelmetConfigurator} [helmetConfigurator] Helmet configuration manipulator function
163
165
  * @property {number} [formMaxParams=25] Max number of form parameters to ingest
164
166
  * @property {number|string} [formMaxBytes="50KB"] Max total form payload size to ingest
167
+ * @property {ContextIdGenerator} [contextIdGenerator] Custom context ID generator
165
168
  */
166
169
  /**
167
170
  * @typedef {object} ConfigureResult Result of a call to configure() function
@@ -315,4 +318,23 @@ exports.constants = constants;
315
318
  * @property {any} [nav] Navigation meta
316
319
  * @property {any} [identity] Identity meta
317
320
  */
321
+ /**
322
+ * @typedef ContextIdGeneratorParams
323
+ * @property {object} args Arguments
324
+ * @property {import('express').Request} args.req Request
325
+ * @property {[string]} args.reservedIds List of IDs already in use in session or request
326
+ */
327
+ /**
328
+ * Generates a GUID for use as a journey context ID. This ID must not clash with
329
+ * any other context IDs in the given session.
330
+ *
331
+ * The resulting ID must match these criteria:
332
+ * - A string
333
+ * - Between 1 and 64 characters
334
+ * - Contain only the characters a-z, 0-9, -
335
+ *
336
+ * @callback ContextIdGenerator
337
+ * @param {ContextIdGeneratorParams} params Parameters
338
+ * @returns {string} A newly generated GUID
339
+ */
318
340
  //# sourceMappingURL=casa.js.map
package/dist/casa.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"casa.js","sourceRoot":"","sources":["../src/casa.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA4E;AAC5E,sEAA2C;AAezC,oBAfK,sBAAS,CAeL;AAdX,yEAAmD;AAejD,qBAfK,kBAAU,CAeL;AAdZ,8DAAmC;AAejC,gBAfK,kBAAK,CAeL;AAdP,4DAAiC;AAe/B,eAfK,iBAAI,CAeL;AAdN,gFAAqD;AAenD,yBAfK,2BAAc,CAeL;AAdhB,oFAAyD;AAevD,2BAfK,6BAAgB,CAeL;AAdlB,kFAAuD;AAerD,0BAfK,4BAAe,CAeL;AAdjB,8EAAmD;AAejD,wBAfK,0BAAa,CAeL;AAdf,4EAAgD;AAiB9C,sBAjBK,yBAAW,CAiBL;AAhBb,0EAA8C;AAiB5C,qBAjBK,wBAAU,CAiBL;AAhBZ,2EAA6D;AAmB3D,0CAAe;AAlBjB,8DAAgD;AAqB9C,8BAAS;AAGX,gFAAgF;AAChF,qEAAqE;AAErE;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;;;;;GAUG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH;;;;;;;GAOG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;GAMG"}
1
+ {"version":3,"file":"casa.js","sourceRoot":"","sources":["../src/casa.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA4E;AAC5E,sEAA2C;AAgBzC,oBAhBK,sBAAS,CAgBL;AAfX,yEAAmD;AAgBjD,qBAhBK,kBAAU,CAgBL;AAfZ,8DAAmC;AAgBjC,gBAhBK,kBAAK,CAgBL;AAfP,4DAAiC;AAgB/B,eAhBK,iBAAI,CAgBL;AAfN,gFAAqD;AAgBnD,yBAhBK,2BAAc,CAgBL;AAfhB,oFAAyD;AAgBvD,2BAhBK,6BAAgB,CAgBL;AAflB,kFAAuD;AAgBrD,0BAhBK,4BAAe,CAgBL;AAfjB,8EAAmD;AAgBjD,wBAhBK,0BAAa,CAgBL;AAff,4EAAgD;AAkB9C,sBAlBK,yBAAW,CAkBL;AAjBb,0EAA8C;AAkB5C,qBAlBK,wBAAU,CAkBL;AAjBZ,2EAA6D;AAoB3D,0CAAe;AAnBjB,8DAAgD;AAsB9C,8BAAS;AArBX,oFAAsE;AAwBpE,kDAAmB;AAGrB,gFAAgF;AAChF,qEAAqE;AAErE;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;;;;;GAUG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH;;;;;;;GAOG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;;;;;;;GAYG"}
@@ -28,6 +28,14 @@ export function validateObjectKey(key?: string): string;
28
28
  */
29
29
  export default class JourneyContext {
30
30
  static DEFAULT_CONTEXT_ID: string;
31
+ /**
32
+ * @type {symbol}
33
+ */
34
+ static ID_GENERATOR_REQ_LOG: symbol;
35
+ /**
36
+ * @type {symbol}
37
+ */
38
+ static ID_GENERATOR_REQ_KEY: symbol;
31
39
  /**
32
40
  * Create a new JourneyContext using the plain object.
33
41
  *
@@ -38,17 +46,23 @@ export default class JourneyContext {
38
46
  /**
39
47
  * Construct a new ephemeral JourneyContext instance with a unique ID.
40
48
  *
49
+ * Note: In later versions of CASA, the `req` property will be mandatory.
50
+ *
51
+ * @param {ExpressRequest} [req] Request session
41
52
  * @returns {JourneyContext} Constructed JourneyContext instance
42
53
  */
43
- static createEphemeralContext(): JourneyContext;
54
+ static createEphemeralContext(req?: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | undefined): JourneyContext;
44
55
  /**
45
56
  * Construct a new JourneyContext instance from another instance.
46
57
  *
58
+ * Note: In later versions of CASA, the `req` property will be mandatory.
59
+ *
47
60
  * @param {JourneyContext} context Context to copy from
61
+ * @param {ExpressRequest} [req] Request
48
62
  * @returns {JourneyContext} Constructed JourneyContext instance
49
63
  * @throws {TypeError} When context is not a valid type
50
64
  */
51
- static fromContext(context: JourneyContext): JourneyContext;
65
+ static fromContext(context: JourneyContext, req?: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | undefined): JourneyContext;
52
66
  /**
53
67
  * Initialise session with an empty entry for the "default" context.
54
68
  *
@@ -57,16 +71,28 @@ export default class JourneyContext {
57
71
  */
58
72
  static initContextStore(session: object): void;
59
73
  /**
60
- * Validate the format of a context ID, i.e. "default" or a uuid
61
- * eg 00000000-0000-0000-0000-000000000000
62
- * eg 123e4567-e89b-12d3-a456-426614174000
74
+ * Validate the format of a context ID:
75
+ * - Between 1 and 64 characters
76
+ * - Contain only the characters a-z, 0-9, -
63
77
  *
64
78
  * @param {string} id Context ID
65
79
  * @returns {string} Original ID if it's valid
66
80
  * @throws {TypeError} When id is not a valid type
67
- * @throws {SyntaxError} When id is not a valid uuid format
81
+ * @throws {SyntaxError} When id is not a valid format
68
82
  */
69
83
  static validateContextId(id: string): string;
84
+ /**
85
+ * Generate a new context ID, validate it, and throw if the ID has already been
86
+ * generated during this request lifecycle. This may happen if an ID was
87
+ * generated, but never used to store a new context in the session. Therefore
88
+ * it is important for user code to always call `putContext()` before
89
+ * generating another ID.
90
+ *
91
+ * @param {ExpressRequest} [req] Request
92
+ * @returns {string} New ID
93
+ * @throws {Error} When generated ID has already been used
94
+ */
95
+ static generateContextId(req?: import("express").Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>> | undefined): string;
70
96
  /**
71
97
  * Retrieve the default Journey Context. This is just a convenient wrapper
72
98
  * around `getContextById()`.
@@ -27,6 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  var _JourneyContext_data, _JourneyContext_validation, _JourneyContext_nav, _JourneyContext_identity, _JourneyContext_eventListeners, _JourneyContext_eventListenerPreState;
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.validateObjectKey = void 0;
30
+ /* eslint-disable import/no-cycle */
30
31
  /**
31
32
  * Represents the state of a user's journey through the Plan. It contains
32
33
  * information about:
@@ -35,13 +36,14 @@ exports.validateObjectKey = void 0;
35
36
  * - Validation errors on that data
36
37
  * - Navigation information about how the user got where they are.
37
38
  */
38
- const uuid_1 = require("uuid");
39
39
  const lodash_1 = __importDefault(require("lodash"));
40
40
  const ValidationError_js_1 = __importDefault(require("./ValidationError.js"));
41
41
  const logger_js_1 = __importDefault(require("./logger.js"));
42
42
  const utils_js_1 = require("./utils.js");
43
+ const context_id_generators_js_1 = require("./context-id-generators.js");
43
44
  const { cloneDeep, isPlainObject, isObject, has, isEqual, } = lodash_1.default; // CommonJS
44
45
  const log = (0, logger_js_1.default)('lib:journey-context');
46
+ const uuid = (0, context_id_generators_js_1.uuid)();
45
47
  /**
46
48
  * @access private
47
49
  * @typedef {import('../casa').ContextEventUserInfo} ContextEventUserInfo
@@ -440,28 +442,34 @@ class JourneyContext {
440
442
  /**
441
443
  * Construct a new ephemeral JourneyContext instance with a unique ID.
442
444
  *
445
+ * Note: In later versions of CASA, the `req` property will be mandatory.
446
+ *
447
+ * @param {ExpressRequest} [req] Request session
443
448
  * @returns {JourneyContext} Constructed JourneyContext instance
444
449
  */
445
- static createEphemeralContext() {
450
+ static createEphemeralContext(req) {
446
451
  return JourneyContext.fromObject({
447
452
  identity: {
448
- id: (0, uuid_1.v4)(),
453
+ id: JourneyContext.generateContextId(req),
449
454
  },
450
455
  });
451
456
  }
452
457
  /**
453
458
  * Construct a new JourneyContext instance from another instance.
454
459
  *
460
+ * Note: In later versions of CASA, the `req` property will be mandatory.
461
+ *
455
462
  * @param {JourneyContext} context Context to copy from
463
+ * @param {ExpressRequest} [req] Request
456
464
  * @returns {JourneyContext} Constructed JourneyContext instance
457
465
  * @throws {TypeError} When context is not a valid type
458
466
  */
459
- static fromContext(context) {
467
+ static fromContext(context, req) {
460
468
  if (!(context instanceof JourneyContext)) {
461
469
  throw new TypeError('Source context must be a JourneyContext');
462
470
  }
463
471
  const newContextObj = context.toObject();
464
- newContextObj.identity.id = (0, uuid_1.v4)();
472
+ newContextObj.identity.id = JourneyContext.generateContextId(req);
465
473
  return JourneyContext.fromObject(newContextObj);
466
474
  }
467
475
  /**
@@ -498,14 +506,14 @@ class JourneyContext {
498
506
  }
499
507
  }
500
508
  /**
501
- * Validate the format of a context ID, i.e. "default" or a uuid
502
- * eg 00000000-0000-0000-0000-000000000000
503
- * eg 123e4567-e89b-12d3-a456-426614174000
509
+ * Validate the format of a context ID:
510
+ * - Between 1 and 64 characters
511
+ * - Contain only the characters a-z, 0-9, -
504
512
  *
505
513
  * @param {string} id Context ID
506
514
  * @returns {string} Original ID if it's valid
507
515
  * @throws {TypeError} When id is not a valid type
508
- * @throws {SyntaxError} When id is not a valid uuid format
516
+ * @throws {SyntaxError} When id is not a valid format
509
517
  */
510
518
  static validateContextId(id) {
511
519
  if (id === JourneyContext.DEFAULT_CONTEXT_ID) {
@@ -514,11 +522,54 @@ class JourneyContext {
514
522
  if (typeof id !== 'string') {
515
523
  throw new TypeError('Context ID must be a string');
516
524
  }
517
- else if (!(0, uuid_1.validate)(id)) {
518
- throw new SyntaxError('Context ID is not in the correct uuid format');
525
+ else if (!id.match(/^[a-z0-9-]{1,64}$/)) {
526
+ throw new SyntaxError('Context ID is not in the correct format');
519
527
  }
520
528
  return id;
521
529
  }
530
+ /**
531
+ * Generate a new context ID, validate it, and throw if the ID has already been
532
+ * generated during this request lifecycle. This may happen if an ID was
533
+ * generated, but never used to store a new context in the session. Therefore
534
+ * it is important for user code to always call `putContext()` before
535
+ * generating another ID.
536
+ *
537
+ * @param {ExpressRequest} [req] Request
538
+ * @returns {string} New ID
539
+ * @throws {Error} When generated ID has already been used
540
+ */
541
+ static generateContextId(req) {
542
+ var _a;
543
+ // Can't generate custom ID when no request object is provided, because the
544
+ // custom generator function itself exists on that object.
545
+ if (!req) {
546
+ log.warn('Generating a context ID without a given request object. Reverting to uuid().');
547
+ return uuid();
548
+ }
549
+ // Collate a list of context IDs already in use, either from existing
550
+ // contexts in the session, or generated during this request lifecycle.
551
+ // We don't identify the source of each ID because the generator must not
552
+ // differentiate its behaviour on whether the ID exists in session or not.
553
+ const inSessionIds = JourneyContext.getContexts(req.session)
554
+ .map((c) => c.identity.id)
555
+ .filter((id) => id !== JourneyContext.DEFAULT_CONTEXT_ID);
556
+ const inRequestIds = (_a = req[JourneyContext.ID_GENERATOR_REQ_LOG]) !== null && _a !== void 0 ? _a : [];
557
+ const reservedIds = Array.from(new Set([...inSessionIds, ...inRequestIds]).values());
558
+ // Generate and log the ID
559
+ const id = JourneyContext.validateContextId(req[JourneyContext.ID_GENERATOR_REQ_KEY].call(null, { req, reservedIds }));
560
+ if (reservedIds.includes(id)) {
561
+ throw new Error(`Regenerated a context ID, ${String(id)}. It has likely not yet been used to store a new context in session using JourneyContext.putContext().`);
562
+ }
563
+ if (!req[JourneyContext.ID_GENERATOR_REQ_LOG]) {
564
+ Object.defineProperty(req, JourneyContext.ID_GENERATOR_REQ_LOG, {
565
+ value: [],
566
+ enumerable: false,
567
+ writable: false,
568
+ });
569
+ }
570
+ req[JourneyContext.ID_GENERATOR_REQ_LOG].push(id);
571
+ return id;
572
+ }
522
573
  /**
523
574
  * Retrieve the default Journey Context. This is just a convenient wrapper
524
575
  * around `getContextById()`.
@@ -730,5 +781,13 @@ class JourneyContext {
730
781
  }
731
782
  _JourneyContext_data = new WeakMap(), _JourneyContext_validation = new WeakMap(), _JourneyContext_nav = new WeakMap(), _JourneyContext_identity = new WeakMap(), _JourneyContext_eventListeners = new WeakMap(), _JourneyContext_eventListenerPreState = new WeakMap();
732
783
  JourneyContext.DEFAULT_CONTEXT_ID = 'default';
784
+ /**
785
+ * @type {symbol}
786
+ */
787
+ JourneyContext.ID_GENERATOR_REQ_LOG = Symbol('generatedContextIds');
788
+ /**
789
+ * @type {symbol}
790
+ */
791
+ JourneyContext.ID_GENERATOR_REQ_KEY = Symbol('generateContextId');
733
792
  exports.default = JourneyContext;
734
793
  //# sourceMappingURL=JourneyContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JourneyContext.js","sourceRoot":"","sources":["../../src/lib/JourneyContext.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JourneyContext.js","sourceRoot":"","sources":["../../src/lib/JourneyContext.js"],"names":[],"mappings":"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"}
@@ -147,6 +147,7 @@ export function validateEvents(events: any): any;
147
147
  export function validateHelmetConfigurator(helmetConfigurator: HelmetConfigurator): HelmetConfigurator;
148
148
  export function validateFormMaxParams(value: any, defaultValue?: number): any;
149
149
  export function validateFormMaxBytes(value: any, defaultValue?: number): any;
150
+ export function validateContextIdGenerator(generator: any): any;
150
151
  /**
151
152
  * Ingest, validate, sanitise and manipulate configuration parameters.
152
153
  *
@@ -1,15 +1,39 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.validateFormMaxBytes = exports.validateFormMaxParams = exports.validateHelmetConfigurator = exports.validateEvents = exports.validatePlugins = exports.validateGlobalHooks = exports.validatePlan = exports.validatePages = exports.validateFields = exports.validatePageHooks = exports.validateSessionCookieSameSite = exports.validateSessionCookiePath = exports.validateSessionStore = exports.validateSessionSecure = exports.validateSessionName = exports.validateSessionTtl = exports.validateSessionSecret = exports.validateViews = exports.validateSessionObject = exports.validateMountUrl = exports.validateI18nLocales = exports.validateI18nDirs = exports.validateI18nObject = void 0;
29
+ exports.validateContextIdGenerator = exports.validateFormMaxBytes = exports.validateFormMaxParams = exports.validateHelmetConfigurator = exports.validateEvents = exports.validatePlugins = exports.validateGlobalHooks = exports.validatePlan = exports.validatePages = exports.validateFields = exports.validatePageHooks = exports.validateSessionCookieSameSite = exports.validateSessionCookiePath = exports.validateSessionStore = exports.validateSessionSecure = exports.validateSessionName = exports.validateSessionTtl = exports.validateSessionSecret = exports.validateViews = exports.validateSessionObject = exports.validateMountUrl = exports.validateI18nLocales = exports.validateI18nDirs = exports.validateI18nObject = void 0;
7
30
  /* eslint-disable sonarjs/no-duplicate-string */
8
31
  const bytes_1 = __importDefault(require("bytes"));
9
32
  const field_js_1 = require("./field.js");
10
33
  const Plan_js_1 = __importDefault(require("./Plan.js"));
11
34
  const logger_js_1 = __importDefault(require("./logger.js"));
12
35
  const utils_js_1 = require("./utils.js");
36
+ const contextIdGenerators = __importStar(require("./context-id-generators.js"));
13
37
  /**
14
38
  * @access private
15
39
  * @typedef {import('../casa').ConfigurationOptions} ConfigurationOptions
@@ -418,6 +442,16 @@ function validateFormMaxBytes(value, defaultValue = 1024 * 50) {
418
442
  return parsedValue;
419
443
  }
420
444
  exports.validateFormMaxBytes = validateFormMaxBytes;
445
+ function validateContextIdGenerator(generator) {
446
+ if (generator === undefined) {
447
+ return contextIdGenerators.uuid();
448
+ }
449
+ if (!(generator instanceof Function)) {
450
+ throw new TypeError('contextIdGenerator must be a function');
451
+ }
452
+ return generator;
453
+ }
454
+ exports.validateContextIdGenerator = validateContextIdGenerator;
421
455
  /**
422
456
  * Ingest, validate, sanitise and manipulate configuration parameters.
423
457
  *
@@ -462,6 +496,8 @@ function ingest(config = {}) {
462
496
  // Form parsing
463
497
  formMaxParams: validateFormMaxParams(config.formMaxParams, 25),
464
498
  formMaxBytes: validateFormMaxBytes(config.formMaxBytes, 1024 * 50),
499
+ // Context ID generator
500
+ contextIdGenerator: validateContextIdGenerator(config.contextIdGenerator),
465
501
  };
466
502
  // Freeze to modifications
467
503
  Object.freeze(parsed);
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-ingestor.js","sourceRoot":"","sources":["../../src/lib/configuration-ingestor.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration-ingestor.js","sourceRoot":"","sources":["../../src/lib/configuration-ingestor.js"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ function configure(config = {}) {
60
60
  }, pages = [], plan = null, hooks = [], plugins = [], events = [], i18n = {
61
61
  dirs: [],
62
62
  locales: ['en', 'cy'],
63
- }, helmetConfigurator = undefined, formMaxParams, formMaxBytes, } = ingestedConfig;
63
+ }, helmetConfigurator = undefined, formMaxParams, formMaxBytes, contextIdGenerator, } = ingestedConfig;
64
64
  // Prepare all page hooks so they are prefixed with the `journey.` scope.
65
65
  pages.forEach((page) => {
66
66
  var _a;
@@ -104,6 +104,7 @@ function configure(config = {}) {
104
104
  const dataMiddleware = (0, data_js_1.default)({
105
105
  plan,
106
106
  events,
107
+ contextIdGenerator,
107
108
  });
108
109
  // Prepare form middleware and its constituent parts
109
110
  // These are used for any forms, including waypoint page forms.
@@ -1 +1 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/lib/configure.js"],"names":[],"mappings":";;;;;AAAA,qDAA8C;AAC9C,+BAA+B;AAC/B,mCAAuC;AACvC,kEAAgD;AAChD,gEAAoC;AAEpC,4FAAgE;AAChE,gEAAqC;AACrC,0DAAsC;AAEtC,oEAA+C;AAC/C,0EAAqD;AACrD,sEAAiD;AAEjD,kEAAwD;AACxD,oEAA0D;AAE1D,0EAAgE;AAChE,oEAA0D;AAC1D,oEAA0D;AAE1D,kFAAuE;AACvE,oEAA0D;AAE1D;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AACH,SAAwB,SAAS,CAAC,MAAM,GAAG,EAAE;;IAC3C,wEAAwE;IACxE,uBAAuB;IACvB,CAAC,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACxC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB;IACjB,MAAM,cAAc,GAAG,IAAA,mCAAqB,EAAC,MAAM,CAAC,CAAC;IACrD,MAAM,EACJ,QAAQ,EACR,KAAK,GAAG,EAAE,EACV,OAAO,GAAG;QACR,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,IAAI;QACT,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,GAAG;QACf,KAAK,EAAE,SAAS;KACjB,EACD,KAAK,GAAG,EAAE,EACV,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,EAAE,EACZ,MAAM,GAAG,EAAE,EACX,IAAI,GAAG;QACL,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KACtB,EACD,kBAAkB,GAAG,SAAS,EAC9B,aAAa,EACb,YAAY,GACb,GAAG,cAAc,CAAC;IAEnB,yEAAyE;IACzE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;QACrB,iEAAiE;QACjE,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,6FAA6F;IAC7F,MAAM,WAAW,GAAG,IAAA,qBAAQ,EAAC;QAC3B,KAAK,EAAE;YACL,GAAG,KAAK;YACR,IAAA,cAAO,EAAC,qBAAO,EAAE,aAAa,CAAC;YAC/B,IAAA,cAAO,EAAC,IAAA,sBAAa,EAAC,qBAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC;SACpE;KACF,CAAC,CAAC;IAEH,+BAA+B;IAC/B,0EAA0E;IAC1E,wCAAwC;IACxC,MAAM,aAAa,GAAG,IAAA,gBAAoB,EAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,IAAA,iBAAqB,GAAE,CAAC;IAE/C,iEAAiE;IACjE,MAAM,sBAAsB,GAAG,IAAA,uBAAmB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,IAAA,oBAAwB,EAAC;QACjD,sBAAsB;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK,EAAE,MAAA,OAAO,CAAC,KAAK,mCAAI,IAAI,6BAAW,EAAE;KAC1C,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAA,iBAAqB,EAAC;QAC3C,WAAW,EAAE;YACX,yDAAyD;YACzD,IAAA,cAAO,EAAC,qBAAO,EAAE,gBAAgB,CAAC;YAClC,GAAG,IAAI,CAAC,IAAI;SACb;QACD,SAAS,EAAE,IAAI,CAAC,OAAO;KACxB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAA,iBAAqB,EAAC;QAC3C,IAAI;QACJ,MAAM;KACP,CAAC,CAAC;IAEH,oDAAoD;IACpD,+DAA+D;IAC/D,MAAM,oBAAoB,GAAG,IAAA,wBAA2B,EAAC;QACvD,aAAa;QACb,YAAY;KACb,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAA,iBAAqB,GAAE,CAAC;IAE/C,iDAAiD;IACjD,MAAM,YAAY,GAAG,IAAA,mBAAY,GAAE,CAAC;IAEpC,oDAAoD;IACpD,MAAM,eAAe,GAAG,IAAA,sBAAe,EAAC;QACtC,UAAU,EAAE,OAAO,CAAC,GAAG;KACxB,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,aAAa,GAAG,IAAA,oBAAa,EAAC;QAClC,WAAW,EAAE,KAAK;QAClB,KAAK;QACL,IAAI;QACJ,cAAc;KACf,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,KAAK,GAAG,IAAA,kBAAY,EAAC;QACzB,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,YAAY;QACZ,eAAe;QACf,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,oBAAoB;QACpB,cAAc;QACd,cAAc;KACf,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,YAAY,GAAG;QACnB,2EAA2E;QAC3E,wEAAwE;QACxE,WAAW;QAEX,oEAAoE;QACpE,aAAa;QACb,cAAc;QAEd,iFAAiF;QACjF,YAAY;QACZ,eAAe;QACf,aAAa;QAEb,iEAAiE;QACjE,cAAc;QAEd,mBAAmB;QACnB,2EAA2E;QAC3E,sBAAsB;QACtB,iBAAiB;QACjB,oBAAoB;QACpB,cAAc;QACd,cAAc;QAEd,iBAAiB;QACjB,KAAK;QAEL,kBAAkB;QAClB,MAAM,EAAE,cAAc;KACvB,CAAC;IAEF,wBAAwB;IACxB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAExF,yBAAyB;IACzB,OAAO,YAAY,CAAC;AACtB,CAAC;AAhKD,4BAgKC"}
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/lib/configure.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export type ContextIdGenerator = import('../casa.js').ContextIdGenerator;
2
+ /**
3
+ * @typedef {import('../casa.js').ContextIdGenerator} ContextIdGenerator
4
+ */
5
+ /**
6
+ * Creates an instance of a UUID generator.
7
+ *
8
+ * @returns {ContextIdGenerator} Generator function
9
+ */
10
+ export function uuid(): ContextIdGenerator;
11
+ /**
12
+ * Returns a generator that returns the next incremental integer in a sequence.
13
+ *
14
+ * This generator does not take into account the removal of any contexts from
15
+ * session that were previously assigned a sequential ID. This means that IDs
16
+ * will be re-used when they are freed up.
17
+ *
18
+ * @returns {ContextIdGenerator} Generator function
19
+ */
20
+ export function sequentialInteger(): ContextIdGenerator;
21
+ export function shortGuid({ length, prefix, pool, }?: {
22
+ length?: number | undefined;
23
+ prefix?: string | undefined;
24
+ pool?: string | undefined;
25
+ }): ({ reservedIds }: {
26
+ reservedIds: any;
27
+ }) => string;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shortGuid = exports.sequentialInteger = exports.uuid = void 0;
4
+ /* eslint-disable import/no-cycle */
5
+ const node_crypto_1 = require("node:crypto");
6
+ /**
7
+ * @typedef {import('../casa.js').ContextIdGenerator} ContextIdGenerator
8
+ */
9
+ /**
10
+ * Creates an instance of a UUID generator.
11
+ *
12
+ * @returns {ContextIdGenerator} Generator function
13
+ */
14
+ const uuid = () => () => (0, node_crypto_1.randomUUID)();
15
+ exports.uuid = uuid;
16
+ /**
17
+ * Returns a generator that returns the next incremental integer in a sequence.
18
+ *
19
+ * This generator does not take into account the removal of any contexts from
20
+ * session that were previously assigned a sequential ID. This means that IDs
21
+ * will be re-used when they are freed up.
22
+ *
23
+ * @returns {ContextIdGenerator} Generator function
24
+ */
25
+ const sequentialInteger = () => ({ reservedIds }) => {
26
+ const contextIds = Array.from(reservedIds).sort();
27
+ if (!contextIds.length) {
28
+ return '1';
29
+ }
30
+ // Find the first numeric ID that we can increment
31
+ let lastInSequence;
32
+ do {
33
+ lastInSequence = Number.parseInt(contextIds.pop(), 10);
34
+ } while (contextIds.length && Number.isNaN(lastInSequence));
35
+ return String(!Number.isNaN(lastInSequence) ? lastInSequence + 1 : 1);
36
+ };
37
+ exports.sequentialInteger = sequentialInteger;
38
+ const shortGuid = ({ length = 5, prefix = '', pool = 'abcdefhkmnprtwxy346789', } = {}) => ({ reservedIds }) => {
39
+ // Ambiguous characters excluded
40
+ const poolSize = pool.length;
41
+ const maxAttempts = 10;
42
+ let attempts = maxAttempts;
43
+ let id;
44
+ do {
45
+ id = Array(length).fill(0).map(() => pool.charAt(Math.floor(Math.random() * poolSize))).join('');
46
+ attempts--;
47
+ } while (attempts > 0 && reservedIds.includes(id));
48
+ if (attempts === 0) {
49
+ throw new Error(`Failed to generate GUID after ${maxAttempts} iterations`);
50
+ }
51
+ return `${prefix}${id}`;
52
+ };
53
+ exports.shortGuid = shortGuid;
54
+ //# sourceMappingURL=context-id-generators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-id-generators.js","sourceRoot":"","sources":["../../src/lib/context-id-generators.js"],"names":[],"mappings":";;;AAAA,oCAAoC;AACpC,6CAAyC;AAEzC;;GAEG;AAEH;;;;GAIG;AACH,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,IAAA,wBAAU,GAAE,CAAC;AAuDpC,oBAAI;AArDN;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;IAClD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAElD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,OAAO,GAAG,CAAC;KACZ;IAED,kDAAkD;IAClD,IAAI,cAAc,CAAC;IACnB,GAAG;QACD,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;KACxD,QAAQ,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;IAE5D,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AA+BA,8CAAiB;AA7BnB,MAAM,SAAS,GAAG,CAAC,EACjB,MAAM,GAAG,CAAC,EACV,MAAM,GAAG,EAAE,EACX,IAAI,GAAG,wBAAwB,GAChC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;IAC7B,gCAAgC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAE7B,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,IAAI,QAAQ,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,CAAC;IAEP,GAAG;QACD,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjG,QAAQ,EAAE,CAAC;KACZ,QAAQ,QAAQ,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;IAEnD,IAAI,QAAQ,KAAK,CAAC,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,WAAW,aAAa,CAAC,CAAC;KAC5E;IAED,OAAO,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC;AAC1B,CAAC,CAAA;AAQC,8BAAS"}
@@ -1,4 +1,5 @@
1
- export default function dataMiddleware({ plan, events, }: {
1
+ export default function dataMiddleware({ plan, events, contextIdGenerator, }: {
2
2
  plan: any;
3
3
  events: any;
4
+ contextIdGenerator: any;
4
5
  }): ((req: any, res: any, next: any) => void)[];
@@ -19,7 +19,7 @@ const editOrigin = (req) => {
19
19
  }
20
20
  return '';
21
21
  };
22
- function dataMiddleware({ plan, events, }) {
22
+ function dataMiddleware({ plan, events, contextIdGenerator, }) {
23
23
  return [
24
24
  (req, res, next) => {
25
25
  /* ------------------------------------------------ Request decorations */
@@ -34,6 +34,12 @@ function dataMiddleware({ plan, events, }) {
34
34
  editMode: (has(req === null || req === void 0 ? void 0 : req.query, 'edit') && has(req === null || req === void 0 ? void 0 : req.query, 'editorigin')) || (has(req === null || req === void 0 ? void 0 : req.body, 'edit') && has(req === null || req === void 0 ? void 0 : req.body, 'editorigin')), editOrigin: editOrigin(req) });
35
35
  // Grab chosen language from session
36
36
  req.casa.journeyContext.nav.language = req.session.language;
37
+ // Context ID generator
38
+ Object.defineProperty(req, JourneyContext_js_1.default.ID_GENERATOR_REQ_KEY, {
39
+ value: contextIdGenerator,
40
+ enumerable: false,
41
+ writable: false,
42
+ });
37
43
  /* ------------------------------------------------- Template variables */
38
44
  // Capture mount URL that will be used in generating all browser URLs
39
45
  const mountUrl = (0, utils_js_1.validateUrlPath)(`${req.baseUrl}/`.replace(/\/+/g, '/'));
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/middleware/data.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/middleware/data.js"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ exports.default = ({ waypoint, fields = [], }) => [
28
28
  (req, res, next) => {
29
29
  // Store a copy of the journey context before modifying it. This is useful
30
30
  // for any comparison work that may be done in subsequent middleware.
31
- req.casa.archivedJourneyContext = JourneyContext_js_1.default.fromContext(req.casa.journeyContext);
31
+ req.casa.archivedJourneyContext = JourneyContext_js_1.default.fromContext(req.casa.journeyContext, req);
32
32
  // Ignore data for any non-persistent fields
33
33
  // ESLint disabled as `fields`, `i` and `name` are dev-controlled
34
34
  /* eslint-disable security/detect-object-injection */
@@ -1 +1 @@
1
- {"version":3,"file":"gather-fields.js","sourceRoot":"","sources":["../../src/middleware/gather-fields.js"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,iCAAiC;AACjC,wDAAwD;AACxD,mEAAmE;;;;;AAEnE,iFAAsD;AACtD,sDAA2D;AAE3D;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,kBAAe,CAAC,EACd,QAAQ,EACR,MAAM,GAAG,EAAE,GACZ,EAAE,EAAE,CAAC;IACJ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjB,0EAA0E;QAC1E,qEAAqE;QACrE,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,2BAAc,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEtF,4CAA4C;QAC5C,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;gBACxE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC/D;SACF;QACD,oDAAoD;QAEpD,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC/D,2BAAc,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YAC9D,QAAQ,EAAE;gBACR,gBAAgB,EAAE,mCAAoB;aACvC;SACF,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"gather-fields.js","sourceRoot":"","sources":["../../src/middleware/gather-fields.js"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,iCAAiC;AACjC,wDAAwD;AACxD,mEAAmE;;;;;AAEnE,iFAAsD;AACtD,sDAA2D;AAE3D;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,kBAAe,CAAC,EACd,QAAQ,EACR,MAAM,GAAG,EAAE,GACZ,EAAE,EAAE,CAAC;IACJ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjB,0EAA0E;QAC1E,qEAAqE;QACrE,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,2BAAc,CAAC,WAAW,CAC1D,GAAG,CAAC,IAAI,CAAC,cAAc,EACvB,GAAG,CACJ,CAAC;QAEF,4CAA4C;QAC5C,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;gBACxE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC/D;SACF;QACD,oDAAoD;QAEpD,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC/D,2BAAc,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YAC9D,QAAQ,EAAE;gBACR,gBAAgB,EAAE,mCAAoB;aACvC;SACF,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAC"}
@@ -29,7 +29,7 @@ exports.default = ({ waypoint, fields = [], }) => {
29
29
  }
30
30
  }
31
31
  /* eslint-enable security/detect-object-injection */
32
- const journeyContext = JourneyContext_js_1.default.fromContext(req.casa.journeyContext);
32
+ const journeyContext = JourneyContext_js_1.default.fromContext(req.casa.journeyContext, req);
33
33
  journeyContext.setDataForPage(waypoint, prunedBody);
34
34
  // Second, prune any fields that do not pass the validation conditional,
35
35
  // and process those that do.
@@ -1 +1 @@
1
- {"version":3,"file":"sanitise-fields.js","sourceRoot":"","sources":["../../src/middleware/sanitise-fields.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sanitise-fields.js","sourceRoot":"","sources":["../../src/middleware/sanitise-fields.js"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export const { ValidationError } = casa;
10
10
  export const { ValidatorFactory } = casa;
11
11
  export const { configure } = casa;
12
12
  export const { constants } = casa;
13
+ export const { contextIdGenerators } = casa;
13
14
  export const { endSession } = casa;
14
15
  export const { field } = casa;
15
16
  export const { nunjucksFilters } = casa;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dwp/govuk-casa",
3
- "version": "8.11.1",
3
+ "version": "8.12.0",
4
4
  "description": "A framework for building GOVUK Collect-And-Submit-Applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -65,7 +65,6 @@
65
65
  "luxon": "3.3.0",
66
66
  "nunjucks": "3.2.4",
67
67
  "path-to-regexp": "6.2.1",
68
- "uuid": "9.0.0",
69
68
  "validator": "13.9.0"
70
69
  },
71
70
  "devDependencies": {
package/src/casa.js CHANGED
@@ -11,6 +11,7 @@ import waypointUrl from './lib/waypoint-url.js';
11
11
  import endSession from './lib/end-session.js';
12
12
  import * as nunjucksFilters from './lib/nunjucks-filters.js';
13
13
  import * as constants from './lib/constants.js';
14
+ import * as contextIdGenerators from './lib/context-id-generators.js';
14
15
 
15
16
  /** @module @dwp/govuk-casa */
16
17
  export {
@@ -32,6 +33,9 @@ export {
32
33
 
33
34
  // Constants
34
35
  constants,
36
+
37
+ // Context ID generators
38
+ contextIdGenerators,
35
39
  };
36
40
 
37
41
  /* ----------------------------------------------------------------- Typedefs */
@@ -160,6 +164,7 @@ export {
160
164
  * @property {HelmetConfigurator} [helmetConfigurator] Helmet configuration manipulator function
161
165
  * @property {number} [formMaxParams=25] Max number of form parameters to ingest
162
166
  * @property {number|string} [formMaxBytes="50KB"] Max total form payload size to ingest
167
+ * @property {ContextIdGenerator} [contextIdGenerator] Custom context ID generator
163
168
  */
164
169
 
165
170
  /**
@@ -330,3 +335,24 @@ export {
330
335
  * @property {any} [nav] Navigation meta
331
336
  * @property {any} [identity] Identity meta
332
337
  */
338
+
339
+ /**
340
+ * @typedef ContextIdGeneratorParams
341
+ * @property {object} args Arguments
342
+ * @property {import('express').Request} args.req Request
343
+ * @property {[string]} args.reservedIds List of IDs already in use in session or request
344
+ */
345
+
346
+ /**
347
+ * Generates a GUID for use as a journey context ID. This ID must not clash with
348
+ * any other context IDs in the given session.
349
+ *
350
+ * The resulting ID must match these criteria:
351
+ * - A string
352
+ * - Between 1 and 64 characters
353
+ * - Contain only the characters a-z, 0-9, -
354
+ *
355
+ * @callback ContextIdGenerator
356
+ * @param {ContextIdGeneratorParams} params Parameters
357
+ * @returns {string} A newly generated GUID
358
+ */
@@ -1,3 +1,4 @@
1
+ /* eslint-disable import/no-cycle */
1
2
  /**
2
3
  * Represents the state of a user's journey through the Plan. It contains
3
4
  * information about:
@@ -6,11 +7,11 @@
6
7
  * - Validation errors on that data
7
8
  * - Navigation information about how the user got where they are.
8
9
  */
9
- import { v4 as uuidv4, validate as uuidValidate } from 'uuid';
10
10
  import lodash from 'lodash';
11
11
  import ValidationError from './ValidationError.js';
12
12
  import logger from './logger.js';
13
13
  import { notProto } from './utils.js';
14
+ import { uuid as uuidGenerator } from './context-id-generators.js';
14
15
 
15
16
  const {
16
17
  cloneDeep, isPlainObject, isObject, has, isEqual,
@@ -18,6 +19,8 @@ const {
18
19
 
19
20
  const log = logger('lib:journey-context');
20
21
 
22
+ const uuid = uuidGenerator();
23
+
21
24
  /**
22
25
  * @access private
23
26
  * @typedef {import('../casa').ContextEventUserInfo} ContextEventUserInfo
@@ -75,6 +78,16 @@ export default class JourneyContext {
75
78
 
76
79
  static DEFAULT_CONTEXT_ID = 'default';
77
80
 
81
+ /**
82
+ * @type {symbol}
83
+ */
84
+ static ID_GENERATOR_REQ_LOG = Symbol('generatedContextIds');
85
+
86
+ /**
87
+ * @type {symbol}
88
+ */
89
+ static ID_GENERATOR_REQ_KEY = Symbol('generateContextId');
90
+
78
91
  /**
79
92
  * Constructor.
80
93
  *
@@ -476,12 +489,15 @@ export default class JourneyContext {
476
489
  /**
477
490
  * Construct a new ephemeral JourneyContext instance with a unique ID.
478
491
  *
492
+ * Note: In later versions of CASA, the `req` property will be mandatory.
493
+ *
494
+ * @param {ExpressRequest} [req] Request session
479
495
  * @returns {JourneyContext} Constructed JourneyContext instance
480
496
  */
481
- static createEphemeralContext() {
497
+ static createEphemeralContext(req) {
482
498
  return JourneyContext.fromObject({
483
499
  identity: {
484
- id: uuidv4(),
500
+ id: JourneyContext.generateContextId(req),
485
501
  },
486
502
  });
487
503
  }
@@ -489,17 +505,20 @@ export default class JourneyContext {
489
505
  /**
490
506
  * Construct a new JourneyContext instance from another instance.
491
507
  *
508
+ * Note: In later versions of CASA, the `req` property will be mandatory.
509
+ *
492
510
  * @param {JourneyContext} context Context to copy from
511
+ * @param {ExpressRequest} [req] Request
493
512
  * @returns {JourneyContext} Constructed JourneyContext instance
494
513
  * @throws {TypeError} When context is not a valid type
495
514
  */
496
- static fromContext(context) {
515
+ static fromContext(context, req) {
497
516
  if (!(context instanceof JourneyContext)) {
498
517
  throw new TypeError('Source context must be a JourneyContext');
499
518
  }
500
519
 
501
520
  const newContextObj = context.toObject();
502
- newContextObj.identity.id = uuidv4();
521
+ newContextObj.identity.id = JourneyContext.generateContextId(req);
503
522
 
504
523
  return JourneyContext.fromObject(newContextObj);
505
524
  }
@@ -542,14 +561,14 @@ export default class JourneyContext {
542
561
  }
543
562
 
544
563
  /**
545
- * Validate the format of a context ID, i.e. "default" or a uuid
546
- * eg 00000000-0000-0000-0000-000000000000
547
- * eg 123e4567-e89b-12d3-a456-426614174000
564
+ * Validate the format of a context ID:
565
+ * - Between 1 and 64 characters
566
+ * - Contain only the characters a-z, 0-9, -
548
567
  *
549
568
  * @param {string} id Context ID
550
569
  * @returns {string} Original ID if it's valid
551
570
  * @throws {TypeError} When id is not a valid type
552
- * @throws {SyntaxError} When id is not a valid uuid format
571
+ * @throws {SyntaxError} When id is not a valid format
553
572
  */
554
573
  static validateContextId(id) {
555
574
  if (id === JourneyContext.DEFAULT_CONTEXT_ID) {
@@ -558,9 +577,58 @@ export default class JourneyContext {
558
577
 
559
578
  if (typeof id !== 'string') {
560
579
  throw new TypeError('Context ID must be a string');
561
- } else if (!uuidValidate(id)) {
562
- throw new SyntaxError('Context ID is not in the correct uuid format');
580
+ } else if (!id.match(/^[a-z0-9-]{1,64}$/)) {
581
+ throw new SyntaxError('Context ID is not in the correct format');
582
+ }
583
+
584
+ return id;
585
+ }
586
+
587
+ /**
588
+ * Generate a new context ID, validate it, and throw if the ID has already been
589
+ * generated during this request lifecycle. This may happen if an ID was
590
+ * generated, but never used to store a new context in the session. Therefore
591
+ * it is important for user code to always call `putContext()` before
592
+ * generating another ID.
593
+ *
594
+ * @param {ExpressRequest} [req] Request
595
+ * @returns {string} New ID
596
+ * @throws {Error} When generated ID has already been used
597
+ */
598
+ static generateContextId(req) {
599
+ // Can't generate custom ID when no request object is provided, because the
600
+ // custom generator function itself exists on that object.
601
+ if (!req) {
602
+ log.warn('Generating a context ID without a given request object. Reverting to uuid().');
603
+ return uuid();
604
+ }
605
+
606
+ // Collate a list of context IDs already in use, either from existing
607
+ // contexts in the session, or generated during this request lifecycle.
608
+ // We don't identify the source of each ID because the generator must not
609
+ // differentiate its behaviour on whether the ID exists in session or not.
610
+ const inSessionIds = JourneyContext.getContexts(req.session)
611
+ .map((c) => c.identity.id)
612
+ .filter((id) => id !== JourneyContext.DEFAULT_CONTEXT_ID);
613
+ const inRequestIds = req[JourneyContext.ID_GENERATOR_REQ_LOG] ?? [];
614
+ const reservedIds = Array.from(new Set([...inSessionIds, ...inRequestIds]).values());
615
+
616
+ // Generate and log the ID
617
+ const id = JourneyContext.validateContextId(
618
+ req[JourneyContext.ID_GENERATOR_REQ_KEY].call(null, { req, reservedIds }),
619
+ );
620
+ if (reservedIds.includes(id)) {
621
+ throw new Error(`Regenerated a context ID, ${String(id)}. It has likely not yet been used to store a new context in session using JourneyContext.putContext().`);
622
+ }
623
+
624
+ if (!req[JourneyContext.ID_GENERATOR_REQ_LOG]) {
625
+ Object.defineProperty(req, JourneyContext.ID_GENERATOR_REQ_LOG, {
626
+ value: [],
627
+ enumerable: false,
628
+ writable: false,
629
+ });
563
630
  }
631
+ req[JourneyContext.ID_GENERATOR_REQ_LOG].push(id);
564
632
 
565
633
  return id;
566
634
  }
@@ -9,6 +9,7 @@ import {
9
9
  validateHookPath,
10
10
  validateView,
11
11
  } from './utils.js';
12
+ import * as contextIdGenerators from './context-id-generators.js';
12
13
 
13
14
  /**
14
15
  * @access private
@@ -435,6 +436,18 @@ export function validateFormMaxBytes(value, defaultValue = 1024 * 50) {
435
436
  return parsedValue;
436
437
  }
437
438
 
439
+ export function validateContextIdGenerator(generator) {
440
+ if (generator === undefined) {
441
+ return contextIdGenerators.uuid();
442
+ }
443
+
444
+ if (!(generator instanceof Function)) {
445
+ throw new TypeError('contextIdGenerator must be a function');
446
+ }
447
+
448
+ return generator;
449
+ }
450
+
438
451
  /**
439
452
  * Ingest, validate, sanitise and manipulate configuration parameters.
440
453
  *
@@ -489,6 +502,9 @@ export default function ingest(config = {}) {
489
502
  // Form parsing
490
503
  formMaxParams: validateFormMaxParams(config.formMaxParams, 25),
491
504
  formMaxBytes: validateFormMaxBytes(config.formMaxBytes, 1024 * 50),
505
+
506
+ // Context ID generator
507
+ contextIdGenerator: validateContextIdGenerator(config.contextIdGenerator),
492
508
  };
493
509
 
494
510
  // Freeze to modifications
@@ -77,6 +77,7 @@ export default function configure(config = {}) {
77
77
  helmetConfigurator = undefined,
78
78
  formMaxParams,
79
79
  formMaxBytes,
80
+ contextIdGenerator,
80
81
  } = ingestedConfig;
81
82
 
82
83
  // Prepare all page hooks so they are prefixed with the `journey.` scope.
@@ -124,6 +125,7 @@ export default function configure(config = {}) {
124
125
  const dataMiddleware = dataMiddlewareFactory({
125
126
  plan,
126
127
  events,
128
+ contextIdGenerator,
127
129
  });
128
130
 
129
131
  // Prepare form middleware and its constituent parts
@@ -0,0 +1,71 @@
1
+ /* eslint-disable import/no-cycle */
2
+ import { randomUUID } from 'node:crypto';
3
+
4
+ /**
5
+ * @typedef {import('../casa.js').ContextIdGenerator} ContextIdGenerator
6
+ */
7
+
8
+ /**
9
+ * Creates an instance of a UUID generator.
10
+ *
11
+ * @returns {ContextIdGenerator} Generator function
12
+ */
13
+ const uuid = () => () => randomUUID();
14
+
15
+ /**
16
+ * Returns a generator that returns the next incremental integer in a sequence.
17
+ *
18
+ * This generator does not take into account the removal of any contexts from
19
+ * session that were previously assigned a sequential ID. This means that IDs
20
+ * will be re-used when they are freed up.
21
+ *
22
+ * @returns {ContextIdGenerator} Generator function
23
+ */
24
+ const sequentialInteger = () => ({ reservedIds }) => {
25
+ const contextIds = Array.from(reservedIds).sort();
26
+
27
+ if (!contextIds.length) {
28
+ return '1';
29
+ }
30
+
31
+ // Find the first numeric ID that we can increment
32
+ let lastInSequence;
33
+ do {
34
+ lastInSequence = Number.parseInt(contextIds.pop(), 10);
35
+ } while (contextIds.length && Number.isNaN(lastInSequence));
36
+
37
+ return String(!Number.isNaN(lastInSequence) ? lastInSequence + 1 : 1);
38
+ };
39
+
40
+ const shortGuid = ({
41
+ length = 5,
42
+ prefix = '',
43
+ pool = 'abcdefhkmnprtwxy346789',
44
+ } = {}) => ({ reservedIds }) => {
45
+ // Ambiguous characters excluded
46
+ const poolSize = pool.length;
47
+
48
+ const maxAttempts = 10;
49
+ let attempts = maxAttempts;
50
+ let id;
51
+
52
+ do {
53
+ id = Array(length).fill(0).map(() => pool.charAt(Math.floor(Math.random() * poolSize))).join('');
54
+ attempts--;
55
+ } while (attempts > 0 && reservedIds.includes(id));
56
+
57
+ if (attempts === 0) {
58
+ throw new Error(`Failed to generate GUID after ${maxAttempts} iterations`);
59
+ }
60
+
61
+ return `${prefix}${id}`;
62
+ }
63
+
64
+ /**
65
+ * @namespace ContextIdGenerators
66
+ */
67
+ export {
68
+ uuid,
69
+ sequentialInteger,
70
+ shortGuid,
71
+ };
@@ -21,6 +21,7 @@ const editOrigin = (req) => {
21
21
  export default function dataMiddleware({
22
22
  plan,
23
23
  events,
24
+ contextIdGenerator,
24
25
  }) {
25
26
  return [
26
27
  (req, res, next) => {
@@ -45,6 +46,13 @@ export default function dataMiddleware({
45
46
  // Grab chosen language from session
46
47
  req.casa.journeyContext.nav.language = req.session.language;
47
48
 
49
+ // Context ID generator
50
+ Object.defineProperty(req, JourneyContext.ID_GENERATOR_REQ_KEY, {
51
+ value: contextIdGenerator,
52
+ enumerable: false,
53
+ writable: false,
54
+ });
55
+
48
56
  /* ------------------------------------------------- Template variables */
49
57
 
50
58
  // Capture mount URL that will be used in generating all browser URLs
@@ -29,7 +29,10 @@ export default ({
29
29
  (req, res, next) => {
30
30
  // Store a copy of the journey context before modifying it. This is useful
31
31
  // for any comparison work that may be done in subsequent middleware.
32
- req.casa.archivedJourneyContext = JourneyContext.fromContext(req.casa.journeyContext);
32
+ req.casa.archivedJourneyContext = JourneyContext.fromContext(
33
+ req.casa.journeyContext,
34
+ req,
35
+ );
33
36
 
34
37
  // Ignore data for any non-persistent fields
35
38
  // ESLint disabled as `fields`, `i` and `name` are dev-controlled
@@ -31,7 +31,7 @@ export default ({
31
31
  }
32
32
  /* eslint-enable security/detect-object-injection */
33
33
 
34
- const journeyContext = JourneyContext.fromContext(req.casa.journeyContext);
34
+ const journeyContext = JourneyContext.fromContext(req.casa.journeyContext, req);
35
35
  journeyContext.setDataForPage(waypoint, prunedBody);
36
36
 
37
37
  // Second, prune any fields that do not pass the validation conditional,