@researchdatabox/sails-ng-common 0.0.1-beta.10173 → 0.0.1-beta.10300

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.
@@ -1,16 +1,4 @@
1
- /**
2
- * Shared Handlebars helper definitions for use in both server and client contexts.
3
- * These helpers provide CSP-safe alternatives to lodash template expressions.
4
- *
5
- * Usage:
6
- * - Server: Import and register with Handlebars.registerHelper()
7
- * - Client: Import and register with Handlebars runtime
8
- */
9
- /**
10
- * Preset mapping for locale-aware date formatting.
11
- * Maps preset names to Luxon's built-in format options.
12
- */
13
- export declare const dateLocalePresetMap: Record<string, Intl.DateTimeFormatOptions>;
1
+ import Handlebars from 'handlebars';
14
2
  /**
15
3
  * Helper function definitions that can be registered with Handlebars.
16
4
  * Each function is a pure, deterministic helper that does not execute arbitrary code.
@@ -247,18 +235,24 @@ export declare const handlebarsHelperDefinitions: {
247
235
  attachmentDownloadUrl: (attachment: unknown, oid: unknown, branding: unknown, portal: unknown) => string;
248
236
  };
249
237
  /**
250
- * Type definition for the Handlebars helper functions.
238
+ * Register Handlebars helpers for use in dashboard and report templates.
239
+ * Uses shared helpers from sails-ng-common for consistency between server and client.
240
+ */
241
+ export declare function handlebarsInstance(): typeof Handlebars;
242
+ /**
243
+ * Pre-compile a handlebars template.
244
+ * @param input The template to compile.
245
+ * @param options The compile options.
251
246
  */
252
- export type HandlebarsHelperDefinitions = typeof handlebarsHelperDefinitions;
247
+ export declare function handlebarsPrecompile(input: unknown, options?: PrecompileOptions): TemplateSpecification;
253
248
  /**
254
- * Register all shared helpers with a Handlebars instance.
255
- *
256
- * @param Handlebars The Handlebars instance to register helpers on
249
+ * Get a compiled handlebars template.
250
+ * @param input The template to compile.
251
+ * @param options The compile options.
257
252
  */
258
- export declare function registerSharedHandlebarsHelpers(Handlebars: {
259
- registerHelper: (name: string, fn: (...args: any[]) => any) => void;
260
- }): void;
253
+ export declare function handlebarsCompile(input: unknown, options?: CompileOptions): HandlebarsTemplateDelegate;
261
254
  /**
262
- * Get the names of all shared helpers.
255
+ * Render a pre-compiled handlebars template.
256
+ * @param precompilation The pre-compiled template.
263
257
  */
264
- export declare function getSharedHandlebarsHelperNames(): string[];
258
+ export declare function handlebarsTemplate(precompilation: TemplateSpecification): HandlebarsTemplateDelegate;
@@ -17,14 +17,21 @@
17
17
  // You should have received a copy of the GNU General Public License along
18
18
  // with this program; if not, write to the Free Software Foundation, Inc.,
19
19
  // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
20
23
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.handlebarsHelperDefinitions = exports.dateLocalePresetMap = void 0;
22
- exports.registerSharedHandlebarsHelpers = registerSharedHandlebarsHelpers;
23
- exports.getSharedHandlebarsHelperNames = getSharedHandlebarsHelperNames;
24
+ exports.handlebarsHelperDefinitions = void 0;
25
+ exports.handlebarsInstance = handlebarsInstance;
26
+ exports.handlebarsPrecompile = handlebarsPrecompile;
27
+ exports.handlebarsCompile = handlebarsCompile;
28
+ exports.handlebarsTemplate = handlebarsTemplate;
24
29
  const luxon_1 = require("luxon");
30
+ const handlebars_1 = __importDefault(require("handlebars"));
25
31
  const lodash_1 = require("lodash");
26
32
  const date_format_helpers_1 = require("./date-format-helpers");
27
33
  const html_helpers_1 = require("./html-helpers");
34
+ const naming_helpers_1 = require("./config/names/naming-helpers");
28
35
  function isHandlebarsOptionsArg(value) {
29
36
  return (typeof value === 'object' &&
30
37
  value !== null &&
@@ -228,7 +235,7 @@ function buildAttachmentDownloadUrl(attachment, oid, branding, portal) {
228
235
  * Preset mapping for locale-aware date formatting.
229
236
  * Maps preset names to Luxon's built-in format options.
230
237
  */
231
- exports.dateLocalePresetMap = {
238
+ const dateLocalePresetMap = {
232
239
  DATE_SHORT: luxon_1.DateTime.DATE_SHORT,
233
240
  DATE_MED: luxon_1.DateTime.DATE_MED,
234
241
  DATE_MED_WITH_WEEKDAY: luxon_1.DateTime.DATE_MED_WITH_WEEKDAY,
@@ -303,7 +310,7 @@ exports.handlebarsHelperDefinitions = {
303
310
  else if (typeof navigator !== 'undefined' && navigator.language) {
304
311
  dt = dt.setLocale(navigator.language);
305
312
  }
306
- const preset = exports.dateLocalePresetMap[presetName || 'DATETIME_MED'];
313
+ const preset = dateLocalePresetMap[presetName || 'DATETIME_MED'];
307
314
  return dt.toLocaleString(preset);
308
315
  }
309
316
  catch {
@@ -652,19 +659,57 @@ exports.handlebarsHelperDefinitions = {
652
659
  },
653
660
  };
654
661
  /**
655
- * Register all shared helpers with a Handlebars instance.
656
- *
657
- * @param Handlebars The Handlebars instance to register helpers on
662
+ * A class to encapsulate the Handlebars registerHelper calls
663
+ * and ensure they happen exactly once.
658
664
  */
659
- function registerSharedHandlebarsHelpers(Handlebars) {
660
- for (const [name, fn] of Object.entries(exports.handlebarsHelperDefinitions)) {
661
- Handlebars.registerHelper(name, fn);
665
+ class HandlebarsRegisterHelper {
666
+ static #isSetupDone = false;
667
+ constructor() {
668
+ if (HandlebarsRegisterHelper.#isSetupDone) {
669
+ return;
670
+ }
671
+ for (const [name, fn] of Object.entries(exports.handlebarsHelperDefinitions)) {
672
+ handlebars_1.default.registerHelper(name, fn);
673
+ }
674
+ HandlebarsRegisterHelper.#isSetupDone = true;
662
675
  }
676
+ get instance() {
677
+ return handlebars_1.default;
678
+ }
679
+ }
680
+ /**
681
+ * Register Handlebars helpers for use in dashboard and report templates.
682
+ * Uses shared helpers from sails-ng-common for consistency between server and client.
683
+ */
684
+ function handlebarsInstance() {
685
+ return new HandlebarsRegisterHelper().instance;
686
+ }
687
+ /**
688
+ * Pre-compile a handlebars template.
689
+ * @param input The template to compile.
690
+ * @param options The compile options.
691
+ */
692
+ function handlebarsPrecompile(input, options) {
693
+ const instance = handlebarsInstance();
694
+ const value = (0, naming_helpers_1.normaliseVisual)(input);
695
+ return instance.precompile(value, options);
696
+ }
697
+ /**
698
+ * Get a compiled handlebars template.
699
+ * @param input The template to compile.
700
+ * @param options The compile options.
701
+ */
702
+ function handlebarsCompile(input, options) {
703
+ const instance = handlebarsInstance();
704
+ const value = (0, naming_helpers_1.normaliseVisual)(input);
705
+ return instance.compile(value, options);
663
706
  }
664
707
  /**
665
- * Get the names of all shared helpers.
708
+ * Render a pre-compiled handlebars template.
709
+ * @param precompilation The pre-compiled template.
666
710
  */
667
- function getSharedHandlebarsHelperNames() {
668
- return Object.keys(exports.handlebarsHelperDefinitions);
711
+ function handlebarsTemplate(precompilation) {
712
+ const instance = handlebarsInstance();
713
+ return instance.template(precompilation);
669
714
  }
670
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlYmFycy1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZWJhcnMtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7OztBQTh0QjlELDBFQU1DO0FBS0Qsd0VBRUM7QUF6dUJELGlDQUFpQztBQUNqQyxtQ0FPZ0I7QUFDaEIsK0RBQStEO0FBQy9ELGlEQUFnRDtBQUVoRCxTQUFTLHNCQUFzQixDQUFDLEtBQWM7SUFDNUMsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FDMUQsQ0FBQztBQUNKLENBQUM7QUFFRCw2SUFBNkk7QUFDN0ksU0FBUyxvQkFBb0IsQ0FBQyxlQUFrRDtJQUM5RSxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9B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Q0FBQztJQUVEOzs7O09BSUc7SUFDSCxFQUFFLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsR0FBRyxFQUFFLFVBQVUsR0FBRyxJQUFlO1FBQy9CLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsRUFBRSxFQUFFLFVBQVUsR0FBRyxJQUFlO1FBQzlCLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxHQUFHLEVBQUUsVUFBVSxLQUFjO1FBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxFQUFFLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNsQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxHQUFHLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNuQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxFQUFFLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNsQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxHQUFHLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNuQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFB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
715
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlYmFycy1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZWJhcnMtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7OztBQWl2QjlELGdEQUVDO0FBT0Qsb0RBSUM7QUFPRCw4Q0FJQztBQU1ELGdEQUdDO0FBaHhCRCxpQ0FBaUM7QUFDakMsNERBQW9DO0FBQ3BDLG1DQU9nQjtBQUNoQiwrREFBK0Q7QUFDL0QsaURBQWdEO0FBQ2hELGtFQUE4RDtBQUU5RCxTQUFTLHNCQUFzQixDQUFDLEtBQWM7SUFDNUMsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FDMUQsQ0FBQztBQUNKLENBQUM7QUFFRCw2SUFBNkk7QUFDN0ksU0FBUyxvQkFBb0IsQ0FBQyxlQUFrRDtJQUM5RSxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sSUFBQSw0Q0FBc0IsRUFBQyxlQUFlLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsSUFBSSxrQkFBa0UsQ0FBQztBQUV2RSxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUM7S0FDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO0lBQ2pCLE1BQU0sT0FBTyxHQUFHLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLFlBQVksRUFBRSxLQUFLLENBQUM7SUFDbkUsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxrQkFBa0IsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO1lBQy9DLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckQsQ0FBQyxDQUFDO1FBQ0YsT0FBTztJQUNULENBQUM7SUFDRCxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0tBQ0QsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUNWLGtCQUFrQixHQUFHLElBQUksQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQztBQUVMLFNBQVMsbUJBQW1CO0lBQzFCLE9BQU8sa0JBQWtCLElBQUksSUFBSSxDQUFDO0FBQ3BDLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLEtBQWM7SUFDOUMsT0FBTyxDQUNMLEtBQUssS0FBSyxJQUFJO1FBQ2QsS0FBSyxLQUFLLFNBQVM7UUFDbkIsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxLQUFjO0lBQ2xDLElBQUksQ0FBQyxJQUFBLHNCQUFjLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBZ0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDekcsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsS0FBYztJQUM3QyxJQUFJLElBQUEsb0JBQVksRUFBQyxLQUFLLENBQUMsSUFBSSxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDMUQsT0FBTywrQkFBK0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTyxJQUFBLDZCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsS0FBOEI7SUFDakUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTywrQkFBK0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsT0FBTztTQUNqQixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO1FBQ3pCLE9BQU8sdUZBQXVGLElBQUEsNkJBQWMsRUFBQyxHQUFHLENBQUMscURBQXFELG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7SUFDdE4sQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRVosT0FBTyx5Q0FBeUMsSUFBSSxRQUFRLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsS0FBZ0M7SUFDM0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sK0JBQStCLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDckMsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN4QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV2QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTywrQkFBK0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBQSw2QkFBYyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEYsTUFBTSxPQUFPLEdBQUcsS0FBSztTQUNsQixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDVCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLE9BQU8sT0FBTyxLQUFLLE9BQU8sQ0FBQztJQUM3QixDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFWixPQUFPLCtIQUErSCxVQUFVLHVCQUF1QixPQUFPLHdCQUF3QixDQUFDO0FBQ3pNLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQWdCO0lBQzNDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLCtCQUErQixDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUEsNkJBQWMsRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sc0NBQXNDLEtBQUssT0FBTyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sbUJBQW1CLENBQUMsS0FBa0MsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLE9BQU8sc0NBQXNDLEtBQUssT0FBTyxDQUFDO0FBQzVELENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQWM7SUFDekMsSUFBSSxJQUFBLGdCQUFRLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLElBQUEsc0JBQWMsRUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sMkJBQTJCLENBQUMsS0FBZ0MsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxPQUFPLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN0QixPQUFPLEtBQUssR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUc7UUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNuRCxPQUFPLEdBQUcsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHO1FBQUUsR0FBRyxFQUFFLENBQUM7SUFDbkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhO0lBQ3RDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLFFBQWdCLEVBQUUsUUFBaUIsRUFBRSxNQUFlO0lBQ3JGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUMzRSxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDeEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0RixNQUFNLElBQUksR0FBRyxVQUFVLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pILE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEYsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDckQsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLFVBQW1CLEVBQUUsR0FBWSxFQUFFLFFBQWlCLEVBQUUsTUFBZTtJQUN2RyxJQUFJLENBQUMsSUFBQSxzQkFBYyxFQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDaEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsVUFBcUMsQ0FBQztJQUNuRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RELElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQyxNQUFNLFVBQVUsR0FBRyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RixJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsTUFBTSxVQUFVLEdBQUcseUJBQXlCLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxRSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0MsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEYsTUFBTSxJQUFJLEdBQUcsVUFBVSxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQzVGLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDeEQsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQixHQUErQztJQUN0RSxVQUFVLEVBQUUsZ0JBQVEsQ0FBQyxVQUFVO0lBQy9CLFFBQVEsRUFBRSxnQkFBUSxDQUFDLFFBQVE7SUFDM0IscUJBQXFCLEVBQUUsZ0JBQVEsQ0FBQyxxQkFBcUI7SUFDckQsU0FBUyxFQUFFLGdCQUFRLENBQUMsU0FBUztJQUM3QixTQUFTLEVBQUUsZ0JBQVEsQ0FBQyxTQUFTO0lBQzdCLFdBQVcsRUFBRSxnQkFBUSxDQUFDLFdBQVc7SUFDakMsaUJBQWlCLEVBQUUsZ0JBQVEsQ0FBQyxpQkFBaUI7SUFDN0Msc0JBQXNCLEVBQUUsZ0JBQVEsQ0FBQyxzQkFBc0I7SUFDdkQscUJBQXFCLEVBQUUsZ0JBQVEsQ0FBQyxxQkFBcUI7SUFDckQsY0FBYyxFQUFFLGdCQUFRLENBQUMsY0FBYztJQUN2QyxvQkFBb0IsRUFBRSxnQkFBUSxDQUFDLG9CQUFvQjtJQUNuRCx5QkFBeUIsRUFBRSxnQkFBUSxDQUFDLHlCQUF5QjtJQUM3RCx3QkFBd0IsRUFBRSxnQkFBUSxDQUFDLHdCQUF3QjtJQUMzRCxjQUFjLEVBQUUsZ0JBQVEsQ0FBQyxjQUFjO0lBQ3ZDLFlBQVksRUFBRSxnQkFBUSxDQUFDLFlBQVk7SUFDbkMsYUFBYSxFQUFFLGdCQUFRLENBQUMsYUFBYTtJQUNyQyxhQUFhLEVBQUUsZ0JBQVEsQ0FBQyxhQUFhO0lBQ3JDLDJCQUEyQixFQUFFLGdCQUFRLENBQUMsMkJBQTJCO0lBQ2pFLHlCQUF5QixFQUFFLGdCQUFRLENBQUMseUJBQXlCO0lBQzdELDBCQUEwQixFQUFFLGdCQUFRLENBQUMsMEJBQTBCO0lBQy9ELDBCQUEwQixFQUFFLGdCQUFRLENBQUMsMEJBQTBCO0NBQ2hFLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUFHO0lBQ3pDOzs7Ozs7T0FNRztJQUNILFVBQVUsRUFBRSxVQUFVLFNBQXdCLEVBQUUsZUFBa0Q7UUFDaEcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLEdBQUcsU0FBUyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNCLENBQUM7WUFDRCxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNyRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLG9CQUFvQixDQUFDLENBQUM7UUFDckQsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsRUFBRSxVQUNoQixTQUF3QixFQUN4QixtQkFBc0QsRUFDdEQsZUFBa0Q7UUFFbEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsSUFBSSxFQUFFLEdBQUcsU0FBUyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNCLENBQUM7WUFFRCxNQUFNLFVBQVUsR0FBRyxPQUFPLG1CQUFtQixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM3RixNQUFNLE1BQU0sR0FBRyxPQUFPLGVBQWUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBRWpGLHlEQUF5RDtZQUN6RCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLENBQUM7aUJBQU0sSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNsRSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsSUFBSSxjQUFjLENBQUMsQ0FBQztZQUNqRSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWUsRUFBRSxVQUFVLFVBQWtCO1FBQzNDLE9BQU8sVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLEVBQUUsVUFBVSxHQUFZLEVBQUUsSUFBWSxFQUFFLFlBQXNCO1FBQy9ELE9BQU8sSUFBQSxZQUFJLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLEVBQUUsVUFBVSxLQUFjO1FBQy9CLE9BQU8sSUFBQSxnQkFBUSxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxFQUFFLFVBQVUsS0FBYztRQUNuQyxPQUFPLElBQUEsb0JBQVksRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sRUFBRSxVQUFVLEtBQWM7UUFDOUIsT0FBTyxJQUFBLGVBQU8sRUFBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsRUFBRSxVQUFVLEtBQWM7UUFDakMsT0FBTyxDQUFDLElBQUEsb0JBQVksRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsZUFBTyxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxFQUFFLFVBQVUsS0FBYztRQUMvQixPQUFPLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsRUFBRSxVQUFVLEtBQWM7UUFDaEMsT0FBTyxJQUFBLHNCQUFjLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxFQUFFLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxFQUFFLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsR0FBRyxFQUFFLFVBQVUsR0FBRyxJQUFlO1FBQy9CLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsRUFBRSxFQUFFLFVBQVUsR0FBRyxJQUFlO1FBQzlCLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxHQUFHLEVBQUUsVUFBVSxLQUFjO1FBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxFQUFFLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNsQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxHQUFHLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNuQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxFQUFFLEVBQUUsVUFBVSxDQUFVLEVBQUUsQ0FBVTtRQUNsQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxHQUFHLEVBQUUsVUFB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
@@ -20,7 +20,7 @@ function escapeHtmlText(value) {
20
20
  * @param value The encoded string.
21
21
  */
22
22
  function decodeBase64(value) {
23
- const binString = atob(value);
23
+ const binString = atob(String(value ?? ""));
24
24
  const bytes = Uint8Array.from(binString, (m) => {
25
25
  const cp = m.codePointAt(0);
26
26
  if (cp === undefined) {
@@ -35,8 +35,8 @@ function decodeBase64(value) {
35
35
  * @param value The text to convert to base64.
36
36
  */
37
37
  function encodeBase64(value) {
38
- const bytes = new TextEncoder().encode(value);
38
+ const bytes = new TextEncoder().encode(String(value ?? ""));
39
39
  const binString = Array.from(bytes, (byte) => String.fromCodePoint(byte)).join("");
40
40
  return btoa(binString);
41
41
  }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2h0bWwtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHdDQU9DO0FBTUQsb0NBVUM7QUFNRCxvQ0FNQztBQXZDRDs7O0dBR0c7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBYztJQUN6QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1NBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO1NBQ3hCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO1NBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO1NBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDO1NBQ3pCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxLQUFhO0lBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQzdDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQWE7SUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUMzQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUMzQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMifQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2h0bWwtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHdDQU9DO0FBTUQsb0NBVUM7QUFNRCxvQ0FNQztBQXZDRDs7O0dBR0c7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBYztJQUN6QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1NBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO1NBQ3hCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO1NBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO1NBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDO1NBQ3pCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxLQUFhO0lBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUM3QyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxLQUFhO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQzNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekIsQ0FBQyJ9
@@ -13,6 +13,8 @@ exports.jsonataEvaluateFunc = jsonataEvaluateFunc;
13
13
  const jsonata_1 = __importDefault(require("jsonata"));
14
14
  const luxon_1 = require("luxon");
15
15
  const html_helpers_1 = require("./html-helpers");
16
+ const naming_helpers_1 = require("./config/names/naming-helpers");
17
+ const translation_helpers_1 = require("./translation-helpers");
16
18
  /**
17
19
  * Format a date using the luxon library.
18
20
  * @param value The value to format.
@@ -53,6 +55,7 @@ function luxonFormatDate(value, format, sourceFormat) {
53
55
  * @param expression The jsonata expression string.
54
56
  */
55
57
  function jsonataExpressionEncode(expression) {
58
+ expression = (0, naming_helpers_1.normaliseVisual)(expression);
56
59
  return (0, html_helpers_1.encodeBase64)(expression);
57
60
  }
58
61
  /**
@@ -77,7 +80,12 @@ function jsonataDecodeCompile(expressionEncoded, options) {
77
80
  * @return compiled JSONata expression object
78
81
  */
79
82
  function jsonataCompile(expression, options) {
83
+ expression = (0, naming_helpers_1.normaliseVisual)(expression);
80
84
  const compiled = (0, jsonata_1.default)(expression, options);
85
+ // Register jsonata functions.
86
+ // The function signatures are used on purpose to restrict the arguments,
87
+ // so invalid input types are clear instead of hidden.
88
+ // Callers of the jsonata helper functions must be prepared for possible parse errors and input type errors.
81
89
  // Disable JSONata's dynamic eval function so browser/server validators only run the configured expression.
82
90
  compiled.registerFunction('eval', () => { throw new Error('Attempted to invoke eval'); });
83
91
  // Register a function for formatting date time values.
@@ -86,6 +94,10 @@ function jsonataCompile(expression, options) {
86
94
  // Third param 'sourceFormat': string, null, optional
87
95
  // Return type: string
88
96
  compiled.registerFunction('luxonFormatDate', luxonFormatDate, '<(snlo)(sl)(sl)?:s>');
97
+ // Register a function for guessing name parts.
98
+ // First param 'value': string, null
99
+ // Return type: object
100
+ compiled.registerFunction('guessNameParts', translation_helpers_1.guessNameParts, '<(sl):o>');
89
101
  // TODO: consider registering a function for translations
90
102
  // TODO: consider replacing regex with google's re2?
91
103
  return compiled;
@@ -103,4 +115,4 @@ function jsonataEvaluateFunc(expression, bindings) {
103
115
  return await jsonataEvaluate(compiled, value, bindings);
104
116
  };
105
117
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmF0YS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pzb25hdGEtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWVBLDBDQWdDQztBQU1ELDBEQUVDO0FBV0Qsb0RBRUM7QUFXRCx3Q0FpQkM7QUFFRCwwQ0FNQztBQUVELDhEQU9DO0FBRUQsa0RBS0M7QUF4SEQsc0RBQThCO0FBQzlCLGlDQUFpQztBQUNqQyxpREFBMEQ7QUFPMUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQzdCLEtBQWdELEVBQ2hELE1BQWlDLEVBQ2pDLFlBQTRCO0lBRTVCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMxRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNsRixNQUFNLFdBQVcsR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRyxNQUFNLGFBQWEsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9FLElBQUksUUFBa0IsQ0FBQztJQUV2QixJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUMxQixRQUFRLEdBQUcsZ0JBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztTQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckMsUUFBUSxH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
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmF0YS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pzb25hdGEtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWlCQSwwQ0FnQ0M7QUFNRCwwREFHQztBQVdELG9EQUVDO0FBV0Qsd0NBNEJDO0FBRUQsMENBTUM7QUFFRCw4REFPQztBQUVELGtEQUtDO0FBdElELHNEQUE4QjtBQUM5QixpQ0FBaUM7QUFDakMsaURBQTBEO0FBQzFELGtFQUE4RDtBQUM5RCwrREFBcUQ7QUFPckQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQzdCLEtBQWdELEVBQ2hELE1BQWlDLEVBQ2pDLFlBQTRCO0lBRTVCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMxRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNsRixNQUFNLFdBQVcsR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRyxNQUFNLGFBQWEsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9FLElBQUksUUFBa0IsQ0FBQztJQUV2QixJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUMxQixRQUFRLEdBQUcsZ0JBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztTQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckMsUUFBUSxHQUFHLGdCQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7U0FBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3ZCLFFBQVEsR0FBRyxnQkFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDN0QsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLFVBQVUsR0FBRztZQUNqQixnQkFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDL0IsZ0JBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztZQUNoRCxnQkFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDO1lBQ2hELGdCQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNuQyxnQkFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7U0FDakMsQ0FBQztRQUNGLFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGdCQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2pFLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxVQUFrQjtJQUN4RCxVQUFVLEdBQUcsSUFBQSxnQ0FBZSxFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sSUFBQSwyQkFBWSxFQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLGlCQUF5QixFQUFFLE9BQWdDO0lBQzlGLE9BQU8sY0FBYyxDQUFDLElBQUEsMkJBQVksRUFBQyxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxVQUFrQixFQUFFLE9BQWdDO0lBQ2pGLFVBQVUsR0FBRyxJQUFBLGdDQUFlLEVBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBQSxpQkFBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUU5Qyw4QkFBOEI7SUFDOUIseUVBQXlFO0lBQ3pFLHNEQUFzRDtJQUN0RCw0R0FBNEc7SUFFNUcsMkdBQTJHO0lBQzNHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUM7SUFFdkYsdURBQXVEO0lBQ3ZELG9FQUFvRTtJQUNwRSxzQ0FBc0M7SUFDdEMscURBQXFEO0lBQ3JELHNCQUFzQjtJQUN0QixRQUFRLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFFckYsK0NBQStDO0lBQy9DLG9DQUFvQztJQUNwQyxzQkFBc0I7SUFDdEIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLG9DQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFeEUseURBQXlEO0lBQ3pELG9EQUFvRDtJQUVwRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FDbkMsUUFBNEIsRUFDNUIsT0FBZ0IsRUFDaEIsUUFBa0M7SUFFbEMsT0FBTyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFTSxLQUFLLFVBQVUseUJBQXlCLENBQzdDLFVBQWtCLEVBQ2xCLE9BQWdCLEVBQ2hCLFFBQWtDO0lBRWxDLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxPQUFPLE1BQU0sZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLFVBQWtCLEVBQUUsUUFBa0M7SUFDeEYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sS0FBSyxXQUFXLEtBQWM7UUFDbkMsT0FBTyxNQUFNLGVBQWUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQztBQUNKLENBQUMifQ==
@@ -45,8 +45,11 @@ export type DynamicScriptResponseEvaluateContext = unknown;
45
45
  * Provide the template library evaluator functions.
46
46
  */
47
47
  export type DynamicScriptResponseEvaluateExtra = {
48
- jsonata?: unknown;
49
- libraries?: Record<string, unknown>;
48
+ libraries?: {
49
+ jsonata?: Function;
50
+ handlebars?: Function;
51
+ [key: string]: unknown;
52
+ };
50
53
  };
51
54
  /**
52
55
  * The result of evaluating the template.
@@ -6,5 +6,21 @@
6
6
  * to remove the need for this method.
7
7
  *
8
8
  * @param key The string to guess as natual language or not.
9
+ * @return True if the key is likely natural language and not a translation key.
9
10
  */
10
11
  export declare function isLikelyNaturalLanguage(key: string | null | undefined): boolean;
12
+ /**
13
+ * Guess at the parts of a full name.
14
+ *
15
+ * TODO: This is best-effort only, and is likely to be incorrect.
16
+ * The long-term goal is to not have to guess at names.
17
+ * This is needed while some form fields prompt for full names and others need parts of names.
18
+ *
19
+ * @param value Guess at the parts of this full name.
20
+ * @return Object with guessed values for full, first, and last names.
21
+ */
22
+ export declare function guessNameParts(value: string): {
23
+ full: string;
24
+ first: string;
25
+ last: string;
26
+ };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isLikelyNaturalLanguage = isLikelyNaturalLanguage;
4
+ exports.guessNameParts = guessNameParts;
4
5
  /**
5
6
  * Guess at whether the key is a natural language string.
6
7
  * This is useful for translating only keys that are likely to be translation codes.
@@ -9,22 +10,62 @@ exports.isLikelyNaturalLanguage = isLikelyNaturalLanguage;
9
10
  * to remove the need for this method.
10
11
  *
11
12
  * @param key The string to guess as natual language or not.
13
+ * @return True if the key is likely natural language and not a translation key.
12
14
  */
13
15
  function isLikelyNaturalLanguage(key) {
14
- const value = (key ?? "").trim();
15
- // An empty string is not natural language or translation code.
16
- if (!value) {
16
+ const value = String(key ?? "").trim();
17
+ const containsSpace = value.includes(' ');
18
+ const startsCapitalLetter = value.length > 0 ? value[0].toLowerCase() !== value[0] : false;
19
+ // An empty string is not natural language.
20
+ // Treat default conversion of object to string as not natural language.
21
+ // Likely a translation code if contains '{{' or '}}'.
22
+ // Likely a translation code if starts with '@' and no spaces and does not start with a capital letter.
23
+ // Likely a translation code if contains '_' and no spaces and does not start with a capital letter.
24
+ if (!value ||
25
+ value.includes('[object Object]') ||
26
+ value.includes('{{') || value.includes('}}') ||
27
+ (value.startsWith('@') && !containsSpace && !startsCapitalLetter) ||
28
+ (value.includes('_') && !containsSpace && !startsCapitalLetter)) {
17
29
  return false;
18
30
  }
19
31
  // Likely natural language if contains a space or starts with a capital letter.
20
- if (value.includes(' ') || (value[0].toLowerCase() !== value[0])) {
32
+ if (containsSpace || startsCapitalLetter) {
21
33
  return true;
22
34
  }
23
- // Likely a translation code if starts with '@', or contains ':' or contains '_'.
24
- if (value.startsWith('@') || value.includes(':') || value.includes('_')) {
35
+ // Likely a translation code if contains any of ':', '{', '}'.
36
+ if (value.includes(':') ||
37
+ value.includes('{') ||
38
+ value.includes('}')) {
25
39
  return false;
26
40
  }
27
41
  // Otherwise, be conservative and say the translation key is not natural language.
28
42
  return false;
29
43
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24taGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2xhdGlvbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0EsMERBb0JDO0FBN0JEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsR0FBOEI7SUFDcEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFakMsK0RBQStEO0lBQy9ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxpRkFBaUY7SUFDakYsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGtGQUFrRjtJQUNsRixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMifQ==
44
+ /**
45
+ * Guess at the parts of a full name.
46
+ *
47
+ * TODO: This is best-effort only, and is likely to be incorrect.
48
+ * The long-term goal is to not have to guess at names.
49
+ * This is needed while some form fields prompt for full names and others need parts of names.
50
+ *
51
+ * @param value Guess at the parts of this full name.
52
+ * @return Object with guessed values for full, first, and last names.
53
+ */
54
+ function guessNameParts(value) {
55
+ let full = String(value ?? "").replace(/\s+/g, ' ').trim(), first = '', last = '';
56
+ if (!full) {
57
+ return { full, first, last };
58
+ }
59
+ // If there are no spaces, assume this is the last name.
60
+ if (!full.includes(' ')) {
61
+ last = full;
62
+ return { full, first, last };
63
+ }
64
+ // If there are spaces, assume the first 'word' is the first name, and the rest is the last name.
65
+ const words = full.split(' ').filter(w => !!w?.trim());
66
+ full = words.join(' ');
67
+ first = words[0];
68
+ last = words.slice(1).join(' ');
69
+ return { full, first, last };
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24taGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2xhdGlvbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBVUEsMERBcUNDO0FBWUQsd0NBcUJDO0FBaEZEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLEdBQThCO0lBQ3BFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFdkMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFFM0YsMkNBQTJDO0lBQzNDLHdFQUF3RTtJQUN4RSxzREFBc0Q7SUFDdEQsdUdBQXVHO0lBQ3ZHLG9HQUFvRztJQUNwRyxJQUNFLENBQUMsS0FBSztRQUNOLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7UUFDakMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUM1QyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUNqRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUMvRCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsK0VBQStFO0lBQy9FLElBQUksYUFBYSxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsOERBQThEO0lBQzlELElBQ0UsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDbkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDbkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFDbkIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGtGQUFrRjtJQUNsRixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBYTtJQUMxQyxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQ3hELEtBQUssR0FBRyxFQUFFLEVBQ1YsSUFBSSxHQUFFLEVBQUUsQ0FBQztJQUVYLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQztRQUN2QixJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osT0FBTyxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGlHQUFpRztJQUNqRyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RCxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxPQUFPLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQztBQUM3QixDQUFDIn0=
@@ -373,5 +373,81 @@ exports.formValidatorsSharedDefinitions = [
373
373
  };
374
374
  },
375
375
  },
376
+ // Validates a URL using the WHATWG URL parser. By default only absolute http(s) URLs pass.
377
+ // Configuration options (all optional):
378
+ // - schemes: string[] allowed schemes for absolute URLs (default ["http", "https"]).
379
+ // An empty array allows any scheme.
380
+ // - allowAbsolute: boolean accept absolute URLs, e.g. "https://example.org/x" (default true).
381
+ // - allowRelative: boolean accept relative references, e.g. "/path", "page?q=1", "../x"
382
+ // (default false). Protocol-relative values ("//host/x") are rejected.
383
+ // - requireTld: boolean when accepting an absolute URL, require the host to contain a dot,
384
+ // e.g. reject "http://localhost" (default false).
385
+ // - description: string included in the error params for custom messaging.
386
+ {
387
+ class: "url",
388
+ message: "@validator-error-url",
389
+ create: (config) => {
390
+ const optionDescriptionValue = (0, helpers_1.formValidatorGetDefinitionString)(config, "description", "");
391
+ const allowAbsolute = (0, helpers_1.formValidatorGetDefinitionBoolean)(config, "allowAbsolute", true);
392
+ const allowRelative = (0, helpers_1.formValidatorGetDefinitionBoolean)(config, "allowRelative", false);
393
+ const requireTld = (0, helpers_1.formValidatorGetDefinitionBoolean)(config, "requireTld", false);
394
+ const schemes = (0, helpers_1.formValidatorGetDefinitionArray)(config, "schemes", ["http", "https"])
395
+ .map((scheme) => (scheme?.toString() ?? "").trim().toLowerCase().replace(/:$/, ""))
396
+ .filter((scheme) => scheme.length > 0);
397
+ return (control) => {
398
+ if (control.value == null || (0, helpers_1.formValidatorLengthOrSize)(control.value) === 0) {
399
+ return null; // don't validate empty values to allow optional controls
400
+ }
401
+ const candidate = control.value.toString().trim();
402
+ if (candidate.length === 0) {
403
+ return null; // treat whitespace-only values as empty/optional
404
+ }
405
+ const buildError = () => (0, helpers_1.formValidatorBuildError)(config, {
406
+ description: optionDescriptionValue,
407
+ schemes,
408
+ allowAbsolute,
409
+ allowRelative,
410
+ actual: control.value,
411
+ });
412
+ // Try to parse as an absolute URL first. A successful parse means the value has a scheme.
413
+ let absolute = null;
414
+ try {
415
+ absolute = new URL(candidate);
416
+ }
417
+ catch {
418
+ absolute = null;
419
+ }
420
+ if (absolute) {
421
+ if (!allowAbsolute) {
422
+ return buildError();
423
+ }
424
+ const scheme = absolute.protocol.replace(/:$/, "").toLowerCase();
425
+ if (schemes.length > 0 && !schemes.includes(scheme)) {
426
+ return buildError();
427
+ }
428
+ if (requireTld && !absolute.hostname.includes(".")) {
429
+ return buildError();
430
+ }
431
+ return null;
432
+ }
433
+ // Not absolute, so treat it as a relative reference.
434
+ if (!allowRelative) {
435
+ return buildError();
436
+ }
437
+ // Protocol-relative values resolve to an arbitrary host, escaping the relative scope.
438
+ if (candidate.startsWith("//")) {
439
+ return buildError();
440
+ }
441
+ try {
442
+ // Resolving against a base only throws for malformed relative references.
443
+ new URL(candidate, "http://relative.invalid/");
444
+ }
445
+ catch {
446
+ return buildError();
447
+ }
448
+ return null;
449
+ };
450
+ },
451
+ },
376
452
  ];
377
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUNBU21CO0FBR25CLFNBQVMsa0JBQWtCLENBQUMsS0FBYztJQUN4QyxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELE1BQU0sWUFBWSxHQUFHLElBQUEsbUNBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDMUIsT0FBTyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLEtBQWM7SUFDNUMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBQSxtQ0FBeUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMxQixPQUFPLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsS0FBYyxFQUFFLFVBQW9CO0lBQ2pFLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJ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
453
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUNBU21CO0FBR25CLFNBQVMsa0JBQWtCLENBQUMsS0FBYztJQUN4QyxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELE1BQU0sWUFBWSxHQUFHLElBQUEsbUNBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDMUIsT0FBTyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLEtBQWM7SUFDNUMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBQSxtQ0FBeUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMxQixPQUFPLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsS0FBYyxFQUFFLFVBQW9CO0lBQ2pFLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJ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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@researchdatabox/sails-ng-common",
3
- "version": "0.0.1-beta.10173",
3
+ "version": "0.0.1-beta.10300",
4
4
  "description": "Common models shared between Sails API endpoints and client-side Angular code",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -9,12 +9,12 @@
9
9
  ],
10
10
  "scripts": {
11
11
  "test": "nyc --reporter=text mocha --exit --config test/unit/.mocharc.js dist/test/unit",
12
- "pretest": "npm run test:compile && mkdir -p support/junit",
12
+ "test:prepare": "mkdir -p support/junit",
13
13
  "test:clean": "rm -rf support/junit || true",
14
14
  "compile": "tsc -p tsconfig.prod.json",
15
- "compile:clean": "rm -rf dist/",
15
+ "compile:clean": "rm -rf dist/ || true",
16
16
  "test:compile": "tsc -p tsconfig.test.json",
17
- "pretest:compile": "npm run compile:clean"
17
+ "test:full": "npm run compile:clean && npm run test:clean && npm run test:compile && npm run test:prepare && npm run test"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",