From 587052b141443112173071e00dd86b928a6ba2d0 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Tue, 29 Aug 2023 09:15:33 -0700 Subject: [PATCH 001/550] resolve in dynamic imports to as root --- .gitignore | 7 +++++++ web/webpack.config.js | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/.gitignore b/.gitignore index 6a247983..d5b9e203 100644 --- a/.gitignore +++ b/.gitignore @@ -233,3 +233,10 @@ fabric.properties # JS node_modules/ + +# Visual Studio +.vscode/ + +# Miscellaneous +.local/ +.notes/ \ No newline at end of file diff --git a/web/webpack.config.js b/web/webpack.config.js index 5e6c2eb4..d6343006 100644 --- a/web/webpack.config.js +++ b/web/webpack.config.js @@ -6,6 +6,11 @@ module.exports = (env, argv) => { var config = { context: path.resolve(__dirname), entry: './index.js', + resolve: { + alias: { + '@': path.resolve(__dirname) // this sets '@/' as an alias for the root + } + }, output: { path: path.resolve(__dirname, 'dist'), filename: 'scripts/[name].js', From 81b32dafce3005b5766c0524cf17f5849fca28e9 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Tue, 29 Aug 2023 09:28:13 -0700 Subject: [PATCH 002/550] refactor root reference --- jsconfig.json | 9 +++ lib/DataHarmonizer.js | 24 +++--- lib/HelpSidebar.js | 2 +- lib/Toolbar.js | 9 ++- lib/editors/DateEditor.js | 2 +- lib/editors/DatetimeEditor.js | 2 +- lib/editors/TimeEditor.js | 2 +- lib/editors/index.js | 6 +- lib/index.js | 8 +- lib/toolbarGettingStarted.js | 28 +++---- lib/utils/fields.js | 2 +- lib/utils/templates.js | 135 ++++++++++++++++++++++++++++++++++ lib/utils/validation.js | 2 +- web/index.js | 10 +-- web/webpack.config.js | 2 +- 15 files changed, 194 insertions(+), 49 deletions(-) create mode 100644 jsconfig.json create mode 100644 lib/utils/templates.js diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 00000000..6dfe757c --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + } + }, + "exclude": ["node_modules"] +} diff --git a/lib/DataHarmonizer.js b/lib/DataHarmonizer.js index 1f38186b..19899076 100644 --- a/lib/DataHarmonizer.js +++ b/lib/DataHarmonizer.js @@ -3,8 +3,8 @@ import Handsontable from 'handsontable'; import $ from 'jquery'; import { utils as XlsxUtils, read as xlsxRead } from 'xlsx/xlsx.mjs'; -import { wait, isValidHeaderRow } from './utils/general'; -import { readFileAsync, updateSheetRange } from './utils/files'; +import { wait, isValidHeaderRow } from '@/lib/utils/general'; +import { readFileAsync, updateSheetRange } from '@/lib/utils/files'; import { changeCase, dataArrayToObject, @@ -14,8 +14,8 @@ import { parseMultivaluedValue, KEEP_ORIGINAL, JSON_SCHEMA_FORMAT, -} from './utils/fields'; -import { Datatypes } from './utils/datatypes'; +} from '@/lib/utils/fields'; +import { Datatypes } from '@/lib/utils/datatypes'; import { checkProvenance, itemCompare, @@ -23,23 +23,23 @@ import { validateValAgainstVocab, validateValsAgainstVocab, validateUniqueValues, -} from './utils/validation'; +} from '@/lib/utils/validation'; import 'handsontable/dist/handsontable.full.css'; -import './data-harmonizer.css'; +import '@/lib/data-harmonizer.css'; import '@selectize/selectize/dist/css/selectize.bootstrap4.css'; -import specifyHeadersModal from './specifyHeadersModal.html'; -import unmappedHeadersModal from './unmappedHeadersModal.html'; -import fieldDescriptionsModal from './fieldDescriptionsModal.html'; +import specifyHeadersModal from '@/lib/specifyHeadersModal.html'; +import unmappedHeadersModal from '@/lib/unmappedHeadersModal.html'; +import fieldDescriptionsModal from '@/lib/fieldDescriptionsModal.html'; -import HelpSidebar from './HelpSidebar'; +import HelpSidebar from '@/lib/HelpSidebar'; -import pkg from '../package.json'; +import pkg from '@/package.json'; const VERSION = pkg.version; const VERSION_TEXT = 'DataHarmonizer v' + VERSION; -import { DateEditor, DatetimeEditor, TimeEditor } from './editors'; +import { DateEditor, DatetimeEditor, TimeEditor } from '@/lib/editors'; Handsontable.cellTypes.registerCellType('dh.datetime', { editor: DatetimeEditor, diff --git a/lib/HelpSidebar.js b/lib/HelpSidebar.js index a8c13015..796ceba4 100644 --- a/lib/HelpSidebar.js +++ b/lib/HelpSidebar.js @@ -1,5 +1,5 @@ import $ from 'jquery'; -import './HelpSidebar.css'; +import '@/lib/HelpSidebar.css'; const DEFAULT_OPTIONS = { width: 300, diff --git a/lib/Toolbar.js b/lib/Toolbar.js index b45414c2..d40b0265 100644 --- a/lib/Toolbar.js +++ b/lib/Toolbar.js @@ -5,13 +5,14 @@ import 'bootstrap/js/dist/modal'; import '@selectize/selectize'; import '@selectize/selectize/dist/css/selectize.bootstrap4.css'; -import { exportFile, exportJsonFile, readFileAsync } from './utils/files'; +import { exportFile, exportJsonFile, readFileAsync } from '@/lib/utils/files'; -import template from './toolbar.html'; +import template from '@/lib/toolbar.html'; -import './toolbar.css'; +import '@/lib//toolbar.css'; -import pkg from '../package.json'; +// TODO: this is odd! package.json is a developer file. why should a UI component care about it? +import pkg from '@/package.json'; const VERSION = pkg.version; class Toolbar { diff --git a/lib/editors/DateEditor.js b/lib/editors/DateEditor.js index 6d50aa1d..8beb6b7c 100644 --- a/lib/editors/DateEditor.js +++ b/lib/editors/DateEditor.js @@ -1,4 +1,4 @@ -import FlatpickrEditor from './FlatpickrEditor'; +import FlatpickrEditor from '@/lib/editors/FlatpickrEditor'; class DateEditor extends FlatpickrEditor { getFlatpickrConfig() { diff --git a/lib/editors/DatetimeEditor.js b/lib/editors/DatetimeEditor.js index 6755272e..c0f82642 100644 --- a/lib/editors/DatetimeEditor.js +++ b/lib/editors/DatetimeEditor.js @@ -1,4 +1,4 @@ -import FlatpickrEditor from './FlatpickrEditor'; +import FlatpickrEditor from '@/lib/editors/FlatpickrEditor'; class DatetimeEditor extends FlatpickrEditor { getFlatpickrConfig() { diff --git a/lib/editors/TimeEditor.js b/lib/editors/TimeEditor.js index 81b43096..db482459 100644 --- a/lib/editors/TimeEditor.js +++ b/lib/editors/TimeEditor.js @@ -1,4 +1,4 @@ -import FlatpickrEditor from './FlatpickrEditor'; +import FlatpickrEditor from '@/lib/editors/FlatpickrEditor'; class TimeEditor extends FlatpickrEditor { getFlatpickrConfig() { diff --git a/lib/editors/index.js b/lib/editors/index.js index 6049317e..047e4dc0 100644 --- a/lib/editors/index.js +++ b/lib/editors/index.js @@ -1,3 +1,3 @@ -export { default as DateEditor } from './DateEditor'; -export { default as DatetimeEditor } from './DatetimeEditor'; -export { default as TimeEditor } from './TimeEditor'; +export { default as DateEditor } from '@/lib/editors/DateEditor'; +export { default as DatetimeEditor } from '@/lib/editors/DatetimeEditor'; +export { default as TimeEditor } from '@/lib/editors/TimeEditor'; diff --git a/lib/index.js b/lib/index.js index f61bb638..3066b3c9 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,4 +1,4 @@ -export { default as Footer } from './Footer'; -export { default as Toolbar } from './Toolbar'; -export { default as DataHarmonizer } from './DataHarmonizer'; -export { DATE_OBJECT, JSON_SCHEMA_FORMAT, INPUT_FORMAT } from './utils/fields'; +export { default as Footer } from '@/lib/Footer'; +export { default as Toolbar } from '@/lib/Toolbar'; +export { default as DataHarmonizer } from '@/lib/DataHarmonizer'; +export { DATE_OBJECT, JSON_SCHEMA_FORMAT, INPUT_FORMAT } from '@/lib/utils/fields'; diff --git a/lib/toolbarGettingStarted.js b/lib/toolbarGettingStarted.js index 4407fc97..73d2306f 100644 --- a/lib/toolbarGettingStarted.js +++ b/lib/toolbarGettingStarted.js @@ -3,20 +3,20 @@ // loaded locally, but it may cause a bit of concern for users of the // library bundle. I wonder if this type of documentation should be // externalized anyway to make it easier to update and customize. -import editCopyPasteDelete from './images/editCopyPasteDelete.gif'; -import changeTemplate from './images/changeTemplate.gif'; -import toggleRequiredCols from './images/toggleRequiredCols.gif'; -import doubleClickHeaders from './images/doubleClickHeaders.gif'; -import selectingVals from './images/selectingVals.gif'; -import validatingCells from './images/validatingCells.gif'; -import showRows from './images/showRows.gif'; -import showSection from './images/showSection.gif'; -import jumpToColumn from './images/jumpToColumn.gif'; -import fillColumn from './images/fillColumn.gif'; -import exportingFiles from './images/exportingFiles.gif'; -import provenance from './images/provenance.gif'; -import moreInfo from './images/moreInfo.gif'; -import versionUpdate from './images/versionUpdate.gif'; +import editCopyPasteDelete from '@/lib/images/editCopyPasteDelete.gif'; +import changeTemplate from '@/lib/images/changeTemplate.gif'; +import toggleRequiredCols from '@/lib/images/toggleRequiredCols.gif'; +import doubleClickHeaders from '@/lib/images/doubleClickHeaders.gif'; +import selectingVals from '@/lib/images/selectingVals.gif'; +import validatingCells from '@/lib/images/validatingCells.gif'; +import showRows from '@/lib/images/showRows.gif'; +import showSection from '@/lib/images/showSection.gif'; +import jumpToColumn from '@/lib/images/jumpToColumn.gif'; +import fillColumn from '@/lib/images/fillColumn.gif'; +import exportingFiles from '@/lib/images/exportingFiles.gif'; +import provenance from '@/lib/images/provenance.gif'; +import moreInfo from '@/lib/images/moreInfo.gif'; +import versionUpdate from '@/lib/images/versionUpdate.gif'; const slides = [ { diff --git a/lib/utils/fields.js b/lib/utils/fields.js index 4ba47515..f42ac5e5 100644 --- a/lib/utils/fields.js +++ b/lib/utils/fields.js @@ -5,7 +5,7 @@ import { parseJsonSchemaDate, parseJsonDate, datatypeIsDateOrTime, -} from './datatypes'; +} from '@/lib/utils/datatypes'; const MULTIVALUED_DELIMITER = '; '; diff --git a/lib/utils/templates.js b/lib/utils/templates.js new file mode 100644 index 00000000..bcca4acf --- /dev/null +++ b/lib/utils/templates.js @@ -0,0 +1,135 @@ +// TODO: bad way to reference the templates. use import for +TEMPLATE_ROOT = '../../web/templates' + +function accessFolder(folder_path, files_only = false, recursion = 1) { + return [] +} + +function accessTemplate(template_name, files_only = false, recursion = 1) { + this.accessFolder(`${TEMPLATE_ROOT}/${template_name}`, files_only, recursion) +} + +function parseLocaleTree(el) { + locale_label = el[0] + let locale_schema = [] + let locale_documentation = [] + this.accessFolder(`${TEMPLATE_ROOT}${template_name}/locales/${locale_label}`).forEach(el => { + function parseTemplateTree(el) {} + locale_schema.push() + locale_documentation.push() + }) + return [locale_label, [locale_schema, locale_documentation]] +} + +function parseTemplateTree(el) {} + + +class Labels { + + template = {} + + constructor(schemas, documentation) { + this.build(schemas, documentation) + this.locale = locale + } + + constructor(template) { + this.buildTemplate(template) + } + + loadSchema(schema) {} + loadDocumentation(documentation) {} + + parseTemplateFolder(template_name) { + + let schema = [] + let documentation = [] + accessTemplate(template_name, files_only=true).forEach(el => { + schema.push() + documentation.push() + }) + + // TODO: add parsers, refactor to single tree parse method for recurisve parsing + let locales = [] + // TODO: unify accessTemplate and locales accessors? + accessTemplate(`${template_name}/locales`) + .forEach(el => { + [locale_label, [locale_schema, locale_documentation]] = parseLocaleTree(el) + locales.push([locale_label, [locale_schema, locale_documentation]]) + }) + + return [schema, documentation, locales] + } + + makeLabels(schemas = [], documentation = []) { + return { + schema: schemas.reduce(this.loadSchema, {}), + documentation: documentation.reduce(this.loadDocumentation, {}) + } + } + + makeLocale(current_spec, locale_spec) { + [locale_label, [schema, documentation]] = locale_spec + return { + [locale_label]: Object.assign( + current_spec, + this.makeLabels(schema, documentation) + ) + } + } + + buildTemplate(template) { + [schema, documentation, locales] = this.parseTemplateFolder(template) + this.template[template]["default"] = { + ...this.makeLabels(schema, documentation) + } + // NOTE: duplication in this merge strategy + // Replacing with custom get/set strategy would reduce memory duplication + // May be important in cases where schemas are used as column stores rather than field specifications + for (let locale in locales) { + this.template[template]["locale"] = { + ...this.makeLocale(this.template[template]["default"], locale) + } + } + return this + } + +} + +class Template { + + locale = null + template = {} + + constructor(template_name, locale_label = null) { + this.template = Labels.buildTemplate(template_name).template + this.setLocale(locale_label) + } + + set setLocale(locale_label) { + // Two possible failures: + // - Not a valid locale label + // - Not a known locale label for template + // It is difficult to keep track of all known locale codes without adhering to a standard + // In the end, what matters is how the template accepts locales + // Standardizing locale labels should be job of template spec, not consumer to defend against + if (locale_label == 'default') this.locale = null + else if (this.template.locale[locale] !== undefined) this.locale = locale_label + else throw Error('Locale not found in template!') + } + + get locale() { + if (this.locale == null) return 'default' + else return this.locale + } + + get schema() { + if (this.locale == null) return this.template.default.schema + else return this.template.locale[locale].schema + } + + get documentation() { + if (this.locale == null) return this.template.default.documentation + else return this.template.locale[locale].documentation + } +} \ No newline at end of file diff --git a/lib/utils/validation.js b/lib/utils/validation.js index 3de77d97..8eb8fe2a 100644 --- a/lib/utils/validation.js +++ b/lib/utils/validation.js @@ -1,4 +1,4 @@ -import { formatMultivaluedValue, parseMultivaluedValue } from './fields'; +import { formatMultivaluedValue, parseMultivaluedValue } from '@/lib/utils/fields'; /** * Test cellVal against "DataHarmonizer provenance: vX.Y.Z" pattern and if it diff --git a/web/index.js b/web/index.js index 52925b25..6d335200 100644 --- a/web/index.js +++ b/web/index.js @@ -1,8 +1,8 @@ -import { DataHarmonizer, Footer, Toolbar } from '../lib'; -import menu from './templates/menu.json'; +import { DataHarmonizer, Footer, Toolbar } from '@/lib'; +import menu from '@/web/templates/menu.json'; import 'bootstrap/dist/css/bootstrap.min.css'; -import './index.css'; +import '@/web/index.css'; document.addEventListener('DOMContentLoaded', function () { const dhRoot = document.querySelector('#data-harmonizer-grid'); @@ -26,10 +26,10 @@ document.addEventListener('DOMContentLoaded', function () { templatePath: templatePath, releasesURL: 'https://github.com/cidgoh/pathogen-genomics-package/releases', getSchema: async (schema) => { - return (await import(`./templates/${schema}/schema.json`)).default; + return (await import(`@/web/templates/${schema}/schema.json`)).default; }, getExportFormats: async (schema) => { - return (await import(`./templates/${schema}/export.js`)).default; + return (await import(`@/web/templates/${schema}/export.js`)).default; }, }); }); diff --git a/web/webpack.config.js b/web/webpack.config.js index d6343006..117a768c 100644 --- a/web/webpack.config.js +++ b/web/webpack.config.js @@ -8,7 +8,7 @@ module.exports = (env, argv) => { entry: './index.js', resolve: { alias: { - '@': path.resolve(__dirname) // this sets '@/' as an alias for the root + '@': path.basename(path.resolve(__dirname)) // this sets '@/' as an alias for the project root } }, output: { From 3b8ced0f350fc29ec501d7afe69574ea77b1eb93 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Tue, 29 Aug 2023 09:36:27 -0700 Subject: [PATCH 003/550] resolve to parent of , successful build --- web/webpack.config.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web/webpack.config.js b/web/webpack.config.js index 117a768c..64bd09d7 100644 --- a/web/webpack.config.js +++ b/web/webpack.config.js @@ -8,7 +8,7 @@ module.exports = (env, argv) => { entry: './index.js', resolve: { alias: { - '@': path.basename(path.resolve(__dirname)) // this sets '@/' as an alias for the project root + '@': path.dirname(path.resolve(__dirname)) // this sets '@/' as an alias for the projectroot } }, output: { @@ -69,6 +69,5 @@ module.exports = (env, argv) => { if (argv.mode === 'development') { config.devtool = 'eval-source-map'; } - return config; }; From 356ce2a55360308382b0d4bbd8f08d5ea2e316b8 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Tue, 12 Sep 2023 10:51:32 -0700 Subject: [PATCH 004/550] WIP:tests --- lib/utils/templates.js | 346 +++++++++++++++++++++++++++------------ package.json | 6 +- tests/datatypes.test.js | 2 +- tests/fields.test.js | 2 +- tests/templates.test.js | 175 ++++++++++++++++++++ tests/validation.test.js | 2 +- web/webpack.config.js | 6 + 7 files changed, 432 insertions(+), 107 deletions(-) create mode 100644 tests/templates.test.js diff --git a/lib/utils/templates.js b/lib/utils/templates.js index bcca4acf..bec8168b 100644 --- a/lib/utils/templates.js +++ b/lib/utils/templates.js @@ -1,135 +1,275 @@ -// TODO: bad way to reference the templates. use import for -TEMPLATE_ROOT = '../../web/templates' +import template_manifest from '@/web/templates/manifest.json'; -function accessFolder(folder_path, files_only = false, recursion = 1) { - return [] +/** + * Deeply merges two objects, prioritizing values from the localized object. + * + * Recursively merges two objects, giving precedence to values in the localized object. + * String values from the localized object are prioritized over the default object. + * + * @param {Object} defaultObj - The default object with base values. + * @param {Object} localizedObj - The localized object containing specific overrides. + * @returns {Object} - A new object resulting from the deep merge. + */ +function deepMerge(defaultObj, localizedObj) { + let result = {...defaultObj}; // Copy the default object + + for (let key in localizedObj) { + if (result.hasOwnProperty(key) && typeof result[key] === 'object' && !Array.isArray(result[key])) { + result[key] = deepMerge(result[key], localizedObj[key]); // Recursive merge + } else if (typeof result[key] === 'string' || typeof localizedObj[key] === 'string') { + result[key] = localizedObj[key]; // Merge strings (like labels, descriptions) + } + } + + return result; } -function accessTemplate(template_name, files_only = false, recursion = 1) { - this.accessFolder(`${TEMPLATE_ROOT}/${template_name}`, files_only, recursion) +/** + * Retrieves the nested value of an object based on a given string path. + * + * @param {Object} obj - The object from which to retrieve the value. + * @param {string} path - The string path to the desired value, using dot notation. + * + * @returns {*} The value at the specified path within the object, or `undefined` + * if the path does not exist. + * + * @example + * const data = { + * user: { + * address: { + * city: 'New York' + * } + * } + * }; + * + * console.log(getNestedValue(data, 'user.address.city')); // Outputs: 'New York' + * console.log(getNestedValue(data, 'user.age')); // Outputs: undefined + */ +function getNestedValue(obj, path) { + return path.split('.').reduce((acc, key) => acc && acc[key], obj); } -function parseLocaleTree(el) { - locale_label = el[0] - let locale_schema = [] - let locale_documentation = [] - this.accessFolder(`${TEMPLATE_ROOT}${template_name}/locales/${locale_label}`).forEach(el => { - function parseTemplateTree(el) {} - locale_schema.push() - locale_documentation.push() - }) - return [locale_label, [locale_schema, locale_documentation]] +/** + * Asynchronously accesses and imports a module from a specified folder path. + * + * This function dynamically imports a module from a given folder path using + * the provided `folder_path`. It returns the default export of the module. + * If the import fails, an error message is logged, and an optional default + * or fallback value is returned. + * + * @param {string} folder_path - The relative path to the folder containing the module. + * @returns {Promise} - A promise that resolves with the module's default export + * or the specified default/fallback value on failure. + */ +async function accessFile(folder_path) { + try { + const data = await import(`${folder_path}`); + return data; + } catch (error) { + console.error(`Failed to load ${folder_path}`); + return null; // or some default/fallback value + } } -function parseTemplateTree(el) {} +const accessFileFromAbsPath = async (relative_path) => await accessFile(`../../${relative_path}`); +const accessJSONFile = (json_path) => accessFileFromAbsPath(json_path); +const accessDocumentationFile = (doc_file) => accessFileFromAbsPath(doc_file).default.text(); +const isSchema = el => el.name === 'schema.json'; +const isDocumentation = el => el.extension === '.md'; +const isLocale = el => el.name === 'locales'; -class Labels { - - template = {} - - constructor(schemas, documentation) { - this.build(schemas, documentation) - this.locale = locale - } +async function accessTemplate(template_name) { + console.log(template_manifest) + const template = template_manifest.children.find(el => el.name === template_name); + if (!template) return null; - constructor(template) { - this.buildTemplate(template) - } - - loadSchema(schema) {} - loadDocumentation(documentation) {} - - parseTemplateFolder(template_name) { - - let schema = [] - let documentation = [] - accessTemplate(template_name, files_only=true).forEach(el => { - schema.push() - documentation.push() - }) - - // TODO: add parsers, refactor to single tree parse method for recurisve parsing - let locales = [] - // TODO: unify accessTemplate and locales accessors? - accessTemplate(`${template_name}/locales`) - .forEach(el => { - [locale_label, [locale_schema, locale_documentation]] = parseLocaleTree(el) - locales.push([locale_label, [locale_schema, locale_documentation]]) - }) + return processNode(template); +} - return [schema, documentation, locales] - } +async function processNode(node) { + const { name, children } = node; - makeLabels(schemas = [], documentation = []) { - return { - schema: schemas.reduce(this.loadSchema, {}), - documentation: documentation.reduce(this.loadDocumentation, {}) - } + // Base case + if (!children || children.length === 0) { + return []; } - makeLocale(current_spec, locale_spec) { - [locale_label, [schema, documentation]] = locale_spec - return { - [locale_label]: Object.assign( - current_spec, - this.makeLabels(schema, documentation) - ) + let schema = []; + let documentation = []; + let locales = []; + + await Promise.all(children.map(async (child) => { + if (isSchema(child)) { + console.log('is schema', child.path); + let schemaData = await accessJSONFile(child.path); + schema.push(schemaData); + } else if (isDocumentation(child)) { + console.log('is documentation', child.path); + let docData = await accessDocumentationFile(child.path); + documentation.push(docData); + } else if (isLocale(child)) { + const processedLocale = await processNode(child); + if (processedLocale.length) { + locales.push(processedLocale); + } + } else { + // Handle other generic nodes recursively + const processedChild = await processNode(child); + if (processedChild.length) { + locales.push(processedChild); + } } + })); + + return [name, [schema, documentation], locales]; +} + +async function buildTemplate(template_name) { + const [name, [schemas, documentations], locale_nodes] = await accessTemplate(template_name); + // TODO: reduce accessors to make more robust tree access + const schema = schemas[0]; + const documentation = documentations[0]; + const locales = locale_nodes[0][2]; + const template = { + name, + default: { + schema, + documentation + }, + locales: locales.reduce((acc, localization) => { + const locale_label = localization[0] + const schema = !!localization[1][0][0] ? deepMerge(schemas[0], localization[1][0][0]) : null; + const documentation = !!localization[2][0] ? localization[2][0] : null; + return Object.assign(acc, { + [locale_label]: { + schema, + documentation + } + }) + }, {}) } + return template; +} - buildTemplate(template) { - [schema, documentation, locales] = this.parseTemplateFolder(template) - this.template[template]["default"] = { - ...this.makeLabels(schema, documentation) +/** + * Finds the best matching locale from available locales based on user preferences. + * + * @param {string[]} availableLocales - The locales that are available. + * @param {string[]} preferredLocales - The user's preferred locales, in order of preference. + * @returns {string|null} - The best matching locale or null if none match. + */ +function findBestLocaleMatch(availableLocales, preferredLocales) { + for (const preferred of preferredLocales) { + // Check for exact match + if (availableLocales.includes(preferred)) { + return preferred; } - // NOTE: duplication in this merge strategy - // Replacing with custom get/set strategy would reduce memory duplication - // May be important in cases where schemas are used as column stores rather than field specifications - for (let locale in locales) { - this.template[template]["locale"] = { - ...this.makeLocale(this.template[template]["default"], locale) + + // If the preferred locale is a generic language code, try to find the first specific locale of that language + if (!preferred.includes('-')) { + const match = availableLocales.find(locale => locale.split('-')[0] === preferred); + if (match) { + return match; } } - return this } - + return null; // No match found } -class Template { +/** + * `TemplateProxy` class. + * + * Represents a template that supports multiple locales. + * The instance of this class is a Proxy that, when you access its properties, + * it returns the localized data (if available) or the default data. + */ +class TemplateProxy { + + _locale = null; + _locales = []; + _name = ''; + _defaultData = null; + _localizedData = null; - locale = null - template = {} + /** + * Private constructor to enforce the use of the static factory method. + */ + constructor() {} - constructor(template_name, locale_label = null) { - this.template = Labels.buildTemplate(template_name).template - this.setLocale(locale_label) + /** + * Static async factory method to create an instance of `TemplateProxyDraft`. + * + * @param {string} template_name - The name of the template. + * @param {string|null} [locale=null] - The locale to be used for localization. Defaults to null. + * + * @returns {Proxy} - Returns a Proxy instance that serves localized or default data. + */ + static async create(template_name, locale = null) { + const instance = new TemplateProxy(); + await instance.init(template_name, locale); + return new Proxy(instance, { + get: function(target, property) { + if (property === 'changeLocale') { + return target.changeLocale.bind(target); + } + if (target._localizedData && target._localizedData[property]) { + return target._localizedData[property]; + } else { + return target._defaultData[property]; + } + } + }); } - set setLocale(locale_label) { - // Two possible failures: - // - Not a valid locale label - // - Not a known locale label for template - // It is difficult to keep track of all known locale codes without adhering to a standard - // In the end, what matters is how the template accepts locales - // Standardizing locale labels should be job of template spec, not consumer to defend against - if (locale_label == 'default') this.locale = null - else if (this.template.locale[locale] !== undefined) this.locale = locale_label - else throw Error('Locale not found in template!') + /** + * Initialization method to asynchronously setup the template instance. + * + * @param {string} template_name - The name of the template. + * @param {string|null} [locale=null] - The locale to be used for localization. + * + * @private + */ + async init(template_name, locale) { + const template = await buildTemplate(template_name); + this._name = template_name; + this._locale = locale; + this._locales = Object.freeze(Object.keys(template.locales)); + this._defaultData = template.default; + this._localizedData = template.locales[this._locale]; } - get locale() { - if (this.locale == null) return 'default' - else return this.locale + /** + * Method to change the localization of the proxy. + * + * @param {string} newLocale - The new locale to be set. + * + * @throws {Error} If the provided locale is not supported by the template. + */ + changeLocale(newLocale) { + const bestLocale = findBestLocaleMatch(this._locales, [newLocale]); + if (bestLocale !== null) { + this._locale = bestLocale; + this._localizedData = this._defaultData.locales[this._locale]; + } else { + throw new Error(`Locale ${newLocale} is not supported by the template.`); + } } +} - get schema() { - if (this.locale == null) return this.template.default.schema - else return this.template.locale[locale].schema - } +// Usage example: +// const proxyInstance = await TemplateProxyDraft.create('template_name', 'en-US'); +// proxyInstance.changeLocale('fr-FR'); // IETF language code designations - get documentation() { - if (this.locale == null) return this.template.default.documentation - else return this.template.locale[locale].documentation - } -} \ No newline at end of file +const Template = TemplateProxy; + +export default { + Template, + TemplateProxy, + accessTemplate, + buildTemplate, + deepMerge, + getNestedValue, + accessFile, + findBestLocaleMatch +}; \ No newline at end of file diff --git a/package.json b/package.json index 0bbb0454..a672835e 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "bootstrap": "4.3.1", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.7.1", + "directory-tree-webpack-plugin": "^1.0.3", "eslint": "^8.17.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-jest": "^26.6.0", @@ -83,6 +84,9 @@ "\\.js$": [ "rollup-jest" ] - } + }, + "moduleNameMapper": { + "^@/(.*)$": "/$1" + } } } diff --git a/tests/datatypes.test.js b/tests/datatypes.test.js index 446541d6..b721179c 100644 --- a/tests/datatypes.test.js +++ b/tests/datatypes.test.js @@ -1,4 +1,4 @@ -import { Datatypes, stringifyJsonSchemaDate } from '../lib/utils/datatypes'; +import { Datatypes, stringifyJsonSchemaDate } from '@/lib/utils/datatypes'; function getDateObjectForTime(hours, minutes, seconds) { const dateObject = new Date(0); diff --git a/tests/fields.test.js b/tests/fields.test.js index 0ea11385..a866ea5a 100644 --- a/tests/fields.test.js +++ b/tests/fields.test.js @@ -5,7 +5,7 @@ import { formatMultivaluedValue, REMOVE, JSON_SCHEMA_FORMAT, -} from '../lib/utils/fields'; +} from '@/lib/utils/fields'; const fields = [ { diff --git a/tests/templates.test.js b/tests/templates.test.js new file mode 100644 index 00000000..b73786af --- /dev/null +++ b/tests/templates.test.js @@ -0,0 +1,175 @@ +import { + TemplateProxy, + accessTemplate, + buildTemplate, + deepMerge, + getNestedValue, + accessFile, + findBestLocaleMatch +} from '@/lib/utils/templates'; + +describe('TemplateProxy', () => { + let proxy; + + // Assuming the existence of a function to mock the 'buildTemplate' function + const mockBuildTemplate = (templateName) => { + return { + default: { + name: 'default_name', + description: 'default_description' + }, + locales: { + en: { + name: 'english_name' + }, + fr: { + name: 'french_name', + description: 'french_description' + } + } + }; + }; + + beforeEach(async () => { + // Mock the actual buildTemplate with our version + global.buildTemplate = mockBuildTemplate; // or however you would mock in your setup + proxy = await TemplateProxy.create('test', 'en'); + }); + + test('should return localized property if it exists', () => { + expect(proxy.name).toBe('english_name'); + }); + + test('should return default property if localized version doesn’t exist', () => { + expect(proxy.description).toBe('default_description'); + }); + + test('should switch to a new locale and return appropriate data', () => { + proxy.changeLocale('fr'); + expect(proxy.name).toBe('french_name'); + expect(proxy.description).toBe('french_description'); + }); + + test('should throw error for unsupported locale', () => { + expect(() => proxy.changeLocale('es')).toThrow('Locale es is not supported by the template.'); + }); + + // Additional tests can be based on other methods and functionalities of the TemplateProxy class +}); + +describe('deepMerge function', () => { + it('should merge two objects deeply', () => { + const defaultObj = { + name: "John", + address: { + city: "New York", + zip: "10001" + } + }; + const localizedObj = { + address: { + zip: "10002" + } + }; + const merged = deepMerge(defaultObj, localizedObj); + expect(merged.name).toBe("John"); + expect(merged.address.city).toBe("New York"); + expect(merged.address.zip).toBe("10002"); + }); +}); + +describe('getNestedValue function', () => { + const data = { + user: { + address: { + city: 'New York' + } + } + }; + + it('should return nested value', () => { + expect(getNestedValue(data, 'user.address.city')).toBe('New York'); + }); + + it('should return undefined for non-existent path', () => { + expect(getNestedValue(data, 'user.age')).toBeUndefined(); + }); +}); + +describe('accessFile function', () => { + // Note: Testing this function requires filesystem operations which might be mocked. + // For simplicity, we'll assume a generic success/failure case. + it('should return data on successful import', async () => { + const data = await accessFile('./mock-success-path'); // Adjust the path to a mock module. + expect(data).not.toBeNull(); + }); + + it('should return null on failed import', async () => { + const data = await accessFile('./mock-failure-path'); // Adjust the path to a non-existent module. + expect(data).toBeNull(); + }); +}); + +describe('findBestLocaleMatch function', () => { + it('should return the best matching locale', () => { + const available = ['en-US', 'fr-FR', 'es-ES']; + expect(findBestLocaleMatch(available, ['en-GB', 'fr-CA', 'es-AR'])).toBe('en-US'); + }); + + it('should return null if no matching locale is found', () => { + const available = ['en-US', 'fr-FR', 'es-ES']; + expect(findBestLocaleMatch(available, ['de-DE'])).toBeNull(); + }); +}); + +// Mocking the manifest data +jest.mock('@/web/templates/manifest.json'); + +describe('Template utilities', () => { + + // Reset all mocks after each test + afterEach(() => { + jest.clearAllMocks(); + }); + + describe('accessTemplate', () => { + it('should return the correct template if it exists', async () => { + const mockTemplate = { name: 'template1' }; + jest.mock('@/web/templates/manifest.json', () => ({ + children: [mockTemplate] + })); + + const result = await accessTemplate('template1'); + expect(result[0]).toBe('template1'); + }); + + it('should return null if the template does not exist', async () => { + const result = await accessTemplate('non-existent-template'); + expect(result).toBeNull(); + }); + }); + + describe('buildTemplate', () => { + it('should correctly build the template', async () => { + // Here, the mock returns will depend on your actual data structures, + // so you will need to adjust the mocked return values accordingly. + const mockTemplateName = 'template1'; + const mockTemplateData = [ + mockTemplateName, + [[{ key: 'mockSchema' }], [{ key: 'mockDocumentation' }]], + [['en-US', [{ key: 'mockEnUS' }], []]] + ]; + + jest.mock('./path-to-your-functions-file', () => ({ + accessTemplate: jest.fn().mockResolvedValue(mockTemplateData) + })); + + const result = await buildTemplate(mockTemplateName); + + expect(result.name).toBe(mockTemplateName); + expect(result.default.schema.key).toBe('mockSchema'); + expect(result.default.documentation.key).toBe('mockDocumentation'); + expect(result.locales['en-US'].schema.key).toBe('mockEnUS'); + }); + }); +}); diff --git a/tests/validation.test.js b/tests/validation.test.js index 77878cc9..ce10cedf 100644 --- a/tests/validation.test.js +++ b/tests/validation.test.js @@ -1,4 +1,4 @@ -import { validateUniqueValues } from '../lib/utils/validation'; +import { validateUniqueValues } from '@/lib/utils/validation'; describe('validateUniqueValues', () => { test('it should pass validation for a single column of unique values', () => { diff --git a/web/webpack.config.js b/web/webpack.config.js index 64bd09d7..97aa19fb 100644 --- a/web/webpack.config.js +++ b/web/webpack.config.js @@ -1,6 +1,7 @@ const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CopyPlugin = require('copy-webpack-plugin'); +const DirectoryTreePlugin = require('directory-tree-webpack-plugin') module.exports = (env, argv) => { var config = { @@ -17,6 +18,11 @@ module.exports = (env, argv) => { assetModuleFilename: 'assets/[hash][ext][query]', }, plugins: [ + new DirectoryTreePlugin({ + dir: './web/templates', + path: './web/templates/manifest.json', + extensions: /\.md|\.json|\.yaml/ + }), new HtmlWebpackPlugin({ template: './index.html', }), From af028a9fb453abededb84bd1b0bebf7d4de69dd6 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Wed, 13 Sep 2023 15:30:58 -0700 Subject: [PATCH 005/550] gitignore --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d5b9e203..a96ec857 100644 --- a/.gitignore +++ b/.gitignore @@ -237,6 +237,9 @@ node_modules/ # Visual Studio .vscode/ +# Project build artifacts +web/templates/manifest.json + # Miscellaneous .local/ -.notes/ \ No newline at end of file +.notes/ From d1c9712b0765bf3165ddd91e7cc18119de7c990e Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Wed, 13 Sep 2023 15:31:19 -0700 Subject: [PATCH 006/550] i18next packages --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index a672835e..544930ec 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,9 @@ "flatpickr": "^4.6.13", "handsontable": "^7.4.2", "sifter": "^0.5.4", - "xlsx": "^0.18.5" + "xlsx": "^0.18.5", + "jquery-i18next": "^1.2.1", + "i18next": "^0.15.1" }, "jest": { "transform": { From 45eefc321ba4d2148b198e6da701d9d8efc3dfd9 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Wed, 13 Sep 2023 15:34:37 -0700 Subject: [PATCH 007/550] add getters/selectors with 'default' and 'localized' for e.g. picklist label/value distinction --- lib/utils/templates.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/utils/templates.js b/lib/utils/templates.js index bec8168b..25922156 100644 --- a/lib/utils/templates.js +++ b/lib/utils/templates.js @@ -239,6 +239,18 @@ class TemplateProxy { this._localizedData = template.locales[this._locale]; } + get default() { + return this._defaultData; + } + + get localized() { + return this._localizedData; + } + + get locale() { + return this._locale; + } + /** * Method to change the localization of the proxy. * From 4240ae118a981e2ab58889472ad6838138c63a9c Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Wed, 13 Sep 2023 15:36:10 -0700 Subject: [PATCH 008/550] WIP: tests --- tests/templates.test.js | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/tests/templates.test.js b/tests/templates.test.js index b73786af..07671449 100644 --- a/tests/templates.test.js +++ b/tests/templates.test.js @@ -8,6 +8,30 @@ import { findBestLocaleMatch } from '@/lib/utils/templates'; +/* Example usage +template = await Template.create('canada_covid19') +template.schema.prefixes.linkml.prefix_prefix == 'linkml' +template.schema.default.prefixes.linkml.prefix_prefix == 'linkml' + +template.schema.locales['default'].prefixes.linkml.prefix_prefix == 'linkml' + +template.changeLocale('fr') // will find first nearest match if only full countrycodes present +// template.changeLocale('fr-FR') +template.schema.prefixes.linkml.prefix_prefix == 'lènkml' + +// support for picklist value/label distinction +template.schema.default.prefixes.linkml.prefix_prefix == 'linkml' +template.schema.locale.prefixes.linkml.prefix_prefix == 'lènkml' // TODO + +template.schema.locales['fr-FR'].prefixes.linkml.prefix_prefix == 'linkml' + +template.currentLocale() == 'fr-FR' + +template.changeLocale('default') +template.schema.prefixes.linkml.prefix_prefix == 'linkml' +template.schema.default.prefixes.linkml.prefix_prefix == 'linkml' +*/ + describe('TemplateProxy', () => { let proxy; @@ -19,13 +43,13 @@ describe('TemplateProxy', () => { description: 'default_description' }, locales: { - en: { - name: 'english_name' - }, fr: { name: 'french_name', description: 'french_description' - } + }, + "de-DE": { + name: 'deutsch_nam' + }, } }; }; @@ -33,7 +57,7 @@ describe('TemplateProxy', () => { beforeEach(async () => { // Mock the actual buildTemplate with our version global.buildTemplate = mockBuildTemplate; // or however you would mock in your setup - proxy = await TemplateProxy.create('test', 'en'); + proxy = await Template.create('test', 'en'); }); test('should return localized property if it exists', () => { @@ -172,4 +196,4 @@ describe('Template utilities', () => { expect(result.locales['en-US'].schema.key).toBe('mockEnUS'); }); }); -}); +}); \ No newline at end of file From 432bdbf0cc2139393304f7492c65b0992c4f66bc Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Wed, 13 Sep 2023 15:36:25 -0700 Subject: [PATCH 009/550] WIP: i18n --- lib/i18n.js | 57 + lib/utils/translations.js | 126 + package-lock.json | 11897 +++++++++++++++++ web/index.js | 6 + web/templates/test/export.js | 2 + web/templates/test/locales/de-DE/schema.json | 4711 +++++++ web/templates/test/locales/fr-FR/schema.json | 4711 +++++++ web/templates/test/schema.json | 4711 +++++++ web/templates/test/schema.yaml | 2703 ++++ web/templates/test/schema_core.yaml | 37 + web/templates/test/schema_enums.tsv | 522 + web/templates/test/schema_slots.tsv | 71 + web/translations/translations.json | 0 yarn.lock | 273 +- 14 files changed, 29699 insertions(+), 128 deletions(-) create mode 100644 lib/i18n.js create mode 100644 lib/utils/translations.js create mode 100644 package-lock.json create mode 100644 web/templates/test/export.js create mode 100644 web/templates/test/locales/de-DE/schema.json create mode 100644 web/templates/test/locales/fr-FR/schema.json create mode 100644 web/templates/test/schema.json create mode 100644 web/templates/test/schema.yaml create mode 100644 web/templates/test/schema_core.yaml create mode 100644 web/templates/test/schema_enums.tsv create mode 100644 web/templates/test/schema_slots.tsv create mode 100644 web/translations/translations.json diff --git a/lib/i18n.js b/lib/i18n.js new file mode 100644 index 00000000..f6f95b67 --- /dev/null +++ b/lib/i18n.js @@ -0,0 +1,57 @@ +import $ from 'jquery'; +import i18next from 'i18next'; +import jqueryI18next from 'jquery-i18next'; + +import labels, { sample_labels } from '@/lib/utils/translations'; + +const labels = sample_labels; + +const lngs = { + en: { nativeName: 'English' }, + de: { nativeName: 'Deutsch' } +}; + +const rerender = () => { + // start localizing, details: + // https://github.com/i18next/jquery-i18next#usage-of-selector-function + $('body').localize(); +} + +export function initI18n() { + // use plugins and options as needed, for options, detail see + // https://www.i18next.com + i18next + // detect user language + // learn more: https://github.com/i18next/i18next-browser-languageDetector + // .use(i18nextBrowserLanguageDetector) + // init i18next + // for all options read: https://www.i18next.com/overview/configuration-options + .init({ + debug: true, + fallbackLng: 'en', + resources: labels + }, (err, t) => { + if (err) return console.error(err); + + // for options see + // https://github.com/i18next/jquery-i18next#initialize-the-plugin + jqueryI18next.init(i18next, $, { useOptionsAttr: true }); + + // fill language switcher + Object.keys(lngs).map((lng) => { + const opt = new Option(lngs[lng].nativeName, lng); + if (lng === i18next.resolvedLanguage) { + opt.setAttribute("selected", "selected"); + } + $('#languageSwitcher').append(opt); + }); + $('#languageSwitcher').change((a, b, c) => { + const chosenLng = $(this).find("option:selected").attr('value'); + i18next.changeLanguage(chosenLng, () => { + rerender(); + }); + }); + + rerender(); + }); +}; diff --git a/lib/utils/translations.js b/lib/utils/translations.js new file mode 100644 index 00000000..49c13e64 --- /dev/null +++ b/lib/utils/translations.js @@ -0,0 +1,126 @@ +import label_translations_file from '@/web/translations/translations.json'; + +function transformLangFirstSpec(obj) { + // Check if the current object is a language mapping + if (typeof obj === 'object' && !Array.isArray(obj) && Object.values(obj).every(value => typeof value === 'string')) { + // obj has language mappings + return obj; + } + + // Otherwise, recurse into the object + let result = {}; + for (let key in obj) { + if (obj.hasOwnProperty(key)) { + let transformedSubObj = transformLangFirstSpec(obj[key]); + for (let lang in transformedSubObj) { + if (!result[lang]) { + result[lang] = {}; + } + result[lang]['translation'][key] = transformedSubObj[lang]; + } + } + } + + return result; +} + +function transformStructFirstSpec(obj) { + let result = {}; + + function helper(currentObj, path) { + for (let key in currentObj) { + if (currentObj.hasOwnProperty(key)) { + if (typeof currentObj[key] === 'object' && !Array.isArray(currentObj[key])) { + // If it's a nested object, continue drilling down. + helper(currentObj[key], path.concat(key)); + } else { + // It's a leaf node. At this point, `key` should be a language code. + let lang = key; + let text = currentObj[key]; + + if (!result[lang]) { + result[lang] = {}; + } + + let temp = result[lang]; + for (let i = 0; i < path.length; i++) { + if (!temp[path[i]]) { + temp[path[i]] = {}; + } + + // If it's the last element of the path, set the value. + if (i === path.length - 1) { + temp[path[i]] = text; + } else { + temp = temp[path[i]]; + } + } + } + } + } + } + + helper(obj, []); + + return result; +} + +const source = { + "fr": { + "nav": { + "header": { + "greeting": "bonjour" + } + } + }, + "en": { + "nav": { + "header": { + "greeting": "hello" + } + } + } + }; +const transformed = transformLangFirstSpec(source); +console.log(JSON.stringify(transformed, null, 4)); + +const initialObject = { + nav: { + header: { + greeting: { + en: "hello", + fr: "bonjour" + } + } + } +}; +console.log(JSON.stringify(transformStructFirstSpec(initialObject), null, 4)); + +// expect the structure-first style +export default labels = transformStructFirstSpec(label_translations_file); +export const sample_labels = { + en: { + translation: { + head: { + title: 'My Awesome Landing-Page', + description: 'The description of this awesome landing page.' + }, + intro: { + title: 'Landing Page', + subTitle: 'Some subtitle' + } + } + }, + de: { + translation: { + head: { + title: 'Meine grossartige Webseite', + description: 'Die Beschreibung dieser grossartigen Webseite.' + }, + intro: { + title: 'Webseite', + subTitle: 'Ein Untertitel' + } + } + } + } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..e1bd806f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11897 @@ +{ + "name": "data-harmonizer", + "version": "1.5.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "data-harmonizer", + "version": "1.5.0", + "license": "MIT", + "dependencies": { + "@selectize/selectize": "^0.13.5", + "date-fns": "^2.28.0", + "file-saver": "^2.0.5", + "flatpickr": "^4.6.13", + "handsontable": "^7.4.2", + "sifter": "^0.5.4", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@babel/cli": "^7.18.10", + "@babel/core": "^7.18.10", + "@babel/preset-env": "^7.18.10", + "@rollup/plugin-babel": "^5.3.1", + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-image": "^2.1.1", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "bootstrap": "4.3.1", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.7.1", + "directory-tree-webpack-plugin": "^1.0.3", + "eslint": "^8.17.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-jest": "^26.6.0", + "html-webpack-plugin": "^5.5.0", + "jest": "^28.1.3", + "jquery": "3.5.1", + "popper.js": "^1.16.1", + "prettier": "2.7.0", + "rimraf": "^3.0.2", + "rollup": "^2.75.6", + "rollup-jest": "^3.0.0", + "rollup-plugin-string": "^3.0.0", + "rollup-plugin-styles": "^4.0.0", + "rollup-plugin-terser": "^7.0.2", + "style-loader": "^3.3.1", + "webpack": "^5.73.0", + "webpack-cli": "^4.10.0", + "webpack-dev-server": "^4.9.2" + }, + "peerDependencies": { + "bootstrap": "4.x", + "jquery": "1.9.1 - 3", + "popper.js": "1.x" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.18.10.tgz", + "integrity": "sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/cli/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@babel/cli/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", + "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", + "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/traverse": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", + "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz", + "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.9", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", + "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", + "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", + "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", + "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz", + "integrity": "sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-function-name": "^7.18.9", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/generator": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", + "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", + "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/traverse": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", + "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/types": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", + "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", + "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.18.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", + "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", + "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", + "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", + "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", + "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", + "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", + "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-identifier": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", + "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", + "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", + "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/types": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules/node_modules/@babel/types": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", + "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz", + "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.9", + "@babel/types": "^7.18.9", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz", + "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@handsontable/formulajs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@handsontable/formulajs/-/formulajs-2.0.2.tgz", + "integrity": "sha512-maIyMJtYjA5e/R9nyA22Qd7Yw73MBSxClJvle0a8XWAS/5l6shc/OFpQqrmwMy4IXUCmywJ9ER0gOGz/YA720w==", + "license": "MIT", + "dependencies": { + "bessel": "^1.0.2", + "jstat": "^1.9.2" + }, + "bin": { + "implementation-stats": "bin/implementation-stats" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform/node_modules/@babel/core": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", + "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.9", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", + "integrity": "sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0" + } + }, + "node_modules/@rollup/plugin-image": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-image/-/plugin-image-2.1.1.tgz", + "integrity": "sha512-AgP4U85zuQJdUopLUCM+hTf45RepgXeTb8EJsleExVy99dIoYpt3ZlDYJdKmAc2KLkNntCDg6BPJvgJU3uGF+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "mini-svg-data-uri": "^1.2.3" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.0.8" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@selectize/selectize": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/@selectize/selectize/-/selectize-0.13.5.tgz", + "integrity": "sha512-2wP1BW03Kv84TQFnSjR+aqDcDb2RNM0YB9+lNp1y6phvWaGllrwk6WCJj3MsiQxhGryMRuavgjcUzZC2K305Rg==", + "license": "Apache-2.0", + "dependencies": { + "@selectize/sifter": "^0.6.2", + "microplugin": "0.0.3" + }, + "engines": { + "node": "*" + }, + "optionalDependencies": { + "jquery-ui": "^1.13.0" + }, + "peerDependencies": { + "jquery": "^1.7.0, ^2, ^3" + } + }, + "node_modules/@selectize/sifter": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@selectize/sifter/-/sifter-0.6.2.tgz", + "integrity": "sha512-rpWQuzaCEV2GOEfBmP5NGST3IsA/RGRd3vugOGQVxAaN1xMI9tsrMmx5rC811iInq6OeFH3Jix5EfglYQ3XwKQ==", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "cardinal": "^2.1.1", + "csv-parse": "^5.0.4", + "humanize": "^0.0.9", + "optimist": "^0.5.2" + }, + "bin": { + "sifter": "bin/sifter.js" + } + }, + "node_modules/@selectize/sifter/node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", + "license": "MIT" + }, + "node_modules/@selectize/sifter/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "license": "MIT" + }, + "node_modules/@selectize/sifter/node_modules/cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", + "license": "MIT", + "dependencies": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/@selectize/sifter/node_modules/csv-parse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.2.0.tgz", + "integrity": "sha512-ZuLjTp3Qx2gycoB7FKS9q11KgDL3f0wQszTlNOajS3fHa0jypN/zgjmkam+rczX5dXw5z7+KrDW2hWkM4542Ug==", + "license": "MIT" + }, + "node_modules/@selectize/sifter/node_modules/optimist": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.5.2.tgz", + "integrity": "sha512-r9M8ZpnM9SXV5Wii7TCqienfcaY3tAiJe9Jchof87icbmbruKgK0xKXngmrnowTDnEawmmI1Qbha59JEoBkBGA==", + "license": "MIT/X11", + "dependencies": { + "wordwrap": "~0.0.2" + } + }, + "node_modules/@selectize/sifter/node_modules/redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", + "license": "MIT", + "dependencies": { + "esprima": "~4.0.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.21", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.21.tgz", + "integrity": "sha512-II2SIjvxBVJmrGkkZYza/BqNjwx3PWROIA8CZ0/Hn7LV0Mv0CVpZxoyHGBVsQqfFLMv9DmArIeRHTwo76bE6oA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cssnano": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/cssnano/-/cssnano-5.1.0.tgz", + "integrity": "sha512-ikR+18UpFGgvaWSur4og6SJYF/6QEYHXvrIt36dp81p1MG3cAPTYDMBJGeyWa3LCnqEbgNMHKRb+FP0NrXtoWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.4.3", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.3.tgz", + "integrity": "sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.29", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", + "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/pikaday": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@types/pikaday/-/pikaday-1.7.4.tgz", + "integrity": "sha512-0KsHVyw5pTG829nqG4IRu7m+BFQlFEBdbE/1i3S5182HeKUKv1uEW0gyEmkJVp5i4IV+9pyh23O83+KpRkSQbw==", + "license": "MIT", + "dependencies": { + "moment": ">=2.14.0" + } + }, + "node_modules/@types/pikaday/node_modules/moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/@types/prettier": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.4.tgz", + "integrity": "sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz", + "integrity": "sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.31.0.tgz", + "integrity": "sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz", + "integrity": "sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.31.0.tgz", + "integrity": "sha512-kcVPdQS6VIpVTQ7QnGNKMFtdJdvnStkqS5LeALr4rcwx11G6OWb2HB17NMPnlRHvaZP38hL9iK8DdE9Fne7NYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/typescript-estree": "5.31.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz", + "integrity": "sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.31.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", + "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.2", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", + "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bessel": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bessel/-/bessel-1.0.2.tgz", + "integrity": "sha512-Al3nHGQGqDYqqinXhQzmwmcRToe/3WyBv4N8aZc5Pef8xw2neZlR9VPi84Sa23JtgWcucu18HxVZrnI0fn2etw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/bignumber.js": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", + "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", + "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/bonjour-service/node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/bootstrap": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz", + "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.14.7" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz", + "integrity": "sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001358", + "electron-to-chromium": "^1.4.164", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001358", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001358.tgz", + "integrity": "sha512-hvp8PSRymk85R20bsDra7ZTCpSVGN/PAz9pSAjPSjKC+rNmnUk5vCRgJwiTT/O4feQ/yu/drvZYpKxxhbFuChw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/cardinal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", + "integrity": "sha512-INsuF4GyiFLk8C91FPokbKTc/rwHqV4JnfatVZ6GPhguP1qmkRWX2dp5tepYboYdPpGWisLVLI+KsXoXFPRSMg==", + "license": "MIT", + "dependencies": { + "ansicolors": "~0.2.1", + "redeyed": "~1.0.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true, + "license": "MIT" + }, + "node_modules/clean-css": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", + "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-merge": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/concat-merge/-/concat-merge-1.0.3.tgz", + "integrity": "sha512-VuEIlh5YcPYJohvBsZrQNzVjSG5Z0fcmiaiBfluY/2WAzY20HJF9YgPkGRVMYcljzGEKW+I++TX/2tsO/S+RSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/core-js": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.23.2.tgz", + "integrity": "sha512-ELJOWxNrJfOH/WK4VJ3Qd+fOqZuOuDNDJz0xG6Bt4mGg2eO/UT9CljCrbqDGovjLKUrGajEEBcoTOc0w+yBYeQ==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", + "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/core-js-compat/node_modules/caniuse-lite": { + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/core-js-compat/node_modules/electron-to-chromium": { + "version": "1.4.210", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.210.tgz", + "integrity": "sha512-kSiX4tuyZijV7Cz0MWVmGT8K2siqaOA4Z66K5dCttPPRh0HicOcOAEj1KlC8O8J1aOS/1M8rGofOzksLKaHWcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/core-js-compat/node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-js-compat/node_modules/update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", + "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csv-parse": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==", + "license": "MIT" + }, + "node_modules/date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", + "license": "MIT", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/directory-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-2.3.1.tgz", + "integrity": "sha512-hxolIHCtQ/a56CUywaLzGD/V78zPwFihI+UK/4ZjOp7GoV4Mptmtv95yavOn/RlnTi7cCMjszvfcNrwCoWLH+Q==", + "dev": true, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/directory-tree-webpack-plugin": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/directory-tree-webpack-plugin/-/directory-tree-webpack-plugin-1.0.3.tgz", + "integrity": "sha512-C8M4X2EBF2usJRL+yINp8Eu/BLv90dnl4bRfsujbeO1hTbIf3cS6UOpRpiHSoXxnYaP4k8D+O7ZSqsR1K6MwMw==", + "dev": true, + "dependencies": { + "directory-tree": "^2.0.0" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.164", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.164.tgz", + "integrity": "sha512-K7iy5y6XyP9Pzh3uaDti0KC4JUNT6T1tLG5RTOmesqq2YgAJpYYYJ32m+anvZYjCV35llPTEh87kvEV/uSsiyQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.6.0.tgz", + "integrity": "sha512-f8n46/97ZFdU4KqeQYqO8AEVGIhHWvkpgNBWHH3jrM28/y8llnbf3IjfIKv6p2pZIMinK1PCqbbROxs9Eud02Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatpickr": { + "version": "4.6.13", + "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz", + "integrity": "sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==", + "license": "MIT" + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "license": "ISC" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/handsontable": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/handsontable/-/handsontable-7.4.2.tgz", + "integrity": "sha512-xJ81nZfXWHmS+K8/Eshj776MQSe8003iue1hHumgb0bnJmG/WLOxRpN+Vurdl/WPwI3+fQOqb9nTzmM5n/LI2g==", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE.txt", + "dependencies": { + "@types/pikaday": "1.7.4", + "core-js": "^3.0.0", + "hot-formula-parser": "^3.0.1", + "moment": "2.24.0", + "numbro": "2.1.2", + "pikaday": "1.8.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hot-formula-parser": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hot-formula-parser/-/hot-formula-parser-3.0.2.tgz", + "integrity": "sha512-W/Dj/UbIyuViMIQOQD6tUEVySl7jd6ei+gfWslTiRqa4yRhkyHnIz8N4oLnqgDRhhVAQIcFF5NfNz49k4X8IxQ==", + "license": "MIT", + "dependencies": { + "@handsontable/formulajs": "^2.0.2", + "tiny-emitter": "^2.1.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/humanize/-/humanize-0.0.9.tgz", + "integrity": "sha512-bvZZ7vXpr1RKoImjuQ45hJb5OvE2oJafHysiD/AL3nkqTZH2hFCjQ3YZfCd63FefDitbJze/ispUPP0gfDsT2Q==", + "engines": { + "node": "*" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/core": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", + "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.9", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/@babel/core": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", + "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.9", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/jest-config/node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/jest-config/node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/jest-config/node_modules/babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/jest-config/node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/jest-config/node_modules/babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/core": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", + "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.9", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/plugin-syntax-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", + "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/jest-snapshot/node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==", + "license": "MIT" + }, + "node_modules/jquery-ui": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.1.tgz", + "integrity": "sha512-2VlU59N5P4HaumDK1Z3XEVjSvegFbEOQRgpHUBaB2Ak98Axl3hFhJ6RFcNQNuk9SfL6WxIbuLst8dW/U56NSiA==", + "license": "MIT", + "optional": true, + "dependencies": { + "jquery": ">=1.8.0 <4.0.0" + } + }, + "node_modules/jquery-ui/node_modules/jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "license": "MIT", + "optional": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jstat": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/jstat/-/jstat-1.9.5.tgz", + "integrity": "sha512-cWnp4vObF5GmB2XsIEzxI/1ZTcYlcfNqxQ/9Fp5KFUa0Jf/4tO0ZkGVnqoEHDisJvYgvn5n3eWZbd2xTVJJPUQ==" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.6.tgz", + "integrity": "sha512-rH9mjopto6Wkr7RFuH9l9dk3qb2XGOcYKr7xMhaYqfzuJqOqhRrcFvfD7JMuPj6SLmPreh5+6eAuv36NFAU+Mw==", + "dev": true, + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/microplugin": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/microplugin/-/microplugin-0.0.3.tgz", + "integrity": "sha512-3wKXex4/iyALV0GX2juow66J9dabkEMgHeZAihdLTaRTzm0N+RubXioNPpfIQDPuBRxr3JbjNt7B0Lr/3yE9yQ==", + "engines": { + "node": "*" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==", + "license": "MIT" + }, + "node_modules/moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/numbro": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/numbro/-/numbro-2.1.2.tgz", + "integrity": "sha512-7w833BxZmKGLE9HI0aREtNVRVH6WTYUUlWf4qgA5gKNhPQ4F/MRZ14sc0v8eoLORprk9ZTVwYaLwj8N3Zgxwiw==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^8.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", + "license": "MIT/X11", + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pikaday": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/pikaday/-/pikaday-1.8.0.tgz", + "integrity": "sha512-SgGxMYX0NHj9oQnMaSyAipr2gOrbB4Lfs/TJTb6H6hRHs39/5c5VZi73Q8hr53+vWjdn6HzkWcj8Vtl3c9ziaA==", + "license": "(0BSD OR MIT)" + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "license": "MIT", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.0.tgz", + "integrity": "sha512-nwoX4GMFgxoPC6diHvSwmK/4yU8FFH3V8XWtLQrbj4IBsK2pkYhG4kf/ljF/haaZ/aii+wNJqISrCDPgxGWDVQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz", + "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redeyed": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", + "integrity": "sha512-8eEWsNCkV2rvwKLS1Cvp5agNjMhwRe2um+y32B2+3LqOzg4C9BBPs6vzAfV16Ivb8B9HPNKIqd8OrdBws8kNlQ==", + "license": "MIT", + "dependencies": { + "esprima": "~3.0.0" + } + }, + "node_modules/redeyed/node_modules/esprima": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", + "integrity": "sha512-xoBq/MIShSydNZOkjkoCEjqod963yHNXTLC40ypBhop6yPqflPz/vTinmCfSrGcywVLnSftRf6a0kJLdFdzemw==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", + "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-jest": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-jest/-/rollup-jest-3.0.0.tgz", + "integrity": "sha512-6v3s4q5z7+PkL1hUYg6KWlL2kUVkjUHLAlMsaHANmuwOrM1GSlRifiJkazdqymVPFfeBfpooDEtz04Q7qwuGaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "concat-merge": "^1.0.2" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "rollup": "^2.3.0" + } + }, + "node_modules/rollup-plugin-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-string/-/rollup-plugin-string-3.0.0.tgz", + "integrity": "sha512-vqyzgn9QefAgeKi+Y4A7jETeIAU1zQmS6VotH6bzm/zmUQEnYkpIGRaOBPY41oiWYV4JyBoGAaBjYMYuv+6wVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "rollup-pluginutils": "^2.4.1" + } + }, + "node_modules/rollup-plugin-styles": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-styles/-/rollup-plugin-styles-4.0.0.tgz", + "integrity": "sha512-A2K2sao84OsTmDxXG83JTCdXWrmgvQkkI38XDat46rdtpGMRm9tSYqeCdlwwGDJF4kKIafhV1mUidqu8MxUGig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^4.1.2", + "@types/cssnano": "^5.0.0", + "cosmiconfig": "^7.0.1", + "cssnano": "^5.0.15", + "fs-extra": "^10.0.0", + "icss-utils": "^5.1.0", + "mime-types": "^2.1.34", + "p-queue": "^6.6.2", + "postcss": "^8.4.5", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "query-string": "^7.1.0", + "resolve": "^1.21.0", + "source-map-js": "^1.0.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "rollup": "^2.63.0" + } + }, + "node_modules/rollup-plugin-styles/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true, + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sifter": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/sifter/-/sifter-0.5.4.tgz", + "integrity": "sha512-t2yxTi/MM/ESup7XH5oMu8PUcttlekt269RqxARgnvS+7D/oP6RyA1x3M/5w8dG9OgkOyQ8hNRWelQ8Rj4TAQQ==", + "license": "Apache-2.0", + "dependencies": { + "async": "^2.6.0", + "cardinal": "^1.0.0", + "csv-parse": "^4.6.5", + "humanize": "^0.0.9", + "optimist": "^0.6.1" + }, + "bin": { + "sifter": "bin/sifter.js" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true, + "license": "MIT" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "license": "Apache-2.0", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", + "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.7", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz", + "integrity": "sha512-ufSazemeh9Gty0qiWtoRpJ9F5Q5W3xdIPm1UZQqYQv/q0Nyb9EMHUB2lu+O9x1re9WsorpMAUu4Y6Lxcs5n+XQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webpack": { + "version": "5.73.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", + "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz", + "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/ws": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/web/index.js b/web/index.js index 6d335200..69f35c7d 100644 --- a/web/index.js +++ b/web/index.js @@ -1,10 +1,12 @@ import { DataHarmonizer, Footer, Toolbar } from '@/lib'; +import { initI18n } from '@/lib/i18n'; import menu from '@/web/templates/menu.json'; import 'bootstrap/dist/css/bootstrap.min.css'; import '@/web/index.css'; document.addEventListener('DOMContentLoaded', function () { + const dhRoot = document.querySelector('#data-harmonizer-grid'); const dhFooterRoot = document.querySelector('#data-harmonizer-footer'); const dhToolbarRoot = document.querySelector('#data-harmonizer-toolbar'); @@ -32,4 +34,8 @@ document.addEventListener('DOMContentLoaded', function () { return (await import(`@/web/templates/${schema}/export.js`)).default; }, }); + + // internationalize + initI18n() + }); diff --git a/web/templates/test/export.js b/web/templates/test/export.js new file mode 100644 index 00000000..592ad2d1 --- /dev/null +++ b/web/templates/test/export.js @@ -0,0 +1,2 @@ +// A dictionary of possible export formats +export default {}; diff --git a/web/templates/test/locales/de-DE/schema.json b/web/templates/test/locales/de-DE/schema.json new file mode 100644 index 00000000..a32d287d --- /dev/null +++ b/web/templates/test/locales/de-DE/schema.json @@ -0,0 +1,4711 @@ +{ + "name": "AMBR", + "description": "", + "id": "https://example.com/AMBR", + "version": "2.3.0", + "prefixes": { + "linkml": { + "prefix_prefix": "linkml", + "prefix_reference": "https://w3id.org/linkml/" + }, + "GENEPIO": { + "prefix_prefix": "GENEPIO", + "prefix_reference": "http://purl.obolibrary.org/obo/GENEPIO_" + }, + "xsd": { + "prefix_prefix": "xsd", + "prefix_reference": "http://www.w3.org/2001/XMLSchema#" + }, + "shex": { + "prefix_prefix": "shex", + "prefix_reference": "http://www.w3.org/ns/shex#" + }, + "schema": { + "prefix_prefix": "schema", + "prefix_reference": "http://schema.org/" + } + }, + "default_prefix": "https://example.com/AMBR/", + "types": { + "WhitespaceMinimizedString": { + "name": "WhitespaceMinimizedString", + "description": "A string that has all whitespace trimmed off of beginning and end, and all internal whitespace segments reduced to single spaces. Whitespace includes #x9 (tab), #xA (linefeed), and #xD (carriage return).", + "typeof": "string", + "base": "str", + "uri": "xsd:token" + }, + "Provenance": { + "name": "Provenance", + "description": "A field containing a DataHarmonizer versioning marker. It is issued by DataHarmonizer when validation is applied to a given row of data.", + "typeof": "string", + "base": "str", + "uri": "xsd:token" + }, + "string": { + "name": "string", + "description": "A character string", + "exact_mappings": [ + "schema:Text" + ], + "base": "str", + "uri": "xsd:string" + }, + "integer": { + "name": "integer", + "description": "An integer", + "exact_mappings": [ + "schema:Integer" + ], + "base": "int", + "uri": "xsd:integer" + }, + "boolean": { + "name": "boolean", + "description": "A binary (true or false) value", + "exact_mappings": [ + "schema:Boolean" + ], + "base": "Bool", + "uri": "xsd:boolean", + "repr": "bool" + }, + "float": { + "name": "float", + "description": "A real number that conforms to the xsd:float specification", + "exact_mappings": [ + "schema:Float" + ], + "base": "float", + "uri": "xsd:float" + }, + "double": { + "name": "double", + "description": "A real number that conforms to the xsd:double specification", + "close_mappings": [ + "schema:Float" + ], + "base": "float", + "uri": "xsd:double" + }, + "decimal": { + "name": "decimal", + "description": "A real number with arbitrary precision that conforms to the xsd:decimal specification", + "broad_mappings": [ + "schema:Number" + ], + "base": "Decimal", + "uri": "xsd:decimal" + }, + "time": { + "name": "time", + "description": "A time object represents a (local) time of day, independent of any particular day", + "notes": [ + "URI is dateTime because OWL reasoners do not work with straight date or time" + ], + "exact_mappings": [ + "schema:Time" + ], + "base": "XSDTime", + "uri": "xsd:dateTime", + "repr": "str" + }, + "date": { + "name": "date", + "description": "a date (year, month and day) in an idealized calendar", + "notes": [ + "URI is dateTime because OWL reasoners don't work with straight date or time" + ], + "exact_mappings": [ + "schema:Date" + ], + "base": "XSDDate", + "uri": "xsd:date", + "repr": "str" + }, + "datetime": { + "name": "datetime", + "description": "The combination of a date and time", + "exact_mappings": [ + "schema:DateTime" + ], + "base": "XSDDateTime", + "uri": "xsd:dateTime", + "repr": "str" + }, + "date_or_datetime": { + "name": "date_or_datetime", + "description": "Either a date or a datetime", + "base": "str", + "uri": "linkml:DateOrDatetime", + "repr": "str" + }, + "uriorcurie": { + "name": "uriorcurie", + "description": "a URI or a CURIE", + "base": "URIorCURIE", + "uri": "xsd:anyURI", + "repr": "str" + }, + "curie": { + "name": "curie", + "conforms_to": "https://www.w3.org/TR/curie/", + "description": "a compact URI", + "comments": [ + "in RDF serializations this MUST be expanded to a URI", + "in non-RDF serializations MAY be serialized as the compact representation" + ], + "base": "Curie", + "uri": "xsd:string", + "repr": "str" + }, + "uri": { + "name": "uri", + "conforms_to": "https://www.ietf.org/rfc/rfc3987.txt", + "description": "a complete URI", + "comments": [ + "in RDF serializations a slot with range of uri is treated as a literal or type xsd:anyURI unless it is an identifier or a reference to an identifier, in which case it is translated directly to a node" + ], + "close_mappings": [ + "schema:URL" + ], + "base": "URI", + "uri": "xsd:anyURI", + "repr": "str" + }, + "ncname": { + "name": "ncname", + "description": "Prefix part of CURIE", + "base": "NCName", + "uri": "xsd:string", + "repr": "str" + }, + "objectidentifier": { + "name": "objectidentifier", + "description": "A URI or CURIE that represents an object in the model.", + "comments": [ + "Used for inheritence and type checking" + ], + "base": "ElementIdentifier", + "uri": "shex:iri", + "repr": "str" + }, + "nodeidentifier": { + "name": "nodeidentifier", + "description": "A URI, CURIE or BNODE that represents a node in a model.", + "base": "NodeIdentifier", + "uri": "shex:nonLiteral", + "repr": "str" + } + }, + "enums": { + "null value menu": { + "name": "null value menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Not Applicable": { + "text": "Not Applicable", + "meaning": "GENEPIO:0001619" + }, + "Not Collected": { + "text": "Not Collected", + "meaning": "GENEPIO:0001620" + }, + "Not Provided": { + "text": "Not Provided", + "meaning": "GENEPIO:0001668" + }, + "Missing": { + "text": "Missing", + "meaning": "GENEPIO:0001618" + }, + "Restricted Access": { + "text": "Restricted Access", + "meaning": "GENEPIO:0001810" + } + } + }, + "geo_loc_name (country) menu": { + "name": "geo_loc_name (country) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Afghanistan": { + "text": "Afghanistan", + "meaning": "GAZ:00006882" + }, + "Albania": { + "text": "Albania", + "meaning": "GAZ:00002953" + }, + "Algeria": { + "text": "Algeria", + "meaning": "GAZ:00000563" + }, + "American Samoa": { + "text": "American Samoa", + "meaning": "GAZ:00003957" + }, + "Andorra": { + "text": "Andorra", + "meaning": "GAZ:00002948" + }, + "Angola": { + "text": "Angola", + "meaning": "GAZ:00001095" + }, + "Anguilla": { + "text": "Anguilla", + "meaning": "GAZ:00009159" + }, + "Antarctica": { + "text": "Antarctica", + "meaning": "GAZ:00000462" + }, + "Antigua and Barbuda": { + "text": "Antigua and Barbuda", + "meaning": "GAZ:00006883" + }, + "Argentina": { + "text": "Argentina", + "meaning": "GAZ:00002928" + }, + "Armenia": { + "text": "Armenia", + "meaning": "GAZ:00004094" + }, + "Aruba": { + "text": "Aruba", + "meaning": "GAZ:00004025" + }, + "Ashmore and Cartier Islands": { + "text": "Ashmore and Cartier Islands", + "meaning": "GAZ:00005901" + }, + "Australia": { + "text": "Australia", + "meaning": "GAZ:00000463" + }, + "Austria": { + "text": "Austria", + "meaning": "GAZ:00002942" + }, + "Azerbaijan": { + "text": "Azerbaijan", + "meaning": "GAZ:00004941" + }, + "Bahamas": { + "text": "Bahamas", + "meaning": "GAZ:00002733" + }, + "Bahrain": { + "text": "Bahrain", + "meaning": "GAZ:00005281" + }, + "Baker Island": { + "text": "Baker Island", + "meaning": "GAZ:00007117" + }, + "Bangladesh": { + "text": "Bangladesh", + "meaning": "GAZ:00003750" + }, + "Barbados": { + "text": "Barbados", + "meaning": "GAZ:00001251" + }, + "Bassas da India": { + "text": "Bassas da India", + "meaning": "GAZ:00005810" + }, + "Belarus": { + "text": "Belarus", + "meaning": "GAZ:00006886" + }, + "Belgium": { + "text": "Belgium", + "meaning": "GAZ:00002938" + }, + "Belize": { + "text": "Belize", + "meaning": "GAZ:00002934" + }, + "Benin": { + "text": "Benin", + "meaning": "GAZ:00000904" + }, + "Bermuda": { + "text": "Bermuda", + "meaning": "GAZ:00001264" + }, + "Bhutan": { + "text": "Bhutan", + "meaning": "GAZ:00003920" + }, + "Bolivia": { + "text": "Bolivia", + "meaning": "GAZ:00002511" + }, + "Borneo": { + "text": "Borneo", + "meaning": "GAZ:00025355" + }, + "Bosnia and Herzegovina": { + "text": "Bosnia and Herzegovina", + "meaning": "GAZ:00006887" + }, + "Botswana": { + "text": "Botswana", + "meaning": "GAZ:00001097" + }, + "Bouvet Island": { + "text": "Bouvet Island", + "meaning": "GAZ:00001453" + }, + "Brazil": { + "text": "Brazil", + "meaning": "GAZ:00002828" + }, + "British Virgin Islands": { + "text": "British Virgin Islands", + "meaning": "GAZ:00003961" + }, + "Brunei": { + "text": "Brunei", + "meaning": "GAZ:00003901" + }, + "Bulgaria": { + "text": "Bulgaria", + "meaning": "GAZ:00002950" + }, + "Burkina Faso": { + "text": "Burkina Faso", + "meaning": "GAZ:00000905" + }, + "Burundi": { + "text": "Burundi", + "meaning": "GAZ:00001090" + }, + "Cambodia": { + "text": "Cambodia", + "meaning": "GAZ:00006888" + }, + "Cameroon": { + "text": "Cameroon", + "meaning": "GAZ:00001093" + }, + "Canada": { + "text": "Canada", + "meaning": "GAZ:00002560" + }, + "Cape Verde": { + "text": "Cape Verde", + "meaning": "GAZ:00001227" + }, + "Cayman Islands": { + "text": "Cayman Islands", + "meaning": "GAZ:00003986" + }, + "Central African Republic": { + "text": "Central African Republic", + "meaning": "GAZ:00001089" + }, + "Chad": { + "text": "Chad", + "meaning": "GAZ:00000586" + }, + "Chile": { + "text": "Chile", + "meaning": "GAZ:00002825" + }, + "China": { + "text": "China", + "meaning": "GAZ:00002845" + }, + "Christmas Island": { + "text": "Christmas Island", + "meaning": "GAZ:00005915" + }, + "Clipperton Island": { + "text": "Clipperton Island", + "meaning": "GAZ:00005838" + }, + "Cocos Islands": { + "text": "Cocos Islands", + "meaning": "GAZ:00009721" + }, + "Colombia": { + "text": "Colombia", + "meaning": "GAZ:00002929" + }, + "Comoros": { + "text": "Comoros", + "meaning": "GAZ:00005820" + }, + "Cook Islands": { + "text": "Cook Islands", + "meaning": "GAZ:00053798" + }, + "Coral Sea Islands": { + "text": "Coral Sea Islands", + "meaning": "GAZ:00005917" + }, + "Costa Rica": { + "text": "Costa Rica", + "meaning": "GAZ:00002901" + }, + "Cote d'Ivoire": { + "text": "Cote d'Ivoire", + "meaning": "GAZ:00000906" + }, + "Croatia": { + "text": "Croatia", + "meaning": "GAZ:00002719" + }, + "Cuba": { + "text": "Cuba", + "meaning": "GAZ:00003762" + }, + "Curacao": { + "text": "Curacao", + "meaning": "GAZ:00012582" + }, + "Cyprus": { + "text": "Cyprus", + "meaning": "GAZ:00004006" + }, + "Czech Republic": { + "text": "Czech Republic", + "meaning": "GAZ:00002954" + }, + "Democratic Republic of the Congo": { + "text": "Democratic Republic of the Congo", + "meaning": "GAZ:00001086" + }, + "Denmark": { + "text": "Denmark", + "meaning": "GAZ:00005852" + }, + "Djibouti": { + "text": "Djibouti", + "meaning": "GAZ:00000582" + }, + "Dominica": { + "text": "Dominica", + "meaning": "GAZ:00006890" + }, + "Dominican Republic": { + "text": "Dominican Republic", + "meaning": "GAZ:00003952" + }, + "Ecuador": { + "text": "Ecuador", + "meaning": "GAZ:00002912" + }, + "Egypt": { + "text": "Egypt", + "meaning": "GAZ:00003934" + }, + "El Salvador": { + "text": "El Salvador", + "meaning": "GAZ:00002935" + }, + "Equatorial Guinea": { + "text": "Equatorial Guinea", + "meaning": "GAZ:00001091" + }, + "Eritrea": { + "text": "Eritrea", + "meaning": "GAZ:00000581" + }, + "Estonia": { + "text": "Estonia", + "meaning": "GAZ:00002959" + }, + "Eswatini": { + "text": "Eswatini", + "meaning": "GAZ:00001099" + }, + "Ethiopia": { + "text": "Ethiopia", + "meaning": "GAZ:00000567" + }, + "Europa Island": { + "text": "Europa Island", + "meaning": "GAZ:00005811" + }, + "Falkland Islands (Islas Malvinas)": { + "text": "Falkland Islands (Islas Malvinas)", + "meaning": "GAZ:00001412" + }, + "Faroe Islands": { + "text": "Faroe Islands", + "meaning": "GAZ:00059206" + }, + "Fiji": { + "text": "Fiji", + "meaning": "GAZ:00006891" + }, + "Finland": { + "text": "Finland", + "meaning": "GAZ:00002937" + }, + "France": { + "text": "France", + "meaning": "GAZ:00003940" + }, + "French Guiana": { + "text": "French Guiana", + "meaning": "GAZ:00002516" + }, + "French Polynesia": { + "text": "French Polynesia", + "meaning": "GAZ:00002918" + }, + "French Southern and Antarctic Lands": { + "text": "French Southern and Antarctic Lands", + "meaning": "GAZ:00003753" + }, + "Gabon": { + "text": "Gabon", + "meaning": "GAZ:00001092" + }, + "Gambia": { + "text": "Gambia", + "meaning": "GAZ:00000907" + }, + "Gaza Strip": { + "text": "Gaza Strip", + "meaning": "GAZ:00009571" + }, + "Georgia": { + "text": "Georgia", + "meaning": "GAZ:00004942" + }, + "Germany": { + "text": "Germany", + "meaning": "GAZ:00002646" + }, + "Ghana": { + "text": "Ghana", + "meaning": "GAZ:00000908" + }, + "Gibraltar": { + "text": "Gibraltar", + "meaning": "GAZ:00003987" + }, + "Glorioso Islands": { + "text": "Glorioso Islands", + "meaning": "GAZ:00005808" + }, + "Greece": { + "text": "Greece", + "meaning": "GAZ:00002945" + }, + "Greenland": { + "text": "Greenland", + "meaning": "GAZ:00001507" + }, + "Grenada": { + "text": "Grenada", + "meaning": "GAZ:02000573" + }, + "Guadeloupe": { + "text": "Guadeloupe", + "meaning": "GAZ:00067142" + }, + "Guam": { + "text": "Guam", + "meaning": "GAZ:00003706" + }, + "Guatemala": { + "text": "Guatemala", + "meaning": "GAZ:00002936" + }, + "Guernsey": { + "text": "Guernsey", + "meaning": "GAZ:00001550" + }, + "Guinea": { + "text": "Guinea", + "meaning": "GAZ:00000909" + }, + "Guinea-Bissau": { + "text": "Guinea-Bissau", + "meaning": "GAZ:00000910" + }, + "Guyana": { + "text": "Guyana", + "meaning": "GAZ:00002522" + }, + "Haiti": { + "text": "Haiti", + "meaning": "GAZ:00003953" + }, + "Heard Island and McDonald Islands": { + "text": "Heard Island and McDonald Islands", + "meaning": "GAZ:00009718" + }, + "Honduras": { + "text": "Honduras", + "meaning": "GAZ:00002894" + }, + "Hong Kong": { + "text": "Hong Kong", + "meaning": "GAZ:00003203" + }, + "Howland Island": { + "text": "Howland Island", + "meaning": "GAZ:00007120" + }, + "Hungary": { + "text": "Hungary", + "meaning": "GAZ:00002952" + }, + "Iceland": { + "text": "Iceland", + "meaning": "GAZ:00000843" + }, + "India": { + "text": "India", + "meaning": "GAZ:00002839" + }, + "Indonesia": { + "text": "Indonesia", + "meaning": "GAZ:00003727" + }, + "Iran": { + "text": "Iran", + "meaning": "GAZ:00004474" + }, + "Iraq": { + "text": "Iraq", + "meaning": "GAZ:00004483" + }, + "Ireland": { + "text": "Ireland", + "meaning": "GAZ:00002943" + }, + "Isle of Man": { + "text": "Isle of Man", + "meaning": "GAZ:00052477" + }, + "Israel": { + "text": "Israel", + "meaning": "GAZ:00002476" + }, + "Italy": { + "text": "Italy", + "meaning": "GAZ:00002650" + }, + "Jamaica": { + "text": "Jamaica", + "meaning": "GAZ:00003781" + }, + "Jan Mayen": { + "text": "Jan Mayen", + "meaning": "GAZ:00005853" + }, + "Japan": { + "text": "Japan", + "meaning": "GAZ:00002747" + }, + "Jarvis Island": { + "text": "Jarvis Island", + "meaning": "GAZ:00007118" + }, + "Jersey": { + "text": "Jersey", + "meaning": "GAZ:00001551" + }, + "Johnston Atoll": { + "text": "Johnston Atoll", + "meaning": "GAZ:00007114" + }, + "Jordan": { + "text": "Jordan", + "meaning": "GAZ:00002473" + }, + "Juan de Nova Island": { + "text": "Juan de Nova Island", + "meaning": "GAZ:00005809" + }, + "Kazakhstan": { + "text": "Kazakhstan", + "meaning": "GAZ:00004999" + }, + "Kenya": { + "text": "Kenya", + "meaning": "GAZ:00001101" + }, + "Kerguelen Archipelago": { + "text": "Kerguelen Archipelago", + "meaning": "GAZ:00005682" + }, + "Kingman Reef": { + "text": "Kingman Reef", + "meaning": "GAZ:00007116" + }, + "Kiribati": { + "text": "Kiribati", + "meaning": "GAZ:00006894" + }, + "Kosovo": { + "text": "Kosovo", + "meaning": "GAZ:00011337" + }, + "Kuwait": { + "text": "Kuwait", + "meaning": "GAZ:00005285" + }, + "Kyrgyzstan": { + "text": "Kyrgyzstan", + "meaning": "GAZ:00006893" + }, + "Laos": { + "text": "Laos", + "meaning": "GAZ:00006889" + }, + "Latvia": { + "text": "Latvia", + "meaning": "GAZ:00002958" + }, + "Lebanon": { + "text": "Lebanon", + "meaning": "GAZ:00002478" + }, + "Lesotho": { + "text": "Lesotho", + "meaning": "GAZ:00001098" + }, + "Liberia": { + "text": "Liberia", + "meaning": "GAZ:00000911" + }, + "Libya": { + "text": "Libya", + "meaning": "GAZ:00000566" + }, + "Liechtenstein": { + "text": "Liechtenstein", + "meaning": "GAZ:00003858" + }, + "Line Islands": { + "text": "Line Islands", + "meaning": "GAZ:00007144" + }, + "Lithuania": { + "text": "Lithuania", + "meaning": "GAZ:00002960" + }, + "Luxembourg": { + "text": "Luxembourg", + "meaning": "GAZ:00002947" + }, + "Macau": { + "text": "Macau", + "meaning": "GAZ:00003202" + }, + "Madagascar": { + "text": "Madagascar", + "meaning": "GAZ:00001108" + }, + "Malawi": { + "text": "Malawi", + "meaning": "GAZ:00001105" + }, + "Malaysia": { + "text": "Malaysia", + "meaning": "GAZ:00003902" + }, + "Maldives": { + "text": "Maldives", + "meaning": "GAZ:00006924" + }, + "Mali": { + "text": "Mali", + "meaning": "GAZ:00000584" + }, + "Malta": { + "text": "Malta", + "meaning": "GAZ:00004017" + }, + "Marshall Islands": { + "text": "Marshall Islands", + "meaning": "GAZ:00007161" + }, + "Martinique": { + "text": "Martinique", + "meaning": "GAZ:00067143" + }, + "Mauritania": { + "text": "Mauritania", + "meaning": "GAZ:00000583" + }, + "Mauritius": { + "text": "Mauritius", + "meaning": "GAZ:00003745" + }, + "Mayotte": { + "text": "Mayotte", + "meaning": "GAZ:00003943" + }, + "Mexico": { + "text": "Mexico", + "meaning": "GAZ:00002852" + }, + "Micronesia": { + "text": "Micronesia", + "meaning": "GAZ:00005862" + }, + "Midway Islands": { + "text": "Midway Islands", + "meaning": "GAZ:00007112" + }, + "Moldova": { + "text": "Moldova", + "meaning": "GAZ:00003897" + }, + "Monaco": { + "text": "Monaco", + "meaning": "GAZ:00003857" + }, + "Mongolia": { + "text": "Mongolia", + "meaning": "GAZ:00008744" + }, + "Montenegro": { + "text": "Montenegro", + "meaning": "GAZ:00006898" + }, + "Montserrat": { + "text": "Montserrat", + "meaning": "GAZ:00003988" + }, + "Morocco": { + "text": "Morocco", + "meaning": "GAZ:00000565" + }, + "Mozambique": { + "text": "Mozambique", + "meaning": "GAZ:00001100" + }, + "Myanmar": { + "text": "Myanmar", + "meaning": "GAZ:00006899" + }, + "Namibia": { + "text": "Namibia", + "meaning": "GAZ:00001096" + }, + "Nauru": { + "text": "Nauru", + "meaning": "GAZ:00006900" + }, + "Navassa Island": { + "text": "Navassa Island", + "meaning": "GAZ:00007119" + }, + "Nepal": { + "text": "Nepal", + "meaning": "GAZ:00004399" + }, + "Netherlands": { + "text": "Netherlands", + "meaning": "GAZ:00002946" + }, + "New Caledonia": { + "text": "New Caledonia", + "meaning": "GAZ:00005206" + }, + "New Zealand": { + "text": "New Zealand", + "meaning": "GAZ:00000469" + }, + "Nicaragua": { + "text": "Nicaragua", + "meaning": "GAZ:00002978" + }, + "Niger": { + "text": "Niger", + "meaning": "GAZ:00000585" + }, + "Nigeria": { + "text": "Nigeria", + "meaning": "GAZ:00000912" + }, + "Niue": { + "text": "Niue", + "meaning": "GAZ:00006902" + }, + "Norfolk Island": { + "text": "Norfolk Island", + "meaning": "GAZ:00005908" + }, + "North Korea": { + "text": "North Korea", + "meaning": "GAZ:00002801" + }, + "North Macedonia": { + "text": "North Macedonia", + "meaning": "GAZ:00006895" + }, + "North Sea": { + "text": "North Sea", + "meaning": "GAZ:00002284" + }, + "Northern Mariana Islands": { + "text": "Northern Mariana Islands", + "meaning": "GAZ:00003958" + }, + "Norway": { + "text": "Norway", + "meaning": "GAZ:00002699" + }, + "Oman": { + "text": "Oman", + "meaning": "GAZ:00005283" + }, + "Pakistan": { + "text": "Pakistan", + "meaning": "GAZ:00005246" + }, + "Palau": { + "text": "Palau", + "meaning": "GAZ:00006905" + }, + "Panama": { + "text": "Panama", + "meaning": "GAZ:00002892" + }, + "Papua New Guinea": { + "text": "Papua New Guinea", + "meaning": "GAZ:00003922" + }, + "Paracel Islands": { + "text": "Paracel Islands", + "meaning": "GAZ:00010832" + }, + "Paraguay": { + "text": "Paraguay", + "meaning": "GAZ:00002933" + }, + "Peru": { + "text": "Peru", + "meaning": "GAZ:00002932" + }, + "Philippines": { + "text": "Philippines", + "meaning": "GAZ:00004525" + }, + "Pitcairn Islands": { + "text": "Pitcairn Islands", + "meaning": "GAZ:00005867" + }, + "Poland": { + "text": "Poland", + "meaning": "GAZ:00002939" + }, + "Portugal": { + "text": "Portugal", + "meaning": "GAZ:00004126" + }, + "Puerto Rico": { + "text": "Puerto Rico", + "meaning": "GAZ:00006935" + }, + "Qatar": { + "text": "Qatar", + "meaning": "GAZ:00005286" + }, + "Republic of the Congo": { + "text": "Republic of the Congo", + "meaning": "GAZ:00001088" + }, + "Reunion": { + "text": "Reunion", + "meaning": "GAZ:00003945" + }, + "Romania": { + "text": "Romania", + "meaning": "GAZ:00002951" + }, + "Ross Sea": { + "text": "Ross Sea", + "meaning": "GAZ:00023304" + }, + "Russia": { + "text": "Russia", + "meaning": "GAZ:00002721" + }, + "Rwanda": { + "text": "Rwanda", + "meaning": "GAZ:00001087" + }, + "Saint Helena": { + "text": "Saint Helena", + "meaning": "GAZ:00000849" + }, + "Saint Kitts and Nevis": { + "text": "Saint Kitts and Nevis", + "meaning": "GAZ:00006906" + }, + "Saint Lucia": { + "text": "Saint Lucia", + "meaning": "GAZ:00006909" + }, + "Saint Pierre and Miquelon": { + "text": "Saint Pierre and Miquelon", + "meaning": "GAZ:00003942" + }, + "Saint Martin": { + "text": "Saint Martin", + "meaning": "GAZ:00005841" + }, + "Saint Vincent and the Grenadines": { + "text": "Saint Vincent and the Grenadines", + "meaning": "GAZ:02000565" + }, + "Samoa": { + "text": "Samoa", + "meaning": "GAZ:00006910" + }, + "San Marino": { + "text": "San Marino", + "meaning": "GAZ:00003102" + }, + "Sao Tome and Principe": { + "text": "Sao Tome and Principe", + "meaning": "GAZ:00006927" + }, + "Saudi Arabia": { + "text": "Saudi Arabia", + "meaning": "GAZ:00005279" + }, + "Senegal": { + "text": "Senegal", + "meaning": "GAZ:00000913" + }, + "Serbia": { + "text": "Serbia", + "meaning": "GAZ:00002957" + }, + "Seychelles": { + "text": "Seychelles", + "meaning": "GAZ:00006922" + }, + "Sierra Leone": { + "text": "Sierra Leone", + "meaning": "GAZ:00000914" + }, + "Singapore": { + "text": "Singapore", + "meaning": "GAZ:00003923" + }, + "Sint Maarten": { + "text": "Sint Maarten", + "meaning": "GAZ:00012579" + }, + "Slovakia": { + "text": "Slovakia", + "meaning": "GAZ:00002956" + }, + "Slovenia": { + "text": "Slovenia", + "meaning": "GAZ:00002955" + }, + "Solomon Islands": { + "text": "Solomon Islands", + "meaning": "GAZ:00005275" + }, + "Somalia": { + "text": "Somalia", + "meaning": "GAZ:00001104" + }, + "South Africa": { + "text": "South Africa", + "meaning": "GAZ:00001094" + }, + "South Georgia and the South Sandwich Islands": { + "text": "South Georgia and the South Sandwich Islands", + "meaning": "GAZ:00003990" + }, + "South Korea": { + "text": "South Korea", + "meaning": "GAZ:00002802" + }, + "South Sudan": { + "text": "South Sudan", + "meaning": "GAZ:00233439" + }, + "Spain": { + "text": "Spain", + "meaning": "GAZ:00003936" + }, + "Spratly Islands": { + "text": "Spratly Islands", + "meaning": "GAZ:00010831" + }, + "Sri Lanka": { + "text": "Sri Lanka", + "meaning": "GAZ:00003924" + }, + "State of Palestine": { + "text": "State of Palestine", + "meaning": "GAZ:00002475" + }, + "Sudan": { + "text": "Sudan", + "meaning": "GAZ:00000560" + }, + "Suriname": { + "text": "Suriname", + "meaning": "GAZ:00002525" + }, + "Svalbard": { + "text": "Svalbard", + "meaning": "GAZ:00005396" + }, + "Swaziland": { + "text": "Swaziland", + "meaning": "GAZ:00001099" + }, + "Sweden": { + "text": "Sweden", + "meaning": "GAZ:00002729" + }, + "Switzerland": { + "text": "Switzerland", + "meaning": "GAZ:00002941" + }, + "Syria": { + "text": "Syria", + "meaning": "GAZ:00002474" + }, + "Taiwan": { + "text": "Taiwan", + "meaning": "GAZ:00005341" + }, + "Tajikistan": { + "text": "Tajikistan", + "meaning": "GAZ:00006912" + }, + "Tanzania": { + "text": "Tanzania", + "meaning": "GAZ:00001103" + }, + "Thailand": { + "text": "Thailand", + "meaning": "GAZ:00003744" + }, + "Timor-Leste": { + "text": "Timor-Leste", + "meaning": "GAZ:00006913" + }, + "Togo": { + "text": "Togo", + "meaning": "GAZ:00000915" + }, + "Tokelau": { + "text": "Tokelau", + "meaning": "GAZ:00260188" + }, + "Tonga": { + "text": "Tonga", + "meaning": "GAZ:00006916" + }, + "Trinidad and Tobago": { + "text": "Trinidad and Tobago", + "meaning": "GAZ:00003767" + }, + "Tromelin Island": { + "text": "Tromelin Island", + "meaning": "GAZ:00005812" + }, + "Tunisia": { + "text": "Tunisia", + "meaning": "GAZ:00000562" + }, + "Turkey": { + "text": "Turkey", + "meaning": "GAZ:00000558" + }, + "Turkmenistan": { + "text": "Turkmenistan", + "meaning": "GAZ:00005018" + }, + "Turks and Caicos Islands": { + "text": "Turks and Caicos Islands", + "meaning": "GAZ:00003955" + }, + "Tuvalu": { + "text": "Tuvalu", + "meaning": "GAZ:00009715" + }, + "United States of America": { + "text": "United States of America", + "meaning": "GAZ:00002459" + }, + "Uganda": { + "text": "Uganda", + "meaning": "GAZ:00001102" + }, + "Ukraine": { + "text": "Ukraine", + "meaning": "GAZ:00002724" + }, + "United Arab Emirates": { + "text": "United Arab Emirates", + "meaning": "GAZ:00005282" + }, + "United Kingdom": { + "text": "United Kingdom", + "meaning": "GAZ:00002637" + }, + "Uruguay": { + "text": "Uruguay", + "meaning": "GAZ:00002930" + }, + "Uzbekistan": { + "text": "Uzbekistan", + "meaning": "GAZ:00004979" + }, + "Vanuatu": { + "text": "Vanuatu", + "meaning": "GAZ:00006918" + }, + "Venezuela": { + "text": "Venezuela", + "meaning": "GAZ:00002931" + }, + "Viet Nam": { + "text": "Viet Nam", + "meaning": "GAZ:00003756" + }, + "Virgin Islands": { + "text": "Virgin Islands", + "meaning": "GAZ:00003959" + }, + "Wake Island": { + "text": "Wake Island", + "meaning": "GAZ:00007111" + }, + "Wallis and Futuna": { + "text": "Wallis and Futuna", + "meaning": "GAZ:00007191" + }, + "West Bank": { + "text": "West Bank", + "meaning": "GAZ:00009572" + }, + "Western Sahara": { + "text": "Western Sahara", + "meaning": "GAZ:00000564" + }, + "Yemen": { + "text": "Yemen", + "meaning": "GAZ:00005284" + }, + "Zambia": { + "text": "Zambia", + "meaning": "GAZ:00001107" + }, + "Zimbabwe": { + "text": "Zimbabwe", + "meaning": "GAZ:00001106" + } + } + }, + "geo_loc_name (site) menu": { + "name": "geo_loc_name (site) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Banff National Park": { + "text": "Banff National Park", + "meaning": "GAZ:00055489" + }, + "Clayoquot Sound": { + "text": "Clayoquot Sound", + "meaning": "GAZ:00055538" + }, + "Grassi Lakes": { + "text": "Grassi Lakes" + }, + "Horseshoe Canyon": { + "text": "Horseshoe Canyon", + "meaning": "GAZ:00284745" + }, + "Ink Pots": { + "text": "Ink Pots" + }, + "Lake Louise": { + "text": "Lake Louise", + "meaning": "GAZ:00084160" + }, + "Sylvan Lake": { + "text": "Sylvan Lake", + "meaning": "GAZ:00084188" + } + } + }, + "purpose of sampling menu": { + "name": "purpose of sampling menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Cluster/Outbreak investigation": { + "text": "Cluster/Outbreak investigation", + "meaning": "GENEPIO:0100001" + }, + "Diagnostic testing": { + "text": "Diagnostic testing", + "meaning": "GENEPIO:0100002" + }, + "Research": { + "text": "Research", + "meaning": "GENEPIO:0100003" + }, + "Survey study": { + "text": "Survey study", + "meaning": "GENEPIO:0100582", + "is_a": "Research" + }, + "Surveillance": { + "text": "Surveillance", + "meaning": "GENEPIO:0100004" + } + } + }, + "anatomical material menu": { + "name": "anatomical material menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Skin": { + "text": "Skin", + "meaning": "UBERON:0002097" + }, + "Tissue": { + "text": "Tissue", + "meaning": "UBERON:0000479" + }, + "Pierced tissue": { + "text": "Pierced tissue", + "is_a": "Tissue" + }, + "Wound tissue (injury)": { + "text": "Wound tissue (injury)", + "meaning": "NCIT:C3671", + "is_a": "Tissue" + } + } + }, + "anatomical part menu": { + "name": "anatomical part menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Animal body or body part": { + "text": "Animal body or body part", + "meaning": "FOODON:03420127" + }, + "Berry": { + "text": "Berry", + "meaning": "FOODON:00003521" + }, + "Colon": { + "text": "Colon", + "meaning": "UBERON:0001155" + }, + "Ascending colon": { + "text": "Ascending colon", + "meaning": "UBERON:0001156", + "is_a": "Colon" + }, + "Ear": { + "text": "Ear", + "meaning": "UBERON:0001690" + }, + "Flower": { + "text": "Flower", + "meaning": "PO:0009046" + }, + "Flower petal": { + "text": "Flower petal", + "meaning": "PO:0009032", + "is_a": "Flower" + }, + "Leaf": { + "text": "Leaf", + "meaning": "PO:0025034" + }, + "Nasal cavity": { + "text": "Nasal cavity", + "meaning": "UBERON:0001707" + }, + "Oral cavity": { + "text": "Oral cavity", + "meaning": "UBERON:0000167" + }, + "Vagina": { + "text": "Vagina", + "meaning": "UBERON:0000996" + } + } + }, + "body product menu": { + "name": "body product menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Feces": { + "text": "Feces", + "meaning": "UBERON:0001988" + } + } + }, + "environmental material menu": { + "name": "environmental material menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Algal film": { + "text": "Algal film", + "meaning": "ENVO:01001189" + }, + "Bandage": { + "text": "Bandage" + }, + "Cerebral spinal fluid (CSF) shunt": { + "text": "Cerebral spinal fluid (CSF) shunt" + }, + "Food": { + "text": "Food", + "meaning": "CHEBI:33290" + }, + "Gauze": { + "text": "Gauze" + }, + "Gravel": { + "text": "Gravel", + "meaning": "ENVO:01000018" + }, + "Moss": { + "text": "Moss" + }, + "Peat": { + "text": "Peat", + "meaning": "ENVO:00005774" + }, + "Phone": { + "text": "Phone", + "meaning": "ENVO:01000581" + }, + "Phone screen": { + "text": "Phone screen", + "is_a": "Phone" + }, + "Pipe (metal)": { + "text": "Pipe (metal)" + }, + "Prosthetic limb": { + "text": "Prosthetic limb" + }, + "Prosthetic hip": { + "text": "Prosthetic hip", + "is_a": "Prosthetic limb" + }, + "Rock": { + "text": "Rock", + "meaning": "ENVO:00001995" + }, + "Sand": { + "text": "Sand", + "meaning": "ENVO:01000017" + }, + "Black sand": { + "text": "Black sand", + "is_a": "Sand" + }, + "Copper sand": { + "text": "Copper sand", + "is_a": "Sand" + }, + "Sludge": { + "text": "Sludge", + "meaning": "ENVO:00002044" + }, + "Soil": { + "text": "Soil", + "meaning": "ENVO:00001998" + }, + "Snow": { + "text": "Snow", + "meaning": "ENVO:01000406" + }, + "Water": { + "text": "Water", + "meaning": "ENVO:00002006" + }, + "Surface runoff": { + "text": "Surface runoff", + "is_a": "Water" + }, + "Surface water foam": { + "text": "Surface water foam", + "meaning": "ENVO:00005738", + "is_a": "Water" + }, + "Tap water": { + "text": "Tap water", + "is_a": "Water" + }, + "Drinking water": { + "text": "Drinking water", + "meaning": "ENVO:00003064", + "is_a": "Tap water" + }, + "Water outlet": { + "text": "Water outlet" + } + } + }, + "environmental site menu": { + "name": "environmental site menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Bird bath": { + "text": "Bird bath" + }, + "Deep water area": { + "text": "Deep water area" + }, + "Fish tank": { + "text": "Fish tank" + }, + "Fountain": { + "text": "Fountain" + }, + "Fountain pond": { + "text": "Fountain pond", + "is_a": "Fountain" + }, + "Hoodoo": { + "text": "Hoodoo" + }, + "Hospital": { + "text": "Hospital", + "meaning": "ENVO:00002173" + }, + "Laboratory": { + "text": "Laboratory", + "meaning": "ENVO:01001406" + }, + "Lake": { + "text": "Lake", + "meaning": "ENVO:00000020" + }, + "Pond": { + "text": "Pond", + "meaning": "ENVO:00000033" + }, + "Shoreline": { + "text": "Shoreline", + "meaning": "ENVO:00000486" + }, + "Stream": { + "text": "Stream", + "meaning": "ENVO:00000023" + }, + "Tailing pond": { + "text": "Tailing pond", + "meaning": "ENVO:03600021" + }, + "Waterfall": { + "text": "Waterfall", + "meaning": "ENVO:00000040" + } + } + }, + "collection device menu": { + "name": "collection device menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Filter": { + "text": "Filter", + "meaning": "GENEPIO:0100103" + }, + "Filter cage": { + "text": "Filter cage", + "is_a": "Filter" + }, + "Swab": { + "text": "Swab", + "meaning": "GENEPIO:0100027" + } + } + }, + "collection method menu": { + "name": "collection method menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Biopsy": { + "text": "Biopsy", + "meaning": "OBI:0002650" + } + } + }, + "specimen processing menu": { + "name": "specimen processing menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Biological replicate": { + "text": "Biological replicate", + "meaning": "EFO:0002091" + } + } + }, + "incubation temperature unit menu": { + "name": "incubation temperature unit menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Degree Celsius": { + "text": "Degree Celsius", + "meaning": "UO:0000027" + }, + "Degree Farenheit": { + "text": "Degree Farenheit", + "meaning": "UO:0000195" + } + } + }, + "isolation medium menu": { + "name": "isolation medium menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "1/10 869": { + "text": "1/10 869" + }, + "Anaerobic agar (AA)": { + "text": "Anaerobic agar (AA)" + }, + "Bile esculin agar (BEA)": { + "text": "Bile esculin agar (BEA)", + "meaning": "MICRO:0000605" + }, + "Brain heart infusion (BHI)": { + "text": "Brain heart infusion (BHI)", + "meaning": "MICRO:0000566" + }, + "Brain heart infusion III + Supplement Set A (BHI-A)": { + "text": "Brain heart infusion III + Supplement Set A (BHI-A)", + "is_a": "Brain heart infusion (BHI)" + }, + "Brain heart infusion II + Supplement Set B (BHI-B)": { + "text": "Brain heart infusion II + Supplement Set B (BHI-B)", + "is_a": "Brain heart infusion (BHI)" + }, + "Brain heart infusion IV + Supplement Set A & B (BHI-AB)": { + "text": "Brain heart infusion IV + Supplement Set A & B (BHI-AB)", + "is_a": "Brain heart infusion (BHI)" + }, + "Supplemented BHI (sBHI 2.0)": { + "text": "Supplemented BHI (sBHI 2.0)", + "is_a": "Brain heart infusion (BHI)" + }, + "Brewer’s anaerobic agar (BAA)": { + "text": "Brewer’s anaerobic agar (BAA)" + }, + "Brucella blood agar + 5% sheep’s blood": { + "text": "Brucella blood agar + 5% sheep’s blood", + "meaning": "MICRO:0000086" + }, + "Chocolate blood agar": { + "text": "Chocolate blood agar", + "meaning": "MICRO:0000591" + }, + "Columbia blood agar + 5% sheep’s blood (CBA)": { + "text": "Columbia blood agar + 5% sheep’s blood (CBA)", + "meaning": "MICRO:0000535" + }, + "Cooked meat medium from dehydrated meat extracts (Meat)": { + "text": "Cooked meat medium from dehydrated meat extracts (Meat)" + }, + "Cooke rose bengal agar (CRB)": { + "text": "Cooke rose bengal agar (CRB)" + }, + "Desoxycholate (DOC)": { + "text": "Desoxycholate (DOC)" + }, + "Fastidious anaerobic agar (FAA)": { + "text": "Fastidious anaerobic agar (FAA)" + }, + "Kligler iron agar (KIA)": { + "text": "Kligler iron agar (KIA)", + "meaning": "MICRO:0001182" + }, + "Lysogeny broth agar (LB)": { + "text": "Lysogeny broth agar (LB)" + }, + "M9 minimal medium (M9)": { + "text": "M9 minimal medium (M9)" + }, + "M9 minimal media + insulin (M9 + insulin)": { + "text": "M9 minimal media + insulin (M9 + insulin)", + "is_a": "M9 minimal medium (M9)" + }, + "M9 minimal media + mucin (M9 + mucin)": { + "text": "M9 minimal media + mucin (M9 + mucin)", + "is_a": "M9 minimal medium (M9)" + }, + "M9 minimal media + starch (M9 + starch)": { + "text": "M9 minimal media + starch (M9 + starch)", + "is_a": "M9 minimal medium (M9)" + }, + "M17 minimal medium (M17)": { + "text": "M17 minimal medium (M17)" + }, + "MacConkey agar (MCA)": { + "text": "MacConkey agar (MCA)", + "meaning": "MICRO:0000558" + }, + "Marine broth agar (MBA)": { + "text": "Marine broth agar (MBA)" + }, + "Medium 10 agar (M10)": { + "text": "Medium 10 agar (M10)" + }, + "Medium DAMS5.8 simple": { + "text": "Medium DAMS5.8 simple" + }, + "No salt lysogeny broth agar (NSLB)": { + "text": "No salt lysogeny broth agar (NSLB)" + }, + "No salt lysogeny broth agar + 5-15% sucrose (NSLB + 5-15% sucrose)": { + "text": "No salt lysogeny broth agar + 5-15% sucrose (NSLB + 5-15% sucrose)", + "is_a": "No salt lysogeny broth agar (NSLB)" + }, + "Nutrient agar": { + "text": "Nutrient agar", + "meaning": "MICRO:0000553" + }, + "Phenylethyl alcohol agar + 5% sheep’s blood (PEA)": { + "text": "Phenylethyl alcohol agar + 5% sheep’s blood (PEA)", + "meaning": "MICRO:0000622" + }, + "Plate count medium (PC)": { + "text": "Plate count medium (PC)", + "meaning": "MICRO:0000549" + }, + "Pseudomonas isolation medium (PIA)": { + "text": "Pseudomonas isolation medium (PIA)", + "meaning": "MICRO:0000550" + }, + "Reasoner's 2A agar (R2A)": { + "text": "Reasoner's 2A agar (R2A)", + "meaning": "MICRO:0000543" + }, + "Reinforced Clostridial agar (RCA)": { + "text": "Reinforced Clostridial agar (RCA)" + }, + "Staphylococcus isolation medium (SIA)": { + "text": "Staphylococcus isolation medium (SIA)" + }, + "Tryptic soy agar + Supplement A & B + yeast (TSY)": { + "text": "Tryptic soy agar + Supplement A & B + yeast (TSY)" + }, + "Sheep’s blood (5%)": { + "text": "Sheep’s blood (5%)" + }, + "Supplement A": { + "text": "Supplement A" + }, + "Supplement B": { + "text": "Supplement B" + }, + "Supplement 2.0": { + "text": "Supplement 2.0" + } + } + }, + "taxonomic identification method menu": { + "name": "taxonomic identification method menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Whole genome sequencing assay": { + "text": "Whole genome sequencing assay", + "meaning": "OBI:0002117" + }, + "16S ribosomal gene sequencing assay": { + "text": "16S ribosomal gene sequencing assay", + "meaning": "OBI:0002763" + }, + "PCR assay": { + "text": "PCR assay", + "meaning": "OBI:0002740" + }, + "Comparative phenotypic assessment": { + "text": "Comparative phenotypic assessment", + "meaning": "OBI:0001546" + } + } + }, + "taxonomic identification method details menu": { + "name": "taxonomic identification method details menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database": { + "text": "Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database" + }, + "Genus-level ID: >99.0% identity but ambiguous match to >1 type (T) sequence in databases": { + "text": "Genus-level ID: >99.0% identity but ambiguous match to >1 type (T) sequence in databases" + }, + "Genus-level ID: >98.7% identity to a type (T) sequence AND/OR >99.0% identity with a sequence that has not been typed*": { + "text": "Genus-level ID: >98.7% identity to a type (T) sequence AND/OR >99.0% identity with a sequence that has not been typed*" + }, + "Need to do whole genome sequencing to confirm their identity": { + "text": "Need to do whole genome sequencing to confirm their identity" + } + } + }, + "cellular respiration type menu": { + "name": "cellular respiration type menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Aerobic respiration": { + "text": "Aerobic respiration", + "meaning": "GO:0009060" + }, + "Anaerobic respiration": { + "text": "Anaerobic respiration", + "meaning": "GO:0009061" + } + } + }, + "host (common name) menu": { + "name": "host (common name) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Horse": { + "text": "Horse", + "meaning": "NCBITaxon:9796" + }, + "Human": { + "text": "Human", + "meaning": "NCBITaxon:9606" + }, + "Plant": { + "text": "Plant", + "meaning": "NCBITaxon:47299" + }, + "Bush": { + "text": "Bush", + "is_a": "Plant" + }, + "Canola plant": { + "text": "Canola plant", + "is_a": "Plant" + }, + "Gerranium plant": { + "text": "Gerranium plant", + "meaning": "NCBITaxon:4028", + "is_a": "Plant" + }, + "Tree": { + "text": "Tree", + "is_a": "Plant" + }, + "Poplar tree": { + "text": "Poplar tree", + "is_a": "Tree" + }, + "Willow tree": { + "text": "Willow tree", + "is_a": "Tree" + }, + "Snail": { + "text": "Snail", + "meaning": "FOODON:03412114" + } + } + }, + "host (scientific name) menu": { + "name": "host (scientific name) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Equus caballus": { + "text": "Equus caballus" + }, + "Homo sapiens": { + "text": "Homo sapiens" + } + } + }, + "host disease menu": { + "name": "host disease menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Colitis": { + "text": "Colitis" + }, + "Acute colitis": { + "text": "Acute colitis", + "is_a": "Colitis" + }, + "Cystic fibrosis": { + "text": "Cystic fibrosis" + }, + "Gastroenteritis": { + "text": "Gastroenteritis" + }, + "Pyelonephritis": { + "text": "Pyelonephritis" + }, + "Acute pyelonephritis": { + "text": "Acute pyelonephritis", + "is_a": "Pyelonephritis" + }, + "Urinary tract infection": { + "text": "Urinary tract infection" + } + } + }, + "sequencing instrument menu": { + "name": "sequencing instrument menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Illumina": { + "text": "Illumina", + "meaning": "GENEPIO:0100105" + }, + "Illumina Genome Analyzer": { + "text": "Illumina Genome Analyzer", + "meaning": "GENEPIO:0100106", + "is_a": "Illumina" + }, + "Illumina Genome Analyzer II": { + "text": "Illumina Genome Analyzer II", + "meaning": "GENEPIO:0100107", + "is_a": "Illumina Genome Analyzer" + }, + "Illumina Genome Analyzer IIx": { + "text": "Illumina Genome Analyzer IIx", + "meaning": "GENEPIO:0100108", + "is_a": "Illumina Genome Analyzer" + }, + "Illumina HiScanSQ": { + "text": "Illumina HiScanSQ", + "meaning": "GENEPIO:0100109", + "is_a": "Illumina" + }, + "Illumina HiSeq": { + "text": "Illumina HiSeq", + "meaning": "GENEPIO:0100110", + "is_a": "Illumina" + }, + "Illumina HiSeq X": { + "text": "Illumina HiSeq X", + "meaning": "GENEPIO:0100111", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq X Five": { + "text": "Illumina HiSeq X Five", + "meaning": "GENEPIO:0100112", + "is_a": "Illumina HiSeq X" + }, + "Illumina HiSeq X Ten": { + "text": "Illumina HiSeq X Ten", + "meaning": "GENEPIO:0100113", + "is_a": "Illumina HiSeq X" + }, + "Illumina HiSeq 1000": { + "text": "Illumina HiSeq 1000", + "meaning": "GENEPIO:0100114", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 1500": { + "text": "Illumina HiSeq 1500", + "meaning": "GENEPIO:0100115", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 2000": { + "text": "Illumina HiSeq 2000", + "meaning": "GENEPIO:0100116", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 2500": { + "text": "Illumina HiSeq 2500", + "meaning": "GENEPIO:0100117", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 3000": { + "text": "Illumina HiSeq 3000", + "meaning": "GENEPIO:0100118", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 4000": { + "text": "Illumina HiSeq 4000", + "meaning": "GENEPIO:0100119", + "is_a": "Illumina HiSeq" + }, + "Illumina iSeq": { + "text": "Illumina iSeq", + "meaning": "GENEPIO:0100120", + "is_a": "Illumina" + }, + "Illumina iSeq 100": { + "text": "Illumina iSeq 100", + "meaning": "GENEPIO:0100121", + "is_a": "Illumina iSeq" + }, + "Illumina NovaSeq": { + "text": "Illumina NovaSeq", + "meaning": "GENEPIO:0100122", + "is_a": "Illumina" + }, + "Illumina NovaSeq 6000": { + "text": "Illumina NovaSeq 6000", + "meaning": "GENEPIO:0100123", + "is_a": "Illumina NovaSeq" + }, + "Illumina MiniSeq": { + "text": "Illumina MiniSeq", + "meaning": "GENEPIO:0100124", + "is_a": "Illumina" + }, + "Illumina MiSeq": { + "text": "Illumina MiSeq", + "meaning": "GENEPIO:0100125", + "is_a": "Illumina" + }, + "Illumina NextSeq": { + "text": "Illumina NextSeq", + "meaning": "GENEPIO:0100126", + "is_a": "Illumina" + }, + "Illumina NextSeq 500": { + "text": "Illumina NextSeq 500", + "meaning": "GENEPIO:0100127", + "is_a": "Illumina NextSeq" + }, + "Illumina NextSeq 550": { + "text": "Illumina NextSeq 550", + "meaning": "GENEPIO:0100128", + "is_a": "Illumina NextSeq" + }, + "Illumina NextSeq 2000": { + "text": "Illumina NextSeq 2000", + "meaning": "GENEPIO:0100129", + "is_a": "Illumina NextSeq" + }, + "Pacific Biosciences": { + "text": "Pacific Biosciences", + "meaning": "GENEPIO:0100130" + }, + "PacBio RS": { + "text": "PacBio RS", + "meaning": "GENEPIO:0100131", + "is_a": "Pacific Biosciences" + }, + "PacBio RS II": { + "text": "PacBio RS II", + "meaning": "GENEPIO:0100132", + "is_a": "Pacific Biosciences" + }, + "PacBio Sequel": { + "text": "PacBio Sequel", + "meaning": "GENEPIO:0100133", + "is_a": "Pacific Biosciences" + }, + "PacBio Sequel II": { + "text": "PacBio Sequel II", + "meaning": "GENEPIO:0100134", + "is_a": "Pacific Biosciences" + }, + "Ion Torrent": { + "text": "Ion Torrent", + "meaning": "GENEPIO:0100135" + }, + "Ion Torrent PGM": { + "text": "Ion Torrent PGM", + "meaning": "GENEPIO:0100136", + "is_a": "Ion Torrent" + }, + "Ion Torrent Proton": { + "text": "Ion Torrent Proton", + "meaning": "GENEPIO:0100137", + "is_a": "Ion Torrent" + }, + "Ion Torrent S5 XL": { + "text": "Ion Torrent S5 XL", + "meaning": "GENEPIO:0100138", + "is_a": "Ion Torrent" + }, + "Ion Torrent S5": { + "text": "Ion Torrent S5", + "meaning": "GENEPIO:0100139", + "is_a": "Ion Torrent" + }, + "Oxford Nanopore": { + "text": "Oxford Nanopore", + "meaning": "GENEPIO:0100140" + }, + "Oxford Nanopore GridION": { + "text": "Oxford Nanopore GridION", + "meaning": "GENEPIO:0100141", + "is_a": "Oxford Nanopore" + }, + "Oxford Nanopore MinION": { + "text": "Oxford Nanopore MinION", + "meaning": "GENEPIO:0100142", + "is_a": "Oxford Nanopore" + }, + "Oxford Nanopore PromethION": { + "text": "Oxford Nanopore PromethION", + "meaning": "GENEPIO:0100143", + "is_a": "Oxford Nanopore" + }, + "BGI Genomics": { + "text": "BGI Genomics", + "meaning": "GENEPIO:0100144" + }, + "BGI Genomics BGISEQ-500": { + "text": "BGI Genomics BGISEQ-500", + "meaning": "GENEPIO:0100145", + "is_a": "BGI Genomics" + }, + "MGI": { + "text": "MGI", + "meaning": "GENEPIO:0100146" + }, + "MGI DNBSEQ-T7": { + "text": "MGI DNBSEQ-T7", + "meaning": "GENEPIO:0100147", + "is_a": "MGI" + }, + "MGI DNBSEQ-G400": { + "text": "MGI DNBSEQ-G400", + "meaning": "GENEPIO:0100148", + "is_a": "MGI" + }, + "MGI DNBSEQ-G400 FAST": { + "text": "MGI DNBSEQ-G400 FAST", + "meaning": "GENEPIO:0100149", + "is_a": "MGI" + }, + "MGI DNBSEQ-G50": { + "text": "MGI DNBSEQ-G50", + "meaning": "GENEPIO:0100150", + "is_a": "MGI" + } + } + }, + "amplicon pcr primer list menu": { + "name": "amplicon pcr primer list menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "27F": { + "text": "27F", + "meaning": "GENEPIO:0100640" + }, + "357F": { + "text": "357F", + "meaning": "GENEPIO:0100645" + }, + "543R": { + "text": "543R", + "meaning": "GENEPIO:0100642" + }, + "926R": { + "text": "926R", + "meaning": "GENEPIO:0100643" + }, + "1492R": { + "text": "1492R", + "meaning": "GENEPIO:0100644" + }, + "ITS1F": { + "text": "ITS1F", + "meaning": "GENEPIO:0100668" + }, + "ITS3F": { + "text": "ITS3F", + "meaning": "GENEPIO:0100646" + }, + "ITS4F": { + "text": "ITS4F", + "meaning": "GENEPIO:0100647" + }, + "ITS4R": { + "text": "ITS4R", + "meaning": "GENEPIO:0100669" + } + } + } + }, + "slots": { + "isolate ID": { + "name": "isolate ID", + "description": "The user-defined identifier for the isolate, as provided by the laboratory that originally isolated the isolate.", + "title": "isolate ID", + "comments": [ + "Provide the identifier created by the lab for the organism after isolation. This value maps to the \"Strain ID#\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "SA01" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100456", + "range": "WhitespaceMinimizedString", + "required": true + }, + "alternative isolate ID": { + "name": "alternative isolate ID", + "description": "An alternative isolate ID assigned to the isolate by another organization.", + "title": "alternative isolate ID", + "comments": [ + "Provide the identifier that represents the site code, source and/or patient identifier, media type, strain identifier, colony number, growth condition and dilution factor as a single code. This value corresponds maps to the \"Label ID\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "3411301" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100457", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "specimen collector sample ID": { + "name": "specimen collector sample ID", + "description": "The user-defined name for the sample.", + "title": "specimen collector sample ID", + "comments": [ + "Provide the sample ID provided by the original sample collector. This value is different from the \"isolate_ID\" as it represents the original material sampled rather than the organism that was isolated from the sampled material. This identifier may or may not be available." + ], + "examples": [ + { + "value": "Lake_Louise_Water23" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001123", + "identifier": true, + "range": "WhitespaceMinimizedString" + }, + "sample collected by": { + "name": "sample collected by", + "description": "The name of the agency that collected the original sample.", + "title": "sample collected by", + "comments": [ + "The name of the institution of the original sample collector should be written out in full, (no abbreviations, with minor exceptions) and be consistent across multiple submissions e.g. University of Calgary, Alberta Health Services. The sample collector specified is at the discretion of the data provider (i.e. may be hospital, provincial public health lab, or other)." + ], + "examples": [ + { + "value": "University of Calgary" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001153", + "recommended": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sample collection project name": { + "name": "sample collection project name", + "description": "The name of the project/initiative/program for which the sample was collected.", + "title": "sample collection project name", + "comments": [ + "Provide the name of the project and/or the project ID here. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "Children's Hospital biofilm study (A3-701-01)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100429", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "sample collector contact email": { + "name": "sample collector contact email", + "description": "The email address of the contact responsible for follow-up regarding the sample.", + "title": "sample collector contact email", + "comments": [ + "The email address can represent a specific individual or lab e.g. johnnyblogs@lab.ca, or RespLab@lab.ca" + ], + "examples": [ + { + "value": "RespLab@lab.ca" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001156", + "range": "WhitespaceMinimizedString", + "pattern": "^\\S+@\\S+\\.\\S+$" + }, + "sample collector contact address": { + "name": "sample collector contact address", + "description": "The mailing address of the agency submitting the sample.", + "title": "sample collector contact address", + "comments": [ + "The mailing address should be in the format: Street number and name, City, Province/Territory, Postal Code, Country" + ], + "examples": [ + { + "value": "655 Lab St, Vancouver, British Columbia, V5N 2A2, Canada" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001158", + "range": "WhitespaceMinimizedString" + }, + "sample collection date": { + "name": "sample collection date", + "description": "The date on which the sample was collected.", + "title": "sample collection date", + "todos": [ + ">=2019-10-01", + "<={today}" + ], + "comments": [ + "The date should be provided in ISO 8601 standard format \"YYYY-MM-DD\"." + ], + "examples": [ + { + "value": "2020-03-16" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001174", + "recommended": true, + "any_of": [ + { + "range": "date" + }, + { + "range": "null value menu" + } + ] + }, + "sample received date": { + "name": "sample received date", + "description": "The date on which the sample was received.", + "title": "sample received date", + "comments": [ + "The date should be provided in ISO 8601 standard format \"YYYY-MM-DD\"." + ], + "examples": [ + { + "value": "2020-03-20" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001179", + "any_of": [ + { + "range": "date" + }, + { + "range": "null value menu" + } + ] + }, + "geo_loc_name (country)": { + "name": "geo_loc_name (country)", + "description": "The country where the sample was collected.", + "title": "geo_loc_name (country)", + "comments": [ + "Provide the country name from the controlled vocabulary provided." + ], + "examples": [ + { + "value": "Canada" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001181", + "recommended": true, + "any_of": [ + { + "range": "geo_loc_name (country) menu" + }, + { + "range": "null value menu" + } + ] + }, + "geo_loc_name (state/province/territory)": { + "name": "geo_loc_name (state/province/territory)", + "description": "The province/territory where the sample was collected.", + "title": "geo_loc_name (state/province/territory)", + "comments": [ + "Provide the province/territory name from the controlled vocabulary provided." + ], + "examples": [ + { + "value": "Saskatchewan" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001185", + "recommended": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "geo_loc_name (city)": { + "name": "geo_loc_name (city)", + "description": "The city where the sample was collected.", + "title": "geo_loc_name (city)", + "comments": [ + "Provide the city name. Use this look-up service to identify the standardized term: https://www.ebi.ac.uk/ols/ontologies/gaz" + ], + "examples": [ + { + "value": "Medicine Hat" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001189", + "range": "WhitespaceMinimizedString" + }, + "geo_loc_name (site)": { + "name": "geo_loc_name (site)", + "description": "The name of a specific geographical location e.g. Credit River (rather than river).", + "title": "geo_loc_name (site)", + "comments": [ + "Provide the name of the specific geographical site using a specific noun (a word that names a certain place, thing)." + ], + "examples": [ + { + "value": "Lake Louise" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100436", + "range": "geo_loc_name (site) menu" + }, + "organism": { + "name": "organism", + "description": "Taxonomic name of the organism.", + "title": "organism", + "comments": [ + "Provide the confirmed taxonomic name of the species. This value maps to the \"Recommended identification\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Staphylococcus aureus" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001191", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "purpose of sampling": { + "name": "purpose of sampling", + "description": "The reason that the sample was collected.", + "title": "purpose of sampling", + "comments": [ + "The reason a sample was collected may provide information about potential biases in sampling strategy. Provide the purpose of sampling from the picklist in the template. The reason why a sample was originally collected may differ from the reason why it was selected for sequencing, which should be indicated in the \"purpose of sequencing\" field. Motivation for sampling may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Targeted surveillance" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001198", + "recommended": true, + "any_of": [ + { + "range": "purpose of sampling menu" + }, + { + "range": "null value menu" + } + ] + }, + "purpose of sampling details": { + "name": "purpose of sampling details", + "description": "The description of why the sample was collected, providing specific details.", + "title": "purpose of sampling details", + "comments": [ + "Provide an expanded description of why the sample was collected using free text. The description may include the importance of the sample for a particular investigation/surveillance activity/research question. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "ProvLab/IPC routine monitoring" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001200", + "recommended": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "original sample description": { + "name": "original sample description", + "description": "The original sample description provided by the sample collector.", + "title": "original sample description", + "comments": [ + "Provide the sample description provided by the original sample collector or the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file. The original description is useful as it may provide further details, or can be used to clarify higher level classifications." + ], + "examples": [ + { + "value": "ACH coupons-water study, isolates 2010, 2011 see appendix 3 (Alberta Childrens Hospital)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100439", + "range": "WhitespaceMinimizedString" + }, + "anatomical material": { + "name": "anatomical material", + "description": "A substance obtained from an anatomical part of an organism e.g. tissue, blood.", + "title": "anatomical material", + "comments": [ + "Provide a descriptor if an anatomical material was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Wound tissue (injury)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001211", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "anatomical material menu" + }, + { + "range": "null value menu" + } + ] + }, + "anatomical part": { + "name": "anatomical part", + "description": "An anatomical part of an organism e.g. oropharynx.", + "title": "anatomical part", + "comments": [ + "Provide a descriptor if an anatomical part was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Nasal cavity" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001214", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "anatomical part menu" + }, + { + "range": "null value menu" + } + ] + }, + "body product": { + "name": "body product", + "description": "A substance excreted/secreted from an organism e.g. feces, urine, sweat.", + "title": "body product", + "comments": [ + "Provide a descriptor if a body product was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Feces" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001216", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "body product menu" + }, + { + "range": "null value menu" + } + ] + }, + "environmental material": { + "name": "environmental material", + "description": "A substance obtained from the natural or man-made environment e.g. soil, water, sewage.", + "title": "environmental material", + "comments": [ + "Provide a descriptor if an environmental material was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Bandage" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001223", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "environmental material menu" + }, + { + "range": "null value menu" + } + ] + }, + "environmental site": { + "name": "environmental site", + "description": "An environmental location may describe a site in the natural or built environment e.g. contact surface, metal can, hospital, wet market, bat cave.", + "title": "environmental site", + "comments": [ + "Provide a descriptor if an environmental site was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Hospital" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001232", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "environmental site menu" + }, + { + "range": "null value menu" + } + ] + }, + "collection device": { + "name": "collection device", + "description": "The instrument or container used to collect the sample e.g. swab.", + "title": "collection device", + "comments": [ + "Provide a descriptor if a device was used for sampling. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Swab" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001234", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "collection device menu" + }, + { + "range": "null value menu" + } + ] + }, + "collection method": { + "name": "collection method", + "description": "The process used to collect the sample e.g. phlebotamy, necropsy.", + "title": "collection method", + "comments": [ + "Provide a descriptor if a collection method was used for sampling. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Biopsy" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001241", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "collection method menu" + }, + { + "range": "null value menu" + } + ] + }, + "collection protocol": { + "name": "collection protocol", + "description": "The name and version of a particular protocol used for sampling.", + "title": "collection protocol", + "comments": [ + "Free text. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Collection_protocol_Children's Hospital biofilm study (A3-701-01)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001243", + "range": "WhitespaceMinimizedString" + }, + "specimen processing": { + "name": "specimen processing", + "description": "Any processing applied to the sample during or after receiving the sample.", + "title": "specimen processing", + "comments": [ + "If multiple PCR products were generated from the isolate using different primer sets, indicate that the sequence records represents the same isolate by selecting \"Biological replicate\" in the \"specimen processing\" field. Every different sequence experiment should have its own record (i.e. if different amplicons have the same sequence but were generated using different primer sets, these should be stored as separate entries/lines in the spreadsheet). Information about replicates may be available in the \"Top-hit taxon (taxa)\" or \"Trimmed Ribosomal Sequence\" fields if there are multiple values for the same \"Strain ID#\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Biological replicate" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001253", + "multivalued": true, + "recommended": true, + "any_of": [ + { + "range": "specimen processing menu" + }, + { + "range": "null value menu" + } + ] + }, + "specimen processing details": { + "name": "specimen processing details", + "description": "Detailed information regarding the processing applied to a sample during or after receiving the sample.", + "title": "specimen processing details", + "comments": [ + "Provide a free text description of any processing details applied to a sample. Information about replicates may be available in the \"Top-hit taxon (taxa)\" or \"Trimmed Ribosomal Sequence\" fields if there are multiple values for the same \"Strain ID#\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Multiple amplicons generated for isolate SA32 using different primer sets" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100311", + "range": "WhitespaceMinimizedString" + }, + "strain": { + "name": "strain", + "description": "The strain identifier.", + "title": "strain", + "comments": [ + "Provide the strain of the isolate. This value maps to the \"Strain\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "CL10" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100455", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "taxonomic identification method": { + "name": "taxonomic identification method", + "description": "The type of planned process by which an organismal entity is associated with a taxon or taxa.", + "title": "taxonomic identification method", + "comments": [ + "Provide the type of method used to determine the taxonomic identity of the organism by selecting a value from the pick list. For the AMBR Project, the \"16S ribosomal gene sequencing assay\" value will be the most appropriate. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "16S ribosomal gene sequencing assay" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100583", + "required": true, + "any_of": [ + { + "range": "taxonomic identification method menu" + }, + { + "range": "null value menu" + } + ] + }, + "taxonomic identification method details": { + "name": "taxonomic identification method details", + "description": "The details of the process used to determine the taxonomic identification of an organism.", + "title": "taxonomic identification method details", + "comments": [ + "Provide the criteria used for 16S sequencing taxonomic determination by selection a value from the pick list. These criteria are specific to the AMBR project and so do not correspond with standardized criteria in any ontology. The pick list is strictly for providing consistency in records rather than implementing community data standards. If another method was used for the taxonomic determination, leave blank. This value maps to the information stored in the \"ID Category*\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100584", + "required": true, + "any_of": [ + { + "range": "taxonomic identification method details menu" + }, + { + "range": "null value menu" + } + ] + }, + "incubation temperature value": { + "name": "incubation temperature value", + "description": "An environmental datum specifying the temperature at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature value", + "comments": [ + "Provide the temperature at which the isolate was isolated. This value maps to the information stored in the \"Incubation temperature\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "37" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100617", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "incubation temperature unit": { + "name": "incubation temperature unit", + "description": "An environmental datum specifying the temperature unit at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature unit", + "comments": [ + "Select the temperature unit from the pick list. This value maps to the information stored in the \"Incubation temperature\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Degree Celsius" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100618", + "required": true, + "any_of": [ + { + "range": "incubation temperature unit menu" + }, + { + "range": "null value menu" + } + ] + }, + "isolation medium": { + "name": "isolation medium", + "description": "An isolation medium is a culture medium which has the disposition to encourage growth of particular bacteria to the exclusion of others in the same growth environment.", + "title": "isolation medium", + "comments": [ + "Select the isolation medium from the pick list. This value maps to the information stored in the \"Incubation media\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Brain heart infusion (BHI)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0002107", + "required": true, + "any_of": [ + { + "range": "isolation medium menu" + }, + { + "range": "null value menu" + } + ] + }, + "isolate storage location": { + "name": "isolate storage location", + "description": "An isolate datum specifying the location of where an isolate is stored e.g. in a particular freezer, on a particular shelf", + "title": "isolate storage location", + "comments": [ + "Enter the freezer storage location of the isolate as the \"freezer number-shelf number-box number-unit number\" e.g. FR1-R3-B1-S01. This value maps to the information stored in the \"Spot code\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "FR1-R3-B1-S01" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100619", + "range": "WhitespaceMinimizedString", + "required": true + }, + "cellular respiration type": { + "name": "cellular respiration type", + "description": "An isolate datum specifying the type of cellular respiration process used by the organism.", + "title": "cellular respiration type", + "comments": [ + "Select the respiration type from the pick list. This value maps to the information stored in the \"Aerobic/Anaerobic\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Aerobic respiration" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100620", + "required": true, + "any_of": [ + { + "range": "cellular respiration type menu" + }, + { + "range": "null value menu" + } + ] + }, + "host (common name)": { + "name": "host (common name)", + "description": "The commonly used name of the host.", + "title": "host (common name)", + "comments": [ + "Common name is required if there was a host. Both common anime and scientific name can be provided, if known. Use terms from the pick lists in the template. Hosts can be animals (including humans) and plants. Examples of common names are “Human” and “Canola plant”. Examples of scientific names are “Homo sapiens” and “Equus caballus”. If the sample was environmental, select \"Not Applicable\". Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Human" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001386", + "required": true, + "any_of": [ + { + "range": "host (common name) menu" + }, + { + "range": "null value menu" + } + ] + }, + "host (scientific name)": { + "name": "host (scientific name)", + "description": "The taxonomic, or scientific name of the host.", + "title": "host (scientific name)", + "comments": [ + "Common name or scientific name are required if there was a host. Both can be provided, if known. Use terms from the pick lists in the template. Hosts can be animals (including humans) and plants. Common name e.g. Human, Canola plant. If the sample was environmental, select \"Not Applicable\". Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Homo sapiens" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001387", + "any_of": [ + { + "range": "host (scientific name) menu" + }, + { + "range": "null value menu" + } + ] + }, + "host disease": { + "name": "host disease", + "description": "The name of the disease experienced by the host.", + "title": "host disease", + "comments": [ + "If the sample was obtained from a host with a known disease, provide the name of the disease by seleting a value from the picklist. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Cystic fibrosis" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001391", + "any_of": [ + { + "range": "host disease menu" + }, + { + "range": "null value menu" + } + ] + }, + "sequenced by": { + "name": "sequenced by", + "description": "The name of the agency, organization or institution responsible for sequencing the isolate's genome.", + "title": "sequenced by", + "comments": [ + "Provide the name of the organization that performed the sequencing in full (avoid abbreviations). If the information is unknown or cannot be provided, leave blank or provide a null value. For the AMBR Project, the value is most likely the \"University of Calgary\"." + ], + "examples": [ + { + "value": "University of Calgary" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100416", + "any_of": [ + { + "range": "sequenced_by menu" + }, + { + "range": "null value menu" + } + ] + }, + "sequenced by laboratory name": { + "name": "sequenced by laboratory name", + "description": "The specific laboratory affiliation of the responsible for sequencing the isolate's genome.", + "title": "sequenced by laboratory name", + "comments": [ + "Provide the name of the specific laboratory that that performed the sequencing in full (avoid abbreviations). If the information is unknown or cannot be provided, leave blank or provide a null value. For the AMBR Project, the value is most likely the \"Harrison Lab\"." + ], + "examples": [ + { + "value": "Harrison Lab" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100470", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact name": { + "name": "sequenced by contact name", + "description": "The name or title of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact name", + "comments": [ + "Provide the name of an individual or their job title. As personnel turnover may render the contact's name obsolete, it is more prefereable to provide a job title for ensuring accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "Joe Harrison" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100471", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact email": { + "name": "sequenced by contact email", + "description": "The email address of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact email", + "comments": [ + "Provide the email associated with the listed contact. As personnel turnover may render an individual's email obsolete, it is more prefereable to provide an address for a position or lab, to ensure accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "jjharris@ucalgary.ca" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100422", + "range": "WhitespaceMinimizedString" + }, + "purpose of sequencing": { + "name": "purpose of sequencing", + "description": "The reason that the sample was sequenced.", + "title": "purpose of sequencing", + "comments": [ + "The reason why a sample was originally collected may differ from the reason why it was selected for sequencing. The reason a sample was sequenced may provide information about potential biases in sequencing strategy. Provide the purpose of sequencing from the picklist in the template. The reason for sample collection should be indicated in the \"purpose of sampling\" field." + ], + "examples": [ + { + "value": "Research" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001445", + "any_of": [ + { + "range": "purpose of sequencing menu" + }, + { + "range": "null value menu" + } + ] + }, + "purpose of sequencing details": { + "name": "purpose of sequencing details", + "description": "The description of why the sample was sequenced providing specific details.", + "title": "purpose of sequencing details", + "comments": [ + "Provide an expanded description of why the sample was sequenced using free text. This information can provide details about why the sample source might contain antibiotic potentiators." + ], + "examples": [ + { + "value": "Screening for antibiotic potentiators in Cystic fibrosis disease contexts." + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001446", + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sequencing date": { + "name": "sequencing date", + "description": "The date the sample was sequenced.", + "title": "sequencing date", + "todos": [ + ">={sample collection date}" + ], + "comments": [ + "The date should be provided in ISO 8601 standard format \"YYYY-MM-DD\"." + ], + "examples": [ + { + "value": "2020-06-22" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001447", + "any_of": [ + { + "range": "date" + }, + { + "range": "null value menu" + } + ] + }, + "library ID": { + "name": "library ID", + "description": "The user-specified identifier for the library prepared for sequencing.", + "title": "library ID", + "comments": [ + "Provide the name of the run. This value maps to information in the \"Sequencing Batch #\" field Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "1876515_SA01_Plate 02" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001448", + "range": "WhitespaceMinimizedString" + }, + "sequencing instrument": { + "name": "sequencing instrument", + "description": "The model of the sequencing instrument used.", + "title": "sequencing instrument", + "comments": [ + "Select a sequencing instrument from the picklist provided in the template." + ], + "examples": [ + { + "value": "Oxford Nanopore MinION" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001452", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "sequencing instrument menu" + }, + { + "range": "null value menu" + } + ] + }, + "sequencing protocol name": { + "name": "sequencing protocol name", + "description": "The name and version number of the sequencing protocol used.", + "title": "sequencing protocol name", + "comments": [ + "Provide the name and version of the sequencing protocol e.g. 1D_DNA_MinION" + ], + "examples": [ + { + "value": "https://www.protocols.io/view/covid-19-artic-v3-illumina-library-construction-an-bibtkann" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001453", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "amplicon pcr primer list": { + "name": "amplicon pcr primer list", + "description": "An information content entity specifying a list of primers used for amplicon sequencing.", + "title": "amplicon pcr primer list", + "comments": [ + "Select the primers used to generate the ribosomal 16S or 23S amplicon for sequencing from the pick list. This value maps to the information in the \"Primers Used for sequencing\" field Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "27F" + }, + { + "value": "1492R" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100623", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "amplicon pcr primer list menu" + }, + { + "range": "null value menu" + } + ] + }, + "input file name": { + "name": "input file name", + "description": "The name of the file containing the sequence data to be analysed.", + "title": "input file name", + "comments": [ + "Enter the file name of the target gene sequence to be analyzed." + ], + "examples": [ + { + "value": "ambr_staph_ABC_123.fasta" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002874", + "range": "WhitespaceMinimizedString" + }, + "reference accession": { + "name": "reference accession", + "description": "An identifier that specifies an individual sequence record in a public sequence repository.", + "title": "reference accession", + "comments": [ + "Enter the EZBioCloud gene accession that most closely matches the sequence being analyzed. This value maps to the information in the \"Accession No(s).\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "FR821777" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002885", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "bioinformatics protocol": { + "name": "bioinformatics protocol", + "description": "A description of the overall bioinformatics strategy used.", + "title": "bioinformatics protocol", + "comments": [ + "Provide the name of the protocol used to perform the species identification (i.e. the name of the protocol to perform the EZBioCloud search)." + ], + "examples": [ + { + "value": "EZBioCloud_searchprotocol_2023.txt" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001489", + "range": "WhitespaceMinimizedString" + }, + "reference database name": { + "name": "reference database name", + "description": "An identifier of a biological or bioinformatics database.", + "title": "reference database name", + "comments": [ + "Select the reference database name from the pick list. For the AMBR Project, the reference database will be EZBioCloud." + ], + "examples": [ + { + "value": "EZBioCloud" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002883", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "reference database version": { + "name": "reference database version", + "description": "The version of the database containing the reference sequences used for analysis.", + "title": "reference database version", + "comments": [ + "Enter the sequence search date as the version of EZBioCloud used. Record the date in ISO 8601 format i.e. YYYY_MM_DD. This value maps to the information in the \"Search date\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "2021-05-23" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002884", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "coverage (percentage)": { + "name": "coverage (percentage)", + "description": "The percentage of the reference sequence covered by the sequence of interest.", + "title": "coverage (percentage)", + "comments": [ + "Enter the completeness value. Do not include any symbols e.g. %. This value maps to \"Completeness (%)\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "98.2" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002880", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sequence identity percentage": { + "name": "sequence identity percentage", + "description": "Sequence identity is the number (%) of matches (identical characters) in positions from an alignment of two molecular sequences.", + "title": "sequence identity percentage", + "comments": [ + "Enter the identity value. Do not include any symbols e.g. %. This value maps to \"Similarity (%)\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "99" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002882", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sequence identity (variance ratio)": { + "name": "sequence identity (variance ratio)", + "description": "The ratio of the reference sequence not covered by the sequence of interest.", + "title": "sequence identity (variance ratio)", + "comments": [ + "Enter the number of different positions in the target sequence compared to the reference sequence length, expressed as a ratio. This value maps to \"Variation ratio\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "1/420" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100624", + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "top-hit taxon determination": { + "name": "top-hit taxon determination", + "description": "The taxon derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit taxon determination", + "comments": [ + "Enter the EZBioCloud taxon best-hit. This value maps to the information in the \"Top-hit taxon (taxa)\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Staphylococcus argenteus" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100625", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "top-hit strain determination": { + "name": "top-hit strain determination", + "description": "The strain designation derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit strain determination", + "comments": [ + "Enter the EZBioCloud strain best-hit. This value maps to the information in the \"Top-hit strain(s)\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "MSHR1132(T)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100648", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "trimmed ribosomal gene sequence": { + "name": "trimmed ribosomal gene sequence", + "description": "The results of a data transformation of sequence data in which (e.g., low quality) read bases are removed to produce a trimmed ribosomal RNA sequence.", + "title": "trimmed ribosomal gene sequence", + "comments": [ + "Enter the sequence of the trimmed ribosomal gene sequence. This value maps to the sequence in the \"Trimmed Ribosomal Sequence\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "TGCAAGTCGAGCGAACGGACGAGAAGCTTGCTTCTCTGATGTTAGCGGCGGACGSGTGAGTAACACGTGGATAACCTACCTATAAGACTGGGATAACTTCGGGAAACCGGAGCTAATACCGGATAATATTTTGAACCGCATGGTTCAAAAGTGAAAGACGGTCTTGCTGTCACTTATAGATGGATCCGCGCTGCATTAGCTAGTTGGTAAGGTAACGGCTTACCAAGGCAACGATGCATAGCCGACCTGAGAGGGTGATCGGCCACACTGGAACTGAGACACGGTCCAGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCCGCAATGGGCGAAAGCCTGACGGAGCAACGCCGCGTGAGTGATGAAGGTCTTCGGATCGTAAAACTCTGTTATTAGGGAAGAACATATGTGTAAGTAACTGTGCACATCTTGACGGTACCTAATCAGAAAGCCACGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGAAAACTTGAGTGCAGAAGAGGAAAGTGGAATTCCATGTGTAGCGGTGAAATGCGCAGAGATATGGAGGAACACCAGTGGCGAAGGCGACTTTCTGGTCTGTAACTGACGCTGATGTGCGAAAGCGTGGGGATCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAGTGCTAAGTGTTAGGGGGTTTCCGCCCCTTAGTGCTGCAGCTAACGCATTAAGCACTCCGCCTGGGGAGTACGACCGCAAGGTTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCAAATCTTGACATCCTTTGACAACTCTAGAGATAGAGCCTTCCCCTTCGGGGGACAAAGTGACAGGTGGTGCATGGTTGTCGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTAAGCTTAGTTGCCATCATTAAGTTGGGCACTCTAAGTTGACTGCCGGTGACAAACCGGAGGAAGGTGGGGATGACGTCAAATCATCATGCCCCTTATGATTTGGGCTACACACGTGCTACAATGGACAATACAAAGGGCAGCGAAACCGCGAGGTCAAGCAAATCCCATAAAGTTGTTCTCAGTTCGGATTGTAGTCTGCAACTCGACTACATGAAGCTGGAATCGCTAGTAATCGTAGATCAGCATGCTACGGTGAATACGTTCCCGGGTCTTGTACACACCGCCCGTCACACCACGAGAGTTTGTAACACCCGAAGCCGGTGGAGTAACCTTTTAGGAGCTAGCCGTCGAAG" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100626", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "bioinformatics analysis details": { + "name": "bioinformatics analysis details", + "description": "Any notes regarding the bioinformatics analysis.", + "title": "bioinformatics analysis details", + "comments": [ + "Enter any notes regarding the analysis as free text. This value maps to the \"Comment\" field in the information in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Pure-June 09-2022,Tube replaced by Rahgavi" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100627", + "range": "WhitespaceMinimizedString" + }, + "authors": { + "name": "authors", + "description": "Names of individuals contributing to the processes of sample collection, sequence generation, analysis, and data submission.", + "title": "authors", + "comments": [ + "Include the first and last names of all individuals that should be attributed, separated by a comma." + ], + "examples": [ + { + "value": "Rahgavi Poopalaraj, Shirin Afroj, Joe Harrison" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001517", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "DataHarmonizer provenance": { + "name": "DataHarmonizer provenance", + "description": "The DataHarmonizer software and template version provenance.", + "title": "DataHarmonizer provenance", + "comments": [ + "The current software and template version information will be automatically generated in this field after the user utilizes the \"validate\" function. This information will be generated regardless as to whether the row is valid of not." + ], + "examples": [ + { + "value": "DataHarmonizer v1.4.3, AMBR v1.0.0" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001518", + "range": "Provenance" + } + }, + "classes": { + "dh_interface": { + "name": "dh_interface", + "description": "A DataHarmonizer interface", + "from_schema": "https://example.com/AMBR" + }, + "AMBR": { + "name": "AMBR", + "description": "The AMBR Project, led by the Harrison Lab at the University of Calgary, is an interdisciplinary study aimed at using 16S sequencing as part of a culturomics platform to identify antibiotic potentiators from the natural products of microbiota. The AMBR DataHarmonizer template was designed to standardize contextual data associated with the isolate repository from this work.", + "from_schema": "https://example.com/AMBR", + "is_a": "dh_interface", + "slot_usage": { + "isolate ID": { + "name": "isolate ID", + "rank": 1, + "slot_group": "Database Identifiers" + }, + "alternative isolate ID": { + "name": "alternative isolate ID", + "rank": 2, + "slot_group": "Database Identifiers" + }, + "specimen collector sample ID": { + "name": "specimen collector sample ID", + "rank": 3, + "slot_group": "Database Identifiers" + }, + "sample collected by": { + "name": "sample collected by", + "rank": 4, + "slot_group": "Sample collection and processing" + }, + "sample collection project name": { + "name": "sample collection project name", + "rank": 5, + "slot_group": "Sample collection and processing" + }, + "sample collector contact email": { + "name": "sample collector contact email", + "rank": 6, + "slot_group": "Sample collection and processing" + }, + "sample collector contact address": { + "name": "sample collector contact address", + "rank": 7, + "slot_group": "Sample collection and processing" + }, + "sample collection date": { + "name": "sample collection date", + "rank": 8, + "slot_group": "Sample collection and processing" + }, + "sample received date": { + "name": "sample received date", + "rank": 9, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (country)": { + "name": "geo_loc_name (country)", + "rank": 10, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (state/province/territory)": { + "name": "geo_loc_name (state/province/territory)", + "rank": 11, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (city)": { + "name": "geo_loc_name (city)", + "rank": 12, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (site)": { + "name": "geo_loc_name (site)", + "rank": 13, + "slot_group": "Sample collection and processing" + }, + "organism": { + "name": "organism", + "rank": 14, + "slot_group": "Sample collection and processing" + }, + "purpose of sampling": { + "name": "purpose of sampling", + "rank": 15, + "slot_group": "Sample collection and processing" + }, + "purpose of sampling details": { + "name": "purpose of sampling details", + "rank": 16, + "slot_group": "Sample collection and processing" + }, + "original sample description": { + "name": "original sample description", + "rank": 17, + "slot_group": "Sample collection and processing" + }, + "anatomical material": { + "name": "anatomical material", + "rank": 18, + "slot_group": "Sample collection and processing" + }, + "anatomical part": { + "name": "anatomical part", + "rank": 19, + "slot_group": "Sample collection and processing" + }, + "body product": { + "name": "body product", + "rank": 20, + "slot_group": "Sample collection and processing" + }, + "environmental material": { + "name": "environmental material", + "rank": 21, + "slot_group": "Sample collection and processing" + }, + "environmental site": { + "name": "environmental site", + "rank": 22, + "slot_group": "Sample collection and processing" + }, + "collection device": { + "name": "collection device", + "rank": 23, + "slot_group": "Sample collection and processing" + }, + "collection method": { + "name": "collection method", + "rank": 24, + "slot_group": "Sample collection and processing" + }, + "collection protocol": { + "name": "collection protocol", + "rank": 25, + "slot_group": "Sample collection and processing" + }, + "specimen processing": { + "name": "specimen processing", + "rank": 26, + "slot_group": "Sample collection and processing" + }, + "specimen processing details": { + "name": "specimen processing details", + "rank": 27, + "slot_group": "Sample collection and processing" + }, + "strain": { + "name": "strain", + "rank": 28, + "slot_group": "Strain and isolation information" + }, + "taxonomic identification method": { + "name": "taxonomic identification method", + "rank": 29, + "slot_group": "Strain and isolation information" + }, + "taxonomic identification method details": { + "name": "taxonomic identification method details", + "rank": 30, + "slot_group": "Strain and isolation information" + }, + "incubation temperature value": { + "name": "incubation temperature value", + "rank": 31, + "slot_group": "Strain and isolation information" + }, + "incubation temperature unit": { + "name": "incubation temperature unit", + "rank": 32, + "slot_group": "Strain and isolation information" + }, + "isolation medium": { + "name": "isolation medium", + "rank": 33, + "slot_group": "Strain and isolation information" + }, + "isolate storage location": { + "name": "isolate storage location", + "rank": 34, + "slot_group": "Strain and isolation information" + }, + "cellular respiration type": { + "name": "cellular respiration type", + "rank": 35, + "slot_group": "Strain and isolation information" + }, + "host (common name)": { + "name": "host (common name)", + "rank": 36, + "slot_group": "Host Information" + }, + "host (scientific name)": { + "name": "host (scientific name)", + "rank": 37, + "slot_group": "Host Information" + }, + "host disease": { + "name": "host disease", + "rank": 38, + "slot_group": "Host Information" + }, + "sequenced by": { + "name": "sequenced by", + "rank": 39, + "slot_group": "Sequencing" + }, + "sequenced by laboratory name": { + "name": "sequenced by laboratory name", + "rank": 40, + "slot_group": "Sequencing" + }, + "sequenced by contact name": { + "name": "sequenced by contact name", + "rank": 41, + "slot_group": "Sequencing" + }, + "sequenced by contact email": { + "name": "sequenced by contact email", + "rank": 42, + "slot_group": "Sequencing" + }, + "purpose of sequencing": { + "name": "purpose of sequencing", + "rank": 43, + "slot_group": "Sequencing" + }, + "purpose of sequencing details": { + "name": "purpose of sequencing details", + "rank": 44, + "slot_group": "Sequencing" + }, + "sequencing date": { + "name": "sequencing date", + "rank": 45, + "slot_group": "Sequencing" + }, + "library ID": { + "name": "library ID", + "rank": 46, + "slot_group": "Sequencing" + }, + "sequencing instrument": { + "name": "sequencing instrument", + "rank": 47, + "slot_group": "Sequencing" + }, + "sequencing protocol name": { + "name": "sequencing protocol name", + "rank": 48, + "slot_group": "Sequencing" + }, + "amplicon pcr primer list": { + "name": "amplicon pcr primer list", + "rank": 49, + "slot_group": "Sequencing" + }, + "input file name": { + "name": "input file name", + "rank": 50, + "slot_group": "Bioinformatics and QC metrics" + }, + "reference accession": { + "name": "reference accession", + "rank": 51, + "slot_group": "Bioinformatics and QC metrics" + }, + "bioinformatics protocol": { + "name": "bioinformatics protocol", + "rank": 52, + "slot_group": "Bioinformatics and QC metrics" + }, + "reference database name": { + "name": "reference database name", + "rank": 53, + "slot_group": "Bioinformatics and QC metrics" + }, + "reference database version": { + "name": "reference database version", + "rank": 54, + "slot_group": "Bioinformatics and QC metrics" + }, + "coverage (percentage)": { + "name": "coverage (percentage)", + "rank": 55, + "slot_group": "Bioinformatics and QC metrics" + }, + "sequence identity percentage": { + "name": "sequence identity percentage", + "rank": 56, + "slot_group": "Bioinformatics and QC metrics" + }, + "sequence identity (variance ratio)": { + "name": "sequence identity (variance ratio)", + "rank": 57, + "slot_group": "Bioinformatics and QC metrics" + }, + "top-hit taxon determination": { + "name": "top-hit taxon determination", + "rank": 58, + "slot_group": "Bioinformatics and QC metrics" + }, + "top-hit strain determination": { + "name": "top-hit strain determination", + "rank": 59, + "slot_group": "Bioinformatics and QC metrics" + }, + "trimmed ribosomal gene sequence": { + "name": "trimmed ribosomal gene sequence", + "rank": 60, + "slot_group": "Bioinformatics and QC metrics" + }, + "bioinformatics analysis details": { + "name": "bioinformatics analysis details", + "rank": 61, + "slot_group": "Bioinformatics and QC metrics" + }, + "authors": { + "name": "authors", + "rank": 62, + "slot_group": "Contributor acknowledgement" + }, + "DataHarmonizer provenance": { + "name": "DataHarmonizer provenance", + "rank": 63, + "slot_group": "Contributor acknowledgement" + } + }, + "attributes": { + "isolate ID": { + "name": "isolate ID", + "description": "The user-defined identifier for the isolate, as provided by the laboratory that originally isolated the isolate.", + "title": "isolate ID", + "from_schema": "https://example.com/AMBR", + "rank": 1, + "slot_uri": "GENEPIO:0100456", + "alias": "isolate_ID", + "owner": "AMBR", + "slot_group": "Database Identifiers", + "range": "WhitespaceMinimizedString", + "required": true + }, + "alternative isolate ID": { + "name": "alternative isolate ID", + "description": "An alternative isolate ID assigned to the isolate by another organization.", + "title": "alternative isolate ID", + "from_schema": "https://example.com/AMBR", + "rank": 2, + "slot_uri": "GENEPIO:0100457", + "alias": "alternative_isolate_ID", + "owner": "AMBR", + "slot_group": "Database Identifiers", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "specimen collector sample ID": { + "name": "specimen collector sample ID", + "description": "The user-defined name for the sample.", + "title": "specimen collector sample ID", + "from_schema": "https://example.com/AMBR", + "rank": 3, + "slot_uri": "GENEPIO:0001123", + "identifier": true, + "alias": "specimen_collector_sample_ID", + "owner": "AMBR", + "slot_group": "Database Identifiers", + "range": "WhitespaceMinimizedString" + }, + "sample collected by": { + "name": "sample collected by", + "description": "The name of the agency that collected the original sample.", + "title": "sample collected by", + "from_schema": "https://example.com/AMBR", + "rank": 4, + "slot_uri": "GENEPIO:0001153", + "alias": "sample_collected_by", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "sample collection project name": { + "name": "sample collection project name", + "description": "The name of the project/initiative/program for which the sample was collected.", + "title": "sample collection project name", + "from_schema": "https://example.com/AMBR", + "rank": 5, + "slot_uri": "GENEPIO:0100429", + "alias": "sample_collection_project_name", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "sample collector contact email": { + "name": "sample collector contact email", + "description": "The email address of the contact responsible for follow-up regarding the sample.", + "title": "sample collector contact email", + "from_schema": "https://example.com/AMBR", + "rank": 6, + "slot_uri": "GENEPIO:0001156", + "alias": "sample_collector_contact_email", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString", + "pattern": "^\\S+@\\S+\\.\\S+$" + }, + "sample collector contact address": { + "name": "sample collector contact address", + "description": "The mailing address of the agency submitting the sample.", + "title": "sample collector contact address", + "from_schema": "https://example.com/AMBR", + "rank": 7, + "slot_uri": "GENEPIO:0001158", + "alias": "sample_collector_contact_address", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "sample collection date": { + "name": "sample collection date", + "description": "The date on which the sample was collected.", + "title": "sample collection date", + "from_schema": "https://example.com/AMBR", + "rank": 8, + "slot_uri": "GENEPIO:0001174", + "alias": "sample_collection_date", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "sample received date": { + "name": "sample received date", + "description": "The date on which the sample was received.", + "title": "sample received date", + "from_schema": "https://example.com/AMBR", + "rank": 9, + "slot_uri": "GENEPIO:0001179", + "alias": "sample_received_date", + "owner": "AMBR", + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (country)": { + "name": "geo_loc_name (country)", + "description": "The country where the sample was collected.", + "title": "geo_loc_name (country)", + "from_schema": "https://example.com/AMBR", + "rank": 10, + "slot_uri": "GENEPIO:0001181", + "alias": "geo_loc_name_(country)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "geo_loc_name (state/province/territory)": { + "name": "geo_loc_name (state/province/territory)", + "description": "The province/territory where the sample was collected.", + "title": "geo_loc_name (state/province/territory)", + "from_schema": "https://example.com/AMBR", + "rank": 11, + "slot_uri": "GENEPIO:0001185", + "alias": "geo_loc_name_(state/province/territory)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "geo_loc_name (city)": { + "name": "geo_loc_name (city)", + "description": "The city where the sample was collected.", + "title": "geo_loc_name (city)", + "from_schema": "https://example.com/AMBR", + "rank": 12, + "slot_uri": "GENEPIO:0001189", + "alias": "geo_loc_name_(city)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "geo_loc_name (site)": { + "name": "geo_loc_name (site)", + "description": "The name of a specific geographical location e.g. Credit River (rather than river).", + "title": "geo_loc_name (site)", + "from_schema": "https://example.com/AMBR", + "rank": 13, + "slot_uri": "GENEPIO:0100436", + "alias": "geo_loc_name_(site)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "geo_loc_name (site) menu" + }, + "organism": { + "name": "organism", + "description": "Taxonomic name of the organism.", + "title": "organism", + "from_schema": "https://example.com/AMBR", + "rank": 14, + "slot_uri": "GENEPIO:0001191", + "alias": "organism", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "purpose of sampling": { + "name": "purpose of sampling", + "description": "The reason that the sample was collected.", + "title": "purpose of sampling", + "from_schema": "https://example.com/AMBR", + "rank": 15, + "slot_uri": "GENEPIO:0001198", + "alias": "purpose_of_sampling", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "purpose of sampling details": { + "name": "purpose of sampling details", + "description": "The description of why the sample was collected, providing specific details.", + "title": "purpose of sampling details", + "from_schema": "https://example.com/AMBR", + "rank": 16, + "slot_uri": "GENEPIO:0001200", + "alias": "purpose_of_sampling_details", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "original sample description": { + "name": "original sample description", + "description": "The original sample description provided by the sample collector.", + "title": "original sample description", + "from_schema": "https://example.com/AMBR", + "rank": 17, + "slot_uri": "GENEPIO:0100439", + "alias": "original_sample_description", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "anatomical material": { + "name": "anatomical material", + "description": "A substance obtained from an anatomical part of an organism e.g. tissue, blood.", + "title": "anatomical material", + "from_schema": "https://example.com/AMBR", + "rank": 18, + "slot_uri": "GENEPIO:0001211", + "multivalued": true, + "alias": "anatomical_material", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "anatomical part": { + "name": "anatomical part", + "description": "An anatomical part of an organism e.g. oropharynx.", + "title": "anatomical part", + "from_schema": "https://example.com/AMBR", + "rank": 19, + "slot_uri": "GENEPIO:0001214", + "multivalued": true, + "alias": "anatomical_part", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "body product": { + "name": "body product", + "description": "A substance excreted/secreted from an organism e.g. feces, urine, sweat.", + "title": "body product", + "from_schema": "https://example.com/AMBR", + "rank": 20, + "slot_uri": "GENEPIO:0001216", + "multivalued": true, + "alias": "body_product", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "environmental material": { + "name": "environmental material", + "description": "A substance obtained from the natural or man-made environment e.g. soil, water, sewage.", + "title": "environmental material", + "from_schema": "https://example.com/AMBR", + "rank": 21, + "slot_uri": "GENEPIO:0001223", + "multivalued": true, + "alias": "environmental_material", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "environmental site": { + "name": "environmental site", + "description": "An environmental location may describe a site in the natural or built environment e.g. contact surface, metal can, hospital, wet market, bat cave.", + "title": "environmental site", + "from_schema": "https://example.com/AMBR", + "rank": 22, + "slot_uri": "GENEPIO:0001232", + "multivalued": true, + "alias": "environmental_site", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "collection device": { + "name": "collection device", + "description": "The instrument or container used to collect the sample e.g. swab.", + "title": "collection device", + "from_schema": "https://example.com/AMBR", + "rank": 23, + "slot_uri": "GENEPIO:0001234", + "multivalued": true, + "alias": "collection_device", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "collection method": { + "name": "collection method", + "description": "The process used to collect the sample e.g. phlebotamy, necropsy.", + "title": "collection method", + "from_schema": "https://example.com/AMBR", + "rank": 24, + "slot_uri": "GENEPIO:0001241", + "multivalued": true, + "alias": "collection_method", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "collection protocol": { + "name": "collection protocol", + "description": "The name and version of a particular protocol used for sampling.", + "title": "collection protocol", + "from_schema": "https://example.com/AMBR", + "rank": 25, + "slot_uri": "GENEPIO:0001243", + "alias": "collection_protocol", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "specimen processing": { + "name": "specimen processing", + "description": "Any processing applied to the sample during or after receiving the sample.", + "title": "specimen processing", + "from_schema": "https://example.com/AMBR", + "rank": 26, + "slot_uri": "GENEPIO:0001253", + "multivalued": true, + "alias": "specimen_processing", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "specimen processing details": { + "name": "specimen processing details", + "description": "Detailed information regarding the processing applied to a sample during or after receiving the sample.", + "title": "specimen processing details", + "from_schema": "https://example.com/AMBR", + "rank": 27, + "slot_uri": "GENEPIO:0100311", + "alias": "specimen_processing_details", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "strain": { + "name": "strain", + "description": "The strain identifier.", + "title": "strain", + "from_schema": "https://example.com/AMBR", + "rank": 28, + "slot_uri": "GENEPIO:0100455", + "alias": "strain", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "taxonomic identification method": { + "name": "taxonomic identification method", + "description": "The type of planned process by which an organismal entity is associated with a taxon or taxa.", + "title": "taxonomic identification method", + "from_schema": "https://example.com/AMBR", + "rank": 29, + "slot_uri": "GENEPIO:0100583", + "alias": "taxonomic_identification_method", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "taxonomic identification method details": { + "name": "taxonomic identification method details", + "description": "The details of the process used to determine the taxonomic identification of an organism.", + "title": "taxonomic identification method details", + "from_schema": "https://example.com/AMBR", + "rank": 30, + "slot_uri": "GENEPIO:0100584", + "alias": "taxonomic_identification_method_details", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "incubation temperature value": { + "name": "incubation temperature value", + "description": "An environmental datum specifying the temperature at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature value", + "from_schema": "https://example.com/AMBR", + "rank": 31, + "slot_uri": "GENEPIO:0100617", + "alias": "incubation_temperature_value", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "incubation temperature unit": { + "name": "incubation temperature unit", + "description": "An environmental datum specifying the temperature unit at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature unit", + "from_schema": "https://example.com/AMBR", + "rank": 32, + "slot_uri": "GENEPIO:0100618", + "alias": "incubation_temperature_unit", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "isolation medium": { + "name": "isolation medium", + "description": "An isolation medium is a culture medium which has the disposition to encourage growth of particular bacteria to the exclusion of others in the same growth environment.", + "title": "isolation medium", + "from_schema": "https://example.com/AMBR", + "rank": 33, + "slot_uri": "GENEPIO:0002107", + "alias": "isolation_medium", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "isolate storage location": { + "name": "isolate storage location", + "description": "An isolate datum specifying the location of where an isolate is stored e.g. in a particular freezer, on a particular shelf", + "title": "isolate storage location", + "from_schema": "https://example.com/AMBR", + "rank": 34, + "slot_uri": "GENEPIO:0100619", + "alias": "isolate_storage_location", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "range": "WhitespaceMinimizedString", + "required": true + }, + "cellular respiration type": { + "name": "cellular respiration type", + "description": "An isolate datum specifying the type of cellular respiration process used by the organism.", + "title": "cellular respiration type", + "from_schema": "https://example.com/AMBR", + "rank": 35, + "slot_uri": "GENEPIO:0100620", + "alias": "cellular_respiration_type", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "host (common name)": { + "name": "host (common name)", + "description": "The commonly used name of the host.", + "title": "host (common name)", + "from_schema": "https://example.com/AMBR", + "rank": 36, + "slot_uri": "GENEPIO:0001386", + "alias": "host_(common_name)", + "owner": "AMBR", + "slot_group": "Host Information", + "required": true + }, + "host (scientific name)": { + "name": "host (scientific name)", + "description": "The taxonomic, or scientific name of the host.", + "title": "host (scientific name)", + "from_schema": "https://example.com/AMBR", + "rank": 37, + "slot_uri": "GENEPIO:0001387", + "alias": "host_(scientific_name)", + "owner": "AMBR", + "slot_group": "Host Information" + }, + "host disease": { + "name": "host disease", + "description": "The name of the disease experienced by the host.", + "title": "host disease", + "from_schema": "https://example.com/AMBR", + "rank": 38, + "slot_uri": "GENEPIO:0001391", + "alias": "host_disease", + "owner": "AMBR", + "slot_group": "Host Information" + }, + "sequenced by": { + "name": "sequenced by", + "description": "The name of the agency, organization or institution responsible for sequencing the isolate's genome.", + "title": "sequenced by", + "from_schema": "https://example.com/AMBR", + "rank": 39, + "slot_uri": "GENEPIO:0100416", + "alias": "sequenced_by", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "sequenced by laboratory name": { + "name": "sequenced by laboratory name", + "description": "The specific laboratory affiliation of the responsible for sequencing the isolate's genome.", + "title": "sequenced by laboratory name", + "from_schema": "https://example.com/AMBR", + "rank": 40, + "slot_uri": "GENEPIO:0100470", + "alias": "sequenced_by_laboratory_name", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact name": { + "name": "sequenced by contact name", + "description": "The name or title of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact name", + "from_schema": "https://example.com/AMBR", + "rank": 41, + "slot_uri": "GENEPIO:0100471", + "alias": "sequenced_by_contact_name", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact email": { + "name": "sequenced by contact email", + "description": "The email address of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact email", + "from_schema": "https://example.com/AMBR", + "rank": 42, + "slot_uri": "GENEPIO:0100422", + "alias": "sequenced_by_contact_email", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "purpose of sequencing": { + "name": "purpose of sequencing", + "description": "The reason that the sample was sequenced.", + "title": "purpose of sequencing", + "from_schema": "https://example.com/AMBR", + "rank": 43, + "slot_uri": "GENEPIO:0001445", + "alias": "purpose_of_sequencing", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "purpose of sequencing details": { + "name": "purpose of sequencing details", + "description": "The description of why the sample was sequenced providing specific details.", + "title": "purpose of sequencing details", + "from_schema": "https://example.com/AMBR", + "rank": 44, + "slot_uri": "GENEPIO:0001446", + "alias": "purpose_of_sequencing_details", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "sequencing date": { + "name": "sequencing date", + "description": "The date the sample was sequenced.", + "title": "sequencing date", + "from_schema": "https://example.com/AMBR", + "rank": 45, + "slot_uri": "GENEPIO:0001447", + "alias": "sequencing_date", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "library ID": { + "name": "library ID", + "description": "The user-specified identifier for the library prepared for sequencing.", + "title": "library ID", + "from_schema": "https://example.com/AMBR", + "rank": 46, + "slot_uri": "GENEPIO:0001448", + "alias": "library_ID", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "sequencing instrument": { + "name": "sequencing instrument", + "description": "The model of the sequencing instrument used.", + "title": "sequencing instrument", + "from_schema": "https://example.com/AMBR", + "rank": 47, + "slot_uri": "GENEPIO:0001452", + "multivalued": true, + "alias": "sequencing_instrument", + "owner": "AMBR", + "slot_group": "Sequencing", + "required": true + }, + "sequencing protocol name": { + "name": "sequencing protocol name", + "description": "The name and version number of the sequencing protocol used.", + "title": "sequencing protocol name", + "from_schema": "https://example.com/AMBR", + "rank": 48, + "slot_uri": "GENEPIO:0001453", + "alias": "sequencing_protocol_name", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "amplicon pcr primer list": { + "name": "amplicon pcr primer list", + "description": "An information content entity specifying a list of primers used for amplicon sequencing.", + "title": "amplicon pcr primer list", + "from_schema": "https://example.com/AMBR", + "rank": 49, + "slot_uri": "GENEPIO:0100623", + "multivalued": true, + "alias": "amplicon_pcr_primer_list", + "owner": "AMBR", + "slot_group": "Sequencing", + "required": true + }, + "input file name": { + "name": "input file name", + "description": "The name of the file containing the sequence data to be analysed.", + "title": "input file name", + "from_schema": "https://example.com/AMBR", + "rank": 50, + "slot_uri": "OBI:0002874", + "alias": "input_file_name", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "range": "WhitespaceMinimizedString" + }, + "reference accession": { + "name": "reference accession", + "description": "An identifier that specifies an individual sequence record in a public sequence repository.", + "title": "reference accession", + "from_schema": "https://example.com/AMBR", + "rank": 51, + "slot_uri": "OBI:0002885", + "alias": "reference_accession", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "bioinformatics protocol": { + "name": "bioinformatics protocol", + "description": "A description of the overall bioinformatics strategy used.", + "title": "bioinformatics protocol", + "from_schema": "https://example.com/AMBR", + "rank": 52, + "slot_uri": "GENEPIO:0001489", + "alias": "bioinformatics_protocol", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "range": "WhitespaceMinimizedString" + }, + "reference database name": { + "name": "reference database name", + "description": "An identifier of a biological or bioinformatics database.", + "title": "reference database name", + "from_schema": "https://example.com/AMBR", + "rank": 53, + "slot_uri": "OBI:0002883", + "alias": "reference_database_name", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "reference database version": { + "name": "reference database version", + "description": "The version of the database containing the reference sequences used for analysis.", + "title": "reference database version", + "from_schema": "https://example.com/AMBR", + "rank": 54, + "slot_uri": "OBI:0002884", + "alias": "reference_database_version", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "coverage (percentage)": { + "name": "coverage (percentage)", + "description": "The percentage of the reference sequence covered by the sequence of interest.", + "title": "coverage (percentage)", + "from_schema": "https://example.com/AMBR", + "rank": 55, + "slot_uri": "OBI:0002880", + "alias": "coverage_(percentage)", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "sequence identity percentage": { + "name": "sequence identity percentage", + "description": "Sequence identity is the number (%) of matches (identical characters) in positions from an alignment of two molecular sequences.", + "title": "sequence identity percentage", + "from_schema": "https://example.com/AMBR", + "rank": 56, + "slot_uri": "OBI:0002882", + "alias": "sequence_identity_percentage", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "sequence identity (variance ratio)": { + "name": "sequence identity (variance ratio)", + "description": "The ratio of the reference sequence not covered by the sequence of interest.", + "title": "sequence identity (variance ratio)", + "from_schema": "https://example.com/AMBR", + "rank": 57, + "slot_uri": "GENEPIO:0100624", + "alias": "sequence_identity_(variance_ratio)", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics" + }, + "top-hit taxon determination": { + "name": "top-hit taxon determination", + "description": "The taxon derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit taxon determination", + "from_schema": "https://example.com/AMBR", + "rank": 58, + "slot_uri": "GENEPIO:0100625", + "alias": "top_hit_taxon_determination", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "top-hit strain determination": { + "name": "top-hit strain determination", + "description": "The strain designation derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit strain determination", + "from_schema": "https://example.com/AMBR", + "rank": 59, + "slot_uri": "GENEPIO:0100648", + "alias": "top_hit_strain_determination", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "trimmed ribosomal gene sequence": { + "name": "trimmed ribosomal gene sequence", + "description": "The results of a data transformation of sequence data in which (e.g., low quality) read bases are removed to produce a trimmed ribosomal RNA sequence.", + "title": "trimmed ribosomal gene sequence", + "from_schema": "https://example.com/AMBR", + "rank": 60, + "slot_uri": "GENEPIO:0100626", + "alias": "trimmed_ribosomal_gene_sequence", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "bioinformatics analysis details": { + "name": "bioinformatics analysis details", + "description": "Any notes regarding the bioinformatics analysis.", + "title": "bioinformatics analysis details", + "from_schema": "https://example.com/AMBR", + "rank": 61, + "slot_uri": "GENEPIO:0100627", + "alias": "bioinformatics_analysis_details", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "range": "WhitespaceMinimizedString" + }, + "authors": { + "name": "authors", + "description": "Names of individuals contributing to the processes of sample collection, sequence generation, analysis, and data submission.", + "title": "authors", + "from_schema": "https://example.com/AMBR", + "rank": 62, + "slot_uri": "GENEPIO:0001517", + "alias": "authors", + "owner": "AMBR", + "slot_group": "Contributor acknowledgement", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "DataHarmonizer provenance": { + "name": "DataHarmonizer provenance", + "description": "The DataHarmonizer software and template version provenance.", + "title": "DataHarmonizer provenance", + "from_schema": "https://example.com/AMBR", + "rank": 63, + "slot_uri": "GENEPIO:0001518", + "alias": "DataHarmonizer_provenance", + "owner": "AMBR", + "slot_group": "Contributor acknowledgement", + "range": "Provenance" + } + } + } + }, + "source_file": "schema.yaml", + "settings": { + "Title_Case": { + "setting_key": "Title_Case", + "setting_value": "(((?<=\\b)[^a-z\\W]\\w*?|[\\W])+)" + }, + "UPPER_CASE": { + "setting_key": "UPPER_CASE", + "setting_value": "[A-Z\\W\\d_]*" + }, + "lower_case": { + "setting_key": "lower_case", + "setting_value": "[a-z\\W\\d_]*" + } + }, + "@type": "SchemaDefinition" +} \ No newline at end of file diff --git a/web/templates/test/locales/fr-FR/schema.json b/web/templates/test/locales/fr-FR/schema.json new file mode 100644 index 00000000..a32d287d --- /dev/null +++ b/web/templates/test/locales/fr-FR/schema.json @@ -0,0 +1,4711 @@ +{ + "name": "AMBR", + "description": "", + "id": "https://example.com/AMBR", + "version": "2.3.0", + "prefixes": { + "linkml": { + "prefix_prefix": "linkml", + "prefix_reference": "https://w3id.org/linkml/" + }, + "GENEPIO": { + "prefix_prefix": "GENEPIO", + "prefix_reference": "http://purl.obolibrary.org/obo/GENEPIO_" + }, + "xsd": { + "prefix_prefix": "xsd", + "prefix_reference": "http://www.w3.org/2001/XMLSchema#" + }, + "shex": { + "prefix_prefix": "shex", + "prefix_reference": "http://www.w3.org/ns/shex#" + }, + "schema": { + "prefix_prefix": "schema", + "prefix_reference": "http://schema.org/" + } + }, + "default_prefix": "https://example.com/AMBR/", + "types": { + "WhitespaceMinimizedString": { + "name": "WhitespaceMinimizedString", + "description": "A string that has all whitespace trimmed off of beginning and end, and all internal whitespace segments reduced to single spaces. Whitespace includes #x9 (tab), #xA (linefeed), and #xD (carriage return).", + "typeof": "string", + "base": "str", + "uri": "xsd:token" + }, + "Provenance": { + "name": "Provenance", + "description": "A field containing a DataHarmonizer versioning marker. It is issued by DataHarmonizer when validation is applied to a given row of data.", + "typeof": "string", + "base": "str", + "uri": "xsd:token" + }, + "string": { + "name": "string", + "description": "A character string", + "exact_mappings": [ + "schema:Text" + ], + "base": "str", + "uri": "xsd:string" + }, + "integer": { + "name": "integer", + "description": "An integer", + "exact_mappings": [ + "schema:Integer" + ], + "base": "int", + "uri": "xsd:integer" + }, + "boolean": { + "name": "boolean", + "description": "A binary (true or false) value", + "exact_mappings": [ + "schema:Boolean" + ], + "base": "Bool", + "uri": "xsd:boolean", + "repr": "bool" + }, + "float": { + "name": "float", + "description": "A real number that conforms to the xsd:float specification", + "exact_mappings": [ + "schema:Float" + ], + "base": "float", + "uri": "xsd:float" + }, + "double": { + "name": "double", + "description": "A real number that conforms to the xsd:double specification", + "close_mappings": [ + "schema:Float" + ], + "base": "float", + "uri": "xsd:double" + }, + "decimal": { + "name": "decimal", + "description": "A real number with arbitrary precision that conforms to the xsd:decimal specification", + "broad_mappings": [ + "schema:Number" + ], + "base": "Decimal", + "uri": "xsd:decimal" + }, + "time": { + "name": "time", + "description": "A time object represents a (local) time of day, independent of any particular day", + "notes": [ + "URI is dateTime because OWL reasoners do not work with straight date or time" + ], + "exact_mappings": [ + "schema:Time" + ], + "base": "XSDTime", + "uri": "xsd:dateTime", + "repr": "str" + }, + "date": { + "name": "date", + "description": "a date (year, month and day) in an idealized calendar", + "notes": [ + "URI is dateTime because OWL reasoners don't work with straight date or time" + ], + "exact_mappings": [ + "schema:Date" + ], + "base": "XSDDate", + "uri": "xsd:date", + "repr": "str" + }, + "datetime": { + "name": "datetime", + "description": "The combination of a date and time", + "exact_mappings": [ + "schema:DateTime" + ], + "base": "XSDDateTime", + "uri": "xsd:dateTime", + "repr": "str" + }, + "date_or_datetime": { + "name": "date_or_datetime", + "description": "Either a date or a datetime", + "base": "str", + "uri": "linkml:DateOrDatetime", + "repr": "str" + }, + "uriorcurie": { + "name": "uriorcurie", + "description": "a URI or a CURIE", + "base": "URIorCURIE", + "uri": "xsd:anyURI", + "repr": "str" + }, + "curie": { + "name": "curie", + "conforms_to": "https://www.w3.org/TR/curie/", + "description": "a compact URI", + "comments": [ + "in RDF serializations this MUST be expanded to a URI", + "in non-RDF serializations MAY be serialized as the compact representation" + ], + "base": "Curie", + "uri": "xsd:string", + "repr": "str" + }, + "uri": { + "name": "uri", + "conforms_to": "https://www.ietf.org/rfc/rfc3987.txt", + "description": "a complete URI", + "comments": [ + "in RDF serializations a slot with range of uri is treated as a literal or type xsd:anyURI unless it is an identifier or a reference to an identifier, in which case it is translated directly to a node" + ], + "close_mappings": [ + "schema:URL" + ], + "base": "URI", + "uri": "xsd:anyURI", + "repr": "str" + }, + "ncname": { + "name": "ncname", + "description": "Prefix part of CURIE", + "base": "NCName", + "uri": "xsd:string", + "repr": "str" + }, + "objectidentifier": { + "name": "objectidentifier", + "description": "A URI or CURIE that represents an object in the model.", + "comments": [ + "Used for inheritence and type checking" + ], + "base": "ElementIdentifier", + "uri": "shex:iri", + "repr": "str" + }, + "nodeidentifier": { + "name": "nodeidentifier", + "description": "A URI, CURIE or BNODE that represents a node in a model.", + "base": "NodeIdentifier", + "uri": "shex:nonLiteral", + "repr": "str" + } + }, + "enums": { + "null value menu": { + "name": "null value menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Not Applicable": { + "text": "Not Applicable", + "meaning": "GENEPIO:0001619" + }, + "Not Collected": { + "text": "Not Collected", + "meaning": "GENEPIO:0001620" + }, + "Not Provided": { + "text": "Not Provided", + "meaning": "GENEPIO:0001668" + }, + "Missing": { + "text": "Missing", + "meaning": "GENEPIO:0001618" + }, + "Restricted Access": { + "text": "Restricted Access", + "meaning": "GENEPIO:0001810" + } + } + }, + "geo_loc_name (country) menu": { + "name": "geo_loc_name (country) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Afghanistan": { + "text": "Afghanistan", + "meaning": "GAZ:00006882" + }, + "Albania": { + "text": "Albania", + "meaning": "GAZ:00002953" + }, + "Algeria": { + "text": "Algeria", + "meaning": "GAZ:00000563" + }, + "American Samoa": { + "text": "American Samoa", + "meaning": "GAZ:00003957" + }, + "Andorra": { + "text": "Andorra", + "meaning": "GAZ:00002948" + }, + "Angola": { + "text": "Angola", + "meaning": "GAZ:00001095" + }, + "Anguilla": { + "text": "Anguilla", + "meaning": "GAZ:00009159" + }, + "Antarctica": { + "text": "Antarctica", + "meaning": "GAZ:00000462" + }, + "Antigua and Barbuda": { + "text": "Antigua and Barbuda", + "meaning": "GAZ:00006883" + }, + "Argentina": { + "text": "Argentina", + "meaning": "GAZ:00002928" + }, + "Armenia": { + "text": "Armenia", + "meaning": "GAZ:00004094" + }, + "Aruba": { + "text": "Aruba", + "meaning": "GAZ:00004025" + }, + "Ashmore and Cartier Islands": { + "text": "Ashmore and Cartier Islands", + "meaning": "GAZ:00005901" + }, + "Australia": { + "text": "Australia", + "meaning": "GAZ:00000463" + }, + "Austria": { + "text": "Austria", + "meaning": "GAZ:00002942" + }, + "Azerbaijan": { + "text": "Azerbaijan", + "meaning": "GAZ:00004941" + }, + "Bahamas": { + "text": "Bahamas", + "meaning": "GAZ:00002733" + }, + "Bahrain": { + "text": "Bahrain", + "meaning": "GAZ:00005281" + }, + "Baker Island": { + "text": "Baker Island", + "meaning": "GAZ:00007117" + }, + "Bangladesh": { + "text": "Bangladesh", + "meaning": "GAZ:00003750" + }, + "Barbados": { + "text": "Barbados", + "meaning": "GAZ:00001251" + }, + "Bassas da India": { + "text": "Bassas da India", + "meaning": "GAZ:00005810" + }, + "Belarus": { + "text": "Belarus", + "meaning": "GAZ:00006886" + }, + "Belgium": { + "text": "Belgium", + "meaning": "GAZ:00002938" + }, + "Belize": { + "text": "Belize", + "meaning": "GAZ:00002934" + }, + "Benin": { + "text": "Benin", + "meaning": "GAZ:00000904" + }, + "Bermuda": { + "text": "Bermuda", + "meaning": "GAZ:00001264" + }, + "Bhutan": { + "text": "Bhutan", + "meaning": "GAZ:00003920" + }, + "Bolivia": { + "text": "Bolivia", + "meaning": "GAZ:00002511" + }, + "Borneo": { + "text": "Borneo", + "meaning": "GAZ:00025355" + }, + "Bosnia and Herzegovina": { + "text": "Bosnia and Herzegovina", + "meaning": "GAZ:00006887" + }, + "Botswana": { + "text": "Botswana", + "meaning": "GAZ:00001097" + }, + "Bouvet Island": { + "text": "Bouvet Island", + "meaning": "GAZ:00001453" + }, + "Brazil": { + "text": "Brazil", + "meaning": "GAZ:00002828" + }, + "British Virgin Islands": { + "text": "British Virgin Islands", + "meaning": "GAZ:00003961" + }, + "Brunei": { + "text": "Brunei", + "meaning": "GAZ:00003901" + }, + "Bulgaria": { + "text": "Bulgaria", + "meaning": "GAZ:00002950" + }, + "Burkina Faso": { + "text": "Burkina Faso", + "meaning": "GAZ:00000905" + }, + "Burundi": { + "text": "Burundi", + "meaning": "GAZ:00001090" + }, + "Cambodia": { + "text": "Cambodia", + "meaning": "GAZ:00006888" + }, + "Cameroon": { + "text": "Cameroon", + "meaning": "GAZ:00001093" + }, + "Canada": { + "text": "Canada", + "meaning": "GAZ:00002560" + }, + "Cape Verde": { + "text": "Cape Verde", + "meaning": "GAZ:00001227" + }, + "Cayman Islands": { + "text": "Cayman Islands", + "meaning": "GAZ:00003986" + }, + "Central African Republic": { + "text": "Central African Republic", + "meaning": "GAZ:00001089" + }, + "Chad": { + "text": "Chad", + "meaning": "GAZ:00000586" + }, + "Chile": { + "text": "Chile", + "meaning": "GAZ:00002825" + }, + "China": { + "text": "China", + "meaning": "GAZ:00002845" + }, + "Christmas Island": { + "text": "Christmas Island", + "meaning": "GAZ:00005915" + }, + "Clipperton Island": { + "text": "Clipperton Island", + "meaning": "GAZ:00005838" + }, + "Cocos Islands": { + "text": "Cocos Islands", + "meaning": "GAZ:00009721" + }, + "Colombia": { + "text": "Colombia", + "meaning": "GAZ:00002929" + }, + "Comoros": { + "text": "Comoros", + "meaning": "GAZ:00005820" + }, + "Cook Islands": { + "text": "Cook Islands", + "meaning": "GAZ:00053798" + }, + "Coral Sea Islands": { + "text": "Coral Sea Islands", + "meaning": "GAZ:00005917" + }, + "Costa Rica": { + "text": "Costa Rica", + "meaning": "GAZ:00002901" + }, + "Cote d'Ivoire": { + "text": "Cote d'Ivoire", + "meaning": "GAZ:00000906" + }, + "Croatia": { + "text": "Croatia", + "meaning": "GAZ:00002719" + }, + "Cuba": { + "text": "Cuba", + "meaning": "GAZ:00003762" + }, + "Curacao": { + "text": "Curacao", + "meaning": "GAZ:00012582" + }, + "Cyprus": { + "text": "Cyprus", + "meaning": "GAZ:00004006" + }, + "Czech Republic": { + "text": "Czech Republic", + "meaning": "GAZ:00002954" + }, + "Democratic Republic of the Congo": { + "text": "Democratic Republic of the Congo", + "meaning": "GAZ:00001086" + }, + "Denmark": { + "text": "Denmark", + "meaning": "GAZ:00005852" + }, + "Djibouti": { + "text": "Djibouti", + "meaning": "GAZ:00000582" + }, + "Dominica": { + "text": "Dominica", + "meaning": "GAZ:00006890" + }, + "Dominican Republic": { + "text": "Dominican Republic", + "meaning": "GAZ:00003952" + }, + "Ecuador": { + "text": "Ecuador", + "meaning": "GAZ:00002912" + }, + "Egypt": { + "text": "Egypt", + "meaning": "GAZ:00003934" + }, + "El Salvador": { + "text": "El Salvador", + "meaning": "GAZ:00002935" + }, + "Equatorial Guinea": { + "text": "Equatorial Guinea", + "meaning": "GAZ:00001091" + }, + "Eritrea": { + "text": "Eritrea", + "meaning": "GAZ:00000581" + }, + "Estonia": { + "text": "Estonia", + "meaning": "GAZ:00002959" + }, + "Eswatini": { + "text": "Eswatini", + "meaning": "GAZ:00001099" + }, + "Ethiopia": { + "text": "Ethiopia", + "meaning": "GAZ:00000567" + }, + "Europa Island": { + "text": "Europa Island", + "meaning": "GAZ:00005811" + }, + "Falkland Islands (Islas Malvinas)": { + "text": "Falkland Islands (Islas Malvinas)", + "meaning": "GAZ:00001412" + }, + "Faroe Islands": { + "text": "Faroe Islands", + "meaning": "GAZ:00059206" + }, + "Fiji": { + "text": "Fiji", + "meaning": "GAZ:00006891" + }, + "Finland": { + "text": "Finland", + "meaning": "GAZ:00002937" + }, + "France": { + "text": "France", + "meaning": "GAZ:00003940" + }, + "French Guiana": { + "text": "French Guiana", + "meaning": "GAZ:00002516" + }, + "French Polynesia": { + "text": "French Polynesia", + "meaning": "GAZ:00002918" + }, + "French Southern and Antarctic Lands": { + "text": "French Southern and Antarctic Lands", + "meaning": "GAZ:00003753" + }, + "Gabon": { + "text": "Gabon", + "meaning": "GAZ:00001092" + }, + "Gambia": { + "text": "Gambia", + "meaning": "GAZ:00000907" + }, + "Gaza Strip": { + "text": "Gaza Strip", + "meaning": "GAZ:00009571" + }, + "Georgia": { + "text": "Georgia", + "meaning": "GAZ:00004942" + }, + "Germany": { + "text": "Germany", + "meaning": "GAZ:00002646" + }, + "Ghana": { + "text": "Ghana", + "meaning": "GAZ:00000908" + }, + "Gibraltar": { + "text": "Gibraltar", + "meaning": "GAZ:00003987" + }, + "Glorioso Islands": { + "text": "Glorioso Islands", + "meaning": "GAZ:00005808" + }, + "Greece": { + "text": "Greece", + "meaning": "GAZ:00002945" + }, + "Greenland": { + "text": "Greenland", + "meaning": "GAZ:00001507" + }, + "Grenada": { + "text": "Grenada", + "meaning": "GAZ:02000573" + }, + "Guadeloupe": { + "text": "Guadeloupe", + "meaning": "GAZ:00067142" + }, + "Guam": { + "text": "Guam", + "meaning": "GAZ:00003706" + }, + "Guatemala": { + "text": "Guatemala", + "meaning": "GAZ:00002936" + }, + "Guernsey": { + "text": "Guernsey", + "meaning": "GAZ:00001550" + }, + "Guinea": { + "text": "Guinea", + "meaning": "GAZ:00000909" + }, + "Guinea-Bissau": { + "text": "Guinea-Bissau", + "meaning": "GAZ:00000910" + }, + "Guyana": { + "text": "Guyana", + "meaning": "GAZ:00002522" + }, + "Haiti": { + "text": "Haiti", + "meaning": "GAZ:00003953" + }, + "Heard Island and McDonald Islands": { + "text": "Heard Island and McDonald Islands", + "meaning": "GAZ:00009718" + }, + "Honduras": { + "text": "Honduras", + "meaning": "GAZ:00002894" + }, + "Hong Kong": { + "text": "Hong Kong", + "meaning": "GAZ:00003203" + }, + "Howland Island": { + "text": "Howland Island", + "meaning": "GAZ:00007120" + }, + "Hungary": { + "text": "Hungary", + "meaning": "GAZ:00002952" + }, + "Iceland": { + "text": "Iceland", + "meaning": "GAZ:00000843" + }, + "India": { + "text": "India", + "meaning": "GAZ:00002839" + }, + "Indonesia": { + "text": "Indonesia", + "meaning": "GAZ:00003727" + }, + "Iran": { + "text": "Iran", + "meaning": "GAZ:00004474" + }, + "Iraq": { + "text": "Iraq", + "meaning": "GAZ:00004483" + }, + "Ireland": { + "text": "Ireland", + "meaning": "GAZ:00002943" + }, + "Isle of Man": { + "text": "Isle of Man", + "meaning": "GAZ:00052477" + }, + "Israel": { + "text": "Israel", + "meaning": "GAZ:00002476" + }, + "Italy": { + "text": "Italy", + "meaning": "GAZ:00002650" + }, + "Jamaica": { + "text": "Jamaica", + "meaning": "GAZ:00003781" + }, + "Jan Mayen": { + "text": "Jan Mayen", + "meaning": "GAZ:00005853" + }, + "Japan": { + "text": "Japan", + "meaning": "GAZ:00002747" + }, + "Jarvis Island": { + "text": "Jarvis Island", + "meaning": "GAZ:00007118" + }, + "Jersey": { + "text": "Jersey", + "meaning": "GAZ:00001551" + }, + "Johnston Atoll": { + "text": "Johnston Atoll", + "meaning": "GAZ:00007114" + }, + "Jordan": { + "text": "Jordan", + "meaning": "GAZ:00002473" + }, + "Juan de Nova Island": { + "text": "Juan de Nova Island", + "meaning": "GAZ:00005809" + }, + "Kazakhstan": { + "text": "Kazakhstan", + "meaning": "GAZ:00004999" + }, + "Kenya": { + "text": "Kenya", + "meaning": "GAZ:00001101" + }, + "Kerguelen Archipelago": { + "text": "Kerguelen Archipelago", + "meaning": "GAZ:00005682" + }, + "Kingman Reef": { + "text": "Kingman Reef", + "meaning": "GAZ:00007116" + }, + "Kiribati": { + "text": "Kiribati", + "meaning": "GAZ:00006894" + }, + "Kosovo": { + "text": "Kosovo", + "meaning": "GAZ:00011337" + }, + "Kuwait": { + "text": "Kuwait", + "meaning": "GAZ:00005285" + }, + "Kyrgyzstan": { + "text": "Kyrgyzstan", + "meaning": "GAZ:00006893" + }, + "Laos": { + "text": "Laos", + "meaning": "GAZ:00006889" + }, + "Latvia": { + "text": "Latvia", + "meaning": "GAZ:00002958" + }, + "Lebanon": { + "text": "Lebanon", + "meaning": "GAZ:00002478" + }, + "Lesotho": { + "text": "Lesotho", + "meaning": "GAZ:00001098" + }, + "Liberia": { + "text": "Liberia", + "meaning": "GAZ:00000911" + }, + "Libya": { + "text": "Libya", + "meaning": "GAZ:00000566" + }, + "Liechtenstein": { + "text": "Liechtenstein", + "meaning": "GAZ:00003858" + }, + "Line Islands": { + "text": "Line Islands", + "meaning": "GAZ:00007144" + }, + "Lithuania": { + "text": "Lithuania", + "meaning": "GAZ:00002960" + }, + "Luxembourg": { + "text": "Luxembourg", + "meaning": "GAZ:00002947" + }, + "Macau": { + "text": "Macau", + "meaning": "GAZ:00003202" + }, + "Madagascar": { + "text": "Madagascar", + "meaning": "GAZ:00001108" + }, + "Malawi": { + "text": "Malawi", + "meaning": "GAZ:00001105" + }, + "Malaysia": { + "text": "Malaysia", + "meaning": "GAZ:00003902" + }, + "Maldives": { + "text": "Maldives", + "meaning": "GAZ:00006924" + }, + "Mali": { + "text": "Mali", + "meaning": "GAZ:00000584" + }, + "Malta": { + "text": "Malta", + "meaning": "GAZ:00004017" + }, + "Marshall Islands": { + "text": "Marshall Islands", + "meaning": "GAZ:00007161" + }, + "Martinique": { + "text": "Martinique", + "meaning": "GAZ:00067143" + }, + "Mauritania": { + "text": "Mauritania", + "meaning": "GAZ:00000583" + }, + "Mauritius": { + "text": "Mauritius", + "meaning": "GAZ:00003745" + }, + "Mayotte": { + "text": "Mayotte", + "meaning": "GAZ:00003943" + }, + "Mexico": { + "text": "Mexico", + "meaning": "GAZ:00002852" + }, + "Micronesia": { + "text": "Micronesia", + "meaning": "GAZ:00005862" + }, + "Midway Islands": { + "text": "Midway Islands", + "meaning": "GAZ:00007112" + }, + "Moldova": { + "text": "Moldova", + "meaning": "GAZ:00003897" + }, + "Monaco": { + "text": "Monaco", + "meaning": "GAZ:00003857" + }, + "Mongolia": { + "text": "Mongolia", + "meaning": "GAZ:00008744" + }, + "Montenegro": { + "text": "Montenegro", + "meaning": "GAZ:00006898" + }, + "Montserrat": { + "text": "Montserrat", + "meaning": "GAZ:00003988" + }, + "Morocco": { + "text": "Morocco", + "meaning": "GAZ:00000565" + }, + "Mozambique": { + "text": "Mozambique", + "meaning": "GAZ:00001100" + }, + "Myanmar": { + "text": "Myanmar", + "meaning": "GAZ:00006899" + }, + "Namibia": { + "text": "Namibia", + "meaning": "GAZ:00001096" + }, + "Nauru": { + "text": "Nauru", + "meaning": "GAZ:00006900" + }, + "Navassa Island": { + "text": "Navassa Island", + "meaning": "GAZ:00007119" + }, + "Nepal": { + "text": "Nepal", + "meaning": "GAZ:00004399" + }, + "Netherlands": { + "text": "Netherlands", + "meaning": "GAZ:00002946" + }, + "New Caledonia": { + "text": "New Caledonia", + "meaning": "GAZ:00005206" + }, + "New Zealand": { + "text": "New Zealand", + "meaning": "GAZ:00000469" + }, + "Nicaragua": { + "text": "Nicaragua", + "meaning": "GAZ:00002978" + }, + "Niger": { + "text": "Niger", + "meaning": "GAZ:00000585" + }, + "Nigeria": { + "text": "Nigeria", + "meaning": "GAZ:00000912" + }, + "Niue": { + "text": "Niue", + "meaning": "GAZ:00006902" + }, + "Norfolk Island": { + "text": "Norfolk Island", + "meaning": "GAZ:00005908" + }, + "North Korea": { + "text": "North Korea", + "meaning": "GAZ:00002801" + }, + "North Macedonia": { + "text": "North Macedonia", + "meaning": "GAZ:00006895" + }, + "North Sea": { + "text": "North Sea", + "meaning": "GAZ:00002284" + }, + "Northern Mariana Islands": { + "text": "Northern Mariana Islands", + "meaning": "GAZ:00003958" + }, + "Norway": { + "text": "Norway", + "meaning": "GAZ:00002699" + }, + "Oman": { + "text": "Oman", + "meaning": "GAZ:00005283" + }, + "Pakistan": { + "text": "Pakistan", + "meaning": "GAZ:00005246" + }, + "Palau": { + "text": "Palau", + "meaning": "GAZ:00006905" + }, + "Panama": { + "text": "Panama", + "meaning": "GAZ:00002892" + }, + "Papua New Guinea": { + "text": "Papua New Guinea", + "meaning": "GAZ:00003922" + }, + "Paracel Islands": { + "text": "Paracel Islands", + "meaning": "GAZ:00010832" + }, + "Paraguay": { + "text": "Paraguay", + "meaning": "GAZ:00002933" + }, + "Peru": { + "text": "Peru", + "meaning": "GAZ:00002932" + }, + "Philippines": { + "text": "Philippines", + "meaning": "GAZ:00004525" + }, + "Pitcairn Islands": { + "text": "Pitcairn Islands", + "meaning": "GAZ:00005867" + }, + "Poland": { + "text": "Poland", + "meaning": "GAZ:00002939" + }, + "Portugal": { + "text": "Portugal", + "meaning": "GAZ:00004126" + }, + "Puerto Rico": { + "text": "Puerto Rico", + "meaning": "GAZ:00006935" + }, + "Qatar": { + "text": "Qatar", + "meaning": "GAZ:00005286" + }, + "Republic of the Congo": { + "text": "Republic of the Congo", + "meaning": "GAZ:00001088" + }, + "Reunion": { + "text": "Reunion", + "meaning": "GAZ:00003945" + }, + "Romania": { + "text": "Romania", + "meaning": "GAZ:00002951" + }, + "Ross Sea": { + "text": "Ross Sea", + "meaning": "GAZ:00023304" + }, + "Russia": { + "text": "Russia", + "meaning": "GAZ:00002721" + }, + "Rwanda": { + "text": "Rwanda", + "meaning": "GAZ:00001087" + }, + "Saint Helena": { + "text": "Saint Helena", + "meaning": "GAZ:00000849" + }, + "Saint Kitts and Nevis": { + "text": "Saint Kitts and Nevis", + "meaning": "GAZ:00006906" + }, + "Saint Lucia": { + "text": "Saint Lucia", + "meaning": "GAZ:00006909" + }, + "Saint Pierre and Miquelon": { + "text": "Saint Pierre and Miquelon", + "meaning": "GAZ:00003942" + }, + "Saint Martin": { + "text": "Saint Martin", + "meaning": "GAZ:00005841" + }, + "Saint Vincent and the Grenadines": { + "text": "Saint Vincent and the Grenadines", + "meaning": "GAZ:02000565" + }, + "Samoa": { + "text": "Samoa", + "meaning": "GAZ:00006910" + }, + "San Marino": { + "text": "San Marino", + "meaning": "GAZ:00003102" + }, + "Sao Tome and Principe": { + "text": "Sao Tome and Principe", + "meaning": "GAZ:00006927" + }, + "Saudi Arabia": { + "text": "Saudi Arabia", + "meaning": "GAZ:00005279" + }, + "Senegal": { + "text": "Senegal", + "meaning": "GAZ:00000913" + }, + "Serbia": { + "text": "Serbia", + "meaning": "GAZ:00002957" + }, + "Seychelles": { + "text": "Seychelles", + "meaning": "GAZ:00006922" + }, + "Sierra Leone": { + "text": "Sierra Leone", + "meaning": "GAZ:00000914" + }, + "Singapore": { + "text": "Singapore", + "meaning": "GAZ:00003923" + }, + "Sint Maarten": { + "text": "Sint Maarten", + "meaning": "GAZ:00012579" + }, + "Slovakia": { + "text": "Slovakia", + "meaning": "GAZ:00002956" + }, + "Slovenia": { + "text": "Slovenia", + "meaning": "GAZ:00002955" + }, + "Solomon Islands": { + "text": "Solomon Islands", + "meaning": "GAZ:00005275" + }, + "Somalia": { + "text": "Somalia", + "meaning": "GAZ:00001104" + }, + "South Africa": { + "text": "South Africa", + "meaning": "GAZ:00001094" + }, + "South Georgia and the South Sandwich Islands": { + "text": "South Georgia and the South Sandwich Islands", + "meaning": "GAZ:00003990" + }, + "South Korea": { + "text": "South Korea", + "meaning": "GAZ:00002802" + }, + "South Sudan": { + "text": "South Sudan", + "meaning": "GAZ:00233439" + }, + "Spain": { + "text": "Spain", + "meaning": "GAZ:00003936" + }, + "Spratly Islands": { + "text": "Spratly Islands", + "meaning": "GAZ:00010831" + }, + "Sri Lanka": { + "text": "Sri Lanka", + "meaning": "GAZ:00003924" + }, + "State of Palestine": { + "text": "State of Palestine", + "meaning": "GAZ:00002475" + }, + "Sudan": { + "text": "Sudan", + "meaning": "GAZ:00000560" + }, + "Suriname": { + "text": "Suriname", + "meaning": "GAZ:00002525" + }, + "Svalbard": { + "text": "Svalbard", + "meaning": "GAZ:00005396" + }, + "Swaziland": { + "text": "Swaziland", + "meaning": "GAZ:00001099" + }, + "Sweden": { + "text": "Sweden", + "meaning": "GAZ:00002729" + }, + "Switzerland": { + "text": "Switzerland", + "meaning": "GAZ:00002941" + }, + "Syria": { + "text": "Syria", + "meaning": "GAZ:00002474" + }, + "Taiwan": { + "text": "Taiwan", + "meaning": "GAZ:00005341" + }, + "Tajikistan": { + "text": "Tajikistan", + "meaning": "GAZ:00006912" + }, + "Tanzania": { + "text": "Tanzania", + "meaning": "GAZ:00001103" + }, + "Thailand": { + "text": "Thailand", + "meaning": "GAZ:00003744" + }, + "Timor-Leste": { + "text": "Timor-Leste", + "meaning": "GAZ:00006913" + }, + "Togo": { + "text": "Togo", + "meaning": "GAZ:00000915" + }, + "Tokelau": { + "text": "Tokelau", + "meaning": "GAZ:00260188" + }, + "Tonga": { + "text": "Tonga", + "meaning": "GAZ:00006916" + }, + "Trinidad and Tobago": { + "text": "Trinidad and Tobago", + "meaning": "GAZ:00003767" + }, + "Tromelin Island": { + "text": "Tromelin Island", + "meaning": "GAZ:00005812" + }, + "Tunisia": { + "text": "Tunisia", + "meaning": "GAZ:00000562" + }, + "Turkey": { + "text": "Turkey", + "meaning": "GAZ:00000558" + }, + "Turkmenistan": { + "text": "Turkmenistan", + "meaning": "GAZ:00005018" + }, + "Turks and Caicos Islands": { + "text": "Turks and Caicos Islands", + "meaning": "GAZ:00003955" + }, + "Tuvalu": { + "text": "Tuvalu", + "meaning": "GAZ:00009715" + }, + "United States of America": { + "text": "United States of America", + "meaning": "GAZ:00002459" + }, + "Uganda": { + "text": "Uganda", + "meaning": "GAZ:00001102" + }, + "Ukraine": { + "text": "Ukraine", + "meaning": "GAZ:00002724" + }, + "United Arab Emirates": { + "text": "United Arab Emirates", + "meaning": "GAZ:00005282" + }, + "United Kingdom": { + "text": "United Kingdom", + "meaning": "GAZ:00002637" + }, + "Uruguay": { + "text": "Uruguay", + "meaning": "GAZ:00002930" + }, + "Uzbekistan": { + "text": "Uzbekistan", + "meaning": "GAZ:00004979" + }, + "Vanuatu": { + "text": "Vanuatu", + "meaning": "GAZ:00006918" + }, + "Venezuela": { + "text": "Venezuela", + "meaning": "GAZ:00002931" + }, + "Viet Nam": { + "text": "Viet Nam", + "meaning": "GAZ:00003756" + }, + "Virgin Islands": { + "text": "Virgin Islands", + "meaning": "GAZ:00003959" + }, + "Wake Island": { + "text": "Wake Island", + "meaning": "GAZ:00007111" + }, + "Wallis and Futuna": { + "text": "Wallis and Futuna", + "meaning": "GAZ:00007191" + }, + "West Bank": { + "text": "West Bank", + "meaning": "GAZ:00009572" + }, + "Western Sahara": { + "text": "Western Sahara", + "meaning": "GAZ:00000564" + }, + "Yemen": { + "text": "Yemen", + "meaning": "GAZ:00005284" + }, + "Zambia": { + "text": "Zambia", + "meaning": "GAZ:00001107" + }, + "Zimbabwe": { + "text": "Zimbabwe", + "meaning": "GAZ:00001106" + } + } + }, + "geo_loc_name (site) menu": { + "name": "geo_loc_name (site) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Banff National Park": { + "text": "Banff National Park", + "meaning": "GAZ:00055489" + }, + "Clayoquot Sound": { + "text": "Clayoquot Sound", + "meaning": "GAZ:00055538" + }, + "Grassi Lakes": { + "text": "Grassi Lakes" + }, + "Horseshoe Canyon": { + "text": "Horseshoe Canyon", + "meaning": "GAZ:00284745" + }, + "Ink Pots": { + "text": "Ink Pots" + }, + "Lake Louise": { + "text": "Lake Louise", + "meaning": "GAZ:00084160" + }, + "Sylvan Lake": { + "text": "Sylvan Lake", + "meaning": "GAZ:00084188" + } + } + }, + "purpose of sampling menu": { + "name": "purpose of sampling menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Cluster/Outbreak investigation": { + "text": "Cluster/Outbreak investigation", + "meaning": "GENEPIO:0100001" + }, + "Diagnostic testing": { + "text": "Diagnostic testing", + "meaning": "GENEPIO:0100002" + }, + "Research": { + "text": "Research", + "meaning": "GENEPIO:0100003" + }, + "Survey study": { + "text": "Survey study", + "meaning": "GENEPIO:0100582", + "is_a": "Research" + }, + "Surveillance": { + "text": "Surveillance", + "meaning": "GENEPIO:0100004" + } + } + }, + "anatomical material menu": { + "name": "anatomical material menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Skin": { + "text": "Skin", + "meaning": "UBERON:0002097" + }, + "Tissue": { + "text": "Tissue", + "meaning": "UBERON:0000479" + }, + "Pierced tissue": { + "text": "Pierced tissue", + "is_a": "Tissue" + }, + "Wound tissue (injury)": { + "text": "Wound tissue (injury)", + "meaning": "NCIT:C3671", + "is_a": "Tissue" + } + } + }, + "anatomical part menu": { + "name": "anatomical part menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Animal body or body part": { + "text": "Animal body or body part", + "meaning": "FOODON:03420127" + }, + "Berry": { + "text": "Berry", + "meaning": "FOODON:00003521" + }, + "Colon": { + "text": "Colon", + "meaning": "UBERON:0001155" + }, + "Ascending colon": { + "text": "Ascending colon", + "meaning": "UBERON:0001156", + "is_a": "Colon" + }, + "Ear": { + "text": "Ear", + "meaning": "UBERON:0001690" + }, + "Flower": { + "text": "Flower", + "meaning": "PO:0009046" + }, + "Flower petal": { + "text": "Flower petal", + "meaning": "PO:0009032", + "is_a": "Flower" + }, + "Leaf": { + "text": "Leaf", + "meaning": "PO:0025034" + }, + "Nasal cavity": { + "text": "Nasal cavity", + "meaning": "UBERON:0001707" + }, + "Oral cavity": { + "text": "Oral cavity", + "meaning": "UBERON:0000167" + }, + "Vagina": { + "text": "Vagina", + "meaning": "UBERON:0000996" + } + } + }, + "body product menu": { + "name": "body product menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Feces": { + "text": "Feces", + "meaning": "UBERON:0001988" + } + } + }, + "environmental material menu": { + "name": "environmental material menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Algal film": { + "text": "Algal film", + "meaning": "ENVO:01001189" + }, + "Bandage": { + "text": "Bandage" + }, + "Cerebral spinal fluid (CSF) shunt": { + "text": "Cerebral spinal fluid (CSF) shunt" + }, + "Food": { + "text": "Food", + "meaning": "CHEBI:33290" + }, + "Gauze": { + "text": "Gauze" + }, + "Gravel": { + "text": "Gravel", + "meaning": "ENVO:01000018" + }, + "Moss": { + "text": "Moss" + }, + "Peat": { + "text": "Peat", + "meaning": "ENVO:00005774" + }, + "Phone": { + "text": "Phone", + "meaning": "ENVO:01000581" + }, + "Phone screen": { + "text": "Phone screen", + "is_a": "Phone" + }, + "Pipe (metal)": { + "text": "Pipe (metal)" + }, + "Prosthetic limb": { + "text": "Prosthetic limb" + }, + "Prosthetic hip": { + "text": "Prosthetic hip", + "is_a": "Prosthetic limb" + }, + "Rock": { + "text": "Rock", + "meaning": "ENVO:00001995" + }, + "Sand": { + "text": "Sand", + "meaning": "ENVO:01000017" + }, + "Black sand": { + "text": "Black sand", + "is_a": "Sand" + }, + "Copper sand": { + "text": "Copper sand", + "is_a": "Sand" + }, + "Sludge": { + "text": "Sludge", + "meaning": "ENVO:00002044" + }, + "Soil": { + "text": "Soil", + "meaning": "ENVO:00001998" + }, + "Snow": { + "text": "Snow", + "meaning": "ENVO:01000406" + }, + "Water": { + "text": "Water", + "meaning": "ENVO:00002006" + }, + "Surface runoff": { + "text": "Surface runoff", + "is_a": "Water" + }, + "Surface water foam": { + "text": "Surface water foam", + "meaning": "ENVO:00005738", + "is_a": "Water" + }, + "Tap water": { + "text": "Tap water", + "is_a": "Water" + }, + "Drinking water": { + "text": "Drinking water", + "meaning": "ENVO:00003064", + "is_a": "Tap water" + }, + "Water outlet": { + "text": "Water outlet" + } + } + }, + "environmental site menu": { + "name": "environmental site menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Bird bath": { + "text": "Bird bath" + }, + "Deep water area": { + "text": "Deep water area" + }, + "Fish tank": { + "text": "Fish tank" + }, + "Fountain": { + "text": "Fountain" + }, + "Fountain pond": { + "text": "Fountain pond", + "is_a": "Fountain" + }, + "Hoodoo": { + "text": "Hoodoo" + }, + "Hospital": { + "text": "Hospital", + "meaning": "ENVO:00002173" + }, + "Laboratory": { + "text": "Laboratory", + "meaning": "ENVO:01001406" + }, + "Lake": { + "text": "Lake", + "meaning": "ENVO:00000020" + }, + "Pond": { + "text": "Pond", + "meaning": "ENVO:00000033" + }, + "Shoreline": { + "text": "Shoreline", + "meaning": "ENVO:00000486" + }, + "Stream": { + "text": "Stream", + "meaning": "ENVO:00000023" + }, + "Tailing pond": { + "text": "Tailing pond", + "meaning": "ENVO:03600021" + }, + "Waterfall": { + "text": "Waterfall", + "meaning": "ENVO:00000040" + } + } + }, + "collection device menu": { + "name": "collection device menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Filter": { + "text": "Filter", + "meaning": "GENEPIO:0100103" + }, + "Filter cage": { + "text": "Filter cage", + "is_a": "Filter" + }, + "Swab": { + "text": "Swab", + "meaning": "GENEPIO:0100027" + } + } + }, + "collection method menu": { + "name": "collection method menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Biopsy": { + "text": "Biopsy", + "meaning": "OBI:0002650" + } + } + }, + "specimen processing menu": { + "name": "specimen processing menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Biological replicate": { + "text": "Biological replicate", + "meaning": "EFO:0002091" + } + } + }, + "incubation temperature unit menu": { + "name": "incubation temperature unit menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Degree Celsius": { + "text": "Degree Celsius", + "meaning": "UO:0000027" + }, + "Degree Farenheit": { + "text": "Degree Farenheit", + "meaning": "UO:0000195" + } + } + }, + "isolation medium menu": { + "name": "isolation medium menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "1/10 869": { + "text": "1/10 869" + }, + "Anaerobic agar (AA)": { + "text": "Anaerobic agar (AA)" + }, + "Bile esculin agar (BEA)": { + "text": "Bile esculin agar (BEA)", + "meaning": "MICRO:0000605" + }, + "Brain heart infusion (BHI)": { + "text": "Brain heart infusion (BHI)", + "meaning": "MICRO:0000566" + }, + "Brain heart infusion III + Supplement Set A (BHI-A)": { + "text": "Brain heart infusion III + Supplement Set A (BHI-A)", + "is_a": "Brain heart infusion (BHI)" + }, + "Brain heart infusion II + Supplement Set B (BHI-B)": { + "text": "Brain heart infusion II + Supplement Set B (BHI-B)", + "is_a": "Brain heart infusion (BHI)" + }, + "Brain heart infusion IV + Supplement Set A & B (BHI-AB)": { + "text": "Brain heart infusion IV + Supplement Set A & B (BHI-AB)", + "is_a": "Brain heart infusion (BHI)" + }, + "Supplemented BHI (sBHI 2.0)": { + "text": "Supplemented BHI (sBHI 2.0)", + "is_a": "Brain heart infusion (BHI)" + }, + "Brewer’s anaerobic agar (BAA)": { + "text": "Brewer’s anaerobic agar (BAA)" + }, + "Brucella blood agar + 5% sheep’s blood": { + "text": "Brucella blood agar + 5% sheep’s blood", + "meaning": "MICRO:0000086" + }, + "Chocolate blood agar": { + "text": "Chocolate blood agar", + "meaning": "MICRO:0000591" + }, + "Columbia blood agar + 5% sheep’s blood (CBA)": { + "text": "Columbia blood agar + 5% sheep’s blood (CBA)", + "meaning": "MICRO:0000535" + }, + "Cooked meat medium from dehydrated meat extracts (Meat)": { + "text": "Cooked meat medium from dehydrated meat extracts (Meat)" + }, + "Cooke rose bengal agar (CRB)": { + "text": "Cooke rose bengal agar (CRB)" + }, + "Desoxycholate (DOC)": { + "text": "Desoxycholate (DOC)" + }, + "Fastidious anaerobic agar (FAA)": { + "text": "Fastidious anaerobic agar (FAA)" + }, + "Kligler iron agar (KIA)": { + "text": "Kligler iron agar (KIA)", + "meaning": "MICRO:0001182" + }, + "Lysogeny broth agar (LB)": { + "text": "Lysogeny broth agar (LB)" + }, + "M9 minimal medium (M9)": { + "text": "M9 minimal medium (M9)" + }, + "M9 minimal media + insulin (M9 + insulin)": { + "text": "M9 minimal media + insulin (M9 + insulin)", + "is_a": "M9 minimal medium (M9)" + }, + "M9 minimal media + mucin (M9 + mucin)": { + "text": "M9 minimal media + mucin (M9 + mucin)", + "is_a": "M9 minimal medium (M9)" + }, + "M9 minimal media + starch (M9 + starch)": { + "text": "M9 minimal media + starch (M9 + starch)", + "is_a": "M9 minimal medium (M9)" + }, + "M17 minimal medium (M17)": { + "text": "M17 minimal medium (M17)" + }, + "MacConkey agar (MCA)": { + "text": "MacConkey agar (MCA)", + "meaning": "MICRO:0000558" + }, + "Marine broth agar (MBA)": { + "text": "Marine broth agar (MBA)" + }, + "Medium 10 agar (M10)": { + "text": "Medium 10 agar (M10)" + }, + "Medium DAMS5.8 simple": { + "text": "Medium DAMS5.8 simple" + }, + "No salt lysogeny broth agar (NSLB)": { + "text": "No salt lysogeny broth agar (NSLB)" + }, + "No salt lysogeny broth agar + 5-15% sucrose (NSLB + 5-15% sucrose)": { + "text": "No salt lysogeny broth agar + 5-15% sucrose (NSLB + 5-15% sucrose)", + "is_a": "No salt lysogeny broth agar (NSLB)" + }, + "Nutrient agar": { + "text": "Nutrient agar", + "meaning": "MICRO:0000553" + }, + "Phenylethyl alcohol agar + 5% sheep’s blood (PEA)": { + "text": "Phenylethyl alcohol agar + 5% sheep’s blood (PEA)", + "meaning": "MICRO:0000622" + }, + "Plate count medium (PC)": { + "text": "Plate count medium (PC)", + "meaning": "MICRO:0000549" + }, + "Pseudomonas isolation medium (PIA)": { + "text": "Pseudomonas isolation medium (PIA)", + "meaning": "MICRO:0000550" + }, + "Reasoner's 2A agar (R2A)": { + "text": "Reasoner's 2A agar (R2A)", + "meaning": "MICRO:0000543" + }, + "Reinforced Clostridial agar (RCA)": { + "text": "Reinforced Clostridial agar (RCA)" + }, + "Staphylococcus isolation medium (SIA)": { + "text": "Staphylococcus isolation medium (SIA)" + }, + "Tryptic soy agar + Supplement A & B + yeast (TSY)": { + "text": "Tryptic soy agar + Supplement A & B + yeast (TSY)" + }, + "Sheep’s blood (5%)": { + "text": "Sheep’s blood (5%)" + }, + "Supplement A": { + "text": "Supplement A" + }, + "Supplement B": { + "text": "Supplement B" + }, + "Supplement 2.0": { + "text": "Supplement 2.0" + } + } + }, + "taxonomic identification method menu": { + "name": "taxonomic identification method menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Whole genome sequencing assay": { + "text": "Whole genome sequencing assay", + "meaning": "OBI:0002117" + }, + "16S ribosomal gene sequencing assay": { + "text": "16S ribosomal gene sequencing assay", + "meaning": "OBI:0002763" + }, + "PCR assay": { + "text": "PCR assay", + "meaning": "OBI:0002740" + }, + "Comparative phenotypic assessment": { + "text": "Comparative phenotypic assessment", + "meaning": "OBI:0001546" + } + } + }, + "taxonomic identification method details menu": { + "name": "taxonomic identification method details menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database": { + "text": "Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database" + }, + "Genus-level ID: >99.0% identity but ambiguous match to >1 type (T) sequence in databases": { + "text": "Genus-level ID: >99.0% identity but ambiguous match to >1 type (T) sequence in databases" + }, + "Genus-level ID: >98.7% identity to a type (T) sequence AND/OR >99.0% identity with a sequence that has not been typed*": { + "text": "Genus-level ID: >98.7% identity to a type (T) sequence AND/OR >99.0% identity with a sequence that has not been typed*" + }, + "Need to do whole genome sequencing to confirm their identity": { + "text": "Need to do whole genome sequencing to confirm their identity" + } + } + }, + "cellular respiration type menu": { + "name": "cellular respiration type menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Aerobic respiration": { + "text": "Aerobic respiration", + "meaning": "GO:0009060" + }, + "Anaerobic respiration": { + "text": "Anaerobic respiration", + "meaning": "GO:0009061" + } + } + }, + "host (common name) menu": { + "name": "host (common name) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Horse": { + "text": "Horse", + "meaning": "NCBITaxon:9796" + }, + "Human": { + "text": "Human", + "meaning": "NCBITaxon:9606" + }, + "Plant": { + "text": "Plant", + "meaning": "NCBITaxon:47299" + }, + "Bush": { + "text": "Bush", + "is_a": "Plant" + }, + "Canola plant": { + "text": "Canola plant", + "is_a": "Plant" + }, + "Gerranium plant": { + "text": "Gerranium plant", + "meaning": "NCBITaxon:4028", + "is_a": "Plant" + }, + "Tree": { + "text": "Tree", + "is_a": "Plant" + }, + "Poplar tree": { + "text": "Poplar tree", + "is_a": "Tree" + }, + "Willow tree": { + "text": "Willow tree", + "is_a": "Tree" + }, + "Snail": { + "text": "Snail", + "meaning": "FOODON:03412114" + } + } + }, + "host (scientific name) menu": { + "name": "host (scientific name) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Equus caballus": { + "text": "Equus caballus" + }, + "Homo sapiens": { + "text": "Homo sapiens" + } + } + }, + "host disease menu": { + "name": "host disease menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Colitis": { + "text": "Colitis" + }, + "Acute colitis": { + "text": "Acute colitis", + "is_a": "Colitis" + }, + "Cystic fibrosis": { + "text": "Cystic fibrosis" + }, + "Gastroenteritis": { + "text": "Gastroenteritis" + }, + "Pyelonephritis": { + "text": "Pyelonephritis" + }, + "Acute pyelonephritis": { + "text": "Acute pyelonephritis", + "is_a": "Pyelonephritis" + }, + "Urinary tract infection": { + "text": "Urinary tract infection" + } + } + }, + "sequencing instrument menu": { + "name": "sequencing instrument menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Illumina": { + "text": "Illumina", + "meaning": "GENEPIO:0100105" + }, + "Illumina Genome Analyzer": { + "text": "Illumina Genome Analyzer", + "meaning": "GENEPIO:0100106", + "is_a": "Illumina" + }, + "Illumina Genome Analyzer II": { + "text": "Illumina Genome Analyzer II", + "meaning": "GENEPIO:0100107", + "is_a": "Illumina Genome Analyzer" + }, + "Illumina Genome Analyzer IIx": { + "text": "Illumina Genome Analyzer IIx", + "meaning": "GENEPIO:0100108", + "is_a": "Illumina Genome Analyzer" + }, + "Illumina HiScanSQ": { + "text": "Illumina HiScanSQ", + "meaning": "GENEPIO:0100109", + "is_a": "Illumina" + }, + "Illumina HiSeq": { + "text": "Illumina HiSeq", + "meaning": "GENEPIO:0100110", + "is_a": "Illumina" + }, + "Illumina HiSeq X": { + "text": "Illumina HiSeq X", + "meaning": "GENEPIO:0100111", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq X Five": { + "text": "Illumina HiSeq X Five", + "meaning": "GENEPIO:0100112", + "is_a": "Illumina HiSeq X" + }, + "Illumina HiSeq X Ten": { + "text": "Illumina HiSeq X Ten", + "meaning": "GENEPIO:0100113", + "is_a": "Illumina HiSeq X" + }, + "Illumina HiSeq 1000": { + "text": "Illumina HiSeq 1000", + "meaning": "GENEPIO:0100114", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 1500": { + "text": "Illumina HiSeq 1500", + "meaning": "GENEPIO:0100115", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 2000": { + "text": "Illumina HiSeq 2000", + "meaning": "GENEPIO:0100116", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 2500": { + "text": "Illumina HiSeq 2500", + "meaning": "GENEPIO:0100117", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 3000": { + "text": "Illumina HiSeq 3000", + "meaning": "GENEPIO:0100118", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 4000": { + "text": "Illumina HiSeq 4000", + "meaning": "GENEPIO:0100119", + "is_a": "Illumina HiSeq" + }, + "Illumina iSeq": { + "text": "Illumina iSeq", + "meaning": "GENEPIO:0100120", + "is_a": "Illumina" + }, + "Illumina iSeq 100": { + "text": "Illumina iSeq 100", + "meaning": "GENEPIO:0100121", + "is_a": "Illumina iSeq" + }, + "Illumina NovaSeq": { + "text": "Illumina NovaSeq", + "meaning": "GENEPIO:0100122", + "is_a": "Illumina" + }, + "Illumina NovaSeq 6000": { + "text": "Illumina NovaSeq 6000", + "meaning": "GENEPIO:0100123", + "is_a": "Illumina NovaSeq" + }, + "Illumina MiniSeq": { + "text": "Illumina MiniSeq", + "meaning": "GENEPIO:0100124", + "is_a": "Illumina" + }, + "Illumina MiSeq": { + "text": "Illumina MiSeq", + "meaning": "GENEPIO:0100125", + "is_a": "Illumina" + }, + "Illumina NextSeq": { + "text": "Illumina NextSeq", + "meaning": "GENEPIO:0100126", + "is_a": "Illumina" + }, + "Illumina NextSeq 500": { + "text": "Illumina NextSeq 500", + "meaning": "GENEPIO:0100127", + "is_a": "Illumina NextSeq" + }, + "Illumina NextSeq 550": { + "text": "Illumina NextSeq 550", + "meaning": "GENEPIO:0100128", + "is_a": "Illumina NextSeq" + }, + "Illumina NextSeq 2000": { + "text": "Illumina NextSeq 2000", + "meaning": "GENEPIO:0100129", + "is_a": "Illumina NextSeq" + }, + "Pacific Biosciences": { + "text": "Pacific Biosciences", + "meaning": "GENEPIO:0100130" + }, + "PacBio RS": { + "text": "PacBio RS", + "meaning": "GENEPIO:0100131", + "is_a": "Pacific Biosciences" + }, + "PacBio RS II": { + "text": "PacBio RS II", + "meaning": "GENEPIO:0100132", + "is_a": "Pacific Biosciences" + }, + "PacBio Sequel": { + "text": "PacBio Sequel", + "meaning": "GENEPIO:0100133", + "is_a": "Pacific Biosciences" + }, + "PacBio Sequel II": { + "text": "PacBio Sequel II", + "meaning": "GENEPIO:0100134", + "is_a": "Pacific Biosciences" + }, + "Ion Torrent": { + "text": "Ion Torrent", + "meaning": "GENEPIO:0100135" + }, + "Ion Torrent PGM": { + "text": "Ion Torrent PGM", + "meaning": "GENEPIO:0100136", + "is_a": "Ion Torrent" + }, + "Ion Torrent Proton": { + "text": "Ion Torrent Proton", + "meaning": "GENEPIO:0100137", + "is_a": "Ion Torrent" + }, + "Ion Torrent S5 XL": { + "text": "Ion Torrent S5 XL", + "meaning": "GENEPIO:0100138", + "is_a": "Ion Torrent" + }, + "Ion Torrent S5": { + "text": "Ion Torrent S5", + "meaning": "GENEPIO:0100139", + "is_a": "Ion Torrent" + }, + "Oxford Nanopore": { + "text": "Oxford Nanopore", + "meaning": "GENEPIO:0100140" + }, + "Oxford Nanopore GridION": { + "text": "Oxford Nanopore GridION", + "meaning": "GENEPIO:0100141", + "is_a": "Oxford Nanopore" + }, + "Oxford Nanopore MinION": { + "text": "Oxford Nanopore MinION", + "meaning": "GENEPIO:0100142", + "is_a": "Oxford Nanopore" + }, + "Oxford Nanopore PromethION": { + "text": "Oxford Nanopore PromethION", + "meaning": "GENEPIO:0100143", + "is_a": "Oxford Nanopore" + }, + "BGI Genomics": { + "text": "BGI Genomics", + "meaning": "GENEPIO:0100144" + }, + "BGI Genomics BGISEQ-500": { + "text": "BGI Genomics BGISEQ-500", + "meaning": "GENEPIO:0100145", + "is_a": "BGI Genomics" + }, + "MGI": { + "text": "MGI", + "meaning": "GENEPIO:0100146" + }, + "MGI DNBSEQ-T7": { + "text": "MGI DNBSEQ-T7", + "meaning": "GENEPIO:0100147", + "is_a": "MGI" + }, + "MGI DNBSEQ-G400": { + "text": "MGI DNBSEQ-G400", + "meaning": "GENEPIO:0100148", + "is_a": "MGI" + }, + "MGI DNBSEQ-G400 FAST": { + "text": "MGI DNBSEQ-G400 FAST", + "meaning": "GENEPIO:0100149", + "is_a": "MGI" + }, + "MGI DNBSEQ-G50": { + "text": "MGI DNBSEQ-G50", + "meaning": "GENEPIO:0100150", + "is_a": "MGI" + } + } + }, + "amplicon pcr primer list menu": { + "name": "amplicon pcr primer list menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "27F": { + "text": "27F", + "meaning": "GENEPIO:0100640" + }, + "357F": { + "text": "357F", + "meaning": "GENEPIO:0100645" + }, + "543R": { + "text": "543R", + "meaning": "GENEPIO:0100642" + }, + "926R": { + "text": "926R", + "meaning": "GENEPIO:0100643" + }, + "1492R": { + "text": "1492R", + "meaning": "GENEPIO:0100644" + }, + "ITS1F": { + "text": "ITS1F", + "meaning": "GENEPIO:0100668" + }, + "ITS3F": { + "text": "ITS3F", + "meaning": "GENEPIO:0100646" + }, + "ITS4F": { + "text": "ITS4F", + "meaning": "GENEPIO:0100647" + }, + "ITS4R": { + "text": "ITS4R", + "meaning": "GENEPIO:0100669" + } + } + } + }, + "slots": { + "isolate ID": { + "name": "isolate ID", + "description": "The user-defined identifier for the isolate, as provided by the laboratory that originally isolated the isolate.", + "title": "isolate ID", + "comments": [ + "Provide the identifier created by the lab for the organism after isolation. This value maps to the \"Strain ID#\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "SA01" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100456", + "range": "WhitespaceMinimizedString", + "required": true + }, + "alternative isolate ID": { + "name": "alternative isolate ID", + "description": "An alternative isolate ID assigned to the isolate by another organization.", + "title": "alternative isolate ID", + "comments": [ + "Provide the identifier that represents the site code, source and/or patient identifier, media type, strain identifier, colony number, growth condition and dilution factor as a single code. This value corresponds maps to the \"Label ID\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "3411301" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100457", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "specimen collector sample ID": { + "name": "specimen collector sample ID", + "description": "The user-defined name for the sample.", + "title": "specimen collector sample ID", + "comments": [ + "Provide the sample ID provided by the original sample collector. This value is different from the \"isolate_ID\" as it represents the original material sampled rather than the organism that was isolated from the sampled material. This identifier may or may not be available." + ], + "examples": [ + { + "value": "Lake_Louise_Water23" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001123", + "identifier": true, + "range": "WhitespaceMinimizedString" + }, + "sample collected by": { + "name": "sample collected by", + "description": "The name of the agency that collected the original sample.", + "title": "sample collected by", + "comments": [ + "The name of the institution of the original sample collector should be written out in full, (no abbreviations, with minor exceptions) and be consistent across multiple submissions e.g. University of Calgary, Alberta Health Services. The sample collector specified is at the discretion of the data provider (i.e. may be hospital, provincial public health lab, or other)." + ], + "examples": [ + { + "value": "University of Calgary" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001153", + "recommended": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sample collection project name": { + "name": "sample collection project name", + "description": "The name of the project/initiative/program for which the sample was collected.", + "title": "sample collection project name", + "comments": [ + "Provide the name of the project and/or the project ID here. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "Children's Hospital biofilm study (A3-701-01)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100429", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "sample collector contact email": { + "name": "sample collector contact email", + "description": "The email address of the contact responsible for follow-up regarding the sample.", + "title": "sample collector contact email", + "comments": [ + "The email address can represent a specific individual or lab e.g. johnnyblogs@lab.ca, or RespLab@lab.ca" + ], + "examples": [ + { + "value": "RespLab@lab.ca" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001156", + "range": "WhitespaceMinimizedString", + "pattern": "^\\S+@\\S+\\.\\S+$" + }, + "sample collector contact address": { + "name": "sample collector contact address", + "description": "The mailing address of the agency submitting the sample.", + "title": "sample collector contact address", + "comments": [ + "The mailing address should be in the format: Street number and name, City, Province/Territory, Postal Code, Country" + ], + "examples": [ + { + "value": "655 Lab St, Vancouver, British Columbia, V5N 2A2, Canada" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001158", + "range": "WhitespaceMinimizedString" + }, + "sample collection date": { + "name": "sample collection date", + "description": "The date on which the sample was collected.", + "title": "sample collection date", + "todos": [ + ">=2019-10-01", + "<={today}" + ], + "comments": [ + "The date should be provided in ISO 8601 standard format \"YYYY-MM-DD\"." + ], + "examples": [ + { + "value": "2020-03-16" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001174", + "recommended": true, + "any_of": [ + { + "range": "date" + }, + { + "range": "null value menu" + } + ] + }, + "sample received date": { + "name": "sample received date", + "description": "The date on which the sample was received.", + "title": "sample received date", + "comments": [ + "The date should be provided in ISO 8601 standard format \"YYYY-MM-DD\"." + ], + "examples": [ + { + "value": "2020-03-20" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001179", + "any_of": [ + { + "range": "date" + }, + { + "range": "null value menu" + } + ] + }, + "geo_loc_name (country)": { + "name": "geo_loc_name (country)", + "description": "The country where the sample was collected.", + "title": "geo_loc_name (country)", + "comments": [ + "Provide the country name from the controlled vocabulary provided." + ], + "examples": [ + { + "value": "Canada" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001181", + "recommended": true, + "any_of": [ + { + "range": "geo_loc_name (country) menu" + }, + { + "range": "null value menu" + } + ] + }, + "geo_loc_name (state/province/territory)": { + "name": "geo_loc_name (state/province/territory)", + "description": "The province/territory where the sample was collected.", + "title": "geo_loc_name (state/province/territory)", + "comments": [ + "Provide the province/territory name from the controlled vocabulary provided." + ], + "examples": [ + { + "value": "Saskatchewan" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001185", + "recommended": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "geo_loc_name (city)": { + "name": "geo_loc_name (city)", + "description": "The city where the sample was collected.", + "title": "geo_loc_name (city)", + "comments": [ + "Provide the city name. Use this look-up service to identify the standardized term: https://www.ebi.ac.uk/ols/ontologies/gaz" + ], + "examples": [ + { + "value": "Medicine Hat" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001189", + "range": "WhitespaceMinimizedString" + }, + "geo_loc_name (site)": { + "name": "geo_loc_name (site)", + "description": "The name of a specific geographical location e.g. Credit River (rather than river).", + "title": "geo_loc_name (site)", + "comments": [ + "Provide the name of the specific geographical site using a specific noun (a word that names a certain place, thing)." + ], + "examples": [ + { + "value": "Lake Louise" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100436", + "range": "geo_loc_name (site) menu" + }, + "organism": { + "name": "organism", + "description": "Taxonomic name of the organism.", + "title": "organism", + "comments": [ + "Provide the confirmed taxonomic name of the species. This value maps to the \"Recommended identification\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Staphylococcus aureus" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001191", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "purpose of sampling": { + "name": "purpose of sampling", + "description": "The reason that the sample was collected.", + "title": "purpose of sampling", + "comments": [ + "The reason a sample was collected may provide information about potential biases in sampling strategy. Provide the purpose of sampling from the picklist in the template. The reason why a sample was originally collected may differ from the reason why it was selected for sequencing, which should be indicated in the \"purpose of sequencing\" field. Motivation for sampling may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Targeted surveillance" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001198", + "recommended": true, + "any_of": [ + { + "range": "purpose of sampling menu" + }, + { + "range": "null value menu" + } + ] + }, + "purpose of sampling details": { + "name": "purpose of sampling details", + "description": "The description of why the sample was collected, providing specific details.", + "title": "purpose of sampling details", + "comments": [ + "Provide an expanded description of why the sample was collected using free text. The description may include the importance of the sample for a particular investigation/surveillance activity/research question. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "ProvLab/IPC routine monitoring" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001200", + "recommended": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "original sample description": { + "name": "original sample description", + "description": "The original sample description provided by the sample collector.", + "title": "original sample description", + "comments": [ + "Provide the sample description provided by the original sample collector or the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file. The original description is useful as it may provide further details, or can be used to clarify higher level classifications." + ], + "examples": [ + { + "value": "ACH coupons-water study, isolates 2010, 2011 see appendix 3 (Alberta Childrens Hospital)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100439", + "range": "WhitespaceMinimizedString" + }, + "anatomical material": { + "name": "anatomical material", + "description": "A substance obtained from an anatomical part of an organism e.g. tissue, blood.", + "title": "anatomical material", + "comments": [ + "Provide a descriptor if an anatomical material was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Wound tissue (injury)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001211", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "anatomical material menu" + }, + { + "range": "null value menu" + } + ] + }, + "anatomical part": { + "name": "anatomical part", + "description": "An anatomical part of an organism e.g. oropharynx.", + "title": "anatomical part", + "comments": [ + "Provide a descriptor if an anatomical part was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Nasal cavity" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001214", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "anatomical part menu" + }, + { + "range": "null value menu" + } + ] + }, + "body product": { + "name": "body product", + "description": "A substance excreted/secreted from an organism e.g. feces, urine, sweat.", + "title": "body product", + "comments": [ + "Provide a descriptor if a body product was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Feces" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001216", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "body product menu" + }, + { + "range": "null value menu" + } + ] + }, + "environmental material": { + "name": "environmental material", + "description": "A substance obtained from the natural or man-made environment e.g. soil, water, sewage.", + "title": "environmental material", + "comments": [ + "Provide a descriptor if an environmental material was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Bandage" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001223", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "environmental material menu" + }, + { + "range": "null value menu" + } + ] + }, + "environmental site": { + "name": "environmental site", + "description": "An environmental location may describe a site in the natural or built environment e.g. contact surface, metal can, hospital, wet market, bat cave.", + "title": "environmental site", + "comments": [ + "Provide a descriptor if an environmental site was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Hospital" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001232", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "environmental site menu" + }, + { + "range": "null value menu" + } + ] + }, + "collection device": { + "name": "collection device", + "description": "The instrument or container used to collect the sample e.g. swab.", + "title": "collection device", + "comments": [ + "Provide a descriptor if a device was used for sampling. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Swab" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001234", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "collection device menu" + }, + { + "range": "null value menu" + } + ] + }, + "collection method": { + "name": "collection method", + "description": "The process used to collect the sample e.g. phlebotamy, necropsy.", + "title": "collection method", + "comments": [ + "Provide a descriptor if a collection method was used for sampling. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Biopsy" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001241", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "collection method menu" + }, + { + "range": "null value menu" + } + ] + }, + "collection protocol": { + "name": "collection protocol", + "description": "The name and version of a particular protocol used for sampling.", + "title": "collection protocol", + "comments": [ + "Free text. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Collection_protocol_Children's Hospital biofilm study (A3-701-01)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001243", + "range": "WhitespaceMinimizedString" + }, + "specimen processing": { + "name": "specimen processing", + "description": "Any processing applied to the sample during or after receiving the sample.", + "title": "specimen processing", + "comments": [ + "If multiple PCR products were generated from the isolate using different primer sets, indicate that the sequence records represents the same isolate by selecting \"Biological replicate\" in the \"specimen processing\" field. Every different sequence experiment should have its own record (i.e. if different amplicons have the same sequence but were generated using different primer sets, these should be stored as separate entries/lines in the spreadsheet). Information about replicates may be available in the \"Top-hit taxon (taxa)\" or \"Trimmed Ribosomal Sequence\" fields if there are multiple values for the same \"Strain ID#\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Biological replicate" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001253", + "multivalued": true, + "recommended": true, + "any_of": [ + { + "range": "specimen processing menu" + }, + { + "range": "null value menu" + } + ] + }, + "specimen processing details": { + "name": "specimen processing details", + "description": "Detailed information regarding the processing applied to a sample during or after receiving the sample.", + "title": "specimen processing details", + "comments": [ + "Provide a free text description of any processing details applied to a sample. Information about replicates may be available in the \"Top-hit taxon (taxa)\" or \"Trimmed Ribosomal Sequence\" fields if there are multiple values for the same \"Strain ID#\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Multiple amplicons generated for isolate SA32 using different primer sets" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100311", + "range": "WhitespaceMinimizedString" + }, + "strain": { + "name": "strain", + "description": "The strain identifier.", + "title": "strain", + "comments": [ + "Provide the strain of the isolate. This value maps to the \"Strain\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "CL10" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100455", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "taxonomic identification method": { + "name": "taxonomic identification method", + "description": "The type of planned process by which an organismal entity is associated with a taxon or taxa.", + "title": "taxonomic identification method", + "comments": [ + "Provide the type of method used to determine the taxonomic identity of the organism by selecting a value from the pick list. For the AMBR Project, the \"16S ribosomal gene sequencing assay\" value will be the most appropriate. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "16S ribosomal gene sequencing assay" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100583", + "required": true, + "any_of": [ + { + "range": "taxonomic identification method menu" + }, + { + "range": "null value menu" + } + ] + }, + "taxonomic identification method details": { + "name": "taxonomic identification method details", + "description": "The details of the process used to determine the taxonomic identification of an organism.", + "title": "taxonomic identification method details", + "comments": [ + "Provide the criteria used for 16S sequencing taxonomic determination by selection a value from the pick list. These criteria are specific to the AMBR project and so do not correspond with standardized criteria in any ontology. The pick list is strictly for providing consistency in records rather than implementing community data standards. If another method was used for the taxonomic determination, leave blank. This value maps to the information stored in the \"ID Category*\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100584", + "required": true, + "any_of": [ + { + "range": "taxonomic identification method details menu" + }, + { + "range": "null value menu" + } + ] + }, + "incubation temperature value": { + "name": "incubation temperature value", + "description": "An environmental datum specifying the temperature at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature value", + "comments": [ + "Provide the temperature at which the isolate was isolated. This value maps to the information stored in the \"Incubation temperature\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "37" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100617", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "incubation temperature unit": { + "name": "incubation temperature unit", + "description": "An environmental datum specifying the temperature unit at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature unit", + "comments": [ + "Select the temperature unit from the pick list. This value maps to the information stored in the \"Incubation temperature\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Degree Celsius" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100618", + "required": true, + "any_of": [ + { + "range": "incubation temperature unit menu" + }, + { + "range": "null value menu" + } + ] + }, + "isolation medium": { + "name": "isolation medium", + "description": "An isolation medium is a culture medium which has the disposition to encourage growth of particular bacteria to the exclusion of others in the same growth environment.", + "title": "isolation medium", + "comments": [ + "Select the isolation medium from the pick list. This value maps to the information stored in the \"Incubation media\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Brain heart infusion (BHI)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0002107", + "required": true, + "any_of": [ + { + "range": "isolation medium menu" + }, + { + "range": "null value menu" + } + ] + }, + "isolate storage location": { + "name": "isolate storage location", + "description": "An isolate datum specifying the location of where an isolate is stored e.g. in a particular freezer, on a particular shelf", + "title": "isolate storage location", + "comments": [ + "Enter the freezer storage location of the isolate as the \"freezer number-shelf number-box number-unit number\" e.g. FR1-R3-B1-S01. This value maps to the information stored in the \"Spot code\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "FR1-R3-B1-S01" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100619", + "range": "WhitespaceMinimizedString", + "required": true + }, + "cellular respiration type": { + "name": "cellular respiration type", + "description": "An isolate datum specifying the type of cellular respiration process used by the organism.", + "title": "cellular respiration type", + "comments": [ + "Select the respiration type from the pick list. This value maps to the information stored in the \"Aerobic/Anaerobic\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Aerobic respiration" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100620", + "required": true, + "any_of": [ + { + "range": "cellular respiration type menu" + }, + { + "range": "null value menu" + } + ] + }, + "host (common name)": { + "name": "host (common name)", + "description": "The commonly used name of the host.", + "title": "host (common name)", + "comments": [ + "Common name is required if there was a host. Both common anime and scientific name can be provided, if known. Use terms from the pick lists in the template. Hosts can be animals (including humans) and plants. Examples of common names are “Human” and “Canola plant”. Examples of scientific names are “Homo sapiens” and “Equus caballus”. If the sample was environmental, select \"Not Applicable\". Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Human" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001386", + "required": true, + "any_of": [ + { + "range": "host (common name) menu" + }, + { + "range": "null value menu" + } + ] + }, + "host (scientific name)": { + "name": "host (scientific name)", + "description": "The taxonomic, or scientific name of the host.", + "title": "host (scientific name)", + "comments": [ + "Common name or scientific name are required if there was a host. Both can be provided, if known. Use terms from the pick lists in the template. Hosts can be animals (including humans) and plants. Common name e.g. Human, Canola plant. If the sample was environmental, select \"Not Applicable\". Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Homo sapiens" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001387", + "any_of": [ + { + "range": "host (scientific name) menu" + }, + { + "range": "null value menu" + } + ] + }, + "host disease": { + "name": "host disease", + "description": "The name of the disease experienced by the host.", + "title": "host disease", + "comments": [ + "If the sample was obtained from a host with a known disease, provide the name of the disease by seleting a value from the picklist. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Cystic fibrosis" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001391", + "any_of": [ + { + "range": "host disease menu" + }, + { + "range": "null value menu" + } + ] + }, + "sequenced by": { + "name": "sequenced by", + "description": "The name of the agency, organization or institution responsible for sequencing the isolate's genome.", + "title": "sequenced by", + "comments": [ + "Provide the name of the organization that performed the sequencing in full (avoid abbreviations). If the information is unknown or cannot be provided, leave blank or provide a null value. For the AMBR Project, the value is most likely the \"University of Calgary\"." + ], + "examples": [ + { + "value": "University of Calgary" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100416", + "any_of": [ + { + "range": "sequenced_by menu" + }, + { + "range": "null value menu" + } + ] + }, + "sequenced by laboratory name": { + "name": "sequenced by laboratory name", + "description": "The specific laboratory affiliation of the responsible for sequencing the isolate's genome.", + "title": "sequenced by laboratory name", + "comments": [ + "Provide the name of the specific laboratory that that performed the sequencing in full (avoid abbreviations). If the information is unknown or cannot be provided, leave blank or provide a null value. For the AMBR Project, the value is most likely the \"Harrison Lab\"." + ], + "examples": [ + { + "value": "Harrison Lab" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100470", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact name": { + "name": "sequenced by contact name", + "description": "The name or title of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact name", + "comments": [ + "Provide the name of an individual or their job title. As personnel turnover may render the contact's name obsolete, it is more prefereable to provide a job title for ensuring accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "Joe Harrison" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100471", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact email": { + "name": "sequenced by contact email", + "description": "The email address of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact email", + "comments": [ + "Provide the email associated with the listed contact. As personnel turnover may render an individual's email obsolete, it is more prefereable to provide an address for a position or lab, to ensure accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "jjharris@ucalgary.ca" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100422", + "range": "WhitespaceMinimizedString" + }, + "purpose of sequencing": { + "name": "purpose of sequencing", + "description": "The reason that the sample was sequenced.", + "title": "purpose of sequencing", + "comments": [ + "The reason why a sample was originally collected may differ from the reason why it was selected for sequencing. The reason a sample was sequenced may provide information about potential biases in sequencing strategy. Provide the purpose of sequencing from the picklist in the template. The reason for sample collection should be indicated in the \"purpose of sampling\" field." + ], + "examples": [ + { + "value": "Research" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001445", + "any_of": [ + { + "range": "purpose of sequencing menu" + }, + { + "range": "null value menu" + } + ] + }, + "purpose of sequencing details": { + "name": "purpose of sequencing details", + "description": "The description of why the sample was sequenced providing specific details.", + "title": "purpose of sequencing details", + "comments": [ + "Provide an expanded description of why the sample was sequenced using free text. This information can provide details about why the sample source might contain antibiotic potentiators." + ], + "examples": [ + { + "value": "Screening for antibiotic potentiators in Cystic fibrosis disease contexts." + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001446", + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sequencing date": { + "name": "sequencing date", + "description": "The date the sample was sequenced.", + "title": "sequencing date", + "todos": [ + ">={sample collection date}" + ], + "comments": [ + "The date should be provided in ISO 8601 standard format \"YYYY-MM-DD\"." + ], + "examples": [ + { + "value": "2020-06-22" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001447", + "any_of": [ + { + "range": "date" + }, + { + "range": "null value menu" + } + ] + }, + "library ID": { + "name": "library ID", + "description": "The user-specified identifier for the library prepared for sequencing.", + "title": "library ID", + "comments": [ + "Provide the name of the run. This value maps to information in the \"Sequencing Batch #\" field Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "1876515_SA01_Plate 02" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001448", + "range": "WhitespaceMinimizedString" + }, + "sequencing instrument": { + "name": "sequencing instrument", + "description": "The model of the sequencing instrument used.", + "title": "sequencing instrument", + "comments": [ + "Select a sequencing instrument from the picklist provided in the template." + ], + "examples": [ + { + "value": "Oxford Nanopore MinION" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001452", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "sequencing instrument menu" + }, + { + "range": "null value menu" + } + ] + }, + "sequencing protocol name": { + "name": "sequencing protocol name", + "description": "The name and version number of the sequencing protocol used.", + "title": "sequencing protocol name", + "comments": [ + "Provide the name and version of the sequencing protocol e.g. 1D_DNA_MinION" + ], + "examples": [ + { + "value": "https://www.protocols.io/view/covid-19-artic-v3-illumina-library-construction-an-bibtkann" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001453", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "amplicon pcr primer list": { + "name": "amplicon pcr primer list", + "description": "An information content entity specifying a list of primers used for amplicon sequencing.", + "title": "amplicon pcr primer list", + "comments": [ + "Select the primers used to generate the ribosomal 16S or 23S amplicon for sequencing from the pick list. This value maps to the information in the \"Primers Used for sequencing\" field Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "27F" + }, + { + "value": "1492R" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100623", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "amplicon pcr primer list menu" + }, + { + "range": "null value menu" + } + ] + }, + "input file name": { + "name": "input file name", + "description": "The name of the file containing the sequence data to be analysed.", + "title": "input file name", + "comments": [ + "Enter the file name of the target gene sequence to be analyzed." + ], + "examples": [ + { + "value": "ambr_staph_ABC_123.fasta" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002874", + "range": "WhitespaceMinimizedString" + }, + "reference accession": { + "name": "reference accession", + "description": "An identifier that specifies an individual sequence record in a public sequence repository.", + "title": "reference accession", + "comments": [ + "Enter the EZBioCloud gene accession that most closely matches the sequence being analyzed. This value maps to the information in the \"Accession No(s).\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "FR821777" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002885", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "bioinformatics protocol": { + "name": "bioinformatics protocol", + "description": "A description of the overall bioinformatics strategy used.", + "title": "bioinformatics protocol", + "comments": [ + "Provide the name of the protocol used to perform the species identification (i.e. the name of the protocol to perform the EZBioCloud search)." + ], + "examples": [ + { + "value": "EZBioCloud_searchprotocol_2023.txt" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001489", + "range": "WhitespaceMinimizedString" + }, + "reference database name": { + "name": "reference database name", + "description": "An identifier of a biological or bioinformatics database.", + "title": "reference database name", + "comments": [ + "Select the reference database name from the pick list. For the AMBR Project, the reference database will be EZBioCloud." + ], + "examples": [ + { + "value": "EZBioCloud" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002883", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "reference database version": { + "name": "reference database version", + "description": "The version of the database containing the reference sequences used for analysis.", + "title": "reference database version", + "comments": [ + "Enter the sequence search date as the version of EZBioCloud used. Record the date in ISO 8601 format i.e. YYYY_MM_DD. This value maps to the information in the \"Search date\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "2021-05-23" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002884", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "coverage (percentage)": { + "name": "coverage (percentage)", + "description": "The percentage of the reference sequence covered by the sequence of interest.", + "title": "coverage (percentage)", + "comments": [ + "Enter the completeness value. Do not include any symbols e.g. %. This value maps to \"Completeness (%)\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "98.2" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002880", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sequence identity percentage": { + "name": "sequence identity percentage", + "description": "Sequence identity is the number (%) of matches (identical characters) in positions from an alignment of two molecular sequences.", + "title": "sequence identity percentage", + "comments": [ + "Enter the identity value. Do not include any symbols e.g. %. This value maps to \"Similarity (%)\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "99" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002882", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sequence identity (variance ratio)": { + "name": "sequence identity (variance ratio)", + "description": "The ratio of the reference sequence not covered by the sequence of interest.", + "title": "sequence identity (variance ratio)", + "comments": [ + "Enter the number of different positions in the target sequence compared to the reference sequence length, expressed as a ratio. This value maps to \"Variation ratio\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "1/420" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100624", + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "top-hit taxon determination": { + "name": "top-hit taxon determination", + "description": "The taxon derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit taxon determination", + "comments": [ + "Enter the EZBioCloud taxon best-hit. This value maps to the information in the \"Top-hit taxon (taxa)\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Staphylococcus argenteus" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100625", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "top-hit strain determination": { + "name": "top-hit strain determination", + "description": "The strain designation derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit strain determination", + "comments": [ + "Enter the EZBioCloud strain best-hit. This value maps to the information in the \"Top-hit strain(s)\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "MSHR1132(T)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100648", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "trimmed ribosomal gene sequence": { + "name": "trimmed ribosomal gene sequence", + "description": "The results of a data transformation of sequence data in which (e.g., low quality) read bases are removed to produce a trimmed ribosomal RNA sequence.", + "title": "trimmed ribosomal gene sequence", + "comments": [ + "Enter the sequence of the trimmed ribosomal gene sequence. This value maps to the sequence in the \"Trimmed Ribosomal Sequence\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "TGCAAGTCGAGCGAACGGACGAGAAGCTTGCTTCTCTGATGTTAGCGGCGGACGSGTGAGTAACACGTGGATAACCTACCTATAAGACTGGGATAACTTCGGGAAACCGGAGCTAATACCGGATAATATTTTGAACCGCATGGTTCAAAAGTGAAAGACGGTCTTGCTGTCACTTATAGATGGATCCGCGCTGCATTAGCTAGTTGGTAAGGTAACGGCTTACCAAGGCAACGATGCATAGCCGACCTGAGAGGGTGATCGGCCACACTGGAACTGAGACACGGTCCAGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCCGCAATGGGCGAAAGCCTGACGGAGCAACGCCGCGTGAGTGATGAAGGTCTTCGGATCGTAAAACTCTGTTATTAGGGAAGAACATATGTGTAAGTAACTGTGCACATCTTGACGGTACCTAATCAGAAAGCCACGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGAAAACTTGAGTGCAGAAGAGGAAAGTGGAATTCCATGTGTAGCGGTGAAATGCGCAGAGATATGGAGGAACACCAGTGGCGAAGGCGACTTTCTGGTCTGTAACTGACGCTGATGTGCGAAAGCGTGGGGATCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAGTGCTAAGTGTTAGGGGGTTTCCGCCCCTTAGTGCTGCAGCTAACGCATTAAGCACTCCGCCTGGGGAGTACGACCGCAAGGTTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCAAATCTTGACATCCTTTGACAACTCTAGAGATAGAGCCTTCCCCTTCGGGGGACAAAGTGACAGGTGGTGCATGGTTGTCGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTAAGCTTAGTTGCCATCATTAAGTTGGGCACTCTAAGTTGACTGCCGGTGACAAACCGGAGGAAGGTGGGGATGACGTCAAATCATCATGCCCCTTATGATTTGGGCTACACACGTGCTACAATGGACAATACAAAGGGCAGCGAAACCGCGAGGTCAAGCAAATCCCATAAAGTTGTTCTCAGTTCGGATTGTAGTCTGCAACTCGACTACATGAAGCTGGAATCGCTAGTAATCGTAGATCAGCATGCTACGGTGAATACGTTCCCGGGTCTTGTACACACCGCCCGTCACACCACGAGAGTTTGTAACACCCGAAGCCGGTGGAGTAACCTTTTAGGAGCTAGCCGTCGAAG" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100626", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "bioinformatics analysis details": { + "name": "bioinformatics analysis details", + "description": "Any notes regarding the bioinformatics analysis.", + "title": "bioinformatics analysis details", + "comments": [ + "Enter any notes regarding the analysis as free text. This value maps to the \"Comment\" field in the information in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Pure-June 09-2022,Tube replaced by Rahgavi" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100627", + "range": "WhitespaceMinimizedString" + }, + "authors": { + "name": "authors", + "description": "Names of individuals contributing to the processes of sample collection, sequence generation, analysis, and data submission.", + "title": "authors", + "comments": [ + "Include the first and last names of all individuals that should be attributed, separated by a comma." + ], + "examples": [ + { + "value": "Rahgavi Poopalaraj, Shirin Afroj, Joe Harrison" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001517", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "DataHarmonizer provenance": { + "name": "DataHarmonizer provenance", + "description": "The DataHarmonizer software and template version provenance.", + "title": "DataHarmonizer provenance", + "comments": [ + "The current software and template version information will be automatically generated in this field after the user utilizes the \"validate\" function. This information will be generated regardless as to whether the row is valid of not." + ], + "examples": [ + { + "value": "DataHarmonizer v1.4.3, AMBR v1.0.0" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001518", + "range": "Provenance" + } + }, + "classes": { + "dh_interface": { + "name": "dh_interface", + "description": "A DataHarmonizer interface", + "from_schema": "https://example.com/AMBR" + }, + "AMBR": { + "name": "AMBR", + "description": "The AMBR Project, led by the Harrison Lab at the University of Calgary, is an interdisciplinary study aimed at using 16S sequencing as part of a culturomics platform to identify antibiotic potentiators from the natural products of microbiota. The AMBR DataHarmonizer template was designed to standardize contextual data associated with the isolate repository from this work.", + "from_schema": "https://example.com/AMBR", + "is_a": "dh_interface", + "slot_usage": { + "isolate ID": { + "name": "isolate ID", + "rank": 1, + "slot_group": "Database Identifiers" + }, + "alternative isolate ID": { + "name": "alternative isolate ID", + "rank": 2, + "slot_group": "Database Identifiers" + }, + "specimen collector sample ID": { + "name": "specimen collector sample ID", + "rank": 3, + "slot_group": "Database Identifiers" + }, + "sample collected by": { + "name": "sample collected by", + "rank": 4, + "slot_group": "Sample collection and processing" + }, + "sample collection project name": { + "name": "sample collection project name", + "rank": 5, + "slot_group": "Sample collection and processing" + }, + "sample collector contact email": { + "name": "sample collector contact email", + "rank": 6, + "slot_group": "Sample collection and processing" + }, + "sample collector contact address": { + "name": "sample collector contact address", + "rank": 7, + "slot_group": "Sample collection and processing" + }, + "sample collection date": { + "name": "sample collection date", + "rank": 8, + "slot_group": "Sample collection and processing" + }, + "sample received date": { + "name": "sample received date", + "rank": 9, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (country)": { + "name": "geo_loc_name (country)", + "rank": 10, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (state/province/territory)": { + "name": "geo_loc_name (state/province/territory)", + "rank": 11, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (city)": { + "name": "geo_loc_name (city)", + "rank": 12, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (site)": { + "name": "geo_loc_name (site)", + "rank": 13, + "slot_group": "Sample collection and processing" + }, + "organism": { + "name": "organism", + "rank": 14, + "slot_group": "Sample collection and processing" + }, + "purpose of sampling": { + "name": "purpose of sampling", + "rank": 15, + "slot_group": "Sample collection and processing" + }, + "purpose of sampling details": { + "name": "purpose of sampling details", + "rank": 16, + "slot_group": "Sample collection and processing" + }, + "original sample description": { + "name": "original sample description", + "rank": 17, + "slot_group": "Sample collection and processing" + }, + "anatomical material": { + "name": "anatomical material", + "rank": 18, + "slot_group": "Sample collection and processing" + }, + "anatomical part": { + "name": "anatomical part", + "rank": 19, + "slot_group": "Sample collection and processing" + }, + "body product": { + "name": "body product", + "rank": 20, + "slot_group": "Sample collection and processing" + }, + "environmental material": { + "name": "environmental material", + "rank": 21, + "slot_group": "Sample collection and processing" + }, + "environmental site": { + "name": "environmental site", + "rank": 22, + "slot_group": "Sample collection and processing" + }, + "collection device": { + "name": "collection device", + "rank": 23, + "slot_group": "Sample collection and processing" + }, + "collection method": { + "name": "collection method", + "rank": 24, + "slot_group": "Sample collection and processing" + }, + "collection protocol": { + "name": "collection protocol", + "rank": 25, + "slot_group": "Sample collection and processing" + }, + "specimen processing": { + "name": "specimen processing", + "rank": 26, + "slot_group": "Sample collection and processing" + }, + "specimen processing details": { + "name": "specimen processing details", + "rank": 27, + "slot_group": "Sample collection and processing" + }, + "strain": { + "name": "strain", + "rank": 28, + "slot_group": "Strain and isolation information" + }, + "taxonomic identification method": { + "name": "taxonomic identification method", + "rank": 29, + "slot_group": "Strain and isolation information" + }, + "taxonomic identification method details": { + "name": "taxonomic identification method details", + "rank": 30, + "slot_group": "Strain and isolation information" + }, + "incubation temperature value": { + "name": "incubation temperature value", + "rank": 31, + "slot_group": "Strain and isolation information" + }, + "incubation temperature unit": { + "name": "incubation temperature unit", + "rank": 32, + "slot_group": "Strain and isolation information" + }, + "isolation medium": { + "name": "isolation medium", + "rank": 33, + "slot_group": "Strain and isolation information" + }, + "isolate storage location": { + "name": "isolate storage location", + "rank": 34, + "slot_group": "Strain and isolation information" + }, + "cellular respiration type": { + "name": "cellular respiration type", + "rank": 35, + "slot_group": "Strain and isolation information" + }, + "host (common name)": { + "name": "host (common name)", + "rank": 36, + "slot_group": "Host Information" + }, + "host (scientific name)": { + "name": "host (scientific name)", + "rank": 37, + "slot_group": "Host Information" + }, + "host disease": { + "name": "host disease", + "rank": 38, + "slot_group": "Host Information" + }, + "sequenced by": { + "name": "sequenced by", + "rank": 39, + "slot_group": "Sequencing" + }, + "sequenced by laboratory name": { + "name": "sequenced by laboratory name", + "rank": 40, + "slot_group": "Sequencing" + }, + "sequenced by contact name": { + "name": "sequenced by contact name", + "rank": 41, + "slot_group": "Sequencing" + }, + "sequenced by contact email": { + "name": "sequenced by contact email", + "rank": 42, + "slot_group": "Sequencing" + }, + "purpose of sequencing": { + "name": "purpose of sequencing", + "rank": 43, + "slot_group": "Sequencing" + }, + "purpose of sequencing details": { + "name": "purpose of sequencing details", + "rank": 44, + "slot_group": "Sequencing" + }, + "sequencing date": { + "name": "sequencing date", + "rank": 45, + "slot_group": "Sequencing" + }, + "library ID": { + "name": "library ID", + "rank": 46, + "slot_group": "Sequencing" + }, + "sequencing instrument": { + "name": "sequencing instrument", + "rank": 47, + "slot_group": "Sequencing" + }, + "sequencing protocol name": { + "name": "sequencing protocol name", + "rank": 48, + "slot_group": "Sequencing" + }, + "amplicon pcr primer list": { + "name": "amplicon pcr primer list", + "rank": 49, + "slot_group": "Sequencing" + }, + "input file name": { + "name": "input file name", + "rank": 50, + "slot_group": "Bioinformatics and QC metrics" + }, + "reference accession": { + "name": "reference accession", + "rank": 51, + "slot_group": "Bioinformatics and QC metrics" + }, + "bioinformatics protocol": { + "name": "bioinformatics protocol", + "rank": 52, + "slot_group": "Bioinformatics and QC metrics" + }, + "reference database name": { + "name": "reference database name", + "rank": 53, + "slot_group": "Bioinformatics and QC metrics" + }, + "reference database version": { + "name": "reference database version", + "rank": 54, + "slot_group": "Bioinformatics and QC metrics" + }, + "coverage (percentage)": { + "name": "coverage (percentage)", + "rank": 55, + "slot_group": "Bioinformatics and QC metrics" + }, + "sequence identity percentage": { + "name": "sequence identity percentage", + "rank": 56, + "slot_group": "Bioinformatics and QC metrics" + }, + "sequence identity (variance ratio)": { + "name": "sequence identity (variance ratio)", + "rank": 57, + "slot_group": "Bioinformatics and QC metrics" + }, + "top-hit taxon determination": { + "name": "top-hit taxon determination", + "rank": 58, + "slot_group": "Bioinformatics and QC metrics" + }, + "top-hit strain determination": { + "name": "top-hit strain determination", + "rank": 59, + "slot_group": "Bioinformatics and QC metrics" + }, + "trimmed ribosomal gene sequence": { + "name": "trimmed ribosomal gene sequence", + "rank": 60, + "slot_group": "Bioinformatics and QC metrics" + }, + "bioinformatics analysis details": { + "name": "bioinformatics analysis details", + "rank": 61, + "slot_group": "Bioinformatics and QC metrics" + }, + "authors": { + "name": "authors", + "rank": 62, + "slot_group": "Contributor acknowledgement" + }, + "DataHarmonizer provenance": { + "name": "DataHarmonizer provenance", + "rank": 63, + "slot_group": "Contributor acknowledgement" + } + }, + "attributes": { + "isolate ID": { + "name": "isolate ID", + "description": "The user-defined identifier for the isolate, as provided by the laboratory that originally isolated the isolate.", + "title": "isolate ID", + "from_schema": "https://example.com/AMBR", + "rank": 1, + "slot_uri": "GENEPIO:0100456", + "alias": "isolate_ID", + "owner": "AMBR", + "slot_group": "Database Identifiers", + "range": "WhitespaceMinimizedString", + "required": true + }, + "alternative isolate ID": { + "name": "alternative isolate ID", + "description": "An alternative isolate ID assigned to the isolate by another organization.", + "title": "alternative isolate ID", + "from_schema": "https://example.com/AMBR", + "rank": 2, + "slot_uri": "GENEPIO:0100457", + "alias": "alternative_isolate_ID", + "owner": "AMBR", + "slot_group": "Database Identifiers", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "specimen collector sample ID": { + "name": "specimen collector sample ID", + "description": "The user-defined name for the sample.", + "title": "specimen collector sample ID", + "from_schema": "https://example.com/AMBR", + "rank": 3, + "slot_uri": "GENEPIO:0001123", + "identifier": true, + "alias": "specimen_collector_sample_ID", + "owner": "AMBR", + "slot_group": "Database Identifiers", + "range": "WhitespaceMinimizedString" + }, + "sample collected by": { + "name": "sample collected by", + "description": "The name of the agency that collected the original sample.", + "title": "sample collected by", + "from_schema": "https://example.com/AMBR", + "rank": 4, + "slot_uri": "GENEPIO:0001153", + "alias": "sample_collected_by", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "sample collection project name": { + "name": "sample collection project name", + "description": "The name of the project/initiative/program for which the sample was collected.", + "title": "sample collection project name", + "from_schema": "https://example.com/AMBR", + "rank": 5, + "slot_uri": "GENEPIO:0100429", + "alias": "sample_collection_project_name", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "sample collector contact email": { + "name": "sample collector contact email", + "description": "The email address of the contact responsible for follow-up regarding the sample.", + "title": "sample collector contact email", + "from_schema": "https://example.com/AMBR", + "rank": 6, + "slot_uri": "GENEPIO:0001156", + "alias": "sample_collector_contact_email", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString", + "pattern": "^\\S+@\\S+\\.\\S+$" + }, + "sample collector contact address": { + "name": "sample collector contact address", + "description": "The mailing address of the agency submitting the sample.", + "title": "sample collector contact address", + "from_schema": "https://example.com/AMBR", + "rank": 7, + "slot_uri": "GENEPIO:0001158", + "alias": "sample_collector_contact_address", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "sample collection date": { + "name": "sample collection date", + "description": "The date on which the sample was collected.", + "title": "sample collection date", + "from_schema": "https://example.com/AMBR", + "rank": 8, + "slot_uri": "GENEPIO:0001174", + "alias": "sample_collection_date", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "sample received date": { + "name": "sample received date", + "description": "The date on which the sample was received.", + "title": "sample received date", + "from_schema": "https://example.com/AMBR", + "rank": 9, + "slot_uri": "GENEPIO:0001179", + "alias": "sample_received_date", + "owner": "AMBR", + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (country)": { + "name": "geo_loc_name (country)", + "description": "The country where the sample was collected.", + "title": "geo_loc_name (country)", + "from_schema": "https://example.com/AMBR", + "rank": 10, + "slot_uri": "GENEPIO:0001181", + "alias": "geo_loc_name_(country)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "geo_loc_name (state/province/territory)": { + "name": "geo_loc_name (state/province/territory)", + "description": "The province/territory where the sample was collected.", + "title": "geo_loc_name (state/province/territory)", + "from_schema": "https://example.com/AMBR", + "rank": 11, + "slot_uri": "GENEPIO:0001185", + "alias": "geo_loc_name_(state/province/territory)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "geo_loc_name (city)": { + "name": "geo_loc_name (city)", + "description": "The city where the sample was collected.", + "title": "geo_loc_name (city)", + "from_schema": "https://example.com/AMBR", + "rank": 12, + "slot_uri": "GENEPIO:0001189", + "alias": "geo_loc_name_(city)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "geo_loc_name (site)": { + "name": "geo_loc_name (site)", + "description": "The name of a specific geographical location e.g. Credit River (rather than river).", + "title": "geo_loc_name (site)", + "from_schema": "https://example.com/AMBR", + "rank": 13, + "slot_uri": "GENEPIO:0100436", + "alias": "geo_loc_name_(site)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "geo_loc_name (site) menu" + }, + "organism": { + "name": "organism", + "description": "Taxonomic name of the organism.", + "title": "organism", + "from_schema": "https://example.com/AMBR", + "rank": 14, + "slot_uri": "GENEPIO:0001191", + "alias": "organism", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "purpose of sampling": { + "name": "purpose of sampling", + "description": "The reason that the sample was collected.", + "title": "purpose of sampling", + "from_schema": "https://example.com/AMBR", + "rank": 15, + "slot_uri": "GENEPIO:0001198", + "alias": "purpose_of_sampling", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "purpose of sampling details": { + "name": "purpose of sampling details", + "description": "The description of why the sample was collected, providing specific details.", + "title": "purpose of sampling details", + "from_schema": "https://example.com/AMBR", + "rank": 16, + "slot_uri": "GENEPIO:0001200", + "alias": "purpose_of_sampling_details", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "original sample description": { + "name": "original sample description", + "description": "The original sample description provided by the sample collector.", + "title": "original sample description", + "from_schema": "https://example.com/AMBR", + "rank": 17, + "slot_uri": "GENEPIO:0100439", + "alias": "original_sample_description", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "anatomical material": { + "name": "anatomical material", + "description": "A substance obtained from an anatomical part of an organism e.g. tissue, blood.", + "title": "anatomical material", + "from_schema": "https://example.com/AMBR", + "rank": 18, + "slot_uri": "GENEPIO:0001211", + "multivalued": true, + "alias": "anatomical_material", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "anatomical part": { + "name": "anatomical part", + "description": "An anatomical part of an organism e.g. oropharynx.", + "title": "anatomical part", + "from_schema": "https://example.com/AMBR", + "rank": 19, + "slot_uri": "GENEPIO:0001214", + "multivalued": true, + "alias": "anatomical_part", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "body product": { + "name": "body product", + "description": "A substance excreted/secreted from an organism e.g. feces, urine, sweat.", + "title": "body product", + "from_schema": "https://example.com/AMBR", + "rank": 20, + "slot_uri": "GENEPIO:0001216", + "multivalued": true, + "alias": "body_product", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "environmental material": { + "name": "environmental material", + "description": "A substance obtained from the natural or man-made environment e.g. soil, water, sewage.", + "title": "environmental material", + "from_schema": "https://example.com/AMBR", + "rank": 21, + "slot_uri": "GENEPIO:0001223", + "multivalued": true, + "alias": "environmental_material", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "environmental site": { + "name": "environmental site", + "description": "An environmental location may describe a site in the natural or built environment e.g. contact surface, metal can, hospital, wet market, bat cave.", + "title": "environmental site", + "from_schema": "https://example.com/AMBR", + "rank": 22, + "slot_uri": "GENEPIO:0001232", + "multivalued": true, + "alias": "environmental_site", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "collection device": { + "name": "collection device", + "description": "The instrument or container used to collect the sample e.g. swab.", + "title": "collection device", + "from_schema": "https://example.com/AMBR", + "rank": 23, + "slot_uri": "GENEPIO:0001234", + "multivalued": true, + "alias": "collection_device", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "collection method": { + "name": "collection method", + "description": "The process used to collect the sample e.g. phlebotamy, necropsy.", + "title": "collection method", + "from_schema": "https://example.com/AMBR", + "rank": 24, + "slot_uri": "GENEPIO:0001241", + "multivalued": true, + "alias": "collection_method", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "collection protocol": { + "name": "collection protocol", + "description": "The name and version of a particular protocol used for sampling.", + "title": "collection protocol", + "from_schema": "https://example.com/AMBR", + "rank": 25, + "slot_uri": "GENEPIO:0001243", + "alias": "collection_protocol", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "specimen processing": { + "name": "specimen processing", + "description": "Any processing applied to the sample during or after receiving the sample.", + "title": "specimen processing", + "from_schema": "https://example.com/AMBR", + "rank": 26, + "slot_uri": "GENEPIO:0001253", + "multivalued": true, + "alias": "specimen_processing", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "specimen processing details": { + "name": "specimen processing details", + "description": "Detailed information regarding the processing applied to a sample during or after receiving the sample.", + "title": "specimen processing details", + "from_schema": "https://example.com/AMBR", + "rank": 27, + "slot_uri": "GENEPIO:0100311", + "alias": "specimen_processing_details", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "strain": { + "name": "strain", + "description": "The strain identifier.", + "title": "strain", + "from_schema": "https://example.com/AMBR", + "rank": 28, + "slot_uri": "GENEPIO:0100455", + "alias": "strain", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "taxonomic identification method": { + "name": "taxonomic identification method", + "description": "The type of planned process by which an organismal entity is associated with a taxon or taxa.", + "title": "taxonomic identification method", + "from_schema": "https://example.com/AMBR", + "rank": 29, + "slot_uri": "GENEPIO:0100583", + "alias": "taxonomic_identification_method", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "taxonomic identification method details": { + "name": "taxonomic identification method details", + "description": "The details of the process used to determine the taxonomic identification of an organism.", + "title": "taxonomic identification method details", + "from_schema": "https://example.com/AMBR", + "rank": 30, + "slot_uri": "GENEPIO:0100584", + "alias": "taxonomic_identification_method_details", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "incubation temperature value": { + "name": "incubation temperature value", + "description": "An environmental datum specifying the temperature at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature value", + "from_schema": "https://example.com/AMBR", + "rank": 31, + "slot_uri": "GENEPIO:0100617", + "alias": "incubation_temperature_value", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "incubation temperature unit": { + "name": "incubation temperature unit", + "description": "An environmental datum specifying the temperature unit at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature unit", + "from_schema": "https://example.com/AMBR", + "rank": 32, + "slot_uri": "GENEPIO:0100618", + "alias": "incubation_temperature_unit", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "isolation medium": { + "name": "isolation medium", + "description": "An isolation medium is a culture medium which has the disposition to encourage growth of particular bacteria to the exclusion of others in the same growth environment.", + "title": "isolation medium", + "from_schema": "https://example.com/AMBR", + "rank": 33, + "slot_uri": "GENEPIO:0002107", + "alias": "isolation_medium", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "isolate storage location": { + "name": "isolate storage location", + "description": "An isolate datum specifying the location of where an isolate is stored e.g. in a particular freezer, on a particular shelf", + "title": "isolate storage location", + "from_schema": "https://example.com/AMBR", + "rank": 34, + "slot_uri": "GENEPIO:0100619", + "alias": "isolate_storage_location", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "range": "WhitespaceMinimizedString", + "required": true + }, + "cellular respiration type": { + "name": "cellular respiration type", + "description": "An isolate datum specifying the type of cellular respiration process used by the organism.", + "title": "cellular respiration type", + "from_schema": "https://example.com/AMBR", + "rank": 35, + "slot_uri": "GENEPIO:0100620", + "alias": "cellular_respiration_type", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "host (common name)": { + "name": "host (common name)", + "description": "The commonly used name of the host.", + "title": "host (common name)", + "from_schema": "https://example.com/AMBR", + "rank": 36, + "slot_uri": "GENEPIO:0001386", + "alias": "host_(common_name)", + "owner": "AMBR", + "slot_group": "Host Information", + "required": true + }, + "host (scientific name)": { + "name": "host (scientific name)", + "description": "The taxonomic, or scientific name of the host.", + "title": "host (scientific name)", + "from_schema": "https://example.com/AMBR", + "rank": 37, + "slot_uri": "GENEPIO:0001387", + "alias": "host_(scientific_name)", + "owner": "AMBR", + "slot_group": "Host Information" + }, + "host disease": { + "name": "host disease", + "description": "The name of the disease experienced by the host.", + "title": "host disease", + "from_schema": "https://example.com/AMBR", + "rank": 38, + "slot_uri": "GENEPIO:0001391", + "alias": "host_disease", + "owner": "AMBR", + "slot_group": "Host Information" + }, + "sequenced by": { + "name": "sequenced by", + "description": "The name of the agency, organization or institution responsible for sequencing the isolate's genome.", + "title": "sequenced by", + "from_schema": "https://example.com/AMBR", + "rank": 39, + "slot_uri": "GENEPIO:0100416", + "alias": "sequenced_by", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "sequenced by laboratory name": { + "name": "sequenced by laboratory name", + "description": "The specific laboratory affiliation of the responsible for sequencing the isolate's genome.", + "title": "sequenced by laboratory name", + "from_schema": "https://example.com/AMBR", + "rank": 40, + "slot_uri": "GENEPIO:0100470", + "alias": "sequenced_by_laboratory_name", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact name": { + "name": "sequenced by contact name", + "description": "The name or title of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact name", + "from_schema": "https://example.com/AMBR", + "rank": 41, + "slot_uri": "GENEPIO:0100471", + "alias": "sequenced_by_contact_name", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact email": { + "name": "sequenced by contact email", + "description": "The email address of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact email", + "from_schema": "https://example.com/AMBR", + "rank": 42, + "slot_uri": "GENEPIO:0100422", + "alias": "sequenced_by_contact_email", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "purpose of sequencing": { + "name": "purpose of sequencing", + "description": "The reason that the sample was sequenced.", + "title": "purpose of sequencing", + "from_schema": "https://example.com/AMBR", + "rank": 43, + "slot_uri": "GENEPIO:0001445", + "alias": "purpose_of_sequencing", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "purpose of sequencing details": { + "name": "purpose of sequencing details", + "description": "The description of why the sample was sequenced providing specific details.", + "title": "purpose of sequencing details", + "from_schema": "https://example.com/AMBR", + "rank": 44, + "slot_uri": "GENEPIO:0001446", + "alias": "purpose_of_sequencing_details", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "sequencing date": { + "name": "sequencing date", + "description": "The date the sample was sequenced.", + "title": "sequencing date", + "from_schema": "https://example.com/AMBR", + "rank": 45, + "slot_uri": "GENEPIO:0001447", + "alias": "sequencing_date", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "library ID": { + "name": "library ID", + "description": "The user-specified identifier for the library prepared for sequencing.", + "title": "library ID", + "from_schema": "https://example.com/AMBR", + "rank": 46, + "slot_uri": "GENEPIO:0001448", + "alias": "library_ID", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "sequencing instrument": { + "name": "sequencing instrument", + "description": "The model of the sequencing instrument used.", + "title": "sequencing instrument", + "from_schema": "https://example.com/AMBR", + "rank": 47, + "slot_uri": "GENEPIO:0001452", + "multivalued": true, + "alias": "sequencing_instrument", + "owner": "AMBR", + "slot_group": "Sequencing", + "required": true + }, + "sequencing protocol name": { + "name": "sequencing protocol name", + "description": "The name and version number of the sequencing protocol used.", + "title": "sequencing protocol name", + "from_schema": "https://example.com/AMBR", + "rank": 48, + "slot_uri": "GENEPIO:0001453", + "alias": "sequencing_protocol_name", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "amplicon pcr primer list": { + "name": "amplicon pcr primer list", + "description": "An information content entity specifying a list of primers used for amplicon sequencing.", + "title": "amplicon pcr primer list", + "from_schema": "https://example.com/AMBR", + "rank": 49, + "slot_uri": "GENEPIO:0100623", + "multivalued": true, + "alias": "amplicon_pcr_primer_list", + "owner": "AMBR", + "slot_group": "Sequencing", + "required": true + }, + "input file name": { + "name": "input file name", + "description": "The name of the file containing the sequence data to be analysed.", + "title": "input file name", + "from_schema": "https://example.com/AMBR", + "rank": 50, + "slot_uri": "OBI:0002874", + "alias": "input_file_name", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "range": "WhitespaceMinimizedString" + }, + "reference accession": { + "name": "reference accession", + "description": "An identifier that specifies an individual sequence record in a public sequence repository.", + "title": "reference accession", + "from_schema": "https://example.com/AMBR", + "rank": 51, + "slot_uri": "OBI:0002885", + "alias": "reference_accession", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "bioinformatics protocol": { + "name": "bioinformatics protocol", + "description": "A description of the overall bioinformatics strategy used.", + "title": "bioinformatics protocol", + "from_schema": "https://example.com/AMBR", + "rank": 52, + "slot_uri": "GENEPIO:0001489", + "alias": "bioinformatics_protocol", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "range": "WhitespaceMinimizedString" + }, + "reference database name": { + "name": "reference database name", + "description": "An identifier of a biological or bioinformatics database.", + "title": "reference database name", + "from_schema": "https://example.com/AMBR", + "rank": 53, + "slot_uri": "OBI:0002883", + "alias": "reference_database_name", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "reference database version": { + "name": "reference database version", + "description": "The version of the database containing the reference sequences used for analysis.", + "title": "reference database version", + "from_schema": "https://example.com/AMBR", + "rank": 54, + "slot_uri": "OBI:0002884", + "alias": "reference_database_version", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "coverage (percentage)": { + "name": "coverage (percentage)", + "description": "The percentage of the reference sequence covered by the sequence of interest.", + "title": "coverage (percentage)", + "from_schema": "https://example.com/AMBR", + "rank": 55, + "slot_uri": "OBI:0002880", + "alias": "coverage_(percentage)", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "sequence identity percentage": { + "name": "sequence identity percentage", + "description": "Sequence identity is the number (%) of matches (identical characters) in positions from an alignment of two molecular sequences.", + "title": "sequence identity percentage", + "from_schema": "https://example.com/AMBR", + "rank": 56, + "slot_uri": "OBI:0002882", + "alias": "sequence_identity_percentage", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "sequence identity (variance ratio)": { + "name": "sequence identity (variance ratio)", + "description": "The ratio of the reference sequence not covered by the sequence of interest.", + "title": "sequence identity (variance ratio)", + "from_schema": "https://example.com/AMBR", + "rank": 57, + "slot_uri": "GENEPIO:0100624", + "alias": "sequence_identity_(variance_ratio)", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics" + }, + "top-hit taxon determination": { + "name": "top-hit taxon determination", + "description": "The taxon derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit taxon determination", + "from_schema": "https://example.com/AMBR", + "rank": 58, + "slot_uri": "GENEPIO:0100625", + "alias": "top_hit_taxon_determination", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "top-hit strain determination": { + "name": "top-hit strain determination", + "description": "The strain designation derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit strain determination", + "from_schema": "https://example.com/AMBR", + "rank": 59, + "slot_uri": "GENEPIO:0100648", + "alias": "top_hit_strain_determination", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "trimmed ribosomal gene sequence": { + "name": "trimmed ribosomal gene sequence", + "description": "The results of a data transformation of sequence data in which (e.g., low quality) read bases are removed to produce a trimmed ribosomal RNA sequence.", + "title": "trimmed ribosomal gene sequence", + "from_schema": "https://example.com/AMBR", + "rank": 60, + "slot_uri": "GENEPIO:0100626", + "alias": "trimmed_ribosomal_gene_sequence", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "bioinformatics analysis details": { + "name": "bioinformatics analysis details", + "description": "Any notes regarding the bioinformatics analysis.", + "title": "bioinformatics analysis details", + "from_schema": "https://example.com/AMBR", + "rank": 61, + "slot_uri": "GENEPIO:0100627", + "alias": "bioinformatics_analysis_details", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "range": "WhitespaceMinimizedString" + }, + "authors": { + "name": "authors", + "description": "Names of individuals contributing to the processes of sample collection, sequence generation, analysis, and data submission.", + "title": "authors", + "from_schema": "https://example.com/AMBR", + "rank": 62, + "slot_uri": "GENEPIO:0001517", + "alias": "authors", + "owner": "AMBR", + "slot_group": "Contributor acknowledgement", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "DataHarmonizer provenance": { + "name": "DataHarmonizer provenance", + "description": "The DataHarmonizer software and template version provenance.", + "title": "DataHarmonizer provenance", + "from_schema": "https://example.com/AMBR", + "rank": 63, + "slot_uri": "GENEPIO:0001518", + "alias": "DataHarmonizer_provenance", + "owner": "AMBR", + "slot_group": "Contributor acknowledgement", + "range": "Provenance" + } + } + } + }, + "source_file": "schema.yaml", + "settings": { + "Title_Case": { + "setting_key": "Title_Case", + "setting_value": "(((?<=\\b)[^a-z\\W]\\w*?|[\\W])+)" + }, + "UPPER_CASE": { + "setting_key": "UPPER_CASE", + "setting_value": "[A-Z\\W\\d_]*" + }, + "lower_case": { + "setting_key": "lower_case", + "setting_value": "[a-z\\W\\d_]*" + } + }, + "@type": "SchemaDefinition" +} \ No newline at end of file diff --git a/web/templates/test/schema.json b/web/templates/test/schema.json new file mode 100644 index 00000000..a32d287d --- /dev/null +++ b/web/templates/test/schema.json @@ -0,0 +1,4711 @@ +{ + "name": "AMBR", + "description": "", + "id": "https://example.com/AMBR", + "version": "2.3.0", + "prefixes": { + "linkml": { + "prefix_prefix": "linkml", + "prefix_reference": "https://w3id.org/linkml/" + }, + "GENEPIO": { + "prefix_prefix": "GENEPIO", + "prefix_reference": "http://purl.obolibrary.org/obo/GENEPIO_" + }, + "xsd": { + "prefix_prefix": "xsd", + "prefix_reference": "http://www.w3.org/2001/XMLSchema#" + }, + "shex": { + "prefix_prefix": "shex", + "prefix_reference": "http://www.w3.org/ns/shex#" + }, + "schema": { + "prefix_prefix": "schema", + "prefix_reference": "http://schema.org/" + } + }, + "default_prefix": "https://example.com/AMBR/", + "types": { + "WhitespaceMinimizedString": { + "name": "WhitespaceMinimizedString", + "description": "A string that has all whitespace trimmed off of beginning and end, and all internal whitespace segments reduced to single spaces. Whitespace includes #x9 (tab), #xA (linefeed), and #xD (carriage return).", + "typeof": "string", + "base": "str", + "uri": "xsd:token" + }, + "Provenance": { + "name": "Provenance", + "description": "A field containing a DataHarmonizer versioning marker. It is issued by DataHarmonizer when validation is applied to a given row of data.", + "typeof": "string", + "base": "str", + "uri": "xsd:token" + }, + "string": { + "name": "string", + "description": "A character string", + "exact_mappings": [ + "schema:Text" + ], + "base": "str", + "uri": "xsd:string" + }, + "integer": { + "name": "integer", + "description": "An integer", + "exact_mappings": [ + "schema:Integer" + ], + "base": "int", + "uri": "xsd:integer" + }, + "boolean": { + "name": "boolean", + "description": "A binary (true or false) value", + "exact_mappings": [ + "schema:Boolean" + ], + "base": "Bool", + "uri": "xsd:boolean", + "repr": "bool" + }, + "float": { + "name": "float", + "description": "A real number that conforms to the xsd:float specification", + "exact_mappings": [ + "schema:Float" + ], + "base": "float", + "uri": "xsd:float" + }, + "double": { + "name": "double", + "description": "A real number that conforms to the xsd:double specification", + "close_mappings": [ + "schema:Float" + ], + "base": "float", + "uri": "xsd:double" + }, + "decimal": { + "name": "decimal", + "description": "A real number with arbitrary precision that conforms to the xsd:decimal specification", + "broad_mappings": [ + "schema:Number" + ], + "base": "Decimal", + "uri": "xsd:decimal" + }, + "time": { + "name": "time", + "description": "A time object represents a (local) time of day, independent of any particular day", + "notes": [ + "URI is dateTime because OWL reasoners do not work with straight date or time" + ], + "exact_mappings": [ + "schema:Time" + ], + "base": "XSDTime", + "uri": "xsd:dateTime", + "repr": "str" + }, + "date": { + "name": "date", + "description": "a date (year, month and day) in an idealized calendar", + "notes": [ + "URI is dateTime because OWL reasoners don't work with straight date or time" + ], + "exact_mappings": [ + "schema:Date" + ], + "base": "XSDDate", + "uri": "xsd:date", + "repr": "str" + }, + "datetime": { + "name": "datetime", + "description": "The combination of a date and time", + "exact_mappings": [ + "schema:DateTime" + ], + "base": "XSDDateTime", + "uri": "xsd:dateTime", + "repr": "str" + }, + "date_or_datetime": { + "name": "date_or_datetime", + "description": "Either a date or a datetime", + "base": "str", + "uri": "linkml:DateOrDatetime", + "repr": "str" + }, + "uriorcurie": { + "name": "uriorcurie", + "description": "a URI or a CURIE", + "base": "URIorCURIE", + "uri": "xsd:anyURI", + "repr": "str" + }, + "curie": { + "name": "curie", + "conforms_to": "https://www.w3.org/TR/curie/", + "description": "a compact URI", + "comments": [ + "in RDF serializations this MUST be expanded to a URI", + "in non-RDF serializations MAY be serialized as the compact representation" + ], + "base": "Curie", + "uri": "xsd:string", + "repr": "str" + }, + "uri": { + "name": "uri", + "conforms_to": "https://www.ietf.org/rfc/rfc3987.txt", + "description": "a complete URI", + "comments": [ + "in RDF serializations a slot with range of uri is treated as a literal or type xsd:anyURI unless it is an identifier or a reference to an identifier, in which case it is translated directly to a node" + ], + "close_mappings": [ + "schema:URL" + ], + "base": "URI", + "uri": "xsd:anyURI", + "repr": "str" + }, + "ncname": { + "name": "ncname", + "description": "Prefix part of CURIE", + "base": "NCName", + "uri": "xsd:string", + "repr": "str" + }, + "objectidentifier": { + "name": "objectidentifier", + "description": "A URI or CURIE that represents an object in the model.", + "comments": [ + "Used for inheritence and type checking" + ], + "base": "ElementIdentifier", + "uri": "shex:iri", + "repr": "str" + }, + "nodeidentifier": { + "name": "nodeidentifier", + "description": "A URI, CURIE or BNODE that represents a node in a model.", + "base": "NodeIdentifier", + "uri": "shex:nonLiteral", + "repr": "str" + } + }, + "enums": { + "null value menu": { + "name": "null value menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Not Applicable": { + "text": "Not Applicable", + "meaning": "GENEPIO:0001619" + }, + "Not Collected": { + "text": "Not Collected", + "meaning": "GENEPIO:0001620" + }, + "Not Provided": { + "text": "Not Provided", + "meaning": "GENEPIO:0001668" + }, + "Missing": { + "text": "Missing", + "meaning": "GENEPIO:0001618" + }, + "Restricted Access": { + "text": "Restricted Access", + "meaning": "GENEPIO:0001810" + } + } + }, + "geo_loc_name (country) menu": { + "name": "geo_loc_name (country) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Afghanistan": { + "text": "Afghanistan", + "meaning": "GAZ:00006882" + }, + "Albania": { + "text": "Albania", + "meaning": "GAZ:00002953" + }, + "Algeria": { + "text": "Algeria", + "meaning": "GAZ:00000563" + }, + "American Samoa": { + "text": "American Samoa", + "meaning": "GAZ:00003957" + }, + "Andorra": { + "text": "Andorra", + "meaning": "GAZ:00002948" + }, + "Angola": { + "text": "Angola", + "meaning": "GAZ:00001095" + }, + "Anguilla": { + "text": "Anguilla", + "meaning": "GAZ:00009159" + }, + "Antarctica": { + "text": "Antarctica", + "meaning": "GAZ:00000462" + }, + "Antigua and Barbuda": { + "text": "Antigua and Barbuda", + "meaning": "GAZ:00006883" + }, + "Argentina": { + "text": "Argentina", + "meaning": "GAZ:00002928" + }, + "Armenia": { + "text": "Armenia", + "meaning": "GAZ:00004094" + }, + "Aruba": { + "text": "Aruba", + "meaning": "GAZ:00004025" + }, + "Ashmore and Cartier Islands": { + "text": "Ashmore and Cartier Islands", + "meaning": "GAZ:00005901" + }, + "Australia": { + "text": "Australia", + "meaning": "GAZ:00000463" + }, + "Austria": { + "text": "Austria", + "meaning": "GAZ:00002942" + }, + "Azerbaijan": { + "text": "Azerbaijan", + "meaning": "GAZ:00004941" + }, + "Bahamas": { + "text": "Bahamas", + "meaning": "GAZ:00002733" + }, + "Bahrain": { + "text": "Bahrain", + "meaning": "GAZ:00005281" + }, + "Baker Island": { + "text": "Baker Island", + "meaning": "GAZ:00007117" + }, + "Bangladesh": { + "text": "Bangladesh", + "meaning": "GAZ:00003750" + }, + "Barbados": { + "text": "Barbados", + "meaning": "GAZ:00001251" + }, + "Bassas da India": { + "text": "Bassas da India", + "meaning": "GAZ:00005810" + }, + "Belarus": { + "text": "Belarus", + "meaning": "GAZ:00006886" + }, + "Belgium": { + "text": "Belgium", + "meaning": "GAZ:00002938" + }, + "Belize": { + "text": "Belize", + "meaning": "GAZ:00002934" + }, + "Benin": { + "text": "Benin", + "meaning": "GAZ:00000904" + }, + "Bermuda": { + "text": "Bermuda", + "meaning": "GAZ:00001264" + }, + "Bhutan": { + "text": "Bhutan", + "meaning": "GAZ:00003920" + }, + "Bolivia": { + "text": "Bolivia", + "meaning": "GAZ:00002511" + }, + "Borneo": { + "text": "Borneo", + "meaning": "GAZ:00025355" + }, + "Bosnia and Herzegovina": { + "text": "Bosnia and Herzegovina", + "meaning": "GAZ:00006887" + }, + "Botswana": { + "text": "Botswana", + "meaning": "GAZ:00001097" + }, + "Bouvet Island": { + "text": "Bouvet Island", + "meaning": "GAZ:00001453" + }, + "Brazil": { + "text": "Brazil", + "meaning": "GAZ:00002828" + }, + "British Virgin Islands": { + "text": "British Virgin Islands", + "meaning": "GAZ:00003961" + }, + "Brunei": { + "text": "Brunei", + "meaning": "GAZ:00003901" + }, + "Bulgaria": { + "text": "Bulgaria", + "meaning": "GAZ:00002950" + }, + "Burkina Faso": { + "text": "Burkina Faso", + "meaning": "GAZ:00000905" + }, + "Burundi": { + "text": "Burundi", + "meaning": "GAZ:00001090" + }, + "Cambodia": { + "text": "Cambodia", + "meaning": "GAZ:00006888" + }, + "Cameroon": { + "text": "Cameroon", + "meaning": "GAZ:00001093" + }, + "Canada": { + "text": "Canada", + "meaning": "GAZ:00002560" + }, + "Cape Verde": { + "text": "Cape Verde", + "meaning": "GAZ:00001227" + }, + "Cayman Islands": { + "text": "Cayman Islands", + "meaning": "GAZ:00003986" + }, + "Central African Republic": { + "text": "Central African Republic", + "meaning": "GAZ:00001089" + }, + "Chad": { + "text": "Chad", + "meaning": "GAZ:00000586" + }, + "Chile": { + "text": "Chile", + "meaning": "GAZ:00002825" + }, + "China": { + "text": "China", + "meaning": "GAZ:00002845" + }, + "Christmas Island": { + "text": "Christmas Island", + "meaning": "GAZ:00005915" + }, + "Clipperton Island": { + "text": "Clipperton Island", + "meaning": "GAZ:00005838" + }, + "Cocos Islands": { + "text": "Cocos Islands", + "meaning": "GAZ:00009721" + }, + "Colombia": { + "text": "Colombia", + "meaning": "GAZ:00002929" + }, + "Comoros": { + "text": "Comoros", + "meaning": "GAZ:00005820" + }, + "Cook Islands": { + "text": "Cook Islands", + "meaning": "GAZ:00053798" + }, + "Coral Sea Islands": { + "text": "Coral Sea Islands", + "meaning": "GAZ:00005917" + }, + "Costa Rica": { + "text": "Costa Rica", + "meaning": "GAZ:00002901" + }, + "Cote d'Ivoire": { + "text": "Cote d'Ivoire", + "meaning": "GAZ:00000906" + }, + "Croatia": { + "text": "Croatia", + "meaning": "GAZ:00002719" + }, + "Cuba": { + "text": "Cuba", + "meaning": "GAZ:00003762" + }, + "Curacao": { + "text": "Curacao", + "meaning": "GAZ:00012582" + }, + "Cyprus": { + "text": "Cyprus", + "meaning": "GAZ:00004006" + }, + "Czech Republic": { + "text": "Czech Republic", + "meaning": "GAZ:00002954" + }, + "Democratic Republic of the Congo": { + "text": "Democratic Republic of the Congo", + "meaning": "GAZ:00001086" + }, + "Denmark": { + "text": "Denmark", + "meaning": "GAZ:00005852" + }, + "Djibouti": { + "text": "Djibouti", + "meaning": "GAZ:00000582" + }, + "Dominica": { + "text": "Dominica", + "meaning": "GAZ:00006890" + }, + "Dominican Republic": { + "text": "Dominican Republic", + "meaning": "GAZ:00003952" + }, + "Ecuador": { + "text": "Ecuador", + "meaning": "GAZ:00002912" + }, + "Egypt": { + "text": "Egypt", + "meaning": "GAZ:00003934" + }, + "El Salvador": { + "text": "El Salvador", + "meaning": "GAZ:00002935" + }, + "Equatorial Guinea": { + "text": "Equatorial Guinea", + "meaning": "GAZ:00001091" + }, + "Eritrea": { + "text": "Eritrea", + "meaning": "GAZ:00000581" + }, + "Estonia": { + "text": "Estonia", + "meaning": "GAZ:00002959" + }, + "Eswatini": { + "text": "Eswatini", + "meaning": "GAZ:00001099" + }, + "Ethiopia": { + "text": "Ethiopia", + "meaning": "GAZ:00000567" + }, + "Europa Island": { + "text": "Europa Island", + "meaning": "GAZ:00005811" + }, + "Falkland Islands (Islas Malvinas)": { + "text": "Falkland Islands (Islas Malvinas)", + "meaning": "GAZ:00001412" + }, + "Faroe Islands": { + "text": "Faroe Islands", + "meaning": "GAZ:00059206" + }, + "Fiji": { + "text": "Fiji", + "meaning": "GAZ:00006891" + }, + "Finland": { + "text": "Finland", + "meaning": "GAZ:00002937" + }, + "France": { + "text": "France", + "meaning": "GAZ:00003940" + }, + "French Guiana": { + "text": "French Guiana", + "meaning": "GAZ:00002516" + }, + "French Polynesia": { + "text": "French Polynesia", + "meaning": "GAZ:00002918" + }, + "French Southern and Antarctic Lands": { + "text": "French Southern and Antarctic Lands", + "meaning": "GAZ:00003753" + }, + "Gabon": { + "text": "Gabon", + "meaning": "GAZ:00001092" + }, + "Gambia": { + "text": "Gambia", + "meaning": "GAZ:00000907" + }, + "Gaza Strip": { + "text": "Gaza Strip", + "meaning": "GAZ:00009571" + }, + "Georgia": { + "text": "Georgia", + "meaning": "GAZ:00004942" + }, + "Germany": { + "text": "Germany", + "meaning": "GAZ:00002646" + }, + "Ghana": { + "text": "Ghana", + "meaning": "GAZ:00000908" + }, + "Gibraltar": { + "text": "Gibraltar", + "meaning": "GAZ:00003987" + }, + "Glorioso Islands": { + "text": "Glorioso Islands", + "meaning": "GAZ:00005808" + }, + "Greece": { + "text": "Greece", + "meaning": "GAZ:00002945" + }, + "Greenland": { + "text": "Greenland", + "meaning": "GAZ:00001507" + }, + "Grenada": { + "text": "Grenada", + "meaning": "GAZ:02000573" + }, + "Guadeloupe": { + "text": "Guadeloupe", + "meaning": "GAZ:00067142" + }, + "Guam": { + "text": "Guam", + "meaning": "GAZ:00003706" + }, + "Guatemala": { + "text": "Guatemala", + "meaning": "GAZ:00002936" + }, + "Guernsey": { + "text": "Guernsey", + "meaning": "GAZ:00001550" + }, + "Guinea": { + "text": "Guinea", + "meaning": "GAZ:00000909" + }, + "Guinea-Bissau": { + "text": "Guinea-Bissau", + "meaning": "GAZ:00000910" + }, + "Guyana": { + "text": "Guyana", + "meaning": "GAZ:00002522" + }, + "Haiti": { + "text": "Haiti", + "meaning": "GAZ:00003953" + }, + "Heard Island and McDonald Islands": { + "text": "Heard Island and McDonald Islands", + "meaning": "GAZ:00009718" + }, + "Honduras": { + "text": "Honduras", + "meaning": "GAZ:00002894" + }, + "Hong Kong": { + "text": "Hong Kong", + "meaning": "GAZ:00003203" + }, + "Howland Island": { + "text": "Howland Island", + "meaning": "GAZ:00007120" + }, + "Hungary": { + "text": "Hungary", + "meaning": "GAZ:00002952" + }, + "Iceland": { + "text": "Iceland", + "meaning": "GAZ:00000843" + }, + "India": { + "text": "India", + "meaning": "GAZ:00002839" + }, + "Indonesia": { + "text": "Indonesia", + "meaning": "GAZ:00003727" + }, + "Iran": { + "text": "Iran", + "meaning": "GAZ:00004474" + }, + "Iraq": { + "text": "Iraq", + "meaning": "GAZ:00004483" + }, + "Ireland": { + "text": "Ireland", + "meaning": "GAZ:00002943" + }, + "Isle of Man": { + "text": "Isle of Man", + "meaning": "GAZ:00052477" + }, + "Israel": { + "text": "Israel", + "meaning": "GAZ:00002476" + }, + "Italy": { + "text": "Italy", + "meaning": "GAZ:00002650" + }, + "Jamaica": { + "text": "Jamaica", + "meaning": "GAZ:00003781" + }, + "Jan Mayen": { + "text": "Jan Mayen", + "meaning": "GAZ:00005853" + }, + "Japan": { + "text": "Japan", + "meaning": "GAZ:00002747" + }, + "Jarvis Island": { + "text": "Jarvis Island", + "meaning": "GAZ:00007118" + }, + "Jersey": { + "text": "Jersey", + "meaning": "GAZ:00001551" + }, + "Johnston Atoll": { + "text": "Johnston Atoll", + "meaning": "GAZ:00007114" + }, + "Jordan": { + "text": "Jordan", + "meaning": "GAZ:00002473" + }, + "Juan de Nova Island": { + "text": "Juan de Nova Island", + "meaning": "GAZ:00005809" + }, + "Kazakhstan": { + "text": "Kazakhstan", + "meaning": "GAZ:00004999" + }, + "Kenya": { + "text": "Kenya", + "meaning": "GAZ:00001101" + }, + "Kerguelen Archipelago": { + "text": "Kerguelen Archipelago", + "meaning": "GAZ:00005682" + }, + "Kingman Reef": { + "text": "Kingman Reef", + "meaning": "GAZ:00007116" + }, + "Kiribati": { + "text": "Kiribati", + "meaning": "GAZ:00006894" + }, + "Kosovo": { + "text": "Kosovo", + "meaning": "GAZ:00011337" + }, + "Kuwait": { + "text": "Kuwait", + "meaning": "GAZ:00005285" + }, + "Kyrgyzstan": { + "text": "Kyrgyzstan", + "meaning": "GAZ:00006893" + }, + "Laos": { + "text": "Laos", + "meaning": "GAZ:00006889" + }, + "Latvia": { + "text": "Latvia", + "meaning": "GAZ:00002958" + }, + "Lebanon": { + "text": "Lebanon", + "meaning": "GAZ:00002478" + }, + "Lesotho": { + "text": "Lesotho", + "meaning": "GAZ:00001098" + }, + "Liberia": { + "text": "Liberia", + "meaning": "GAZ:00000911" + }, + "Libya": { + "text": "Libya", + "meaning": "GAZ:00000566" + }, + "Liechtenstein": { + "text": "Liechtenstein", + "meaning": "GAZ:00003858" + }, + "Line Islands": { + "text": "Line Islands", + "meaning": "GAZ:00007144" + }, + "Lithuania": { + "text": "Lithuania", + "meaning": "GAZ:00002960" + }, + "Luxembourg": { + "text": "Luxembourg", + "meaning": "GAZ:00002947" + }, + "Macau": { + "text": "Macau", + "meaning": "GAZ:00003202" + }, + "Madagascar": { + "text": "Madagascar", + "meaning": "GAZ:00001108" + }, + "Malawi": { + "text": "Malawi", + "meaning": "GAZ:00001105" + }, + "Malaysia": { + "text": "Malaysia", + "meaning": "GAZ:00003902" + }, + "Maldives": { + "text": "Maldives", + "meaning": "GAZ:00006924" + }, + "Mali": { + "text": "Mali", + "meaning": "GAZ:00000584" + }, + "Malta": { + "text": "Malta", + "meaning": "GAZ:00004017" + }, + "Marshall Islands": { + "text": "Marshall Islands", + "meaning": "GAZ:00007161" + }, + "Martinique": { + "text": "Martinique", + "meaning": "GAZ:00067143" + }, + "Mauritania": { + "text": "Mauritania", + "meaning": "GAZ:00000583" + }, + "Mauritius": { + "text": "Mauritius", + "meaning": "GAZ:00003745" + }, + "Mayotte": { + "text": "Mayotte", + "meaning": "GAZ:00003943" + }, + "Mexico": { + "text": "Mexico", + "meaning": "GAZ:00002852" + }, + "Micronesia": { + "text": "Micronesia", + "meaning": "GAZ:00005862" + }, + "Midway Islands": { + "text": "Midway Islands", + "meaning": "GAZ:00007112" + }, + "Moldova": { + "text": "Moldova", + "meaning": "GAZ:00003897" + }, + "Monaco": { + "text": "Monaco", + "meaning": "GAZ:00003857" + }, + "Mongolia": { + "text": "Mongolia", + "meaning": "GAZ:00008744" + }, + "Montenegro": { + "text": "Montenegro", + "meaning": "GAZ:00006898" + }, + "Montserrat": { + "text": "Montserrat", + "meaning": "GAZ:00003988" + }, + "Morocco": { + "text": "Morocco", + "meaning": "GAZ:00000565" + }, + "Mozambique": { + "text": "Mozambique", + "meaning": "GAZ:00001100" + }, + "Myanmar": { + "text": "Myanmar", + "meaning": "GAZ:00006899" + }, + "Namibia": { + "text": "Namibia", + "meaning": "GAZ:00001096" + }, + "Nauru": { + "text": "Nauru", + "meaning": "GAZ:00006900" + }, + "Navassa Island": { + "text": "Navassa Island", + "meaning": "GAZ:00007119" + }, + "Nepal": { + "text": "Nepal", + "meaning": "GAZ:00004399" + }, + "Netherlands": { + "text": "Netherlands", + "meaning": "GAZ:00002946" + }, + "New Caledonia": { + "text": "New Caledonia", + "meaning": "GAZ:00005206" + }, + "New Zealand": { + "text": "New Zealand", + "meaning": "GAZ:00000469" + }, + "Nicaragua": { + "text": "Nicaragua", + "meaning": "GAZ:00002978" + }, + "Niger": { + "text": "Niger", + "meaning": "GAZ:00000585" + }, + "Nigeria": { + "text": "Nigeria", + "meaning": "GAZ:00000912" + }, + "Niue": { + "text": "Niue", + "meaning": "GAZ:00006902" + }, + "Norfolk Island": { + "text": "Norfolk Island", + "meaning": "GAZ:00005908" + }, + "North Korea": { + "text": "North Korea", + "meaning": "GAZ:00002801" + }, + "North Macedonia": { + "text": "North Macedonia", + "meaning": "GAZ:00006895" + }, + "North Sea": { + "text": "North Sea", + "meaning": "GAZ:00002284" + }, + "Northern Mariana Islands": { + "text": "Northern Mariana Islands", + "meaning": "GAZ:00003958" + }, + "Norway": { + "text": "Norway", + "meaning": "GAZ:00002699" + }, + "Oman": { + "text": "Oman", + "meaning": "GAZ:00005283" + }, + "Pakistan": { + "text": "Pakistan", + "meaning": "GAZ:00005246" + }, + "Palau": { + "text": "Palau", + "meaning": "GAZ:00006905" + }, + "Panama": { + "text": "Panama", + "meaning": "GAZ:00002892" + }, + "Papua New Guinea": { + "text": "Papua New Guinea", + "meaning": "GAZ:00003922" + }, + "Paracel Islands": { + "text": "Paracel Islands", + "meaning": "GAZ:00010832" + }, + "Paraguay": { + "text": "Paraguay", + "meaning": "GAZ:00002933" + }, + "Peru": { + "text": "Peru", + "meaning": "GAZ:00002932" + }, + "Philippines": { + "text": "Philippines", + "meaning": "GAZ:00004525" + }, + "Pitcairn Islands": { + "text": "Pitcairn Islands", + "meaning": "GAZ:00005867" + }, + "Poland": { + "text": "Poland", + "meaning": "GAZ:00002939" + }, + "Portugal": { + "text": "Portugal", + "meaning": "GAZ:00004126" + }, + "Puerto Rico": { + "text": "Puerto Rico", + "meaning": "GAZ:00006935" + }, + "Qatar": { + "text": "Qatar", + "meaning": "GAZ:00005286" + }, + "Republic of the Congo": { + "text": "Republic of the Congo", + "meaning": "GAZ:00001088" + }, + "Reunion": { + "text": "Reunion", + "meaning": "GAZ:00003945" + }, + "Romania": { + "text": "Romania", + "meaning": "GAZ:00002951" + }, + "Ross Sea": { + "text": "Ross Sea", + "meaning": "GAZ:00023304" + }, + "Russia": { + "text": "Russia", + "meaning": "GAZ:00002721" + }, + "Rwanda": { + "text": "Rwanda", + "meaning": "GAZ:00001087" + }, + "Saint Helena": { + "text": "Saint Helena", + "meaning": "GAZ:00000849" + }, + "Saint Kitts and Nevis": { + "text": "Saint Kitts and Nevis", + "meaning": "GAZ:00006906" + }, + "Saint Lucia": { + "text": "Saint Lucia", + "meaning": "GAZ:00006909" + }, + "Saint Pierre and Miquelon": { + "text": "Saint Pierre and Miquelon", + "meaning": "GAZ:00003942" + }, + "Saint Martin": { + "text": "Saint Martin", + "meaning": "GAZ:00005841" + }, + "Saint Vincent and the Grenadines": { + "text": "Saint Vincent and the Grenadines", + "meaning": "GAZ:02000565" + }, + "Samoa": { + "text": "Samoa", + "meaning": "GAZ:00006910" + }, + "San Marino": { + "text": "San Marino", + "meaning": "GAZ:00003102" + }, + "Sao Tome and Principe": { + "text": "Sao Tome and Principe", + "meaning": "GAZ:00006927" + }, + "Saudi Arabia": { + "text": "Saudi Arabia", + "meaning": "GAZ:00005279" + }, + "Senegal": { + "text": "Senegal", + "meaning": "GAZ:00000913" + }, + "Serbia": { + "text": "Serbia", + "meaning": "GAZ:00002957" + }, + "Seychelles": { + "text": "Seychelles", + "meaning": "GAZ:00006922" + }, + "Sierra Leone": { + "text": "Sierra Leone", + "meaning": "GAZ:00000914" + }, + "Singapore": { + "text": "Singapore", + "meaning": "GAZ:00003923" + }, + "Sint Maarten": { + "text": "Sint Maarten", + "meaning": "GAZ:00012579" + }, + "Slovakia": { + "text": "Slovakia", + "meaning": "GAZ:00002956" + }, + "Slovenia": { + "text": "Slovenia", + "meaning": "GAZ:00002955" + }, + "Solomon Islands": { + "text": "Solomon Islands", + "meaning": "GAZ:00005275" + }, + "Somalia": { + "text": "Somalia", + "meaning": "GAZ:00001104" + }, + "South Africa": { + "text": "South Africa", + "meaning": "GAZ:00001094" + }, + "South Georgia and the South Sandwich Islands": { + "text": "South Georgia and the South Sandwich Islands", + "meaning": "GAZ:00003990" + }, + "South Korea": { + "text": "South Korea", + "meaning": "GAZ:00002802" + }, + "South Sudan": { + "text": "South Sudan", + "meaning": "GAZ:00233439" + }, + "Spain": { + "text": "Spain", + "meaning": "GAZ:00003936" + }, + "Spratly Islands": { + "text": "Spratly Islands", + "meaning": "GAZ:00010831" + }, + "Sri Lanka": { + "text": "Sri Lanka", + "meaning": "GAZ:00003924" + }, + "State of Palestine": { + "text": "State of Palestine", + "meaning": "GAZ:00002475" + }, + "Sudan": { + "text": "Sudan", + "meaning": "GAZ:00000560" + }, + "Suriname": { + "text": "Suriname", + "meaning": "GAZ:00002525" + }, + "Svalbard": { + "text": "Svalbard", + "meaning": "GAZ:00005396" + }, + "Swaziland": { + "text": "Swaziland", + "meaning": "GAZ:00001099" + }, + "Sweden": { + "text": "Sweden", + "meaning": "GAZ:00002729" + }, + "Switzerland": { + "text": "Switzerland", + "meaning": "GAZ:00002941" + }, + "Syria": { + "text": "Syria", + "meaning": "GAZ:00002474" + }, + "Taiwan": { + "text": "Taiwan", + "meaning": "GAZ:00005341" + }, + "Tajikistan": { + "text": "Tajikistan", + "meaning": "GAZ:00006912" + }, + "Tanzania": { + "text": "Tanzania", + "meaning": "GAZ:00001103" + }, + "Thailand": { + "text": "Thailand", + "meaning": "GAZ:00003744" + }, + "Timor-Leste": { + "text": "Timor-Leste", + "meaning": "GAZ:00006913" + }, + "Togo": { + "text": "Togo", + "meaning": "GAZ:00000915" + }, + "Tokelau": { + "text": "Tokelau", + "meaning": "GAZ:00260188" + }, + "Tonga": { + "text": "Tonga", + "meaning": "GAZ:00006916" + }, + "Trinidad and Tobago": { + "text": "Trinidad and Tobago", + "meaning": "GAZ:00003767" + }, + "Tromelin Island": { + "text": "Tromelin Island", + "meaning": "GAZ:00005812" + }, + "Tunisia": { + "text": "Tunisia", + "meaning": "GAZ:00000562" + }, + "Turkey": { + "text": "Turkey", + "meaning": "GAZ:00000558" + }, + "Turkmenistan": { + "text": "Turkmenistan", + "meaning": "GAZ:00005018" + }, + "Turks and Caicos Islands": { + "text": "Turks and Caicos Islands", + "meaning": "GAZ:00003955" + }, + "Tuvalu": { + "text": "Tuvalu", + "meaning": "GAZ:00009715" + }, + "United States of America": { + "text": "United States of America", + "meaning": "GAZ:00002459" + }, + "Uganda": { + "text": "Uganda", + "meaning": "GAZ:00001102" + }, + "Ukraine": { + "text": "Ukraine", + "meaning": "GAZ:00002724" + }, + "United Arab Emirates": { + "text": "United Arab Emirates", + "meaning": "GAZ:00005282" + }, + "United Kingdom": { + "text": "United Kingdom", + "meaning": "GAZ:00002637" + }, + "Uruguay": { + "text": "Uruguay", + "meaning": "GAZ:00002930" + }, + "Uzbekistan": { + "text": "Uzbekistan", + "meaning": "GAZ:00004979" + }, + "Vanuatu": { + "text": "Vanuatu", + "meaning": "GAZ:00006918" + }, + "Venezuela": { + "text": "Venezuela", + "meaning": "GAZ:00002931" + }, + "Viet Nam": { + "text": "Viet Nam", + "meaning": "GAZ:00003756" + }, + "Virgin Islands": { + "text": "Virgin Islands", + "meaning": "GAZ:00003959" + }, + "Wake Island": { + "text": "Wake Island", + "meaning": "GAZ:00007111" + }, + "Wallis and Futuna": { + "text": "Wallis and Futuna", + "meaning": "GAZ:00007191" + }, + "West Bank": { + "text": "West Bank", + "meaning": "GAZ:00009572" + }, + "Western Sahara": { + "text": "Western Sahara", + "meaning": "GAZ:00000564" + }, + "Yemen": { + "text": "Yemen", + "meaning": "GAZ:00005284" + }, + "Zambia": { + "text": "Zambia", + "meaning": "GAZ:00001107" + }, + "Zimbabwe": { + "text": "Zimbabwe", + "meaning": "GAZ:00001106" + } + } + }, + "geo_loc_name (site) menu": { + "name": "geo_loc_name (site) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Banff National Park": { + "text": "Banff National Park", + "meaning": "GAZ:00055489" + }, + "Clayoquot Sound": { + "text": "Clayoquot Sound", + "meaning": "GAZ:00055538" + }, + "Grassi Lakes": { + "text": "Grassi Lakes" + }, + "Horseshoe Canyon": { + "text": "Horseshoe Canyon", + "meaning": "GAZ:00284745" + }, + "Ink Pots": { + "text": "Ink Pots" + }, + "Lake Louise": { + "text": "Lake Louise", + "meaning": "GAZ:00084160" + }, + "Sylvan Lake": { + "text": "Sylvan Lake", + "meaning": "GAZ:00084188" + } + } + }, + "purpose of sampling menu": { + "name": "purpose of sampling menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Cluster/Outbreak investigation": { + "text": "Cluster/Outbreak investigation", + "meaning": "GENEPIO:0100001" + }, + "Diagnostic testing": { + "text": "Diagnostic testing", + "meaning": "GENEPIO:0100002" + }, + "Research": { + "text": "Research", + "meaning": "GENEPIO:0100003" + }, + "Survey study": { + "text": "Survey study", + "meaning": "GENEPIO:0100582", + "is_a": "Research" + }, + "Surveillance": { + "text": "Surveillance", + "meaning": "GENEPIO:0100004" + } + } + }, + "anatomical material menu": { + "name": "anatomical material menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Skin": { + "text": "Skin", + "meaning": "UBERON:0002097" + }, + "Tissue": { + "text": "Tissue", + "meaning": "UBERON:0000479" + }, + "Pierced tissue": { + "text": "Pierced tissue", + "is_a": "Tissue" + }, + "Wound tissue (injury)": { + "text": "Wound tissue (injury)", + "meaning": "NCIT:C3671", + "is_a": "Tissue" + } + } + }, + "anatomical part menu": { + "name": "anatomical part menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Animal body or body part": { + "text": "Animal body or body part", + "meaning": "FOODON:03420127" + }, + "Berry": { + "text": "Berry", + "meaning": "FOODON:00003521" + }, + "Colon": { + "text": "Colon", + "meaning": "UBERON:0001155" + }, + "Ascending colon": { + "text": "Ascending colon", + "meaning": "UBERON:0001156", + "is_a": "Colon" + }, + "Ear": { + "text": "Ear", + "meaning": "UBERON:0001690" + }, + "Flower": { + "text": "Flower", + "meaning": "PO:0009046" + }, + "Flower petal": { + "text": "Flower petal", + "meaning": "PO:0009032", + "is_a": "Flower" + }, + "Leaf": { + "text": "Leaf", + "meaning": "PO:0025034" + }, + "Nasal cavity": { + "text": "Nasal cavity", + "meaning": "UBERON:0001707" + }, + "Oral cavity": { + "text": "Oral cavity", + "meaning": "UBERON:0000167" + }, + "Vagina": { + "text": "Vagina", + "meaning": "UBERON:0000996" + } + } + }, + "body product menu": { + "name": "body product menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Feces": { + "text": "Feces", + "meaning": "UBERON:0001988" + } + } + }, + "environmental material menu": { + "name": "environmental material menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Algal film": { + "text": "Algal film", + "meaning": "ENVO:01001189" + }, + "Bandage": { + "text": "Bandage" + }, + "Cerebral spinal fluid (CSF) shunt": { + "text": "Cerebral spinal fluid (CSF) shunt" + }, + "Food": { + "text": "Food", + "meaning": "CHEBI:33290" + }, + "Gauze": { + "text": "Gauze" + }, + "Gravel": { + "text": "Gravel", + "meaning": "ENVO:01000018" + }, + "Moss": { + "text": "Moss" + }, + "Peat": { + "text": "Peat", + "meaning": "ENVO:00005774" + }, + "Phone": { + "text": "Phone", + "meaning": "ENVO:01000581" + }, + "Phone screen": { + "text": "Phone screen", + "is_a": "Phone" + }, + "Pipe (metal)": { + "text": "Pipe (metal)" + }, + "Prosthetic limb": { + "text": "Prosthetic limb" + }, + "Prosthetic hip": { + "text": "Prosthetic hip", + "is_a": "Prosthetic limb" + }, + "Rock": { + "text": "Rock", + "meaning": "ENVO:00001995" + }, + "Sand": { + "text": "Sand", + "meaning": "ENVO:01000017" + }, + "Black sand": { + "text": "Black sand", + "is_a": "Sand" + }, + "Copper sand": { + "text": "Copper sand", + "is_a": "Sand" + }, + "Sludge": { + "text": "Sludge", + "meaning": "ENVO:00002044" + }, + "Soil": { + "text": "Soil", + "meaning": "ENVO:00001998" + }, + "Snow": { + "text": "Snow", + "meaning": "ENVO:01000406" + }, + "Water": { + "text": "Water", + "meaning": "ENVO:00002006" + }, + "Surface runoff": { + "text": "Surface runoff", + "is_a": "Water" + }, + "Surface water foam": { + "text": "Surface water foam", + "meaning": "ENVO:00005738", + "is_a": "Water" + }, + "Tap water": { + "text": "Tap water", + "is_a": "Water" + }, + "Drinking water": { + "text": "Drinking water", + "meaning": "ENVO:00003064", + "is_a": "Tap water" + }, + "Water outlet": { + "text": "Water outlet" + } + } + }, + "environmental site menu": { + "name": "environmental site menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Bird bath": { + "text": "Bird bath" + }, + "Deep water area": { + "text": "Deep water area" + }, + "Fish tank": { + "text": "Fish tank" + }, + "Fountain": { + "text": "Fountain" + }, + "Fountain pond": { + "text": "Fountain pond", + "is_a": "Fountain" + }, + "Hoodoo": { + "text": "Hoodoo" + }, + "Hospital": { + "text": "Hospital", + "meaning": "ENVO:00002173" + }, + "Laboratory": { + "text": "Laboratory", + "meaning": "ENVO:01001406" + }, + "Lake": { + "text": "Lake", + "meaning": "ENVO:00000020" + }, + "Pond": { + "text": "Pond", + "meaning": "ENVO:00000033" + }, + "Shoreline": { + "text": "Shoreline", + "meaning": "ENVO:00000486" + }, + "Stream": { + "text": "Stream", + "meaning": "ENVO:00000023" + }, + "Tailing pond": { + "text": "Tailing pond", + "meaning": "ENVO:03600021" + }, + "Waterfall": { + "text": "Waterfall", + "meaning": "ENVO:00000040" + } + } + }, + "collection device menu": { + "name": "collection device menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Filter": { + "text": "Filter", + "meaning": "GENEPIO:0100103" + }, + "Filter cage": { + "text": "Filter cage", + "is_a": "Filter" + }, + "Swab": { + "text": "Swab", + "meaning": "GENEPIO:0100027" + } + } + }, + "collection method menu": { + "name": "collection method menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Biopsy": { + "text": "Biopsy", + "meaning": "OBI:0002650" + } + } + }, + "specimen processing menu": { + "name": "specimen processing menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Biological replicate": { + "text": "Biological replicate", + "meaning": "EFO:0002091" + } + } + }, + "incubation temperature unit menu": { + "name": "incubation temperature unit menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Degree Celsius": { + "text": "Degree Celsius", + "meaning": "UO:0000027" + }, + "Degree Farenheit": { + "text": "Degree Farenheit", + "meaning": "UO:0000195" + } + } + }, + "isolation medium menu": { + "name": "isolation medium menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "1/10 869": { + "text": "1/10 869" + }, + "Anaerobic agar (AA)": { + "text": "Anaerobic agar (AA)" + }, + "Bile esculin agar (BEA)": { + "text": "Bile esculin agar (BEA)", + "meaning": "MICRO:0000605" + }, + "Brain heart infusion (BHI)": { + "text": "Brain heart infusion (BHI)", + "meaning": "MICRO:0000566" + }, + "Brain heart infusion III + Supplement Set A (BHI-A)": { + "text": "Brain heart infusion III + Supplement Set A (BHI-A)", + "is_a": "Brain heart infusion (BHI)" + }, + "Brain heart infusion II + Supplement Set B (BHI-B)": { + "text": "Brain heart infusion II + Supplement Set B (BHI-B)", + "is_a": "Brain heart infusion (BHI)" + }, + "Brain heart infusion IV + Supplement Set A & B (BHI-AB)": { + "text": "Brain heart infusion IV + Supplement Set A & B (BHI-AB)", + "is_a": "Brain heart infusion (BHI)" + }, + "Supplemented BHI (sBHI 2.0)": { + "text": "Supplemented BHI (sBHI 2.0)", + "is_a": "Brain heart infusion (BHI)" + }, + "Brewer’s anaerobic agar (BAA)": { + "text": "Brewer’s anaerobic agar (BAA)" + }, + "Brucella blood agar + 5% sheep’s blood": { + "text": "Brucella blood agar + 5% sheep’s blood", + "meaning": "MICRO:0000086" + }, + "Chocolate blood agar": { + "text": "Chocolate blood agar", + "meaning": "MICRO:0000591" + }, + "Columbia blood agar + 5% sheep’s blood (CBA)": { + "text": "Columbia blood agar + 5% sheep’s blood (CBA)", + "meaning": "MICRO:0000535" + }, + "Cooked meat medium from dehydrated meat extracts (Meat)": { + "text": "Cooked meat medium from dehydrated meat extracts (Meat)" + }, + "Cooke rose bengal agar (CRB)": { + "text": "Cooke rose bengal agar (CRB)" + }, + "Desoxycholate (DOC)": { + "text": "Desoxycholate (DOC)" + }, + "Fastidious anaerobic agar (FAA)": { + "text": "Fastidious anaerobic agar (FAA)" + }, + "Kligler iron agar (KIA)": { + "text": "Kligler iron agar (KIA)", + "meaning": "MICRO:0001182" + }, + "Lysogeny broth agar (LB)": { + "text": "Lysogeny broth agar (LB)" + }, + "M9 minimal medium (M9)": { + "text": "M9 minimal medium (M9)" + }, + "M9 minimal media + insulin (M9 + insulin)": { + "text": "M9 minimal media + insulin (M9 + insulin)", + "is_a": "M9 minimal medium (M9)" + }, + "M9 minimal media + mucin (M9 + mucin)": { + "text": "M9 minimal media + mucin (M9 + mucin)", + "is_a": "M9 minimal medium (M9)" + }, + "M9 minimal media + starch (M9 + starch)": { + "text": "M9 minimal media + starch (M9 + starch)", + "is_a": "M9 minimal medium (M9)" + }, + "M17 minimal medium (M17)": { + "text": "M17 minimal medium (M17)" + }, + "MacConkey agar (MCA)": { + "text": "MacConkey agar (MCA)", + "meaning": "MICRO:0000558" + }, + "Marine broth agar (MBA)": { + "text": "Marine broth agar (MBA)" + }, + "Medium 10 agar (M10)": { + "text": "Medium 10 agar (M10)" + }, + "Medium DAMS5.8 simple": { + "text": "Medium DAMS5.8 simple" + }, + "No salt lysogeny broth agar (NSLB)": { + "text": "No salt lysogeny broth agar (NSLB)" + }, + "No salt lysogeny broth agar + 5-15% sucrose (NSLB + 5-15% sucrose)": { + "text": "No salt lysogeny broth agar + 5-15% sucrose (NSLB + 5-15% sucrose)", + "is_a": "No salt lysogeny broth agar (NSLB)" + }, + "Nutrient agar": { + "text": "Nutrient agar", + "meaning": "MICRO:0000553" + }, + "Phenylethyl alcohol agar + 5% sheep’s blood (PEA)": { + "text": "Phenylethyl alcohol agar + 5% sheep’s blood (PEA)", + "meaning": "MICRO:0000622" + }, + "Plate count medium (PC)": { + "text": "Plate count medium (PC)", + "meaning": "MICRO:0000549" + }, + "Pseudomonas isolation medium (PIA)": { + "text": "Pseudomonas isolation medium (PIA)", + "meaning": "MICRO:0000550" + }, + "Reasoner's 2A agar (R2A)": { + "text": "Reasoner's 2A agar (R2A)", + "meaning": "MICRO:0000543" + }, + "Reinforced Clostridial agar (RCA)": { + "text": "Reinforced Clostridial agar (RCA)" + }, + "Staphylococcus isolation medium (SIA)": { + "text": "Staphylococcus isolation medium (SIA)" + }, + "Tryptic soy agar + Supplement A & B + yeast (TSY)": { + "text": "Tryptic soy agar + Supplement A & B + yeast (TSY)" + }, + "Sheep’s blood (5%)": { + "text": "Sheep’s blood (5%)" + }, + "Supplement A": { + "text": "Supplement A" + }, + "Supplement B": { + "text": "Supplement B" + }, + "Supplement 2.0": { + "text": "Supplement 2.0" + } + } + }, + "taxonomic identification method menu": { + "name": "taxonomic identification method menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Whole genome sequencing assay": { + "text": "Whole genome sequencing assay", + "meaning": "OBI:0002117" + }, + "16S ribosomal gene sequencing assay": { + "text": "16S ribosomal gene sequencing assay", + "meaning": "OBI:0002763" + }, + "PCR assay": { + "text": "PCR assay", + "meaning": "OBI:0002740" + }, + "Comparative phenotypic assessment": { + "text": "Comparative phenotypic assessment", + "meaning": "OBI:0001546" + } + } + }, + "taxonomic identification method details menu": { + "name": "taxonomic identification method details menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database": { + "text": "Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database" + }, + "Genus-level ID: >99.0% identity but ambiguous match to >1 type (T) sequence in databases": { + "text": "Genus-level ID: >99.0% identity but ambiguous match to >1 type (T) sequence in databases" + }, + "Genus-level ID: >98.7% identity to a type (T) sequence AND/OR >99.0% identity with a sequence that has not been typed*": { + "text": "Genus-level ID: >98.7% identity to a type (T) sequence AND/OR >99.0% identity with a sequence that has not been typed*" + }, + "Need to do whole genome sequencing to confirm their identity": { + "text": "Need to do whole genome sequencing to confirm their identity" + } + } + }, + "cellular respiration type menu": { + "name": "cellular respiration type menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Aerobic respiration": { + "text": "Aerobic respiration", + "meaning": "GO:0009060" + }, + "Anaerobic respiration": { + "text": "Anaerobic respiration", + "meaning": "GO:0009061" + } + } + }, + "host (common name) menu": { + "name": "host (common name) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Horse": { + "text": "Horse", + "meaning": "NCBITaxon:9796" + }, + "Human": { + "text": "Human", + "meaning": "NCBITaxon:9606" + }, + "Plant": { + "text": "Plant", + "meaning": "NCBITaxon:47299" + }, + "Bush": { + "text": "Bush", + "is_a": "Plant" + }, + "Canola plant": { + "text": "Canola plant", + "is_a": "Plant" + }, + "Gerranium plant": { + "text": "Gerranium plant", + "meaning": "NCBITaxon:4028", + "is_a": "Plant" + }, + "Tree": { + "text": "Tree", + "is_a": "Plant" + }, + "Poplar tree": { + "text": "Poplar tree", + "is_a": "Tree" + }, + "Willow tree": { + "text": "Willow tree", + "is_a": "Tree" + }, + "Snail": { + "text": "Snail", + "meaning": "FOODON:03412114" + } + } + }, + "host (scientific name) menu": { + "name": "host (scientific name) menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Equus caballus": { + "text": "Equus caballus" + }, + "Homo sapiens": { + "text": "Homo sapiens" + } + } + }, + "host disease menu": { + "name": "host disease menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Colitis": { + "text": "Colitis" + }, + "Acute colitis": { + "text": "Acute colitis", + "is_a": "Colitis" + }, + "Cystic fibrosis": { + "text": "Cystic fibrosis" + }, + "Gastroenteritis": { + "text": "Gastroenteritis" + }, + "Pyelonephritis": { + "text": "Pyelonephritis" + }, + "Acute pyelonephritis": { + "text": "Acute pyelonephritis", + "is_a": "Pyelonephritis" + }, + "Urinary tract infection": { + "text": "Urinary tract infection" + } + } + }, + "sequencing instrument menu": { + "name": "sequencing instrument menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "Illumina": { + "text": "Illumina", + "meaning": "GENEPIO:0100105" + }, + "Illumina Genome Analyzer": { + "text": "Illumina Genome Analyzer", + "meaning": "GENEPIO:0100106", + "is_a": "Illumina" + }, + "Illumina Genome Analyzer II": { + "text": "Illumina Genome Analyzer II", + "meaning": "GENEPIO:0100107", + "is_a": "Illumina Genome Analyzer" + }, + "Illumina Genome Analyzer IIx": { + "text": "Illumina Genome Analyzer IIx", + "meaning": "GENEPIO:0100108", + "is_a": "Illumina Genome Analyzer" + }, + "Illumina HiScanSQ": { + "text": "Illumina HiScanSQ", + "meaning": "GENEPIO:0100109", + "is_a": "Illumina" + }, + "Illumina HiSeq": { + "text": "Illumina HiSeq", + "meaning": "GENEPIO:0100110", + "is_a": "Illumina" + }, + "Illumina HiSeq X": { + "text": "Illumina HiSeq X", + "meaning": "GENEPIO:0100111", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq X Five": { + "text": "Illumina HiSeq X Five", + "meaning": "GENEPIO:0100112", + "is_a": "Illumina HiSeq X" + }, + "Illumina HiSeq X Ten": { + "text": "Illumina HiSeq X Ten", + "meaning": "GENEPIO:0100113", + "is_a": "Illumina HiSeq X" + }, + "Illumina HiSeq 1000": { + "text": "Illumina HiSeq 1000", + "meaning": "GENEPIO:0100114", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 1500": { + "text": "Illumina HiSeq 1500", + "meaning": "GENEPIO:0100115", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 2000": { + "text": "Illumina HiSeq 2000", + "meaning": "GENEPIO:0100116", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 2500": { + "text": "Illumina HiSeq 2500", + "meaning": "GENEPIO:0100117", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 3000": { + "text": "Illumina HiSeq 3000", + "meaning": "GENEPIO:0100118", + "is_a": "Illumina HiSeq" + }, + "Illumina HiSeq 4000": { + "text": "Illumina HiSeq 4000", + "meaning": "GENEPIO:0100119", + "is_a": "Illumina HiSeq" + }, + "Illumina iSeq": { + "text": "Illumina iSeq", + "meaning": "GENEPIO:0100120", + "is_a": "Illumina" + }, + "Illumina iSeq 100": { + "text": "Illumina iSeq 100", + "meaning": "GENEPIO:0100121", + "is_a": "Illumina iSeq" + }, + "Illumina NovaSeq": { + "text": "Illumina NovaSeq", + "meaning": "GENEPIO:0100122", + "is_a": "Illumina" + }, + "Illumina NovaSeq 6000": { + "text": "Illumina NovaSeq 6000", + "meaning": "GENEPIO:0100123", + "is_a": "Illumina NovaSeq" + }, + "Illumina MiniSeq": { + "text": "Illumina MiniSeq", + "meaning": "GENEPIO:0100124", + "is_a": "Illumina" + }, + "Illumina MiSeq": { + "text": "Illumina MiSeq", + "meaning": "GENEPIO:0100125", + "is_a": "Illumina" + }, + "Illumina NextSeq": { + "text": "Illumina NextSeq", + "meaning": "GENEPIO:0100126", + "is_a": "Illumina" + }, + "Illumina NextSeq 500": { + "text": "Illumina NextSeq 500", + "meaning": "GENEPIO:0100127", + "is_a": "Illumina NextSeq" + }, + "Illumina NextSeq 550": { + "text": "Illumina NextSeq 550", + "meaning": "GENEPIO:0100128", + "is_a": "Illumina NextSeq" + }, + "Illumina NextSeq 2000": { + "text": "Illumina NextSeq 2000", + "meaning": "GENEPIO:0100129", + "is_a": "Illumina NextSeq" + }, + "Pacific Biosciences": { + "text": "Pacific Biosciences", + "meaning": "GENEPIO:0100130" + }, + "PacBio RS": { + "text": "PacBio RS", + "meaning": "GENEPIO:0100131", + "is_a": "Pacific Biosciences" + }, + "PacBio RS II": { + "text": "PacBio RS II", + "meaning": "GENEPIO:0100132", + "is_a": "Pacific Biosciences" + }, + "PacBio Sequel": { + "text": "PacBio Sequel", + "meaning": "GENEPIO:0100133", + "is_a": "Pacific Biosciences" + }, + "PacBio Sequel II": { + "text": "PacBio Sequel II", + "meaning": "GENEPIO:0100134", + "is_a": "Pacific Biosciences" + }, + "Ion Torrent": { + "text": "Ion Torrent", + "meaning": "GENEPIO:0100135" + }, + "Ion Torrent PGM": { + "text": "Ion Torrent PGM", + "meaning": "GENEPIO:0100136", + "is_a": "Ion Torrent" + }, + "Ion Torrent Proton": { + "text": "Ion Torrent Proton", + "meaning": "GENEPIO:0100137", + "is_a": "Ion Torrent" + }, + "Ion Torrent S5 XL": { + "text": "Ion Torrent S5 XL", + "meaning": "GENEPIO:0100138", + "is_a": "Ion Torrent" + }, + "Ion Torrent S5": { + "text": "Ion Torrent S5", + "meaning": "GENEPIO:0100139", + "is_a": "Ion Torrent" + }, + "Oxford Nanopore": { + "text": "Oxford Nanopore", + "meaning": "GENEPIO:0100140" + }, + "Oxford Nanopore GridION": { + "text": "Oxford Nanopore GridION", + "meaning": "GENEPIO:0100141", + "is_a": "Oxford Nanopore" + }, + "Oxford Nanopore MinION": { + "text": "Oxford Nanopore MinION", + "meaning": "GENEPIO:0100142", + "is_a": "Oxford Nanopore" + }, + "Oxford Nanopore PromethION": { + "text": "Oxford Nanopore PromethION", + "meaning": "GENEPIO:0100143", + "is_a": "Oxford Nanopore" + }, + "BGI Genomics": { + "text": "BGI Genomics", + "meaning": "GENEPIO:0100144" + }, + "BGI Genomics BGISEQ-500": { + "text": "BGI Genomics BGISEQ-500", + "meaning": "GENEPIO:0100145", + "is_a": "BGI Genomics" + }, + "MGI": { + "text": "MGI", + "meaning": "GENEPIO:0100146" + }, + "MGI DNBSEQ-T7": { + "text": "MGI DNBSEQ-T7", + "meaning": "GENEPIO:0100147", + "is_a": "MGI" + }, + "MGI DNBSEQ-G400": { + "text": "MGI DNBSEQ-G400", + "meaning": "GENEPIO:0100148", + "is_a": "MGI" + }, + "MGI DNBSEQ-G400 FAST": { + "text": "MGI DNBSEQ-G400 FAST", + "meaning": "GENEPIO:0100149", + "is_a": "MGI" + }, + "MGI DNBSEQ-G50": { + "text": "MGI DNBSEQ-G50", + "meaning": "GENEPIO:0100150", + "is_a": "MGI" + } + } + }, + "amplicon pcr primer list menu": { + "name": "amplicon pcr primer list menu", + "from_schema": "https://example.com/AMBR", + "permissible_values": { + "27F": { + "text": "27F", + "meaning": "GENEPIO:0100640" + }, + "357F": { + "text": "357F", + "meaning": "GENEPIO:0100645" + }, + "543R": { + "text": "543R", + "meaning": "GENEPIO:0100642" + }, + "926R": { + "text": "926R", + "meaning": "GENEPIO:0100643" + }, + "1492R": { + "text": "1492R", + "meaning": "GENEPIO:0100644" + }, + "ITS1F": { + "text": "ITS1F", + "meaning": "GENEPIO:0100668" + }, + "ITS3F": { + "text": "ITS3F", + "meaning": "GENEPIO:0100646" + }, + "ITS4F": { + "text": "ITS4F", + "meaning": "GENEPIO:0100647" + }, + "ITS4R": { + "text": "ITS4R", + "meaning": "GENEPIO:0100669" + } + } + } + }, + "slots": { + "isolate ID": { + "name": "isolate ID", + "description": "The user-defined identifier for the isolate, as provided by the laboratory that originally isolated the isolate.", + "title": "isolate ID", + "comments": [ + "Provide the identifier created by the lab for the organism after isolation. This value maps to the \"Strain ID#\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "SA01" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100456", + "range": "WhitespaceMinimizedString", + "required": true + }, + "alternative isolate ID": { + "name": "alternative isolate ID", + "description": "An alternative isolate ID assigned to the isolate by another organization.", + "title": "alternative isolate ID", + "comments": [ + "Provide the identifier that represents the site code, source and/or patient identifier, media type, strain identifier, colony number, growth condition and dilution factor as a single code. This value corresponds maps to the \"Label ID\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "3411301" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100457", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "specimen collector sample ID": { + "name": "specimen collector sample ID", + "description": "The user-defined name for the sample.", + "title": "specimen collector sample ID", + "comments": [ + "Provide the sample ID provided by the original sample collector. This value is different from the \"isolate_ID\" as it represents the original material sampled rather than the organism that was isolated from the sampled material. This identifier may or may not be available." + ], + "examples": [ + { + "value": "Lake_Louise_Water23" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001123", + "identifier": true, + "range": "WhitespaceMinimizedString" + }, + "sample collected by": { + "name": "sample collected by", + "description": "The name of the agency that collected the original sample.", + "title": "sample collected by", + "comments": [ + "The name of the institution of the original sample collector should be written out in full, (no abbreviations, with minor exceptions) and be consistent across multiple submissions e.g. University of Calgary, Alberta Health Services. The sample collector specified is at the discretion of the data provider (i.e. may be hospital, provincial public health lab, or other)." + ], + "examples": [ + { + "value": "University of Calgary" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001153", + "recommended": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sample collection project name": { + "name": "sample collection project name", + "description": "The name of the project/initiative/program for which the sample was collected.", + "title": "sample collection project name", + "comments": [ + "Provide the name of the project and/or the project ID here. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "Children's Hospital biofilm study (A3-701-01)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100429", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "sample collector contact email": { + "name": "sample collector contact email", + "description": "The email address of the contact responsible for follow-up regarding the sample.", + "title": "sample collector contact email", + "comments": [ + "The email address can represent a specific individual or lab e.g. johnnyblogs@lab.ca, or RespLab@lab.ca" + ], + "examples": [ + { + "value": "RespLab@lab.ca" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001156", + "range": "WhitespaceMinimizedString", + "pattern": "^\\S+@\\S+\\.\\S+$" + }, + "sample collector contact address": { + "name": "sample collector contact address", + "description": "The mailing address of the agency submitting the sample.", + "title": "sample collector contact address", + "comments": [ + "The mailing address should be in the format: Street number and name, City, Province/Territory, Postal Code, Country" + ], + "examples": [ + { + "value": "655 Lab St, Vancouver, British Columbia, V5N 2A2, Canada" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001158", + "range": "WhitespaceMinimizedString" + }, + "sample collection date": { + "name": "sample collection date", + "description": "The date on which the sample was collected.", + "title": "sample collection date", + "todos": [ + ">=2019-10-01", + "<={today}" + ], + "comments": [ + "The date should be provided in ISO 8601 standard format \"YYYY-MM-DD\"." + ], + "examples": [ + { + "value": "2020-03-16" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001174", + "recommended": true, + "any_of": [ + { + "range": "date" + }, + { + "range": "null value menu" + } + ] + }, + "sample received date": { + "name": "sample received date", + "description": "The date on which the sample was received.", + "title": "sample received date", + "comments": [ + "The date should be provided in ISO 8601 standard format \"YYYY-MM-DD\"." + ], + "examples": [ + { + "value": "2020-03-20" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001179", + "any_of": [ + { + "range": "date" + }, + { + "range": "null value menu" + } + ] + }, + "geo_loc_name (country)": { + "name": "geo_loc_name (country)", + "description": "The country where the sample was collected.", + "title": "geo_loc_name (country)", + "comments": [ + "Provide the country name from the controlled vocabulary provided." + ], + "examples": [ + { + "value": "Canada" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001181", + "recommended": true, + "any_of": [ + { + "range": "geo_loc_name (country) menu" + }, + { + "range": "null value menu" + } + ] + }, + "geo_loc_name (state/province/territory)": { + "name": "geo_loc_name (state/province/territory)", + "description": "The province/territory where the sample was collected.", + "title": "geo_loc_name (state/province/territory)", + "comments": [ + "Provide the province/territory name from the controlled vocabulary provided." + ], + "examples": [ + { + "value": "Saskatchewan" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001185", + "recommended": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "geo_loc_name (city)": { + "name": "geo_loc_name (city)", + "description": "The city where the sample was collected.", + "title": "geo_loc_name (city)", + "comments": [ + "Provide the city name. Use this look-up service to identify the standardized term: https://www.ebi.ac.uk/ols/ontologies/gaz" + ], + "examples": [ + { + "value": "Medicine Hat" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001189", + "range": "WhitespaceMinimizedString" + }, + "geo_loc_name (site)": { + "name": "geo_loc_name (site)", + "description": "The name of a specific geographical location e.g. Credit River (rather than river).", + "title": "geo_loc_name (site)", + "comments": [ + "Provide the name of the specific geographical site using a specific noun (a word that names a certain place, thing)." + ], + "examples": [ + { + "value": "Lake Louise" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100436", + "range": "geo_loc_name (site) menu" + }, + "organism": { + "name": "organism", + "description": "Taxonomic name of the organism.", + "title": "organism", + "comments": [ + "Provide the confirmed taxonomic name of the species. This value maps to the \"Recommended identification\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Staphylococcus aureus" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001191", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "purpose of sampling": { + "name": "purpose of sampling", + "description": "The reason that the sample was collected.", + "title": "purpose of sampling", + "comments": [ + "The reason a sample was collected may provide information about potential biases in sampling strategy. Provide the purpose of sampling from the picklist in the template. The reason why a sample was originally collected may differ from the reason why it was selected for sequencing, which should be indicated in the \"purpose of sequencing\" field. Motivation for sampling may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Targeted surveillance" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001198", + "recommended": true, + "any_of": [ + { + "range": "purpose of sampling menu" + }, + { + "range": "null value menu" + } + ] + }, + "purpose of sampling details": { + "name": "purpose of sampling details", + "description": "The description of why the sample was collected, providing specific details.", + "title": "purpose of sampling details", + "comments": [ + "Provide an expanded description of why the sample was collected using free text. The description may include the importance of the sample for a particular investigation/surveillance activity/research question. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "ProvLab/IPC routine monitoring" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001200", + "recommended": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "original sample description": { + "name": "original sample description", + "description": "The original sample description provided by the sample collector.", + "title": "original sample description", + "comments": [ + "Provide the sample description provided by the original sample collector or the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file. The original description is useful as it may provide further details, or can be used to clarify higher level classifications." + ], + "examples": [ + { + "value": "ACH coupons-water study, isolates 2010, 2011 see appendix 3 (Alberta Childrens Hospital)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100439", + "range": "WhitespaceMinimizedString" + }, + "anatomical material": { + "name": "anatomical material", + "description": "A substance obtained from an anatomical part of an organism e.g. tissue, blood.", + "title": "anatomical material", + "comments": [ + "Provide a descriptor if an anatomical material was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Wound tissue (injury)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001211", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "anatomical material menu" + }, + { + "range": "null value menu" + } + ] + }, + "anatomical part": { + "name": "anatomical part", + "description": "An anatomical part of an organism e.g. oropharynx.", + "title": "anatomical part", + "comments": [ + "Provide a descriptor if an anatomical part was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Nasal cavity" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001214", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "anatomical part menu" + }, + { + "range": "null value menu" + } + ] + }, + "body product": { + "name": "body product", + "description": "A substance excreted/secreted from an organism e.g. feces, urine, sweat.", + "title": "body product", + "comments": [ + "Provide a descriptor if a body product was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Feces" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001216", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "body product menu" + }, + { + "range": "null value menu" + } + ] + }, + "environmental material": { + "name": "environmental material", + "description": "A substance obtained from the natural or man-made environment e.g. soil, water, sewage.", + "title": "environmental material", + "comments": [ + "Provide a descriptor if an environmental material was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Bandage" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001223", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "environmental material menu" + }, + { + "range": "null value menu" + } + ] + }, + "environmental site": { + "name": "environmental site", + "description": "An environmental location may describe a site in the natural or built environment e.g. contact surface, metal can, hospital, wet market, bat cave.", + "title": "environmental site", + "comments": [ + "Provide a descriptor if an environmental site was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Hospital" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001232", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "environmental site menu" + }, + { + "range": "null value menu" + } + ] + }, + "collection device": { + "name": "collection device", + "description": "The instrument or container used to collect the sample e.g. swab.", + "title": "collection device", + "comments": [ + "Provide a descriptor if a device was used for sampling. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Swab" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001234", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "collection device menu" + }, + { + "range": "null value menu" + } + ] + }, + "collection method": { + "name": "collection method", + "description": "The process used to collect the sample e.g. phlebotamy, necropsy.", + "title": "collection method", + "comments": [ + "Provide a descriptor if a collection method was used for sampling. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Biopsy" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001241", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "collection method menu" + }, + { + "range": "null value menu" + } + ] + }, + "collection protocol": { + "name": "collection protocol", + "description": "The name and version of a particular protocol used for sampling.", + "title": "collection protocol", + "comments": [ + "Free text. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Collection_protocol_Children's Hospital biofilm study (A3-701-01)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001243", + "range": "WhitespaceMinimizedString" + }, + "specimen processing": { + "name": "specimen processing", + "description": "Any processing applied to the sample during or after receiving the sample.", + "title": "specimen processing", + "comments": [ + "If multiple PCR products were generated from the isolate using different primer sets, indicate that the sequence records represents the same isolate by selecting \"Biological replicate\" in the \"specimen processing\" field. Every different sequence experiment should have its own record (i.e. if different amplicons have the same sequence but were generated using different primer sets, these should be stored as separate entries/lines in the spreadsheet). Information about replicates may be available in the \"Top-hit taxon (taxa)\" or \"Trimmed Ribosomal Sequence\" fields if there are multiple values for the same \"Strain ID#\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Biological replicate" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001253", + "multivalued": true, + "recommended": true, + "any_of": [ + { + "range": "specimen processing menu" + }, + { + "range": "null value menu" + } + ] + }, + "specimen processing details": { + "name": "specimen processing details", + "description": "Detailed information regarding the processing applied to a sample during or after receiving the sample.", + "title": "specimen processing details", + "comments": [ + "Provide a free text description of any processing details applied to a sample. Information about replicates may be available in the \"Top-hit taxon (taxa)\" or \"Trimmed Ribosomal Sequence\" fields if there are multiple values for the same \"Strain ID#\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Multiple amplicons generated for isolate SA32 using different primer sets" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100311", + "range": "WhitespaceMinimizedString" + }, + "strain": { + "name": "strain", + "description": "The strain identifier.", + "title": "strain", + "comments": [ + "Provide the strain of the isolate. This value maps to the \"Strain\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "CL10" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100455", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "taxonomic identification method": { + "name": "taxonomic identification method", + "description": "The type of planned process by which an organismal entity is associated with a taxon or taxa.", + "title": "taxonomic identification method", + "comments": [ + "Provide the type of method used to determine the taxonomic identity of the organism by selecting a value from the pick list. For the AMBR Project, the \"16S ribosomal gene sequencing assay\" value will be the most appropriate. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "16S ribosomal gene sequencing assay" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100583", + "required": true, + "any_of": [ + { + "range": "taxonomic identification method menu" + }, + { + "range": "null value menu" + } + ] + }, + "taxonomic identification method details": { + "name": "taxonomic identification method details", + "description": "The details of the process used to determine the taxonomic identification of an organism.", + "title": "taxonomic identification method details", + "comments": [ + "Provide the criteria used for 16S sequencing taxonomic determination by selection a value from the pick list. These criteria are specific to the AMBR project and so do not correspond with standardized criteria in any ontology. The pick list is strictly for providing consistency in records rather than implementing community data standards. If another method was used for the taxonomic determination, leave blank. This value maps to the information stored in the \"ID Category*\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100584", + "required": true, + "any_of": [ + { + "range": "taxonomic identification method details menu" + }, + { + "range": "null value menu" + } + ] + }, + "incubation temperature value": { + "name": "incubation temperature value", + "description": "An environmental datum specifying the temperature at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature value", + "comments": [ + "Provide the temperature at which the isolate was isolated. This value maps to the information stored in the \"Incubation temperature\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "37" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100617", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "incubation temperature unit": { + "name": "incubation temperature unit", + "description": "An environmental datum specifying the temperature unit at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature unit", + "comments": [ + "Select the temperature unit from the pick list. This value maps to the information stored in the \"Incubation temperature\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Degree Celsius" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100618", + "required": true, + "any_of": [ + { + "range": "incubation temperature unit menu" + }, + { + "range": "null value menu" + } + ] + }, + "isolation medium": { + "name": "isolation medium", + "description": "An isolation medium is a culture medium which has the disposition to encourage growth of particular bacteria to the exclusion of others in the same growth environment.", + "title": "isolation medium", + "comments": [ + "Select the isolation medium from the pick list. This value maps to the information stored in the \"Incubation media\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Brain heart infusion (BHI)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0002107", + "required": true, + "any_of": [ + { + "range": "isolation medium menu" + }, + { + "range": "null value menu" + } + ] + }, + "isolate storage location": { + "name": "isolate storage location", + "description": "An isolate datum specifying the location of where an isolate is stored e.g. in a particular freezer, on a particular shelf", + "title": "isolate storage location", + "comments": [ + "Enter the freezer storage location of the isolate as the \"freezer number-shelf number-box number-unit number\" e.g. FR1-R3-B1-S01. This value maps to the information stored in the \"Spot code\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "FR1-R3-B1-S01" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100619", + "range": "WhitespaceMinimizedString", + "required": true + }, + "cellular respiration type": { + "name": "cellular respiration type", + "description": "An isolate datum specifying the type of cellular respiration process used by the organism.", + "title": "cellular respiration type", + "comments": [ + "Select the respiration type from the pick list. This value maps to the information stored in the \"Aerobic/Anaerobic\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Aerobic respiration" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100620", + "required": true, + "any_of": [ + { + "range": "cellular respiration type menu" + }, + { + "range": "null value menu" + } + ] + }, + "host (common name)": { + "name": "host (common name)", + "description": "The commonly used name of the host.", + "title": "host (common name)", + "comments": [ + "Common name is required if there was a host. Both common anime and scientific name can be provided, if known. Use terms from the pick lists in the template. Hosts can be animals (including humans) and plants. Examples of common names are “Human” and “Canola plant”. Examples of scientific names are “Homo sapiens” and “Equus caballus”. If the sample was environmental, select \"Not Applicable\". Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Human" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001386", + "required": true, + "any_of": [ + { + "range": "host (common name) menu" + }, + { + "range": "null value menu" + } + ] + }, + "host (scientific name)": { + "name": "host (scientific name)", + "description": "The taxonomic, or scientific name of the host.", + "title": "host (scientific name)", + "comments": [ + "Common name or scientific name are required if there was a host. Both can be provided, if known. Use terms from the pick lists in the template. Hosts can be animals (including humans) and plants. Common name e.g. Human, Canola plant. If the sample was environmental, select \"Not Applicable\". Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Homo sapiens" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001387", + "any_of": [ + { + "range": "host (scientific name) menu" + }, + { + "range": "null value menu" + } + ] + }, + "host disease": { + "name": "host disease", + "description": "The name of the disease experienced by the host.", + "title": "host disease", + "comments": [ + "If the sample was obtained from a host with a known disease, provide the name of the disease by seleting a value from the picklist. Information for populating this field may be available in the \"Source of Isolation\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Cystic fibrosis" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001391", + "any_of": [ + { + "range": "host disease menu" + }, + { + "range": "null value menu" + } + ] + }, + "sequenced by": { + "name": "sequenced by", + "description": "The name of the agency, organization or institution responsible for sequencing the isolate's genome.", + "title": "sequenced by", + "comments": [ + "Provide the name of the organization that performed the sequencing in full (avoid abbreviations). If the information is unknown or cannot be provided, leave blank or provide a null value. For the AMBR Project, the value is most likely the \"University of Calgary\"." + ], + "examples": [ + { + "value": "University of Calgary" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100416", + "any_of": [ + { + "range": "sequenced_by menu" + }, + { + "range": "null value menu" + } + ] + }, + "sequenced by laboratory name": { + "name": "sequenced by laboratory name", + "description": "The specific laboratory affiliation of the responsible for sequencing the isolate's genome.", + "title": "sequenced by laboratory name", + "comments": [ + "Provide the name of the specific laboratory that that performed the sequencing in full (avoid abbreviations). If the information is unknown or cannot be provided, leave blank or provide a null value. For the AMBR Project, the value is most likely the \"Harrison Lab\"." + ], + "examples": [ + { + "value": "Harrison Lab" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100470", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact name": { + "name": "sequenced by contact name", + "description": "The name or title of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact name", + "comments": [ + "Provide the name of an individual or their job title. As personnel turnover may render the contact's name obsolete, it is more prefereable to provide a job title for ensuring accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "Joe Harrison" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100471", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact email": { + "name": "sequenced by contact email", + "description": "The email address of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact email", + "comments": [ + "Provide the email associated with the listed contact. As personnel turnover may render an individual's email obsolete, it is more prefereable to provide an address for a position or lab, to ensure accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value." + ], + "examples": [ + { + "value": "jjharris@ucalgary.ca" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100422", + "range": "WhitespaceMinimizedString" + }, + "purpose of sequencing": { + "name": "purpose of sequencing", + "description": "The reason that the sample was sequenced.", + "title": "purpose of sequencing", + "comments": [ + "The reason why a sample was originally collected may differ from the reason why it was selected for sequencing. The reason a sample was sequenced may provide information about potential biases in sequencing strategy. Provide the purpose of sequencing from the picklist in the template. The reason for sample collection should be indicated in the \"purpose of sampling\" field." + ], + "examples": [ + { + "value": "Research" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001445", + "any_of": [ + { + "range": "purpose of sequencing menu" + }, + { + "range": "null value menu" + } + ] + }, + "purpose of sequencing details": { + "name": "purpose of sequencing details", + "description": "The description of why the sample was sequenced providing specific details.", + "title": "purpose of sequencing details", + "comments": [ + "Provide an expanded description of why the sample was sequenced using free text. This information can provide details about why the sample source might contain antibiotic potentiators." + ], + "examples": [ + { + "value": "Screening for antibiotic potentiators in Cystic fibrosis disease contexts." + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001446", + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sequencing date": { + "name": "sequencing date", + "description": "The date the sample was sequenced.", + "title": "sequencing date", + "todos": [ + ">={sample collection date}" + ], + "comments": [ + "The date should be provided in ISO 8601 standard format \"YYYY-MM-DD\"." + ], + "examples": [ + { + "value": "2020-06-22" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001447", + "any_of": [ + { + "range": "date" + }, + { + "range": "null value menu" + } + ] + }, + "library ID": { + "name": "library ID", + "description": "The user-specified identifier for the library prepared for sequencing.", + "title": "library ID", + "comments": [ + "Provide the name of the run. This value maps to information in the \"Sequencing Batch #\" field Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "1876515_SA01_Plate 02" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001448", + "range": "WhitespaceMinimizedString" + }, + "sequencing instrument": { + "name": "sequencing instrument", + "description": "The model of the sequencing instrument used.", + "title": "sequencing instrument", + "comments": [ + "Select a sequencing instrument from the picklist provided in the template." + ], + "examples": [ + { + "value": "Oxford Nanopore MinION" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001452", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "sequencing instrument menu" + }, + { + "range": "null value menu" + } + ] + }, + "sequencing protocol name": { + "name": "sequencing protocol name", + "description": "The name and version number of the sequencing protocol used.", + "title": "sequencing protocol name", + "comments": [ + "Provide the name and version of the sequencing protocol e.g. 1D_DNA_MinION" + ], + "examples": [ + { + "value": "https://www.protocols.io/view/covid-19-artic-v3-illumina-library-construction-an-bibtkann" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001453", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "amplicon pcr primer list": { + "name": "amplicon pcr primer list", + "description": "An information content entity specifying a list of primers used for amplicon sequencing.", + "title": "amplicon pcr primer list", + "comments": [ + "Select the primers used to generate the ribosomal 16S or 23S amplicon for sequencing from the pick list. This value maps to the information in the \"Primers Used for sequencing\" field Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "27F" + }, + { + "value": "1492R" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100623", + "multivalued": true, + "required": true, + "any_of": [ + { + "range": "amplicon pcr primer list menu" + }, + { + "range": "null value menu" + } + ] + }, + "input file name": { + "name": "input file name", + "description": "The name of the file containing the sequence data to be analysed.", + "title": "input file name", + "comments": [ + "Enter the file name of the target gene sequence to be analyzed." + ], + "examples": [ + { + "value": "ambr_staph_ABC_123.fasta" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002874", + "range": "WhitespaceMinimizedString" + }, + "reference accession": { + "name": "reference accession", + "description": "An identifier that specifies an individual sequence record in a public sequence repository.", + "title": "reference accession", + "comments": [ + "Enter the EZBioCloud gene accession that most closely matches the sequence being analyzed. This value maps to the information in the \"Accession No(s).\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "FR821777" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002885", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "bioinformatics protocol": { + "name": "bioinformatics protocol", + "description": "A description of the overall bioinformatics strategy used.", + "title": "bioinformatics protocol", + "comments": [ + "Provide the name of the protocol used to perform the species identification (i.e. the name of the protocol to perform the EZBioCloud search)." + ], + "examples": [ + { + "value": "EZBioCloud_searchprotocol_2023.txt" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001489", + "range": "WhitespaceMinimizedString" + }, + "reference database name": { + "name": "reference database name", + "description": "An identifier of a biological or bioinformatics database.", + "title": "reference database name", + "comments": [ + "Select the reference database name from the pick list. For the AMBR Project, the reference database will be EZBioCloud." + ], + "examples": [ + { + "value": "EZBioCloud" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002883", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "reference database version": { + "name": "reference database version", + "description": "The version of the database containing the reference sequences used for analysis.", + "title": "reference database version", + "comments": [ + "Enter the sequence search date as the version of EZBioCloud used. Record the date in ISO 8601 format i.e. YYYY_MM_DD. This value maps to the information in the \"Search date\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "2021-05-23" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002884", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "coverage (percentage)": { + "name": "coverage (percentage)", + "description": "The percentage of the reference sequence covered by the sequence of interest.", + "title": "coverage (percentage)", + "comments": [ + "Enter the completeness value. Do not include any symbols e.g. %. This value maps to \"Completeness (%)\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "98.2" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002880", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sequence identity percentage": { + "name": "sequence identity percentage", + "description": "Sequence identity is the number (%) of matches (identical characters) in positions from an alignment of two molecular sequences.", + "title": "sequence identity percentage", + "comments": [ + "Enter the identity value. Do not include any symbols e.g. %. This value maps to \"Similarity (%)\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "99" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "OBI:0002882", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "sequence identity (variance ratio)": { + "name": "sequence identity (variance ratio)", + "description": "The ratio of the reference sequence not covered by the sequence of interest.", + "title": "sequence identity (variance ratio)", + "comments": [ + "Enter the number of different positions in the target sequence compared to the reference sequence length, expressed as a ratio. This value maps to \"Variation ratio\" in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "1/420" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100624", + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "top-hit taxon determination": { + "name": "top-hit taxon determination", + "description": "The taxon derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit taxon determination", + "comments": [ + "Enter the EZBioCloud taxon best-hit. This value maps to the information in the \"Top-hit taxon (taxa)\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Staphylococcus argenteus" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100625", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "top-hit strain determination": { + "name": "top-hit strain determination", + "description": "The strain designation derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit strain determination", + "comments": [ + "Enter the EZBioCloud strain best-hit. This value maps to the information in the \"Top-hit strain(s)\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "MSHR1132(T)" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100648", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "trimmed ribosomal gene sequence": { + "name": "trimmed ribosomal gene sequence", + "description": "The results of a data transformation of sequence data in which (e.g., low quality) read bases are removed to produce a trimmed ribosomal RNA sequence.", + "title": "trimmed ribosomal gene sequence", + "comments": [ + "Enter the sequence of the trimmed ribosomal gene sequence. This value maps to the sequence in the \"Trimmed Ribosomal Sequence\" field in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "TGCAAGTCGAGCGAACGGACGAGAAGCTTGCTTCTCTGATGTTAGCGGCGGACGSGTGAGTAACACGTGGATAACCTACCTATAAGACTGGGATAACTTCGGGAAACCGGAGCTAATACCGGATAATATTTTGAACCGCATGGTTCAAAAGTGAAAGACGGTCTTGCTGTCACTTATAGATGGATCCGCGCTGCATTAGCTAGTTGGTAAGGTAACGGCTTACCAAGGCAACGATGCATAGCCGACCTGAGAGGGTGATCGGCCACACTGGAACTGAGACACGGTCCAGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCCGCAATGGGCGAAAGCCTGACGGAGCAACGCCGCGTGAGTGATGAAGGTCTTCGGATCGTAAAACTCTGTTATTAGGGAAGAACATATGTGTAAGTAACTGTGCACATCTTGACGGTACCTAATCAGAAAGCCACGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGAAAACTTGAGTGCAGAAGAGGAAAGTGGAATTCCATGTGTAGCGGTGAAATGCGCAGAGATATGGAGGAACACCAGTGGCGAAGGCGACTTTCTGGTCTGTAACTGACGCTGATGTGCGAAAGCGTGGGGATCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAGTGCTAAGTGTTAGGGGGTTTCCGCCCCTTAGTGCTGCAGCTAACGCATTAAGCACTCCGCCTGGGGAGTACGACCGCAAGGTTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCAAATCTTGACATCCTTTGACAACTCTAGAGATAGAGCCTTCCCCTTCGGGGGACAAAGTGACAGGTGGTGCATGGTTGTCGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTAAGCTTAGTTGCCATCATTAAGTTGGGCACTCTAAGTTGACTGCCGGTGACAAACCGGAGGAAGGTGGGGATGACGTCAAATCATCATGCCCCTTATGATTTGGGCTACACACGTGCTACAATGGACAATACAAAGGGCAGCGAAACCGCGAGGTCAAGCAAATCCCATAAAGTTGTTCTCAGTTCGGATTGTAGTCTGCAACTCGACTACATGAAGCTGGAATCGCTAGTAATCGTAGATCAGCATGCTACGGTGAATACGTTCCCGGGTCTTGTACACACCGCCCGTCACACCACGAGAGTTTGTAACACCCGAAGCCGGTGGAGTAACCTTTTAGGAGCTAGCCGTCGAAG" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100626", + "required": true, + "any_of": [ + { + "range": "WhitespaceMinimizedString" + }, + { + "range": "null value menu" + } + ] + }, + "bioinformatics analysis details": { + "name": "bioinformatics analysis details", + "description": "Any notes regarding the bioinformatics analysis.", + "title": "bioinformatics analysis details", + "comments": [ + "Enter any notes regarding the analysis as free text. This value maps to the \"Comment\" field in the information in the Alberta Microbiota Repository (AMBR) Master file." + ], + "examples": [ + { + "value": "Pure-June 09-2022,Tube replaced by Rahgavi" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0100627", + "range": "WhitespaceMinimizedString" + }, + "authors": { + "name": "authors", + "description": "Names of individuals contributing to the processes of sample collection, sequence generation, analysis, and data submission.", + "title": "authors", + "comments": [ + "Include the first and last names of all individuals that should be attributed, separated by a comma." + ], + "examples": [ + { + "value": "Rahgavi Poopalaraj, Shirin Afroj, Joe Harrison" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001517", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "DataHarmonizer provenance": { + "name": "DataHarmonizer provenance", + "description": "The DataHarmonizer software and template version provenance.", + "title": "DataHarmonizer provenance", + "comments": [ + "The current software and template version information will be automatically generated in this field after the user utilizes the \"validate\" function. This information will be generated regardless as to whether the row is valid of not." + ], + "examples": [ + { + "value": "DataHarmonizer v1.4.3, AMBR v1.0.0" + } + ], + "from_schema": "https://example.com/AMBR", + "slot_uri": "GENEPIO:0001518", + "range": "Provenance" + } + }, + "classes": { + "dh_interface": { + "name": "dh_interface", + "description": "A DataHarmonizer interface", + "from_schema": "https://example.com/AMBR" + }, + "AMBR": { + "name": "AMBR", + "description": "The AMBR Project, led by the Harrison Lab at the University of Calgary, is an interdisciplinary study aimed at using 16S sequencing as part of a culturomics platform to identify antibiotic potentiators from the natural products of microbiota. The AMBR DataHarmonizer template was designed to standardize contextual data associated with the isolate repository from this work.", + "from_schema": "https://example.com/AMBR", + "is_a": "dh_interface", + "slot_usage": { + "isolate ID": { + "name": "isolate ID", + "rank": 1, + "slot_group": "Database Identifiers" + }, + "alternative isolate ID": { + "name": "alternative isolate ID", + "rank": 2, + "slot_group": "Database Identifiers" + }, + "specimen collector sample ID": { + "name": "specimen collector sample ID", + "rank": 3, + "slot_group": "Database Identifiers" + }, + "sample collected by": { + "name": "sample collected by", + "rank": 4, + "slot_group": "Sample collection and processing" + }, + "sample collection project name": { + "name": "sample collection project name", + "rank": 5, + "slot_group": "Sample collection and processing" + }, + "sample collector contact email": { + "name": "sample collector contact email", + "rank": 6, + "slot_group": "Sample collection and processing" + }, + "sample collector contact address": { + "name": "sample collector contact address", + "rank": 7, + "slot_group": "Sample collection and processing" + }, + "sample collection date": { + "name": "sample collection date", + "rank": 8, + "slot_group": "Sample collection and processing" + }, + "sample received date": { + "name": "sample received date", + "rank": 9, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (country)": { + "name": "geo_loc_name (country)", + "rank": 10, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (state/province/territory)": { + "name": "geo_loc_name (state/province/territory)", + "rank": 11, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (city)": { + "name": "geo_loc_name (city)", + "rank": 12, + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (site)": { + "name": "geo_loc_name (site)", + "rank": 13, + "slot_group": "Sample collection and processing" + }, + "organism": { + "name": "organism", + "rank": 14, + "slot_group": "Sample collection and processing" + }, + "purpose of sampling": { + "name": "purpose of sampling", + "rank": 15, + "slot_group": "Sample collection and processing" + }, + "purpose of sampling details": { + "name": "purpose of sampling details", + "rank": 16, + "slot_group": "Sample collection and processing" + }, + "original sample description": { + "name": "original sample description", + "rank": 17, + "slot_group": "Sample collection and processing" + }, + "anatomical material": { + "name": "anatomical material", + "rank": 18, + "slot_group": "Sample collection and processing" + }, + "anatomical part": { + "name": "anatomical part", + "rank": 19, + "slot_group": "Sample collection and processing" + }, + "body product": { + "name": "body product", + "rank": 20, + "slot_group": "Sample collection and processing" + }, + "environmental material": { + "name": "environmental material", + "rank": 21, + "slot_group": "Sample collection and processing" + }, + "environmental site": { + "name": "environmental site", + "rank": 22, + "slot_group": "Sample collection and processing" + }, + "collection device": { + "name": "collection device", + "rank": 23, + "slot_group": "Sample collection and processing" + }, + "collection method": { + "name": "collection method", + "rank": 24, + "slot_group": "Sample collection and processing" + }, + "collection protocol": { + "name": "collection protocol", + "rank": 25, + "slot_group": "Sample collection and processing" + }, + "specimen processing": { + "name": "specimen processing", + "rank": 26, + "slot_group": "Sample collection and processing" + }, + "specimen processing details": { + "name": "specimen processing details", + "rank": 27, + "slot_group": "Sample collection and processing" + }, + "strain": { + "name": "strain", + "rank": 28, + "slot_group": "Strain and isolation information" + }, + "taxonomic identification method": { + "name": "taxonomic identification method", + "rank": 29, + "slot_group": "Strain and isolation information" + }, + "taxonomic identification method details": { + "name": "taxonomic identification method details", + "rank": 30, + "slot_group": "Strain and isolation information" + }, + "incubation temperature value": { + "name": "incubation temperature value", + "rank": 31, + "slot_group": "Strain and isolation information" + }, + "incubation temperature unit": { + "name": "incubation temperature unit", + "rank": 32, + "slot_group": "Strain and isolation information" + }, + "isolation medium": { + "name": "isolation medium", + "rank": 33, + "slot_group": "Strain and isolation information" + }, + "isolate storage location": { + "name": "isolate storage location", + "rank": 34, + "slot_group": "Strain and isolation information" + }, + "cellular respiration type": { + "name": "cellular respiration type", + "rank": 35, + "slot_group": "Strain and isolation information" + }, + "host (common name)": { + "name": "host (common name)", + "rank": 36, + "slot_group": "Host Information" + }, + "host (scientific name)": { + "name": "host (scientific name)", + "rank": 37, + "slot_group": "Host Information" + }, + "host disease": { + "name": "host disease", + "rank": 38, + "slot_group": "Host Information" + }, + "sequenced by": { + "name": "sequenced by", + "rank": 39, + "slot_group": "Sequencing" + }, + "sequenced by laboratory name": { + "name": "sequenced by laboratory name", + "rank": 40, + "slot_group": "Sequencing" + }, + "sequenced by contact name": { + "name": "sequenced by contact name", + "rank": 41, + "slot_group": "Sequencing" + }, + "sequenced by contact email": { + "name": "sequenced by contact email", + "rank": 42, + "slot_group": "Sequencing" + }, + "purpose of sequencing": { + "name": "purpose of sequencing", + "rank": 43, + "slot_group": "Sequencing" + }, + "purpose of sequencing details": { + "name": "purpose of sequencing details", + "rank": 44, + "slot_group": "Sequencing" + }, + "sequencing date": { + "name": "sequencing date", + "rank": 45, + "slot_group": "Sequencing" + }, + "library ID": { + "name": "library ID", + "rank": 46, + "slot_group": "Sequencing" + }, + "sequencing instrument": { + "name": "sequencing instrument", + "rank": 47, + "slot_group": "Sequencing" + }, + "sequencing protocol name": { + "name": "sequencing protocol name", + "rank": 48, + "slot_group": "Sequencing" + }, + "amplicon pcr primer list": { + "name": "amplicon pcr primer list", + "rank": 49, + "slot_group": "Sequencing" + }, + "input file name": { + "name": "input file name", + "rank": 50, + "slot_group": "Bioinformatics and QC metrics" + }, + "reference accession": { + "name": "reference accession", + "rank": 51, + "slot_group": "Bioinformatics and QC metrics" + }, + "bioinformatics protocol": { + "name": "bioinformatics protocol", + "rank": 52, + "slot_group": "Bioinformatics and QC metrics" + }, + "reference database name": { + "name": "reference database name", + "rank": 53, + "slot_group": "Bioinformatics and QC metrics" + }, + "reference database version": { + "name": "reference database version", + "rank": 54, + "slot_group": "Bioinformatics and QC metrics" + }, + "coverage (percentage)": { + "name": "coverage (percentage)", + "rank": 55, + "slot_group": "Bioinformatics and QC metrics" + }, + "sequence identity percentage": { + "name": "sequence identity percentage", + "rank": 56, + "slot_group": "Bioinformatics and QC metrics" + }, + "sequence identity (variance ratio)": { + "name": "sequence identity (variance ratio)", + "rank": 57, + "slot_group": "Bioinformatics and QC metrics" + }, + "top-hit taxon determination": { + "name": "top-hit taxon determination", + "rank": 58, + "slot_group": "Bioinformatics and QC metrics" + }, + "top-hit strain determination": { + "name": "top-hit strain determination", + "rank": 59, + "slot_group": "Bioinformatics and QC metrics" + }, + "trimmed ribosomal gene sequence": { + "name": "trimmed ribosomal gene sequence", + "rank": 60, + "slot_group": "Bioinformatics and QC metrics" + }, + "bioinformatics analysis details": { + "name": "bioinformatics analysis details", + "rank": 61, + "slot_group": "Bioinformatics and QC metrics" + }, + "authors": { + "name": "authors", + "rank": 62, + "slot_group": "Contributor acknowledgement" + }, + "DataHarmonizer provenance": { + "name": "DataHarmonizer provenance", + "rank": 63, + "slot_group": "Contributor acknowledgement" + } + }, + "attributes": { + "isolate ID": { + "name": "isolate ID", + "description": "The user-defined identifier for the isolate, as provided by the laboratory that originally isolated the isolate.", + "title": "isolate ID", + "from_schema": "https://example.com/AMBR", + "rank": 1, + "slot_uri": "GENEPIO:0100456", + "alias": "isolate_ID", + "owner": "AMBR", + "slot_group": "Database Identifiers", + "range": "WhitespaceMinimizedString", + "required": true + }, + "alternative isolate ID": { + "name": "alternative isolate ID", + "description": "An alternative isolate ID assigned to the isolate by another organization.", + "title": "alternative isolate ID", + "from_schema": "https://example.com/AMBR", + "rank": 2, + "slot_uri": "GENEPIO:0100457", + "alias": "alternative_isolate_ID", + "owner": "AMBR", + "slot_group": "Database Identifiers", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "specimen collector sample ID": { + "name": "specimen collector sample ID", + "description": "The user-defined name for the sample.", + "title": "specimen collector sample ID", + "from_schema": "https://example.com/AMBR", + "rank": 3, + "slot_uri": "GENEPIO:0001123", + "identifier": true, + "alias": "specimen_collector_sample_ID", + "owner": "AMBR", + "slot_group": "Database Identifiers", + "range": "WhitespaceMinimizedString" + }, + "sample collected by": { + "name": "sample collected by", + "description": "The name of the agency that collected the original sample.", + "title": "sample collected by", + "from_schema": "https://example.com/AMBR", + "rank": 4, + "slot_uri": "GENEPIO:0001153", + "alias": "sample_collected_by", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "sample collection project name": { + "name": "sample collection project name", + "description": "The name of the project/initiative/program for which the sample was collected.", + "title": "sample collection project name", + "from_schema": "https://example.com/AMBR", + "rank": 5, + "slot_uri": "GENEPIO:0100429", + "alias": "sample_collection_project_name", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "sample collector contact email": { + "name": "sample collector contact email", + "description": "The email address of the contact responsible for follow-up regarding the sample.", + "title": "sample collector contact email", + "from_schema": "https://example.com/AMBR", + "rank": 6, + "slot_uri": "GENEPIO:0001156", + "alias": "sample_collector_contact_email", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString", + "pattern": "^\\S+@\\S+\\.\\S+$" + }, + "sample collector contact address": { + "name": "sample collector contact address", + "description": "The mailing address of the agency submitting the sample.", + "title": "sample collector contact address", + "from_schema": "https://example.com/AMBR", + "rank": 7, + "slot_uri": "GENEPIO:0001158", + "alias": "sample_collector_contact_address", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "sample collection date": { + "name": "sample collection date", + "description": "The date on which the sample was collected.", + "title": "sample collection date", + "from_schema": "https://example.com/AMBR", + "rank": 8, + "slot_uri": "GENEPIO:0001174", + "alias": "sample_collection_date", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "sample received date": { + "name": "sample received date", + "description": "The date on which the sample was received.", + "title": "sample received date", + "from_schema": "https://example.com/AMBR", + "rank": 9, + "slot_uri": "GENEPIO:0001179", + "alias": "sample_received_date", + "owner": "AMBR", + "slot_group": "Sample collection and processing" + }, + "geo_loc_name (country)": { + "name": "geo_loc_name (country)", + "description": "The country where the sample was collected.", + "title": "geo_loc_name (country)", + "from_schema": "https://example.com/AMBR", + "rank": 10, + "slot_uri": "GENEPIO:0001181", + "alias": "geo_loc_name_(country)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "geo_loc_name (state/province/territory)": { + "name": "geo_loc_name (state/province/territory)", + "description": "The province/territory where the sample was collected.", + "title": "geo_loc_name (state/province/territory)", + "from_schema": "https://example.com/AMBR", + "rank": 11, + "slot_uri": "GENEPIO:0001185", + "alias": "geo_loc_name_(state/province/territory)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "geo_loc_name (city)": { + "name": "geo_loc_name (city)", + "description": "The city where the sample was collected.", + "title": "geo_loc_name (city)", + "from_schema": "https://example.com/AMBR", + "rank": 12, + "slot_uri": "GENEPIO:0001189", + "alias": "geo_loc_name_(city)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "geo_loc_name (site)": { + "name": "geo_loc_name (site)", + "description": "The name of a specific geographical location e.g. Credit River (rather than river).", + "title": "geo_loc_name (site)", + "from_schema": "https://example.com/AMBR", + "rank": 13, + "slot_uri": "GENEPIO:0100436", + "alias": "geo_loc_name_(site)", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "geo_loc_name (site) menu" + }, + "organism": { + "name": "organism", + "description": "Taxonomic name of the organism.", + "title": "organism", + "from_schema": "https://example.com/AMBR", + "rank": 14, + "slot_uri": "GENEPIO:0001191", + "alias": "organism", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "purpose of sampling": { + "name": "purpose of sampling", + "description": "The reason that the sample was collected.", + "title": "purpose of sampling", + "from_schema": "https://example.com/AMBR", + "rank": 15, + "slot_uri": "GENEPIO:0001198", + "alias": "purpose_of_sampling", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "purpose of sampling details": { + "name": "purpose of sampling details", + "description": "The description of why the sample was collected, providing specific details.", + "title": "purpose of sampling details", + "from_schema": "https://example.com/AMBR", + "rank": 16, + "slot_uri": "GENEPIO:0001200", + "alias": "purpose_of_sampling_details", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "original sample description": { + "name": "original sample description", + "description": "The original sample description provided by the sample collector.", + "title": "original sample description", + "from_schema": "https://example.com/AMBR", + "rank": 17, + "slot_uri": "GENEPIO:0100439", + "alias": "original_sample_description", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "anatomical material": { + "name": "anatomical material", + "description": "A substance obtained from an anatomical part of an organism e.g. tissue, blood.", + "title": "anatomical material", + "from_schema": "https://example.com/AMBR", + "rank": 18, + "slot_uri": "GENEPIO:0001211", + "multivalued": true, + "alias": "anatomical_material", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "anatomical part": { + "name": "anatomical part", + "description": "An anatomical part of an organism e.g. oropharynx.", + "title": "anatomical part", + "from_schema": "https://example.com/AMBR", + "rank": 19, + "slot_uri": "GENEPIO:0001214", + "multivalued": true, + "alias": "anatomical_part", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "body product": { + "name": "body product", + "description": "A substance excreted/secreted from an organism e.g. feces, urine, sweat.", + "title": "body product", + "from_schema": "https://example.com/AMBR", + "rank": 20, + "slot_uri": "GENEPIO:0001216", + "multivalued": true, + "alias": "body_product", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "environmental material": { + "name": "environmental material", + "description": "A substance obtained from the natural or man-made environment e.g. soil, water, sewage.", + "title": "environmental material", + "from_schema": "https://example.com/AMBR", + "rank": 21, + "slot_uri": "GENEPIO:0001223", + "multivalued": true, + "alias": "environmental_material", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "environmental site": { + "name": "environmental site", + "description": "An environmental location may describe a site in the natural or built environment e.g. contact surface, metal can, hospital, wet market, bat cave.", + "title": "environmental site", + "from_schema": "https://example.com/AMBR", + "rank": 22, + "slot_uri": "GENEPIO:0001232", + "multivalued": true, + "alias": "environmental_site", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "collection device": { + "name": "collection device", + "description": "The instrument or container used to collect the sample e.g. swab.", + "title": "collection device", + "from_schema": "https://example.com/AMBR", + "rank": 23, + "slot_uri": "GENEPIO:0001234", + "multivalued": true, + "alias": "collection_device", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "collection method": { + "name": "collection method", + "description": "The process used to collect the sample e.g. phlebotamy, necropsy.", + "title": "collection method", + "from_schema": "https://example.com/AMBR", + "rank": 24, + "slot_uri": "GENEPIO:0001241", + "multivalued": true, + "alias": "collection_method", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "required": true + }, + "collection protocol": { + "name": "collection protocol", + "description": "The name and version of a particular protocol used for sampling.", + "title": "collection protocol", + "from_schema": "https://example.com/AMBR", + "rank": 25, + "slot_uri": "GENEPIO:0001243", + "alias": "collection_protocol", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "specimen processing": { + "name": "specimen processing", + "description": "Any processing applied to the sample during or after receiving the sample.", + "title": "specimen processing", + "from_schema": "https://example.com/AMBR", + "rank": 26, + "slot_uri": "GENEPIO:0001253", + "multivalued": true, + "alias": "specimen_processing", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "recommended": true + }, + "specimen processing details": { + "name": "specimen processing details", + "description": "Detailed information regarding the processing applied to a sample during or after receiving the sample.", + "title": "specimen processing details", + "from_schema": "https://example.com/AMBR", + "rank": 27, + "slot_uri": "GENEPIO:0100311", + "alias": "specimen_processing_details", + "owner": "AMBR", + "slot_group": "Sample collection and processing", + "range": "WhitespaceMinimizedString" + }, + "strain": { + "name": "strain", + "description": "The strain identifier.", + "title": "strain", + "from_schema": "https://example.com/AMBR", + "rank": 28, + "slot_uri": "GENEPIO:0100455", + "alias": "strain", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "taxonomic identification method": { + "name": "taxonomic identification method", + "description": "The type of planned process by which an organismal entity is associated with a taxon or taxa.", + "title": "taxonomic identification method", + "from_schema": "https://example.com/AMBR", + "rank": 29, + "slot_uri": "GENEPIO:0100583", + "alias": "taxonomic_identification_method", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "taxonomic identification method details": { + "name": "taxonomic identification method details", + "description": "The details of the process used to determine the taxonomic identification of an organism.", + "title": "taxonomic identification method details", + "from_schema": "https://example.com/AMBR", + "rank": 30, + "slot_uri": "GENEPIO:0100584", + "alias": "taxonomic_identification_method_details", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "incubation temperature value": { + "name": "incubation temperature value", + "description": "An environmental datum specifying the temperature at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature value", + "from_schema": "https://example.com/AMBR", + "rank": 31, + "slot_uri": "GENEPIO:0100617", + "alias": "incubation_temperature_value", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "incubation temperature unit": { + "name": "incubation temperature unit", + "description": "An environmental datum specifying the temperature unit at which an organism or organisms were incubated for the purposes of growth on or in a particular medium.", + "title": "incubation temperature unit", + "from_schema": "https://example.com/AMBR", + "rank": 32, + "slot_uri": "GENEPIO:0100618", + "alias": "incubation_temperature_unit", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "isolation medium": { + "name": "isolation medium", + "description": "An isolation medium is a culture medium which has the disposition to encourage growth of particular bacteria to the exclusion of others in the same growth environment.", + "title": "isolation medium", + "from_schema": "https://example.com/AMBR", + "rank": 33, + "slot_uri": "GENEPIO:0002107", + "alias": "isolation_medium", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "isolate storage location": { + "name": "isolate storage location", + "description": "An isolate datum specifying the location of where an isolate is stored e.g. in a particular freezer, on a particular shelf", + "title": "isolate storage location", + "from_schema": "https://example.com/AMBR", + "rank": 34, + "slot_uri": "GENEPIO:0100619", + "alias": "isolate_storage_location", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "range": "WhitespaceMinimizedString", + "required": true + }, + "cellular respiration type": { + "name": "cellular respiration type", + "description": "An isolate datum specifying the type of cellular respiration process used by the organism.", + "title": "cellular respiration type", + "from_schema": "https://example.com/AMBR", + "rank": 35, + "slot_uri": "GENEPIO:0100620", + "alias": "cellular_respiration_type", + "owner": "AMBR", + "slot_group": "Strain and isolation information", + "required": true + }, + "host (common name)": { + "name": "host (common name)", + "description": "The commonly used name of the host.", + "title": "host (common name)", + "from_schema": "https://example.com/AMBR", + "rank": 36, + "slot_uri": "GENEPIO:0001386", + "alias": "host_(common_name)", + "owner": "AMBR", + "slot_group": "Host Information", + "required": true + }, + "host (scientific name)": { + "name": "host (scientific name)", + "description": "The taxonomic, or scientific name of the host.", + "title": "host (scientific name)", + "from_schema": "https://example.com/AMBR", + "rank": 37, + "slot_uri": "GENEPIO:0001387", + "alias": "host_(scientific_name)", + "owner": "AMBR", + "slot_group": "Host Information" + }, + "host disease": { + "name": "host disease", + "description": "The name of the disease experienced by the host.", + "title": "host disease", + "from_schema": "https://example.com/AMBR", + "rank": 38, + "slot_uri": "GENEPIO:0001391", + "alias": "host_disease", + "owner": "AMBR", + "slot_group": "Host Information" + }, + "sequenced by": { + "name": "sequenced by", + "description": "The name of the agency, organization or institution responsible for sequencing the isolate's genome.", + "title": "sequenced by", + "from_schema": "https://example.com/AMBR", + "rank": 39, + "slot_uri": "GENEPIO:0100416", + "alias": "sequenced_by", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "sequenced by laboratory name": { + "name": "sequenced by laboratory name", + "description": "The specific laboratory affiliation of the responsible for sequencing the isolate's genome.", + "title": "sequenced by laboratory name", + "from_schema": "https://example.com/AMBR", + "rank": 40, + "slot_uri": "GENEPIO:0100470", + "alias": "sequenced_by_laboratory_name", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact name": { + "name": "sequenced by contact name", + "description": "The name or title of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact name", + "from_schema": "https://example.com/AMBR", + "rank": 41, + "slot_uri": "GENEPIO:0100471", + "alias": "sequenced_by_contact_name", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "sequenced by contact email": { + "name": "sequenced by contact email", + "description": "The email address of the contact responsible for follow-up regarding the sequence.", + "title": "sequenced by contact email", + "from_schema": "https://example.com/AMBR", + "rank": 42, + "slot_uri": "GENEPIO:0100422", + "alias": "sequenced_by_contact_email", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "purpose of sequencing": { + "name": "purpose of sequencing", + "description": "The reason that the sample was sequenced.", + "title": "purpose of sequencing", + "from_schema": "https://example.com/AMBR", + "rank": 43, + "slot_uri": "GENEPIO:0001445", + "alias": "purpose_of_sequencing", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "purpose of sequencing details": { + "name": "purpose of sequencing details", + "description": "The description of why the sample was sequenced providing specific details.", + "title": "purpose of sequencing details", + "from_schema": "https://example.com/AMBR", + "rank": 44, + "slot_uri": "GENEPIO:0001446", + "alias": "purpose_of_sequencing_details", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "sequencing date": { + "name": "sequencing date", + "description": "The date the sample was sequenced.", + "title": "sequencing date", + "from_schema": "https://example.com/AMBR", + "rank": 45, + "slot_uri": "GENEPIO:0001447", + "alias": "sequencing_date", + "owner": "AMBR", + "slot_group": "Sequencing" + }, + "library ID": { + "name": "library ID", + "description": "The user-specified identifier for the library prepared for sequencing.", + "title": "library ID", + "from_schema": "https://example.com/AMBR", + "rank": 46, + "slot_uri": "GENEPIO:0001448", + "alias": "library_ID", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString" + }, + "sequencing instrument": { + "name": "sequencing instrument", + "description": "The model of the sequencing instrument used.", + "title": "sequencing instrument", + "from_schema": "https://example.com/AMBR", + "rank": 47, + "slot_uri": "GENEPIO:0001452", + "multivalued": true, + "alias": "sequencing_instrument", + "owner": "AMBR", + "slot_group": "Sequencing", + "required": true + }, + "sequencing protocol name": { + "name": "sequencing protocol name", + "description": "The name and version number of the sequencing protocol used.", + "title": "sequencing protocol name", + "from_schema": "https://example.com/AMBR", + "rank": 48, + "slot_uri": "GENEPIO:0001453", + "alias": "sequencing_protocol_name", + "owner": "AMBR", + "slot_group": "Sequencing", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "amplicon pcr primer list": { + "name": "amplicon pcr primer list", + "description": "An information content entity specifying a list of primers used for amplicon sequencing.", + "title": "amplicon pcr primer list", + "from_schema": "https://example.com/AMBR", + "rank": 49, + "slot_uri": "GENEPIO:0100623", + "multivalued": true, + "alias": "amplicon_pcr_primer_list", + "owner": "AMBR", + "slot_group": "Sequencing", + "required": true + }, + "input file name": { + "name": "input file name", + "description": "The name of the file containing the sequence data to be analysed.", + "title": "input file name", + "from_schema": "https://example.com/AMBR", + "rank": 50, + "slot_uri": "OBI:0002874", + "alias": "input_file_name", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "range": "WhitespaceMinimizedString" + }, + "reference accession": { + "name": "reference accession", + "description": "An identifier that specifies an individual sequence record in a public sequence repository.", + "title": "reference accession", + "from_schema": "https://example.com/AMBR", + "rank": 51, + "slot_uri": "OBI:0002885", + "alias": "reference_accession", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "bioinformatics protocol": { + "name": "bioinformatics protocol", + "description": "A description of the overall bioinformatics strategy used.", + "title": "bioinformatics protocol", + "from_schema": "https://example.com/AMBR", + "rank": 52, + "slot_uri": "GENEPIO:0001489", + "alias": "bioinformatics_protocol", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "range": "WhitespaceMinimizedString" + }, + "reference database name": { + "name": "reference database name", + "description": "An identifier of a biological or bioinformatics database.", + "title": "reference database name", + "from_schema": "https://example.com/AMBR", + "rank": 53, + "slot_uri": "OBI:0002883", + "alias": "reference_database_name", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "reference database version": { + "name": "reference database version", + "description": "The version of the database containing the reference sequences used for analysis.", + "title": "reference database version", + "from_schema": "https://example.com/AMBR", + "rank": 54, + "slot_uri": "OBI:0002884", + "alias": "reference_database_version", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "coverage (percentage)": { + "name": "coverage (percentage)", + "description": "The percentage of the reference sequence covered by the sequence of interest.", + "title": "coverage (percentage)", + "from_schema": "https://example.com/AMBR", + "rank": 55, + "slot_uri": "OBI:0002880", + "alias": "coverage_(percentage)", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "sequence identity percentage": { + "name": "sequence identity percentage", + "description": "Sequence identity is the number (%) of matches (identical characters) in positions from an alignment of two molecular sequences.", + "title": "sequence identity percentage", + "from_schema": "https://example.com/AMBR", + "rank": 56, + "slot_uri": "OBI:0002882", + "alias": "sequence_identity_percentage", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "sequence identity (variance ratio)": { + "name": "sequence identity (variance ratio)", + "description": "The ratio of the reference sequence not covered by the sequence of interest.", + "title": "sequence identity (variance ratio)", + "from_schema": "https://example.com/AMBR", + "rank": 57, + "slot_uri": "GENEPIO:0100624", + "alias": "sequence_identity_(variance_ratio)", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics" + }, + "top-hit taxon determination": { + "name": "top-hit taxon determination", + "description": "The taxon derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit taxon determination", + "from_schema": "https://example.com/AMBR", + "rank": 58, + "slot_uri": "GENEPIO:0100625", + "alias": "top_hit_taxon_determination", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "top-hit strain determination": { + "name": "top-hit strain determination", + "description": "The strain designation derived from the top hit in search results produced from a sequence similarity comparison.", + "title": "top-hit strain determination", + "from_schema": "https://example.com/AMBR", + "rank": 59, + "slot_uri": "GENEPIO:0100648", + "alias": "top_hit_strain_determination", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "trimmed ribosomal gene sequence": { + "name": "trimmed ribosomal gene sequence", + "description": "The results of a data transformation of sequence data in which (e.g., low quality) read bases are removed to produce a trimmed ribosomal RNA sequence.", + "title": "trimmed ribosomal gene sequence", + "from_schema": "https://example.com/AMBR", + "rank": 60, + "slot_uri": "GENEPIO:0100626", + "alias": "trimmed_ribosomal_gene_sequence", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "required": true + }, + "bioinformatics analysis details": { + "name": "bioinformatics analysis details", + "description": "Any notes regarding the bioinformatics analysis.", + "title": "bioinformatics analysis details", + "from_schema": "https://example.com/AMBR", + "rank": 61, + "slot_uri": "GENEPIO:0100627", + "alias": "bioinformatics_analysis_details", + "owner": "AMBR", + "slot_group": "Bioinformatics and QC metrics", + "range": "WhitespaceMinimizedString" + }, + "authors": { + "name": "authors", + "description": "Names of individuals contributing to the processes of sample collection, sequence generation, analysis, and data submission.", + "title": "authors", + "from_schema": "https://example.com/AMBR", + "rank": 62, + "slot_uri": "GENEPIO:0001517", + "alias": "authors", + "owner": "AMBR", + "slot_group": "Contributor acknowledgement", + "range": "WhitespaceMinimizedString", + "recommended": true + }, + "DataHarmonizer provenance": { + "name": "DataHarmonizer provenance", + "description": "The DataHarmonizer software and template version provenance.", + "title": "DataHarmonizer provenance", + "from_schema": "https://example.com/AMBR", + "rank": 63, + "slot_uri": "GENEPIO:0001518", + "alias": "DataHarmonizer_provenance", + "owner": "AMBR", + "slot_group": "Contributor acknowledgement", + "range": "Provenance" + } + } + } + }, + "source_file": "schema.yaml", + "settings": { + "Title_Case": { + "setting_key": "Title_Case", + "setting_value": "(((?<=\\b)[^a-z\\W]\\w*?|[\\W])+)" + }, + "UPPER_CASE": { + "setting_key": "UPPER_CASE", + "setting_value": "[A-Z\\W\\d_]*" + }, + "lower_case": { + "setting_key": "lower_case", + "setting_value": "[a-z\\W\\d_]*" + } + }, + "@type": "SchemaDefinition" +} \ No newline at end of file diff --git a/web/templates/test/schema.yaml b/web/templates/test/schema.yaml new file mode 100644 index 00000000..6dcc9b95 --- /dev/null +++ b/web/templates/test/schema.yaml @@ -0,0 +1,2703 @@ +id: https://example.com/AMBR +name: AMBR +description: '' +version: 2.3.0 +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + GENEPIO: http://purl.obolibrary.org/obo/GENEPIO_ +classes: + dh_interface: + name: dh_interface + description: A DataHarmonizer interface + from_schema: https://example.com/AMBR + AMBR: + name: AMBR + description: The AMBR Project, led by the Harrison Lab at the University of Calgary, + is an interdisciplinary study aimed at using 16S sequencing as part of a culturomics + platform to identify antibiotic potentiators from the natural products of microbiota. + The AMBR DataHarmonizer template was designed to standardize contextual data + associated with the isolate repository from this work. + is_a: dh_interface + slots: + - isolate ID + - alternative isolate ID + - specimen collector sample ID + - sample collected by + - sample collection project name + - sample collector contact email + - sample collector contact address + - sample collection date + - sample received date + - geo_loc_name (country) + - geo_loc_name (state/province/territory) + - geo_loc_name (city) + - geo_loc_name (site) + - organism + - purpose of sampling + - purpose of sampling details + - original sample description + - anatomical material + - anatomical part + - body product + - environmental material + - environmental site + - collection device + - collection method + - collection protocol + - specimen processing + - specimen processing details + - strain + - taxonomic identification method + - taxonomic identification method details + - incubation temperature value + - incubation temperature unit + - isolation medium + - isolate storage location + - cellular respiration type + - host (common name) + - host (scientific name) + - host disease + - sequenced by + - sequenced by laboratory name + - sequenced by contact name + - sequenced by contact email + - purpose of sequencing + - purpose of sequencing details + - sequencing date + - library ID + - sequencing instrument + - sequencing protocol name + - amplicon pcr primer list + - input file name + - reference accession + - bioinformatics protocol + - reference database name + - reference database version + - coverage (percentage) + - sequence identity percentage + - sequence identity (variance ratio) + - top-hit taxon determination + - top-hit strain determination + - trimmed ribosomal gene sequence + - bioinformatics analysis details + - authors + - DataHarmonizer provenance + slot_usage: + isolate ID: + rank: 1 + slot_group: Database Identifiers + alternative isolate ID: + rank: 2 + slot_group: Database Identifiers + specimen collector sample ID: + rank: 3 + slot_group: Database Identifiers + sample collected by: + rank: 4 + slot_group: Sample collection and processing + sample collection project name: + rank: 5 + slot_group: Sample collection and processing + sample collector contact email: + rank: 6 + slot_group: Sample collection and processing + sample collector contact address: + rank: 7 + slot_group: Sample collection and processing + sample collection date: + rank: 8 + slot_group: Sample collection and processing + sample received date: + rank: 9 + slot_group: Sample collection and processing + geo_loc_name (country): + rank: 10 + slot_group: Sample collection and processing + geo_loc_name (state/province/territory): + rank: 11 + slot_group: Sample collection and processing + geo_loc_name (city): + rank: 12 + slot_group: Sample collection and processing + geo_loc_name (site): + rank: 13 + slot_group: Sample collection and processing + organism: + rank: 14 + slot_group: Sample collection and processing + purpose of sampling: + rank: 15 + slot_group: Sample collection and processing + purpose of sampling details: + rank: 16 + slot_group: Sample collection and processing + original sample description: + rank: 17 + slot_group: Sample collection and processing + anatomical material: + rank: 18 + slot_group: Sample collection and processing + anatomical part: + rank: 19 + slot_group: Sample collection and processing + body product: + rank: 20 + slot_group: Sample collection and processing + environmental material: + rank: 21 + slot_group: Sample collection and processing + environmental site: + rank: 22 + slot_group: Sample collection and processing + collection device: + rank: 23 + slot_group: Sample collection and processing + collection method: + rank: 24 + slot_group: Sample collection and processing + collection protocol: + rank: 25 + slot_group: Sample collection and processing + specimen processing: + rank: 26 + slot_group: Sample collection and processing + specimen processing details: + rank: 27 + slot_group: Sample collection and processing + strain: + rank: 28 + slot_group: Strain and isolation information + taxonomic identification method: + rank: 29 + slot_group: Strain and isolation information + taxonomic identification method details: + rank: 30 + slot_group: Strain and isolation information + incubation temperature value: + rank: 31 + slot_group: Strain and isolation information + incubation temperature unit: + rank: 32 + slot_group: Strain and isolation information + isolation medium: + rank: 33 + slot_group: Strain and isolation information + isolate storage location: + rank: 34 + slot_group: Strain and isolation information + cellular respiration type: + rank: 35 + slot_group: Strain and isolation information + host (common name): + rank: 36 + slot_group: Host Information + host (scientific name): + rank: 37 + slot_group: Host Information + host disease: + rank: 38 + slot_group: Host Information + sequenced by: + rank: 39 + slot_group: Sequencing + sequenced by laboratory name: + rank: 40 + slot_group: Sequencing + sequenced by contact name: + rank: 41 + slot_group: Sequencing + sequenced by contact email: + rank: 42 + slot_group: Sequencing + purpose of sequencing: + rank: 43 + slot_group: Sequencing + purpose of sequencing details: + rank: 44 + slot_group: Sequencing + sequencing date: + rank: 45 + slot_group: Sequencing + library ID: + rank: 46 + slot_group: Sequencing + sequencing instrument: + rank: 47 + slot_group: Sequencing + sequencing protocol name: + rank: 48 + slot_group: Sequencing + amplicon pcr primer list: + rank: 49 + slot_group: Sequencing + input file name: + rank: 50 + slot_group: Bioinformatics and QC metrics + reference accession: + rank: 51 + slot_group: Bioinformatics and QC metrics + bioinformatics protocol: + rank: 52 + slot_group: Bioinformatics and QC metrics + reference database name: + rank: 53 + slot_group: Bioinformatics and QC metrics + reference database version: + rank: 54 + slot_group: Bioinformatics and QC metrics + coverage (percentage): + rank: 55 + slot_group: Bioinformatics and QC metrics + sequence identity percentage: + rank: 56 + slot_group: Bioinformatics and QC metrics + sequence identity (variance ratio): + rank: 57 + slot_group: Bioinformatics and QC metrics + top-hit taxon determination: + rank: 58 + slot_group: Bioinformatics and QC metrics + top-hit strain determination: + rank: 59 + slot_group: Bioinformatics and QC metrics + trimmed ribosomal gene sequence: + rank: 60 + slot_group: Bioinformatics and QC metrics + bioinformatics analysis details: + rank: 61 + slot_group: Bioinformatics and QC metrics + authors: + rank: 62 + slot_group: Contributor acknowledgement + DataHarmonizer provenance: + rank: 63 + slot_group: Contributor acknowledgement +slots: + isolate ID: + name: isolate ID + title: isolate ID + description: The user-defined identifier for the isolate, as provided by the laboratory + that originally isolated the isolate. + comments: Provide the identifier created by the lab for the organism after isolation. + This value maps to the "Strain ID#" in the Alberta Microbiota Repository (AMBR) + Master file. + examples: + - value: SA01 + slot_uri: GENEPIO:0100456 + range: WhitespaceMinimizedString + required: true + alternative isolate ID: + name: alternative isolate ID + title: alternative isolate ID + description: An alternative isolate ID assigned to the isolate by another organization. + comments: Provide the identifier that represents the site code, source and/or + patient identifier, media type, strain identifier, colony number, growth condition + and dilution factor as a single code. This value corresponds maps to the "Label + ID" in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: '3411301' + slot_uri: GENEPIO:0100457 + range: WhitespaceMinimizedString + recommended: true + specimen collector sample ID: + name: specimen collector sample ID + title: specimen collector sample ID + description: The user-defined name for the sample. + comments: Provide the sample ID provided by the original sample collector. This + value is different from the "isolate_ID" as it represents the original material + sampled rather than the organism that was isolated from the sampled material. + This identifier may or may not be available. + examples: + - value: Lake_Louise_Water23 + slot_uri: GENEPIO:0001123 + range: WhitespaceMinimizedString + identifier: true + sample collected by: + name: sample collected by + title: sample collected by + description: The name of the agency that collected the original sample. + comments: The name of the institution of the original sample collector should + be written out in full, (no abbreviations, with minor exceptions) and be consistent + across multiple submissions e.g. University of Calgary, Alberta Health Services. + The sample collector specified is at the discretion of the data provider (i.e. + may be hospital, provincial public health lab, or other). + examples: + - value: University of Calgary + slot_uri: GENEPIO:0001153 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + recommended: true + sample collection project name: + name: sample collection project name + title: sample collection project name + description: The name of the project/initiative/program for which the sample was + collected. + comments: Provide the name of the project and/or the project ID here. If the information + is unknown or cannot be provided, leave blank or provide a null value. + examples: + - value: Children's Hospital biofilm study (A3-701-01) + slot_uri: GENEPIO:0100429 + range: WhitespaceMinimizedString + recommended: true + sample collector contact email: + name: sample collector contact email + title: sample collector contact email + description: The email address of the contact responsible for follow-up regarding + the sample. + comments: The email address can represent a specific individual or lab e.g. johnnyblogs@lab.ca, + or RespLab@lab.ca + examples: + - value: RespLab@lab.ca + slot_uri: GENEPIO:0001156 + range: WhitespaceMinimizedString + pattern: ^\S+@\S+\.\S+$ + sample collector contact address: + name: sample collector contact address + title: sample collector contact address + description: The mailing address of the agency submitting the sample. + comments: 'The mailing address should be in the format: Street number and name, + City, Province/Territory, Postal Code, Country' + examples: + - value: 655 Lab St, Vancouver, British Columbia, V5N 2A2, Canada + slot_uri: GENEPIO:0001158 + range: WhitespaceMinimizedString + sample collection date: + name: sample collection date + title: sample collection date + description: The date on which the sample was collected. + comments: The date should be provided in ISO 8601 standard format "YYYY-MM-DD". + examples: + - value: '2020-03-16' + slot_uri: GENEPIO:0001174 + any_of: + - range: date + - range: null value menu + recommended: true + todos: + - '>=2019-10-01' + - <={today} + sample received date: + name: sample received date + title: sample received date + description: The date on which the sample was received. + comments: The date should be provided in ISO 8601 standard format "YYYY-MM-DD". + examples: + - value: '2020-03-20' + slot_uri: GENEPIO:0001179 + any_of: + - range: date + - range: null value menu + geo_loc_name (country): + name: geo_loc_name (country) + title: geo_loc_name (country) + description: The country where the sample was collected. + comments: Provide the country name from the controlled vocabulary provided. + examples: + - value: Canada + slot_uri: GENEPIO:0001181 + any_of: + - range: geo_loc_name (country) menu + - range: null value menu + recommended: true + geo_loc_name (state/province/territory): + name: geo_loc_name (state/province/territory) + title: geo_loc_name (state/province/territory) + description: The province/territory where the sample was collected. + comments: Provide the province/territory name from the controlled vocabulary provided. + examples: + - value: Saskatchewan + slot_uri: GENEPIO:0001185 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + recommended: true + geo_loc_name (city): + name: geo_loc_name (city) + title: geo_loc_name (city) + description: The city where the sample was collected. + comments: 'Provide the city name. Use this look-up service to identify the standardized + term: https://www.ebi.ac.uk/ols/ontologies/gaz' + examples: + - value: Medicine Hat + slot_uri: GENEPIO:0001189 + range: WhitespaceMinimizedString + geo_loc_name (site): + name: geo_loc_name (site) + title: geo_loc_name (site) + description: The name of a specific geographical location e.g. Credit River (rather + than river). + comments: Provide the name of the specific geographical site using a specific + noun (a word that names a certain place, thing). + examples: + - value: Lake Louise + slot_uri: GENEPIO:0100436 + range: geo_loc_name (site) menu + organism: + name: organism + title: organism + description: Taxonomic name of the organism. + comments: Provide the confirmed taxonomic name of the species. This value maps + to the "Recommended identification" in the Alberta Microbiota Repository (AMBR) + Master file. + examples: + - value: Staphylococcus aureus + slot_uri: GENEPIO:0001191 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + purpose of sampling: + name: purpose of sampling + title: purpose of sampling + description: The reason that the sample was collected. + comments: The reason a sample was collected may provide information about potential + biases in sampling strategy. Provide the purpose of sampling from the picklist + in the template. The reason why a sample was originally collected may differ + from the reason why it was selected for sequencing, which should be indicated + in the "purpose of sequencing" field. Motivation for sampling may be available + in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) + Master file. + examples: + - value: Targeted surveillance + slot_uri: GENEPIO:0001198 + any_of: + - range: purpose of sampling menu + - range: null value menu + recommended: true + purpose of sampling details: + name: purpose of sampling details + title: purpose of sampling details + description: The description of why the sample was collected, providing specific + details. + comments: Provide an expanded description of why the sample was collected using + free text. The description may include the importance of the sample for a particular + investigation/surveillance activity/research question. Information for populating + this field may be available in the "Source of Isolation" field in the Alberta + Microbiota Repository (AMBR) Master file. + examples: + - value: ProvLab/IPC routine monitoring + slot_uri: GENEPIO:0001200 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + recommended: true + original sample description: + name: original sample description + title: original sample description + description: The original sample description provided by the sample collector. + comments: Provide the sample description provided by the original sample collector + or the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) + Master file. The original description is useful as it may provide further details, + or can be used to clarify higher level classifications. + examples: + - value: ACH coupons-water study, isolates 2010, 2011 see appendix 3 (Alberta + Childrens Hospital) + slot_uri: GENEPIO:0100439 + range: WhitespaceMinimizedString + anatomical material: + name: anatomical material + title: anatomical material + description: A substance obtained from an anatomical part of an organism e.g. + tissue, blood. + comments: Provide a descriptor if an anatomical material was sampled. Use the + picklist provided in the template. If a desired term is missing from the picklist, + contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose + a null value. Information for populating this field may be available in the + "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master + file. + examples: + - value: Wound tissue (injury) + slot_uri: GENEPIO:0001211 + any_of: + - range: anatomical material menu + - range: null value menu + multivalued: true + required: true + anatomical part: + name: anatomical part + title: anatomical part + description: An anatomical part of an organism e.g. oropharynx. + comments: Provide a descriptor if an anatomical part was sampled. Use the picklist + provided in the template. If a desired term is missing from the picklist, contact + emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null + value. Information for populating this field may be available in the "Source + of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: Nasal cavity + slot_uri: GENEPIO:0001214 + any_of: + - range: anatomical part menu + - range: null value menu + multivalued: true + required: true + body product: + name: body product + title: body product + description: A substance excreted/secreted from an organism e.g. feces, urine, + sweat. + comments: Provide a descriptor if a body product was sampled. Use the picklist + provided in the template. If a desired term is missing from the picklist, contact + emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null + value. Information for populating this field may be available in the "Source + of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: Feces + slot_uri: GENEPIO:0001216 + any_of: + - range: body product menu + - range: null value menu + multivalued: true + required: true + environmental material: + name: environmental material + title: environmental material + description: A substance obtained from the natural or man-made environment e.g. + soil, water, sewage. + comments: Provide a descriptor if an environmental material was sampled. Use the + picklist provided in the template. If a desired term is missing from the picklist, + contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose + a null value. Information for populating this field may be available in the + "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master + file. + examples: + - value: Bandage + slot_uri: GENEPIO:0001223 + any_of: + - range: environmental material menu + - range: null value menu + multivalued: true + required: true + environmental site: + name: environmental site + title: environmental site + description: An environmental location may describe a site in the natural or built + environment e.g. contact surface, metal can, hospital, wet market, bat cave. + comments: Provide a descriptor if an environmental site was sampled. Use the picklist + provided in the template. If a desired term is missing from the picklist, contact + emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null + value. Information for populating this field may be available in the "Source + of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: Hospital + slot_uri: GENEPIO:0001232 + any_of: + - range: environmental site menu + - range: null value menu + multivalued: true + required: true + collection device: + name: collection device + title: collection device + description: The instrument or container used to collect the sample e.g. swab. + comments: Provide a descriptor if a device was used for sampling. Use the picklist + provided in the template. If a desired term is missing from the picklist, contact + emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null + value. Information for populating this field may be available in the "Source + of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: Swab + slot_uri: GENEPIO:0001234 + any_of: + - range: collection device menu + - range: null value menu + multivalued: true + required: true + collection method: + name: collection method + title: collection method + description: The process used to collect the sample e.g. phlebotamy, necropsy. + comments: Provide a descriptor if a collection method was used for sampling. Use + the picklist provided in the template. If a desired term is missing from the + picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. + Choose a null value. Information for populating this field may be available + in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) + Master file. + examples: + - value: Biopsy + slot_uri: GENEPIO:0001241 + any_of: + - range: collection method menu + - range: null value menu + multivalued: true + required: true + collection protocol: + name: collection protocol + title: collection protocol + description: The name and version of a particular protocol used for sampling. + comments: Free text. Information for populating this field may be available in + the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) + Master file. + examples: + - value: Collection_protocol_Children's Hospital biofilm study (A3-701-01) + slot_uri: GENEPIO:0001243 + range: WhitespaceMinimizedString + specimen processing: + name: specimen processing + title: specimen processing + description: Any processing applied to the sample during or after receiving the + sample. + comments: If multiple PCR products were generated from the isolate using different + primer sets, indicate that the sequence records represents the same isolate + by selecting "Biological replicate" in the "specimen processing" field. Every + different sequence experiment should have its own record (i.e. if different + amplicons have the same sequence but were generated using different primer sets, + these should be stored as separate entries/lines in the spreadsheet). Information + about replicates may be available in the "Top-hit taxon (taxa)" or "Trimmed + Ribosomal Sequence" fields if there are multiple values for the same "Strain + ID#" in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: Biological replicate + slot_uri: GENEPIO:0001253 + any_of: + - range: specimen processing menu + - range: null value menu + multivalued: true + recommended: true + specimen processing details: + name: specimen processing details + title: specimen processing details + description: Detailed information regarding the processing applied to a sample + during or after receiving the sample. + comments: Provide a free text description of any processing details applied to + a sample. Information about replicates may be available in the "Top-hit taxon + (taxa)" or "Trimmed Ribosomal Sequence" fields if there are multiple values + for the same "Strain ID#" in the Alberta Microbiota Repository (AMBR) Master + file. + examples: + - value: Multiple amplicons generated for isolate SA32 using different primer + sets + slot_uri: GENEPIO:0100311 + range: WhitespaceMinimizedString + strain: + name: strain + title: strain + description: The strain identifier. + comments: Provide the strain of the isolate. This value maps to the "Strain" in + the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: CL10 + slot_uri: GENEPIO:0100455 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + taxonomic identification method: + name: taxonomic identification method + title: taxonomic identification method + description: The type of planned process by which an organismal entity is associated + with a taxon or taxa. + comments: Provide the type of method used to determine the taxonomic identity + of the organism by selecting a value from the pick list. For the AMBR Project, + the "16S ribosomal gene sequencing assay" value will be the most appropriate. + If the information is unknown or cannot be provided, leave blank or provide + a null value. + examples: + - value: 16S ribosomal gene sequencing assay + slot_uri: GENEPIO:0100583 + any_of: + - range: taxonomic identification method menu + - range: null value menu + required: true + taxonomic identification method details: + name: taxonomic identification method details + title: taxonomic identification method details + description: The details of the process used to determine the taxonomic identification + of an organism. + comments: Provide the criteria used for 16S sequencing taxonomic determination + by selection a value from the pick list. These criteria are specific to the + AMBR project and so do not correspond with standardized criteria in any ontology. + The pick list is strictly for providing consistency in records rather than implementing + community data standards. If another method was used for the taxonomic determination, + leave blank. This value maps to the information stored in the "ID Category*" + field in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: 'Species-level ID: >99.3% identity and unambiguous match to one type + (T) sequence in a curated database' + slot_uri: GENEPIO:0100584 + any_of: + - range: taxonomic identification method details menu + - range: null value menu + required: true + incubation temperature value: + name: incubation temperature value + title: incubation temperature value + description: An environmental datum specifying the temperature at which an organism + or organisms were incubated for the purposes of growth on or in a particular + medium. + comments: Provide the temperature at which the isolate was isolated. This value + maps to the information stored in the "Incubation temperature" field in the + Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: '37' + slot_uri: GENEPIO:0100617 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + incubation temperature unit: + name: incubation temperature unit + title: incubation temperature unit + description: An environmental datum specifying the temperature unit at which an + organism or organisms were incubated for the purposes of growth on or in a particular + medium. + comments: Select the temperature unit from the pick list. This value maps to the + information stored in the "Incubation temperature" field in the Alberta Microbiota + Repository (AMBR) Master file. + examples: + - value: Degree Celsius + slot_uri: GENEPIO:0100618 + any_of: + - range: incubation temperature unit menu + - range: null value menu + required: true + isolation medium: + name: isolation medium + title: isolation medium + description: An isolation medium is a culture medium which has the disposition + to encourage growth of particular bacteria to the exclusion of others in the + same growth environment. + comments: Select the isolation medium from the pick list. This value maps to the + information stored in the "Incubation media" field in the Alberta Microbiota + Repository (AMBR) Master file. + examples: + - value: Brain heart infusion (BHI) + slot_uri: GENEPIO:0002107 + any_of: + - range: isolation medium menu + - range: null value menu + required: true + isolate storage location: + name: isolate storage location + title: isolate storage location + description: An isolate datum specifying the location of where an isolate is stored + e.g. in a particular freezer, on a particular shelf + comments: Enter the freezer storage location of the isolate as the "freezer number-shelf + number-box number-unit number" e.g. FR1-R3-B1-S01. This value maps to the information + stored in the "Spot code" in the Alberta Microbiota Repository (AMBR) Master + file. + examples: + - value: FR1-R3-B1-S01 + slot_uri: GENEPIO:0100619 + range: WhitespaceMinimizedString + required: true + cellular respiration type: + name: cellular respiration type + title: cellular respiration type + description: An isolate datum specifying the type of cellular respiration process + used by the organism. + comments: Select the respiration type from the pick list. This value maps to the + information stored in the "Aerobic/Anaerobic" field in the Alberta Microbiota + Repository (AMBR) Master file. + examples: + - value: Aerobic respiration + slot_uri: GENEPIO:0100620 + any_of: + - range: cellular respiration type menu + - range: null value menu + required: true + host (common name): + name: host (common name) + title: host (common name) + description: The commonly used name of the host. + comments: "Common name is required if there was a host. Both common anime and\ + \ scientific name can be provided, if known. Use terms from the pick lists in\ + \ the template. Hosts can be animals (including humans) and plants. Examples\ + \ of common names are \u201CHuman\u201D and \u201CCanola plant\u201D. Examples\ + \ of scientific names are \u201CHomo sapiens\u201D and \u201CEquus caballus\u201D\ + . If the sample was environmental, select \"Not Applicable\". Information for\ + \ populating this field may be available in the \"Source of Isolation\" field\ + \ in the Alberta Microbiota Repository (AMBR) Master file." + examples: + - value: Human + slot_uri: GENEPIO:0001386 + any_of: + - range: host (common name) menu + - range: null value menu + required: true + host (scientific name): + name: host (scientific name) + title: host (scientific name) + description: The taxonomic, or scientific name of the host. + comments: Common name or scientific name are required if there was a host. Both + can be provided, if known. Use terms from the pick lists in the template. Hosts + can be animals (including humans) and plants. Common name e.g. Human, Canola + plant. If the sample was environmental, select "Not Applicable". Information + for populating this field may be available in the "Source of Isolation" field + in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: Homo sapiens + slot_uri: GENEPIO:0001387 + any_of: + - range: host (scientific name) menu + - range: null value menu + host disease: + name: host disease + title: host disease + description: The name of the disease experienced by the host. + comments: If the sample was obtained from a host with a known disease, provide + the name of the disease by seleting a value from the picklist. Information for + populating this field may be available in the "Source of Isolation" field in + the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: Cystic fibrosis + slot_uri: GENEPIO:0001391 + any_of: + - range: host disease menu + - range: null value menu + sequenced by: + name: sequenced by + title: sequenced by + description: The name of the agency, organization or institution responsible for + sequencing the isolate's genome. + comments: Provide the name of the organization that performed the sequencing in + full (avoid abbreviations). If the information is unknown or cannot be provided, + leave blank or provide a null value. For the AMBR Project, the value is most + likely the "University of Calgary". + examples: + - value: University of Calgary + slot_uri: GENEPIO:0100416 + any_of: + - range: sequenced_by menu + - range: null value menu + sequenced by laboratory name: + name: sequenced by laboratory name + title: sequenced by laboratory name + description: The specific laboratory affiliation of the responsible for sequencing + the isolate's genome. + comments: Provide the name of the specific laboratory that that performed the + sequencing in full (avoid abbreviations). If the information is unknown or cannot + be provided, leave blank or provide a null value. For the AMBR Project, the + value is most likely the "Harrison Lab". + examples: + - value: Harrison Lab + slot_uri: GENEPIO:0100470 + range: WhitespaceMinimizedString + sequenced by contact name: + name: sequenced by contact name + title: sequenced by contact name + description: The name or title of the contact responsible for follow-up regarding + the sequence. + comments: Provide the name of an individual or their job title. As personnel turnover + may render the contact's name obsolete, it is more prefereable to provide a + job title for ensuring accuracy of information and institutional memory. If + the information is unknown or cannot be provided, leave blank or provide a null + value. + examples: + - value: Joe Harrison + slot_uri: GENEPIO:0100471 + range: WhitespaceMinimizedString + sequenced by contact email: + name: sequenced by contact email + title: sequenced by contact email + description: The email address of the contact responsible for follow-up regarding + the sequence. + comments: Provide the email associated with the listed contact. As personnel turnover + may render an individual's email obsolete, it is more prefereable to provide + an address for a position or lab, to ensure accuracy of information and institutional + memory. If the information is unknown or cannot be provided, leave blank or + provide a null value. + examples: + - value: jjharris@ucalgary.ca + slot_uri: GENEPIO:0100422 + range: WhitespaceMinimizedString + purpose of sequencing: + name: purpose of sequencing + title: purpose of sequencing + description: The reason that the sample was sequenced. + comments: The reason why a sample was originally collected may differ from the + reason why it was selected for sequencing. The reason a sample was sequenced + may provide information about potential biases in sequencing strategy. Provide + the purpose of sequencing from the picklist in the template. The reason for + sample collection should be indicated in the "purpose of sampling" field. + examples: + - value: Research + slot_uri: GENEPIO:0001445 + any_of: + - range: purpose of sequencing menu + - range: null value menu + purpose of sequencing details: + name: purpose of sequencing details + title: purpose of sequencing details + description: The description of why the sample was sequenced providing specific + details. + comments: Provide an expanded description of why the sample was sequenced using + free text. This information can provide details about why the sample source + might contain antibiotic potentiators. + examples: + - value: Screening for antibiotic potentiators in Cystic fibrosis disease contexts. + slot_uri: GENEPIO:0001446 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + sequencing date: + name: sequencing date + title: sequencing date + description: The date the sample was sequenced. + comments: The date should be provided in ISO 8601 standard format "YYYY-MM-DD". + examples: + - value: '2020-06-22' + slot_uri: GENEPIO:0001447 + any_of: + - range: date + - range: null value menu + todos: + - '>={sample collection date}' + library ID: + name: library ID + title: library ID + description: The user-specified identifier for the library prepared for sequencing. + comments: 'Provide the name of the run. This value maps to information in the + "Sequencing Batch #" field Alberta Microbiota Repository (AMBR) Master file.' + examples: + - value: 1876515_SA01_Plate 02 + slot_uri: GENEPIO:0001448 + range: WhitespaceMinimizedString + sequencing instrument: + name: sequencing instrument + title: sequencing instrument + description: The model of the sequencing instrument used. + comments: Select a sequencing instrument from the picklist provided in the template. + examples: + - value: Oxford Nanopore MinION + slot_uri: GENEPIO:0001452 + any_of: + - range: sequencing instrument menu + - range: null value menu + multivalued: true + required: true + sequencing protocol name: + name: sequencing protocol name + title: sequencing protocol name + description: The name and version number of the sequencing protocol used. + comments: Provide the name and version of the sequencing protocol e.g. 1D_DNA_MinION + examples: + - value: https://www.protocols.io/view/covid-19-artic-v3-illumina-library-construction-an-bibtkann + slot_uri: GENEPIO:0001453 + range: WhitespaceMinimizedString + recommended: true + amplicon pcr primer list: + name: amplicon pcr primer list + title: amplicon pcr primer list + description: An information content entity specifying a list of primers used for + amplicon sequencing. + comments: Select the primers used to generate the ribosomal 16S or 23S amplicon + for sequencing from the pick list. This value maps to the information in the + "Primers Used for sequencing" field Alberta Microbiota Repository (AMBR) Master + file. + examples: + - value: 27F + - value: 1492R + slot_uri: GENEPIO:0100623 + any_of: + - range: amplicon pcr primer list menu + - range: null value menu + multivalued: true + required: true + input file name: + name: input file name + title: input file name + description: The name of the file containing the sequence data to be analysed. + comments: Enter the file name of the target gene sequence to be analyzed. + examples: + - value: ambr_staph_ABC_123.fasta + slot_uri: OBI:0002874 + range: WhitespaceMinimizedString + reference accession: + name: reference accession + title: reference accession + description: An identifier that specifies an individual sequence record in a public + sequence repository. + comments: Enter the EZBioCloud gene accession that most closely matches the sequence + being analyzed. This value maps to the information in the "Accession No(s)." + field in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: FR821777 + slot_uri: OBI:0002885 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + bioinformatics protocol: + name: bioinformatics protocol + title: bioinformatics protocol + description: A description of the overall bioinformatics strategy used. + comments: Provide the name of the protocol used to perform the species identification + (i.e. the name of the protocol to perform the EZBioCloud search). + examples: + - value: EZBioCloud_searchprotocol_2023.txt + slot_uri: GENEPIO:0001489 + range: WhitespaceMinimizedString + reference database name: + name: reference database name + title: reference database name + description: An identifier of a biological or bioinformatics database. + comments: Select the reference database name from the pick list. For the AMBR + Project, the reference database will be EZBioCloud. + examples: + - value: EZBioCloud + slot_uri: OBI:0002883 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + reference database version: + name: reference database version + title: reference database version + description: The version of the database containing the reference sequences used + for analysis. + comments: Enter the sequence search date as the version of EZBioCloud used. Record + the date in ISO 8601 format i.e. YYYY_MM_DD. This value maps to the information + in the "Search date" field in the Alberta Microbiota Repository (AMBR) Master + file. + examples: + - value: '2021-05-23' + slot_uri: OBI:0002884 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + coverage (percentage): + name: coverage (percentage) + title: coverage (percentage) + description: The percentage of the reference sequence covered by the sequence + of interest. + comments: Enter the completeness value. Do not include any symbols e.g. %. This + value maps to "Completeness (%)" in the Alberta Microbiota Repository (AMBR) + Master file. + examples: + - value: '98.2' + slot_uri: OBI:0002880 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + sequence identity percentage: + name: sequence identity percentage + title: sequence identity percentage + description: Sequence identity is the number (%) of matches (identical characters) + in positions from an alignment of two molecular sequences. + comments: Enter the identity value. Do not include any symbols e.g. %. This value + maps to "Similarity (%)" in the Alberta Microbiota Repository (AMBR) Master + file. + examples: + - value: '99' + slot_uri: OBI:0002882 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + sequence identity (variance ratio): + name: sequence identity (variance ratio) + title: sequence identity (variance ratio) + description: The ratio of the reference sequence not covered by the sequence of + interest. + comments: Enter the number of different positions in the target sequence compared + to the reference sequence length, expressed as a ratio. This value maps to "Variation + ratio" in the Alberta Microbiota Repository (AMBR) Master file. + examples: + - value: 1/420 + slot_uri: GENEPIO:0100624 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + top-hit taxon determination: + name: top-hit taxon determination + title: top-hit taxon determination + description: The taxon derived from the top hit in search results produced from + a sequence similarity comparison. + comments: Enter the EZBioCloud taxon best-hit. This value maps to the information + in the "Top-hit taxon (taxa)" field in the Alberta Microbiota Repository (AMBR) + Master file. + examples: + - value: Staphylococcus argenteus + slot_uri: GENEPIO:0100625 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + top-hit strain determination: + name: top-hit strain determination + title: top-hit strain determination + description: The strain designation derived from the top hit in search results + produced from a sequence similarity comparison. + comments: Enter the EZBioCloud strain best-hit. This value maps to the information + in the "Top-hit strain(s)" field in the Alberta Microbiota Repository (AMBR) + Master file. + examples: + - value: MSHR1132(T) + slot_uri: GENEPIO:0100648 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + trimmed ribosomal gene sequence: + name: trimmed ribosomal gene sequence + title: trimmed ribosomal gene sequence + description: The results of a data transformation of sequence data in which (e.g., + low quality) read bases are removed to produce a trimmed ribosomal RNA sequence. + comments: Enter the sequence of the trimmed ribosomal gene sequence. This value + maps to the sequence in the "Trimmed Ribosomal Sequence" field in the Alberta + Microbiota Repository (AMBR) Master file. + examples: + - value: TGCAAGTCGAGCGAACGGACGAGAAGCTTGCTTCTCTGATGTTAGCGGCGGACGSGTGAGTAACACGTGGATAACCTACCTATAAGACTGGGATAACTTCGGGAAACCGGAGCTAATACCGGATAATATTTTGAACCGCATGGTTCAAAAGTGAAAGACGGTCTTGCTGTCACTTATAGATGGATCCGCGCTGCATTAGCTAGTTGGTAAGGTAACGGCTTACCAAGGCAACGATGCATAGCCGACCTGAGAGGGTGATCGGCCACACTGGAACTGAGACACGGTCCAGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCCGCAATGGGCGAAAGCCTGACGGAGCAACGCCGCGTGAGTGATGAAGGTCTTCGGATCGTAAAACTCTGTTATTAGGGAAGAACATATGTGTAAGTAACTGTGCACATCTTGACGGTACCTAATCAGAAAGCCACGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGAAAACTTGAGTGCAGAAGAGGAAAGTGGAATTCCATGTGTAGCGGTGAAATGCGCAGAGATATGGAGGAACACCAGTGGCGAAGGCGACTTTCTGGTCTGTAACTGACGCTGATGTGCGAAAGCGTGGGGATCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAGTGCTAAGTGTTAGGGGGTTTCCGCCCCTTAGTGCTGCAGCTAACGCATTAAGCACTCCGCCTGGGGAGTACGACCGCAAGGTTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCAAATCTTGACATCCTTTGACAACTCTAGAGATAGAGCCTTCCCCTTCGGGGGACAAAGTGACAGGTGGTGCATGGTTGTCGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTAAGCTTAGTTGCCATCATTAAGTTGGGCACTCTAAGTTGACTGCCGGTGACAAACCGGAGGAAGGTGGGGATGACGTCAAATCATCATGCCCCTTATGATTTGGGCTACACACGTGCTACAATGGACAATACAAAGGGCAGCGAAACCGCGAGGTCAAGCAAATCCCATAAAGTTGTTCTCAGTTCGGATTGTAGTCTGCAACTCGACTACATGAAGCTGGAATCGCTAGTAATCGTAGATCAGCATGCTACGGTGAATACGTTCCCGGGTCTTGTACACACCGCCCGTCACACCACGAGAGTTTGTAACACCCGAAGCCGGTGGAGTAACCTTTTAGGAGCTAGCCGTCGAAG + slot_uri: GENEPIO:0100626 + any_of: + - range: WhitespaceMinimizedString + - range: null value menu + required: true + bioinformatics analysis details: + name: bioinformatics analysis details + title: bioinformatics analysis details + description: Any notes regarding the bioinformatics analysis. + comments: Enter any notes regarding the analysis as free text. This value maps + to the "Comment" field in the information in the Alberta Microbiota Repository + (AMBR) Master file. + examples: + - value: Pure-June 09-2022,Tube replaced by Rahgavi + slot_uri: GENEPIO:0100627 + range: WhitespaceMinimizedString + authors: + name: authors + title: authors + description: Names of individuals contributing to the processes of sample collection, + sequence generation, analysis, and data submission. + comments: Include the first and last names of all individuals that should be attributed, + separated by a comma. + examples: + - value: Rahgavi Poopalaraj, Shirin Afroj, Joe Harrison + slot_uri: GENEPIO:0001517 + range: WhitespaceMinimizedString + recommended: true + DataHarmonizer provenance: + name: DataHarmonizer provenance + title: DataHarmonizer provenance + description: The DataHarmonizer software and template version provenance. + comments: The current software and template version information will be automatically + generated in this field after the user utilizes the "validate" function. This + information will be generated regardless as to whether the row is valid of not. + examples: + - value: DataHarmonizer v1.4.3, AMBR v1.0.0 + slot_uri: GENEPIO:0001518 + range: Provenance +enums: + null value menu: + name: null value menu + permissible_values: + Not Applicable: + text: Not Applicable + meaning: GENEPIO:0001619 + Not Collected: + text: Not Collected + meaning: GENEPIO:0001620 + Not Provided: + text: Not Provided + meaning: GENEPIO:0001668 + Missing: + text: Missing + meaning: GENEPIO:0001618 + Restricted Access: + text: Restricted Access + meaning: GENEPIO:0001810 + geo_loc_name (country) menu: + name: geo_loc_name (country) menu + permissible_values: + Afghanistan: + text: Afghanistan + meaning: GAZ:00006882 + Albania: + text: Albania + meaning: GAZ:00002953 + Algeria: + text: Algeria + meaning: GAZ:00000563 + American Samoa: + text: American Samoa + meaning: GAZ:00003957 + Andorra: + text: Andorra + meaning: GAZ:00002948 + Angola: + text: Angola + meaning: GAZ:00001095 + Anguilla: + text: Anguilla + meaning: GAZ:00009159 + Antarctica: + text: Antarctica + meaning: GAZ:00000462 + Antigua and Barbuda: + text: Antigua and Barbuda + meaning: GAZ:00006883 + Argentina: + text: Argentina + meaning: GAZ:00002928 + Armenia: + text: Armenia + meaning: GAZ:00004094 + Aruba: + text: Aruba + meaning: GAZ:00004025 + Ashmore and Cartier Islands: + text: Ashmore and Cartier Islands + meaning: GAZ:00005901 + Australia: + text: Australia + meaning: GAZ:00000463 + Austria: + text: Austria + meaning: GAZ:00002942 + Azerbaijan: + text: Azerbaijan + meaning: GAZ:00004941 + Bahamas: + text: Bahamas + meaning: GAZ:00002733 + Bahrain: + text: Bahrain + meaning: GAZ:00005281 + Baker Island: + text: Baker Island + meaning: GAZ:00007117 + Bangladesh: + text: Bangladesh + meaning: GAZ:00003750 + Barbados: + text: Barbados + meaning: GAZ:00001251 + Bassas da India: + text: Bassas da India + meaning: GAZ:00005810 + Belarus: + text: Belarus + meaning: GAZ:00006886 + Belgium: + text: Belgium + meaning: GAZ:00002938 + Belize: + text: Belize + meaning: GAZ:00002934 + Benin: + text: Benin + meaning: GAZ:00000904 + Bermuda: + text: Bermuda + meaning: GAZ:00001264 + Bhutan: + text: Bhutan + meaning: GAZ:00003920 + Bolivia: + text: Bolivia + meaning: GAZ:00002511 + Borneo: + text: Borneo + meaning: GAZ:00025355 + Bosnia and Herzegovina: + text: Bosnia and Herzegovina + meaning: GAZ:00006887 + Botswana: + text: Botswana + meaning: GAZ:00001097 + Bouvet Island: + text: Bouvet Island + meaning: GAZ:00001453 + Brazil: + text: Brazil + meaning: GAZ:00002828 + British Virgin Islands: + text: British Virgin Islands + meaning: GAZ:00003961 + Brunei: + text: Brunei + meaning: GAZ:00003901 + Bulgaria: + text: Bulgaria + meaning: GAZ:00002950 + Burkina Faso: + text: Burkina Faso + meaning: GAZ:00000905 + Burundi: + text: Burundi + meaning: GAZ:00001090 + Cambodia: + text: Cambodia + meaning: GAZ:00006888 + Cameroon: + text: Cameroon + meaning: GAZ:00001093 + Canada: + text: Canada + meaning: GAZ:00002560 + Cape Verde: + text: Cape Verde + meaning: GAZ:00001227 + Cayman Islands: + text: Cayman Islands + meaning: GAZ:00003986 + Central African Republic: + text: Central African Republic + meaning: GAZ:00001089 + Chad: + text: Chad + meaning: GAZ:00000586 + Chile: + text: Chile + meaning: GAZ:00002825 + China: + text: China + meaning: GAZ:00002845 + Christmas Island: + text: Christmas Island + meaning: GAZ:00005915 + Clipperton Island: + text: Clipperton Island + meaning: GAZ:00005838 + Cocos Islands: + text: Cocos Islands + meaning: GAZ:00009721 + Colombia: + text: Colombia + meaning: GAZ:00002929 + Comoros: + text: Comoros + meaning: GAZ:00005820 + Cook Islands: + text: Cook Islands + meaning: GAZ:00053798 + Coral Sea Islands: + text: Coral Sea Islands + meaning: GAZ:00005917 + Costa Rica: + text: Costa Rica + meaning: GAZ:00002901 + Cote d'Ivoire: + text: Cote d'Ivoire + meaning: GAZ:00000906 + Croatia: + text: Croatia + meaning: GAZ:00002719 + Cuba: + text: Cuba + meaning: GAZ:00003762 + Curacao: + text: Curacao + meaning: GAZ:00012582 + Cyprus: + text: Cyprus + meaning: GAZ:00004006 + Czech Republic: + text: Czech Republic + meaning: GAZ:00002954 + Democratic Republic of the Congo: + text: Democratic Republic of the Congo + meaning: GAZ:00001086 + Denmark: + text: Denmark + meaning: GAZ:00005852 + Djibouti: + text: Djibouti + meaning: GAZ:00000582 + Dominica: + text: Dominica + meaning: GAZ:00006890 + Dominican Republic: + text: Dominican Republic + meaning: GAZ:00003952 + Ecuador: + text: Ecuador + meaning: GAZ:00002912 + Egypt: + text: Egypt + meaning: GAZ:00003934 + El Salvador: + text: El Salvador + meaning: GAZ:00002935 + Equatorial Guinea: + text: Equatorial Guinea + meaning: GAZ:00001091 + Eritrea: + text: Eritrea + meaning: GAZ:00000581 + Estonia: + text: Estonia + meaning: GAZ:00002959 + Eswatini: + text: Eswatini + meaning: GAZ:00001099 + Ethiopia: + text: Ethiopia + meaning: GAZ:00000567 + Europa Island: + text: Europa Island + meaning: GAZ:00005811 + Falkland Islands (Islas Malvinas): + text: Falkland Islands (Islas Malvinas) + meaning: GAZ:00001412 + Faroe Islands: + text: Faroe Islands + meaning: GAZ:00059206 + Fiji: + text: Fiji + meaning: GAZ:00006891 + Finland: + text: Finland + meaning: GAZ:00002937 + France: + text: France + meaning: GAZ:00003940 + French Guiana: + text: French Guiana + meaning: GAZ:00002516 + French Polynesia: + text: French Polynesia + meaning: GAZ:00002918 + French Southern and Antarctic Lands: + text: French Southern and Antarctic Lands + meaning: GAZ:00003753 + Gabon: + text: Gabon + meaning: GAZ:00001092 + Gambia: + text: Gambia + meaning: GAZ:00000907 + Gaza Strip: + text: Gaza Strip + meaning: GAZ:00009571 + Georgia: + text: Georgia + meaning: GAZ:00004942 + Germany: + text: Germany + meaning: GAZ:00002646 + Ghana: + text: Ghana + meaning: GAZ:00000908 + Gibraltar: + text: Gibraltar + meaning: GAZ:00003987 + Glorioso Islands: + text: Glorioso Islands + meaning: GAZ:00005808 + Greece: + text: Greece + meaning: GAZ:00002945 + Greenland: + text: Greenland + meaning: GAZ:00001507 + Grenada: + text: Grenada + meaning: GAZ:02000573 + Guadeloupe: + text: Guadeloupe + meaning: GAZ:00067142 + Guam: + text: Guam + meaning: GAZ:00003706 + Guatemala: + text: Guatemala + meaning: GAZ:00002936 + Guernsey: + text: Guernsey + meaning: GAZ:00001550 + Guinea: + text: Guinea + meaning: GAZ:00000909 + Guinea-Bissau: + text: Guinea-Bissau + meaning: GAZ:00000910 + Guyana: + text: Guyana + meaning: GAZ:00002522 + Haiti: + text: Haiti + meaning: GAZ:00003953 + Heard Island and McDonald Islands: + text: Heard Island and McDonald Islands + meaning: GAZ:00009718 + Honduras: + text: Honduras + meaning: GAZ:00002894 + Hong Kong: + text: Hong Kong + meaning: GAZ:00003203 + Howland Island: + text: Howland Island + meaning: GAZ:00007120 + Hungary: + text: Hungary + meaning: GAZ:00002952 + Iceland: + text: Iceland + meaning: GAZ:00000843 + India: + text: India + meaning: GAZ:00002839 + Indonesia: + text: Indonesia + meaning: GAZ:00003727 + Iran: + text: Iran + meaning: GAZ:00004474 + Iraq: + text: Iraq + meaning: GAZ:00004483 + Ireland: + text: Ireland + meaning: GAZ:00002943 + Isle of Man: + text: Isle of Man + meaning: GAZ:00052477 + Israel: + text: Israel + meaning: GAZ:00002476 + Italy: + text: Italy + meaning: GAZ:00002650 + Jamaica: + text: Jamaica + meaning: GAZ:00003781 + Jan Mayen: + text: Jan Mayen + meaning: GAZ:00005853 + Japan: + text: Japan + meaning: GAZ:00002747 + Jarvis Island: + text: Jarvis Island + meaning: GAZ:00007118 + Jersey: + text: Jersey + meaning: GAZ:00001551 + Johnston Atoll: + text: Johnston Atoll + meaning: GAZ:00007114 + Jordan: + text: Jordan + meaning: GAZ:00002473 + Juan de Nova Island: + text: Juan de Nova Island + meaning: GAZ:00005809 + Kazakhstan: + text: Kazakhstan + meaning: GAZ:00004999 + Kenya: + text: Kenya + meaning: GAZ:00001101 + Kerguelen Archipelago: + text: Kerguelen Archipelago + meaning: GAZ:00005682 + Kingman Reef: + text: Kingman Reef + meaning: GAZ:00007116 + Kiribati: + text: Kiribati + meaning: GAZ:00006894 + Kosovo: + text: Kosovo + meaning: GAZ:00011337 + Kuwait: + text: Kuwait + meaning: GAZ:00005285 + Kyrgyzstan: + text: Kyrgyzstan + meaning: GAZ:00006893 + Laos: + text: Laos + meaning: GAZ:00006889 + Latvia: + text: Latvia + meaning: GAZ:00002958 + Lebanon: + text: Lebanon + meaning: GAZ:00002478 + Lesotho: + text: Lesotho + meaning: GAZ:00001098 + Liberia: + text: Liberia + meaning: GAZ:00000911 + Libya: + text: Libya + meaning: GAZ:00000566 + Liechtenstein: + text: Liechtenstein + meaning: GAZ:00003858 + Line Islands: + text: Line Islands + meaning: GAZ:00007144 + Lithuania: + text: Lithuania + meaning: GAZ:00002960 + Luxembourg: + text: Luxembourg + meaning: GAZ:00002947 + Macau: + text: Macau + meaning: GAZ:00003202 + Madagascar: + text: Madagascar + meaning: GAZ:00001108 + Malawi: + text: Malawi + meaning: GAZ:00001105 + Malaysia: + text: Malaysia + meaning: GAZ:00003902 + Maldives: + text: Maldives + meaning: GAZ:00006924 + Mali: + text: Mali + meaning: GAZ:00000584 + Malta: + text: Malta + meaning: GAZ:00004017 + Marshall Islands: + text: Marshall Islands + meaning: GAZ:00007161 + Martinique: + text: Martinique + meaning: GAZ:00067143 + Mauritania: + text: Mauritania + meaning: GAZ:00000583 + Mauritius: + text: Mauritius + meaning: GAZ:00003745 + Mayotte: + text: Mayotte + meaning: GAZ:00003943 + Mexico: + text: Mexico + meaning: GAZ:00002852 + Micronesia: + text: Micronesia + meaning: GAZ:00005862 + Midway Islands: + text: Midway Islands + meaning: GAZ:00007112 + Moldova: + text: Moldova + meaning: GAZ:00003897 + Monaco: + text: Monaco + meaning: GAZ:00003857 + Mongolia: + text: Mongolia + meaning: GAZ:00008744 + Montenegro: + text: Montenegro + meaning: GAZ:00006898 + Montserrat: + text: Montserrat + meaning: GAZ:00003988 + Morocco: + text: Morocco + meaning: GAZ:00000565 + Mozambique: + text: Mozambique + meaning: GAZ:00001100 + Myanmar: + text: Myanmar + meaning: GAZ:00006899 + Namibia: + text: Namibia + meaning: GAZ:00001096 + Nauru: + text: Nauru + meaning: GAZ:00006900 + Navassa Island: + text: Navassa Island + meaning: GAZ:00007119 + Nepal: + text: Nepal + meaning: GAZ:00004399 + Netherlands: + text: Netherlands + meaning: GAZ:00002946 + New Caledonia: + text: New Caledonia + meaning: GAZ:00005206 + New Zealand: + text: New Zealand + meaning: GAZ:00000469 + Nicaragua: + text: Nicaragua + meaning: GAZ:00002978 + Niger: + text: Niger + meaning: GAZ:00000585 + Nigeria: + text: Nigeria + meaning: GAZ:00000912 + Niue: + text: Niue + meaning: GAZ:00006902 + Norfolk Island: + text: Norfolk Island + meaning: GAZ:00005908 + North Korea: + text: North Korea + meaning: GAZ:00002801 + North Macedonia: + text: North Macedonia + meaning: GAZ:00006895 + North Sea: + text: North Sea + meaning: GAZ:00002284 + Northern Mariana Islands: + text: Northern Mariana Islands + meaning: GAZ:00003958 + Norway: + text: Norway + meaning: GAZ:00002699 + Oman: + text: Oman + meaning: GAZ:00005283 + Pakistan: + text: Pakistan + meaning: GAZ:00005246 + Palau: + text: Palau + meaning: GAZ:00006905 + Panama: + text: Panama + meaning: GAZ:00002892 + Papua New Guinea: + text: Papua New Guinea + meaning: GAZ:00003922 + Paracel Islands: + text: Paracel Islands + meaning: GAZ:00010832 + Paraguay: + text: Paraguay + meaning: GAZ:00002933 + Peru: + text: Peru + meaning: GAZ:00002932 + Philippines: + text: Philippines + meaning: GAZ:00004525 + Pitcairn Islands: + text: Pitcairn Islands + meaning: GAZ:00005867 + Poland: + text: Poland + meaning: GAZ:00002939 + Portugal: + text: Portugal + meaning: GAZ:00004126 + Puerto Rico: + text: Puerto Rico + meaning: GAZ:00006935 + Qatar: + text: Qatar + meaning: GAZ:00005286 + Republic of the Congo: + text: Republic of the Congo + meaning: GAZ:00001088 + Reunion: + text: Reunion + meaning: GAZ:00003945 + Romania: + text: Romania + meaning: GAZ:00002951 + Ross Sea: + text: Ross Sea + meaning: GAZ:00023304 + Russia: + text: Russia + meaning: GAZ:00002721 + Rwanda: + text: Rwanda + meaning: GAZ:00001087 + Saint Helena: + text: Saint Helena + meaning: GAZ:00000849 + Saint Kitts and Nevis: + text: Saint Kitts and Nevis + meaning: GAZ:00006906 + Saint Lucia: + text: Saint Lucia + meaning: GAZ:00006909 + Saint Pierre and Miquelon: + text: Saint Pierre and Miquelon + meaning: GAZ:00003942 + Saint Martin: + text: Saint Martin + meaning: GAZ:00005841 + Saint Vincent and the Grenadines: + text: Saint Vincent and the Grenadines + meaning: GAZ:02000565 + Samoa: + text: Samoa + meaning: GAZ:00006910 + San Marino: + text: San Marino + meaning: GAZ:00003102 + Sao Tome and Principe: + text: Sao Tome and Principe + meaning: GAZ:00006927 + Saudi Arabia: + text: Saudi Arabia + meaning: GAZ:00005279 + Senegal: + text: Senegal + meaning: GAZ:00000913 + Serbia: + text: Serbia + meaning: GAZ:00002957 + Seychelles: + text: Seychelles + meaning: GAZ:00006922 + Sierra Leone: + text: Sierra Leone + meaning: GAZ:00000914 + Singapore: + text: Singapore + meaning: GAZ:00003923 + Sint Maarten: + text: Sint Maarten + meaning: GAZ:00012579 + Slovakia: + text: Slovakia + meaning: GAZ:00002956 + Slovenia: + text: Slovenia + meaning: GAZ:00002955 + Solomon Islands: + text: Solomon Islands + meaning: GAZ:00005275 + Somalia: + text: Somalia + meaning: GAZ:00001104 + South Africa: + text: South Africa + meaning: GAZ:00001094 + South Georgia and the South Sandwich Islands: + text: South Georgia and the South Sandwich Islands + meaning: GAZ:00003990 + South Korea: + text: South Korea + meaning: GAZ:00002802 + South Sudan: + text: South Sudan + meaning: GAZ:00233439 + Spain: + text: Spain + meaning: GAZ:00003936 + Spratly Islands: + text: Spratly Islands + meaning: GAZ:00010831 + Sri Lanka: + text: Sri Lanka + meaning: GAZ:00003924 + State of Palestine: + text: State of Palestine + meaning: GAZ:00002475 + Sudan: + text: Sudan + meaning: GAZ:00000560 + Suriname: + text: Suriname + meaning: GAZ:00002525 + Svalbard: + text: Svalbard + meaning: GAZ:00005396 + Swaziland: + text: Swaziland + meaning: GAZ:00001099 + Sweden: + text: Sweden + meaning: GAZ:00002729 + Switzerland: + text: Switzerland + meaning: GAZ:00002941 + Syria: + text: Syria + meaning: GAZ:00002474 + Taiwan: + text: Taiwan + meaning: GAZ:00005341 + Tajikistan: + text: Tajikistan + meaning: GAZ:00006912 + Tanzania: + text: Tanzania + meaning: GAZ:00001103 + Thailand: + text: Thailand + meaning: GAZ:00003744 + Timor-Leste: + text: Timor-Leste + meaning: GAZ:00006913 + Togo: + text: Togo + meaning: GAZ:00000915 + Tokelau: + text: Tokelau + meaning: GAZ:00260188 + Tonga: + text: Tonga + meaning: GAZ:00006916 + Trinidad and Tobago: + text: Trinidad and Tobago + meaning: GAZ:00003767 + Tromelin Island: + text: Tromelin Island + meaning: GAZ:00005812 + Tunisia: + text: Tunisia + meaning: GAZ:00000562 + Turkey: + text: Turkey + meaning: GAZ:00000558 + Turkmenistan: + text: Turkmenistan + meaning: GAZ:00005018 + Turks and Caicos Islands: + text: Turks and Caicos Islands + meaning: GAZ:00003955 + Tuvalu: + text: Tuvalu + meaning: GAZ:00009715 + United States of America: + text: United States of America + meaning: GAZ:00002459 + Uganda: + text: Uganda + meaning: GAZ:00001102 + Ukraine: + text: Ukraine + meaning: GAZ:00002724 + United Arab Emirates: + text: United Arab Emirates + meaning: GAZ:00005282 + United Kingdom: + text: United Kingdom + meaning: GAZ:00002637 + Uruguay: + text: Uruguay + meaning: GAZ:00002930 + Uzbekistan: + text: Uzbekistan + meaning: GAZ:00004979 + Vanuatu: + text: Vanuatu + meaning: GAZ:00006918 + Venezuela: + text: Venezuela + meaning: GAZ:00002931 + Viet Nam: + text: Viet Nam + meaning: GAZ:00003756 + Virgin Islands: + text: Virgin Islands + meaning: GAZ:00003959 + Wake Island: + text: Wake Island + meaning: GAZ:00007111 + Wallis and Futuna: + text: Wallis and Futuna + meaning: GAZ:00007191 + West Bank: + text: West Bank + meaning: GAZ:00009572 + Western Sahara: + text: Western Sahara + meaning: GAZ:00000564 + Yemen: + text: Yemen + meaning: GAZ:00005284 + Zambia: + text: Zambia + meaning: GAZ:00001107 + Zimbabwe: + text: Zimbabwe + meaning: GAZ:00001106 + geo_loc_name (site) menu: + name: geo_loc_name (site) menu + permissible_values: + Banff National Park: + text: Banff National Park + meaning: GAZ:00055489 + Clayoquot Sound: + text: Clayoquot Sound + meaning: GAZ:00055538 + Grassi Lakes: + text: Grassi Lakes + Horseshoe Canyon: + text: Horseshoe Canyon + meaning: GAZ:00284745 + Ink Pots: + text: Ink Pots + Lake Louise: + text: Lake Louise + meaning: GAZ:00084160 + Sylvan Lake: + text: Sylvan Lake + meaning: GAZ:00084188 + purpose of sampling menu: + name: purpose of sampling menu + permissible_values: + Cluster/Outbreak investigation: + text: Cluster/Outbreak investigation + meaning: GENEPIO:0100001 + Diagnostic testing: + text: Diagnostic testing + meaning: GENEPIO:0100002 + Research: + text: Research + meaning: GENEPIO:0100003 + Survey study: + text: Survey study + meaning: GENEPIO:0100582 + is_a: Research + Surveillance: + text: Surveillance + meaning: GENEPIO:0100004 + anatomical material menu: + name: anatomical material menu + permissible_values: + Skin: + text: Skin + meaning: UBERON:0002097 + Tissue: + text: Tissue + meaning: UBERON:0000479 + Pierced tissue: + text: Pierced tissue + is_a: Tissue + Wound tissue (injury): + text: Wound tissue (injury) + meaning: NCIT:C3671 + is_a: Tissue + anatomical part menu: + name: anatomical part menu + permissible_values: + Animal body or body part: + text: Animal body or body part + meaning: FOODON:03420127 + Berry: + text: Berry + meaning: FOODON:00003521 + Colon: + text: Colon + meaning: UBERON:0001155 + Ascending colon: + text: Ascending colon + meaning: UBERON:0001156 + is_a: Colon + Ear: + text: Ear + meaning: UBERON:0001690 + Flower: + text: Flower + meaning: PO:0009046 + Flower petal: + text: Flower petal + meaning: PO:0009032 + is_a: Flower + Leaf: + text: Leaf + meaning: PO:0025034 + Nasal cavity: + text: Nasal cavity + meaning: UBERON:0001707 + Oral cavity: + text: Oral cavity + meaning: UBERON:0000167 + Vagina: + text: Vagina + meaning: UBERON:0000996 + body product menu: + name: body product menu + permissible_values: + Feces: + text: Feces + meaning: UBERON:0001988 + environmental material menu: + name: environmental material menu + permissible_values: + Algal film: + text: Algal film + meaning: ENVO:01001189 + Bandage: + text: Bandage + Cerebral spinal fluid (CSF) shunt: + text: Cerebral spinal fluid (CSF) shunt + Food: + text: Food + meaning: CHEBI:33290 + Gauze: + text: Gauze + Gravel: + text: Gravel + meaning: ENVO:01000018 + Moss: + text: Moss + Peat: + text: Peat + meaning: ENVO:00005774 + Phone: + text: Phone + meaning: ENVO:01000581 + Phone screen: + text: Phone screen + is_a: Phone + Pipe (metal): + text: Pipe (metal) + Prosthetic limb: + text: Prosthetic limb + Prosthetic hip: + text: Prosthetic hip + is_a: Prosthetic limb + Rock: + text: Rock + meaning: ENVO:00001995 + Sand: + text: Sand + meaning: ENVO:01000017 + Black sand: + text: Black sand + is_a: Sand + Copper sand: + text: Copper sand + is_a: Sand + Sludge: + text: Sludge + meaning: ENVO:00002044 + Soil: + text: Soil + meaning: ENVO:00001998 + Snow: + text: Snow + meaning: ENVO:01000406 + Water: + text: Water + meaning: ENVO:00002006 + Surface runoff: + text: Surface runoff + is_a: Water + Surface water foam: + text: Surface water foam + meaning: ENVO:00005738 + is_a: Water + Tap water: + text: Tap water + is_a: Water + Drinking water: + text: Drinking water + meaning: ENVO:00003064 + is_a: Tap water + Water outlet: + text: Water outlet + environmental site menu: + name: environmental site menu + permissible_values: + Bird bath: + text: Bird bath + Deep water area: + text: Deep water area + Fish tank: + text: Fish tank + Fountain: + text: Fountain + Fountain pond: + text: Fountain pond + is_a: Fountain + Hoodoo: + text: Hoodoo + Hospital: + text: Hospital + meaning: ENVO:00002173 + Laboratory: + text: Laboratory + meaning: ENVO:01001406 + Lake: + text: Lake + meaning: ENVO:00000020 + Pond: + text: Pond + meaning: ENVO:00000033 + Shoreline: + text: Shoreline + meaning: ENVO:00000486 + Stream: + text: Stream + meaning: ENVO:00000023 + Tailing pond: + text: Tailing pond + meaning: ENVO:03600021 + Waterfall: + text: Waterfall + meaning: ENVO:00000040 + collection device menu: + name: collection device menu + permissible_values: + Filter: + text: Filter + meaning: GENEPIO:0100103 + Filter cage: + text: Filter cage + is_a: Filter + Swab: + text: Swab + meaning: GENEPIO:0100027 + collection method menu: + name: collection method menu + permissible_values: + Biopsy: + text: Biopsy + meaning: OBI:0002650 + specimen processing menu: + name: specimen processing menu + permissible_values: + Biological replicate: + text: Biological replicate + meaning: EFO:0002091 + incubation temperature unit menu: + name: incubation temperature unit menu + permissible_values: + Degree Celsius: + text: Degree Celsius + meaning: UO:0000027 + Degree Farenheit: + text: Degree Farenheit + meaning: UO:0000195 + isolation medium menu: + name: isolation medium menu + permissible_values: + 1/10 869: + text: 1/10 869 + Anaerobic agar (AA): + text: Anaerobic agar (AA) + Bile esculin agar (BEA): + text: Bile esculin agar (BEA) + meaning: MICRO:0000605 + Brain heart infusion (BHI): + text: Brain heart infusion (BHI) + meaning: MICRO:0000566 + Brain heart infusion III + Supplement Set A (BHI-A): + text: Brain heart infusion III + Supplement Set A (BHI-A) + is_a: Brain heart infusion (BHI) + Brain heart infusion II + Supplement Set B (BHI-B): + text: Brain heart infusion II + Supplement Set B (BHI-B) + is_a: Brain heart infusion (BHI) + Brain heart infusion IV + Supplement Set A & B (BHI-AB): + text: Brain heart infusion IV + Supplement Set A & B (BHI-AB) + is_a: Brain heart infusion (BHI) + Supplemented BHI (sBHI 2.0): + text: Supplemented BHI (sBHI 2.0) + is_a: Brain heart infusion (BHI) + "Brewer\u2019s anaerobic agar (BAA)": + text: "Brewer\u2019s anaerobic agar (BAA)" + "Brucella blood agar + 5% sheep\u2019s blood": + text: "Brucella blood agar + 5% sheep\u2019s blood" + meaning: MICRO:0000086 + Chocolate blood agar: + text: Chocolate blood agar + meaning: MICRO:0000591 + "Columbia blood agar + 5% sheep\u2019s blood (CBA)": + text: "Columbia blood agar + 5% sheep\u2019s blood (CBA)" + meaning: MICRO:0000535 + Cooked meat medium from dehydrated meat extracts (Meat): + text: Cooked meat medium from dehydrated meat extracts (Meat) + Cooke rose bengal agar (CRB): + text: Cooke rose bengal agar (CRB) + Desoxycholate (DOC): + text: Desoxycholate (DOC) + Fastidious anaerobic agar (FAA): + text: Fastidious anaerobic agar (FAA) + Kligler iron agar (KIA): + text: Kligler iron agar (KIA) + meaning: MICRO:0001182 + Lysogeny broth agar (LB): + text: Lysogeny broth agar (LB) + M9 minimal medium (M9): + text: M9 minimal medium (M9) + M9 minimal media + insulin (M9 + insulin): + text: M9 minimal media + insulin (M9 + insulin) + is_a: M9 minimal medium (M9) + M9 minimal media + mucin (M9 + mucin): + text: M9 minimal media + mucin (M9 + mucin) + is_a: M9 minimal medium (M9) + M9 minimal media + starch (M9 + starch): + text: M9 minimal media + starch (M9 + starch) + is_a: M9 minimal medium (M9) + M17 minimal medium (M17): + text: M17 minimal medium (M17) + MacConkey agar (MCA): + text: MacConkey agar (MCA) + meaning: MICRO:0000558 + Marine broth agar (MBA): + text: Marine broth agar (MBA) + Medium 10 agar (M10): + text: Medium 10 agar (M10) + Medium DAMS5.8 simple: + text: Medium DAMS5.8 simple + No salt lysogeny broth agar (NSLB): + text: No salt lysogeny broth agar (NSLB) + No salt lysogeny broth agar + 5-15% sucrose (NSLB + 5-15% sucrose): + text: No salt lysogeny broth agar + 5-15% sucrose (NSLB + 5-15% sucrose) + is_a: No salt lysogeny broth agar (NSLB) + Nutrient agar: + text: Nutrient agar + meaning: MICRO:0000553 + "Phenylethyl alcohol agar + 5% sheep\u2019s blood (PEA)": + text: "Phenylethyl alcohol agar + 5% sheep\u2019s blood (PEA)" + meaning: MICRO:0000622 + Plate count medium (PC): + text: Plate count medium (PC) + meaning: MICRO:0000549 + Pseudomonas isolation medium (PIA): + text: Pseudomonas isolation medium (PIA) + meaning: MICRO:0000550 + Reasoner's 2A agar (R2A): + text: Reasoner's 2A agar (R2A) + meaning: MICRO:0000543 + Reinforced Clostridial agar (RCA): + text: Reinforced Clostridial agar (RCA) + Staphylococcus isolation medium (SIA): + text: Staphylococcus isolation medium (SIA) + Tryptic soy agar + Supplement A & B + yeast (TSY): + text: Tryptic soy agar + Supplement A & B + yeast (TSY) + "Sheep\u2019s blood (5%)": + text: "Sheep\u2019s blood (5%)" + Supplement A: + text: Supplement A + Supplement B: + text: Supplement B + Supplement 2.0: + text: Supplement 2.0 + taxonomic identification method menu: + name: taxonomic identification method menu + permissible_values: + Whole genome sequencing assay: + text: Whole genome sequencing assay + meaning: OBI:0002117 + 16S ribosomal gene sequencing assay: + text: 16S ribosomal gene sequencing assay + meaning: OBI:0002763 + PCR assay: + text: PCR assay + meaning: OBI:0002740 + Comparative phenotypic assessment: + text: Comparative phenotypic assessment + meaning: OBI:0001546 + taxonomic identification method details menu: + name: taxonomic identification method details menu + permissible_values: + 'Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database': + text: 'Species-level ID: >99.3% identity and unambiguous match to one type + (T) sequence in a curated database' + 'Genus-level ID: >99.0% identity but ambiguous match to >1 type (T) sequence in databases': + text: 'Genus-level ID: >99.0% identity but ambiguous match to >1 type (T) + sequence in databases' + 'Genus-level ID: >98.7% identity to a type (T) sequence AND/OR >99.0% identity with a sequence that has not been typed*': + text: 'Genus-level ID: >98.7% identity to a type (T) sequence AND/OR >99.0% + identity with a sequence that has not been typed*' + Need to do whole genome sequencing to confirm their identity: + text: Need to do whole genome sequencing to confirm their identity + cellular respiration type menu: + name: cellular respiration type menu + permissible_values: + Aerobic respiration: + text: Aerobic respiration + meaning: GO:0009060 + Anaerobic respiration: + text: Anaerobic respiration + meaning: GO:0009061 + host (common name) menu: + name: host (common name) menu + permissible_values: + Horse: + text: Horse + meaning: NCBITaxon:9796 + Human: + text: Human + meaning: NCBITaxon:9606 + Plant: + text: Plant + meaning: NCBITaxon:47299 + Bush: + text: Bush + is_a: Plant + Canola plant: + text: Canola plant + is_a: Plant + Gerranium plant: + text: Gerranium plant + meaning: NCBITaxon:4028 + is_a: Plant + Tree: + text: Tree + is_a: Plant + Poplar tree: + text: Poplar tree + is_a: Tree + Willow tree: + text: Willow tree + is_a: Tree + Snail: + text: Snail + meaning: FOODON:03412114 + host (scientific name) menu: + name: host (scientific name) menu + permissible_values: + Equus caballus: + text: Equus caballus + Homo sapiens: + text: Homo sapiens + host disease menu: + name: host disease menu + permissible_values: + Colitis: + text: Colitis + Acute colitis: + text: Acute colitis + is_a: Colitis + Cystic fibrosis: + text: Cystic fibrosis + Gastroenteritis: + text: Gastroenteritis + Pyelonephritis: + text: Pyelonephritis + Acute pyelonephritis: + text: Acute pyelonephritis + is_a: Pyelonephritis + Urinary tract infection: + text: Urinary tract infection + sequencing instrument menu: + name: sequencing instrument menu + permissible_values: + Illumina: + text: Illumina + meaning: GENEPIO:0100105 + Illumina Genome Analyzer: + text: Illumina Genome Analyzer + meaning: GENEPIO:0100106 + is_a: Illumina + Illumina Genome Analyzer II: + text: Illumina Genome Analyzer II + meaning: GENEPIO:0100107 + is_a: Illumina Genome Analyzer + Illumina Genome Analyzer IIx: + text: Illumina Genome Analyzer IIx + meaning: GENEPIO:0100108 + is_a: Illumina Genome Analyzer + Illumina HiScanSQ: + text: Illumina HiScanSQ + meaning: GENEPIO:0100109 + is_a: Illumina + Illumina HiSeq: + text: Illumina HiSeq + meaning: GENEPIO:0100110 + is_a: Illumina + Illumina HiSeq X: + text: Illumina HiSeq X + meaning: GENEPIO:0100111 + is_a: Illumina HiSeq + Illumina HiSeq X Five: + text: Illumina HiSeq X Five + meaning: GENEPIO:0100112 + is_a: Illumina HiSeq X + Illumina HiSeq X Ten: + text: Illumina HiSeq X Ten + meaning: GENEPIO:0100113 + is_a: Illumina HiSeq X + Illumina HiSeq 1000: + text: Illumina HiSeq 1000 + meaning: GENEPIO:0100114 + is_a: Illumina HiSeq + Illumina HiSeq 1500: + text: Illumina HiSeq 1500 + meaning: GENEPIO:0100115 + is_a: Illumina HiSeq + Illumina HiSeq 2000: + text: Illumina HiSeq 2000 + meaning: GENEPIO:0100116 + is_a: Illumina HiSeq + Illumina HiSeq 2500: + text: Illumina HiSeq 2500 + meaning: GENEPIO:0100117 + is_a: Illumina HiSeq + Illumina HiSeq 3000: + text: Illumina HiSeq 3000 + meaning: GENEPIO:0100118 + is_a: Illumina HiSeq + Illumina HiSeq 4000: + text: Illumina HiSeq 4000 + meaning: GENEPIO:0100119 + is_a: Illumina HiSeq + Illumina iSeq: + text: Illumina iSeq + meaning: GENEPIO:0100120 + is_a: Illumina + Illumina iSeq 100: + text: Illumina iSeq 100 + meaning: GENEPIO:0100121 + is_a: Illumina iSeq + Illumina NovaSeq: + text: Illumina NovaSeq + meaning: GENEPIO:0100122 + is_a: Illumina + Illumina NovaSeq 6000: + text: Illumina NovaSeq 6000 + meaning: GENEPIO:0100123 + is_a: Illumina NovaSeq + Illumina MiniSeq: + text: Illumina MiniSeq + meaning: GENEPIO:0100124 + is_a: Illumina + Illumina MiSeq: + text: Illumina MiSeq + meaning: GENEPIO:0100125 + is_a: Illumina + Illumina NextSeq: + text: Illumina NextSeq + meaning: GENEPIO:0100126 + is_a: Illumina + Illumina NextSeq 500: + text: Illumina NextSeq 500 + meaning: GENEPIO:0100127 + is_a: Illumina NextSeq + Illumina NextSeq 550: + text: Illumina NextSeq 550 + meaning: GENEPIO:0100128 + is_a: Illumina NextSeq + Illumina NextSeq 2000: + text: Illumina NextSeq 2000 + meaning: GENEPIO:0100129 + is_a: Illumina NextSeq + Pacific Biosciences: + text: Pacific Biosciences + meaning: GENEPIO:0100130 + PacBio RS: + text: PacBio RS + meaning: GENEPIO:0100131 + is_a: Pacific Biosciences + PacBio RS II: + text: PacBio RS II + meaning: GENEPIO:0100132 + is_a: Pacific Biosciences + PacBio Sequel: + text: PacBio Sequel + meaning: GENEPIO:0100133 + is_a: Pacific Biosciences + PacBio Sequel II: + text: PacBio Sequel II + meaning: GENEPIO:0100134 + is_a: Pacific Biosciences + Ion Torrent: + text: Ion Torrent + meaning: GENEPIO:0100135 + Ion Torrent PGM: + text: Ion Torrent PGM + meaning: GENEPIO:0100136 + is_a: Ion Torrent + Ion Torrent Proton: + text: Ion Torrent Proton + meaning: GENEPIO:0100137 + is_a: Ion Torrent + Ion Torrent S5 XL: + text: Ion Torrent S5 XL + meaning: GENEPIO:0100138 + is_a: Ion Torrent + Ion Torrent S5: + text: Ion Torrent S5 + meaning: GENEPIO:0100139 + is_a: Ion Torrent + Oxford Nanopore: + text: Oxford Nanopore + meaning: GENEPIO:0100140 + Oxford Nanopore GridION: + text: Oxford Nanopore GridION + meaning: GENEPIO:0100141 + is_a: Oxford Nanopore + Oxford Nanopore MinION: + text: Oxford Nanopore MinION + meaning: GENEPIO:0100142 + is_a: Oxford Nanopore + Oxford Nanopore PromethION: + text: Oxford Nanopore PromethION + meaning: GENEPIO:0100143 + is_a: Oxford Nanopore + BGI Genomics: + text: BGI Genomics + meaning: GENEPIO:0100144 + BGI Genomics BGISEQ-500: + text: BGI Genomics BGISEQ-500 + meaning: GENEPIO:0100145 + is_a: BGI Genomics + MGI: + text: MGI + meaning: GENEPIO:0100146 + MGI DNBSEQ-T7: + text: MGI DNBSEQ-T7 + meaning: GENEPIO:0100147 + is_a: MGI + MGI DNBSEQ-G400: + text: MGI DNBSEQ-G400 + meaning: GENEPIO:0100148 + is_a: MGI + MGI DNBSEQ-G400 FAST: + text: MGI DNBSEQ-G400 FAST + meaning: GENEPIO:0100149 + is_a: MGI + MGI DNBSEQ-G50: + text: MGI DNBSEQ-G50 + meaning: GENEPIO:0100150 + is_a: MGI + amplicon pcr primer list menu: + name: amplicon pcr primer list menu + permissible_values: + 27F: + text: 27F + meaning: GENEPIO:0100640 + 357F: + text: 357F + meaning: GENEPIO:0100645 + 543R: + text: 543R + meaning: GENEPIO:0100642 + 926R: + text: 926R + meaning: GENEPIO:0100643 + 1492R: + text: 1492R + meaning: GENEPIO:0100644 + ITS1F: + text: ITS1F + meaning: GENEPIO:0100668 + ITS3F: + text: ITS3F + meaning: GENEPIO:0100646 + ITS4F: + text: ITS4F + meaning: GENEPIO:0100647 + ITS4R: + text: ITS4R + meaning: GENEPIO:0100669 +types: + WhitespaceMinimizedString: + name: WhitespaceMinimizedString + typeof: string + description: 'A string that has all whitespace trimmed off of beginning and end, + and all internal whitespace segments reduced to single spaces. Whitespace includes + #x9 (tab), #xA (linefeed), and #xD (carriage return).' + base: str + uri: xsd:token + Provenance: + name: Provenance + typeof: string + description: A field containing a DataHarmonizer versioning marker. It is issued + by DataHarmonizer when validation is applied to a given row of data. + base: str + uri: xsd:token +settings: + Title_Case: (((?<=\b)[^a-z\W]\w*?|[\W])+) + UPPER_CASE: '[A-Z\W\d_]*' + lower_case: '[a-z\W\d_]*' diff --git a/web/templates/test/schema_core.yaml b/web/templates/test/schema_core.yaml new file mode 100644 index 00000000..ef0e6eca --- /dev/null +++ b/web/templates/test/schema_core.yaml @@ -0,0 +1,37 @@ +id: https://example.com/AMBR +name: AMBR +description: "" +version: 2.3.0 +imports: +- 'linkml:types' +prefixes: + linkml: 'https://w3id.org/linkml/' + GENEPIO: 'http://purl.obolibrary.org/obo/GENEPIO_' +classes: + dh_interface: + name: dh_interface + description: 'A DataHarmonizer interface' + from_schema: https://example.com/AMBR + 'AMBR': + name: 'AMBR' + description: The AMBR Project, led by the Harrison Lab at the University of Calgary, is an interdisciplinary study aimed at using 16S sequencing as part of a culturomics platform to identify antibiotic potentiators from the natural products of microbiota. The AMBR DataHarmonizer template was designed to standardize contextual data associated with the isolate repository from this work. + is_a: dh_interface +slots: {} +enums: {} +types: + WhitespaceMinimizedString: + name: 'WhitespaceMinimizedString' + typeof: string + description: 'A string that has all whitespace trimmed off of beginning and end, and all internal whitespace segments reduced to single spaces. Whitespace includes #x9 (tab), #xA (linefeed), and #xD (carriage return).' + base: str + uri: xsd:token + Provenance: + name: 'Provenance' + typeof: string + description: 'A field containing a DataHarmonizer versioning marker. It is issued by DataHarmonizer when validation is applied to a given row of data.' + base: str + uri: xsd:token +settings: + Title_Case: "(((?<=\\b)[^a-z\\W]\\w*?|[\\W])+)" + UPPER_CASE: "[A-Z\\W\\d_]*" + lower_case: "[a-z\\W\\d_]*" diff --git a/web/templates/test/schema_enums.tsv b/web/templates/test/schema_enums.tsv new file mode 100644 index 00000000..9d3a37bc --- /dev/null +++ b/web/templates/test/schema_enums.tsv @@ -0,0 +1,522 @@ +title meaning in_subset menu_1 menu_2 menu_3 menu_4 menu_5 description + +null value menu GENEPIO:0001619 Covid-19 Not Applicable + GENEPIO:0001620 Covid-19 Not Collected + GENEPIO:0001668 Covid-19 Not Provided + GENEPIO:0001618 Covid-19 Missing + GENEPIO:0001810 Covid-19 Restricted Access + + +geo_loc_name (country) menu GAZ:00006882 AMBR Afghanistan + GAZ:00002953 AMBR Albania + GAZ:00000563 AMBR Algeria + GAZ:00003957 AMBR American Samoa + GAZ:00002948 AMBR Andorra + GAZ:00001095 AMBR Angola + GAZ:00009159 AMBR Anguilla + GAZ:00000462 AMBR Antarctica + GAZ:00006883 AMBR Antigua and Barbuda + GAZ:00002928 AMBR Argentina + GAZ:00004094 AMBR Armenia + GAZ:00004025 AMBR Aruba + GAZ:00005901 AMBR Ashmore and Cartier Islands + GAZ:00000463 AMBR Australia + GAZ:00002942 AMBR Austria + GAZ:00004941 AMBR Azerbaijan + GAZ:00002733 AMBR Bahamas + GAZ:00005281 AMBR Bahrain + GAZ:00007117 AMBR Baker Island + GAZ:00003750 AMBR Bangladesh + GAZ:00001251 AMBR Barbados + GAZ:00005810 AMBR Bassas da India + GAZ:00006886 AMBR Belarus + GAZ:00002938 AMBR Belgium + GAZ:00002934 AMBR Belize + GAZ:00000904 AMBR Benin + GAZ:00001264 AMBR Bermuda + GAZ:00003920 AMBR Bhutan + GAZ:00002511 AMBR Bolivia + GAZ:00025355 AMBR Borneo + GAZ:00006887 AMBR Bosnia and Herzegovina + GAZ:00001097 AMBR Botswana + GAZ:00001453 AMBR Bouvet Island + GAZ:00002828 AMBR Brazil + GAZ:00003961 AMBR British Virgin Islands + GAZ:00003901 AMBR Brunei + GAZ:00002950 AMBR Bulgaria + GAZ:00000905 AMBR Burkina Faso + GAZ:00001090 AMBR Burundi + GAZ:00006888 AMBR Cambodia + GAZ:00001093 AMBR Cameroon + GAZ:00002560 AMBR Canada + GAZ:00001227 AMBR Cape Verde + GAZ:00003986 AMBR Cayman Islands + GAZ:00001089 AMBR Central African Republic + GAZ:00000586 AMBR Chad + GAZ:00002825 AMBR Chile + GAZ:00002845 AMBR China + GAZ:00005915 AMBR Christmas Island + GAZ:00005838 AMBR Clipperton Island + GAZ:00009721 AMBR Cocos Islands + GAZ:00002929 AMBR Colombia + GAZ:00005820 AMBR Comoros + GAZ:00053798 AMBR Cook Islands + GAZ:00005917 AMBR Coral Sea Islands + GAZ:00002901 AMBR Costa Rica + GAZ:00000906 AMBR Cote d'Ivoire + GAZ:00002719 AMBR Croatia + GAZ:00003762 AMBR Cuba + GAZ:00012582 AMBR Curacao + GAZ:00004006 AMBR Cyprus + GAZ:00002954 AMBR Czech Republic + GAZ:00001086 AMBR Democratic Republic of the Congo + GAZ:00005852 AMBR Denmark + GAZ:00000582 AMBR Djibouti + GAZ:00006890 AMBR Dominica + GAZ:00003952 AMBR Dominican Republic + GAZ:00002912 AMBR Ecuador + GAZ:00003934 AMBR Egypt + GAZ:00002935 AMBR El Salvador + GAZ:00001091 AMBR Equatorial Guinea + GAZ:00000581 AMBR Eritrea + GAZ:00002959 AMBR Estonia + GAZ:00001099 AMBR Eswatini + GAZ:00000567 AMBR Ethiopia + GAZ:00005811 AMBR Europa Island + GAZ:00001412 AMBR Falkland Islands (Islas Malvinas) + GAZ:00059206 AMBR Faroe Islands + GAZ:00006891 AMBR Fiji + GAZ:00002937 AMBR Finland + GAZ:00003940 AMBR France + GAZ:00002516 AMBR French Guiana + GAZ:00002918 AMBR French Polynesia + GAZ:00003753 AMBR French Southern and Antarctic Lands + GAZ:00001092 AMBR Gabon + GAZ:00000907 AMBR Gambia + GAZ:00009571 AMBR Gaza Strip + GAZ:00004942 AMBR Georgia + GAZ:00002646 AMBR Germany + GAZ:00000908 AMBR Ghana + GAZ:00003987 AMBR Gibraltar + GAZ:00005808 AMBR Glorioso Islands + GAZ:00002945 AMBR Greece + GAZ:00001507 AMBR Greenland + GAZ:02000573 AMBR Grenada + GAZ:00067142 AMBR Guadeloupe + GAZ:00003706 AMBR Guam + GAZ:00002936 AMBR Guatemala + GAZ:00001550 AMBR Guernsey + GAZ:00000909 AMBR Guinea + GAZ:00000910 AMBR Guinea-Bissau + GAZ:00002522 AMBR Guyana + GAZ:00003953 AMBR Haiti + GAZ:00009718 AMBR Heard Island and McDonald Islands + GAZ:00002894 AMBR Honduras + GAZ:00003203 AMBR Hong Kong + GAZ:00007120 AMBR Howland Island + GAZ:00002952 AMBR Hungary + GAZ:00000843 AMBR Iceland + GAZ:00002839 AMBR India + GAZ:00003727 AMBR Indonesia + GAZ:00004474 AMBR Iran + GAZ:00004483 AMBR Iraq + GAZ:00002943 AMBR Ireland + GAZ:00052477 AMBR Isle of Man + GAZ:00002476 AMBR Israel + GAZ:00002650 AMBR Italy + GAZ:00003781 AMBR Jamaica + GAZ:00005853 AMBR Jan Mayen + GAZ:00002747 AMBR Japan + GAZ:00007118 AMBR Jarvis Island + GAZ:00001551 AMBR Jersey + GAZ:00007114 AMBR Johnston Atoll + GAZ:00002473 AMBR Jordan + GAZ:00005809 AMBR Juan de Nova Island + GAZ:00004999 AMBR Kazakhstan + GAZ:00001101 AMBR Kenya + GAZ:00005682 AMBR Kerguelen Archipelago + GAZ:00007116 AMBR Kingman Reef + GAZ:00006894 AMBR Kiribati + GAZ:00011337 AMBR Kosovo + GAZ:00005285 AMBR Kuwait + GAZ:00006893 AMBR Kyrgyzstan + GAZ:00006889 AMBR Laos + GAZ:00002958 AMBR Latvia + GAZ:00002478 AMBR Lebanon + GAZ:00001098 AMBR Lesotho + GAZ:00000911 AMBR Liberia + GAZ:00000566 AMBR Libya + GAZ:00003858 AMBR Liechtenstein + GAZ:00007144 AMBR Line Islands + GAZ:00002960 AMBR Lithuania + GAZ:00002947 AMBR Luxembourg + GAZ:00003202 AMBR Macau + GAZ:00001108 AMBR Madagascar + GAZ:00001105 AMBR Malawi + GAZ:00003902 AMBR Malaysia + GAZ:00006924 AMBR Maldives + GAZ:00000584 AMBR Mali + GAZ:00004017 AMBR Malta + GAZ:00007161 AMBR Marshall Islands + GAZ:00067143 AMBR Martinique + GAZ:00000583 AMBR Mauritania + GAZ:00003745 AMBR Mauritius + GAZ:00003943 AMBR Mayotte + GAZ:00002852 AMBR Mexico + GAZ:00005862 AMBR Micronesia + GAZ:00007112 AMBR Midway Islands + GAZ:00003897 AMBR Moldova + GAZ:00003857 AMBR Monaco + GAZ:00008744 AMBR Mongolia + GAZ:00006898 AMBR Montenegro + GAZ:00003988 AMBR Montserrat + GAZ:00000565 AMBR Morocco + GAZ:00001100 AMBR Mozambique + GAZ:00006899 AMBR Myanmar + GAZ:00001096 AMBR Namibia + GAZ:00006900 AMBR Nauru + GAZ:00007119 AMBR Navassa Island + GAZ:00004399 AMBR Nepal + GAZ:00002946 AMBR Netherlands + GAZ:00005206 AMBR New Caledonia + GAZ:00000469 AMBR New Zealand + GAZ:00002978 AMBR Nicaragua + GAZ:00000585 AMBR Niger + GAZ:00000912 AMBR Nigeria + GAZ:00006902 AMBR Niue + GAZ:00005908 AMBR Norfolk Island + GAZ:00002801 AMBR North Korea + GAZ:00006895 AMBR North Macedonia + GAZ:00002284 AMBR North Sea + GAZ:00003958 AMBR Northern Mariana Islands + GAZ:00002699 AMBR Norway + GAZ:00005283 AMBR Oman + GAZ:00005246 AMBR Pakistan + GAZ:00006905 AMBR Palau + GAZ:00002892 AMBR Panama + GAZ:00003922 AMBR Papua New Guinea + GAZ:00010832 AMBR Paracel Islands + GAZ:00002933 AMBR Paraguay + GAZ:00002932 AMBR Peru + GAZ:00004525 AMBR Philippines + GAZ:00005867 AMBR Pitcairn Islands + GAZ:00002939 AMBR Poland + GAZ:00004126 AMBR Portugal + GAZ:00006935 AMBR Puerto Rico + GAZ:00005286 AMBR Qatar + GAZ:00001088 AMBR Republic of the Congo + GAZ:00003945 AMBR Reunion + GAZ:00002951 AMBR Romania + GAZ:00023304 AMBR Ross Sea + GAZ:00002721 AMBR Russia + GAZ:00001087 AMBR Rwanda + GAZ:00000849 AMBR Saint Helena + GAZ:00006906 AMBR Saint Kitts and Nevis + GAZ:00006909 AMBR Saint Lucia + GAZ:00003942 AMBR Saint Pierre and Miquelon + GAZ:00005841 AMBR Saint Martin + GAZ:02000565 AMBR Saint Vincent and the Grenadines + GAZ:00006910 AMBR Samoa + GAZ:00003102 AMBR San Marino + GAZ:00006927 AMBR Sao Tome and Principe + GAZ:00005279 AMBR Saudi Arabia + GAZ:00000913 AMBR Senegal + GAZ:00002957 AMBR Serbia + GAZ:00006922 AMBR Seychelles + GAZ:00000914 AMBR Sierra Leone + GAZ:00003923 AMBR Singapore + GAZ:00012579 AMBR Sint Maarten + GAZ:00002956 AMBR Slovakia + GAZ:00002955 AMBR Slovenia + GAZ:00005275 AMBR Solomon Islands + GAZ:00001104 AMBR Somalia + GAZ:00001094 AMBR South Africa + GAZ:00003990 AMBR South Georgia and the South Sandwich Islands + GAZ:00002802 AMBR South Korea + GAZ:00233439 AMBR South Sudan + GAZ:00003936 AMBR Spain + GAZ:00010831 AMBR Spratly Islands + GAZ:00003924 AMBR Sri Lanka + GAZ:00002475 AMBR State of Palestine + GAZ:00000560 AMBR Sudan + GAZ:00002525 AMBR Suriname + GAZ:00005396 AMBR Svalbard + GAZ:00001099 AMBR Swaziland + GAZ:00002729 AMBR Sweden + GAZ:00002941 AMBR Switzerland + GAZ:00002474 AMBR Syria + GAZ:00005341 AMBR Taiwan + GAZ:00006912 AMBR Tajikistan + GAZ:00001103 AMBR Tanzania + GAZ:00003744 AMBR Thailand + GAZ:00006913 AMBR Timor-Leste + GAZ:00000915 AMBR Togo + GAZ:00260188 AMBR Tokelau + GAZ:00006916 AMBR Tonga + GAZ:00003767 AMBR Trinidad and Tobago + GAZ:00005812 AMBR Tromelin Island + GAZ:00000562 AMBR Tunisia + GAZ:00000558 AMBR Turkey + GAZ:00005018 AMBR Turkmenistan + GAZ:00003955 AMBR Turks and Caicos Islands + GAZ:00009715 AMBR Tuvalu + GAZ:00002459 AMBR United States of America + GAZ:00001102 AMBR Uganda + GAZ:00002724 AMBR Ukraine + GAZ:00005282 AMBR United Arab Emirates + GAZ:00002637 AMBR United Kingdom + GAZ:00002930 AMBR Uruguay + GAZ:00004979 AMBR Uzbekistan + GAZ:00006918 AMBR Vanuatu + GAZ:00002931 AMBR Venezuela + GAZ:00003756 AMBR Viet Nam + GAZ:00003959 AMBR Virgin Islands + GAZ:00007111 AMBR Wake Island + GAZ:00007191 AMBR Wallis and Futuna + GAZ:00009572 AMBR West Bank + GAZ:00000564 AMBR Western Sahara + GAZ:00005284 AMBR Yemen + GAZ:00001107 AMBR Zambia + GAZ:00001106 AMBR Zimbabwe + + +geo_loc_name (site) menu GAZ:00055489 AMBR Banff National Park + GAZ:00055538 AMBR Clayoquot Sound + AMBR Grassi Lakes + GAZ:00284745 AMBR Horseshoe Canyon + AMBR Ink Pots + GAZ:00084160 AMBR Lake Louise + GAZ:00084188 AMBR Sylvan Lake + + +purpose of sampling menu GENEPIO:0100001 AMBR Cluster/Outbreak investigation + GENEPIO:0100002 AMBR Diagnostic testing + GENEPIO:0100003 AMBR Research + GENEPIO:0100582 Survey study + GENEPIO:0100004 AMBR Surveillance + + + +anatomical material menu UBERON:0002097 AMBR Skin + UBERON:0000479 AMBR Tissue + AMBR Pierced tissue + NCIT:C3671 AMBR Wound tissue (injury) + + +anatomical part menu FOODON:03420127 AMBR Animal body or body part + FOODON:00003521 AMBR Berry + UBERON:0001155 AMBR Colon + UBERON:0001156 AMBR Ascending colon + UBERON:0001690 AMBR Ear + PO:0009046 AMBR Flower + PO:0009032 AMBR Flower petal + PO:0025034 AMBR Leaf + UBERON:0001707 AMBR Nasal cavity + UBERON:0000167 AMBR Oral cavity + UBERON:0000996 AMBR Vagina + + +body product menu UBERON:0001988 AMBR Feces + + +environmental material menu ENVO:01001189 AMBR Algal film + AMBR Bandage + AMBR Cerebral spinal fluid (CSF) shunt + CHEBI:33290 AMBR Food + AMBR Gauze + ENVO:01000018 AMBR Gravel + AMBR Moss + ENVO:00005774 AMBR Peat + ENVO:01000581 AMBR Phone + AMBR Phone screen + AMBR Pipe (metal) + AMBR Prosthetic limb + AMBR Prosthetic hip + ENVO:00001995 AMBR Rock + ENVO:01000017 AMBR Sand + AMBR Black sand + AMBR Copper sand + ENVO:00002044 AMBR Sludge + ENVO:00001998 AMBR Soil + ENVO:01000406 AMBR Snow + ENVO:00002006 AMBR Water + AMBR Surface runoff + ENVO:00005738 AMBR Surface water foam + AMBR Tap water + ENVO:00003064 AMBR Drinking water + AMBR Water outlet + + +environmental site menu AMBR Bird bath + AMBR Deep water area + AMBR Fish tank + AMBR Fountain + AMBR Fountain pond + AMBR Hoodoo + ENVO:00002173 AMBR Hospital + ENVO:01001406 AMBR Laboratory + ENVO:00000020 AMBR Lake + ENVO:00000033 AMBR Pond + ENVO:00000486 AMBR Shoreline + ENVO:00000023 AMBR Stream + ENVO:03600021 AMBR Tailing pond + ENVO:00000040 AMBR Waterfall + + +collection device menu GENEPIO:0100103 AMBR Filter + AMBR Filter cage + GENEPIO:0100027 AMBR Swab + + +collection method menu OBI:0002650 AMBR Biopsy + + +specimen processing menu EFO:0002091 Biological replicate + + +incubation temperature unit menu UO:0000027 AMBR Degree Celsius + UO:0000195 AMBR Degree Farenheit + + +isolation medium menu AMBR 1/10 869 + AMBR Anaerobic agar (AA) + MICRO:0000605 AMBR Bile esculin agar (BEA) + MICRO:0000566 AMBR Brain heart infusion (BHI) + AMBR Brain heart infusion III + Supplement Set A (BHI-A) + AMBR Brain heart infusion II + Supplement Set B (BHI-B) + AMBR Brain heart infusion IV + Supplement Set A & B (BHI-AB) + AMBR Supplemented BHI (sBHI 2.0) + AMBR Brewer’s anaerobic agar (BAA) + MICRO:0000086 AMBR Brucella blood agar + 5% sheep’s blood + MICRO:0000591 AMBR Chocolate blood agar + MICRO:0000535 AMBR Columbia blood agar + 5% sheep’s blood (CBA) + AMBR Cooked meat medium from dehydrated meat extracts (Meat) + AMBR Cooke rose bengal agar (CRB) + AMBR Desoxycholate (DOC) + AMBR Fastidious anaerobic agar (FAA) + MICRO:0001182 AMBR Kligler iron agar (KIA) + AMBR Lysogeny broth agar (LB) + AMBR M9 minimal medium (M9) + AMBR M9 minimal media + insulin (M9 + insulin) + AMBR M9 minimal media + mucin (M9 + mucin) + AMBR M9 minimal media + starch (M9 + starch) + AMBR M17 minimal medium (M17) + MICRO:0000558 AMBR MacConkey agar (MCA) + AMBR Marine broth agar (MBA) + AMBR Medium 10 agar (M10) + AMBR Medium DAMS5.8 simple + AMBR No salt lysogeny broth agar (NSLB) + AMBR No salt lysogeny broth agar + 5-15% sucrose (NSLB + 5-15% sucrose) + MICRO:0000553 AMBR Nutrient agar + MICRO:0000622 AMBR Phenylethyl alcohol agar + 5% sheep’s blood (PEA) + MICRO:0000549 AMBR Plate count medium (PC) + MICRO:0000550 AMBR Pseudomonas isolation medium (PIA) + MICRO:0000543 AMBR Reasoner's 2A agar (R2A) + AMBR Reinforced Clostridial agar (RCA) + AMBR Staphylococcus isolation medium (SIA) + AMBR Tryptic soy agar + Supplement A & B + yeast (TSY) + AMBR Sheep’s blood (5%) + AMBR Supplement A + AMBR Supplement B + AMBR Supplement 2.0 + + +taxonomic identification method menu OBI:0002117 AMBR Whole genome sequencing assay + OBI:0002763 AMBR 16S ribosomal gene sequencing assay + OBI:0002740 AMBR PCR assay + OBI:0001546 AMBR Comparative phenotypic assessment + + +taxonomic identification method details menu AMBR Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database + AMBR Genus-level ID: >99.0% identity but ambiguous match to >1 type (T) sequence in databases + AMBR Genus-level ID: >98.7% identity to a type (T) sequence AND/OR >99.0% identity with a sequence that has not been typed* + AMBR Need to do whole genome sequencing to confirm their identity + + +cellular respiration type menu GO:0009060 AMBR Aerobic respiration + GO:0009061 AMBR Anaerobic respiration + + +host (common name) menu NCBITaxon:9796 AMBR Horse + NCBITaxon:9606 AMBR Human + NCBITaxon:47299 AMBR Plant + AMBR Bush + AMBR Canola plant + NCBITaxon:4028 AMBR Gerranium plant + AMBR Tree + AMBR Poplar tree + AMBR Willow tree + FOODON:03412114 AMBR Snail + + +host (scientific name) menu AMBR Equus caballus + AMBR Homo sapiens + + +host disease menu AMBR Colitis + AMBR Acute colitis + AMBR Cystic fibrosis + AMBR Gastroenteritis + AMBR Pyelonephritis + AMBR Acute pyelonephritis + AMBR Urinary tract infection + + +sequencing instrument menu GENEPIO:0100105 AMBR Illumina + GENEPIO:0100106 AMBR Illumina Genome Analyzer + GENEPIO:0100107 AMBR Illumina Genome Analyzer II + GENEPIO:0100108 AMBR Illumina Genome Analyzer IIx + GENEPIO:0100109 AMBR Illumina HiScanSQ + GENEPIO:0100110 AMBR Illumina HiSeq + GENEPIO:0100111 AMBR Illumina HiSeq X + GENEPIO:0100112 AMBR Illumina HiSeq X Five + GENEPIO:0100113 AMBR Illumina HiSeq X Ten + GENEPIO:0100114 AMBR Illumina HiSeq 1000 + GENEPIO:0100115 AMBR Illumina HiSeq 1500 + GENEPIO:0100116 AMBR Illumina HiSeq 2000 + GENEPIO:0100117 AMBR Illumina HiSeq 2500 + GENEPIO:0100118 AMBR Illumina HiSeq 3000 + GENEPIO:0100119 AMBR Illumina HiSeq 4000 + GENEPIO:0100120 AMBR Illumina iSeq + GENEPIO:0100121 AMBR Illumina iSeq 100 + GENEPIO:0100122 AMBR Illumina NovaSeq + GENEPIO:0100123 AMBR Illumina NovaSeq 6000 + GENEPIO:0100124 AMBR Illumina MiniSeq + GENEPIO:0100125 AMBR Illumina MiSeq + GENEPIO:0100126 AMBR Illumina NextSeq + GENEPIO:0100127 AMBR Illumina NextSeq 500 + GENEPIO:0100128 AMBR Illumina NextSeq 550 + GENEPIO:0100129 AMBR Illumina NextSeq 2000 + GENEPIO:0100130 AMBR Pacific Biosciences + GENEPIO:0100131 AMBR PacBio RS + GENEPIO:0100132 AMBR PacBio RS II + GENEPIO:0100133 AMBR PacBio Sequel + GENEPIO:0100134 AMBR PacBio Sequel II + GENEPIO:0100135 AMBR Ion Torrent + GENEPIO:0100136 AMBR Ion Torrent PGM + GENEPIO:0100137 AMBR Ion Torrent Proton + GENEPIO:0100138 AMBR Ion Torrent S5 XL + GENEPIO:0100139 AMBR Ion Torrent S5 + GENEPIO:0100140 AMBR Oxford Nanopore + GENEPIO:0100141 AMBR Oxford Nanopore GridION + GENEPIO:0100142 AMBR Oxford Nanopore MinION + GENEPIO:0100143 AMBR Oxford Nanopore PromethION + GENEPIO:0100144 AMBR BGI Genomics + GENEPIO:0100145 AMBR BGI Genomics BGISEQ-500 + GENEPIO:0100146 AMBR MGI + GENEPIO:0100147 AMBR MGI DNBSEQ-T7 + GENEPIO:0100148 AMBR MGI DNBSEQ-G400 + GENEPIO:0100149 AMBR MGI DNBSEQ-G400 FAST + GENEPIO:0100150 AMBR MGI DNBSEQ-G50 + + + +amplicon pcr primer list menu GENEPIO:0100640 AMBR 27F + GENEPIO:0100645 AMBR 357F + GENEPIO:0100642 AMBR 543R + GENEPIO:0100643 AMBR 926R + GENEPIO:0100644 AMBR 1492R + GENEPIO:0100668 AMBR ITS1F + GENEPIO:0100646 AMBR ITS3F + GENEPIO:0100647 AMBR ITS4F + GENEPIO:0100669 AMBR ITS4R \ No newline at end of file diff --git a/web/templates/test/schema_slots.tsv b/web/templates/test/schema_slots.tsv new file mode 100644 index 00000000..5bcf288e --- /dev/null +++ b/web/templates/test/schema_slots.tsv @@ -0,0 +1,71 @@ +class_name slot_group slot_uri title name range range_2 identifier multivalued required recommended minimum_value maximum_value pattern structured_pattern description comments examples +AMBR GENEPIO:0001122 Database Identifiers + Database Identifiers GENEPIO:0100456 isolate ID WhitespaceMinimizedString TRUE The user-defined identifier for the isolate, as provided by the laboratory that originally isolated the isolate. Provide the identifier created by the lab for the organism after isolation. This value maps to the "Strain ID#" in the Alberta Microbiota Repository (AMBR) Master file. SA01 + Database Identifiers GENEPIO:0100457 alternative isolate ID WhitespaceMinimizedString TRUE An alternative isolate ID assigned to the isolate by another organization. Provide the identifier that represents the site code, source and/or patient identifier, media type, strain identifier, colony number, growth condition and dilution factor as a single code. This value corresponds maps to the "Label ID" in the Alberta Microbiota Repository (AMBR) Master file. 3411301 + Database Identifiers GENEPIO:0001123 specimen collector sample ID WhitespaceMinimizedString TRUE The user-defined name for the sample. Provide the sample ID provided by the original sample collector. This value is different from the "isolate_ID" as it represents the original material sampled rather than the organism that was isolated from the sampled material. This identifier may or may not be available. Lake_Louise_Water23 + GENEPIO:0001150 Sample collection and processing + Sample collection and processing GENEPIO:0001153 sample collected by WhitespaceMinimizedString null value menu TRUE The name of the agency that collected the original sample. The name of the institution of the original sample collector should be written out in full, (no abbreviations, with minor exceptions) and be consistent across multiple submissions e.g. University of Calgary, Alberta Health Services. The sample collector specified is at the discretion of the data provider (i.e. may be hospital, provincial public health lab, or other). University of Calgary + Sample collection and processing GENEPIO:0100429 sample collection project name WhitespaceMinimizedString TRUE The name of the project/initiative/program for which the sample was collected. Provide the name of the project and/or the project ID here. If the information is unknown or cannot be provided, leave blank or provide a null value. Children's Hospital biofilm study (A3-701-01) + Sample collection and processing GENEPIO:0001156 sample collector contact email WhitespaceMinimizedString ^\S+@\S+\.\S+$ The email address of the contact responsible for follow-up regarding the sample. The email address can represent a specific individual or lab e.g. johnnyblogs@lab.ca, or RespLab@lab.ca RespLab@lab.ca + Sample collection and processing GENEPIO:0001158 sample collector contact address WhitespaceMinimizedString The mailing address of the agency submitting the sample. The mailing address should be in the format: Street number and name, City, Province/Territory, Postal Code, Country 655 Lab St, Vancouver, British Columbia, V5N 2A2, Canada + Sample collection and processing GENEPIO:0001174 sample collection date date null value menu TRUE 2019-10-01 {today} The date on which the sample was collected. The date should be provided in ISO 8601 standard format "YYYY-MM-DD". 2020-03-16 + Sample collection and processing GENEPIO:0001179 sample received date date null value menu The date on which the sample was received. The date should be provided in ISO 8601 standard format "YYYY-MM-DD". 2020-03-20 + Sample collection and processing GENEPIO:0001181 geo_loc_name (country) geo_loc_name (country) menu null value menu TRUE The country where the sample was collected. Provide the country name from the controlled vocabulary provided. Canada + Sample collection and processing GENEPIO:0001185 geo_loc_name (state/province/territory) WhitespaceMinimizedString null value menu TRUE The province/territory where the sample was collected. Provide the province/territory name from the controlled vocabulary provided. Saskatchewan + Sample collection and processing GENEPIO:0001189 geo_loc_name (city) WhitespaceMinimizedString The city where the sample was collected. Provide the city name. Use this look-up service to identify the standardized term: https://www.ebi.ac.uk/ols/ontologies/gaz Medicine Hat + Sample collection and processing GENEPIO:0100436 geo_loc_name (site) geo_loc_name (site) menu The name of a specific geographical location e.g. Credit River (rather than river). Provide the name of the specific geographical site using a specific noun (a word that names a certain place, thing). Lake Louise + Sample collection and processing GENEPIO:0001191 organism WhitespaceMinimizedString null value menu TRUE Taxonomic name of the organism. Provide the confirmed taxonomic name of the species. This value maps to the "Recommended identification" in the Alberta Microbiota Repository (AMBR) Master file. Staphylococcus aureus + Sample collection and processing GENEPIO:0001198 purpose of sampling purpose of sampling menu null value menu TRUE The reason that the sample was collected. The reason a sample was collected may provide information about potential biases in sampling strategy. Provide the purpose of sampling from the picklist in the template. The reason why a sample was originally collected may differ from the reason why it was selected for sequencing, which should be indicated in the "purpose of sequencing" field. Motivation for sampling may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Targeted surveillance + Sample collection and processing GENEPIO:0001200 purpose of sampling details WhitespaceMinimizedString null value menu TRUE The description of why the sample was collected, providing specific details. Provide an expanded description of why the sample was collected using free text. The description may include the importance of the sample for a particular investigation/surveillance activity/research question. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. ProvLab/IPC routine monitoring + Sample collection and processing GENEPIO:0100439 original sample description WhitespaceMinimizedString The original sample description provided by the sample collector. Provide the sample description provided by the original sample collector or the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. The original description is useful as it may provide further details, or can be used to clarify higher level classifications. ACH coupons-water study, isolates 2010, 2011 see appendix 3 (Alberta Childrens Hospital) + Sample collection and processing GENEPIO:0001211 anatomical material anatomical material menu null value menu TRUE TRUE A substance obtained from an anatomical part of an organism e.g. tissue, blood. Provide a descriptor if an anatomical material was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Wound tissue (injury) + Sample collection and processing GENEPIO:0001214 anatomical part anatomical part menu null value menu TRUE TRUE An anatomical part of an organism e.g. oropharynx. Provide a descriptor if an anatomical part was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Nasal cavity + Sample collection and processing GENEPIO:0001216 body product body product menu null value menu TRUE TRUE A substance excreted/secreted from an organism e.g. feces, urine, sweat. Provide a descriptor if a body product was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Feces + Sample collection and processing GENEPIO:0001223 environmental material environmental material menu null value menu TRUE TRUE A substance obtained from the natural or man-made environment e.g. soil, water, sewage. Provide a descriptor if an environmental material was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Bandage + Sample collection and processing GENEPIO:0001232 environmental site environmental site menu null value menu TRUE TRUE An environmental location may describe a site in the natural or built environment e.g. contact surface, metal can, hospital, wet market, bat cave. Provide a descriptor if an environmental site was sampled. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Hospital + Sample collection and processing GENEPIO:0001234 collection device collection device menu null value menu TRUE TRUE The instrument or container used to collect the sample e.g. swab. Provide a descriptor if a device was used for sampling. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Swab + Sample collection and processing GENEPIO:0001241 collection method collection method menu null value menu TRUE TRUE The process used to collect the sample e.g. phlebotamy, necropsy. Provide a descriptor if a collection method was used for sampling. Use the picklist provided in the template. If a desired term is missing from the picklist, contact emma_griffiths@sfu.ca. If not applicable, do not leave blank. Choose a null value. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Biopsy + Sample collection and processing GENEPIO:0001243 collection protocol WhitespaceMinimizedString The name and version of a particular protocol used for sampling. Free text. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Collection_protocol_Children's Hospital biofilm study (A3-701-01) + Sample collection and processing GENEPIO:0001253 specimen processing specimen processing menu null value menu TRUE TRUE Any processing applied to the sample during or after receiving the sample. If multiple PCR products were generated from the isolate using different primer sets, indicate that the sequence records represents the same isolate by selecting "Biological replicate" in the "specimen processing" field. Every different sequence experiment should have its own record (i.e. if different amplicons have the same sequence but were generated using different primer sets, these should be stored as separate entries/lines in the spreadsheet). Information about replicates may be available in the "Top-hit taxon (taxa)" or "Trimmed Ribosomal Sequence" fields if there are multiple values for the same "Strain ID#" in the Alberta Microbiota Repository (AMBR) Master file. Biological replicate + Sample collection and processing GENEPIO:0100311 specimen processing details WhitespaceMinimizedString Detailed information regarding the processing applied to a sample during or after receiving the sample. Provide a free text description of any processing details applied to a sample. Information about replicates may be available in the "Top-hit taxon (taxa)" or "Trimmed Ribosomal Sequence" fields if there are multiple values for the same "Strain ID#" in the Alberta Microbiota Repository (AMBR) Master file. Multiple amplicons generated for isolate SA32 using different primer sets + GENEPIO:0100453 Strain and isolation information + Strain and isolation information GENEPIO:0100455 strain WhitespaceMinimizedString null value menu TRUE The strain identifier. Provide the strain of the isolate. This value maps to the "Strain" in the Alberta Microbiota Repository (AMBR) Master file. CL10 + Strain and isolation information GENEPIO:0100583 taxonomic identification method taxonomic identification method menu null value menu TRUE The type of planned process by which an organismal entity is associated with a taxon or taxa. Provide the type of method used to determine the taxonomic identity of the organism by selecting a value from the pick list. For the AMBR Project, the "16S ribosomal gene sequencing assay" value will be the most appropriate. If the information is unknown or cannot be provided, leave blank or provide a null value. 16S ribosomal gene sequencing assay + Strain and isolation information GENEPIO:0100584 taxonomic identification method details taxonomic identification method details menu null value menu TRUE The details of the process used to determine the taxonomic identification of an organism. Provide the criteria used for 16S sequencing taxonomic determination by selection a value from the pick list. These criteria are specific to the AMBR project and so do not correspond with standardized criteria in any ontology. The pick list is strictly for providing consistency in records rather than implementing community data standards. If another method was used for the taxonomic determination, leave blank. This value maps to the information stored in the "ID Category*" field in the Alberta Microbiota Repository (AMBR) Master file. Species-level ID: >99.3% identity and unambiguous match to one type (T) sequence in a curated database + Strain and isolation information GENEPIO:0100617 incubation temperature value WhitespaceMinimizedString null value menu TRUE An environmental datum specifying the temperature at which an organism or organisms were incubated for the purposes of growth on or in a particular medium. Provide the temperature at which the isolate was isolated. This value maps to the information stored in the "Incubation temperature" field in the Alberta Microbiota Repository (AMBR) Master file. 37 + Strain and isolation information GENEPIO:0100618 incubation temperature unit incubation temperature unit menu null value menu TRUE An environmental datum specifying the temperature unit at which an organism or organisms were incubated for the purposes of growth on or in a particular medium. Select the temperature unit from the pick list. This value maps to the information stored in the "Incubation temperature" field in the Alberta Microbiota Repository (AMBR) Master file. Degree Celsius + Strain and isolation information GENEPIO:0002107 isolation medium isolation medium menu null value menu TRUE An isolation medium is a culture medium which has the disposition to encourage growth of particular bacteria to the exclusion of others in the same growth environment. Select the isolation medium from the pick list. This value maps to the information stored in the "Incubation media" field in the Alberta Microbiota Repository (AMBR) Master file. Brain heart infusion (BHI) + Strain and isolation information GENEPIO:0100619 isolate storage location WhitespaceMinimizedString TRUE An isolate datum specifying the location of where an isolate is stored e.g. in a particular freezer, on a particular shelf Enter the freezer storage location of the isolate as the "freezer number-shelf number-box number-unit number" e.g. FR1-R3-B1-S01. This value maps to the information stored in the "Spot code" in the Alberta Microbiota Repository (AMBR) Master file. FR1-R3-B1-S01 + Strain and isolation information GENEPIO:0100620 cellular respiration type cellular respiration type menu null value menu TRUE An isolate datum specifying the type of cellular respiration process used by the organism. Select the respiration type from the pick list. This value maps to the information stored in the "Aerobic/Anaerobic" field in the Alberta Microbiota Repository (AMBR) Master file. Aerobic respiration + GENEPIO:0001268 Host Information + Host Information GENEPIO:0001386 host (common name) host (common name) menu null value menu TRUE The commonly used name of the host. Common name is required if there was a host. Both common anime and scientific name can be provided, if known. Use terms from the pick lists in the template. Hosts can be animals (including humans) and plants. Examples of common names are “Human” and “Canola plant”. Examples of scientific names are “Homo sapiens” and “Equus caballus”. If the sample was environmental, select "Not Applicable". Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Human + Host Information GENEPIO:0001387 host (scientific name) host (scientific name) menu null value menu The taxonomic, or scientific name of the host. Common name or scientific name are required if there was a host. Both can be provided, if known. Use terms from the pick lists in the template. Hosts can be animals (including humans) and plants. Common name e.g. Human, Canola plant. If the sample was environmental, select "Not Applicable". Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Homo sapiens + Host Information GENEPIO:0001391 host disease host disease menu null value menu The name of the disease experienced by the host. If the sample was obtained from a host with a known disease, provide the name of the disease by seleting a value from the picklist. Information for populating this field may be available in the "Source of Isolation" field in the Alberta Microbiota Repository (AMBR) Master file. Cystic fibrosis + GENEPIO:0001441 Sequencing + Sequencing GENEPIO:0100416 sequenced by sequenced_by menu null value menu The name of the agency, organization or institution responsible for sequencing the isolate's genome. Provide the name of the organization that performed the sequencing in full (avoid abbreviations). If the information is unknown or cannot be provided, leave blank or provide a null value. For the AMBR Project, the value is most likely the "University of Calgary". University of Calgary + Sequencing GENEPIO:0100470 sequenced by laboratory name WhitespaceMinimizedString The specific laboratory affiliation of the responsible for sequencing the isolate's genome. Provide the name of the specific laboratory that that performed the sequencing in full (avoid abbreviations). If the information is unknown or cannot be provided, leave blank or provide a null value. For the AMBR Project, the value is most likely the "Harrison Lab". Harrison Lab + Sequencing GENEPIO:0100471 sequenced by contact name WhitespaceMinimizedString The name or title of the contact responsible for follow-up regarding the sequence. Provide the name of an individual or their job title. As personnel turnover may render the contact's name obsolete, it is more prefereable to provide a job title for ensuring accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value. Joe Harrison + Sequencing GENEPIO:0100422 sequenced by contact email WhitespaceMinimizedString The email address of the contact responsible for follow-up regarding the sequence. Provide the email associated with the listed contact. As personnel turnover may render an individual's email obsolete, it is more prefereable to provide an address for a position or lab, to ensure accuracy of information and institutional memory. If the information is unknown or cannot be provided, leave blank or provide a null value. jjharris@ucalgary.ca + Sequencing GENEPIO:0001445 purpose of sequencing purpose of sequencing menu null value menu The reason that the sample was sequenced. The reason why a sample was originally collected may differ from the reason why it was selected for sequencing. The reason a sample was sequenced may provide information about potential biases in sequencing strategy. Provide the purpose of sequencing from the picklist in the template. The reason for sample collection should be indicated in the "purpose of sampling" field. Research + Sequencing GENEPIO:0001446 purpose of sequencing details WhitespaceMinimizedString null value menu The description of why the sample was sequenced providing specific details. Provide an expanded description of why the sample was sequenced using free text. This information can provide details about why the sample source might contain antibiotic potentiators. Screening for antibiotic potentiators in Cystic fibrosis disease contexts. + Sequencing GENEPIO:0001447 sequencing date date null value menu {sample collection date} The date the sample was sequenced. The date should be provided in ISO 8601 standard format "YYYY-MM-DD". 2020-06-22 + Sequencing GENEPIO:0001448 library ID WhitespaceMinimizedString The user-specified identifier for the library prepared for sequencing. Provide the name of the run. This value maps to information in the "Sequencing Batch #" field Alberta Microbiota Repository (AMBR) Master file. 1876515_SA01_Plate 02 library ID + Sequencing GENEPIO:0001452 sequencing instrument sequencing instrument menu null value menu TRUE TRUE The model of the sequencing instrument used. Select a sequencing instrument from the picklist provided in the template. Oxford Nanopore MinION + Sequencing GENEPIO:0001453 sequencing protocol name WhitespaceMinimizedString TRUE The name and version number of the sequencing protocol used. Provide the name and version of the sequencing protocol e.g. 1D_DNA_MinION https://www.protocols.io/view/covid-19-artic-v3-illumina-library-construction-an-bibtkann + Sequencing GENEPIO:0100623 amplicon pcr primer list amplicon pcr primer list menu null value menu TRUE TRUE An information content entity specifying a list of primers used for amplicon sequencing. Select the primers used to generate the ribosomal 16S or 23S amplicon for sequencing from the pick list. This value maps to the information in the "Primers Used for sequencing" field Alberta Microbiota Repository (AMBR) Master file. 27F;1492R + GENEPIO:0001457 Bioinformatics and QC metrics + Bioinformatics and QC metrics OBI:0002874 input file name WhitespaceMinimizedString The name of the file containing the sequence data to be analysed. Enter the file name of the target gene sequence to be analyzed. ambr_staph_ABC_123.fasta + Bioinformatics and QC metrics OBI:0002885 reference accession WhitespaceMinimizedString null value menu TRUE An identifier that specifies an individual sequence record in a public sequence repository. Enter the EZBioCloud gene accession that most closely matches the sequence being analyzed. This value maps to the information in the "Accession No(s)." field in the Alberta Microbiota Repository (AMBR) Master file. FR821777 + Bioinformatics and QC metrics GENEPIO:0001489 bioinformatics protocol WhitespaceMinimizedString A description of the overall bioinformatics strategy used. Provide the name of the protocol used to perform the species identification (i.e. the name of the protocol to perform the EZBioCloud search). EZBioCloud_searchprotocol_2023.txt + Bioinformatics and QC metrics OBI:0002883 reference database name WhitespaceMinimizedString null value menu TRUE An identifier of a biological or bioinformatics database. Select the reference database name from the pick list. For the AMBR Project, the reference database will be EZBioCloud. EZBioCloud + Bioinformatics and QC metrics OBI:0002884 reference database version WhitespaceMinimizedString null value menu TRUE The version of the database containing the reference sequences used for analysis. Enter the sequence search date as the version of EZBioCloud used. Record the date in ISO 8601 format i.e. YYYY_MM_DD. This value maps to the information in the "Search date" field in the Alberta Microbiota Repository (AMBR) Master file. 2021-05-23 + Bioinformatics and QC metrics OBI:0002880 coverage (percentage) WhitespaceMinimizedString null value menu TRUE The percentage of the reference sequence covered by the sequence of interest. Enter the completeness value. Do not include any symbols e.g. %. This value maps to "Completeness (%)" in the Alberta Microbiota Repository (AMBR) Master file. 98.2 + Bioinformatics and QC metrics OBI:0002882 sequence identity percentage WhitespaceMinimizedString null value menu TRUE Sequence identity is the number (%) of matches (identical characters) in positions from an alignment of two molecular sequences. Enter the identity value. Do not include any symbols e.g. %. This value maps to "Similarity (%)" in the Alberta Microbiota Repository (AMBR) Master file. 99 + Bioinformatics and QC metrics GENEPIO:0100624 sequence identity (variance ratio) WhitespaceMinimizedString null value menu The ratio of the reference sequence not covered by the sequence of interest. Enter the number of different positions in the target sequence compared to the reference sequence length, expressed as a ratio. This value maps to "Variation ratio" in the Alberta Microbiota Repository (AMBR) Master file. 1/420 + Bioinformatics and QC metrics GENEPIO:0100625 top-hit taxon determination WhitespaceMinimizedString null value menu TRUE The taxon derived from the top hit in search results produced from a sequence similarity comparison. Enter the EZBioCloud taxon best-hit. This value maps to the information in the "Top-hit taxon (taxa)" field in the Alberta Microbiota Repository (AMBR) Master file. Staphylococcus argenteus + Bioinformatics and QC metrics GENEPIO:0100648 top-hit strain determination WhitespaceMinimizedString null value menu TRUE The strain designation derived from the top hit in search results produced from a sequence similarity comparison. Enter the EZBioCloud strain best-hit. This value maps to the information in the "Top-hit strain(s)" field in the Alberta Microbiota Repository (AMBR) Master file. MSHR1132(T) + Bioinformatics and QC metrics GENEPIO:0100626 trimmed ribosomal gene sequence WhitespaceMinimizedString null value menu TRUE The results of a data transformation of sequence data in which (e.g., low quality) read bases are removed to produce a trimmed ribosomal RNA sequence. Enter the sequence of the trimmed ribosomal gene sequence. This value maps to the sequence in the "Trimmed Ribosomal Sequence" field in the Alberta Microbiota Repository (AMBR) Master file. TGCAAGTCGAGCGAACGGACGAGAAGCTTGCTTCTCTGATGTTAGCGGCGGACGSGTGAGTAACACGTGGATAACCTACCTATAAGACTGGGATAACTTCGGGAAACCGGAGCTAATACCGGATAATATTTTGAACCGCATGGTTCAAAAGTGAAAGACGGTCTTGCTGTCACTTATAGATGGATCCGCGCTGCATTAGCTAGTTGGTAAGGTAACGGCTTACCAAGGCAACGATGCATAGCCGACCTGAGAGGGTGATCGGCCACACTGGAACTGAGACACGGTCCAGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCCGCAATGGGCGAAAGCCTGACGGAGCAACGCCGCGTGAGTGATGAAGGTCTTCGGATCGTAAAACTCTGTTATTAGGGAAGAACATATGTGTAAGTAACTGTGCACATCTTGACGGTACCTAATCAGAAAGCCACGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGAAAACTTGAGTGCAGAAGAGGAAAGTGGAATTCCATGTGTAGCGGTGAAATGCGCAGAGATATGGAGGAACACCAGTGGCGAAGGCGACTTTCTGGTCTGTAACTGACGCTGATGTGCGAAAGCGTGGGGATCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAGTGCTAAGTGTTAGGGGGTTTCCGCCCCTTAGTGCTGCAGCTAACGCATTAAGCACTCCGCCTGGGGAGTACGACCGCAAGGTTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCAAATCTTGACATCCTTTGACAACTCTAGAGATAGAGCCTTCCCCTTCGGGGGACAAAGTGACAGGTGGTGCATGGTTGTCGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTAAGCTTAGTTGCCATCATTAAGTTGGGCACTCTAAGTTGACTGCCGGTGACAAACCGGAGGAAGGTGGGGATGACGTCAAATCATCATGCCCCTTATGATTTGGGCTACACACGTGCTACAATGGACAATACAAAGGGCAGCGAAACCGCGAGGTCAAGCAAATCCCATAAAGTTGTTCTCAGTTCGGATTGTAGTCTGCAACTCGACTACATGAAGCTGGAATCGCTAGTAATCGTAGATCAGCATGCTACGGTGAATACGTTCCCGGGTCTTGTACACACCGCCCGTCACACCACGAGAGTTTGTAACACCCGAAGCCGGTGGAGTAACCTTTTAGGAGCTAGCCGTCGAAG + Bioinformatics and QC metrics GENEPIO:0100627 bioinformatics analysis details WhitespaceMinimizedString Any notes regarding the bioinformatics analysis. Enter any notes regarding the analysis as free text. This value maps to the "Comment" field in the information in the Alberta Microbiota Repository (AMBR) Master file. Pure-June 09-2022,Tube replaced by Rahgavi + GENEPIO:0001516 Contributor acknowledgement + Contributor acknowledgement GENEPIO:0001517 authors WhitespaceMinimizedString TRUE Names of individuals contributing to the processes of sample collection, sequence generation, analysis, and data submission. Include the first and last names of all individuals that should be attributed, separated by a comma. Rahgavi Poopalaraj, Shirin Afroj, Joe Harrison + Contributor acknowledgement GENEPIO:0001518 DataHarmonizer provenance Provenance The DataHarmonizer software and template version provenance. The current software and template version information will be automatically generated in this field after the user utilizes the "validate" function. This information will be generated regardless as to whether the row is valid of not. DataHarmonizer v1.4.3, AMBR v1.0.0 \ No newline at end of file diff --git a/web/translations/translations.json b/web/translations/translations.json new file mode 100644 index 00000000..e69de29b diff --git a/yarn.lock b/yarn.lock index aba7d5e9..7c55432e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,7 +12,7 @@ "@babel/cli@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.18.10.tgz#4211adfc45ffa7d4f3cee6b60bb92e9fe68fe56a" + resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.18.10.tgz" integrity sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw== dependencies: "@jridgewell/trace-mapping" "^0.3.8" @@ -61,7 +61,7 @@ "@babel/core@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz" integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw== dependencies: "@ampproject/remapping" "^2.1.0" @@ -82,7 +82,7 @@ "@babel/generator@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.10.tgz#794f328bfabdcbaf0ebf9bf91b5b57b61fa77a2a" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz" integrity sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA== dependencies: "@babel/types" "^7.18.10" @@ -100,14 +100,14 @@ "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz" integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" @@ -125,7 +125,7 @@ "@babel/helper-create-class-features-plugin@^7.18.6": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz" integrity sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -138,7 +138,7 @@ "@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz" integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -146,7 +146,7 @@ "@babel/helper-define-polyfill-provider@^0.3.2": version "0.3.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz" integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== dependencies: "@babel/helper-compilation-targets" "^7.17.7" @@ -163,7 +163,7 @@ "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== dependencies: "@babel/types" "^7.18.6" @@ -185,7 +185,7 @@ "@babel/helper-member-expression-to-functions@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== dependencies: "@babel/types" "^7.18.9" @@ -213,7 +213,7 @@ "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== dependencies: "@babel/types" "^7.18.6" @@ -225,7 +225,7 @@ "@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -235,7 +235,7 @@ "@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz" integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" @@ -253,7 +253,7 @@ "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz" integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== dependencies: "@babel/types" "^7.18.9" @@ -267,7 +267,7 @@ "@babel/helper-string-parser@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz" integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== "@babel/helper-validator-identifier@^7.18.6": @@ -282,7 +282,7 @@ "@babel/helper-wrap-function@^7.18.9": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz#a7fcd3ab9b1be4c9b52cf7d7fdc1e88c2ce93396" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz" integrity sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ== dependencies: "@babel/helper-function-name" "^7.18.9" @@ -315,19 +315,19 @@ "@babel/parser@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.10.tgz#94b5f8522356e69e8277276adf67ed280c90ecc1" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz" integrity sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz" integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -336,7 +336,7 @@ "@babel/plugin-proposal-async-generator-functions@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz" integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew== dependencies: "@babel/helper-environment-visitor" "^7.18.9" @@ -346,7 +346,7 @@ "@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -354,7 +354,7 @@ "@babel/plugin-proposal-class-static-block@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz" integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -363,7 +363,7 @@ "@babel/plugin-proposal-dynamic-import@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -371,7 +371,7 @@ "@babel/plugin-proposal-export-namespace-from@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -379,7 +379,7 @@ "@babel/plugin-proposal-json-strings@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -387,7 +387,7 @@ "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz" integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -395,7 +395,7 @@ "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -403,7 +403,7 @@ "@babel/plugin-proposal-numeric-separator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -411,7 +411,7 @@ "@babel/plugin-proposal-object-rest-spread@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz" integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== dependencies: "@babel/compat-data" "^7.18.8" @@ -422,7 +422,7 @@ "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -430,7 +430,7 @@ "@babel/plugin-proposal-optional-chaining@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz" integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -439,7 +439,7 @@ "@babel/plugin-proposal-private-methods@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -447,7 +447,7 @@ "@babel/plugin-proposal-private-property-in-object@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz" integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -457,7 +457,7 @@ "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -486,28 +486,28 @@ "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-assertions@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz" integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -570,7 +570,7 @@ "@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" @@ -591,14 +591,14 @@ "@babel/plugin-transform-arrow-functions@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz" integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-async-to-generator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz" integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== dependencies: "@babel/helper-module-imports" "^7.18.6" @@ -607,21 +607,21 @@ "@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz" integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-classes@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz#90818efc5b9746879b869d5ce83eb2aa48bbc3da" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz" integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -635,21 +635,21 @@ "@babel/plugin-transform-computed-properties@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz" integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-destructuring@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz#68906549c021cb231bee1db21d3b5b095f8ee292" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz" integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -657,14 +657,14 @@ "@babel/plugin-transform-duplicate-keys@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" @@ -672,14 +672,14 @@ "@babel/plugin-transform-for-of@^7.18.8": version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz" integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-function-name@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: "@babel/helper-compilation-targets" "^7.18.9" @@ -688,21 +688,21 @@ "@babel/plugin-transform-literals@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-modules-amd@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz" integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== dependencies: "@babel/helper-module-transforms" "^7.18.6" @@ -711,7 +711,7 @@ "@babel/plugin-transform-modules-commonjs@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz" integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== dependencies: "@babel/helper-module-transforms" "^7.18.6" @@ -721,7 +721,7 @@ "@babel/plugin-transform-modules-systemjs@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz#545df284a7ac6a05125e3e405e536c5853099a06" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz" integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== dependencies: "@babel/helper-hoist-variables" "^7.18.6" @@ -732,7 +732,7 @@ "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== dependencies: "@babel/helper-module-transforms" "^7.18.6" @@ -740,7 +740,7 @@ "@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz" integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -748,14 +748,14 @@ "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-object-super@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -763,21 +763,21 @@ "@babel/plugin-transform-parameters@^7.18.8": version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz" integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-regenerator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz" integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -785,21 +785,21 @@ "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-shorthand-properties@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-spread@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz#6ea7a6297740f381c540ac56caf75b05b74fb664" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz" integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -807,35 +807,35 @@ "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-template-literals@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typeof-symbol@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz" integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-unicode-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -843,7 +843,7 @@ "@babel/preset-env@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz" integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== dependencies: "@babel/compat-data" "^7.18.8" @@ -924,7 +924,7 @@ "@babel/preset-modules@^0.1.5": version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -935,14 +935,14 @@ "@babel/runtime@^7.8.4": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz" integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== dependencies: regenerator-runtime "^0.13.4" "@babel/template@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== dependencies: "@babel/code-frame" "^7.18.6" @@ -960,7 +960,7 @@ "@babel/traverse@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.10.tgz#37ad97d1cb00efa869b91dd5d1950f8a6cf0cb08" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz" integrity sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g== dependencies: "@babel/code-frame" "^7.18.6" @@ -1000,7 +1000,7 @@ "@babel/types@^7.18.10", "@babel/types@^7.4.4": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz" integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ== dependencies: "@babel/helper-string-parser" "^7.18.10" @@ -1326,7 +1326,7 @@ "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + resolved "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== "@nodelib/fs.scandir@2.1.5": @@ -1352,7 +1352,7 @@ "@rollup/plugin-babel@^5.3.1": version "5.3.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" + resolved "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz" integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== dependencies: "@babel/helper-module-imports" "^7.10.4" @@ -1715,7 +1715,7 @@ "@typescript-eslint/scope-manager@5.31.0": version "5.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz#f47a794ba84d9b818ab7f8f44fff55a61016c606" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz" integrity sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg== dependencies: "@typescript-eslint/types" "5.31.0" @@ -1723,12 +1723,12 @@ "@typescript-eslint/types@5.31.0": version "5.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.31.0.tgz#7aa389122b64b18e473c1672fb3b8310e5f07a9a" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.31.0.tgz" integrity sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g== "@typescript-eslint/typescript-estree@5.31.0": version "5.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz#eb92970c9d6e3946690d50c346fb9b1d745ee882" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz" integrity sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw== dependencies: "@typescript-eslint/types" "5.31.0" @@ -1741,7 +1741,7 @@ "@typescript-eslint/utils@^5.10.0": version "5.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.31.0.tgz#e146fa00dca948bfe547d665b2138a2dc1b79acd" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.31.0.tgz" integrity sha512-kcVPdQS6VIpVTQ7QnGNKMFtdJdvnStkqS5LeALr4rcwx11G6OWb2HB17NMPnlRHvaZP38hL9iK8DdE9Fne7NYg== dependencies: "@types/json-schema" "^7.0.9" @@ -1753,7 +1753,7 @@ "@typescript-eslint/visitor-keys@5.31.0": version "5.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz#b0eca264df01ce85dceb76aebff3784629258f54" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz" integrity sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg== dependencies: "@typescript-eslint/types" "5.31.0" @@ -2052,7 +2052,7 @@ array-flatten@^2.1.2: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== async@^2.6.0: @@ -2069,7 +2069,7 @@ async@^3.2.3: babel-jest@^28.1.3: version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz" integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== dependencies: "@jest/transform" "^28.1.3" @@ -2082,7 +2082,7 @@ babel-jest@^28.1.3: babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" @@ -2110,7 +2110,7 @@ babel-plugin-jest-hoist@^28.1.3: babel-plugin-polyfill-corejs2@^0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz" integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== dependencies: "@babel/compat-data" "^7.17.7" @@ -2119,7 +2119,7 @@ babel-plugin-polyfill-corejs2@^0.3.2: babel-plugin-polyfill-corejs3@^0.5.3: version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz" integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.2" @@ -2127,7 +2127,7 @@ babel-plugin-polyfill-corejs3@^0.5.3: babel-plugin-polyfill-regenerator@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz" integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.2" @@ -2248,7 +2248,7 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4 browserslist@^4.21.3: version "4.21.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz" integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== dependencies: caniuse-lite "^1.0.30001370" @@ -2331,7 +2331,7 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001358: caniuse-lite@^1.0.30001370: version "1.0.30001373" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz#2dc3bc3bfcb5d5a929bec11300883040d7b4b4be" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz" integrity sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ== cardinal@^1.0.0: @@ -2491,7 +2491,7 @@ commander@^2.20.0: commander@^4.0.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== commander@^7.0.0, commander@^7.2.0: @@ -2536,7 +2536,7 @@ concat-map@0.0.1: concat-merge@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/concat-merge/-/concat-merge-1.0.3.tgz#8f8e81e499700513e5866626fe27f446b3080e6e" + resolved "https://registry.npmjs.org/concat-merge/-/concat-merge-1.0.3.tgz" integrity sha512-VuEIlh5YcPYJohvBsZrQNzVjSG5Z0fcmiaiBfluY/2WAzY20HJF9YgPkGRVMYcljzGEKW+I++TX/2tsO/S+RSw== connect-history-api-fallback@^1.6.0: @@ -2587,7 +2587,7 @@ copy-webpack-plugin@^11.0.0: core-js-compat@^3.21.0, core-js-compat@^3.22.1: version "3.24.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.24.1.tgz#d1af84a17e18dfdd401ee39da9996f9a7ba887de" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz" integrity sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw== dependencies: browserslist "^4.21.3" @@ -2795,7 +2795,7 @@ define-lazy-prop@^2.0.0: define-properties@^1.1.3: version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: has-property-descriptors "^1.0.0" @@ -2838,6 +2838,18 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +directory-tree-webpack-plugin@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/directory-tree-webpack-plugin/-/directory-tree-webpack-plugin-1.0.3.tgz" + integrity sha512-C8M4X2EBF2usJRL+yINp8Eu/BLv90dnl4bRfsujbeO1hTbIf3cS6UOpRpiHSoXxnYaP4k8D+O7ZSqsR1K6MwMw== + dependencies: + directory-tree "^2.0.0" + +directory-tree@^2.0.0: + version "2.3.1" + resolved "https://registry.npmjs.org/directory-tree/-/directory-tree-2.3.1.tgz" + integrity sha512-hxolIHCtQ/a56CUywaLzGD/V78zPwFihI+UK/4ZjOp7GoV4Mptmtv95yavOn/RlnTi7cCMjszvfcNrwCoWLH+Q== + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" @@ -2914,7 +2926,7 @@ electron-to-chromium@^1.4.164: electron-to-chromium@^1.4.202: version "1.4.210" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.210.tgz#12611fe874b833a3bf3671438b5893aba7858980" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.210.tgz" integrity sha512-kSiX4tuyZijV7Cz0MWVmGT8K2siqaOA4Z66K5dCttPPRh0HicOcOAEj1KlC8O8J1aOS/1M8rGofOzksLKaHWcQ== emittery@^0.10.2: @@ -2994,7 +3006,7 @@ eslint-config-prettier@^8.5.0: eslint-plugin-jest@^26.6.0: version "26.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.6.0.tgz#546804fa42da75d7d58d4d3b278d5186abd3f6c0" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.6.0.tgz" integrity sha512-f8n46/97ZFdU4KqeQYqO8AEVGIhHWvkpgNBWHH3jrM28/y8llnbf3IjfIKv6p2pZIMinK1PCqbbROxs9Eud02Q== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -3326,7 +3338,7 @@ flat-cache@^3.0.4: flatpickr@^4.6.13: version "4.6.13" - resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.13.tgz#8a029548187fd6e0d670908471e43abe9ad18d94" + resolved "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz" integrity sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw== flatted@^3.1.0: @@ -3370,7 +3382,7 @@ fs-monkey@^1.0.3: fs-readdir-recursive@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== fs.realpath@^1.0.0: @@ -3467,7 +3479,7 @@ globals@^13.15.0: globby@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -3522,7 +3534,7 @@ has-flag@^4.0.0: has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: get-intrinsic "^1.1.1" @@ -4257,7 +4269,7 @@ jest-worker@^28.1.3: jest@^28.1.3: version "28.1.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" + resolved "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz" integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== dependencies: "@jest/core" "^28.1.3" @@ -4265,6 +4277,11 @@ jest@^28.1.3: import-local "^3.0.2" jest-cli "^28.1.3" +jquery-i18next@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/jquery-i18next/-/jquery-i18next-1.2.1.tgz#3e4ac5e46632fac21640529f1aa7b68e54f227e8" + integrity sha512-UNcw3rgxoKjGEg4w23FEn2h3OlPJU7rPzsgDuXDBZktIzeiVbJohs9Cv9hj8oP8KNfBRKOoErL/OVxg2FaAR4g== + jquery-ui@^1.13.0: version "1.13.1" resolved "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.1.tgz" @@ -4309,7 +4326,7 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: @@ -4398,7 +4415,7 @@ locate-path@^5.0.0: lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.memoize@^4.1.2: @@ -4444,7 +4461,7 @@ magic-string@^0.25.7: make-dir@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" @@ -4636,7 +4653,7 @@ node-releases@^2.0.5: node-releases@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== normalize-path@^3.0.0, normalize-path@~3.0.0: @@ -4677,12 +4694,12 @@ object-inspect@^1.9.0: object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: call-bind "^1.0.0" @@ -4891,7 +4908,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatc pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pikaday@1.8.0: @@ -5318,24 +5335,24 @@ redeyed@~2.1.0: regenerate-unicode-properties@^10.0.1: version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.13.4: version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regenerator-transform@^0.15.0: version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== dependencies: "@babel/runtime" "^7.8.4" @@ -5347,7 +5364,7 @@ regexpp@^3.2.0: regexpu-core@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz" integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== dependencies: regenerate "^1.4.2" @@ -5359,12 +5376,12 @@ regexpu-core@^5.1.0: regjsgen@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== regjsparser@^0.8.2: version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" @@ -5450,7 +5467,7 @@ rimraf@^3.0.0, rimraf@^3.0.2: rollup-jest@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/rollup-jest/-/rollup-jest-3.0.0.tgz#050b62608ba6a5a31c3f7c9d36c7b2c70b251781" + resolved "https://registry.npmjs.org/rollup-jest/-/rollup-jest-3.0.0.tgz" integrity sha512-6v3s4q5z7+PkL1hUYg6KWlL2kUVkjUHLAlMsaHANmuwOrM1GSlRifiJkazdqymVPFfeBfpooDEtz04Q7qwuGaw== dependencies: concat-merge "^1.0.2" @@ -5565,12 +5582,12 @@ selfsigned@^2.0.1: semver@7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== semver@^5.6.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: @@ -5702,7 +5719,7 @@ sisteransi@^1.0.5: slash@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== slash@^3.0.0: @@ -6017,7 +6034,7 @@ toidentifier@1.0.1: tslib@^1.8.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.3, tslib@^2.3.1: @@ -6027,7 +6044,7 @@ tslib@^2.0.3, tslib@^2.3.1: tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" @@ -6064,12 +6081,12 @@ type-is@~1.6.18: unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" @@ -6077,12 +6094,12 @@ unicode-match-property-ecmascript@^2.0.0: unicode-match-property-value-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== unicode-property-aliases-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== universalify@^2.0.0: @@ -6105,7 +6122,7 @@ update-browserslist-db@^1.0.0: update-browserslist-db@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz" integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== dependencies: escalade "^3.1.1" From eeb092a80195fde9a1f7e7ca2c56beedfd475f23 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Thu, 14 Sep 2023 13:43:57 -0700 Subject: [PATCH 010/550] write passing tests --- lib/utils/templates.js | 42 +++++++++++++++++--------------- tests/templates.test.js | 54 ++++++++++++++++------------------------- 2 files changed, 43 insertions(+), 53 deletions(-) diff --git a/lib/utils/templates.js b/lib/utils/templates.js index 25922156..ca2880fe 100644 --- a/lib/utils/templates.js +++ b/lib/utils/templates.js @@ -24,6 +24,7 @@ function deepMerge(defaultObj, localizedObj) { return result; } + /** * Retrieves the nested value of an object based on a given string path. * @@ -80,7 +81,6 @@ const isDocumentation = el => el.extension === '.md'; const isLocale = el => el.name === 'locales'; async function accessTemplate(template_name) { - console.log(template_manifest) const template = template_manifest.children.find(el => el.name === template_name); if (!template) return null; @@ -101,11 +101,11 @@ async function processNode(node) { await Promise.all(children.map(async (child) => { if (isSchema(child)) { - console.log('is schema', child.path); + //console.log('is schema', child.path); let schemaData = await accessJSONFile(child.path); schema.push(schemaData); } else if (isDocumentation(child)) { - console.log('is documentation', child.path); + //console.log('is documentation', child.path); let docData = await accessDocumentationFile(child.path); documentation.push(docData); } else if (isLocale(child)) { @@ -125,9 +125,7 @@ async function processNode(node) { return [name, [schema, documentation], locales]; } -async function buildTemplate(template_name) { - const [name, [schemas, documentations], locale_nodes] = await accessTemplate(template_name); - // TODO: reduce accessors to make more robust tree access +function buildTemplate([name, [schemas, documentations], locale_nodes]) { const schema = schemas[0]; const documentation = documentations[0]; const locales = locale_nodes[0][2]; @@ -159,24 +157,29 @@ async function buildTemplate(template_name) { * @param {string[]} preferredLocales - The user's preferred locales, in order of preference. * @returns {string|null} - The best matching locale or null if none match. */ -function findBestLocaleMatch(availableLocales, preferredLocales) { +function findBestLocaleMatch(availableLocales, preferredLocales, strict = false) { for (const preferred of preferredLocales) { + // Check for exact match if (availableLocales.includes(preferred)) { return preferred; } - // If the preferred locale is a generic language code, try to find the first specific locale of that language - if (!preferred.includes('-')) { - const match = availableLocales.find(locale => locale.split('-')[0] === preferred); - if (match) { - return match; + // If not in strict mode, attempt to find a match based on language only + if (!strict) { + const language = preferred.split('-')[0]; + const matchedLocale = availableLocales.find(locale => locale.startsWith(language + '-')); + + if (matchedLocale) { + return matchedLocale; } } } + return null; // No match found } + /** * `TemplateProxy` class. * @@ -213,8 +216,8 @@ class TemplateProxy { if (property === 'changeLocale') { return target.changeLocale.bind(target); } - if (target._localizedData && target._localizedData[property]) { - return target._localizedData[property]; + if (target.localized && target.localized[property]) { + return target.localized[property]; } else { return target._defaultData[property]; } @@ -231,12 +234,12 @@ class TemplateProxy { * @private */ async init(template_name, locale) { - const template = await buildTemplate(template_name); + const template = buildTemplate(await accessTemplate(template_name)); this._name = template_name; - this._locale = locale; this._locales = Object.freeze(Object.keys(template.locales)); + this.changeLocale(locale); this._defaultData = template.default; - this._localizedData = template.locales[this._locale]; + this._localizedData = template.locales; } get default() { @@ -244,7 +247,7 @@ class TemplateProxy { } get localized() { - return this._localizedData; + return this._localizedData[this._locale]; } get locale() { @@ -262,7 +265,6 @@ class TemplateProxy { const bestLocale = findBestLocaleMatch(this._locales, [newLocale]); if (bestLocale !== null) { this._locale = bestLocale; - this._localizedData = this._defaultData.locales[this._locale]; } else { throw new Error(`Locale ${newLocale} is not supported by the template.`); } @@ -270,7 +272,7 @@ class TemplateProxy { } // Usage example: -// const proxyInstance = await TemplateProxyDraft.create('template_name', 'en-US'); +// const proxyInstance = await TemplateProxy.create('template_name', 'en-US'); // proxyInstance.changeLocale('fr-FR'); // IETF language code designations const Template = TemplateProxy; diff --git a/tests/templates.test.js b/tests/templates.test.js index 07671449..ce42ad01 100644 --- a/tests/templates.test.js +++ b/tests/templates.test.js @@ -35,43 +35,23 @@ template.schema.default.prefixes.linkml.prefix_prefix == 'linkml' describe('TemplateProxy', () => { let proxy; - // Assuming the existence of a function to mock the 'buildTemplate' function - const mockBuildTemplate = (templateName) => { - return { - default: { - name: 'default_name', - description: 'default_description' - }, - locales: { - fr: { - name: 'french_name', - description: 'french_description' - }, - "de-DE": { - name: 'deutsch_nam' - }, - } - }; - }; - beforeEach(async () => { // Mock the actual buildTemplate with our version - global.buildTemplate = mockBuildTemplate; // or however you would mock in your setup - proxy = await Template.create('test', 'en'); + proxy = await TemplateProxy.create('test', 'de'); }); test('should return localized property if it exists', () => { - expect(proxy.name).toBe('english_name'); + expect(proxy.schema.name).toBe('AMBR_de'); }); test('should return default property if localized version doesn’t exist', () => { - expect(proxy.description).toBe('default_description'); + expect(proxy.schema.description).toBe('default_description'); }); test('should switch to a new locale and return appropriate data', () => { proxy.changeLocale('fr'); - expect(proxy.name).toBe('french_name'); - expect(proxy.description).toBe('french_description'); + expect(proxy.schema.name).toBe('AMBR_fr'); + expect(proxy.schema.description).toBe('french_description'); }); test('should throw error for unsupported locale', () => { @@ -124,7 +104,7 @@ describe('accessFile function', () => { // Note: Testing this function requires filesystem operations which might be mocked. // For simplicity, we'll assume a generic success/failure case. it('should return data on successful import', async () => { - const data = await accessFile('./mock-success-path'); // Adjust the path to a mock module. + const data = await accessFile('@/lib/utils/templates'); // Adjust the path to a mock module. expect(data).not.toBeNull(); }); @@ -138,6 +118,7 @@ describe('findBestLocaleMatch function', () => { it('should return the best matching locale', () => { const available = ['en-US', 'fr-FR', 'es-ES']; expect(findBestLocaleMatch(available, ['en-GB', 'fr-CA', 'es-AR'])).toBe('en-US'); + expect(findBestLocaleMatch(available, ['en'])).toBe('en-US'); }); it('should return null if no matching locale is found', () => { @@ -160,11 +141,13 @@ describe('Template utilities', () => { it('should return the correct template if it exists', async () => { const mockTemplate = { name: 'template1' }; jest.mock('@/web/templates/manifest.json', () => ({ - children: [mockTemplate] + children: [ + mockTemplate + ] })); - const result = await accessTemplate('template1'); - expect(result[0]).toBe('template1'); + const result = await accessTemplate('test'); + expect(result[0]).toBe('test'); }); it('should return null if the template does not exist', async () => { @@ -181,15 +164,20 @@ describe('Template utilities', () => { const mockTemplateData = [ mockTemplateName, [[{ key: 'mockSchema' }], [{ key: 'mockDocumentation' }]], - [['en-US', [{ key: 'mockEnUS' }], []]] + // Locale tree is pretty gnarly. need to slim down. which means simplifying manifest.json generation + [[ + [], [[]], + [['en-US', + [[{ key: 'mockEnUS' }]], [] + ]] + ]] ]; - jest.mock('./path-to-your-functions-file', () => ({ + jest.mock('@/lib/utils/templates', () => ({ accessTemplate: jest.fn().mockResolvedValue(mockTemplateData) })); - const result = await buildTemplate(mockTemplateName); - + const result = await buildTemplate(mockTemplateData); expect(result.name).toBe(mockTemplateName); expect(result.default.schema.key).toBe('mockSchema'); expect(result.default.documentation.key).toBe('mockDocumentation'); From 1e7ff67b6ccadaab5141cc7a40e461c122014536 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Thu, 14 Sep 2023 13:49:25 -0700 Subject: [PATCH 011/550] Test template revision --- web/templates/test/locales/de-DE/schema.json | 3 +-- web/templates/test/locales/fr-FR/schema.json | 4 ++-- web/templates/test/schema.json | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/web/templates/test/locales/de-DE/schema.json b/web/templates/test/locales/de-DE/schema.json index a32d287d..7c623d4e 100644 --- a/web/templates/test/locales/de-DE/schema.json +++ b/web/templates/test/locales/de-DE/schema.json @@ -1,6 +1,5 @@ { - "name": "AMBR", - "description": "", + "name": "AMBR_de", "id": "https://example.com/AMBR", "version": "2.3.0", "prefixes": { diff --git a/web/templates/test/locales/fr-FR/schema.json b/web/templates/test/locales/fr-FR/schema.json index a32d287d..84f46de0 100644 --- a/web/templates/test/locales/fr-FR/schema.json +++ b/web/templates/test/locales/fr-FR/schema.json @@ -1,6 +1,6 @@ { - "name": "AMBR", - "description": "", + "name": "AMBR_fr", + "description": "french_description", "id": "https://example.com/AMBR", "version": "2.3.0", "prefixes": { diff --git a/web/templates/test/schema.json b/web/templates/test/schema.json index a32d287d..946bf560 100644 --- a/web/templates/test/schema.json +++ b/web/templates/test/schema.json @@ -1,6 +1,6 @@ { "name": "AMBR", - "description": "", + "description": "default_description", "id": "https://example.com/AMBR", "version": "2.3.0", "prefixes": { From 176a25681a9732f1a1f97b57abd8a0e7a57ace96 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Thu, 14 Sep 2023 13:49:47 -0700 Subject: [PATCH 012/550] logging --- lib/Toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Toolbar.js b/lib/Toolbar.js index d40b0265..61ac864a 100644 --- a/lib/Toolbar.js +++ b/lib/Toolbar.js @@ -358,7 +358,7 @@ class Toolbar { (e) => schema.classes[e].is_a === 'dh_interface' )[0]; } catch (err) { - console.log(err); + console.error(err); return; } } else { From e0e1e1da713f322c5f3dbb6936f25f493f3faafc Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Thu, 14 Sep 2023 14:50:26 -0700 Subject: [PATCH 013/550] TODO: i18n: basic representation interchange functions for developer --- lib/i18n.js | 3 +- lib/utils/translations.js | 56 +++++++++++++++--------- tests/translations.test.js | 69 ++++++++++++++++++++++++++++++ web/translations/translations.json | 1 + 4 files changed, 107 insertions(+), 22 deletions(-) create mode 100644 tests/translations.test.js diff --git a/lib/i18n.js b/lib/i18n.js index f6f95b67..dd6e050e 100644 --- a/lib/i18n.js +++ b/lib/i18n.js @@ -2,9 +2,8 @@ import $ from 'jquery'; import i18next from 'i18next'; import jqueryI18next from 'jquery-i18next'; -import labels, { sample_labels } from '@/lib/utils/translations'; +import { labels } from '@/lib/utils/translations'; -const labels = sample_labels; const lngs = { en: { nativeName: 'English' }, diff --git a/lib/utils/translations.js b/lib/utils/translations.js index 49c13e64..304cbb2d 100644 --- a/lib/utils/translations.js +++ b/lib/utils/translations.js @@ -1,22 +1,37 @@ import label_translations_file from '@/web/translations/translations.json'; function transformLangFirstSpec(obj) { - // Check if the current object is a language mapping - if (typeof obj === 'object' && !Array.isArray(obj) && Object.values(obj).every(value => typeof value === 'string')) { - // obj has language mappings - return obj; - } + const flatRepresentation = {}; - // Otherwise, recurse into the object - let result = {}; - for (let key in obj) { - if (obj.hasOwnProperty(key)) { - let transformedSubObj = transformLangFirstSpec(obj[key]); - for (let lang in transformedSubObj) { - if (!result[lang]) { - result[lang] = {}; + // Flatten the source object + function flatten(currPath, currObj) { + for (let key in currObj) { + if (currObj.hasOwnProperty(key)) { + const newPath = currPath ? `${currPath}.${key}` : key; + + if (typeof currObj[key] === 'object' && !Array.isArray(currObj[key])) { + flatten(newPath, currObj[key]); + } else { + flatRepresentation[newPath] = currObj[key]; } - result[lang]['translation'][key] = transformedSubObj[lang]; + } + } + } + flatten('', obj); + + // Construct the nested structure from the flattened paths + const result = {}; + for (let path in flatRepresentation) { + const keys = path.split('.'); + const lang = keys[0]; + let currObj = result; + + for (let i = 1; i < keys.length; i++) { + currObj[keys[i]] = currObj[keys[i]] || (i === keys.length - 1 ? {} : {}); + if (i === keys.length - 1) { + currObj[keys[i]][lang] = flatRepresentation[path]; + } else { + currObj = currObj[keys[i]]; } } } @@ -97,22 +112,19 @@ const initialObject = { console.log(JSON.stringify(transformStructFirstSpec(initialObject), null, 4)); // expect the structure-first style -export default labels = transformStructFirstSpec(label_translations_file); +export const labels = transformStructFirstSpec(label_translations_file); export const sample_labels = { en: { - translation: { head: { title: 'My Awesome Landing-Page', description: 'The description of this awesome landing page.' }, intro: { - title: 'Landing Page', + titale: 'Landing Page', subTitle: 'Some subtitle' } - } }, de: { - translation: { head: { title: 'Meine grossartige Webseite', description: 'Die Beschreibung dieser grossartigen Webseite.' @@ -121,6 +133,10 @@ export const sample_labels = { title: 'Webseite', subTitle: 'Ein Untertitel' } - } } + } + + export { + transformLangFirstSpec, + transformStructFirstSpec } \ No newline at end of file diff --git a/tests/translations.test.js b/tests/translations.test.js new file mode 100644 index 00000000..f3e7d799 --- /dev/null +++ b/tests/translations.test.js @@ -0,0 +1,69 @@ +import { transformLangFirstSpec, transformStructFirstSpec } from '@/lib/utils/translations'; // Adjust the path + +describe('transformLangFirstSpec', () => { + it('should transform a source object into the correct format', () => { + const source = { + "fr": { + "nav": { + "header": { + "greeting": "bonjour" + } + } + }, + "en": { + "nav": { + "header": { + "greeting": "hello" + } + } + } + }; + + const expected = { + nav: { + header: { + greeting: { + en: "hello", + fr: "bonjour" + } + } + } + }; + expect(transformLangFirstSpec(source)).toEqual(expected); + }); +}); + +describe('transformStructFirstSpec', () => { + it('should transform an initialObject into the correct format', () => { + const initialObject = { + nav: { + header: { + greeting: { + en: "hello", + fr: "bonjour" + } + } + } + }; + + const expected = { + en: { + nav: { + header: { + greeting: "hello" + } + } + }, + fr: { + nav: { + header: { + greeting: "bonjour" + } + } + } + }; + + expect(transformStructFirstSpec(initialObject)).toEqual(expected); + }); +}); + diff --git a/web/translations/translations.json b/web/translations/translations.json index e69de29b..9e26dfee 100644 --- a/web/translations/translations.json +++ b/web/translations/translations.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 55f12d8b8e5b641d926037da397879a48981e467 Mon Sep 17 00:00:00 2001 From: Kenneth Bruskiewicz Date: Fri, 15 Sep 2023 12:45:09 -0700 Subject: [PATCH 014/550] Language Localization UI toolbar --- lib/Toolbar.js | 21 ++++++++++++++++++++- lib/i18n.js | 35 ++++++++++++++--------------------- lib/toolbar.html | 14 ++++++++++++++ lib/utils/templates.js | 1 + package.json | 2 +- yarn.lock | 19 +++++++++++++++++++ 6 files changed, 69 insertions(+), 23 deletions(-) diff --git a/lib/Toolbar.js b/lib/Toolbar.js index 61ac864a..257117b8 100644 --- a/lib/Toolbar.js +++ b/lib/Toolbar.js @@ -6,9 +6,10 @@ import '@selectize/selectize'; import '@selectize/selectize/dist/css/selectize.bootstrap4.css'; import { exportFile, exportJsonFile, readFileAsync } from '@/lib/utils/files'; +import { languages } from "@/lib/i18n"; +import i18next, { changeLanguage } from 'i18next'; import template from '@/lib/toolbar.html'; - import '@/lib//toolbar.css'; // TODO: this is odd! package.json is a developer file. why should a UI component care about it? @@ -312,6 +313,24 @@ class Toolbar { }); $('#help_reference').on('click', () => this.dh.renderReference()); + + + // language localization controls + const language_options = Object.values(languages) + .map(el => $("