@khanacademy/perseus-core 1.4.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @typedef {Object} Errors utility for referencing the Perseus error taxonomy.
3
+ */
4
+ export declare const Errors: Readonly<{
5
+ /**
6
+ * @property {ErrorKind} Unknown The kind of error is not known.
7
+ */
8
+ Unknown: "Unknown";
9
+ /**
10
+ * @property {ErrorKind} Internal The error is internal to the executing code.
11
+ */
12
+ Internal: "Internal";
13
+ /**
14
+ * @property {ErrorKind} InvalidInput There was a problem with the provided
15
+ * input, such as the wrong format or a null value.
16
+ */
17
+ InvalidInput: "InvalidInput";
18
+ /**
19
+ * @property {ErrorKind} NotAllowed There was a problem due to the state of
20
+ * the system not matching the requested operation or input. For example,
21
+ * trying to create a username that is valid, but is already taken by
22
+ * another user. Use {@link InvalidInput} instead when the input isn't
23
+ * valid regardless of the state of the system. Use {@link NotFound} when
24
+ * the failure is due to not being able to find a resource.
25
+ */
26
+ NotAllowed: "NotAllowed";
27
+ /**
28
+ * @property {ErrorKind} TransientService There was a problem when making a
29
+ * request to a service.
30
+ */
31
+ TransientService: "TransientService";
32
+ /**
33
+ * @property {ErrorKind} Service There was a non-transient problem when
34
+ * making a request to service.
35
+ */
36
+ Service: "Service";
37
+ }>;
38
+ /**
39
+ * @type {ErrorKind} The kind of error being reported
40
+ */
41
+ export type ErrorKind = (typeof Errors)[keyof typeof Errors];
@@ -0,0 +1,11 @@
1
+ import type { ErrorKind } from "./errors";
2
+ import type { Metadata } from "@khanacademy/wonder-stuff-core";
3
+ type Options = {
4
+ metadata?: Metadata | null | undefined;
5
+ };
6
+ export declare class PerseusError extends Error {
7
+ kind: ErrorKind;
8
+ metadata: Metadata | null | undefined;
9
+ constructor(message: string, kind: ErrorKind, options?: Options);
10
+ }
11
+ export {};
package/dist/es/index.js CHANGED
@@ -42,8 +42,60 @@ const addLibraryVersionToPerseusDebug = (libraryName, libraryVersion) => {
42
42
 
43
43
  // This file is processed by a Rollup plugin (replace) to inject the production
44
44
  const libName = "@khanacademy/perseus-core";
45
- const libVersion = "1.4.1";
45
+ const libVersion = "1.5.0";
46
46
  addLibraryVersionToPerseusDebug(libName, libVersion);
47
47
 
48
- export { addLibraryVersionToPerseusDebug, libVersion };
48
+ /**
49
+ * @typedef {Object} Errors utility for referencing the Perseus error taxonomy.
50
+ */
51
+ const Errors = Object.freeze({
52
+ /**
53
+ * @property {ErrorKind} Unknown The kind of error is not known.
54
+ */
55
+ Unknown: "Unknown",
56
+ /**
57
+ * @property {ErrorKind} Internal The error is internal to the executing code.
58
+ */
59
+ Internal: "Internal",
60
+ /**
61
+ * @property {ErrorKind} InvalidInput There was a problem with the provided
62
+ * input, such as the wrong format or a null value.
63
+ */
64
+ InvalidInput: "InvalidInput",
65
+ /**
66
+ * @property {ErrorKind} NotAllowed There was a problem due to the state of
67
+ * the system not matching the requested operation or input. For example,
68
+ * trying to create a username that is valid, but is already taken by
69
+ * another user. Use {@link InvalidInput} instead when the input isn't
70
+ * valid regardless of the state of the system. Use {@link NotFound} when
71
+ * the failure is due to not being able to find a resource.
72
+ */
73
+ NotAllowed: "NotAllowed",
74
+ /**
75
+ * @property {ErrorKind} TransientService There was a problem when making a
76
+ * request to a service.
77
+ */
78
+ TransientService: "TransientService",
79
+ /**
80
+ * @property {ErrorKind} Service There was a non-transient problem when
81
+ * making a request to service.
82
+ */
83
+ Service: "Service"
84
+ });
85
+
86
+ /**
87
+ * @type {ErrorKind} The kind of error being reported
88
+ */
89
+
90
+ class PerseusError extends Error {
91
+ constructor(message, kind, options) {
92
+ super(message);
93
+ this.kind = void 0;
94
+ this.metadata = void 0;
95
+ this.kind = kind;
96
+ this.metadata = options == null ? void 0 : options.metadata;
97
+ }
98
+ }
99
+
100
+ export { Errors, PerseusError, addLibraryVersionToPerseusDebug, libVersion };
49
101
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/utils/add-library-version-to-perseus-debug.ts","../../src/version.ts"],"sourcesContent":["/**\n * Adds the given perseus library version information to the __perseus_debug__\n * object and ensures that the object is attached to `globalThis` (`window` in\n * browser environments).\n *\n * This allows each library to provide runtime version information to assist in\n * debugging in production environments.\n */\nexport const addLibraryVersionToPerseusDebug = (\n libraryName: string,\n libraryVersion: string,\n) => {\n // If the library version is the default value, then we don't want to\n // prefix it with a \"v\" to indicate that it is a version number.\n let prefix = \"v\";\n if (libraryVersion === \"__lib_version__\") {\n prefix = \"\";\n }\n const formattedVersion = `${prefix}${libraryVersion}`;\n\n if (typeof globalThis !== \"undefined\") {\n globalThis.__perseus_debug__ = globalThis.__perseus_debug__ ?? {};\n\n const existingVersionEntry = globalThis.__perseus_debug__[libraryName];\n if (existingVersionEntry) {\n // If we already have an entry and it doesn't match the registered\n // version, we morph the entry into an array and log a warning.\n if (existingVersionEntry !== formattedVersion) {\n // Existing entry might be an array already (oops, at least 2\n // versions of the library already loaded!).\n const allVersions = Array.isArray(existingVersionEntry)\n ? existingVersionEntry\n : [existingVersionEntry];\n allVersions.push(formattedVersion);\n\n globalThis.__perseus_debug__[libraryName] = allVersions;\n\n // eslint-disable-next-line no-console\n console.warn(\n `Multiple versions of ${libraryName} loaded on this page: ${allVersions\n .sort()\n .join(\", \")}`,\n );\n }\n } else {\n globalThis.__perseus_debug__[libraryName] = formattedVersion;\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(`globalThis not found found (${formattedVersion})`);\n }\n};\n","// This file is processed by a Rollup plugin (replace) to inject the production\n// version number during the release build.\n// In dev, you'll never see the version number.\n\nimport {addLibraryVersionToPerseusDebug} from \"./utils/add-library-version-to-perseus-debug\";\n\nconst libName = \"@khanacademy/perseus-core\";\nexport const libVersion = \"__lib_version__\";\n\naddLibraryVersionToPerseusDebug(libName, libVersion);\n"],"names":["addLibraryVersionToPerseusDebug","libraryName","libraryVersion","prefix","formattedVersion","globalThis","_globalThis$__perseus","__perseus_debug__","existingVersionEntry","allVersions","Array","isArray","push","console","warn","sort","join","libName","libVersion"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,+BAA+B,GAAGA,CAC3CC,WAAmB,EACnBC,cAAsB,KACrB;AACD;AACA;EACA,IAAIC,MAAM,GAAG,GAAG,CAAA;EAChB,IAAID,cAAc,KAAK,iBAAiB,EAAE;AACtCC,IAAAA,MAAM,GAAG,EAAE,CAAA;AACf,GAAA;AACA,EAAA,MAAMC,gBAAgB,GAAI,CAAA,EAAED,MAAO,CAAA,EAAED,cAAe,CAAC,CAAA,CAAA;AAErD,EAAA,IAAI,OAAOG,UAAU,KAAK,WAAW,EAAE;AAAA,IAAA,IAAAC,qBAAA,CAAA;AACnCD,IAAAA,UAAU,CAACE,iBAAiB,GAAAD,CAAAA,qBAAA,GAAGD,UAAU,CAACE,iBAAiB,KAAAD,IAAAA,GAAAA,qBAAA,GAAI,EAAE,CAAA;AAEjE,IAAA,MAAME,oBAAoB,GAAGH,UAAU,CAACE,iBAAiB,CAACN,WAAW,CAAC,CAAA;AACtE,IAAA,IAAIO,oBAAoB,EAAE;AACtB;AACA;MACA,IAAIA,oBAAoB,KAAKJ,gBAAgB,EAAE;AAC3C;AACA;AACA,QAAA,MAAMK,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,oBAAoB,CAAC,GACjDA,oBAAoB,GACpB,CAACA,oBAAoB,CAAC,CAAA;AAC5BC,QAAAA,WAAW,CAACG,IAAI,CAACR,gBAAgB,CAAC,CAAA;AAElCC,QAAAA,UAAU,CAACE,iBAAiB,CAACN,WAAW,CAAC,GAAGQ,WAAW,CAAA;;AAEvD;AACAI,QAAAA,OAAO,CAACC,IAAI,CACP,CAAuBb,qBAAAA,EAAAA,WAAY,yBAAwBQ,WAAW,CAClEM,IAAI,EAAE,CACNC,IAAI,CAAC,IAAI,CAAE,EACpB,CAAC,CAAA;AACL,OAAA;AACJ,KAAC,MAAM;AACHX,MAAAA,UAAU,CAACE,iBAAiB,CAACN,WAAW,CAAC,GAAGG,gBAAgB,CAAA;AAChE,KAAA;AACJ,GAAC,MAAM;AACH;AACAS,IAAAA,OAAO,CAACC,IAAI,CAAE,CAA8BV,4BAAAA,EAAAA,gBAAiB,GAAE,CAAC,CAAA;AACpE,GAAA;AACJ;;ACnDA;AAMA,MAAMa,OAAO,GAAG,2BAA2B,CAAA;AACpC,MAAMC,UAAU,GAAG,QAAiB;AAE3ClB,+BAA+B,CAACiB,OAAO,EAAEC,UAAU,CAAC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/add-library-version-to-perseus-debug.ts","../../src/version.ts","../../src/error/errors.ts","../../src/error/perseus-error.ts"],"sourcesContent":["/**\n * Adds the given perseus library version information to the __perseus_debug__\n * object and ensures that the object is attached to `globalThis` (`window` in\n * browser environments).\n *\n * This allows each library to provide runtime version information to assist in\n * debugging in production environments.\n */\nexport const addLibraryVersionToPerseusDebug = (\n libraryName: string,\n libraryVersion: string,\n) => {\n // If the library version is the default value, then we don't want to\n // prefix it with a \"v\" to indicate that it is a version number.\n let prefix = \"v\";\n if (libraryVersion === \"__lib_version__\") {\n prefix = \"\";\n }\n const formattedVersion = `${prefix}${libraryVersion}`;\n\n if (typeof globalThis !== \"undefined\") {\n globalThis.__perseus_debug__ = globalThis.__perseus_debug__ ?? {};\n\n const existingVersionEntry = globalThis.__perseus_debug__[libraryName];\n if (existingVersionEntry) {\n // If we already have an entry and it doesn't match the registered\n // version, we morph the entry into an array and log a warning.\n if (existingVersionEntry !== formattedVersion) {\n // Existing entry might be an array already (oops, at least 2\n // versions of the library already loaded!).\n const allVersions = Array.isArray(existingVersionEntry)\n ? existingVersionEntry\n : [existingVersionEntry];\n allVersions.push(formattedVersion);\n\n globalThis.__perseus_debug__[libraryName] = allVersions;\n\n // eslint-disable-next-line no-console\n console.warn(\n `Multiple versions of ${libraryName} loaded on this page: ${allVersions\n .sort()\n .join(\", \")}`,\n );\n }\n } else {\n globalThis.__perseus_debug__[libraryName] = formattedVersion;\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(`globalThis not found found (${formattedVersion})`);\n }\n};\n","// This file is processed by a Rollup plugin (replace) to inject the production\n// version number during the release build.\n// In dev, you'll never see the version number.\n\nimport {addLibraryVersionToPerseusDebug} from \"./utils/add-library-version-to-perseus-debug\";\n\nconst libName = \"@khanacademy/perseus-core\";\nexport const libVersion = \"__lib_version__\";\n\naddLibraryVersionToPerseusDebug(libName, libVersion);\n","/**\n * @typedef {Object} Errors utility for referencing the Perseus error taxonomy.\n */\nexport const Errors = Object.freeze({\n /**\n * @property {ErrorKind} Unknown The kind of error is not known.\n */\n Unknown: \"Unknown\",\n /**\n * @property {ErrorKind} Internal The error is internal to the executing code.\n */\n Internal: \"Internal\",\n /**\n * @property {ErrorKind} InvalidInput There was a problem with the provided\n * input, such as the wrong format or a null value.\n */\n InvalidInput: \"InvalidInput\",\n /**\n * @property {ErrorKind} NotAllowed There was a problem due to the state of\n * the system not matching the requested operation or input. For example,\n * trying to create a username that is valid, but is already taken by\n * another user. Use {@link InvalidInput} instead when the input isn't\n * valid regardless of the state of the system. Use {@link NotFound} when\n * the failure is due to not being able to find a resource.\n */\n NotAllowed: \"NotAllowed\",\n /**\n * @property {ErrorKind} TransientService There was a problem when making a\n * request to a service.\n */\n TransientService: \"TransientService\",\n /**\n * @property {ErrorKind} Service There was a non-transient problem when\n * making a request to service.\n */\n Service: \"Service\",\n});\n\n/**\n * @type {ErrorKind} The kind of error being reported\n */\nexport type ErrorKind = (typeof Errors)[keyof typeof Errors];\n","import type {ErrorKind} from \"./errors\";\nimport type {Metadata} from \"@khanacademy/wonder-stuff-core\";\n\ntype Options = {\n metadata?: Metadata | null | undefined;\n};\n\nexport class PerseusError extends Error {\n kind: ErrorKind;\n metadata: Metadata | null | undefined;\n\n constructor(message: string, kind: ErrorKind, options?: Options) {\n super(message);\n this.kind = kind;\n this.metadata = options?.metadata;\n }\n}\n"],"names":["addLibraryVersionToPerseusDebug","libraryName","libraryVersion","prefix","formattedVersion","globalThis","_globalThis$__perseus","__perseus_debug__","existingVersionEntry","allVersions","Array","isArray","push","console","warn","sort","join","libName","libVersion","Errors","Object","freeze","Unknown","Internal","InvalidInput","NotAllowed","TransientService","Service","PerseusError","Error","constructor","message","kind","options","metadata"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,+BAA+B,GAAGA,CAC3CC,WAAmB,EACnBC,cAAsB,KACrB;AACD;AACA;EACA,IAAIC,MAAM,GAAG,GAAG,CAAA;EAChB,IAAID,cAAc,KAAK,iBAAiB,EAAE;AACtCC,IAAAA,MAAM,GAAG,EAAE,CAAA;AACf,GAAA;AACA,EAAA,MAAMC,gBAAgB,GAAI,CAAA,EAAED,MAAO,CAAA,EAAED,cAAe,CAAC,CAAA,CAAA;AAErD,EAAA,IAAI,OAAOG,UAAU,KAAK,WAAW,EAAE;AAAA,IAAA,IAAAC,qBAAA,CAAA;AACnCD,IAAAA,UAAU,CAACE,iBAAiB,GAAAD,CAAAA,qBAAA,GAAGD,UAAU,CAACE,iBAAiB,KAAAD,IAAAA,GAAAA,qBAAA,GAAI,EAAE,CAAA;AAEjE,IAAA,MAAME,oBAAoB,GAAGH,UAAU,CAACE,iBAAiB,CAACN,WAAW,CAAC,CAAA;AACtE,IAAA,IAAIO,oBAAoB,EAAE;AACtB;AACA;MACA,IAAIA,oBAAoB,KAAKJ,gBAAgB,EAAE;AAC3C;AACA;AACA,QAAA,MAAMK,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,oBAAoB,CAAC,GACjDA,oBAAoB,GACpB,CAACA,oBAAoB,CAAC,CAAA;AAC5BC,QAAAA,WAAW,CAACG,IAAI,CAACR,gBAAgB,CAAC,CAAA;AAElCC,QAAAA,UAAU,CAACE,iBAAiB,CAACN,WAAW,CAAC,GAAGQ,WAAW,CAAA;;AAEvD;AACAI,QAAAA,OAAO,CAACC,IAAI,CACP,CAAuBb,qBAAAA,EAAAA,WAAY,yBAAwBQ,WAAW,CAClEM,IAAI,EAAE,CACNC,IAAI,CAAC,IAAI,CAAE,EACpB,CAAC,CAAA;AACL,OAAA;AACJ,KAAC,MAAM;AACHX,MAAAA,UAAU,CAACE,iBAAiB,CAACN,WAAW,CAAC,GAAGG,gBAAgB,CAAA;AAChE,KAAA;AACJ,GAAC,MAAM;AACH;AACAS,IAAAA,OAAO,CAACC,IAAI,CAAE,CAA8BV,4BAAAA,EAAAA,gBAAiB,GAAE,CAAC,CAAA;AACpE,GAAA;AACJ;;ACnDA;AAMA,MAAMa,OAAO,GAAG,2BAA2B,CAAA;AACpC,MAAMC,UAAU,GAAG,QAAiB;AAE3ClB,+BAA+B,CAACiB,OAAO,EAAEC,UAAU,CAAC;;ACTpD;AACA;AACA;MACaC,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;AAChC;AACJ;AACA;AACIC,EAAAA,OAAO,EAAE,SAAS;AAClB;AACJ;AACA;AACIC,EAAAA,QAAQ,EAAE,UAAU;AACpB;AACJ;AACA;AACA;AACIC,EAAAA,YAAY,EAAE,cAAc;AAC5B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,EAAAA,UAAU,EAAE,YAAY;AACxB;AACJ;AACA;AACA;AACIC,EAAAA,gBAAgB,EAAE,kBAAkB;AACpC;AACJ;AACA;AACA;AACIC,EAAAA,OAAO,EAAE,SAAA;AACb,CAAC,EAAC;;AAEF;AACA;AACA;;ACjCO,MAAMC,YAAY,SAASC,KAAK,CAAC;AAIpCC,EAAAA,WAAWA,CAACC,OAAe,EAAEC,IAAe,EAAEC,OAAiB,EAAE;IAC7D,KAAK,CAACF,OAAO,CAAC,CAAA;AAAC,IAAA,IAAA,CAJnBC,IAAI,GAAA,KAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACJE,QAAQ,GAAA,KAAA,CAAA,CAAA;IAIJ,IAAI,CAACF,IAAI,GAAGA,IAAI,CAAA;AAChB,IAAA,IAAI,CAACE,QAAQ,GAAGD,OAAO,IAAPA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEC,QAAQ,CAAA;AACrC,GAAA;AACJ;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  export type { PerseusAnalyticsEvent, AnalyticsEventHandlerFn } from "./analytics";
2
2
  export type { KEScore, KeypadContextRendererInterface, RendererInterface, } from "./types";
3
+ export type { ErrorKind } from "./error/errors";
3
4
  export { addLibraryVersionToPerseusDebug } from "./utils/add-library-version-to-perseus-debug";
4
5
  export { libVersion } from "./version";
6
+ export { Errors } from "./error/errors";
7
+ export { PerseusError } from "./error/perseus-error";
package/dist/index.js CHANGED
@@ -45,9 +45,63 @@ const addLibraryVersionToPerseusDebug = (libraryName, libraryVersion) => {
45
45
 
46
46
  // This file is processed by a Rollup plugin (replace) to inject the production
47
47
  const libName = "@khanacademy/perseus-core";
48
- const libVersion = "1.4.1";
48
+ const libVersion = "1.5.0";
49
49
  addLibraryVersionToPerseusDebug(libName, libVersion);
50
50
 
51
+ /**
52
+ * @typedef {Object} Errors utility for referencing the Perseus error taxonomy.
53
+ */
54
+ const Errors = Object.freeze({
55
+ /**
56
+ * @property {ErrorKind} Unknown The kind of error is not known.
57
+ */
58
+ Unknown: "Unknown",
59
+ /**
60
+ * @property {ErrorKind} Internal The error is internal to the executing code.
61
+ */
62
+ Internal: "Internal",
63
+ /**
64
+ * @property {ErrorKind} InvalidInput There was a problem with the provided
65
+ * input, such as the wrong format or a null value.
66
+ */
67
+ InvalidInput: "InvalidInput",
68
+ /**
69
+ * @property {ErrorKind} NotAllowed There was a problem due to the state of
70
+ * the system not matching the requested operation or input. For example,
71
+ * trying to create a username that is valid, but is already taken by
72
+ * another user. Use {@link InvalidInput} instead when the input isn't
73
+ * valid regardless of the state of the system. Use {@link NotFound} when
74
+ * the failure is due to not being able to find a resource.
75
+ */
76
+ NotAllowed: "NotAllowed",
77
+ /**
78
+ * @property {ErrorKind} TransientService There was a problem when making a
79
+ * request to a service.
80
+ */
81
+ TransientService: "TransientService",
82
+ /**
83
+ * @property {ErrorKind} Service There was a non-transient problem when
84
+ * making a request to service.
85
+ */
86
+ Service: "Service"
87
+ });
88
+
89
+ /**
90
+ * @type {ErrorKind} The kind of error being reported
91
+ */
92
+
93
+ class PerseusError extends Error {
94
+ kind;
95
+ metadata;
96
+ constructor(message, kind, options) {
97
+ super(message);
98
+ this.kind = kind;
99
+ this.metadata = options?.metadata;
100
+ }
101
+ }
102
+
103
+ exports.Errors = Errors;
104
+ exports.PerseusError = PerseusError;
51
105
  exports.addLibraryVersionToPerseusDebug = addLibraryVersionToPerseusDebug;
52
106
  exports.libVersion = libVersion;
53
107
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/add-library-version-to-perseus-debug.ts","../src/version.ts"],"sourcesContent":["/**\n * Adds the given perseus library version information to the __perseus_debug__\n * object and ensures that the object is attached to `globalThis` (`window` in\n * browser environments).\n *\n * This allows each library to provide runtime version information to assist in\n * debugging in production environments.\n */\nexport const addLibraryVersionToPerseusDebug = (\n libraryName: string,\n libraryVersion: string,\n) => {\n // If the library version is the default value, then we don't want to\n // prefix it with a \"v\" to indicate that it is a version number.\n let prefix = \"v\";\n if (libraryVersion === \"__lib_version__\") {\n prefix = \"\";\n }\n const formattedVersion = `${prefix}${libraryVersion}`;\n\n if (typeof globalThis !== \"undefined\") {\n globalThis.__perseus_debug__ = globalThis.__perseus_debug__ ?? {};\n\n const existingVersionEntry = globalThis.__perseus_debug__[libraryName];\n if (existingVersionEntry) {\n // If we already have an entry and it doesn't match the registered\n // version, we morph the entry into an array and log a warning.\n if (existingVersionEntry !== formattedVersion) {\n // Existing entry might be an array already (oops, at least 2\n // versions of the library already loaded!).\n const allVersions = Array.isArray(existingVersionEntry)\n ? existingVersionEntry\n : [existingVersionEntry];\n allVersions.push(formattedVersion);\n\n globalThis.__perseus_debug__[libraryName] = allVersions;\n\n // eslint-disable-next-line no-console\n console.warn(\n `Multiple versions of ${libraryName} loaded on this page: ${allVersions\n .sort()\n .join(\", \")}`,\n );\n }\n } else {\n globalThis.__perseus_debug__[libraryName] = formattedVersion;\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(`globalThis not found found (${formattedVersion})`);\n }\n};\n","// This file is processed by a Rollup plugin (replace) to inject the production\n// version number during the release build.\n// In dev, you'll never see the version number.\n\nimport {addLibraryVersionToPerseusDebug} from \"./utils/add-library-version-to-perseus-debug\";\n\nconst libName = \"@khanacademy/perseus-core\";\nexport const libVersion = \"__lib_version__\";\n\naddLibraryVersionToPerseusDebug(libName, libVersion);\n"],"names":["addLibraryVersionToPerseusDebug","libraryName","libraryVersion","prefix","formattedVersion","globalThis","__perseus_debug__","existingVersionEntry","allVersions","Array","isArray","push","console","warn","sort","join","libName","libVersion"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,+BAA+B,GAAGA,CAC3CC,WAAmB,EACnBC,cAAsB,KACrB;AACD;AACA;EACA,IAAIC,MAAM,GAAG,GAAG,CAAA;EAChB,IAAID,cAAc,KAAK,iBAAiB,EAAE;AACtCC,IAAAA,MAAM,GAAG,EAAE,CAAA;AACf,GAAA;AACA,EAAA,MAAMC,gBAAgB,GAAI,CAAA,EAAED,MAAO,CAAA,EAAED,cAAe,CAAC,CAAA,CAAA;AAErD,EAAA,IAAI,OAAOG,UAAU,KAAK,WAAW,EAAE;IACnCA,UAAU,CAACC,iBAAiB,GAAGD,UAAU,CAACC,iBAAiB,IAAI,EAAE,CAAA;AAEjE,IAAA,MAAMC,oBAAoB,GAAGF,UAAU,CAACC,iBAAiB,CAACL,WAAW,CAAC,CAAA;AACtE,IAAA,IAAIM,oBAAoB,EAAE;AACtB;AACA;MACA,IAAIA,oBAAoB,KAAKH,gBAAgB,EAAE;AAC3C;AACA;AACA,QAAA,MAAMI,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,oBAAoB,CAAC,GACjDA,oBAAoB,GACpB,CAACA,oBAAoB,CAAC,CAAA;AAC5BC,QAAAA,WAAW,CAACG,IAAI,CAACP,gBAAgB,CAAC,CAAA;AAElCC,QAAAA,UAAU,CAACC,iBAAiB,CAACL,WAAW,CAAC,GAAGO,WAAW,CAAA;;AAEvD;AACAI,QAAAA,OAAO,CAACC,IAAI,CACP,CAAuBZ,qBAAAA,EAAAA,WAAY,yBAAwBO,WAAW,CAClEM,IAAI,EAAE,CACNC,IAAI,CAAC,IAAI,CAAE,EACpB,CAAC,CAAA;AACL,OAAA;AACJ,KAAC,MAAM;AACHV,MAAAA,UAAU,CAACC,iBAAiB,CAACL,WAAW,CAAC,GAAGG,gBAAgB,CAAA;AAChE,KAAA;AACJ,GAAC,MAAM;AACH;AACAQ,IAAAA,OAAO,CAACC,IAAI,CAAE,CAA8BT,4BAAAA,EAAAA,gBAAiB,GAAE,CAAC,CAAA;AACpE,GAAA;AACJ;;ACnDA;AAMA,MAAMY,OAAO,GAAG,2BAA2B,CAAA;AACpC,MAAMC,UAAU,GAAG,QAAiB;AAE3CjB,+BAA+B,CAACgB,OAAO,EAAEC,UAAU,CAAC;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/add-library-version-to-perseus-debug.ts","../src/version.ts","../src/error/errors.ts","../src/error/perseus-error.ts"],"sourcesContent":["/**\n * Adds the given perseus library version information to the __perseus_debug__\n * object and ensures that the object is attached to `globalThis` (`window` in\n * browser environments).\n *\n * This allows each library to provide runtime version information to assist in\n * debugging in production environments.\n */\nexport const addLibraryVersionToPerseusDebug = (\n libraryName: string,\n libraryVersion: string,\n) => {\n // If the library version is the default value, then we don't want to\n // prefix it with a \"v\" to indicate that it is a version number.\n let prefix = \"v\";\n if (libraryVersion === \"__lib_version__\") {\n prefix = \"\";\n }\n const formattedVersion = `${prefix}${libraryVersion}`;\n\n if (typeof globalThis !== \"undefined\") {\n globalThis.__perseus_debug__ = globalThis.__perseus_debug__ ?? {};\n\n const existingVersionEntry = globalThis.__perseus_debug__[libraryName];\n if (existingVersionEntry) {\n // If we already have an entry and it doesn't match the registered\n // version, we morph the entry into an array and log a warning.\n if (existingVersionEntry !== formattedVersion) {\n // Existing entry might be an array already (oops, at least 2\n // versions of the library already loaded!).\n const allVersions = Array.isArray(existingVersionEntry)\n ? existingVersionEntry\n : [existingVersionEntry];\n allVersions.push(formattedVersion);\n\n globalThis.__perseus_debug__[libraryName] = allVersions;\n\n // eslint-disable-next-line no-console\n console.warn(\n `Multiple versions of ${libraryName} loaded on this page: ${allVersions\n .sort()\n .join(\", \")}`,\n );\n }\n } else {\n globalThis.__perseus_debug__[libraryName] = formattedVersion;\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(`globalThis not found found (${formattedVersion})`);\n }\n};\n","// This file is processed by a Rollup plugin (replace) to inject the production\n// version number during the release build.\n// In dev, you'll never see the version number.\n\nimport {addLibraryVersionToPerseusDebug} from \"./utils/add-library-version-to-perseus-debug\";\n\nconst libName = \"@khanacademy/perseus-core\";\nexport const libVersion = \"__lib_version__\";\n\naddLibraryVersionToPerseusDebug(libName, libVersion);\n","/**\n * @typedef {Object} Errors utility for referencing the Perseus error taxonomy.\n */\nexport const Errors = Object.freeze({\n /**\n * @property {ErrorKind} Unknown The kind of error is not known.\n */\n Unknown: \"Unknown\",\n /**\n * @property {ErrorKind} Internal The error is internal to the executing code.\n */\n Internal: \"Internal\",\n /**\n * @property {ErrorKind} InvalidInput There was a problem with the provided\n * input, such as the wrong format or a null value.\n */\n InvalidInput: \"InvalidInput\",\n /**\n * @property {ErrorKind} NotAllowed There was a problem due to the state of\n * the system not matching the requested operation or input. For example,\n * trying to create a username that is valid, but is already taken by\n * another user. Use {@link InvalidInput} instead when the input isn't\n * valid regardless of the state of the system. Use {@link NotFound} when\n * the failure is due to not being able to find a resource.\n */\n NotAllowed: \"NotAllowed\",\n /**\n * @property {ErrorKind} TransientService There was a problem when making a\n * request to a service.\n */\n TransientService: \"TransientService\",\n /**\n * @property {ErrorKind} Service There was a non-transient problem when\n * making a request to service.\n */\n Service: \"Service\",\n});\n\n/**\n * @type {ErrorKind} The kind of error being reported\n */\nexport type ErrorKind = (typeof Errors)[keyof typeof Errors];\n","import type {ErrorKind} from \"./errors\";\nimport type {Metadata} from \"@khanacademy/wonder-stuff-core\";\n\ntype Options = {\n metadata?: Metadata | null | undefined;\n};\n\nexport class PerseusError extends Error {\n kind: ErrorKind;\n metadata: Metadata | null | undefined;\n\n constructor(message: string, kind: ErrorKind, options?: Options) {\n super(message);\n this.kind = kind;\n this.metadata = options?.metadata;\n }\n}\n"],"names":["addLibraryVersionToPerseusDebug","libraryName","libraryVersion","prefix","formattedVersion","globalThis","__perseus_debug__","existingVersionEntry","allVersions","Array","isArray","push","console","warn","sort","join","libName","libVersion","Errors","Object","freeze","Unknown","Internal","InvalidInput","NotAllowed","TransientService","Service","PerseusError","Error","kind","metadata","constructor","message","options"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,+BAA+B,GAAGA,CAC3CC,WAAmB,EACnBC,cAAsB,KACrB;AACD;AACA;EACA,IAAIC,MAAM,GAAG,GAAG,CAAA;EAChB,IAAID,cAAc,KAAK,iBAAiB,EAAE;AACtCC,IAAAA,MAAM,GAAG,EAAE,CAAA;AACf,GAAA;AACA,EAAA,MAAMC,gBAAgB,GAAI,CAAA,EAAED,MAAO,CAAA,EAAED,cAAe,CAAC,CAAA,CAAA;AAErD,EAAA,IAAI,OAAOG,UAAU,KAAK,WAAW,EAAE;IACnCA,UAAU,CAACC,iBAAiB,GAAGD,UAAU,CAACC,iBAAiB,IAAI,EAAE,CAAA;AAEjE,IAAA,MAAMC,oBAAoB,GAAGF,UAAU,CAACC,iBAAiB,CAACL,WAAW,CAAC,CAAA;AACtE,IAAA,IAAIM,oBAAoB,EAAE;AACtB;AACA;MACA,IAAIA,oBAAoB,KAAKH,gBAAgB,EAAE;AAC3C;AACA;AACA,QAAA,MAAMI,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,oBAAoB,CAAC,GACjDA,oBAAoB,GACpB,CAACA,oBAAoB,CAAC,CAAA;AAC5BC,QAAAA,WAAW,CAACG,IAAI,CAACP,gBAAgB,CAAC,CAAA;AAElCC,QAAAA,UAAU,CAACC,iBAAiB,CAACL,WAAW,CAAC,GAAGO,WAAW,CAAA;;AAEvD;AACAI,QAAAA,OAAO,CAACC,IAAI,CACP,CAAuBZ,qBAAAA,EAAAA,WAAY,yBAAwBO,WAAW,CAClEM,IAAI,EAAE,CACNC,IAAI,CAAC,IAAI,CAAE,EACpB,CAAC,CAAA;AACL,OAAA;AACJ,KAAC,MAAM;AACHV,MAAAA,UAAU,CAACC,iBAAiB,CAACL,WAAW,CAAC,GAAGG,gBAAgB,CAAA;AAChE,KAAA;AACJ,GAAC,MAAM;AACH;AACAQ,IAAAA,OAAO,CAACC,IAAI,CAAE,CAA8BT,4BAAAA,EAAAA,gBAAiB,GAAE,CAAC,CAAA;AACpE,GAAA;AACJ;;ACnDA;AAMA,MAAMY,OAAO,GAAG,2BAA2B,CAAA;AACpC,MAAMC,UAAU,GAAG,QAAiB;AAE3CjB,+BAA+B,CAACgB,OAAO,EAAEC,UAAU,CAAC;;ACTpD;AACA;AACA;MACaC,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;AAChC;AACJ;AACA;AACIC,EAAAA,OAAO,EAAE,SAAS;AAClB;AACJ;AACA;AACIC,EAAAA,QAAQ,EAAE,UAAU;AACpB;AACJ;AACA;AACA;AACIC,EAAAA,YAAY,EAAE,cAAc;AAC5B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,EAAAA,UAAU,EAAE,YAAY;AACxB;AACJ;AACA;AACA;AACIC,EAAAA,gBAAgB,EAAE,kBAAkB;AACpC;AACJ;AACA;AACA;AACIC,EAAAA,OAAO,EAAE,SAAA;AACb,CAAC,EAAC;;AAEF;AACA;AACA;;ACjCO,MAAMC,YAAY,SAASC,KAAK,CAAC;EACpCC,IAAI,CAAA;EACJC,QAAQ,CAAA;AAERC,EAAAA,WAAWA,CAACC,OAAe,EAAEH,IAAe,EAAEI,OAAiB,EAAE;IAC7D,KAAK,CAACD,OAAO,CAAC,CAAA;IACd,IAAI,CAACH,IAAI,GAAGA,IAAI,CAAA;AAChB,IAAA,IAAI,CAACC,QAAQ,GAAGG,OAAO,EAAEH,QAAQ,CAAA;AACrC,GAAA;AACJ;;;;;;;"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Shared Perseus infrastructure",
4
4
  "author": "Khan Academy",
5
5
  "license": "MIT",
6
- "version": "1.4.1",
6
+ "version": "1.5.0",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -18,6 +18,9 @@
18
18
  "module": "dist/es/index.js",
19
19
  "main": "dist/index.js",
20
20
  "source": "src/index.ts",
21
+ "files": [
22
+ "dist"
23
+ ],
21
24
  "scripts": {
22
25
  "test": "bash -c 'yarn --silent --cwd \"../..\" test ${@:0} $($([[ ${@: -1} = -* ]] || [[ ${@: -1} = bash ]]) && echo $PWD)'"
23
26
  },
package/.babelrc.js DELETED
@@ -1,8 +0,0 @@
1
- /**
2
- * HACK(kevinb): Due to https://github.com/facebook/jest/issues/11741,
3
- * we need to have this file, or updating inline snapshots can fail rather
4
- * cryptically.
5
- *
6
- * We should remove this when jest is fixed.
7
- */
8
- module.exports = require("../../config/build/babel.config");
package/.eslintrc.js DELETED
@@ -1,12 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-var-requires */
2
- /* eslint-disable import/no-commonjs */
3
- const path = require("path");
4
-
5
- module.exports = {
6
- rules: {
7
- "import/no-extraneous-dependencies": [
8
- "error",
9
- {packageDir: [__dirname, path.join(__dirname, "../../")]},
10
- ],
11
- },
12
- };
package/CHANGELOG.md DELETED
@@ -1,85 +0,0 @@
1
- # @khanacademy/perseus-core
2
-
3
- ## 1.4.1
4
-
5
- ### Patch Changes
6
-
7
- - [#860](https://github.com/Khan/perseus/pull/860) [`1f4e17ba`](https://github.com/Khan/perseus/commit/1f4e17ba77e1491523813655af18a70285a25989) Thanks [@nixterrimus](https://github.com/nixterrimus)! - Add hover states in label-image widget
8
-
9
- * [#848](https://github.com/Khan/perseus/pull/848) [`8857950b`](https://github.com/Khan/perseus/commit/8857950bdeeb6e13bc3766b1c6545289b21cbe2a) Thanks [@nixterrimus](https://github.com/nixterrimus)! - Add analytics for label image
10
-
11
- ## 1.4.0
12
-
13
- ### Minor Changes
14
-
15
- - [#794](https://github.com/Khan/perseus/pull/794) [`a91c84fe`](https://github.com/Khan/perseus/commit/a91c84fe53827ff4333220777a9918882b7fe9f0) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Removing the useV2Keypad apiOption as the V1 keypad is no longer in use.
16
-
17
- ### Patch Changes
18
-
19
- - [#814](https://github.com/Khan/perseus/pull/814) [`105d2060`](https://github.com/Khan/perseus/commit/105d20603d935d35cff237b17f0bfb57ca751e4c) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Minor build change to how we provide Typescript type definitions (should be no change to build output).
20
-
21
- ## 1.3.0
22
-
23
- ### Minor Changes
24
-
25
- - [#783](https://github.com/Khan/perseus/pull/783) [`79403e06`](https://github.com/Khan/perseus/commit/79403e06eedb597d7818d6c858bbba6f51ff3fe1) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Adds 'widgetId' to the 'perseus:widget-rendering-error' analytics event.
26
-
27
- ## 1.2.0
28
-
29
- ### Minor Changes
30
-
31
- - [#780](https://github.com/Khan/perseus/pull/780) [`376eb0e4`](https://github.com/Khan/perseus/commit/376eb0e4aaaa4c7a90fd6107a84bb74d382b077c) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Added 'perseus:widget-rendering-error' analytics event.
32
-
33
- ## 1.1.2
34
-
35
- ### Patch Changes
36
-
37
- - 22a9c408: Fix bug caused by package version diagnostics
38
-
39
- ## 1.1.1
40
-
41
- ### Patch Changes
42
-
43
- - 55d4cd00: Print package name and version when loaded in the page
44
-
45
- ## 1.1.0
46
-
47
- ### Minor Changes
48
-
49
- - 4f4fe4f9: Added new analytics event "perseus:expression-focused"
50
-
51
- ## 1.0.0
52
-
53
- ### Major Changes
54
-
55
- - 2af4f9fa: Switch from using ProvideKeypad in ArticleRenderer to passing the keypad element down instead
56
-
57
- ## 0.2.0
58
-
59
- ### Minor Changes
60
-
61
- - dd800c22: Rename analytics prop from onEvent to onAnalyticsEvent
62
-
63
- ## 0.1.1
64
-
65
- ### Patch Changes
66
-
67
- - 57f75510: Commented RendererInterface
68
-
69
- ## 0.1.0
70
-
71
- ### Minor Changes
72
-
73
- - b4c06409: Add perseus-core to changeset
74
-
75
- ## 0.0.2
76
-
77
- ### Patch Changes
78
-
79
- - 71c631ea: Add keypad opened and closed analytics events
80
-
81
- ## 0.0.1
82
-
83
- ### Patch Changes
84
-
85
- - 1f3fdc6c: Introducing `perseus-core` for types and functionality shared across the Perseus ecosystem
package/src/analytics.ts DELETED
@@ -1,64 +0,0 @@
1
- export type VirtualKeypadVersion =
2
- | "MATH_INPUT_KEYPAD_V2"
3
- | "REACT_NATIVE_KEYPAD";
4
-
5
- /**
6
- * A type union of all the events that any package in the Perseus ecosystem can
7
- * send.
8
- */
9
- export type PerseusAnalyticsEvent =
10
- | {
11
- type: "perseus:expression-evaluated";
12
- payload: {
13
- virtualKeypadVersion: VirtualKeypadVersion;
14
- result: "correct" | "incorrect" | "invalid";
15
- };
16
- }
17
- | {
18
- type: "perseus:expression-focused";
19
- payload: null;
20
- }
21
- | {
22
- type: "perseus:widget-rendering-error";
23
- payload: {
24
- widgetType: string;
25
- widgetId: string;
26
- };
27
- }
28
- | {
29
- type: "perseus:label-image:toggle-answers-hidden";
30
- payload: null;
31
- }
32
- | {
33
- type: "perseus:label-image:marker-interacted-with";
34
- payload: null;
35
- }
36
- | {
37
- type: "perseus:label-image:choiced-interacted-with";
38
- payload: null;
39
- }
40
- | {
41
- type: "math-input:keypad-closed";
42
- payload: {
43
- virtualKeypadVersion: VirtualKeypadVersion;
44
- };
45
- }
46
- | {
47
- type: "math-input:keypad-opened";
48
- payload: {
49
- virtualKeypadVersion: VirtualKeypadVersion;
50
- };
51
- };
52
-
53
- // Add more events here as needed. Note that each event should have a `type`
54
- // key and a payload that varies by type.
55
- // | {type: "b"; payload: {name: string}};
56
- //
57
- // Event types should be formatted as "package-name:event-name" (where the
58
- // package name is the name of the package that emits the event without the
59
- // `@khanacademy/` prefix and then the name of the event.)
60
-
61
- /** A function that is called when Perseus emits an analytics event. */
62
- export type AnalyticsEventHandlerFn = (
63
- event: PerseusAnalyticsEvent,
64
- ) => Promise<void>;
package/src/index.ts DELETED
@@ -1,11 +0,0 @@
1
- export type {PerseusAnalyticsEvent, AnalyticsEventHandlerFn} from "./analytics";
2
- export type {
3
- KEScore,
4
- KeypadContextRendererInterface,
5
- RendererInterface,
6
- } from "./types";
7
-
8
- // Careful, `version.ts` uses this function so it _must_ be imported above it
9
- export {addLibraryVersionToPerseusDebug} from "./utils/add-library-version-to-perseus-debug";
10
-
11
- export {libVersion} from "./version";
package/src/types.ts DELETED
@@ -1,30 +0,0 @@
1
- // Types that can be shared between Perseus packages
2
- // ideally without causing circular dependencies
3
-
4
- // Used by KeypadContext to pass around a renderer reference
5
- export interface KeypadContextRendererInterface {
6
- blur(): void;
7
- }
8
-
9
- // TODO: this should be typed
10
- type State = any;
11
-
12
- // Interfact currently only implemented by
13
- // ServerItemRenderer
14
- export interface RendererInterface {
15
- getSerializedState(): State;
16
- restoreSerializedState(state: State, callback?: () => void): void;
17
- scoreInput(): KEScore;
18
- blur(): void;
19
- focus(): boolean | null | undefined;
20
- props: any;
21
- }
22
-
23
- export type KEScore = {
24
- empty: boolean;
25
- correct: boolean;
26
- message?: string | null | undefined;
27
- suppressAlmostThere?: boolean | null | undefined;
28
- guess: any;
29
- state: any;
30
- };
@@ -1,109 +0,0 @@
1
- import {addLibraryVersionToPerseusDebug} from "./add-library-version-to-perseus-debug";
2
-
3
- describe("add-library-version-to-perseus-debug", () => {
4
- beforeEach(() => {
5
- delete globalThis.__perseus_debug__;
6
- });
7
-
8
- it("should add the given library to __perseus_debug__", () => {
9
- // Array
10
-
11
- // Act
12
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
13
-
14
- // Assert
15
- expect(globalThis.__perseus_debug__).toMatchInlineSnapshot(`
16
- {
17
- "test-lib": "v1.0.0",
18
- }
19
- `);
20
- });
21
-
22
- it("should extend __perseus_debug__ when multiple libraries registered", () => {
23
- // Arrange
24
-
25
- // Act
26
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
27
- addLibraryVersionToPerseusDebug("sample-lib", "2.0.0");
28
- addLibraryVersionToPerseusDebug("utility-lib", "3.0.0");
29
-
30
- // Assert
31
- expect(globalThis.__perseus_debug__).toMatchInlineSnapshot(`
32
- {
33
- "sample-lib": "v2.0.0",
34
- "test-lib": "v1.0.0",
35
- "utility-lib": "v3.0.0",
36
- }
37
- `);
38
- });
39
-
40
- it("should convert library entry to array when multiple versions of the same library registered", () => {
41
- // Arrange
42
- jest.spyOn(console, "warn").mockImplementation();
43
-
44
- // Act
45
- addLibraryVersionToPerseusDebug("test-lib", "1.0.1");
46
- addLibraryVersionToPerseusDebug("test-lib", "4.1.8");
47
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
48
- addLibraryVersionToPerseusDebug("test-lib", "2.0.0");
49
-
50
- // Assert
51
- expect(globalThis.__perseus_debug__).toMatchInlineSnapshot(`
52
- {
53
- "test-lib": [
54
- "v1.0.0",
55
- "v1.0.1",
56
- "v2.0.0",
57
- "v4.1.8",
58
- ],
59
- }
60
- `);
61
- });
62
-
63
- it("should warn when multiple versions of the same library registered", () => {
64
- // Arrange
65
- const warnSpy = jest.spyOn(console, "warn").mockImplementation();
66
-
67
- // Act
68
- addLibraryVersionToPerseusDebug("test-lib", "1.0.1");
69
- addLibraryVersionToPerseusDebug("test-lib", "4.1.8");
70
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
71
- addLibraryVersionToPerseusDebug("test-lib", "2.0.0");
72
-
73
- // Assert
74
- expect(warnSpy).toHaveBeenCalledWith(
75
- expect.stringMatching(
76
- /Multiple versions of test-lib loaded on this page/,
77
- ),
78
- );
79
- });
80
-
81
- it("should not register duplicates for duplicate calls of the same library and version", () => {
82
- // Arrange
83
-
84
- // Act
85
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
86
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
87
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
88
-
89
- // Assert
90
- expect(globalThis.__perseus_debug__).toMatchInlineSnapshot(`
91
- {
92
- "test-lib": "v1.0.0",
93
- }
94
- `);
95
- });
96
-
97
- it("should not warn for duplicate calls for a library of the same library and version", () => {
98
- // Arrange
99
- const warnSpy = jest.spyOn(console, "warn").mockImplementation();
100
-
101
- // Act
102
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
103
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
104
- addLibraryVersionToPerseusDebug("test-lib", "1.0.0");
105
-
106
- // Assert
107
- expect(warnSpy).not.toHaveBeenCalled();
108
- });
109
- });
@@ -1,52 +0,0 @@
1
- /**
2
- * Adds the given perseus library version information to the __perseus_debug__
3
- * object and ensures that the object is attached to `globalThis` (`window` in
4
- * browser environments).
5
- *
6
- * This allows each library to provide runtime version information to assist in
7
- * debugging in production environments.
8
- */
9
- export const addLibraryVersionToPerseusDebug = (
10
- libraryName: string,
11
- libraryVersion: string,
12
- ) => {
13
- // If the library version is the default value, then we don't want to
14
- // prefix it with a "v" to indicate that it is a version number.
15
- let prefix = "v";
16
- if (libraryVersion === "__lib_version__") {
17
- prefix = "";
18
- }
19
- const formattedVersion = `${prefix}${libraryVersion}`;
20
-
21
- if (typeof globalThis !== "undefined") {
22
- globalThis.__perseus_debug__ = globalThis.__perseus_debug__ ?? {};
23
-
24
- const existingVersionEntry = globalThis.__perseus_debug__[libraryName];
25
- if (existingVersionEntry) {
26
- // If we already have an entry and it doesn't match the registered
27
- // version, we morph the entry into an array and log a warning.
28
- if (existingVersionEntry !== formattedVersion) {
29
- // Existing entry might be an array already (oops, at least 2
30
- // versions of the library already loaded!).
31
- const allVersions = Array.isArray(existingVersionEntry)
32
- ? existingVersionEntry
33
- : [existingVersionEntry];
34
- allVersions.push(formattedVersion);
35
-
36
- globalThis.__perseus_debug__[libraryName] = allVersions;
37
-
38
- // eslint-disable-next-line no-console
39
- console.warn(
40
- `Multiple versions of ${libraryName} loaded on this page: ${allVersions
41
- .sort()
42
- .join(", ")}`,
43
- );
44
- }
45
- } else {
46
- globalThis.__perseus_debug__[libraryName] = formattedVersion;
47
- }
48
- } else {
49
- // eslint-disable-next-line no-console
50
- console.warn(`globalThis not found found (${formattedVersion})`);
51
- }
52
- };
package/src/version.ts DELETED
@@ -1,10 +0,0 @@
1
- // This file is processed by a Rollup plugin (replace) to inject the production
2
- // version number during the release build.
3
- // In dev, you'll never see the version number.
4
-
5
- import {addLibraryVersionToPerseusDebug} from "./utils/add-library-version-to-perseus-debug";
6
-
7
- const libName = "@khanacademy/perseus-core";
8
- export const libVersion = "__lib_version__";
9
-
10
- addLibraryVersionToPerseusDebug(libName, libVersion);
@@ -1,19 +0,0 @@
1
- {
2
- "extends": "../tsconfig-shared.json",
3
- "compilerOptions": {
4
- "outDir": "./dist",
5
- "rootDir": "src",
6
- "paths": {
7
- // NOTE(kevinb): We have to repeat this here because TS doesn't do
8
- // intelligent merge of tsconfig.json files when using `extends`.
9
- "@khanacademy/*": [
10
- "../*/src"
11
- ]
12
- }
13
- },
14
- "references": [
15
- /* Add in-repo pacakge references here, like this:
16
- {"path": "../path/to/package/tsconfig-build.json"}
17
- */
18
- ]
19
- }
@@ -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.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.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.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.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.es2020.number.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.es2016.full.d.ts","./src/analytics.ts","./src/types.ts","./src/utils/add-library-version-to-perseus-debug.ts","./src/version.ts","./src/index.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","./types/aphrodite.d.ts","./types/assets.d.ts","./types/hubble.d.ts","./types/jsdiff.d.ts","./types/raphael.d.ts","./types/utility.d.ts","../../node_modules/@types/aria-query/index.d.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/assert.d.ts","../../node_modules/@types/node/assert/strict.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/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/dom-events.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/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.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/wasi.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/index.d.ts","../../node_modules/@types/connect/index.d.ts","../../node_modules/@types/body-parser/index.d.ts","../../node_modules/@types/bonjour/index.d.ts","../../node_modules/@types/range-parser/index.d.ts","../../node_modules/@types/qs/index.d.ts","../../node_modules/@types/connect-history-api-fallback/node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/@types/connect-history-api-fallback/index.d.ts","../../node_modules/@types/cross-spawn/index.d.ts","../../node_modules/@types/detect-port/index.d.ts","../../node_modules/@types/doctrine/index.d.ts","../../node_modules/@types/ejs/index.d.ts","../../node_modules/@types/emscripten/index.d.ts","../../node_modules/@types/escodegen/index.d.ts","../../node_modules/@types/eslint/helpers.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/eslint/index.d.ts","../../node_modules/@types/eslint-scope/index.d.ts","../../node_modules/@types/send/node_modules/@types/mime/index.d.ts","../../node_modules/@types/send/index.d.ts","../../node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/@types/http-errors/index.d.ts","../../node_modules/@types/mime/Mime.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/find-cache-dir/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/html-minifier-terser/index.d.ts","../../node_modules/@types/http-proxy/index.d.ts","../../node_modules/@types/is-ci/node_modules/ci-info/index.d.ts","../../node_modules/@types/is-ci/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/expect/node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/expect/node_modules/@jest/schemas/build/index.d.ts","../../node_modules/expect/node_modules/pretty-format/build/index.d.ts","../../node_modules/expect/node_modules/jest-diff/build/index.d.ts","../../node_modules/expect/node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/jquery/JQueryStatic.d.ts","../../node_modules/@types/jquery/JQuery.d.ts","../../node_modules/@types/jquery/misc.d.ts","../../node_modules/@types/jquery/legacy.d.ts","../../node_modules/@types/sizzle/index.d.ts","../../node_modules/@types/jquery/index.d.ts","../../node_modules/@types/parse5/lib/tree-adapters/default.d.ts","../../node_modules/@types/parse5/index.d.ts","../../node_modules/@types/tough-cookie/index.d.ts","../../node_modules/@types/jsdom/base.d.ts","../../node_modules/@types/jsdom/ts4.0/index.d.ts","../../node_modules/@types/jsdom/index.d.ts","../../node_modules/@types/json5/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/mdx/types.d.ts","../../node_modules/@types/mdx/index.d.ts","../../node_modules/@types/mime-types/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/node-fetch/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/parse-json/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/pretty-hrtime/index.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/react-transition-group/Transition.d.ts","../../node_modules/@types/react-transition-group/CSSTransition.d.ts","../../node_modules/@types/react-transition-group/TransitionGroup.d.ts","../../node_modules/@types/react-transition-group/SwitchTransition.d.ts","../../node_modules/@types/react-transition-group/config.d.ts","../../node_modules/@types/react-transition-group/index.d.ts","../../node_modules/@types/resolve/index.d.ts","../../node_modules/@types/retry/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/serve-index/index.d.ts","../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../node_modules/@types/sockjs/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/testing-library__jest-dom/matchers.d.ts","../../node_modules/@types/testing-library__jest-dom/index.d.ts","../../node_modules/@types/underscore/index.d.ts","../../node_modules/@types/unist/index.d.ts","../../node_modules/@types/ws/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts","../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"2dfbb27de6bf0db1018122b054d26cf1fc47bc1979d096aec101b08a42c63b13",{"version":"d81b9fba6968059fe967684de0d87373b5eaf4014b2325e56646a90a514508f6","signature":"30369d2114b141ecfeb15d64190371cb868a6190b1d80a563bf5816b6772ede6"},{"version":"7cafedcb0a085549539309be4c39da951a134bfb6f2b5aa00d3c05458b35ea3e","signature":"58b905d0c7f042660b9c9a49400f06515f806b44646f2048308029b524a2c5a6"},{"version":"db1f4abeadaea283581b418d8097fd8175ca7fa1d9e481cebdd63ae7458dfcd4","signature":"97d42d4332ec94afd5aae9318a21ac5bbb8fda10c719282d3a0f53d3cef83e32"},{"version":"21b25a1488e9517d2ba18c72cf735a5e59afb424575735f8c625b3fa163a29c7","signature":"ddc281c37e4be5c6a450b5d0d74a89fb041ecba2d9bfd34f3869488e92f2a495"},{"version":"8986552eaad578cb418755d1736109729b1c47d3d4d54846dbf08fd3f6e29ed5","signature":"952545fecba997842b1c3c573f59356d349c24941216706be8bfcd5fa6e498f4"},{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"4c68749a564a6facdf675416d75789ee5a557afda8960e0803cf6711fa569288","8c6aac56e9dddb1f02d8e75478b79da0d25a1d0e38e75d5b8947534f61f3785e","5f8f00356f6a82e21493b2d57b2178f11b00cf8960df00bd37bdcae24c9333ca",{"version":"51da54ddc920585f6f7ad98b6ba9916dfbb42ce4b8a872fd4f9a4cc93491f404","affectsGlobalScope":true},"80bf2d65930700aa5ab33d87e073c14e2f92c121ff492a46f7365bc9ad454566",{"version":"d9f662e1ab29cb98ba13723ab3efcbf6c0cad3edc8081071197935cb91dea636","affectsGlobalScope":true},"b04fc8bb50157c7def1b0b87a86a353d4f29b41b01e2d36b1b79ccaf1af83147","b5ae8664ca4f6bea8f4280758ac550f18f6ae1c63e1465f805a85bbec5601025","cc83d06659665af854af51145672028ecf3df00200dab93048c89b5eabb3d0fe",{"version":"ae14b3079eafca36309e6db62f65fc3977e12092cf738eff34f5eca3d139bed2","affectsGlobalScope":true},"5024433f8da3a7968f6d12cffd32f2cefae4442a9ad1c965fa2d23342338b700","f713064ca751dc588bc13832137c418cb70cf0446de92ade60ad631071558fca","7a1f3d0b8dd0e869c58b44848d9f0be3592c3ff6dc77091e7130306f6d2907ed","96c23535f4f9dd15beb767e070559ea672f6a35f103152836a67100605136a96","670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","29a46d003ca3c721e6405f00dee7e3de91b14e09701eba5d887bf76fb2d47d38","3df59a50b6fdd703016b81e254633080b3fa1e9035a462e730235876470d0012","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"54ba7456adb777a685250cd144115ea51379784012ba1311255b715c6bdcff2a","affectsGlobalScope":true},"11e2d554398d2bd460e7d06b2fa5827a297c8acfbe00b4f894a224ac0862857f",{"version":"e193e634a99c9c1d71f1c6e4e1567a4a73584328d21ea02dd5cddbaad6693f61","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","e596c9bb2f29a2699fdd4ae89139612652245192f67f45617c5a4b20832aaae9","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","216717f17c095cde1dc19375e1ab3af0a4a485355860c077a4f9d6ea59fab5b5","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"80473bd0dd90ca1e166514c2dfead9d5803f9c51418864ca35abbeec6e6847e1","1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","e6c86d83bd526c8bdb5d0bf935b8e72ce983763d600743f74d812fdf4abf4df6","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","7d55d78cd47cf5280643b53434b16c2d9d11d144126932759fbdd51da525eec4","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","f69ff39996a61a0dd10f4bce73272b52e8024a4d58b13ab32bf4712909d0a2b7",{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","c4577fb855ca259bdbf3ea663ca73988ce5f84251a92b4aef80a1f4122b6f98e","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"ff07a9a03c65732ccc59b3c65bc584173da093bd563a6565411c01f5703bd3cb","affectsGlobalScope":true},"6de4a219df57d2b27274d59b67708f13c2cbf7ed211abe57d8f9ab8b25cde776","a5edeccc71da079d52df5b6492f577d0131c102fc6296632a04f3dd07247911b","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"d8d555f3d607ecaa18d55de6995ea8f206342ecc93305919eac945c7c78c78c6","104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","d78e5898c8de5e0f934eee83f680262de005caa268d137101b833fd932f95e07","2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed","fedd311d427fdafac411b4e0edc0d1014668853679e021e04717a6de45ff5c0c",{"version":"c5dd1fef4cd4aaffc78786047bed5ae6fc1200d19a1946cbc4e2d3ed4d62c8fa","affectsGlobalScope":true},"56cbe80e6c42d7e6e66b6f048add8b01c663797b843a074d9f19c4a3d63a269a","56a7c3edfea83c399e455abf803b6d9387da5838b1bcb9e34d7e68d4c2d9cb38","72dff7d18139f0d579db7e4b904fb39f5740423f656edc1f84e4baa936b1fac0","febcc45f9517827496659c229a21b058831eef4cf9b71b77fd9a364ae12c3b9e","f2a60d253f7206372203b736144906bf135762100a2b3d1b415776ebf6575d07",{"version":"fa4546e9b67dbdcc0fa8d8653c6b89d49b9e7b637b3340bea78107ca161595fa","affectsGlobalScope":true},"9dffc5c0859e5aeba5e40b079d2f5e8047bdff91d0b3477d77b6fb66ee76c99d",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","df95e00612c1faa5e0e7ef0dba589b18665bbeb3221db2b6cee1fe4d0e61921f","1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe","d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a",{"version":"4d0536bbf67bc4301ebb5154eeb38168db0f7b34c490a80b6fa41bc6b751bcb4","affectsGlobalScope":true},"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","d2a38ad7bb4676e7fd5d058a08105d81ac232c363ee56be0b401fc277d50dbb1","2ac2e08e0d0ed266849cb9da521c3be170a8bc111d25eeeb668c7dbf0ac4171a","34118be360cdd3381bbebbfd4b093c394460c8fc5df40688d58f45d86ab1448b","43cdd474c5aa3340da4816bb8f1ae7f3b1bcf9e70d997afc36a0f2c432378c84","19f1159e1fa24300e2eaf72cb53f0815f5879ec53cad3c606802f0c55f0917e9","afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","ee65fe452abe1309389c5f50710f24114e08a302d40708101c4aa950a2a7d044","54c9959f2d8ba97a5fcc4345ac2fca6f1bc20fe5764570b7fef37bea107bc70b","913754f9281683f22d98d0ba7796896cee30c302baefa3dda69f61af8de244d8","a3e5b8b86e7bd38d9afdc294875c4445c535319e288d3a13c1e2e41f9af934f2","035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","6c1e688f95fcaf53b1e41c0fdadf2c1cfc96fa924eaf7f9fdb60f96deb0a4986","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","6cffc933aac260d5ac5d45a00b35454c98edbb6c0e80b964871b268cc199a871","43883cf3635bb1846cbdc6c363787b76227677388c74f7313e3f0edb380840fa","2d47012580f859dae201d2eef898a416bdae719dffc087dfd06aefe3de2f9c8d","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","2cec1a31729b9b01e9294c33fc9425d336eff067282809761ad2e74425d6d2a5","2d47012580f859dae201d2eef898a416bdae719dffc087dfd06aefe3de2f9c8d",{"version":"458e2fd1185e659cb800ef68d01ef77de70dcab8860bedf6d94eaebe736751f1","affectsGlobalScope":true},{"version":"115761f64ad832d1c1d25b6d88968dbcbd9f041f26dcf4fee24c72f1877676ab","affectsGlobalScope":true},{"version":"fa0c33084cd3ff947ba61f0f6e3082eb0642482875d0600e1d555323f40bdb8e","affectsGlobalScope":true},{"version":"201995bd39718f4a520a5e89b0a378bc12821478d4ea46c70520728d6d79e7e4","affectsGlobalScope":true},{"version":"6f1f78e8c2a5c7cd2c38aa9cc5da26d9c039f2bbfa753f2a0a54ce41c4dff8d0","affectsGlobalScope":true},"ec89427601297d439c961528832a75017d9356bec2ee42c1d16f2274590d9330","2b1af4170f6dfa90f43d2fe3d6c36f95b7fa121aa434a2acefb763d7be460a53","fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","5f2c582b9ef260cb9559a64221b38606378c1fabe17694592cdfe5975a6d7efa","cc256fd958b33576ed32c7338c64adb0d08fc0c2c6525010202fab83f32745da","fd20dfa2434a61a87e3fa9450f9de2ed2c365ea43b17b34ac6616d90d9681381","389303117a81e90897689e7adb4b53a062e68a6fe4067088fae9552907aa28c3",{"version":"d4c4fe14b23180acf25e4a68dc3bb9e5c38233dd3de12a4ab9569e636090ac9b","affectsGlobalScope":true},"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","32ab25b7b28b24a138d879ca371b18c8fdfdd564ad5107e1333c5aa5d5fea494","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","b82fc740467e59abe3d6170417e461527d2a95610f55915fc59557c4b7be55ba","45b6a651b5e502cdfa93dc2f23779752def4ada323ebcfc34e4a4d22e9589971","54f1d17f9f484650cd49b53d9a6ba75593955a9ead093628888a37407b6ecd51","169cc96316cacf8b489aaab4ac6bcef7b33e8779a8902bce57c737b4aa372d16","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","4340936f4e937c452ae783514e7c7bbb7fc06d0c97993ff4865370d0962bb9cf","5009c081fd8ca3fcd6f3adcd071a1c79a933a400532b897822aad0943688a1f1","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","429b6df7d7b94389bd42cfdf39bccea903acd3628498cec6172302801fbeac89","d7c30ea636d7d7cbeba0795baa8ec1bbd06274bd19a23ec0d7c84d0610a5f0c7","b567296d1820a1e50b6522c99a4f272c70eb2cba690da6e64a25635b70b1383f","332c7ccf95426d3156ebedb7295979ef2435bd1c1a940024a4d068da3418718f","e03334588c63840b7054accd0b90f29c5890db6a6555ac0869a78a23297f1396","c3052485f32a96bfde75a2976c1238995522584ba464f04ff16a8a40af5e50d1","c220410b8e956fa157ce4e5e6ac871f0f433aa120c334d906ff1f5e2c7369e95","960a68ced7820108787135bdae5265d2cc4b511b7dcfd5b8f213432a8483daf1","5e8db4872785292074b394d821ae2fc10e4f8edc597776368aebbe8aefb24422","8a19491eba2108d5c333c249699f40aff05ad312c04a17504573b27d91f0aede","199f9ead0daf25ae4c5632e3d1f42570af59685294a38123eef457407e13f365","0c681cfae79b859ed0c5ddc1160c0ea0a529f5d81b3488fb0641105bd8757200","cc0700b1b97e18a3d5d9184470502d8762ec85158819d662730c3a8c5d702584","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","f77ff4cd234d3fd18ddd5aeadb6f94374511931976d41f4b9f594cb71f7ce6f3","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","4f18b4e6081e5e980ef53ddf57b9c959d36cffe1eb153865f512a01aeffb5e1e","7f17d4846a88eca5fe71c4474ef687ee89c4acf9b5372ab9b2ee68644b7e0fe0","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","85f8ebd7f245e8bf29da270e8b53dcdd17528826ffd27176c5fc7e426213ef5a","acebfe99678cf7cddcddc3435222cf132052b1226e902daac9fbb495c321a9b5","550650516d34048712520ffb1fce4a02f2d837761ee45c7d9868a7a35e7b0343","82b1f9a6eefef7386aebe22ac49f23b806421e82dbf35c6e5b7132d79e4165da","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","bd0f4458d57115491a1dd9fe522fa1d6ffe45a85b12bbd463967f90b50e43c29",{"version":"06279f0df6f368af41fe267319e90b5af9d89ad489d1662164b94ce30a797c79","affectsGlobalScope":true},{"version":"0609dda5350cd6d8c42daef710dffe3b51521ffbd00109e234f7bfb7533194e7","affectsGlobalScope":true},"6d09838b65c3c780513878793fc394ae29b8595d9e4729246d14ce69abc71140","77c5c7f8578d139c74102a29384f5f4f0792a12d819ddcdcaf8307185ff2d45d","bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","610960e660271e158ba1656254569c3d72ff172a5eae5999f8970fadab3f86e5","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c"],"options":{"composite":true,"declaration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":1,"module":99,"noImplicitAny":false,"outDir":"./dist","rootDir":"./src","skipDefaultLibCheck":true,"skipLibCheck":true,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":false,"strictNullChecks":true,"strictPropertyInitialization":true,"target":3},"fileIdsList":[[64,116,178,179,180],[116,178,179,180],[64,65,66,67,68,116,178,179,180],[64,66,116,178,179,180],[89,116,123,124,178,179,180],[80,116,123,178,179,180],[115,116,123,129,178,179,180],[86,89,116,123,127,128,178,179,180],[89,116,123,178,179,180],[75,116,123,178,179,180],[116,138,140,178,179,180],[116,137,138,139,178,179,180],[86,89,116,123,127,128,143,178,179,180],[116,125,128,144,148,178,179,180],[87,116,123,178,179,180],[86,89,91,94,104,115,116,123,178,179,180],[116,154,178,179,180],[116,156,178,179,180],[116,157,178,179,180],[116,163,166,178,179,180],[116,162,178,179,180],[116,169,170,171,172,173,178,179,180],[86,116,118,123,176,177,179,180],[116,178,179],[116,178,180],[116,178,179,180,182,184,185,186,187,188,189,190,191,192,193,194],[116,178,179,180,182,183,185,186,187,188,189,190,191,192,193,194],[116,178,179,180,183,184,185,186,187,188,189,190,191,192,193,194],[116,178,179,180,182,183,184,186,187,188,189,190,191,192,193,194],[116,178,179,180,182,183,184,185,187,188,189,190,191,192,193,194],[116,178,179,180,182,183,184,185,186,188,189,190,191,192,193,194],[116,178,179,180,182,183,184,185,186,187,189,190,191,192,193,194],[116,178,179,180,182,183,184,185,186,187,188,190,191,192,193,194],[116,178,179,180,182,183,184,185,186,187,188,189,191,192,193,194],[116,178,179,180,182,183,184,185,186,187,188,189,190,192,193,194],[116,178,179,180,182,183,184,185,186,187,188,189,190,191,193,194],[116,178,179,180,182,183,184,185,186,187,188,189,190,191,192,194],[116,178,179,180,182,183,184,185,186,187,188,189,190,191,192,193],[116,178,179,180,195,196],[116,147,178,179,180],[116,146,178,179,180],[89,115,116,123,178,179,180,199,200],[89,104,116,123,178,179,180],[70,116,178,179,180],[73,116,178,179,180],[74,79,107,116,178,179,180],[75,86,87,94,104,115,116,178,179,180],[75,76,86,94,116,178,179,180],[77,116,178,179,180],[78,79,87,95,116,178,179,180],[79,104,112,116,178,179,180],[80,82,86,94,116,178,179,180],[81,116,178,179,180],[82,83,116,178,179,180],[86,116,178,179,180],[84,86,116,178,179,180],[86,87,88,104,115,116,178,179,180],[86,87,88,101,104,107,116,178,179,180],[116,120,178,179,180],[82,89,94,104,115,116,178,179,180],[86,87,89,90,94,104,112,115,116,178,179,180],[89,91,104,112,115,116,178,179,180],[70,71,72,73,74,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,117,118,119,120,121,122,178,179,180],[86,92,116,178,179,180],[93,115,116,178,179,180],[82,86,94,104,116,178,179,180],[95,116,178,179,180],[96,116,178,179,180],[73,97,116,178,179,180],[98,114,116,120,178,179,180],[99,116,178,179,180],[100,116,178,179,180],[86,101,102,116,178,179,180],[101,103,116,118,178,179,180],[74,86,104,105,106,107,116,178,179,180],[74,104,106,116,178,179,180],[104,105,116,178,179,180],[107,116,178,179,180],[108,116,178,179,180],[86,110,111,116,178,179,180],[110,111,116,178,179,180],[79,94,104,112,116,178,179,180],[113,116,178,179,180],[94,114,116,178,179,180],[74,89,100,115,116,178,179,180],[79,116,178,179,180],[104,116,117,178,179,180],[116,118,178,179,180],[116,119,178,179,180],[74,79,86,88,97,104,115,116,118,120,178,179,180],[104,116,121,178,179,180],[116,175,178,179,180],[116,176,178,179,180],[56,116,178,179,180],[56,116,178,179,180,207],[116,178,179,180,207,208,209,210,211],[52,53,54,55,116,178,179,180],[116,123,178,179,180],[116,178,179,180,216,255],[116,178,179,180,216,240,255],[116,178,179,180,255],[116,178,179,180,216],[116,178,179,180,216,241,255],[116,178,179,180,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254],[116,178,179,180,241,255],[87,104,116,123,142,178,179,180],[87,116,149,178,179,180],[89,116,123,145,147,178,179,180],[116,168,178,179,180,260],[86,89,91,104,112,115,116,121,123,178,179,180],[116,178,179,180,265],[86,104,116,123,178,179,180],[116,159,165,178,179,180],[116,161,178,179,180],[116,163,178,179,180],[116,160,164,178,179,180],[47,48,49,50,116,178,179,180],[49,116,178,179,180],[47,48,49,50]],"referencedMap":[[66,1],[64,2],[161,2],[63,2],[69,3],[65,1],[67,4],[68,1],[125,5],[126,6],[130,7],[129,8],[124,9],[131,10],[132,2],[133,2],[134,2],[135,2],[136,2],[141,11],[137,2],[140,12],[138,2],[144,13],[149,14],[150,2],[151,15],[152,2],[145,2],[153,16],[155,17],[154,2],[156,2],[157,18],[158,19],[168,20],[167,21],[170,2],[169,2],[174,22],[172,2],[171,2],[178,23],[180,24],[179,25],[139,2],[181,2],[183,26],[184,27],[182,28],[185,29],[186,30],[187,31],[188,32],[189,33],[190,34],[191,35],[192,36],[193,37],[194,38],[196,39],[195,2],[197,2],[146,40],[147,41],[198,2],[200,2],[201,42],[199,43],[70,44],[71,44],[73,45],[74,46],[75,47],[76,48],[77,49],[78,50],[79,51],[80,52],[81,53],[82,54],[83,54],[85,55],[84,56],[86,55],[87,57],[88,58],[72,59],[122,2],[89,60],[90,61],[91,62],[123,63],[92,64],[93,65],[94,66],[95,67],[96,68],[97,69],[98,70],[99,71],[100,72],[101,73],[102,73],[103,74],[104,75],[106,76],[105,77],[107,78],[108,79],[109,2],[110,80],[111,81],[112,82],[113,83],[114,84],[115,85],[116,86],[117,87],[118,88],[119,89],[120,90],[121,91],[202,2],[203,2],[176,92],[175,93],[204,2],[205,2],[54,2],[128,2],[127,2],[206,94],[208,95],[210,94],[207,94],[209,95],[211,2],[212,96],[52,2],[56,97],[213,98],[214,2],[215,2],[55,2],[240,99],[241,100],[216,101],[219,101],[238,99],[239,99],[229,99],[228,102],[226,99],[221,99],[234,99],[232,99],[236,99],[220,99],[233,99],[237,99],[222,99],[223,99],[235,99],[217,99],[224,99],[225,99],[227,99],[231,99],[242,103],[230,99],[218,99],[255,104],[254,2],[249,103],[251,105],[250,103],[243,103],[244,103],[246,103],[248,103],[252,105],[253,105],[245,105],[247,105],[143,106],[142,2],[256,107],[148,108],[257,2],[173,2],[258,9],[259,2],[261,109],[260,2],[177,2],[262,2],[263,2],[264,110],[265,2],[266,111],[267,112],[160,2],[53,2],[166,113],[159,2],[162,114],[164,115],[165,116],[163,21],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[46,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[47,2],[51,117],[48,2],[49,2],[50,118],[57,94],[58,2],[59,2],[60,2],[61,2],[62,2]],"exportedModulesMap":[[66,1],[64,2],[161,2],[63,2],[69,3],[65,1],[67,4],[68,1],[125,5],[126,6],[130,7],[129,8],[124,9],[131,10],[132,2],[133,2],[134,2],[135,2],[136,2],[141,11],[137,2],[140,12],[138,2],[144,13],[149,14],[150,2],[151,15],[152,2],[145,2],[153,16],[155,17],[154,2],[156,2],[157,18],[158,19],[168,20],[167,21],[170,2],[169,2],[174,22],[172,2],[171,2],[178,23],[180,24],[179,25],[139,2],[181,2],[183,26],[184,27],[182,28],[185,29],[186,30],[187,31],[188,32],[189,33],[190,34],[191,35],[192,36],[193,37],[194,38],[196,39],[195,2],[197,2],[146,40],[147,41],[198,2],[200,2],[201,42],[199,43],[70,44],[71,44],[73,45],[74,46],[75,47],[76,48],[77,49],[78,50],[79,51],[80,52],[81,53],[82,54],[83,54],[85,55],[84,56],[86,55],[87,57],[88,58],[72,59],[122,2],[89,60],[90,61],[91,62],[123,63],[92,64],[93,65],[94,66],[95,67],[96,68],[97,69],[98,70],[99,71],[100,72],[101,73],[102,73],[103,74],[104,75],[106,76],[105,77],[107,78],[108,79],[109,2],[110,80],[111,81],[112,82],[113,83],[114,84],[115,85],[116,86],[117,87],[118,88],[119,89],[120,90],[121,91],[202,2],[203,2],[176,92],[175,93],[204,2],[205,2],[54,2],[128,2],[127,2],[206,94],[208,95],[210,94],[207,94],[209,95],[211,2],[212,96],[52,2],[56,97],[213,98],[214,2],[215,2],[55,2],[240,99],[241,100],[216,101],[219,101],[238,99],[239,99],[229,99],[228,102],[226,99],[221,99],[234,99],[232,99],[236,99],[220,99],[233,99],[237,99],[222,99],[223,99],[235,99],[217,99],[224,99],[225,99],[227,99],[231,99],[242,103],[230,99],[218,99],[255,104],[254,2],[249,103],[251,105],[250,103],[243,103],[244,103],[246,103],[248,103],[252,105],[253,105],[245,105],[247,105],[143,106],[142,2],[256,107],[148,108],[257,2],[173,2],[258,9],[259,2],[261,109],[260,2],[177,2],[262,2],[263,2],[264,110],[265,2],[266,111],[267,112],[160,2],[53,2],[166,113],[159,2],[162,114],[164,115],[165,116],[163,21],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[46,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[51,119],[57,94],[58,2],[59,2],[60,2],[61,2],[62,2]],"semanticDiagnosticsPerFile":[66,64,161,63,69,65,67,68,125,126,130,129,124,131,132,133,134,135,136,141,137,140,138,144,149,150,151,152,145,153,155,154,156,157,158,168,167,170,169,174,172,171,178,180,179,139,181,183,184,182,185,186,187,188,189,190,191,192,193,194,196,195,197,146,147,198,200,201,199,70,71,73,74,75,76,77,78,79,80,81,82,83,85,84,86,87,88,72,122,89,90,91,123,92,93,94,95,96,97,98,99,100,101,102,103,104,106,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,202,203,176,175,204,205,54,128,127,206,208,210,207,209,211,212,52,56,213,214,215,55,240,241,216,219,238,239,229,228,226,221,234,232,236,220,233,237,222,223,235,217,224,225,227,231,242,230,218,255,254,249,251,250,243,244,246,248,252,253,245,247,143,142,256,148,257,173,258,259,261,260,177,262,263,264,265,266,267,160,53,166,159,162,164,165,163,8,9,13,12,2,14,15,16,17,18,19,20,21,3,46,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,47,51,48,49,50,57,58,59,60,61,62],"latestChangedDtsFile":"./dist/index.d.ts"},"version":"4.9.5"}