@docusaurus/utils-validation 2.0.0-beta.15a2b59f9 → 2.0.0-beta.17

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/lib/Joi.d.ts CHANGED
@@ -5,3 +5,4 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  export { default } from 'joi';
8
+ //# sourceMappingURL=Joi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Joi.d.ts","sourceRoot":"","sources":["../src/Joi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,KAAK,CAAC"}
package/lib/Joi.js CHANGED
@@ -9,3 +9,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.default = void 0;
10
10
  var joi_1 = require("joi");
11
11
  Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(joi_1).default; } });
12
+ //# sourceMappingURL=Joi.js.map
package/lib/Joi.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Joi.js","sourceRoot":"","sources":["../src/Joi.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2BAA4B;AAApB,+GAAA,OAAO,OAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import Joi from './Joi';
8
+ /**
9
+ * Enhance the default Joi.string() type so that it can convert number to
10
+ * strings. If user use front matter "tag: 2021", we shouldn't need to ask her
11
+ * to write "tag: '2021'". Also yaml tries to convert patterns like "2019-01-01"
12
+ * to dates automatically.
13
+ * @see https://github.com/facebook/docusaurus/issues/4642
14
+ * @see https://github.com/sideway/joi/issues/1442#issuecomment-823997884
15
+ */
16
+ export declare const JoiFrontMatter: typeof Joi;
17
+ //# sourceMappingURL=JoiFrontMatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoiFrontMatter.d.ts","sourceRoot":"","sources":["../src/JoiFrontMatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,GAAG,MAAM,OAAO,CAAC;AAaxB;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,GAAsC,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Facebook, Inc. and its affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.JoiFrontMatter = void 0;
10
+ const tslib_1 = require("tslib");
11
+ const Joi_1 = tslib_1.__importDefault(require("./Joi"));
12
+ const JoiFrontMatterString = {
13
+ type: 'string',
14
+ base: Joi_1.default.string(),
15
+ // Fix Yaml that tries to auto-convert many things to string out of the box
16
+ prepare: (value) => {
17
+ if (typeof value === 'number' || value instanceof Date) {
18
+ return { value: value.toString() };
19
+ }
20
+ return { value };
21
+ },
22
+ };
23
+ /**
24
+ * Enhance the default Joi.string() type so that it can convert number to
25
+ * strings. If user use front matter "tag: 2021", we shouldn't need to ask her
26
+ * to write "tag: '2021'". Also yaml tries to convert patterns like "2019-01-01"
27
+ * to dates automatically.
28
+ * @see https://github.com/facebook/docusaurus/issues/4642
29
+ * @see https://github.com/sideway/joi/issues/1442#issuecomment-823997884
30
+ */
31
+ exports.JoiFrontMatter = Joi_1.default.extend(JoiFrontMatterString);
32
+ //# sourceMappingURL=JoiFrontMatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoiFrontMatter.js","sourceRoot":"","sources":["../src/JoiFrontMatter.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,wDAAwB;AAExB,MAAM,oBAAoB,GAAkB;IAC1C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;IAClB,2EAA2E;IAC3E,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI,EAAE;YACtD,OAAO,EAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAC,CAAC;SAClC;QACD,OAAO,EAAC,KAAK,EAAC,CAAC;IACjB,CAAC;CACF,CAAC;AACF;;;;;;;GAOG;AACU,QAAA,cAAc,GAAe,aAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
package/lib/index.d.ts CHANGED
@@ -5,5 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  export { default as Joi } from './Joi';
8
- export * from './validationUtils';
9
- export * from './validationSchemas';
8
+ export { JoiFrontMatter } from './JoiFrontMatter';
9
+ export { printWarning, normalizePluginOptions, normalizeThemeConfig, validateFrontMatter, } from './validationUtils';
10
+ export { PluginIdSchema, RemarkPluginsSchema, RehypePluginsSchema, AdmonitionsSchema, URISchema, PathnameSchema, FrontMatterTagsSchema, FrontMatterTOCHeadingLevels, } from './validationSchemas';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC"}
package/lib/index.js CHANGED
@@ -6,10 +6,24 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.Joi = void 0;
10
- const tslib_1 = require("tslib");
9
+ exports.FrontMatterTOCHeadingLevels = exports.FrontMatterTagsSchema = exports.PathnameSchema = exports.URISchema = exports.AdmonitionsSchema = exports.RehypePluginsSchema = exports.RemarkPluginsSchema = exports.PluginIdSchema = exports.validateFrontMatter = exports.normalizeThemeConfig = exports.normalizePluginOptions = exports.printWarning = exports.JoiFrontMatter = exports.Joi = void 0;
11
10
  // /!\ don't remove this export, as we recommend plugin authors to use it
12
11
  var Joi_1 = require("./Joi");
13
- Object.defineProperty(exports, "Joi", { enumerable: true, get: function () { return tslib_1.__importDefault(Joi_1).default; } });
14
- tslib_1.__exportStar(require("./validationUtils"), exports);
15
- tslib_1.__exportStar(require("./validationSchemas"), exports);
12
+ Object.defineProperty(exports, "Joi", { enumerable: true, get: function () { return __importDefault(Joi_1).default; } });
13
+ var JoiFrontMatter_1 = require("./JoiFrontMatter");
14
+ Object.defineProperty(exports, "JoiFrontMatter", { enumerable: true, get: function () { return JoiFrontMatter_1.JoiFrontMatter; } });
15
+ var validationUtils_1 = require("./validationUtils");
16
+ Object.defineProperty(exports, "printWarning", { enumerable: true, get: function () { return validationUtils_1.printWarning; } });
17
+ Object.defineProperty(exports, "normalizePluginOptions", { enumerable: true, get: function () { return validationUtils_1.normalizePluginOptions; } });
18
+ Object.defineProperty(exports, "normalizeThemeConfig", { enumerable: true, get: function () { return validationUtils_1.normalizeThemeConfig; } });
19
+ Object.defineProperty(exports, "validateFrontMatter", { enumerable: true, get: function () { return validationUtils_1.validateFrontMatter; } });
20
+ var validationSchemas_1 = require("./validationSchemas");
21
+ Object.defineProperty(exports, "PluginIdSchema", { enumerable: true, get: function () { return validationSchemas_1.PluginIdSchema; } });
22
+ Object.defineProperty(exports, "RemarkPluginsSchema", { enumerable: true, get: function () { return validationSchemas_1.RemarkPluginsSchema; } });
23
+ Object.defineProperty(exports, "RehypePluginsSchema", { enumerable: true, get: function () { return validationSchemas_1.RehypePluginsSchema; } });
24
+ Object.defineProperty(exports, "AdmonitionsSchema", { enumerable: true, get: function () { return validationSchemas_1.AdmonitionsSchema; } });
25
+ Object.defineProperty(exports, "URISchema", { enumerable: true, get: function () { return validationSchemas_1.URISchema; } });
26
+ Object.defineProperty(exports, "PathnameSchema", { enumerable: true, get: function () { return validationSchemas_1.PathnameSchema; } });
27
+ Object.defineProperty(exports, "FrontMatterTagsSchema", { enumerable: true, get: function () { return validationSchemas_1.FrontMatterTagsSchema; } });
28
+ Object.defineProperty(exports, "FrontMatterTOCHeadingLevels", { enumerable: true, get: function () { return validationSchemas_1.FrontMatterTOCHeadingLevels; } });
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,yEAAyE;AACzE,6BAAqC;AAA7B,2GAAA,OAAO,OAAO;AACtB,mDAAgD;AAAxC,gHAAA,cAAc,OAAA;AAEtB,qDAK2B;AAJzB,+GAAA,YAAY,OAAA;AACZ,yHAAA,sBAAsB,OAAA;AACtB,uHAAA,oBAAoB,OAAA;AACpB,sHAAA,mBAAmB,OAAA;AAErB,yDAS6B;AAR3B,mHAAA,cAAc,OAAA;AACd,wHAAA,mBAAmB,OAAA;AACnB,wHAAA,mBAAmB,OAAA;AACnB,sHAAA,iBAAiB,OAAA;AACjB,8GAAA,SAAS,OAAA;AACT,mHAAA,cAAc,OAAA;AACd,0HAAA,qBAAqB,OAAA;AACrB,gIAAA,2BAA2B,OAAA"}
@@ -11,3 +11,9 @@ export declare const RehypePluginsSchema: Joi.ArraySchema;
11
11
  export declare const AdmonitionsSchema: Joi.ObjectSchema<any>;
12
12
  export declare const URISchema: Joi.AlternativesSchema;
13
13
  export declare const PathnameSchema: Joi.StringSchema;
14
+ export declare const FrontMatterTagsSchema: Joi.ArraySchema;
15
+ export declare const FrontMatterTOCHeadingLevels: {
16
+ toc_min_heading_level: Joi.NumberSchema;
17
+ toc_max_heading_level: Joi.NumberSchema;
18
+ };
19
+ //# sourceMappingURL=validationSchemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validationSchemas.d.ts","sourceRoot":"","sources":["../src/validationSchemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,GAAG,MAAM,OAAO,CAAC;AAKxB,eAAO,MAAM,cAAc,kBAKE,CAAC;AAU9B,eAAO,MAAM,mBAAmB,iBAAwB,CAAC;AACzD,eAAO,MAAM,mBAAmB,iBAAwB,CAAC;AAEzD,eAAO,MAAM,iBAAiB,uBAA2B,CAAC;AAI1D,eAAO,MAAM,SAAS,wBAgBpB,CAAC;AAEH,eAAO,MAAM,cAAc,kBASxB,CAAC;AAeJ,eAAO,MAAM,qBAAqB,iBAK9B,CAAC;AAEL,eAAO,MAAM,2BAA2B;;;CASvC,CAAC"}
@@ -1,19 +1,20 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PathnameSchema = exports.URISchema = exports.AdmonitionsSchema = exports.RehypePluginsSchema = exports.RemarkPluginsSchema = exports.PluginIdSchema = void 0;
4
- const tslib_1 = require("tslib");
5
2
  /**
6
3
  * Copyright (c) Facebook, Inc. and its affiliates.
7
4
  *
8
5
  * This source code is licensed under the MIT license found in the
9
6
  * LICENSE file in the root directory of this source tree.
10
7
  */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FrontMatterTOCHeadingLevels = exports.FrontMatterTagsSchema = exports.PathnameSchema = exports.URISchema = exports.AdmonitionsSchema = exports.RehypePluginsSchema = exports.RemarkPluginsSchema = exports.PluginIdSchema = void 0;
10
+ const tslib_1 = require("tslib");
11
11
  const Joi_1 = tslib_1.__importDefault(require("./Joi"));
12
12
  const utils_1 = require("@docusaurus/utils");
13
+ const JoiFrontMatter_1 = require("./JoiFrontMatter");
13
14
  exports.PluginIdSchema = Joi_1.default.string()
14
- .regex(/^[a-zA-Z_-]+$/)
15
- // duplicate core constant, otherwise cyclic dependency is created :(
16
- .default('default');
15
+ .regex(/^[a-zA-Z0-9_-]+$/)
16
+ .message('Illegal plugin ID value "{#value}": it should only contain alphanumerics, underscores, and dashes.')
17
+ .default(utils_1.DEFAULT_PLUGIN_ID);
17
18
  const MarkdownPluginsSchema = Joi_1.default.array()
18
19
  .items(Joi_1.default.array().ordered(Joi_1.default.function().required(), Joi_1.default.object().required()), Joi_1.default.function(), Joi_1.default.object())
19
20
  .default([]);
@@ -23,28 +24,50 @@ exports.AdmonitionsSchema = Joi_1.default.object().default({});
23
24
  // TODO how can we make this emit a custom error message :'(
24
25
  // Joi is such a pain, good luck to annoying trying to improve this
25
26
  exports.URISchema = Joi_1.default.alternatives(Joi_1.default.string().uri({ allowRelative: true }),
26
- // This custom validation logic is required notably because Joi does not accept paths like /a/b/c ...
27
+ // This custom validation logic is required notably because Joi does not
28
+ // accept paths like /a/b/c ...
27
29
  Joi_1.default.custom((val, helpers) => {
28
30
  try {
29
- const url = new URL(val);
30
- if (url) {
31
- return val;
32
- }
33
- else {
34
- return helpers.error('any.invalid');
35
- }
31
+ // eslint-disable-next-line no-new
32
+ new URL(val);
33
+ return val;
36
34
  }
37
35
  catch {
38
36
  return helpers.error('any.invalid');
39
37
  }
40
- }));
38
+ })).messages({
39
+ 'alternatives.match': "{{#label}} does not look like a valid url (value='{{.value}}')",
40
+ });
41
41
  exports.PathnameSchema = Joi_1.default.string()
42
42
  .custom((val) => {
43
- if (!utils_1.isValidPathname(val)) {
43
+ if (!(0, utils_1.isValidPathname)(val)) {
44
44
  throw new Error();
45
45
  }
46
- else {
47
- return val;
48
- }
46
+ return val;
49
47
  })
50
48
  .message('{{#label}} is not a valid pathname. Pathname should start with slash and not contain any domain or query string.');
49
+ const FrontMatterTagSchema = JoiFrontMatter_1.JoiFrontMatter.alternatives()
50
+ .try(JoiFrontMatter_1.JoiFrontMatter.string().required(), JoiFrontMatter_1.JoiFrontMatter.object({
51
+ label: JoiFrontMatter_1.JoiFrontMatter.string().required(),
52
+ permalink: JoiFrontMatter_1.JoiFrontMatter.string().required(),
53
+ }).required())
54
+ .messages({
55
+ 'alternatives.match': '{{#label}} does not look like a valid tag',
56
+ 'alternatives.types': '{{#label}} does not look like a valid tag',
57
+ });
58
+ exports.FrontMatterTagsSchema = JoiFrontMatter_1.JoiFrontMatter.array()
59
+ .items(FrontMatterTagSchema)
60
+ .messages({
61
+ 'array.base': '{{#label}} does not look like a valid FrontMatter Yaml array.',
62
+ });
63
+ exports.FrontMatterTOCHeadingLevels = {
64
+ toc_min_heading_level: JoiFrontMatter_1.JoiFrontMatter.number().when('toc_max_heading_level', {
65
+ is: JoiFrontMatter_1.JoiFrontMatter.exist(),
66
+ then: JoiFrontMatter_1.JoiFrontMatter.number()
67
+ .min(2)
68
+ .max(JoiFrontMatter_1.JoiFrontMatter.ref('toc_max_heading_level')),
69
+ otherwise: JoiFrontMatter_1.JoiFrontMatter.number().min(2).max(6),
70
+ }),
71
+ toc_max_heading_level: JoiFrontMatter_1.JoiFrontMatter.number().min(2).max(6),
72
+ };
73
+ //# sourceMappingURL=validationSchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validationSchemas.js","sourceRoot":"","sources":["../src/validationSchemas.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,wDAAwB;AACxB,6CAAqE;AAErE,qDAAgD;AAEnC,QAAA,cAAc,GAAG,aAAG,CAAC,MAAM,EAAE;KACvC,KAAK,CAAC,kBAAkB,CAAC;KACzB,OAAO,CACN,oGAAoG,CACrG;KACA,OAAO,CAAC,yBAAiB,CAAC,CAAC;AAE9B,MAAM,qBAAqB,GAAG,aAAG,CAAC,KAAK,EAAE;KACtC,KAAK,CACJ,aAAG,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,aAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,EACvE,aAAG,CAAC,QAAQ,EAAE,EACd,aAAG,CAAC,MAAM,EAAE,CACb;KACA,OAAO,CAAC,EAAE,CAAC,CAAC;AAEF,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAC5C,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAE5C,QAAA,iBAAiB,GAAG,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAE1D,4DAA4D;AAC5D,oEAAoE;AACvD,QAAA,SAAS,GAAG,aAAG,CAAC,YAAY,CACvC,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;AACvC,wEAAwE;AACxE,+BAA+B;AAC/B,aAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;IAC1B,IAAI;QACF,kCAAkC;QAClC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,GAAG,CAAC;KACZ;IAAC,MAAM;QACN,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACrC;AACH,CAAC,CAAC,CACH,CAAC,QAAQ,CAAC;IACT,oBAAoB,EAClB,gEAAgE;CACnE,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,aAAG,CAAC,MAAM,EAAE;KACvC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;IACd,IAAI,CAAC,IAAA,uBAAe,EAAC,GAAG,CAAC,EAAE;QACzB,MAAM,IAAI,KAAK,EAAE,CAAC;KACnB;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;KACD,OAAO,CACN,kHAAkH,CACnH,CAAC;AAEJ,MAAM,oBAAoB,GAAG,+BAAc,CAAC,YAAY,EAAE;KACvD,GAAG,CACF,+BAAc,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAClC,+BAAc,CAAC,MAAM,CAAM;IACzB,KAAK,EAAE,+BAAc,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,+BAAc,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC,QAAQ,EAAE,CACd;KACA,QAAQ,CAAC;IACR,oBAAoB,EAAE,2CAA2C;IACjE,oBAAoB,EAAE,2CAA2C;CAClE,CAAC,CAAC;AAEQ,QAAA,qBAAqB,GAAG,+BAAc,CAAC,KAAK,EAAE;KACxD,KAAK,CAAC,oBAAoB,CAAC;KAC3B,QAAQ,CAAC;IACR,YAAY,EACV,+DAA+D;CAClE,CAAC,CAAC;AAEQ,QAAA,2BAA2B,GAAG;IACzC,qBAAqB,EAAE,+BAAc,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE;QAC3E,EAAE,EAAE,+BAAc,CAAC,KAAK,EAAE;QAC1B,IAAI,EAAE,+BAAc,CAAC,MAAM,EAAE;aAC1B,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,+BAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACnD,SAAS,EAAE,+BAAc,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACjD,CAAC;IACF,qBAAqB,EAAE,+BAAc,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7D,CAAC"}
@@ -4,13 +4,11 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import Joi from './Joi';
8
- export declare const isValidationDisabledEscapeHatch: boolean;
9
- export declare const logValidationBugReportHint: () => void;
7
+ import type Joi from './Joi';
10
8
  export declare function printWarning(warning?: Joi.ValidationError): void;
11
9
  export declare function normalizePluginOptions<T extends {
12
10
  id?: string;
13
11
  }>(schema: Joi.ObjectSchema<T>, options: Partial<T>): T;
14
12
  export declare function normalizeThemeConfig<T>(schema: Joi.ObjectSchema<T>, themeConfig: Partial<T>): T;
15
- export declare const JoiFrontMatter: typeof Joi;
16
13
  export declare function validateFrontMatter<T>(frontMatter: Record<string, unknown>, schema: Joi.ObjectSchema<T>): T;
14
+ //# sourceMappingURL=validationUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validationUtils.d.ts","sourceRoot":"","sources":["../src/validationUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAI7B,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,eAAe,GAAG,IAAI,CAOhE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAC,EAC5D,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAClB,CAAC,CAiBH;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAC3B,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,GACtB,CAAC,CAgBH;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAC1B,CAAC,CAuBH"}
@@ -1,38 +1,21 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateFrontMatter = exports.JoiFrontMatter = exports.normalizeThemeConfig = exports.normalizePluginOptions = exports.printWarning = exports.logValidationBugReportHint = exports.isValidationDisabledEscapeHatch = void 0;
4
- const tslib_1 = require("tslib");
5
2
  /**
6
3
  * Copyright (c) Facebook, Inc. and its affiliates.
7
4
  *
8
5
  * This source code is licensed under the MIT license found in the
9
6
  * LICENSE file in the root directory of this source tree.
10
7
  */
11
- const Joi_1 = tslib_1.__importDefault(require("./Joi"));
12
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.validateFrontMatter = exports.normalizeThemeConfig = exports.normalizePluginOptions = exports.printWarning = void 0;
10
+ const tslib_1 = require("tslib");
11
+ const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
13
12
  const validationSchemas_1 = require("./validationSchemas");
14
- // TODO temporary escape hatch for alpha-60: to be removed soon
15
- // Our validation schemas might be buggy at first
16
- // will permit users to bypass validation until we fix all validation errors
17
- // see for example: https://github.com/facebook/docusaurus/pull/3120
18
- // Undocumented on purpose, as we don't want users to keep using it over time
19
- // Maybe we'll make this escape hatch official some day, with a better api?
20
- exports.isValidationDisabledEscapeHatch = process.env.DISABLE_DOCUSAURUS_VALIDATION === 'true';
21
- if (exports.isValidationDisabledEscapeHatch) {
22
- console.error(chalk_1.default.red('You should avoid using DISABLE_DOCUSAURUS_VALIDATION escape hatch, this will be removed.'));
23
- }
24
- const logValidationBugReportHint = () => {
25
- console.log(`\n${chalk_1.default.red('A validation error occurred.')}${chalk_1.default.cyanBright('\nThe validation system was added recently to Docusaurus as an attempt to avoid user configuration errors.' +
26
- '\nWe may have made some mistakes.' +
27
- '\nIf you think your configuration is valid and should keep working, please open a bug report.')}\n`);
28
- };
29
- exports.logValidationBugReportHint = logValidationBugReportHint;
30
13
  function printWarning(warning) {
31
14
  if (warning) {
32
15
  const warningMessages = warning.details
33
16
  .map(({ message }) => message)
34
17
  .join('\n');
35
- console.log(chalk_1.default.yellow(warningMessages));
18
+ logger_1.default.warn(warningMessages);
36
19
  }
37
20
  }
38
21
  exports.printWarning = printWarning;
@@ -47,14 +30,7 @@ function normalizePluginOptions(schema, options) {
47
30
  });
48
31
  printWarning(warning);
49
32
  if (error) {
50
- exports.logValidationBugReportHint();
51
- if (exports.isValidationDisabledEscapeHatch) {
52
- console.error(error);
53
- return options;
54
- }
55
- else {
56
- throw error;
57
- }
33
+ throw error;
58
34
  }
59
35
  return value;
60
36
  }
@@ -69,35 +45,11 @@ function normalizeThemeConfig(schema, themeConfig) {
69
45
  });
70
46
  printWarning(warning);
71
47
  if (error) {
72
- exports.logValidationBugReportHint();
73
- if (exports.isValidationDisabledEscapeHatch) {
74
- console.error(error);
75
- return themeConfig;
76
- }
77
- else {
78
- throw error;
79
- }
48
+ throw error;
80
49
  }
81
50
  return value;
82
51
  }
83
52
  exports.normalizeThemeConfig = normalizeThemeConfig;
84
- // Enhance the default Joi.string() type so that it can convert number to strings
85
- // If user use frontmatter "tag: 2021", we shouldn't need to ask the user to write "tag: '2021'"
86
- // Also yaml tries to convert patterns like "2019-01-01" to dates automatically
87
- // see https://github.com/facebook/docusaurus/issues/4642
88
- // see https://github.com/sideway/joi/issues/1442#issuecomment-823997884
89
- const JoiFrontMatterString = {
90
- type: 'string',
91
- base: Joi_1.default.string(),
92
- // Fix Yaml that tries to auto-convert many things to string out of the box
93
- prepare: (value) => {
94
- if (typeof value === 'number' || value instanceof Date) {
95
- return { value: value.toString() };
96
- }
97
- return { value };
98
- },
99
- };
100
- exports.JoiFrontMatter = Joi_1.default.extend(JoiFrontMatterString);
101
53
  function validateFrontMatter(frontMatter, schema) {
102
54
  const { value, error, warning } = schema.validate(frontMatter, {
103
55
  convert: true,
@@ -109,13 +61,14 @@ function validateFrontMatter(frontMatter, schema) {
109
61
  const frontMatterString = JSON.stringify(frontMatter, null, 2);
110
62
  const errorDetails = error.details;
111
63
  const invalidFields = errorDetails.map(({ path }) => path).join(', ');
112
- const errorMessages = errorDetails
113
- .map(({ message }) => ` - ${message}`)
114
- .join('\n');
115
- exports.logValidationBugReportHint();
116
- console.error(chalk_1.default.red(`The following frontmatter:\n${chalk_1.default.yellow(frontMatterString)}\ncontains invalid values for field(s): ${invalidFields}.\n${errorMessages}\n`));
64
+ logger_1.default.error `The following front matter:
65
+ ${logger_1.default.yellow(frontMatterString)}
66
+ contains invalid values for field(s): ${logger_1.default.yellow(invalidFields)}.
67
+ ${errorDetails.map(({ message }) => message)}
68
+ `;
117
69
  throw error;
118
70
  }
119
71
  return value;
120
72
  }
121
73
  exports.validateFrontMatter = validateFrontMatter;
74
+ //# sourceMappingURL=validationUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validationUtils.js","sourceRoot":"","sources":["../src/validationUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,wEAAwC;AACxC,2DAAmD;AAEnD,SAAgB,YAAY,CAAC,OAA6B;IACxD,IAAI,OAAO,EAAE;QACX,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO;aACpC,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,OAAO,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,gBAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC9B;AACH,CAAC;AAPD,oCAOC;AAED,SAAgB,sBAAsB,CACpC,MAA2B,EAC3B,OAAmB;IAEnB,sEAAsE;IACtE,yCAAyC;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,EAAE,EAAE,kCAAc;KACnB,CAAC,CAAC;IACH,MAAM,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC5D,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtB,IAAI,KAAK,EAAE;QACT,MAAM,KAAK,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AApBD,wDAoBC;AAED,SAAgB,oBAAoB,CAClC,MAA2B,EAC3B,WAAuB;IAEvB,oEAAoE;IACpE,uDAAuD;IACvD,sEAAsE;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAErC,MAAM,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE;QAChE,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtB,IAAI,KAAK,EAAE;QACT,MAAM,KAAK,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAnBD,oDAmBC;AAED,SAAgB,mBAAmB,CACjC,WAAoC,EACpC,MAA2B;IAE3B,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;QAC3D,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IAEH,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtB,IAAI,KAAK,EAAE;QACT,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;QACnC,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpE,gBAAM,CAAC,KAAK,CAAA;EACd,gBAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;wCACM,gBAAM,CAAC,MAAM,CAAC,aAAa,CAAC;EAClE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,OAAO,CAAC;CACzC,CAAC;QACE,MAAM,KAAK,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AA1BD,kDA0BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/utils-validation",
3
- "version": "2.0.0-beta.15a2b59f9",
3
+ "version": "2.0.0-beta.17",
4
4
  "description": "Node validation utility functions for Docusaurus packages.",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -18,13 +18,13 @@
18
18
  },
19
19
  "license": "MIT",
20
20
  "dependencies": {
21
- "@docusaurus/utils": "2.0.0-beta.15a2b59f9",
22
- "chalk": "^4.1.1",
23
- "joi": "^17.4.0",
24
- "tslib": "^2.1.0"
21
+ "@docusaurus/logger": "2.0.0-beta.17",
22
+ "@docusaurus/utils": "2.0.0-beta.17",
23
+ "joi": "^17.6.0",
24
+ "tslib": "^2.3.1"
25
25
  },
26
26
  "engines": {
27
- "node": ">=12.13.0"
27
+ "node": ">=14"
28
28
  },
29
- "gitHead": "34881586224092fb9b5b2f455a46e19b3eee7f08"
29
+ "gitHead": "0032c0b0480083227af2e1b4da2d3ee6ce992403"
30
30
  }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import Joi from './Joi';
9
+
10
+ const JoiFrontMatterString: Joi.Extension = {
11
+ type: 'string',
12
+ base: Joi.string(),
13
+ // Fix Yaml that tries to auto-convert many things to string out of the box
14
+ prepare: (value) => {
15
+ if (typeof value === 'number' || value instanceof Date) {
16
+ return {value: value.toString()};
17
+ }
18
+ return {value};
19
+ },
20
+ };
21
+ /**
22
+ * Enhance the default Joi.string() type so that it can convert number to
23
+ * strings. If user use front matter "tag: 2021", we shouldn't need to ask her
24
+ * to write "tag: '2021'". Also yaml tries to convert patterns like "2019-01-01"
25
+ * to dates automatically.
26
+ * @see https://github.com/facebook/docusaurus/issues/4642
27
+ * @see https://github.com/sideway/joi/issues/1442#issuecomment-823997884
28
+ */
29
+ export const JoiFrontMatter: typeof Joi = Joi.extend(JoiFrontMatterString);
package/src/index.ts CHANGED
@@ -7,6 +7,21 @@
7
7
 
8
8
  // /!\ don't remove this export, as we recommend plugin authors to use it
9
9
  export {default as Joi} from './Joi';
10
+ export {JoiFrontMatter} from './JoiFrontMatter';
10
11
 
11
- export * from './validationUtils';
12
- export * from './validationSchemas';
12
+ export {
13
+ printWarning,
14
+ normalizePluginOptions,
15
+ normalizeThemeConfig,
16
+ validateFrontMatter,
17
+ } from './validationUtils';
18
+ export {
19
+ PluginIdSchema,
20
+ RemarkPluginsSchema,
21
+ RehypePluginsSchema,
22
+ AdmonitionsSchema,
23
+ URISchema,
24
+ PathnameSchema,
25
+ FrontMatterTagsSchema,
26
+ FrontMatterTOCHeadingLevels,
27
+ } from './validationSchemas';
@@ -4,13 +4,18 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+
7
8
  import Joi from './Joi';
8
- import {isValidPathname} from '@docusaurus/utils';
9
+ import {isValidPathname, DEFAULT_PLUGIN_ID} from '@docusaurus/utils';
10
+ import type {Tag} from '@docusaurus/utils';
11
+ import {JoiFrontMatter} from './JoiFrontMatter';
9
12
 
10
13
  export const PluginIdSchema = Joi.string()
11
- .regex(/^[a-zA-Z_-]+$/)
12
- // duplicate core constant, otherwise cyclic dependency is created :(
13
- .default('default');
14
+ .regex(/^[a-zA-Z0-9_-]+$/)
15
+ .message(
16
+ 'Illegal plugin ID value "{#value}": it should only contain alphanumerics, underscores, and dashes.',
17
+ )
18
+ .default(DEFAULT_PLUGIN_ID);
14
19
 
15
20
  const MarkdownPluginsSchema = Joi.array()
16
21
  .items(
@@ -29,29 +34,60 @@ export const AdmonitionsSchema = Joi.object().default({});
29
34
  // Joi is such a pain, good luck to annoying trying to improve this
30
35
  export const URISchema = Joi.alternatives(
31
36
  Joi.string().uri({allowRelative: true}),
32
- // This custom validation logic is required notably because Joi does not accept paths like /a/b/c ...
37
+ // This custom validation logic is required notably because Joi does not
38
+ // accept paths like /a/b/c ...
33
39
  Joi.custom((val, helpers) => {
34
40
  try {
35
- const url = new URL(val);
36
- if (url) {
37
- return val;
38
- } else {
39
- return helpers.error('any.invalid');
40
- }
41
+ // eslint-disable-next-line no-new
42
+ new URL(val);
43
+ return val;
41
44
  } catch {
42
45
  return helpers.error('any.invalid');
43
46
  }
44
47
  }),
45
- );
48
+ ).messages({
49
+ 'alternatives.match':
50
+ "{{#label}} does not look like a valid url (value='{{.value}}')",
51
+ });
46
52
 
47
53
  export const PathnameSchema = Joi.string()
48
54
  .custom((val) => {
49
55
  if (!isValidPathname(val)) {
50
56
  throw new Error();
51
- } else {
52
- return val;
53
57
  }
58
+ return val;
54
59
  })
55
60
  .message(
56
61
  '{{#label}} is not a valid pathname. Pathname should start with slash and not contain any domain or query string.',
57
62
  );
63
+
64
+ const FrontMatterTagSchema = JoiFrontMatter.alternatives()
65
+ .try(
66
+ JoiFrontMatter.string().required(),
67
+ JoiFrontMatter.object<Tag>({
68
+ label: JoiFrontMatter.string().required(),
69
+ permalink: JoiFrontMatter.string().required(),
70
+ }).required(),
71
+ )
72
+ .messages({
73
+ 'alternatives.match': '{{#label}} does not look like a valid tag',
74
+ 'alternatives.types': '{{#label}} does not look like a valid tag',
75
+ });
76
+
77
+ export const FrontMatterTagsSchema = JoiFrontMatter.array()
78
+ .items(FrontMatterTagSchema)
79
+ .messages({
80
+ 'array.base':
81
+ '{{#label}} does not look like a valid FrontMatter Yaml array.',
82
+ });
83
+
84
+ export const FrontMatterTOCHeadingLevels = {
85
+ toc_min_heading_level: JoiFrontMatter.number().when('toc_max_heading_level', {
86
+ is: JoiFrontMatter.exist(),
87
+ then: JoiFrontMatter.number()
88
+ .min(2)
89
+ .max(JoiFrontMatter.ref('toc_max_heading_level')),
90
+ otherwise: JoiFrontMatter.number().min(2).max(6),
91
+ }),
92
+ toc_max_heading_level: JoiFrontMatter.number().min(2).max(6),
93
+ };
@@ -4,43 +4,17 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import Joi from './Joi';
8
- import chalk from 'chalk';
9
- import {PluginIdSchema} from './validationSchemas';
10
-
11
- // TODO temporary escape hatch for alpha-60: to be removed soon
12
- // Our validation schemas might be buggy at first
13
- // will permit users to bypass validation until we fix all validation errors
14
- // see for example: https://github.com/facebook/docusaurus/pull/3120
15
- // Undocumented on purpose, as we don't want users to keep using it over time
16
- // Maybe we'll make this escape hatch official some day, with a better api?
17
- export const isValidationDisabledEscapeHatch =
18
- process.env.DISABLE_DOCUSAURUS_VALIDATION === 'true';
19
7
 
20
- if (isValidationDisabledEscapeHatch) {
21
- console.error(
22
- chalk.red(
23
- 'You should avoid using DISABLE_DOCUSAURUS_VALIDATION escape hatch, this will be removed.',
24
- ),
25
- );
26
- }
27
-
28
- export const logValidationBugReportHint = (): void => {
29
- console.log(
30
- `\n${chalk.red('A validation error occurred.')}${chalk.cyanBright(
31
- '\nThe validation system was added recently to Docusaurus as an attempt to avoid user configuration errors.' +
32
- '\nWe may have made some mistakes.' +
33
- '\nIf you think your configuration is valid and should keep working, please open a bug report.',
34
- )}\n`,
35
- );
36
- };
8
+ import type Joi from './Joi';
9
+ import logger from '@docusaurus/logger';
10
+ import {PluginIdSchema} from './validationSchemas';
37
11
 
38
12
  export function printWarning(warning?: Joi.ValidationError): void {
39
13
  if (warning) {
40
14
  const warningMessages = warning.details
41
15
  .map(({message}) => message)
42
16
  .join('\n');
43
- console.log(chalk.yellow(warningMessages));
17
+ logger.warn(warningMessages);
44
18
  }
45
19
  }
46
20
 
@@ -60,13 +34,7 @@ export function normalizePluginOptions<T extends {id?: string}>(
60
34
  printWarning(warning);
61
35
 
62
36
  if (error) {
63
- logValidationBugReportHint();
64
- if (isValidationDisabledEscapeHatch) {
65
- console.error(error);
66
- return options as T;
67
- } else {
68
- throw error;
69
- }
37
+ throw error;
70
38
  }
71
39
 
72
40
  return value;
@@ -88,35 +56,11 @@ export function normalizeThemeConfig<T>(
88
56
  printWarning(warning);
89
57
 
90
58
  if (error) {
91
- logValidationBugReportHint();
92
- if (isValidationDisabledEscapeHatch) {
93
- console.error(error);
94
- return themeConfig as T;
95
- } else {
96
- throw error;
97
- }
59
+ throw error;
98
60
  }
99
61
  return value;
100
62
  }
101
63
 
102
- // Enhance the default Joi.string() type so that it can convert number to strings
103
- // If user use frontmatter "tag: 2021", we shouldn't need to ask the user to write "tag: '2021'"
104
- // Also yaml tries to convert patterns like "2019-01-01" to dates automatically
105
- // see https://github.com/facebook/docusaurus/issues/4642
106
- // see https://github.com/sideway/joi/issues/1442#issuecomment-823997884
107
- const JoiFrontMatterString: Joi.Extension = {
108
- type: 'string',
109
- base: Joi.string(),
110
- // Fix Yaml that tries to auto-convert many things to string out of the box
111
- prepare: (value) => {
112
- if (typeof value === 'number' || value instanceof Date) {
113
- return {value: value.toString()};
114
- }
115
- return {value};
116
- },
117
- };
118
- export const JoiFrontMatter: typeof Joi = Joi.extend(JoiFrontMatterString);
119
-
120
64
  export function validateFrontMatter<T>(
121
65
  frontMatter: Record<string, unknown>,
122
66
  schema: Joi.ObjectSchema<T>,
@@ -133,19 +77,12 @@ export function validateFrontMatter<T>(
133
77
  const frontMatterString = JSON.stringify(frontMatter, null, 2);
134
78
  const errorDetails = error.details;
135
79
  const invalidFields = errorDetails.map(({path}) => path).join(', ');
136
- const errorMessages = errorDetails
137
- .map(({message}) => ` - ${message}`)
138
- .join('\n');
139
-
140
- logValidationBugReportHint();
141
80
 
142
- console.error(
143
- chalk.red(
144
- `The following frontmatter:\n${chalk.yellow(
145
- frontMatterString,
146
- )}\ncontains invalid values for field(s): ${invalidFields}.\n${errorMessages}\n`,
147
- ),
148
- );
81
+ logger.error`The following front matter:
82
+ ${logger.yellow(frontMatterString)}
83
+ contains invalid values for field(s): ${logger.yellow(invalidFields)}.
84
+ ${errorDetails.map(({message}) => message)}
85
+ `;
149
86
  throw error;
150
87
  }
151
88
 
package/lib/.tsbuildinfo DELETED
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/joi/lib/index.d.ts","../src/Joi.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/webpack/node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/ajv/lib/ajv.d.ts","../../../node_modules/schema-utils/declarations/ValidationError.d.ts","../../../node_modules/schema-utils/declarations/validate.d.ts","../../../node_modules/schema-utils/declarations/index.d.ts","../../../node_modules/tapable/tapable.d.ts","../../../node_modules/webpack/types.d.ts","../../docusaurus-types/node_modules/commander/typings/index.d.ts","../../docusaurus-types/src/index.d.ts","../../docusaurus-utils/lib/posixPath.d.ts","../../docusaurus-utils/lib/codeTranslationsUtils.d.ts","../../docusaurus-utils/lib/markdownParser.d.ts","../../docusaurus-utils/lib/markdownLinks.d.ts","../../docusaurus-utils/lib/escapePath.d.ts","../../docusaurus-utils/lib/hashUtils.d.ts","../../docusaurus-utils/lib/index.d.ts","../src/validationSchemas.ts","../src/validationUtils.ts","../src/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/ts3.6/base.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/base.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/source-map/source-map.d.ts","../../../node_modules/@types/clean-css/index.d.ts","../../../node_modules/@types/color-name/index.d.ts","../../../node_modules/@types/color-convert/conversions.d.ts","../../../node_modules/@types/color-convert/route.d.ts","../../../node_modules/@types/color-convert/index.d.ts","../../../node_modules/@types/color/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/connect-history-api-fallback/index.d.ts","../../../node_modules/@types/cssnano/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/@types/cssnano/index.d.ts","../../../node_modules/@types/decompress/index.d.ts","../../../node_modules/@types/dedent/index.d.ts","../../../node_modules/@types/detect-port/index.d.ts","../../../node_modules/@types/got/index.d.ts","../../../node_modules/@types/download/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/eslint/lib/rules/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/eslint-scope/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/fs-extra/index.d.ts","../../../node_modules/@types/github-slugger/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/history/DOMUtils.d.ts","../../../node_modules/@types/history/createBrowserHistory.d.ts","../../../node_modules/@types/history/createHashHistory.d.ts","../../../node_modules/@types/history/createMemoryHistory.d.ts","../../../node_modules/@types/history/LocationUtils.d.ts","../../../node_modules/@types/history/PathUtils.d.ts","../../../node_modules/@types/history/index.d.ts","../../../node_modules/@types/uglify-js/index.d.ts","../../../node_modules/@types/relateurl/index.d.ts","../../../node_modules/@types/html-minifier/index.d.ts","../../../node_modules/@types/html-minifier-terser/index.d.ts","../../../node_modules/@types/html-webpack-plugin/index.d.ts","../../../node_modules/@types/http-proxy/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../../node_modules/jest-diff/build/types.d.ts","../../../node_modules/jest-diff/build/diffLines.d.ts","../../../node_modules/jest-diff/build/printDiffs.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/pretty-format/build/types.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/js-yaml/index.d.ts","../../../node_modules/ast-types/types.d.ts","../../../node_modules/ast-types/gen/kinds.d.ts","../../../node_modules/ast-types/gen/nodes.d.ts","../../../node_modules/ast-types/lib/types.d.ts","../../../node_modules/ast-types/lib/path.d.ts","../../../node_modules/ast-types/lib/scope.d.ts","../../../node_modules/ast-types/lib/node-path.d.ts","../../../node_modules/ast-types/lib/path-visitor.d.ts","../../../node_modules/ast-types/fork.d.ts","../../../node_modules/ast-types/gen/namedTypes.d.ts","../../../node_modules/ast-types/gen/builders.d.ts","../../../node_modules/ast-types/gen/visitor.d.ts","../../../node_modules/ast-types/main.d.ts","../../../node_modules/recast/lib/types.d.ts","../../../node_modules/recast/lib/options.d.ts","../../../node_modules/recast/lib/parser.d.ts","../../../node_modules/recast/lib/printer.d.ts","../../../node_modules/recast/main.d.ts","../../../node_modules/@types/jscodeshift/src/collections/JSXElement.d.ts","../../../node_modules/@types/jscodeshift/src/collections/Node.d.ts","../../../node_modules/@types/jscodeshift/src/collections/VariableDeclarator.d.ts","../../../node_modules/@types/jscodeshift/src/Collection.d.ts","../../../node_modules/@types/jscodeshift/src/template.d.ts","../../../node_modules/@types/jscodeshift/src/core.d.ts","../../../node_modules/@types/jscodeshift/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/katex/contrib/auto-render.d.ts","../../../node_modules/@types/katex/contrib/katex2tex.d.ts","../../../node_modules/@types/katex/contrib/index.d.ts","../../../node_modules/@types/katex/index.d.ts","../../../node_modules/@types/loader-utils/index.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mkdirp/index.d.ts","../../../node_modules/form-data/index.d.ts","../../../node_modules/@types/node-fetch/externals.d.ts","../../../node_modules/@types/node-fetch/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/nprogress/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/parse5/index.d.ts","../../../node_modules/@types/picomatch/lib/constants.d.ts","../../../node_modules/@types/picomatch/lib/parse.d.ts","../../../node_modules/@types/picomatch/lib/scan.d.ts","../../../node_modules/@types/picomatch/lib/picomatch.d.ts","../../../node_modules/@types/picomatch/index.d.ts","../../../node_modules/@types/prettier/index.d.ts","../../../node_modules/@types/prismjs/index.d.ts","../../../node_modules/@types/prompts/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/q/index.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/scheduler/tracing.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react-dev-utils/index.d.ts","../../../node_modules/@types/react-helmet/index.d.ts","../../../node_modules/@types/react-loadable/index.d.ts","../../../node_modules/@types/react-router/index.d.ts","../../../node_modules/@types/react-router-config/index.d.ts","../../../node_modules/@types/react-router-dom/index.d.ts","../../../node_modules/@types/resolve/index.d.ts","../../../node_modules/@types/sax/index.d.ts","../../../node_modules/@types/scheduler/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/shelljs/index.d.ts","../../../node_modules/@types/source-list-map/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/tapable/index.d.ts","../../../node_modules/@types/wait-on/index.d.ts","../../../node_modules/@types/webpack/node_modules/anymatch/index.d.ts","../../../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts","../../../node_modules/@types/webpack-sources/lib/Source.d.ts","../../../node_modules/@types/webpack-sources/lib/CompatSource.d.ts","../../../node_modules/@types/webpack-sources/lib/ConcatSource.d.ts","../../../node_modules/@types/webpack-sources/lib/OriginalSource.d.ts","../../../node_modules/@types/webpack-sources/lib/PrefixSource.d.ts","../../../node_modules/@types/webpack-sources/lib/RawSource.d.ts","../../../node_modules/@types/webpack-sources/lib/ReplaceSource.d.ts","../../../node_modules/@types/webpack-sources/lib/SizeOnlySource.d.ts","../../../node_modules/@types/webpack-sources/lib/SourceMapSource.d.ts","../../../node_modules/@types/webpack-sources/lib/index.d.ts","../../../node_modules/@types/webpack-sources/lib/CachedSource.d.ts","../../../node_modules/@types/webpack-sources/index.d.ts","../../../node_modules/@types/webpack/index.d.ts","../../../node_modules/http-proxy-middleware/dist/types.d.ts","../../../node_modules/http-proxy-middleware/dist/handlers/response-interceptor.d.ts","../../../node_modules/http-proxy-middleware/dist/handlers/fix-request-body.d.ts","../../../node_modules/http-proxy-middleware/dist/handlers/public.d.ts","../../../node_modules/http-proxy-middleware/dist/handlers/index.d.ts","../../../node_modules/http-proxy-middleware/dist/index.d.ts","../../../node_modules/@types/webpack-dev-server/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"ac3a8c4040e183ce38da69d23b96939112457d1936198e6542672b7963cf0fce","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"1dad4fe1561d99dfd6709127608b99a76e5c2643626c800434f99c48038567ee","affectsGlobalScope":true},{"version":"cce43d02223f8049864f8568bed322c39424013275cd3bcc3f51492d8b546cb3","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"8dff1b4c2df638fcd976cbb0e636f23ab5968e836cd45084cc31d47d1ab19c49","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"8f4c9f651c8294a2eb1cbd12581fe25bfb901ab1d474bb93cd38c7e2f4be7a30","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"60761e6ea886034af0f294f025a7199360ce4e2c8ba4ec6408bc049cf9b89799","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},"ea7abf23498b7c214c67fc14f22f41983fbb7bf7c4826c7fcdef542b2022545f","332bc92a89da24ef3a645208f2b3159292460a52fbe63c40eef64c2a63bb1e40","ad88e00caeb0b4cfaac7811845d446eaeb5a4f75f3eae1c476a755ff94b726b9","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","f1e8ecd1d960d12e57316fd2889b0a57635f38f8c4c976d8deafa29650bbf320","3a1e165b22a1cb8df82c44c9a09502fd2b33f160cd277de2cd3a055d8e5c6b27","67f129ed8b372622ff36b8b10e39d03e09e363a5ff7821105f92f085b8d1ccba","327f42ab31ff4539ba868d0374f8825af328b104b5f78d26b2e3ce9cc17b43a0","62a05210201c793349ec28254f06a01814c5b4f5591f6d1921941286db78ea2a","8f877178233f74095130e129ce86128a6a15afcfc6171d714e154863b6a65fe8","b395ec0779c66de885f97974534e95ee2c8bbf9acaf5857a6782ddc32972b6d8","572b4d4c4e2cd3026db925ca5cb721f5c3f4f52938da404de1148a126348f29b","c72b982add26c5ddf410899bcafe3f47253a5d274d4b93d2ef67850d4af4545b","aefb89303293b92387354bd8464557e02efa728bfd0d7f9316579092e9e47856","0daf3165e72cc1ed5263a3374b98cb065f78922c76602477973ee0654b99df17","98249526332851a623664fd515a293f50d680d4a86d633585ecb9168e67cd872","3fedee34f24b13af4a97c4184a9e215a6f6b2dfb655dafc24970c76791b06c43","4fae0cbdbb492b0fc847ec76d0a4af44eb04028200cec088d97fca05438213f1","c7642b1c7345e546c81831fe5fa9233e15a12fa2743f6685b0d700af8292cdd0","857d6d4a53c4372a2799e733ab122d28f7b2b580fe58b80a5fe1321a733c20f7","2c20d6df034f99432a23cfd95b2e48784fe4224cc9c0bc4094881c99bce1ef66","b5cebf96da501d0ff5d86bcf2623164d6a410991209c8960632d222845619833","755d5867281b661fe63712cb917d54bfcc09e70ce1ecb70ad2b539f9ea57aaef","98ac80e52cb434779eadc830b221098068f680acd9d863ad497ba249bd751cba","a17ba25a194979a88bfd925e849d76b63f68c4160b69a99c5d723eac5ffddaf0","b25c5f2970d06c729f464c0aeaa64b1a5b5f1355aa93554bb5f9c199b8624b1e","3e6297bcddf37e373d40ddb4c2b9e6fc98901b2a44c01b2d96af142874973c43","3051751533eee92572241b3cef28333212401408c4e7aa21718714b793c0f4ed","691aea9772797ca98334eb743e7686e29325b02c6931391bcee4cc7bf27a9f3b","6f1d39d26959517da3bd105c552eded4c34702705c64d75b03f54d864b6e41c2",{"version":"25b4a0c4fab47c373ee49df4c239826ee3430019fc0c1b5e59edc3e398b7468d","affectsGlobalScope":true},"e23424b97418eca3226fd24de079f1203eb70360622e4e093af2aff14d4be6ec","a473cf45c3d9809518f8af913312139d9f4db6887dc554e0d06d0f4e52722e6b","a668dfae917097b30fc29bbebeeb869cee22529f2aa9976cea03c7e834a1b841","04eaa93bd75f937f9184dcb95a7983800c5770cf8ddd8ac0f3734dc02f5b20ef",{"version":"7ddd5487c03df04c01a8618e06d875e167524902ed3dd9a2a9345a0ef5202d6f","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","aab38abd210255237d4dc101c9e5b5f8d746fd75aeb30cc77b6a4d322b06693d","797a9d37eb1f76143311c3f0a186ce5c0d8735e94c0ca08ff8712a876c9b4f9e","bc31e01146eec89eb870b9ad8c55d759bcbc8989a894e6f0f81f832e0d10eb04",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"153d835dc32985120790e10102834b0a5bd979bb5e42bfbb33c0ff6260cf03ce","affectsGlobalScope":true},"a44c87a409b60f211a240341905d818f5f173420dcf7f989ee6c8a1a3d812ae9","bdaf554ae2d9d09e2a42f58a29ef7f80e5b5c1d7b96bfb717243dc91a477216e","ea194ae7fee69ab77ee0ff7b7f35227eb09515583f6c08988a59fa65661af990","321ea733ae7f611077a2d7b4bc378ac4a6b7e365e1a51c71a7e5b2818e1e310a","13257840c0850d4ebd7c2b17604a9e006f752de76c2400ebc752bc465c330452","42176966283d3835c34278b9b5c0f470d484c0c0c6a55c20a2c916a1ce69b6e8","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","ae7b9d7ab1652cc1866ba6e269d0eeaf1708d07327714124ed2cbd059f5e4766","69640cc2e76dad52daeb9914e6b70c5c9a5591a3a65190a2d3ea432cf0015e16","21e64a125f65dff99cc3ed366c96e922b90daed343eb52ecdace5f220401dcda","f25b17702bd5d9e1a21e223863d09774197e0832a0534ba12bd7558bcc8548f4",{"version":"b0b00cf2e8107ab671243a73d2fbd6296a853bebe3fcfaaca293f65aaa245eaf","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","992c6f6be16c0a1d2eec13ece33adeea2c747ba27fcd078353a8f4bb5b4fea58","3b790d08129aca55fd5ae1672d1d26594147ac0d5f2eedc30c7575eb18daef7e","a6b0abdb67d63ebe964ba5fee31bc3daf10c12eecd46b24d778426010c04c67e","e7b5a3f40f19d9eea71890c70dfb37ac5dd82cbffe5f95bc8f23c536455732d0","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","0953427f9c2498f71dd912fdd8a81b19cf6925de3e1ad67ab9a77b9a0f79bf0b","f89a6d56f0267f6e73c707f8a89d2f38e9928e10bfa505f39a4f4bf954093aee","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","dcc6910d95a3625fd2b0487fda055988e46ab46c357a1b3618c27b4a8dd739c9","e649840284bab8c4d09cadc125cd7fbde7529690cc1a0881872b6a9cd202819b","a364b4a8a015ae377052fa4fac94204d79a69d879567f444c7ceff1b7a18482d","60c9e27816ec8ac8df7240598bb086e95b47edfb454c5cbf4003c812e0ed6e39","6c63cb179eda2be5ab45dc146fa4151bec8ce4781986935fe40adfc69cbbf214","4926467de88a92a4fc9971d8c6f21b91eca1c0e7fc2a46cc4638ab9440c73875",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"4e0a4d84b15692ea8669fe4f3d05a4f204567906b1347da7a58b75f45bae48d3","ae68a04912ee5a0f589276f9ec60b095f8c40d48128a4575b3fdd7d93806931c","b3593bd345ebea5e4d0a894c03251a3774b34df3d6db57075c18e089a599ba76","e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b","49daf80661034e07d919f1c716aef69324e34d18a63a282f8100f52c961b58a7","81c14b89fa607b86dd726e2e3e91360cf8155ce97468404324d404a5bd65b2eb","ebddbd167c2fabd0151f50e5df94ca6d845149c47521280d8867afe3429dd078","2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","c0c0ce59aaee107786eca330b64eb2413bd9d14848f35282f6e61e6972b6f52e","f0cb4b3ab88193e3e51e9e2622e4c375955003f1f81239d72c5b7a95415dad3e","92450d617e92f96354d281c8ed5613fd16cacea79eb60b1e9736494b3c057e69","8a9086357fe289efb682dc925358f30b6312c7219a5ca92212857a0a79612012","92bc42ed0e2d41559513fd457ee30d834c2f0fedb9ed5004c029cbf0ad2f8bd9","ac502bda446da2b897b8fb9373199f08e111a82c19ea0f9a1debf49ed34b6970","4e88b833be14c7f384e0dcd57bb30acd799e8e34d212635d693e41a75a71164b","98437d5a640b67c41534f0de2dcb64c75433dcdff54ff8f8432e613663619a2e",{"version":"9ea2638b6eee61ff2c59c3ac74c1b5999a843da0e2bb60e8bf028b19aacf6246","affectsGlobalScope":true},"a9ef188a807dfa67e80eb100aeac1036f61d01f64d8b51ce68e78ee40cdef415","aec0cabbdfacf43db998d8e50ee6f1e72131d24b5018dfb84f14806717baa0a6","ef36fa133bed82cf3d1262c0894a643532bca4a743bea90b537f643003880315","fb32fb9b2a2c9cfccae34a6383834030ea9ebab2e46964ab6e876fe2b9ca2f42","70646d9cb37b62611766d18a9bcca6cbf28ca9aec33a66244e974056ab1193f6","032d6a55e0d1b473bf06cc9f30cfa6313bc57202bc5aacf8077022c4a27ff7d6","ff27d48b9c7f85c9d38cb13fce5886bad9a30846aedb5f54759eee58391a79e1","912989089693cac2ce78c83289b98d5d9be6d399009c5d2e06ad3edf50e7b335",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"0133ebdd17a823ae56861948870cde4dac18dd8818ab641039c85bbb720429e0","9f3554130bc117f19a9d4186bd83a97145c71818c1b1c51424967e0f607324d5","e3dd9a5ce3e396a63d378146a2bce9f52ea86419ef787cd55d2e8bb2a4cd716f","274bda283ef15f4205603ca9967313fc013aa77ae89f2cbeab5fbd51439e96ed","84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","3b02517f9be71f255eadab9892406055d069167891f1e1ea16c96c4ff1ddda01","3b05c396564e51753e921e1cc4aae1cf7cd9be53c891cf2e81fa29f11c0bd373","8d01c38ccb9af3a4035a68818799e5ef32ccc8cf70bdb83e181e1921d7ad32f6","78a1efd7214a25b84e08af80fe2b027c3049e52b26dfcaf777b82c759d8548c9","95c22bc19835e28e2e524a4bb8898eb5f2107b640d7279a6d3aade261916bbf2","393137c76bd922ba70a2f8bf1ade4f59a16171a02fb25918c168d48875b0cfb0","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","1320ee42b30487cceb6da9f230354fc34826111f76bf12f0ad76c717c12625b0","b6e83cdeca61289e5ffd770e55ed035babdffadd87d1ffa42b03e9fe8411333f",{"version":"271cde49dfd9b398ccc91bb3aaa43854cf76f4d14e10fed91cbac649aa6cbc63","affectsGlobalScope":true},"c6f2572e21f626260d2e4a65e4e1e42b9b273b6f43b5c3bc115c2926417d3eca","374ab77e05e0bf5a52acad6d65121d4bd31068108f23d70186dba5fcd7d6a1a3","a4ecd4bb653aa71093375845fba6250ca0f3c633d0e933fc9bf4b301834eab27","25d91fb9ed77a828cc6c7a863236fb712dafcd52f816eec481bd0c1f589f4404","4cd14cea22eed1bfb0dc76183e56989f897ac5b14c0e2a819e5162eafdcfe243","cc53cba64efb30576f2a36f1d7107e4453e84cbd0f371d49cd1dfd208e11233b","bee79f5862fe1278d2ba275298862bce3f7abf1e59d9c669c4b9a4b2bba96956","a523644fe1d30f36465118be107642c78c36afe0d885f93eae399b3c44dc8fe9","e966621f305cecf5ed6460197ff1652208257b5ca7da402a4285cc57589f6f36","6767cce098e1e6369c26258b7a1f9e569c5467d501a47a090136d5ea6e80ae6d","dd96ff6ecc47584219c6301f1653eec514c2cb83fc8ad195ccb54c9759765e3a","8d068614f2f0c00d6b712f16f52511c054d3cf205d749ede8d9f231c0ddac03f","de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9","62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"bbc19287f48d4b3c753bd2c82dd9326af19cccbfa1506f859029dfcedc7c5522","affectsGlobalScope":true},"73a371996ab8b5f895fc4aff8018ad79804254ae32648c9ac11e87f2fce5658a","cc2dc362fc50995684e9f7e9b38ad9bdf19e74919294a694cbc05392352cad7d","e07b482ad35f73ea26312cb5bfbc735cfd2c68808e70634d32a43f8b53033a11","494d475b36a458bbfdcf60f54abaf2084a3840ff38fe5dcf8e3e8d405edc7938","55194e5c1f7fdd2a209da42b0b481c556bae31b20675fa7e7fbd7f49a6c40d57","8cd7362102d928e21b291a013f80fc68a038d4506d26ea9948c676e3fa1110d9","90f6830fb380f4d2b69df018343ae80ce92991e85a0d7be8d214c643b39d1175","1bfe6db4f3dffacd1da82748cb8f0acec04e8a4d7bd36c09573d5d80a7dec28b","009e40fab9efa56ae3f540ff7a18cbeae6b4140647a040681c524bf19f52995e","0e7fbd72cba67a53642362282ec001d495fbb7ad575f47ba5ffa19006f124d60","24cf966363ab1b0200b7a720f9ae1f2efb5e2f9bd4a3c1f13482cd0456745f90","35acd8ffbb879ea4447df8fc7b422ed8af7dceec6036562eb2825eeea89222b1","262810de652d20b24b0e9872e33941972735c8c0a2bd794c361038f823dd7ecb","7bfe977bcf0f5fab4d0b2820af80cebf4765b77658cc238903f82873ea813e12","8648c31510a3a81275736733ec1a4562a012e4e1a0f5fea9d47a8ed30dc4280c","aad8c703de79100c97d6d6d753e6c3e5c355d8024f7c80e0275b3973208b9dd3","e3a5287471fb08f053c06fd998632792aa5f022e45278f1e6dd55fb2fa9e7362","28a6c8eeb48e165920067b9193555649fc43c2a28c450f23f622e5eb043d9463","b114b49f7cc89ed20375ec8f070ceed9748d022d9a6f94894f247c5e8182ccc7","187b38d2397b9ab2a459042295b6ae463d369ae1786f23abf6f58d925905ee09","68a982b9899e9df6bc37b62a57fdeac0b197d9f252a2386589a28ffc0e316503","63326d4f23f82d250abe61157183fd0d0612f00540d27681ef6458e60850c315","19f9e754bda221cc851c07454f43ae28d0faeb48fb17ef48802f022297603ed6","f5173cf4e2ae28cacdd974951e64e7e7476cecec52be1b218d309cc10b580436","0b7f81e8fa0bb70a104fd1ac689d56807b929006bf49557189ab06d756973f38","8faaa860d85e112c2898437d958f8f07cb847e53db3018c719ef4d0c2227f77b","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","a93bbe06d20763f821db7b671ba9efbf4b602fb4cd612ae9d40f01a30f62966c","1ced83d3606cfe4a0d2d98c24873b4147ac4c1b9beacb1d1dd0d8bacd3a00220","42c7f325d2075cf80f65ef6225692605b6516602209175d29281c7a53838d28f","451a3f75d74f7b130a0e28dc77f21b7d79b99381ebae3f0d849905c5ab33872e","fbd29ea9dd64c69ded0284cb1307557e8f7bf6265ce2bf1faa3840ffed2d38ac","3594c022901a1c8993b0f78a3f534cfb81e7b619ed215348f7f6882f3db02abc","438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2","0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","782abf371043fc65a987f835a3acfd80602a30c3e2122f6d5756a86bf6913352","509235563ea2b939e1bbe92aae17e71e6a82ceab8f568b45fb4fce7d72523a32","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","4908e4c00832b26ce77a629de8501b0e23a903c094f9e79a7fec313a15da796a","2630a7cbb597e85d713b7ef47f2946d4280d3d4c02733282770741d40672b1a5",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"9a6d65d77455efaaaeff945bea30c38b8fe0922b807ba45cd23792392f1bfe76","e437d83044ba17246a861aa9691aa14223ff4a9d6f338ab1269c41c758586a88","6396a7a06f3ef0fc31a7c89330e015146b78a2256b030c698b6d404594c37b8f","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","8fe9135b86994075c4192f3358a4350389e80d3abec712db2a82061962d9d21c","e0014889f31fee76a572b6b15e74b2174cbcf6346ae8ab5c69eb553a10e5c944","c9ad058b2cc9ce6dc2ed92960d6d009e8c04bef46d3f5312283debca6869f613","3c17de487f67fd2ce7a70090b19e791b0388ed9cb60cdbdc7a49277094ffc413","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","c555dd691dd05955e99cd93dd99c685a65e5287813ccb5e6bfde951183248e26","c0ad01cd660e5b8478c46ba9eda9bb60057de0744b3436fab3ce1ab764109da9","a811919884d27b7f56502cb3f89e8d5ba42a70af7d421f1a989a0b85825a93b2","a9ce2f5469b4648ad305fed3a23eabd09c6887fbbb9028c983851cbe8693bdf0","6faeb7075e31bb027045bf3c6c1ee73c34b2d4094e0f80e209f62d89ef3847ba","2c62313d703a4e95d56aae612fba35dc0eca38e399ed9729ee27facf64e9b993","08b428a44bc98005536a12456518797e9afe2a08e8b5d9785641713a54475881","831b44f91491d73ba21effa69d48698b09933db1c7f92a33c048852a76a79068","db6347c1934b46b5bab02cc6a4c3323d604a5cd4a72f92d5c7cfc24ea8dcd4ec","a7e32dcb90bf0c1b7a1e4ac89b0f7747cbcba25e7beddc1ebf17be1e161842ad","f9a2dd6a6084665f093ed0e9664b8e673be2a45e342a59dd4e0e4e552e68a9ad",{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"4ee363f83d7be2202f34fcd84c44da71bf3a9329fee8a05f976f75083a52ea94","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"ca1f4045ec1a501a114d63e2f3f24e2dba00c0cb9030b3109f579d54c1e95d63","affectsGlobalScope":true},"b5478b9a935cf14fe43a00f80dee3805b5f5f6d33be9d96fae7babea0e0dad76","370aa0007632db53c67e21c1584fb998c8af918ca1d38688b044b4ce3d0524c0",{"version":"8299ae8e2b6f219b89e33f5383e85b71b160550678a9c7aaf3729b95c59e57a6","affectsGlobalScope":true},"c78b1c30f9ea6f57c2c4beb62734bf0df604a537690d7a098e6ca99157f4c2a3","d4eeffab023f619ebaeeca01570c026eed02256061973bef5546a6c779552818","b89701b714364b5bcb0b58e83725aa02a4f41df8357000b4e8fe60566bf805ac","8a19491eba2108d5c333c249699f40aff05ad312c04a17504573b27d91f0aede","c17785a46d81d27213ae62b86d6dc0e87e230106e9a57dbfb815d3bea978a6a5","3169db033165677f1d414baf0c82ba27801089ca1b66d97af464512a47df31b5","d9e55d93aa33fad61bd5c63800972d00ba8879ec5d29f6f3bce67d16d86abc33","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","c544d81603149987796b24cca297c965db427b84b2580fb27e52fb37ddc1f470","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","9eb2875a1e4c583066af7d6194ea8162191b2756e5d87ccb3c562fdf74d06869","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","6eef5113135a0f2bbac8259909a5bbb7666bcde022c28f4ab95145623cbe1f72","058b8dd97b7c67b6bf33e7bda7b1e247b019b675d4b6449d14ac002091a8b4f8","89c8a7b88c378663a8124664f2d9b8c2887e186b55aa066edf6d67177ca1aa04","5a30ba65ad753eb2ef65355dbb3011b28b192cb9df2ef0b5f595b51ca7faf353","5192f9a6469f849e0863616b668fde54bcd6704394b4bfbd115691865f66d761","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","0123340327efb174818f4b78bf6a9b12f8470754e6afac9e4d32a2ad27521f7b","9795e0a3a45d5b6f1a791ee54b7c8b58bc931e8900966cea2dff9c5bae56073b","5890be29879d02424b7654f40592915189034948f7a18c5ad121c006d4e92811","0ab49086f10c75a1cb3b18bffe799dae021774146d8a2d5a4bb42dda67b64f9b","81c77839e152b8f715ec67b0a8b910bcc2d6cf916794c3519f8798c40efd12ac","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","464843c00fb3dd4735b28255c5c9fe713f16b8e47a3db09ba1647687440f7aef","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","03d2e70c34640b553ed580286eb234835695ea1e473d837a4ced672648d453cd","b73abc91e3166b1951d302f8008c17e62d32e570e71b2680141f7c3f5d0a990d","67fc055eb86a0632e2e072838f889ffe1754083cb13c8c80a06a7d895d877aae","c6c4fea9acc55d5e38ff2b70d57ab0b5cdbd08f8bc5d7a226e322cea128c5b57","d558a0fe921ebcc88d3212c2c42108abf9f0d694d67ebdeba37d7728c044f579","356c3df1d255b9fe81d7c3d822d60a2a66c99b1cf853b04a69810a31a449b735","4fb0b7d532aa6fb850b6cd2f1ee4f00802d877b5c66a51903bc1fb0624126349","b90c59ac4682368a01c83881b814738eb151de8a58f52eb7edadea2bcffb11b9","8560a87b2e9f8e2c3808c8f6172c9b7eb6c9b08cb9f937db71c285ecf292c81d","ffe3931ff864f28d80ae2f33bd11123ad3d7bad9896b910a1e61504cc093e1f5","083c1bd82f8dc3a1ed6fc9e8eaddf141f7c05df418eca386598821e045253af9","274ebe605bd7f71ce161f9f5328febc7d547a2929f803f04b44ec4a7d8729517","6ca0207e70d985a24396583f55836b10dc181063ab6069733561bfde404d1bad","5908142efeaab38ffdf43927ee0af681ae77e0d7672b956dfb8b6c705dbfe106","f772b188b943549b5c5eb803133314b8aa7689eced80eed0b70e2f30ca07ab9c","0026b816ef05cfbf290e8585820eef0f13250438669107dfc44482bac007b14f","8ef5aad624890acfe0fa48230edce255f00934016d16acb8de0edac0ea5b21bb","9af6248ff4baf0c1ddc62bb0bc43197437bd5fb2c95ff8e10e4cf2e699ea45c1","d84398556ba4595ee6be554671da142cfe964cbdebb2f0c517a10f76f2b016c0","89b42f8ee5d387a39db85ee2c7123a391c3ede266a2bcd502c85ad55626c3b2b","99c7f3bbc03f6eb3e663c26c104d639617620c2925e76fc284f7bedf1877fa2b","59115d08fbd0d93bbb2af3fe5b914194fea2906945f2ee08e264b96c7e8601fe","f90d85d4cb38445499bdb7e7b013e4f64d99d157a6fa0843e998495ceb27b520","94ae892ab0c0b2800dbd817ffd0a5bd6cfb60a0cc4ce6860a9f965712cc3eb5d","901becb8779e1089442378fda5623e607ee4588762a32e7692436f1ea81cf848","8286d84d2567b713fd6a1fdfbb1a0abc8cfa668ee1e0e83d7dd4ade5761f2750","f28dffc6bf9bbd8b9dc156aadb74d11de7faabf547eb9f0aebb8cd03e8750a6c","b2bcfd1c457bf7845a5e5f81d1b34785de14f07dc97a27571d7f54c8f4873b65","3bdd93ec24853e61bfa4c63ebaa425ff3e474156e87a47d90122e1d8cc717c1f","5a2a25feca554a8f289ed62114771b8c63d89f2b58325e2f8b7043e4e0160d11"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":false,"esModuleInterop":true,"importHelpers":true,"jsx":2,"module":1,"noEmitHelpers":true,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":6,"tsBuildInfoFile":"./.tsbuildinfo"},"fileIdsList":[[69],[69,70,71,72,73],[69,71],[89,120,121],[89,91,120,123],[125],[126,127],[126],[128],[109,120,132],[89,120],[134],[123],[120],[120,136,139],[143,144],[50,141,142,143],[144],[86,89,120,130,131],[122,131,132,147],[87,120],[86,120,151],[89,91,103,109,120],[154],[162],[156,162],[157,158,159,160,161],[124,163,164],[55,56,165],[86,89,91,94,103,109,120],[169],[170],[176,178],[204],[198,199,200,201],[183,198,202],[183,198,199,201,202,203],[198],[210],[207,208],[209],[56,120],[212,214,215,216,217,218,219,220,221,222,223,224],[212,213,215,216,217,218,219,220,221,222,223,224],[213,214,215,216,217,218,219,220,221,222,223,224],[212,213,214,216,217,218,219,220,221,222,223,224],[212,213,214,215,217,218,219,220,221,222,223,224],[212,213,214,215,216,218,219,220,221,222,223,224],[212,213,214,215,216,217,219,220,221,222,223,224],[212,213,214,215,216,217,218,220,221,222,223,224],[212,213,214,215,216,217,218,219,221,222,223,224],[212,213,214,215,216,217,218,219,220,222,223,224],[212,213,214,215,216,217,218,219,220,221,223,224],[212,213,214,215,216,217,218,219,220,221,222,224],[212,213,214,215,216,217,218,219,220,221,222,223],[89,109,120,228,229],[117,118],[86,87,94,103],[78,86,94],[110],[82,87,95],[103],[84,86,94],[86],[86,88,103,109],[87],[94,103,109],[86,87,89,94,103,106,109],[89,106,109],[119],[109],[84,86,103],[76],[108],[101,110,112],[94],[75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116],[100],[86,88,103,109,112],[238],[235,236,237],[103,120],[248],[162,248,252],[162,248],[243,245,246,247],[258,297],[258,282,297],[297],[258],[258,283,297],[258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296],[283,297],[89,120,146],[78,120,152],[106,120],[56,89,91,133,147,148,323],[120,305,306,307,308,309,310,311,312,313,314,315],[304,305,314],[305,314],[299,304,305,314],[305],[82,304,314],[304,305,306,307,308,309,310,311,312,313,315],[55,82,120,123,163,303,316],[325],[181,184,185,187,188],[182,183],[183],[183,184],[181,182],[183,187,188],[181,184,185,186],[181,184,187],[181,184],[181],[181,184,187,189,190,191,192],[89,103,120],[89,120,318],[321],[319,320],[318,322],[89,94,120,148,168],[172,173],[172,173,174,175],[177],[195],[193],[194,195,196,197],[50,51,53],[52,53],[50,51,52],[49,53,54,55],[46,56,57,100],[45,46],[45,47,66,67],[45,47,65],[45,47,48,66],[58,59,60,61,62,63,64]],"referencedMap":[[71,1],[74,2],[70,1],[72,3],[73,1],[122,4],[124,5],[126,6],[128,7],[127,8],[129,9],[133,10],[121,11],[135,12],[134,13],[136,14],[140,15],[145,16],[144,17],[142,18],[132,19],[148,20],[149,21],[152,22],[139,23],[153,21],[155,24],[160,25],[161,25],[157,26],[158,26],[159,26],[162,27],[165,28],[167,29],[168,30],[170,31],[171,32],[179,33],[205,34],[202,35],[199,36],[200,36],[201,36],[204,37],[203,38],[207,39],[209,40],[210,41],[211,42],[213,43],[214,44],[212,45],[215,46],[216,47],[217,48],[218,49],[219,50],[220,51],[221,52],[222,53],[223,54],[224,55],[225,24],[227,21],[230,56],[119,57],[78,58],[79,59],[80,60],[81,61],[82,62],[83,63],[85,64],[86,64],[87,65],[88,66],[89,67],[90,68],[91,69],[120,70],[92,64],[93,71],[94,72],[97,73],[98,74],[101,64],[102,75],[103,64],[106,76],[117,77],[108,76],[109,78],[111,62],[113,79],[114,62],[239,80],[238,81],[242,82],[250,83],[251,83],[253,84],[254,84],[252,85],[248,86],[255,14],[256,82],[282,87],[283,88],[258,89],[261,89],[280,87],[281,87],[271,90],[270,90],[268,87],[263,87],[276,87],[274,87],[278,87],[262,87],[275,87],[279,87],[264,87],[265,87],[277,87],[259,87],[266,87],[267,87],[269,87],[273,87],[284,91],[272,87],[260,87],[297,92],[291,91],[293,93],[292,91],[285,91],[286,91],[288,91],[290,91],[294,93],[295,93],[287,93],[289,93],[147,94],[298,95],[163,13],[302,96],[324,97],[316,98],[315,99],[306,100],[307,101],[308,101],[309,100],[310,100],[311,100],[312,102],[305,103],[313,99],[314,104],[317,105],[326,106],[189,107],[191,108],[182,109],[190,110],[183,111],[192,112],[187,113],[188,114],[185,115],[186,116],[184,116],[193,117],[228,118],[320,119],[322,120],[321,121],[319,11],[323,122],[318,123],[174,124],[176,125],[175,124],[178,126],[195,116],[196,127],[194,128],[198,129],[52,130],[54,131],[53,132],[56,133],[58,134],[47,135],[68,136],[66,137],[67,138],[65,139]],"exportedModulesMap":[[71,1],[74,2],[70,1],[72,3],[73,1],[122,4],[124,5],[126,6],[128,7],[127,8],[129,9],[133,10],[121,11],[135,12],[134,13],[136,14],[140,15],[145,16],[144,17],[142,18],[132,19],[148,20],[149,21],[152,22],[139,23],[153,21],[155,24],[160,25],[161,25],[157,26],[158,26],[159,26],[162,27],[165,28],[167,29],[168,30],[170,31],[171,32],[179,33],[205,34],[202,35],[199,36],[200,36],[201,36],[204,37],[203,38],[207,39],[209,40],[210,41],[211,42],[213,43],[214,44],[212,45],[215,46],[216,47],[217,48],[218,49],[219,50],[220,51],[221,52],[222,53],[223,54],[224,55],[225,24],[227,21],[230,56],[119,57],[78,58],[79,59],[80,60],[81,61],[82,62],[83,63],[85,64],[86,64],[87,65],[88,66],[89,67],[90,68],[91,69],[120,70],[92,64],[93,71],[94,72],[97,73],[98,74],[101,64],[102,75],[103,64],[106,76],[117,77],[108,76],[109,78],[111,62],[113,79],[114,62],[239,80],[238,81],[242,82],[250,83],[251,83],[253,84],[254,84],[252,85],[248,86],[255,14],[256,82],[282,87],[283,88],[258,89],[261,89],[280,87],[281,87],[271,90],[270,90],[268,87],[263,87],[276,87],[274,87],[278,87],[262,87],[275,87],[279,87],[264,87],[265,87],[277,87],[259,87],[266,87],[267,87],[269,87],[273,87],[284,91],[272,87],[260,87],[297,92],[291,91],[293,93],[292,91],[285,91],[286,91],[288,91],[290,91],[294,93],[295,93],[287,93],[289,93],[147,94],[298,95],[163,13],[302,96],[324,97],[316,98],[315,99],[306,100],[307,101],[308,101],[309,100],[310,100],[311,100],[312,102],[305,103],[313,99],[314,104],[317,105],[326,106],[189,107],[191,108],[182,109],[190,110],[183,111],[192,112],[187,113],[188,114],[185,115],[186,116],[184,116],[193,117],[228,118],[320,119],[322,120],[321,121],[319,11],[323,122],[318,123],[174,124],[176,125],[175,124],[178,126],[195,116],[196,127],[194,128],[198,129],[52,130],[54,131],[53,132],[56,133],[58,134],[47,135],[68,136],[66,137],[67,138],[65,139]],"semanticDiagnosticsPerFile":[71,69,74,70,72,73,122,124,126,128,127,125,129,133,121,135,134,136,137,138,140,145,141,144,142,143,132,148,149,150,152,139,153,155,156,160,161,157,158,159,162,166,165,167,168,169,170,171,179,180,205,202,199,200,201,204,203,50,206,207,209,208,210,211,213,214,212,215,216,217,218,219,220,221,222,223,224,225,146,151,226,227,229,230,118,76,119,77,78,79,80,81,82,83,84,85,86,87,88,75,115,89,90,91,120,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,117,108,109,110,111,112,116,113,114,231,232,233,234,239,235,236,238,237,240,241,242,243,244,131,130,249,250,251,253,254,252,245,248,164,255,256,257,247,282,283,258,261,280,281,271,270,268,263,276,274,278,262,275,279,264,265,277,259,266,267,269,273,284,272,260,297,296,291,293,292,285,286,288,290,294,295,287,289,147,298,299,300,301,163,154,302,324,316,315,306,307,308,309,310,311,312,305,313,314,304,317,303,325,326,51,189,191,182,190,183,192,187,188,185,186,184,193,181,48,246,228,320,322,321,319,323,318,172,174,176,175,173,46,178,177,195,196,197,194,198,52,54,53,123,55,45,10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,41,42,43,1,9,44,49,56,57,58,47,68,66,67,60,63,64,65,62,61,59]},"version":"4.3.2"}
@@ -1,63 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`validation schemas AdmonitionsSchema: for value=[] 1`] = `"\\"value\\" must be of type object"`;
4
-
5
- exports[`validation schemas AdmonitionsSchema: for value=3 1`] = `"\\"value\\" must be of type object"`;
6
-
7
- exports[`validation schemas AdmonitionsSchema: for value=null 1`] = `"\\"value\\" must be of type object"`;
8
-
9
- exports[`validation schemas AdmonitionsSchema: for value=true 1`] = `"\\"value\\" must be of type object"`;
10
-
11
- exports[`validation schemas PluginIdSchema: for value="/docs" 1`] = `"\\"value\\" with value \\"/docs\\" fails to match the required pattern: /^[a-zA-Z_-]+$/"`;
12
-
13
- exports[`validation schemas PluginIdSchema: for value="do cs" 1`] = `"\\"value\\" with value \\"do cs\\" fails to match the required pattern: /^[a-zA-Z_-]+$/"`;
14
-
15
- exports[`validation schemas PluginIdSchema: for value="do/cs" 1`] = `"\\"value\\" with value \\"do/cs\\" fails to match the required pattern: /^[a-zA-Z_-]+$/"`;
16
-
17
- exports[`validation schemas PluginIdSchema: for value="docs/" 1`] = `"\\"value\\" with value \\"docs/\\" fails to match the required pattern: /^[a-zA-Z_-]+$/"`;
18
-
19
- exports[`validation schemas PluginIdSchema: for value=[] 1`] = `"\\"value\\" must be a string"`;
20
-
21
- exports[`validation schemas PluginIdSchema: for value=3 1`] = `"\\"value\\" must be a string"`;
22
-
23
- exports[`validation schemas PluginIdSchema: for value=null 1`] = `"\\"value\\" must be a string"`;
24
-
25
- exports[`validation schemas PluginIdSchema: for value=true 1`] = `"\\"value\\" must be a string"`;
26
-
27
- exports[`validation schemas RehypePluginsSchema: for value=[[]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
28
-
29
- exports[`validation schemas RehypePluginsSchema: for value=[[null,null]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
30
-
31
- exports[`validation schemas RehypePluginsSchema: for value=[[null,true]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
32
-
33
- exports[`validation schemas RehypePluginsSchema: for value=[3] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
34
-
35
- exports[`validation schemas RehypePluginsSchema: for value=[false] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
36
-
37
- exports[`validation schemas RehypePluginsSchema: for value=[null] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
38
-
39
- exports[`validation schemas RehypePluginsSchema: for value=3 1`] = `"\\"value\\" must be an array"`;
40
-
41
- exports[`validation schemas RehypePluginsSchema: for value=false 1`] = `"\\"value\\" must be an array"`;
42
-
43
- exports[`validation schemas RehypePluginsSchema: for value=null 1`] = `"\\"value\\" must be an array"`;
44
-
45
- exports[`validation schemas RemarkPluginsSchema: for value=[[]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
46
-
47
- exports[`validation schemas RemarkPluginsSchema: for value=[[null,null]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
48
-
49
- exports[`validation schemas RemarkPluginsSchema: for value=[[null,true]] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
50
-
51
- exports[`validation schemas RemarkPluginsSchema: for value=[3] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
52
-
53
- exports[`validation schemas RemarkPluginsSchema: for value=[false] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
54
-
55
- exports[`validation schemas RemarkPluginsSchema: for value=[null] 1`] = `"\\"[0]\\" does not match any of the allowed types"`;
56
-
57
- exports[`validation schemas RemarkPluginsSchema: for value=3 1`] = `"\\"value\\" must be an array"`;
58
-
59
- exports[`validation schemas RemarkPluginsSchema: for value=false 1`] = `"\\"value\\" must be an array"`;
60
-
61
- exports[`validation schemas RemarkPluginsSchema: for value=null 1`] = `"\\"value\\" must be an array"`;
62
-
63
- exports[`validation schemas URISchema: for value="spaces are invalid in a URL" 1`] = `"\\"value\\" does not match any of the allowed types"`;
@@ -1,131 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- import Joi from '../Joi';
9
-
10
- import {
11
- AdmonitionsSchema,
12
- RehypePluginsSchema,
13
- RemarkPluginsSchema,
14
- PluginIdSchema,
15
- URISchema,
16
- } from '../validationSchemas';
17
-
18
- function createTestHelpers({
19
- schema,
20
- defaultValue,
21
- }: {
22
- schema: Joi.Schema;
23
- defaultValue?: unknown;
24
- }) {
25
- function testOK(value: unknown) {
26
- expect(Joi.attempt(value, schema)).toEqual(value ?? defaultValue);
27
- }
28
-
29
- function testFail(value: unknown) {
30
- expect(() => Joi.attempt(value, schema)).toThrowErrorMatchingSnapshot(
31
- `for value=${JSON.stringify(value)}`,
32
- );
33
- }
34
-
35
- return {testOK, testFail};
36
- }
37
-
38
- function testMarkdownPluginSchemas(schema: Joi.Schema) {
39
- const {testOK, testFail} = createTestHelpers({
40
- schema,
41
- defaultValue: [],
42
- });
43
-
44
- testOK(undefined);
45
- testOK([function () {}]);
46
- testOK([[function () {}, {attr: 'val'}]]);
47
- testOK([
48
- [function () {}, {attr: 'val'}],
49
- function () {},
50
- [function () {}, {attr: 'val'}],
51
- ]);
52
-
53
- testFail(null);
54
- testFail(false);
55
- testFail(3);
56
- testFail([null]);
57
- testFail([false]);
58
- testFail([3]);
59
- testFail([[]]);
60
- testFail([[function () {}, undefined]]);
61
- testFail([[function () {}, true]]);
62
- }
63
-
64
- describe('validation schemas', () => {
65
- test('PluginIdSchema', () => {
66
- const {testOK, testFail} = createTestHelpers({
67
- schema: PluginIdSchema,
68
- defaultValue: 'default',
69
- });
70
-
71
- testOK(undefined);
72
- testOK('docs');
73
- testOK('default');
74
- testOK('plugin-id_with-simple-special-chars');
75
-
76
- testFail('/docs');
77
- testFail('docs/');
78
- testFail('do/cs');
79
- testFail('do cs');
80
- testFail(null);
81
- testFail(3);
82
- testFail(true);
83
- testFail([]);
84
- });
85
-
86
- test('AdmonitionsSchema', () => {
87
- const {testOK, testFail} = createTestHelpers({
88
- schema: AdmonitionsSchema,
89
- defaultValue: {},
90
- });
91
-
92
- testOK(undefined);
93
- testOK({});
94
- testOK({attr: 'val'});
95
-
96
- testFail(null);
97
- testFail(3);
98
- testFail(true);
99
- testFail([]);
100
- });
101
-
102
- test('RemarkPluginsSchema', () => {
103
- testMarkdownPluginSchemas(RemarkPluginsSchema);
104
- });
105
-
106
- test('RehypePluginsSchema', () => {
107
- testMarkdownPluginSchemas(RehypePluginsSchema);
108
- });
109
-
110
- test('URISchema', () => {
111
- const {testFail, testOK} = createTestHelpers({schema: URISchema});
112
-
113
- const validURL = 'https://docusaurus.io';
114
- const doubleHash = 'https://docusaurus.io#github#/:';
115
- const invalidURL = 'spaces are invalid in a URL';
116
- const relativeURL = 'relativeURL';
117
- const relativeURLWithParent = '../relativeURLWithParent';
118
- const urlFromIssue = 'https://riot.im/app/#/room/#ligo-public:matrix.org';
119
- testOK(validURL);
120
- testOK(doubleHash);
121
- testFail(invalidURL);
122
- testOK(relativeURL);
123
- testOK(relativeURLWithParent);
124
- testOK(urlFromIssue);
125
-
126
- const protocolRelativeUrl1 = '//docusaurus.io/path';
127
- const protocolRelativeUrl2 = '//docusaurus.io/docs/doc1#hash';
128
- testOK(protocolRelativeUrl1);
129
- testOK(protocolRelativeUrl2);
130
- });
131
- });
@@ -1,64 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- import Joi from '../Joi';
9
- import {JoiFrontMatter, validateFrontMatter} from '../validationUtils';
10
-
11
- describe('validateFrontMatter', () => {
12
- test('should accept good values', () => {
13
- const schema = Joi.object<{test: string}>({
14
- test: Joi.string(),
15
- });
16
- const frontMatter = {
17
- test: 'hello',
18
- };
19
- expect(validateFrontMatter(frontMatter, schema)).toEqual(frontMatter);
20
- });
21
-
22
- test('should reject bad values', () => {
23
- const consoleError = jest.spyOn(console, 'error').mockImplementation();
24
- const schema = Joi.object<{test: string}>({
25
- test: Joi.string(),
26
- });
27
- const frontMatter = {
28
- test: true,
29
- };
30
- expect(() =>
31
- validateFrontMatter(frontMatter, schema),
32
- ).toThrowErrorMatchingInlineSnapshot(`"\\"test\\" must be a string"`);
33
- expect(consoleError).toHaveBeenCalledWith(
34
- expect.stringContaining('The following frontmatter'),
35
- );
36
- });
37
-
38
- // Fix Yaml trying to convert strings to numbers automatically
39
- // We only want to deal with a single type in the final frontmatter (not string | number)
40
- test('should convert number values to string when string schema', () => {
41
- const schema = Joi.object<{test: string}>({
42
- test: JoiFrontMatter.string(),
43
- });
44
- const frontMatter = {
45
- test: 42,
46
- };
47
- expect(validateFrontMatter(frontMatter, schema)).toEqual({test: '42'});
48
- });
49
-
50
- // Helps to fix Yaml trying to convert strings to dates automatically
51
- // We only want to deal with a single type in the final frontmatter (not string | Date)
52
- test('should convert date values when string schema', () => {
53
- const schema = Joi.object<{test: string}>({
54
- test: JoiFrontMatter.string(),
55
- });
56
- const date = new Date();
57
- const frontMatter = {
58
- test: date,
59
- };
60
- expect(validateFrontMatter(frontMatter, schema)).toEqual({
61
- test: date.toString(),
62
- });
63
- });
64
- });
package/tsconfig.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "incremental": true,
5
- "tsBuildInfoFile": "./lib/.tsbuildinfo",
6
- "rootDir": "src",
7
- "outDir": "lib"
8
- }
9
- }