diff --git a/.github/workflows/label-gun.yml b/.github/workflows/label-gun.yml index d56b043f33..cd549905e8 100644 --- a/.github/workflows/label-gun.yml +++ b/.github/workflows/label-gun.yml @@ -19,31 +19,23 @@ jobs: label.reopened: reopened log-id: "([A-Z0-9]{8}(-refs)?-(apse|euc))|([A-Z0-9]{8}-[^-]+)" message.log-required: | - Hello there @{{username}}, + Hello @{{username}}, - Hope you're doing well! `@retorquere` is here to help you get the most out of your experience with Better BibTeX. To make sure he can assist you effectively, he kindly asks for your cooperation in providing a debug log – it's like giving him the key to understanding and solving the puzzle! + `@retorquere` is ready to assist you with Better BibTeX. In order to do so efficiently, a debug log is generally required. The information it containst is key to him understanding, replicating, and resolving your issue. - Getting your debug log is a breeze and will save us both time in getting your problem resolved or the new feature you'd like implemented. Trust me, it's way quicker than discussing why it's important. :smiley: + **Here’s how you can share your debug log:** - **How to Share Your Debug Log:** + 1. If your issue involves specific references, citekey generation, or exports, right-click on the relevant item(s) and select "Better BibTeX -> Submit Better BibTeX debug log" from the menu. + 2. For issues where items do not play a role, follow these steps: + * Restart Zotero with debugging enabled (Help -> Debug Output Logging -> Restart with logging enabled). + * Reproduce the problem. + * Choose "Send Better BibTeX debug report..." from the help menu. - 1. If the issue involves specific references, citekey generation, or exports, just right-click on the relevant item(s) and choose "Better BibTeX -> Submit Better BibTeX debug log" from the menu. + After these steps, you will receive debug ID displayed in red. Please share this ID with `@retorquere` in this issue thread. If your query is about an export, include both the actually exported result and your expected/desired outcome. - 2. For other issues, follow these simple steps: - * Restart Zotero with debugging enabled (Help -> Debug Output Logging -> Restart with logging enabled). - * Reproduce the problem. - * Select "Send Better BibTeX debug report..." from the help menu. + Sharing your debug log gives `@retorquere` a view of your Better BibTeX configuration and the elements contributing to the issue. This helps him address your concerns more efficiently. - Once you hit that submit button, you'll get a special red debug ID. Just share that with `@retorquere` in this issue thread. If the question is regarding an export, don't forget to include what you see exported and what you expected. - - By sharing your debug log, you're giving `@retorquere` a clearer picture of your setup and the items causing the issue. It's like a superhero cape for him – he can swoop in and tackle the problem much faster. - - We totally get that your time is valuable, and we appreciate your effort in helping `@retorquere` help you. You might be surprised at how much this simple step speeds up the whole process. - - Thanks a bunch! - - **PS: If the Debug Log menu does not appear, or it does not send the debug log** - - A fallback option is available under "Help" > "Send debug log to file.io". + Thank you. + **PS: If the Debug Log menu is not available, or if it fails to send the debug log**, you can use the option under “Help” > “Send debug log to file.io”. message.no-close: Thanks for the feedback! Just so you know, GitHub doesn't let me control who can close issues, and @retorquere likes to leave bug reports and enhancements open as a nudge to merge them into the next release. diff --git a/.gitmodules b/.gitmodules index 0f6d34f4d5..b2712e7fca 100644 --- a/.gitmodules +++ b/.gitmodules @@ -34,3 +34,7 @@ path = submodules/zotero url = https://github.com/zotero/zotero.git branch = main +[submodule "submodules/translators"] + path = submodules/translators + url = https://github.com/zotero/translators.git + branch = master diff --git a/.ncurc.json b/.ncurc.json new file mode 100644 index 0000000000..0fc7bb2ba3 --- /dev/null +++ b/.ncurc.json @@ -0,0 +1,4 @@ +{ + "reject": [ "eslint" ] +} + diff --git a/README.md b/README.md index 317d421f47..f268df298f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,9 @@ Better BibTeX (BBT) is an extension for [Zotero](https://www.zotero.org) and [Juris-M](https://juris-m.github.io) that makes it easier to manage bibliographic data, especially for people authoring documents using text-based toolchains (e.g. based on [LaTeX](https://www.latex-project.org) / [Markdown](https://www.markdownguide.org)). -## Zotero 7 beta support +## Zotero 7 beta support: Zotero beta 70+ currently not supported, a fix is underway + +[#2829](https://github.com/retorquere/zotero-better-bibtex/issues/2829) Better BibTeX is mostly compatible with the Zotero 7 beta; I am awaiting a change by the Zotero team to get to complete support. You can find the status of Zotero 7 support in the first post of [#2522](https://github.com/retorquere/zotero-better-bibtex/issues/2522); if you find new problems (which are not still marked as unresolved in that top post), please report them as *new* issues, not by commenting on #2522. diff --git a/content/ErrorReport.pug b/content/ErrorReport.pug index 3f336f5d97..c0048360eb 100644 --- a/content/ErrorReport.pug +++ b/content/ErrorReport.pug @@ -16,7 +16,7 @@ wizard#better-bibtex-error-report( xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul' xmlns:html="http://www.w3.org/1999/xhtml" - title='&better-bibtex_error-report.title;' width='550' height='550' + title='&better-bibtex_error-report.title;' width='700' height='700' ) wizardpage(pageid='page-enable-debug' label=' ') description.header(style='white-space: pre-wrap;') &better-bibtex_error-report_enable-debug; @@ -27,22 +27,29 @@ wizard#better-bibtex-error-report( textbox#better-bibtex-report-latest.plain.textbox-emph(flex='1' readonly='true') textbox#better-bibtex-report-oom.plain.textbox-emph(hidden='true' flex='1' multiline='true' readonly='true' value='&better-bibtex_error-report_better-bibtex_oom.value;') textbox#better-bibtex-report-cache.plain(flex='1' readonly='true') - checkbox#better-bibtex-error-report-include-db(label='&better-bibtex_error-report_include-cache.label;')/ - tabbox.debug-on(flex='1') + checkbox.better-bibtex-error-report-facet#better-bibtex-error-report-include-errors(label='&better-bibtex_error-report_include-errors.label;')/ + checkbox.better-bibtex-error-report-facet#better-bibtex-error-report-include-log(label='&better-bibtex_error-report_include-log.label;')/ + hbox + label &better-bibtex_error-report_include-items.label; + checkbox.better-bibtex-error-report-facet#better-bibtex-error-report-include-notes(label='&better-bibtex_error-report_include-notes.label;')/ + checkbox.better-bibtex-error-report-facet#better-bibtex-error-report-include-attachments(label='&better-bibtex_error-report_include-attachments.label;')/ + checkbox.better-bibtex-error-report-facet#better-bibtex-error-report-include-cache(label='&better-bibtex_error-report_include-cache.label;')/ + hbox(flex='1') + tabbox.debug-on(flex='10') tabs - tab(label='&better-bibtex_error-report_context.label;')/ - tab(label='&better-bibtex_error-report_errors.label;')/ - tab(label='&better-bibtex_error-report_debug.label;')/ - tab#better-bibtex-error-tab-items(label='&better-bibtex_error-report_items.label;')/ - tabpanels - tabpanel(orient='vertical') - textbox#better-bibtex-error-context.plain(readonly='true' multiline='true' flex='1' style='min-height: 8em;') - tabpanel(orient='vertical') - textbox#better-bibtex-error-errors.plain(readonly='true' multiline='true' flex='1' style='min-height: 8em;') - tabpanel(orient='vertical') - textbox#better-bibtex-error-debug.plain(readonly='true' multiline='true' flex='1' style='min-height: 8em;') - tabpanel(orient='vertical') - textbox#better-bibtex-error-items.plain(readonly='true' multiline='true' flex='1' style='min-height: 8em;') + tab#better-bibtex-error-context-tab(label='&better-bibtex_error-report_context.label;')/ + tab#better-bibtex-error-errors-tab(label='&better-bibtex_error-report_errors.label;')/ + tab#better-bibtex-error-log-tab(label='&better-bibtex_error-report_debug.label;')/ + tab#better-bibtex-error-items-tab(label='&better-bibtex_error-report_items.label;')/ + tabpanels(flex='1') + tabpanel(flex='1' orient='vertical') + textbox#better-bibtex-error-context.plain(readonly='true' multiline='true' flex='10' style='min-height: 8em;') + tabpanel(flex='1' orient='vertical') + textbox#better-bibtex-error-errors.plain(readonly='true' multiline='true' flex='10' style='min-height: 8em;') + tabpanel(flex='1' orient='vertical') + textbox#better-bibtex-error-log.plain(readonly='true' multiline='true' flex='10' style='min-height: 8em;') + tabpanel(flex='1' orient='vertical') + textbox#better-bibtex-error-items.plain(readonly='true' multiline='true' flex='10' style='min-height: 8em;') hbox button(label='&better-bibtex_error-report_save.label;' oncommand='window.ErrorReport.save()')/ hbox(flex='1')/ diff --git a/content/ErrorReport.ts b/content/ErrorReport.ts index da6aefd0d8..588cea4208 100644 --- a/content/ErrorReport.ts +++ b/content/ErrorReport.ts @@ -1,12 +1,17 @@ Components.utils.import('resource://gre/modules/Services.jsm') import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS import { PromptService } from './prompt' +// import { regex as escapeRE } from './escape' import { Preference } from './prefs' + import { defaults } from '../gen/preferences/meta' +const supported: string[] = Object.keys(defaults).filter(name => !['client', 'testing', 'platform', 'newTranslatorsAskRestart'].includes(name)) + import { byId } from '../gen/translators' import { log } from './logger' import { AutoExport } from './auto-export' @@ -14,7 +19,6 @@ import { KeyManager } from './key-manager' import { DB as Cache } from './db/cache' import { pick } from './file-picker' -import { is7 } from './client' import * as l10n from './l10n' import Tar from 'tar-js' @@ -40,24 +44,35 @@ type Wizard = HTMLElement & { rewind: () => void } +type Report = { + context: string + errors: string + log: string + items?: string + acronyms?: string +} + +// const homeDir = $OS.Constants.Path.homeDir +// const $home = new RegExp(`${escapeRE(homeDir)}|${escapeRE(homeDir.replace(Zotero.isWin ? /\\/g : /\//g, '$1$1'))}|${escapeRE($OS.Path.toFileURI(homeDir))}`, 'g') + export class ErrorReport { - private previewSize = 3 * kB // eslint-disable-line yoda + private previewSize = 3 private document: Document private key: string + private region: { + region: string + short: string + tld: string + } private timestamp: string - private tarball: string private bucket: string private cacheState: string - private errorlog: { - info: string - errors: string - debug: string - items?: string - acronyms?: string - } + private input: Report + private report: Report + private config: Record public async send(): Promise { const wizard: Wizard = this.document.getElementById('better-bibtex-error-report') as Wizard @@ -69,7 +84,7 @@ export class ErrorReport { const version = require('../gen/version.js') try { - await Zotero.HTTP.request('PUT', `${this.bucket}/${$OS.Path.basename(this.tarball)}`, { + await Zotero.HTTP.request('PUT', `${this.bucket}/${this.tarball()}`, { noCache: true, // followRedirects: true, // noCache: true, @@ -85,12 +100,12 @@ export class ErrorReport { wizard.advance(); // eslint-disable-next-line no-magic-numbers - (this.document.getElementById('better-bibtex-report-id')).value = `${this.key}/${version}-${is7 ? 7 : 6}${Zotero.BetterBibTeX.outOfMemory ? '/oom' : ''}` + (this.document.getElementById('better-bibtex-report-id')).value = `${this.name()}/${version}-${is7 ? 7 : 6}${Zotero.BetterBibTeX.outOfMemory ? '/oom' : ''}` this.document.getElementById('better-bibtex-report-result').hidden = false } catch (err) { - log.error('failed to submit', this.key, err) - alert({ text: `${err} (${this.key}, items: ${!!this.errorlog.items})`, title: Zotero.getString('general.error') }) + log.error('failed to submit', this.name(), err) + alert({ text: `${err} (${this.name()}, items: ${!!this.report.items})`, title: Zotero.getString('general.error') }) if (wizard.rewind) wizard.rewind() } } @@ -138,26 +153,20 @@ export class ErrorReport { const tape = new Tar let out: Uint8Array - out = tape.append(`${this.key}/debug.txt`, [ - this.errorlog.info, - this.cacheState, - this.errorlog.errors, - this.errorlog.debug, - ].filter(chunk => chunk).join('\n\n')) - - if (this.errorlog.items) out = tape.append(`${this.key}/items.json`, this.errorlog.items) - if (this.errorlog.acronyms) out = tape.append(`${this.key}/acronyms.csv`, this.errorlog.acronyms) + out = tape.append(`${this.name()}/debug.txt`, this.report.log) - if ((this.document.getElementById('better-bibtex-error-report-include-db')).checked) { - out = tape.append(`${this.key}/database.json`, JSON.stringify(KeyManager.all())) - out = tape.append(`${this.key}/cache.json`, Cache.serialize({ serializationMethod: 'pretty' })) + if (this.report.items) out = tape.append(`${this.name()}/items.json`, this.report.items) + if (this.config.cache) { + out = tape.append(`${this.name()}/database.json`, JSON.stringify(KeyManager.all())) + out = tape.append(`${this.name()}/cache.json`, Cache.serialize({ serializationMethod: 'pretty' })) } + if (this.report.acronyms) out = tape.append(`${this.name()}/acronyms.csv`, this.report.acronyms) return gzip(out) } public async save(): Promise { - const filename = await pick('Logs', 'save', [['Tape Archive (*.tgz)', '*.tgz']], `${this.key}.tgz`) + const filename = await pick('Logs', 'save', [['Tape Archive (*.tgz)', '*.tgz']], `${this.name()}.tgz`) if (filename) await $OS.File.writeAtomic(filename, this.tar(), { tmpPath: filename + '.tmp' }) } @@ -168,11 +177,16 @@ export class ErrorReport { } private setValue(id: string, value: string) { - (this.document.getElementById(id)).value = value + const text = this.document.getElementById(id) + text.value = value + text.hidden = !value + + const tab = this.document.getElementById(`${id}-tab`) + if (tab) tab.hidden = !value } - private errors(): string { - const ignore = [ + private scrub(logging: string[]): string { + const ignore = new RegExp([ /NS_NOINTERFACE.*ComponentUtils[.]jsm/, /Addon must include an id, version, and type/, /NS_ERROR_NOT_AVAILABLE.*PartitioningExceptionListService[.]jsm/, @@ -181,9 +195,118 @@ export class ErrorReport { /You have reached your Zotero File Storage quota/, /See your zotero.org account settings for additional storage options/, /Could not get children of.*CrashManager.jsm/, - ] + /PAC file installed from/, + ].map(re => re.source).join('|')) + return logging.filter(line => !line.match(ignore)) + // .map(line => line.replace($home, '$HOME')) + .join('\n') + } + + private errors(): string { + return this.scrub(Zotero.getErrors(true) as string[]) + } + + private log(): string { + return this.scrub(Zotero.Debug.getConsoleViewerOutput().slice(-500000)) + } + + private cleanItem(item: any) { + if (!this.config.attachments && item.itemType === 'attachment') return false + if (!this.config.notes && item.itemType === 'note') return false + + delete item.libraryID + delete item.uri + delete item.relations + delete item.select + delete item.itemKey + delete item.contentType + delete item.filename + delete item.defaultPath + + delete item.multi + + if (item.path) item.path = item.path.replace(/.*\/zotero\/storage\/[^/]+/, 'ATTACHMENT_KEY') + + for (const creator of (item.creators || [])) { + delete creator.multi + } + + for (const details of ['attachments', 'notes']) { + if (item[details]) { + item[details] = item[details].filter(detail => this.cleanItem(detail)) + } + } + + return true + } - return (Zotero.getErrors(true) as string[]).filter(line => !ignore.find(re => line.match(re))).join('\n') + private reload() { + const init = typeof this.config === 'undefined' + this.config = { + context: true, + acronyms: true, + errors: true, + log: true, + items: true, + notes: false, + attachments: false, + cache: false, + } + for (const cb of Array.from(this.document.getElementsByClassName('better-bibtex-error-report-facet')) as HTMLInputElement[]) { + const facet = cb.id.replace(/.*-/, '') + + if (init) { + if (facet.match(/notes|attachments/)) { + cb.hidden = !this.input.items + this.config[facet] = this.config[facet] && !!this.input.items + } + if (facet === 'errors') { + log.debug('error report errors:', { errors: this.input.errors }) + cb.disabled = !this.input.errors + this.config[facet] = !!this.input.errors + } + cb.checked = this.config[facet] + } + + this.config[facet] = cb.checked + if (facet === 'notes' || facet === 'attachments') cb.disabled = !this.config.items + } + log.debug('error report reload:', { init }, this.config) + + this.report = {...this.input} + + if (!this.config.items) delete this.report.items + if (this.report.items) { + const lib = JSON.parse(this.report.items) + + if (lib.items) lib.items = lib.items.filter(item => this.cleanItem(item)) + + delete lib.config.options + + if (lib.config.preferences) { + for (const [pref, value] of Object.entries(lib.config.preferences)) { + if (!supported.includes(pref) || value === defaults[pref]) delete lib.config.preferences[pref] + } + } + + this.report.items = JSON.stringify(lib, null, 2) + } + + if (!this.config.errors) delete this.report.errors + if (!this.config.log) delete this.report.log + + this.setValue('better-bibtex-error-context', this.report.context) + this.setValue('better-bibtex-error-errors', this.report.errors || '') + this.setValue('better-bibtex-error-log', this.preview(this.report.log || '')) + this.setValue('better-bibtex-error-items', this.report.items ? this.preview(JSON.parse(this.report.items)) : '') + this.setValue('better-bibtex-report-cache', this.cacheState = l10n.localize('better-bibtex_error-report_better-bibtex_cache', Cache.state())) + + this.report.log = [ + this.report.context, + this.cacheState, + this.report.errors, + this.report.log, + ].filter(chunk => chunk).join('\n\n') } public async load(win: Window & { ErrorReport: ErrorReport, arguments: any[] }): Promise { @@ -198,27 +321,26 @@ export class ErrorReport { wizard.getPageById('page-send').addEventListener('pageshow', () => { this.send().catch(err => log.debug('could not send debug log:', err)) }) wizard.getPageById('page-done').addEventListener('pageshow', this.show.bind(this)) + for (const cb of Array.from(this.document.getElementsByClassName('better-bibtex-error-report-facet')) as HTMLInputElement[]) { + cb.addEventListener('command', this.reload.bind(this)) + } + wizard.pageIndex = Zotero.Debug.storing ? 1 : 0 const continueButton = wizard.getButton('next') continueButton.disabled = true - this.errorlog = { - info: await this.info(), + this.input = { + context: await this.context(), errors: `${Zotero.BetterBibTeX.outOfMemory}\n${this.errors()}`.trim(), // # 1896 - debug: Zotero.Debug.getConsoleViewerOutput().slice(-500000).join('\n'), + log: this.log(), items: win.arguments[0].wrappedJSObject.items, } - const acronyms = $OS.Path.join(Zotero.BetterBibTeX.dir, 'acronyms.csv') - if (await $OS.File.exists(acronyms)) this.errorlog.acronyms = await $OS.File.read(acronyms, { encoding: 'utf-8' }) as unknown as string + if (await $OS.File.exists(acronyms)) this.input.acronyms = await $OS.File.read(acronyms, { encoding: 'utf-8' }) as unknown as string - this.setValue('better-bibtex-error-context', this.errorlog.info) - this.setValue('better-bibtex-error-errors', this.errorlog.errors) - this.setValue('better-bibtex-error-debug', this.preview(this.errorlog.debug)) - this.setValue('better-bibtex-error-items', this.preview(this.errorlog.items)) - this.document.getElementById('better-bibtex-error-tab-items').hidden = !this.errorlog.items + this.reload() const current = require('../gen/version.js') this.setValue('better-bibtex-report-current', l10n.localize('better-bibtex_error-report_better-bibtex_current', { version: current })) @@ -237,13 +359,9 @@ export class ErrorReport { (this.document.getElementById('better-bibtex-report-oom')).hidden = !Zotero.BetterBibTeX.outOfMemory - this.setValue('better-bibtex-report-cache', this.cacheState = l10n.localize('better-bibtex_error-report_better-bibtex_cache', Cache.state())) - - const region = await Zotero.Promise.any(Object.keys(s3.region).map(this.ping.bind(this))) - this.bucket = `https://${s3.bucket}-${region.short}.s3-${region.region}.amazonaws.com${region.tld || ''}` - this.key = `${Zotero.Utilities.generateObjectKey()}${this.errorlog.items ? '-refs' : ''}-${region.short}` // eslint-disable-line no-magic-numbers - - this.tarball = `${this.key}-${this.timestamp}.tgz` + this.region = await Zotero.Promise.any(Object.keys(s3.region).map(this.ping.bind(this))) + this.bucket = `https://${s3.bucket}-${this.region.short}.s3-${this.region.region}.amazonaws.com${this.region.tld || ''}` + this.key = Zotero.Utilities.generateObjectKey() continueButton.disabled = false continueButton.focus() @@ -255,64 +373,79 @@ export class ErrorReport { } } - private preview(text: string): string { - return text.length > this.previewSize ? `${text.substr(0, this.previewSize)} ...` : text + private name() { + return `${this.key}${this.report.items ? '-refs' : ''}-${this.region.short}` + } + private tarball() { + return `${this.name()}-${this.timestamp}.tgz` + } + + private preview(input: any): string { + const previewSize = this.previewSize * kB + if (typeof input === 'string') return input.length > previewSize ? `${input.substr(0, previewSize)} ...` : input + + let trail = '' + if (input.items.length > this.previewSize) { + trail = `\n... + ${input.items.length - this.previewSize} more items` + input = { ...input, items: input.items.slice(0, this.previewSize) } + } + return JSON.stringify(input, null, 2) + trail } // general state of Zotero - private async info() { - let info = '' + private async context() { + let context = '' const appInfo = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULAppInfo) - info += `Application: ${appInfo.name} (${Zotero.clientName}) ${appInfo.version} ${Zotero.locale}\n` - info += `Platform: ${Zotero.platform} ${Zotero.oscpu}\n` + context += `Application: ${appInfo.name} (${Zotero.clientName}) ${appInfo.version} ${Zotero.locale}\n` + context += `Platform: ${Zotero.platform} ${Zotero.oscpu}\n` const addons = await Zotero.getInstalledExtensions() if (addons.length) { - info += 'Addons:\n' + context += 'Addons:\n' for (const addon of addons) { - info += ` ${addon}\n` + context += ` ${addon}\n` } } - info += 'Settings:\n' + context += 'Settings:\n' const settings = { default: '', set: '' } for (const [key, value] of Object.entries(Preference.all)) { settings[value === defaults[key] ? 'default' : 'set'] += ` ${key} = ${JSON.stringify(value)}\n` } if (settings.default) settings.default = `Settings at default:\n${settings.default}` - info += settings.set + settings.default + context += settings.set + settings.default for (const key of ['export.quickCopy.setting']) { - info += ` Zotero: ${key} = ${JSON.stringify(Zotero.Prefs.get(key))}\n` + context += ` Zotero: ${key} = ${JSON.stringify(Zotero.Prefs.get(key))}\n` } const autoExports = await AutoExport.all() if (autoExports.length) { - info += 'Auto-exports:\n' + context += 'Auto-exports:\n' for (const ae of autoExports) { - info += ` path: ...${JSON.stringify($OS.Path.split(ae.path).components.pop())}` + context += ` path: ...${JSON.stringify($OS.Path.split(ae.path).components.pop())}` switch (ae.type) { case 'collection': - info += ` (${Zotero.Collections.get(ae.id)?.name || ''})` + context += ` (${Zotero.Collections.get(ae.id)?.name || ''})` break case 'library': - info += ` (${Zotero.Libraries.get(ae.id)?.name || ''})` + context += ` (${Zotero.Libraries.get(ae.id)?.name || ''})` break } - info += '\n' + context += '\n' for (const [k, v] of Object.entries(ae)) { if (k === 'path') continue - info += ` ${k}: ${JSON.stringify(v)}` - if (k === 'translatorID' && byId[v as string]) info += ` (${byId[v as string].label})` - info += '\n' + context += ` ${k}: ${JSON.stringify(v)}` + if (k === 'translatorID' && byId[v as string]) context += ` (${byId[v as string].label})` + context += '\n' } } } - info += `Zotero.Debug.storing: ${Zotero.Debug.storing}\n` - info += `Zotero.Debug.storing at start: ${Zotero.BetterBibTeX.debugEnabledAtStart}\n` + context += `Zotero.Debug.storing: ${Zotero.Debug.storing}\n` + context += `Zotero.Debug.storing at start: ${Zotero.BetterBibTeX.debugEnabledAtStart}\n` - return info + return context } } diff --git a/content/ExportOptions.ts b/content/ExportOptions.ts index 417de4fe50..b4a36708cc 100644 --- a/content/ExportOptions.ts +++ b/content/ExportOptions.ts @@ -95,7 +95,8 @@ export class ExportOptions { break } - for (const node of [...doc.querySelectorAll('#export-option-exportFileData, #export-option-worker, #export-option-keepUpdated')] as HTMLInputElement[]) { + const ids = ['exportFileData', 'worker', 'keepUpdated', 'biblatexAPA', 'biblatexChicago'].map(id => `#export-option-${id}`).join(', ') + for (const node of [...doc.querySelectorAll(ids)] as HTMLInputElement[]) { if (node.classList.contains('better-bibex-export-options')) continue node.classList.add('better-bibex-export-options') node.addEventListener('command', this.mutex.bind(this)) @@ -108,6 +109,12 @@ export class ExportOptions { case 'export-option-worker': node.setAttribute('label', l10n.localize('better-bibtex_export-options_worker')) break + case 'export-option-biblatexAPA': + node.setAttribute('label', l10n.localize('better-bibtex_export-options_biblatexAPA')) + break + case 'export-option-biblatexChicago': + node.setAttribute('label', l10n.localize('better-bibtex_export-options_biblatexChicago')) + break } } @@ -126,6 +133,8 @@ export class ExportOptions { const exportFileData = doc.getElementById('export-option-exportFileData') as XUL.Checkbox const keepUpdated = doc.getElementById('export-option-keepUpdated') as XUL.Checkbox const worker = doc.getElementById('export-option-worker') as XUL.Checkbox + const biblatexAPA = doc.getElementById('export-option-biblatexAPA') as XUL.Checkbox + const biblatexChicago = doc.getElementById('export-option-biblatexChicago') as XUL.Checkbox if (!exportFileData || !keepUpdated) return null @@ -148,6 +157,12 @@ export class ExportOptions { worker.checked = true } break + case biblatexAPA.id: + if (biblatexAPA.checked) biblatexChicago.checked = false + break + case biblatexChicago.id: + if (biblatexChicago.checked) biblatexAPA.checked = false + break } worker.disabled = keepUpdated.checked diff --git a/content/Preferences.ts b/content/Preferences.ts index e150321ae2..0ecb583e70 100644 --- a/content/Preferences.ts +++ b/content/Preferences.ts @@ -1,7 +1,8 @@ Components.utils.import('resource://gre/modules/Services.jsm') import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS import type { XUL } from '../typings/xul' @@ -18,7 +19,6 @@ import * as l10n from './l10n' import { Events } from './events' import { pick } from './file-picker' import { flash } from './flash' -import { is7 } from './client' import { icons } from './icons' // safe to keep "global" since only one pref pane will be loaded at any one time @@ -204,6 +204,8 @@ class AutoExportPane { case 'asciiBibLaTeX': case 'biblatexExtendedNameFormat': case 'recursive': + case 'biblatexAPA': + case 'biblatexChicago': (node as unknown as XUL.Checkbox).checked = selected[field] break @@ -279,6 +281,7 @@ class AutoExportPane { Cache.getCollection(Translators.byId[ae.translatorID].label).removeDataOnly() let value: number | boolean | string + let disable: 'biblatexChicago' | 'biblatexAPA' = null switch (field) { case 'exportNotes': @@ -288,8 +291,15 @@ class AutoExportPane { case 'asciiBibLaTeX': case 'biblatexExtendedNameFormat': case 'recursive': - log.debug('edit autoexport:', field, node.checked) + case 'biblatexAPA': + case 'biblatexChicago': value = node.checked + if (node.checked && field === 'biblatexAPA') { + disable = 'biblatexChicago' + } + else if (node.checked && field === 'biblatexChicago') { + disable = 'biblatexAPA' + } break case 'DOIandURL': @@ -302,6 +312,7 @@ class AutoExportPane { log.error('edit autoexport: unexpected field', field) } await AutoExport.edit(path, field, value) + if (disable) await AutoExport.edit(path, disable, false) log.debug('edit autoexport: after', await AutoExport.get(path)) await this.refresh() } diff --git a/content/Preferences/autoexport.pug b/content/Preferences/autoexport.pug index 3c8c97ad6e..5f9ab76cd9 100644 --- a/content/Preferences/autoexport.pug +++ b/content/Preferences/autoexport.pug @@ -43,7 +43,7 @@ html:div#bbt-prefs-auto-exports(class='bbt-prefs-2col') menuitem(value='note-url-ish' label='&better-bibtex_preferences_export_bibtex_urls_note-url-ish.label;') menuitem(value='url' label='&better-bibtex_preferences_export_bibtex_urls_url.label;') menuitem(value='url-ish' label='&better-bibtex_preferences_export_bibtex_urls_url-ish.label;') - image(tooltip='bbt-tooltip-bibtexURL' src='chrome://zotero-better-bibtex/content/skin/attention.svg' width='16' height='16') + image(tooltip='bbt-tooltip-bibtexURL' src='chrome://zotero-better-bibtex/content/skin/attention.svg' width='16px' height='16px') // biblatex checkbox.bbt-autoexport-options.bbt-autoexport-BetterBibLaTeX( @@ -80,6 +80,18 @@ html:div#bbt-prefs-auto-exports(class='bbt-prefs-2col') label='&better-bibtex_preferences_auto-export_fields_journal-abbrev.label;' oncommand='Zotero.BetterBibTeX.PrefPane.autoexport.edit(this)' ) + checkbox.bbt-autoexport-options.bbt-autoexport-BetterBibLaTeX( + class='bbt-prefs-2col-span' + data-ae-field='biblatexAPA' + label='biblatex-apa' + oncommand='Zotero.BetterBibTeX.PrefPane.autoexport.edit(this)' + ) + checkbox.bbt-autoexport-options.bbt-autoexport-BetterBibLaTeX( + class='bbt-prefs-2col-span' + data-ae-field='biblatexChicago' + label='biblatex-chicago' + oncommand='Zotero.BetterBibTeX.PrefPane.autoexport.edit(this)' + ) // all checkbox( diff --git a/content/Preferences/export/bibtex.pug b/content/Preferences/export/bibtex.pug index 282bdf5b81..04d72beeae 100644 --- a/content/Preferences/export/bibtex.pug +++ b/content/Preferences/export/bibtex.pug @@ -3,7 +3,7 @@ checkbox(preference="extensions.zotero.translators.better-bibtex.bibtexParticleN checkbox(preference="extensions.zotero.translators.better-bibtex.bibtexEditionOrdinal" label="&better-bibtex_preferences_export_fields_bibtex-edition-ordinal.label;") html:div label(bbt:preference="extensions.zotero.translators.better-bibtex.bibtexURL") &better-bibtex_preferences_export_bibtex_urls; - image(tooltip="bbt-tooltip-bibtexURL" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width="16" height="16") + image(tooltip="bbt-tooltip-bibtexURL" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width='16px' height='16px') menulist(preference="extensions.zotero.translators.better-bibtex.bibtexURL") menupopup menuitem(value='off' label='&better-bibtex_preferences_export_bibtex_urls_off.label;') diff --git a/content/Preferences/export/fields.pug b/content/Preferences/export/fields.pug index 6a1824fef0..aac85e675b 100644 --- a/content/Preferences/export/fields.pug +++ b/content/Preferences/export/fields.pug @@ -12,7 +12,7 @@ html:div menuitem(value='both' label='&better-bibtex_preferences_export_fields_doi-and-url_both.label;') menuitem(value='doi' label='&better-bibtex_preferences_export_fields_doi-and-url_doi.label;') menuitem(value='url' label='&better-bibtex_preferences_export_fields_doi-and-url_url.label;') - image(tooltip="bbt-tooltip-DOIandURL" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width="16" height="16") + image(tooltip="bbt-tooltip-DOIandURL" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width='16px' height='16px') html:div label(bbt:preference="extensions.zotero.translators.better-bibtex.skipFields") &better-bibtex_preferences_export_fields_skip; textbox(size='30' preference='extensions.zotero.translators.better-bibtex.skipFields') @@ -24,4 +24,4 @@ html:div menuitem(value='3' label='&better-bibtex_preferences_export_jabref-format_3.label;') menuitem(value='4' label='&better-bibtex_preferences_export_jabref-format_4.label;') menuitem(value='5' label='&better-bibtex_preferences_export_jabref-format_5.label;') - image(tooltip="bbt-tooltip-jabrefFormat" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width="16" height="16") + image(tooltip="bbt-tooltip-jabrefFormat" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width='16px' height='16px') diff --git a/content/Preferences/export/misc.pug b/content/Preferences/export/misc.pug index 9e65d706e9..58b3826a36 100644 --- a/content/Preferences/export/misc.pug +++ b/content/Preferences/export/misc.pug @@ -12,16 +12,16 @@ checkbox(label="&better-bibtex_preferences_export_automatic-tags.label;" prefere html:div checkbox(preference="extensions.zotero.translators.better-bibtex.exportTitleCase" label="&better-bibtex_preferences_advanced_export_title-case.label;") - image(tooltip="bbt-tooltip-exportTitleCase" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width="16" height="16") + image(tooltip="bbt-tooltip-exportTitleCase" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width='16px' height='16px') html:div checkbox(preference="extensions.zotero.translators.better-bibtex.exportBraceProtection" label="&better-bibtex_preferences_advanced_export_brace-protection.label;") - image(tooltip="bbt-tooltip-exportBraceProtection" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width="16" height="16") + image(tooltip="bbt-tooltip-exportBraceProtection" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width='16px' height='16px') groupbox caption Cache html:div checkbox(preference="extensions.zotero.translators.better-bibtex.retainCache" label="&better-bibtex_preferences_advanced_export_retain-cache.label;") - image(tooltip="bbt-tooltip-retainCache" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width="16" height="16") + image(tooltip="bbt-tooltip-retainCache" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width='16px' height='16px') checkbox(preference="extensions.zotero.translators.better-bibtex.cache" label="&better-bibtex_preferences_advanced_export_workers_cache.label;") button(label="&better-bibtex_preferences_reset-cache.label;" oncommand="Zotero.BetterBibTeX.PrefPane.cacheReset()") diff --git a/content/Preferences/import.pug b/content/Preferences/import.pug index 829c85f472..9c1fb68778 100644 --- a/content/Preferences/import.pug +++ b/content/Preferences/import.pug @@ -5,13 +5,13 @@ hbox(flex=0) menuitem(value='as-needed' label='&better-bibtex_preferences_advanced_import_case-protection_as-needed.label;') menuitem(value='on' label='&better-bibtex_preferences_advanced_import_case-protection_on.label;') menuitem(value='off' label='&better-bibtex_preferences_advanced_import_case-protection_off.label;') - image(tooltip="bbt-tooltip-importCaseProtection" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width="16" height="16") + image(tooltip="bbt-tooltip-importCaseProtection" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width='16px' height='16px') checkbox(preference="extensions.zotero.translators.better-bibtex.auxImport" label="&better-bibtex_preferences_citekey_aux-scanner_import.label;") hbox(flex=0) groupbox caption(bbt:preference="extensions.zotero.translators.better-bibtex.importSentenceCase") &better-bibtex_preferences_advanced_import_sentence-case; - image(tooltip="bbt-tooltip-importSentenceCase" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width="16" height="16") + image(tooltip="bbt-tooltip-importSentenceCase" src="chrome://zotero-better-bibtex/content/skin/attention.svg" width='16px' height='16px') radiogroup(preference="extensions.zotero.translators.better-bibtex.importSentenceCase") radio(label="&better-bibtex_preferences_advanced_import_sentence-case_on-guess.label;" value="on+guess") radio(label="&better-bibtex_preferences_advanced_import_sentence-case_on.label;" value="on") diff --git a/content/ZoteroItemPane.ts b/content/ZoteroItemPane.ts index 7d32800d8a..9f02480551 100644 --- a/content/ZoteroItemPane.ts +++ b/content/ZoteroItemPane.ts @@ -5,7 +5,7 @@ import { log } from './logger' import { Elements } from './create-element' import { busyWait } from './busy-wait' import { icons } from './icons' -import { is7 } from './client' +import { Events } from './events' async function title_sentenceCase(label) { const val = this._getFieldValue(label) @@ -26,13 +26,15 @@ async function title_sentenceCase(label) { export async function newZoteroItemPane(win: Window): Promise { let itemBox: HTMLElement - await busyWait(() => { itemBox = win.document.querySelector(is7 ? 'item-box' : '#zotero-editpane-item-box'); return !!itemBox }) + await busyWait(() => { itemBox = win.document.querySelector('#zotero-editpane-item-box'); return !!itemBox }) new ZoteroItemPane(win, itemBox) } export class ZoteroItemPane { document: Document elements: Elements + displayed: number + done: () => void public refresh(): void { this.itemBox.refresh() @@ -41,61 +43,58 @@ export class ZoteroItemPane { constructor(win: Window, private itemBox: any) { // eslint-disable-line @typescript-eslint/explicit-module-boundary-types this.document = win.document const elements = this.elements = new Elements(this.document) - // const itemPane = (win as any).ZoteroItemPane - // itemPane.BetterBibTeX = this - - if (!is7) { - if (!this.document.getElementById('better-bibtex-editpane-item-box')) { - itemBox.parentNode.appendChild(elements.create('vbox', { flex: 1, style: 'margin: 0; padding: 0', $: [ - - elements.create('grid', { id: 'better-bibtex-editpane-item-box', $: [ - elements.create('columns', { $: [ - elements.create('column'), - elements.create('column', { flex: '1' }), - // elements.create('column', { flex: 100 }), - ]}), - elements.create('rows', { id: 'better-bibtex-fields', flex: 1, $: [ - elements.create('row', { class: 'zotero-item-first-row', $: [ - elements.create('label', { id: 'better-bibtex-citekey-label', style: 'width: 9em; text-align: right; color: #7F7F7F', value: '' }), - elements.create('textbox', { id: 'better-bibtex-citekey-display', flex: '1', class: 'plain', readonly: 'true', value: '' }), - // elements.create('label', { id: 'better-bibtex-citekey-pin', value: icons.pin }), - ]}), + + if (!this.document.getElementById('better-bibtex-editpane-item-box')) { + itemBox.parentNode.appendChild(elements.create('vbox', { flex: 1, style: 'margin: 0; padding: 0', $: [ + + elements.create('grid', { id: 'better-bibtex-editpane-item-box', $: [ + elements.create('columns', { $: [ + elements.create('column'), + elements.create('column', { flex: '1' }), + // elements.create('column', { flex: 100 }), + ]}), + elements.create('rows', { id: 'better-bibtex-fields', flex: 1, $: [ + elements.create('row', { class: 'zotero-item-first-row', $: [ + elements.create('label', { id: 'better-bibtex-citekey-label', style: 'width: 9em; text-align: right; color: #7F7F7F', value: '' }), + elements.create('textbox', { id: 'better-bibtex-citekey-display', flex: '1', class: 'plain', readonly: 'true', value: '' }), + // elements.create('label', { id: 'better-bibtex-citekey-pin', value: icons.pin }), ]}), ]}), + ]}), - itemBox, - ]})) - } + itemBox, + ]})) } win.addEventListener('unload', () => { this.unload() }) + const self = this // eslint-disable-line @typescript-eslint/no-this-alias $patch$(itemBox.__proto__, 'refresh', original => function() { // eslint-disable-next-line prefer-rest-params original.apply(this, arguments) if (!this.item) { + self.displayed = undefined // why is it refreshing if there is no item?! log.debug('itemBox.refresh without an item') return } - if (!is7) { - const menuid = 'zotero-field-transform-menu-better-sentencecase' - let menuitem = this.ownerDocument.getElementById(menuid) - const menu = this.ownerDocument.getElementById('zotero-field-transform-menu') - if (menu && !menuitem) { - log.debug('bbt sentencecase: adding', menuid) - menuitem = menu.appendChild(elements.create('menuitem', { - id: menuid, - label: 'BBT sentence case', - oncommand: event => { - title_sentenceCase.call(event.currentTarget.ownerDocument.getBindingParent(event.currentTarget), event.currentTarget.ownerDocument.popupNode) - }, - })) - } + self.displayed = this.item.id + const menuid = 'zotero-field-transform-menu-better-sentencecase' + let menuitem = this.ownerDocument.getElementById(menuid) + const menu = this.ownerDocument.getElementById('zotero-field-transform-menu') + if (menu && !menuitem) { + log.debug('bbt sentencecase: adding', menuid) + menuitem = menu.appendChild(elements.create('menuitem', { + id: menuid, + label: 'BBT sentence case', + oncommand: event => { + title_sentenceCase.call(event.currentTarget.ownerDocument.getBindingParent(event.currentTarget), event.currentTarget.ownerDocument.popupNode) + }, + })) } const { citationKey, pinned } = Zotero.BetterBibTeX.KeyManager.get(this.item.id) @@ -105,12 +104,18 @@ export class ZoteroItemPane { label.hidden = value.hidden = !citationKey - label.value = `${pinned ? icons.pin : ''}${l10n.localize('better-bibtex_item-pane_citekey')}` + label.value = `${pinned ? icons.pin : ''}${l10n.localize('better-bibtex_item-pane_info_citation-key.label')}` value.value = citationKey }) + + this.done = Events.on('items-changed', ({ items }) => { + if (this.document && items.map(item => item.id).includes(this.displayed)) this.refresh() + }) } public unload(): void { this.elements.remove() + this.done?.() + this.document = undefined } } diff --git a/content/ZoteroPane.ts b/content/ZoteroPane.ts index 58c2f80262..ca5243a096 100644 --- a/content/ZoteroPane.ts +++ b/content/ZoteroPane.ts @@ -253,10 +253,11 @@ class ZoteroPane { if (Zotero.BetterBibTeX.uninstalled) clean_pane_persist() }, this.patched) - if (!is7) if (this.ZoteroPane.itemsView.collectionTreeRow) await this.ZoteroPane.itemsView.refreshAndMaintainSelection() - - const selected = this.ZoteroPane.getSelectedItems(true) - if (selected.length === 1) Zotero.Notifier.trigger('refresh', 'item', selected) + if (!is7) { + if (this.ZoteroPane.itemsView.collectionTreeRow) await this.ZoteroPane.itemsView.refreshAndMaintainSelection() + const selected = this.ZoteroPane.getSelectedItems(true) + if (selected.length === 1) Zotero.Notifier.trigger('refresh', 'item', selected) + } } public pullExport(): void { diff --git a/content/ajv.ts b/content/ajv.ts index b05e6a2605..e887a8dca5 100644 --- a/content/ajv.ts +++ b/content/ajv.ts @@ -51,7 +51,7 @@ export function validItem(obj: any, strict?: boolean): string { // eslint-disabl const errors = broken.me(obj) if (!errors) return '' if (!strict && !broken.other(obj)) { - if (typeof Zotero !== 'undefined') print('Better BibTeX soft error: ' + errors) + if (typeof Zotero !== 'undefined') print('soft error: ' + errors) return '' } // https://ajv.js.org/api.html#validation-errors diff --git a/content/auto-export.ts b/content/auto-export.ts index 24cbcea579..f310e07a47 100644 --- a/content/auto-export.ts +++ b/content/auto-export.ts @@ -2,8 +2,10 @@ Components.utils.import('resource://gre/modules/FileUtils.jsm') declare const FileUtils: any import { log } from './logger' + import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS import { Events } from './events' import { DB as Cache } from './db/cache' @@ -48,7 +50,7 @@ export const SQL = new class { } const settings = autoExport[job.translatorID] - const displayOptions = byId[job.translatorID]?.displayOptions || {} + const displayOptions = {...(byId[job.translatorID]?.displayOptions || {})} Object.assign(job, pick(Preference, settings.preferences)) // eslint-disable-next-line @typescript-eslint/no-unsafe-return Object.assign(job, fromPairs(settings.options.map((option: PreferenceName) => [ option, job[option] ?? displayOptions[option] ?? false ]))) @@ -137,11 +139,12 @@ class Git { return this } - public async repo(bib): Promise { + public async repo(bib: string): Promise { const repo = new Git(this) if (!this.git) return repo + let config: string = null switch (Preference.git) { case 'off': return repo @@ -157,8 +160,6 @@ class Git { break case 'config': - // eslint-disable-next-line no-case-declarations - let config = null for (let root = $OS.Path.dirname(bib); (await $OS.File.exists(root)) && (await $OS.File.stat(root)).isDir && root !== $OS.Path.dirname(root); root = $OS.Path.dirname(root)) { config = $OS.Path.join(root, '.git') if ((await $OS.File.exists(config)) && (await $OS.File.stat(config)).isDir) break @@ -177,7 +178,7 @@ class Git { if (enabled !== 'true' && enabled !== true) return repo } catch (err) { - log.error('git.repo: error parsing config', config.path, err) + log.error('git.repo: error parsing config', config, err) return repo } break @@ -323,6 +324,8 @@ const queue = new class TaskQueue { const displayOptions: any = { exportNotes: ae.exportNotes, useJournalAbbreviation: ae.useJournalAbbreviation, + biblatexAPA: ae.biblatexAPA || false, + biblatexChicago: ae.biblatexChicago || false, } const jobs: ExportJob[] = [{ @@ -410,6 +413,8 @@ type Job = { biblatexExtendedNameFormat?: boolean DOIandURL?: boolean bibtexURL?: boolean + biblatexAPA?: boolean + biblatexChicago?: boolean } type JobSetting = keyof Job diff --git a/content/aux-scanner.ts b/content/aux-scanner.ts index 530361f2c8..0f60e129ae 100644 --- a/content/aux-scanner.ts +++ b/content/aux-scanner.ts @@ -1,7 +1,6 @@ -import { is7 } from './client' - import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS if (!is7) Components.utils.import('resource://gre/modules/osfile.jsm') @@ -175,7 +174,7 @@ export const AUXScanner = new class { // eslint-disable-line @typescript-eslint/ } } - re = /(?:\\citation|@cite|\\abx@aux@cite)\{([^}]+)\}/g + re = /(?:\\citation|@cite|\\abx@aux@cite(?:[{]0[}])?)\{([^}]+)\}/g while (m = re.exec(contents)) { for (const key of m[1].split(',')) { if (!citekeys.includes(key)) citekeys.push(key) diff --git a/content/better-bibtex.ts b/content/better-bibtex.ts index 448fa4fe69..5e9b48de95 100644 --- a/content/better-bibtex.ts +++ b/content/better-bibtex.ts @@ -1,8 +1,13 @@ /* eslint-disable prefer-rest-params */ -import { is7 } from './client' +import flatMap from 'array.prototype.flatmap' +flatMap.shim() +import matchAll from 'string.prototype.matchall' +matchAll.shim() + import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS if (is7) Components.utils.importGlobalProperties(['FormData']) @@ -42,7 +47,7 @@ import { Events } from './events' import { Translators } from './translators' import { DB as Cache } from './db/cache' -import { Serializer } from './serializer' +import { Serializer } from './item-export-format' import { AutoExport, SQL as AE } from './auto-export' import { KeyManager } from './key-manager' import { TestSupport } from './test-support' @@ -394,17 +399,6 @@ Zotero.Translate.Export.prototype.Sandbox.BetterBibTeX = { generateCSLYAML(_sandbox: any, translation: Translation) { generateCSLYAML(translation) }, generateCSLJSON(_sandbox: any, translation: Translation) { generateCSLJSON(translation) }, - /* - cacheFetch(sandbox: { translator: { label: string }[] }, itemID: number, options: { exportNotes: boolean, useJournalAbbreviation: boolean }, prefs: any) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return Cache.fetch(sandbox.translator[0].label, itemID, options, prefs) - }, - - cacheStore(sandbox: { translator: { label: string }[] }, itemID: number, options: { exportNotes: boolean, useJournalAbbreviation: boolean }, prefs: any, entry: any, metadata: any) { - return Cache.store(sandbox.translator[0].label, itemID, options, prefs, entry, metadata) - }, - */ - parseDate(_sandbox: any, date: string): ParsedDate { return DateParser.parse(date) }, } @@ -499,6 +493,8 @@ $patch$(Zotero.Translate.Export.prototype, 'translate', original => function Zot status: 'done', translatorID, exportNotes: displayOptions.exportNotes, + biblatexAPA: displayOptions.biblatexAPA, + biblatexChicago: displayOptions.biblatexChicago, useJournalAbbreviation: displayOptions.useJournalAbbreviation, }) } @@ -851,10 +847,55 @@ export class BetterBibTeX { } async loadUI(win: Window): Promise { + if (is7) { + let $displayed: number + let $refresh: () => void + let $done: () => void + Zotero.ItemPaneManager.registerSection({ + paneID: 'betterbibtex-section-citationkey', + pluginID: 'better-bibtex@iris-advies.com', + header: { + l10nID: 'better-bibtex_item-pane_section_header', + icon: `${rootURI}content/skin/citation-key.svg`, + }, + sidenav: { + l10nID: 'better-bibtex_item-pane_section_sidenav', + icon: `${rootURI}content/skin/citation-key.svg`, + }, + // bodyXHTML: 'Citation Key ', + bodyXHTML: 'Citation Key ', + // onRender: ({ body, item, editable, tabType }) => { + onRender: ({ body, item, setSectionSummary }) => { + body.style.display = 'flex' + $displayed = item.id + const citekey = item.getField('citationKey') + body.ownerDocument.getElementById('better-bibtex-citation-key').value = citekey || '\u274C' + setSectionSummary(citekey || '') + }, + onInit: ({ refresh }) => { + $refresh = refresh + $done = Events.on('items-changed', ({ items }) => { + if ($refresh && items.map(item => item.id).includes($displayed)) $refresh() + }) + }, + onItemChange: ({ body, item }) => { + $displayed = item.id + const citekey = item.getField('citationKey') + body.ownerDocument.getElementById('better-bibtex-citation-key').value = citekey || '\u274C' + }, + onDestroy: () => { + $done?.() + $done = undefined + $displayed = undefined + $refresh = undefined + }, + }) + } + try { log.debug('loading main UI') await newZoteroPane(win) - await newZoteroItemPane(win) + if (!is7) await newZoteroItemPane(win) } catch (err) { log.debug('loadUI error:', err) diff --git a/content/bootstrap.ts b/content/bootstrap.ts index 45eb2fa761..8087c29a4d 100644 --- a/content/bootstrap.ts +++ b/content/bootstrap.ts @@ -60,6 +60,11 @@ export function install(_data: any, _reason: ReasonId) { log('install, nothing to do') } +export function onMainWindowLoad({ window }) { + log('onMainWindowLoad') + window.MozXULElement.insertFTLIfNeeded('better-bibtex.ftl') +} + let chromeHandle export async function startup({ resourceURI, rootURI = resourceURI.spec }, reason: ReasonId) { try { @@ -79,6 +84,9 @@ export async function startup({ resourceURI, rootURI = resourceURI.spec }, reaso target: { Zotero, + // because the Zotero sample code assumes you're doing everything in bootstrap.js + rootURI, + // to pacify libraries that do env-detection window: Zotero.getMainWindow(), document: Zotero.getMainWindow().document, @@ -99,6 +107,7 @@ export async function startup({ resourceURI, rootURI = resourceURI.spec }, reaso defaultXUL: true, }) log('startup done') + onMainWindowLoad({ window: Zotero.getMainWindow() }) } catch (err) { alert({ title: 'Better BibTeX startup failed', text: `${err}` }) diff --git a/content/cayw.ts b/content/cayw.ts index 25b46aa437..cc131bd944 100644 --- a/content/cayw.ts +++ b/content/cayw.ts @@ -10,6 +10,7 @@ import { TeXstudio } from './tex-studio' import * as escape from './escape' import { flash } from './flash' import { log } from './logger' +import { Server } from './server' /* eslint-disable max-classes-per-file */ @@ -398,7 +399,7 @@ function getStyle(id): { url: string } { } } -Zotero.Server.Endpoints['/better-bibtex/cayw'] = class { +Server.Endpoints['/better-bibtex/cayw'] = class { public supportedMethods = ['GET'] public OK = 200 public SERVER_ERROR = 500 diff --git a/content/cayw/formatter.ts b/content/cayw/formatter.ts index 0fb5095f98..73fa7e81e7 100644 --- a/content/cayw/formatter.ts +++ b/content/cayw/formatter.ts @@ -3,7 +3,7 @@ import { Translators } from '../translators' import { getItemsAsync } from '../get-items-async' import { Preference } from '../prefs' -import { escapeHTML } from '../text' +import { html as escapeHTML } from '../escape' import { scannableCite } from '../../gen/ScannableCite' import { citeCreators, yearFromDate } from '../../translators/Better BibTeX Citation Key Quick Copy' import { Eta } from 'eta' diff --git a/content/client.ts b/content/client.ts index a04b80ed49..465b0230c1 100644 --- a/content/client.ts +++ b/content/client.ts @@ -1,7 +1,8 @@ declare const Zotero: any declare const location: any -export const is7 = (typeof location !== 'undefined' && location.search) ? ((new URLSearchParams(location.search)).get('is7') === 'true') : Zotero.platformMajorVersion >= 102 +const worker = typeof location !== 'undefined' && location.search +export const is7 = worker ? ((new URLSearchParams(location.search)).get('is7') === 'true') : Zotero.platformMajorVersion >= 102 function clientname(): string { if (typeof location !== 'undefined' && location.search) return (new URLSearchParams(location.search)).get('clientName') @@ -11,5 +12,25 @@ function clientname(): string { throw new Error('Unable to detect clientName') } +export const platform = { + name: '', + windows: false, + mac: false, + linux: false, +} + +if (worker) { + platform.name = (new URLSearchParams(location.search)).get('platform') + platform.windows = platform.name === 'win' + platform.mac = platform.name === 'mac' + platform.linux = platform.name === 'lin' +} +else { + platform.name = Zotero.isWin ? 'win' : Zotero.isMac ? 'mac' : Zotero.isLinux ? 'lin' : 'unk' + platform.windows = Zotero.isWin + platform.mac = Zotero.isMac + platform.linux = Zotero.isLinux +} + export const clientName = clientname() export const client = clientName.toLowerCase().replace('-', '') diff --git a/content/db/cache.ts b/content/db/cache.ts index 7324a44c2a..85473eaba8 100644 --- a/content/db/cache.ts +++ b/content/db/cache.ts @@ -92,7 +92,7 @@ class Cache extends Loki { coll = this.schemaCollection(header.label, { logging: false, - indices: [ 'itemID', 'exportNotes', 'useJournalAbbreviation', ...Object.keys(cachedPrefs) ], + indices: [ 'itemID', 'exportNotes', 'biblatexAPA', 'biblatexChicago', 'useJournalAbbreviation', ...Object.keys(cachedPrefs) ], schema: { type: 'object', additionalProperties: false, @@ -103,6 +103,8 @@ class Cache extends Loki { // displayOptions exportNotes: { type: 'boolean' }, useJournalAbbreviation: { type: 'boolean' }, + biblatexAPA: { type: 'boolean' }, + biblatexChicago: { type: 'boolean' }, // preferences ...cachedPrefs, @@ -114,7 +116,7 @@ class Cache extends Loki { meta: { type: 'object' }, $loki: { type: 'integer' }, }, - required: [ 'itemID', 'entry', 'exportNotes', 'useJournalAbbreviation', ...Object.keys(cachedPrefs) ], + required: [ 'itemID', 'entry', 'biblatexAPA', 'biblatexChicago', 'exportNotes', 'useJournalAbbreviation', ...Object.keys(cachedPrefs) ], }, ttl, ttlInterval, @@ -187,6 +189,8 @@ class Cache extends Loki { const query = { exportNotes: !!options.exportNotes, useJournalAbbreviation: !!options.useJournalAbbreviation, + biblatexAPA: !!options.biblatexAPA, + biblatexChicago: !!options.biblatexChicago, // itemID: Array.isArray(itemID) ? {$in: itemID} : itemID, } const translatorID = byLabel[translatorLabel].translatorID @@ -227,7 +231,7 @@ class Cache extends Loki { return clone(cached) } - store(translator: string, itemID: number, options: { exportNotes?: boolean, useJournalAbbreviation?: boolean }, prefs: any, entry: any, metadata: any) { + store(translator: string, itemID: number, options: { exportNotes?: boolean, useJournalAbbreviation?: boolean, biblatexAPA?: boolean, biblatexChicago?: boolean }, prefs: any, entry: any, metadata: any) { if (!Preference.cache) return false if (!metadata) metadata = {} @@ -235,6 +239,8 @@ class Cache extends Loki { options = { exportNotes: false, useJournalAbbreviation: false, + biblatexAPA: false, + biblatexChicago: false, ...options, } diff --git a/content/db/indexed.ts b/content/db/indexed.ts new file mode 100644 index 0000000000..7d2fbc8c0b --- /dev/null +++ b/content/db/indexed.ts @@ -0,0 +1,77 @@ +import { default as AsyncIndexedDB, AsyncIDBObjectStore } from 'async-indexed-db' + +export class Cache extends AsyncIndexedDB { + constructor() { + // eslint-disable-next-line @typescript-eslint/no-empty-function + super('better-bibtex:cache', async (_db: IDBDatabase) => {}, 1) + } + + async open(lastUpdated?: string): Promise { + if (this.db) return this + + return new Promise((resolve, reject) => { + const openRequest = indexedDB.open(this.name, 1) + + openRequest.onerror = openRequest.onblocked = (): void => { + const error = `could not open cache ${this.name}: ${openRequest.error?.message || 'Unknown error'}` + Zotero.debug(error) + reject(new Error(error)) + } + + openRequest.onsuccess = async () => { + try { + this.db = openRequest.result + const clear = lastUpdated && (lastUpdated > (Zotero.Prefs.get('translators.better-bibtex.cache.lastUpdated') || '')) + if (clear) { + await this.tx(['ExportFormat', 'Exported', 'ExportContext'], 'readwriteflush', async ({ ExportFormat, Exported, ExportContext }) => { + await Promise.all([ExportFormat.clear(), Exported.clear(), ExportContext.clear()]) + }) + } + resolve(this) + } + catch (err) { + reject(err) + } + } + + openRequest.onupgradeneeded = () => { + const cache = openRequest.result + const stores = { + ExportFormat: { keyPath: 'itemID', indices: undefined }, + /* + Exported: { keyPath: ['context', 'itemID'], indices: { // keyPath order matters for key retrieval! + itemID: { unique: false }, + context: { unique: false } + } }, + ExportContext:{ keyPath: 'id', autoIncrement: true, indices: { + properties: { unique: false, multiEntry: true }, + } } + */ + } + + for (const [name, config] of Object.entries(stores)) { + if (cache.objectStoreNames.contains(name)) cache.deleteObjectStore(name) + const indices = config.indices + delete config.indices + const store = cache.createObjectStore(name, config) + if (indices) { + for (const [index, setup] of Object.entries(indices)) { + store.createIndex(index, index, setup) + } + } + } + } + }) + } + + public async tx(stores: string | string[], mode: 'readonly' | 'readwrite' | 'readwriteflush' = 'readonly', handler: (stores: Record) => Promise): Promise { + if (typeof stores === 'string') stores = [ stores ] + const tx = this.db.transaction(stores, mode as IDBTransactionMode) + const env: Record = {} + for (const store of stores) { + env[store] = AsyncIndexedDB.proxy(tx.objectStore(store)) as AsyncIDBObjectStore + } + await handler(env) + tx.commit() + } +} diff --git a/content/db/store/file.ts b/content/db/store/file.ts index 7aad9ef3c2..0d068493b9 100644 --- a/content/db/store/file.ts +++ b/content/db/store/file.ts @@ -1,10 +1,11 @@ /* eslint-disable @typescript-eslint/member-ordering */ import { log } from '../../logger' -import { is7 } from '../../client' + import { Shim } from '../../os' +import { is7 } from '../../client' if (!is7) Components.utils.import('resource://gre/modules/osfile.jsm') -const $OS = typeof OS !== 'undefined' ? OS : Shim +const $OS = is7 ? Shim : OS // Components.utils.import('resource://gre/modules/Sqlite.jsm') // declare const Sqlite: any diff --git a/content/escape.ts b/content/escape.ts index 1fe11ba787..e527d70ab9 100644 --- a/content/escape.ts +++ b/content/escape.ts @@ -1,13 +1,14 @@ +import rescape from '@stdlib/utils-escape-regexp-string' + +const entity: Record = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', +} export function html(str: string): string { - const entity = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - } // return str.replace(/[\u00A0-\u9999<>\&]/gim, c => entity[c] || `&#${c.charCodeAt(0)};`) - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return str.replace(/[<>&"']/g, c => entity[c] || `&#${c.charCodeAt(0)};`) + return str.replace(/[<>&"']/g, (c: string) => entity[c] || `&#${c.charCodeAt(0)};`) } export function rtf(str: string): string { @@ -15,3 +16,7 @@ export function rtf(str: string): string { .replace(/([{}\\])/g, '\\$1') .replace(/\n/g, '\\par ') } + +export function regex(text: string): string { + return rescape(text) +} diff --git a/content/events.ts b/content/events.ts index cec44f45a0..b02a72b601 100644 --- a/content/events.ts +++ b/content/events.ts @@ -6,7 +6,7 @@ import { log } from './logger' import { is7 } from './client' type IdleState = 'active' | 'idle' -type Action = 'modify' | 'delete' | 'add' +export type Action = 'modify' | 'delete' | 'add' type IdleObserver = { observe: (subject: string, topic: IdleState, data: any) => void diff --git a/content/serializer.ts b/content/item-export-format.ts similarity index 98% rename from content/serializer.ts rename to content/item-export-format.ts index 59f326d676..06ce05824a 100644 --- a/content/serializer.ts +++ b/content/item-export-format.ts @@ -1,5 +1,6 @@ import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS import type { Attachment, Item } from '../gen/typings/serialized-item' import { JournalAbbrev } from './journal-abbrev' diff --git a/content/json-rpc.ts b/content/json-rpc.ts index a984451b76..71f69ea1d5 100644 --- a/content/json-rpc.ts +++ b/content/json-rpc.ts @@ -8,6 +8,7 @@ import { get as getCollection } from './collection' import * as Library from './library' import { log } from './logger' import { Preference } from './prefs' +import { Server } from './server' import methods from '../gen/api/json-rpc.json' import { validator, noncoercing } from './ajv' @@ -25,9 +26,7 @@ const INVALID_PARAMETERS = -32602 // Invalid method parameter(s). const INTERNAL_ERROR = -32603 // Internal JSON-RPC error. type QueryPrimitive = number | boolean | string -type Query - = Record> - | Record +type Query = Record> function getStyle(id: string): any { const style = Zotero.Styles.get(id) @@ -227,8 +226,10 @@ class NSItem { * * @param citekey The citekey to search for */ - public async attachments(citekey: string) { - const key = Zotero.BetterBibTeX.KeyManager.first({ where: { citationKey: citekey.replace(/^@/, '') } }) + public async attachments(citekey: string, library?: string | number) { + const where : Query = { citationKey: citekey.replace(/^@/, '') } + if (library !== '*') where.libraryID = Library.get(library).libraryID + const key = Zotero.BetterBibTeX.KeyManager.first({ where }) if (!key) throw { code: INVALID_PARAMETERS, message: `${citekey} not found` } const item = await getItemsAsync(key.itemID) const attachments = await getItemsAsync(item.getAttachments()) @@ -445,7 +446,7 @@ class NSItem { * @param libraryID ID of library to select the items from. When omitted, assume 'My Library' */ public async export(citekeys: string[], translator: string, libraryID?: string | number) { - const where : Query = { + const where: Query = { libraryID: Library.get(libraryID).libraryID, } citekeys = citekeys.map(citekey => citekey.replace('@', '')) @@ -702,7 +703,7 @@ const api = new class API { } } -Zotero.Server.Endpoints['/better-bibtex/json-rpc'] = class { +Server.Endpoints['/better-bibtex/json-rpc'] = class { public supportedMethods = ['GET', 'POST'] public supportedDataTypes = ['application/json'] public permitBookmarklet = false diff --git a/content/key-manager.ts b/content/key-manager.ts index 0b386a9d01..de0d874859 100644 --- a/content/key-manager.ts +++ b/content/key-manager.ts @@ -12,7 +12,7 @@ import { chinese } from './key-manager/chinese' import { Scheduler } from './scheduler' import { log } from './logger' import { flash } from './flash' -import { Events } from './events' +import { Events, Action } from './events' import { fetchAsync as fetchInspireHEP } from './inspire-hep' import * as Extra from './extra' import { excelColumn, sentenceCase } from './text' @@ -343,9 +343,6 @@ export const KeyManager = new class _KeyManager { return } - // update display panes by issuing a fake item-update notification - Zotero.Notifier.trigger('refresh', 'item', [key.itemID]) - if (!key.pinned && this.autopin.enabled) { this.autopin.schedule(key.itemID, () => { this.pin([key.itemID]).catch(err => log.error('failed to pin', key.itemID, ':', err)) @@ -489,21 +486,27 @@ export const KeyManager = new class _KeyManager { missing = await ZoteroDB.columnQueryAsync(`${$items} SELECT itemID FROM _items WHERE itemID NOT IN (SELECT itemID from betterbibtex.citationkey)`) }) + const notify = (itemIDs: number[], action: Action) => { + void Events.emit('items-changed', { items: Zotero.Items.get(itemIDs), action }) + } this.unwatch = [ this.keys[BlinkKey].events.onInsert.register(changes => { for (const change of changes) { - void this.store(change.entity).catch(err => log.error('keymanager.remove', err)) + void this.store(change.entity).catch(err => log.error('keymanager.insert', err)) } + notify(changes.map(change => change.entity.itemID), 'add') }), this.keys[BlinkKey].events.onUpdate.register(changes => { for (const change of changes) { - void this.store(change.newEntity).catch(err => log.error('keymanager.remove', err)) + void this.store(change.newEntity).catch(err => log.error('keymanager.update', err)) } + notify(changes.map(change => change.newEntity.itemID), 'modify') }), this.keys[BlinkKey].events.onRemove.register(changes => { for (const change of changes) { void this.remove(change.entity).catch(err => log.error('keymanager.remove', err)) } + notify(changes.map(change => change.entity.itemID), 'delete') }), this.keys[BlinkKey].events.onClear.register(_changes => { log.error('error: do not clear the keys database!') diff --git a/content/key-manager/formatter-zotero.js b/content/key-manager/formatter-zotero.js deleted file mode 100644 index e4a6157149..0000000000 --- a/content/key-manager/formatter-zotero.js +++ /dev/null @@ -1,170 +0,0 @@ -const ZU = Zotero.Utilities; - -const Z = { - getHiddenPref(p) { - return Zotero.Prefs.get('translators.' + p); - } -}; - -//%a = first listed creator surname -//%y = year -//%t = first word of title -var citeKeyFormat = '%a_%t_%y'; - -// a little substitution function for BibTeX keys, where we don't want LaTeX -// escaping, but we do want to preserve the base characters - -function tidyAccents(s) { - var r = s.toLowerCase(); - - // XXX Remove conditional when we drop Zotero 2.1.x support - // This is supported in Zotero 3.0 and higher - if (ZU.removeDiacritics !== undefined) - r = ZU.removeDiacritics(r, true); - else { - // We fall back on the replacement list we used previously - r = r.replace(new RegExp('[ä]', 'g'), 'ae'); - - r = r.replace(new RegExp('[ö]', 'g'), 'oe'); - r = r.replace(new RegExp('[ü]', 'g'), 'ue'); - r = r.replace(new RegExp('[àáâãå]', 'g'), 'a'); - r = r.replace(new RegExp('æ', 'g'), 'ae'); - r = r.replace(new RegExp('ç', 'g'), 'c'); - r = r.replace(new RegExp('[èéêë]', 'g'), 'e'); - r = r.replace(new RegExp('[ìíîï]', 'g'), 'i'); - r = r.replace(new RegExp('ñ', 'g'), 'n'); - r = r.replace(new RegExp('[òóôõ]', 'g'), 'o'); - r = r.replace(new RegExp('œ', 'g'), 'oe'); - r = r.replace(new RegExp('[ùúû]', 'g'), 'u'); - r = r.replace(new RegExp('[ýÿ]', 'g'), 'y'); - } - - return r; -} - -var numberRe = /^[0-9]+/; - -// Below is a list of words that should not appear as part of the citation key -// it includes the indefinite articles of English, German, French and Spanish, as well as a small set of English prepositions whose -// force is more grammatical than lexical, i.e. which are likely to strike many as 'insignificant'. -// The assumption is that most who want a title word in their key would prefer the first word of significance. -// Also remove markup -var citeKeyTitleBannedRe = /\b(a|an|the|some|from|on|in|to|of|do|with|der|die|das|ein|eine|einer|eines|einem|einen|un|une|la|le|l\'|el|las|los|al|uno|una|unos|unas|de|des|del|d\')(\s+|\b)|(<\/?(i|b|sup|sub|sc|span style=\"small-caps\"|span)>)/g; - -var citeKeyConversionsRe = /%([a-zA-Z])/; - -var citeKeyConversions = { - 'a': function(flags, item) { - if (item.creators && item.creators[0] && item.creators[0].lastName) { - return item.creators[0].lastName.toLowerCase().replace(/ /g, '_').replace(/,/g, ''); - } - - return 'noauthor'; - }, - - 't': function(flags, item) { - if (item['title']) { - return item['title'].toLowerCase().replace(citeKeyTitleBannedRe, '').split(/\s+/g)[0]; - } - - return 'notitle'; - }, - - 'y': function(flags, item) { - if (item.date) { - var date = Zotero.Date.strToDate(item.date); - - if (date.year && numberRe.test(date.year)) { - return date.year; - } - } - - return 'nodate'; - } -}; - -function buildCiteKey(item, extraFields, citekeys) { - if (extraFields) { - const citationKey = extraFields.findIndex( - field => field.field && field.value && field.field.toLowerCase() === 'citation key' - ); - - if (citationKey >= 0) - return extraFields.splice(citationKey, 1)[0].value; - } - - if (item.citationKey) - return item.citationKey; - - var basekey = ''; - var counter = 0; - var citeKeyFormatRemaining = citeKeyFormat; - - while (citeKeyConversionsRe.test(citeKeyFormatRemaining)) { - if (counter > 100) { - Zotero.debug('Pathological BibTeX format: ' + citeKeyFormat); - break; - } - - var m = citeKeyFormatRemaining.match(citeKeyConversionsRe); - - if (m.index > 0) { - //add data before the conversion match to basekey - basekey = basekey + citeKeyFormatRemaining.substr(0, m.index); - } - - var flags = ''; // for now - var f = citeKeyConversions[m[1]]; - - if (typeof f == 'function') { - var value = f(flags, item); - Zotero.debug('Got value ' + value + ' for %' + m[1]); - - //add conversion to basekey - basekey = basekey + value; - } - - citeKeyFormatRemaining = citeKeyFormatRemaining.substr(m.index + m.length); - counter++; - } - - if (citeKeyFormatRemaining.length > 0) { - basekey = basekey + citeKeyFormatRemaining; - } - - // for now, remove any characters not explicitly known to be allowed; - // we might want to allow UTF-8 citation keys in the future, depending - // on implementation support. - // - // no matter what, we want to make sure we exclude - // " # % ' ( ) , = { } ~ and backslash - // however, we want to keep the base characters - - basekey = tidyAccents(basekey); - - // use legacy pattern for all old items to not break existing usages - var citeKeyCleanRe = /[^a-z0-9\!\$\&\*\+\-\.\/\:\;\<\>\?\[\]\^\_\`\|]+/g; - - // but use the simple pattern for all newly added items - // or always if the hiddenPref is set - // extensions.zotero.translators.BibTeX.export.simpleCitekey - if (Z.getHiddenPref && Z.getHiddenPref('BibTeX.export.simpleCitekey') || item.dateAdded && parseInt(item.dateAdded.substr(0, 4)) >= 2020) { - citeKeyCleanRe = /[^a-z0-9_-]/g; - } - - basekey = basekey.replace(citeKeyCleanRe, ''); - var citekey = basekey; - var i = 0; - - while (citekeys[citekey]) { - i++; - citekey = basekey + '-' + i; - } - - citekeys[citekey] = true; - return citekey; -} - -module.exports = { - buildCiteKey: buildCiteKey -}; \ No newline at end of file diff --git a/content/key-manager/formatter.ts b/content/key-manager/formatter.ts index 802b5f3c22..c73493c9a2 100644 --- a/content/key-manager/formatter.ts +++ b/content/key-manager/formatter.ts @@ -1,7 +1,8 @@ import type { Tag, RegularItem as SerializedRegularItem, Item as SerializedItem } from '../../gen/typings/serialized-item' import { Shim } from '../os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from '../../content/client' +const $OS = is7 ? Shim : OS import { client } from '../client' @@ -15,7 +16,7 @@ import ucs2decode = require('punycode2/ucs2/decode') import { Preference } from '../prefs' import { JournalAbbrev } from '../journal-abbrev' import * as Extra from '../extra' -import { buildCiteKey as zotero_buildCiteKey } from './formatter-zotero' +import { buildCiteKey as zotero_buildCiteKey } from '../../gen/ZoteroBibTeX.mjs' import { babelLanguage, CJK } from '../text' import { fetchSync as fetchInspireHEP } from '../inspire-hep' diff --git a/content/library.ts b/content/library.ts index 24c8ae0b90..dc6b2635ae 100644 --- a/content/library.ts +++ b/content/library.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types */ -export function get(name: string | number) { +export function get(name?: string | number): { name: string, libraryID: number } { + if (typeof name === 'undefined') name = Zotero.Libraries.userLibraryID const num = typeof name === 'number' ? name : parseInt(name) if (!isNaN(num)) return Zotero.Libraries.get(num || Zotero.Libraries.userLibraryID) diff --git a/content/load-csv.ts b/content/load-csv.ts index 41da849a56..fb9e5a9770 100644 --- a/content/load-csv.ts +++ b/content/load-csv.ts @@ -1,5 +1,6 @@ import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS import csv from 'papaparse' import { log } from './logger' diff --git a/content/logger.ts b/content/logger.ts index 99e30d9500..1181c96891 100644 --- a/content/logger.ts +++ b/content/logger.ts @@ -7,7 +7,7 @@ import { stringify } from './stringify' import { asciify } from './text' export function print(msg: string): void { - dump(msg + '\n') + dump(`better-bibtex::${msg}\n`) } function toString(obj): string { @@ -35,7 +35,7 @@ class Logger { let prefix = '' if (typeof workerEnvironment !== 'undefined') { prefix += ' worker' - if (typeof workerJob !== 'undefined') prefix += `${workerJob.translator}` + if (typeof workerJob !== 'undefined') prefix += `:${workerJob.translator}` } if (error) prefix += ' error:' diff --git a/content/orchestrator.ts b/content/orchestrator.ts index a7931a8a29..d399900783 100644 --- a/content/orchestrator.ts +++ b/content/orchestrator.ts @@ -5,7 +5,8 @@ import { log } from './logger' import { Preference } from './prefs' import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS type Handler = (reason: Reason, task?: Task) => void | string | Promise @@ -172,14 +173,14 @@ export class Orchestrator { } const perform = async (): Promise => { - print(`better-bibtex orchestrator: task ${phase}.${name} starting`) + print(`orchestrator: task ${phase}.${name} starting`) try { const res = await action(reason, task) as Promise - print(`better-bibtex orchestrator: task ${phase}.${name} finished`) + print(`orchestrator: task ${phase}.${name} finished`) return res } catch (err) { - print(`better-bibtex orchestrator: error: task ${phase}.${name} failed: ${err}\n${err.stack}`) + print(`orchestrator: error: task ${phase}.${name} failed: ${err}\n${err.stack}`) throw err } } @@ -202,7 +203,7 @@ export class Orchestrator { }) .catch(err => { - print(`better-bibtex better-bibtex orchestrator: ${name}.${phase} ${reason || ''} error: ${err}`) + print(`orchestrator: ${name}.${phase} ${reason || ''} error: ${err}`) throw err }) } diff --git a/content/os.ts b/content/os.ts index 135330cf07..d0492f15cc 100644 --- a/content/os.ts +++ b/content/os.ts @@ -1,4 +1,10 @@ -import { is7 } from './client' +import { is7, platform } from './client' -import { $OS } from '../gen/osfile-shim' -export const Shim: any = is7 ? $OS : null +import { OS as $OS } from '../gen/osfile' +export const Shim: any = is7 ? $OS : undefined + +if (Shim) { + // no idea why it was decided the shim should not accept relative paths + const Path = platform.windows ? { start: /.*\\/, end: /\\$/ } : { start: /.*\//, end: /\/$/ } + Shim.Path.basename = (path: string) => path && (Shim.Path.normalize(path) as string).replace(Path.end, '').replace(Path.start, '') +} diff --git a/content/path-search.ts b/content/path-search.ts index 24f077561f..68d8ab31f9 100644 --- a/content/path-search.ts +++ b/content/path-search.ts @@ -1,6 +1,7 @@ import { log } from './logger' import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS // https://searchfox.org/mozilla-central/source/toolkit/modules/subprocess/subprocess_win.jsm#135 doesn't seem to work on Windows. export async function findBinary(bin: string, installationDirectory: { mac?: string[], win?: string[] } = {}): Promise { @@ -12,12 +13,6 @@ export async function findBinary(bin: string, installationDirectory: { mac?: str return location } -async function* asyncGenerator(array: T[]): AsyncGenerator { - for (const item of array) { - yield await Promise.resolve(item) - } -} - const ENV = Components.classes['@mozilla.org/process/environment;1'].getService(Components.interfaces.nsIEnvironment) const VarRef = Zotero.isWin ? /%([A-Z][A-Z0-9]*)%/ig : /[$]([A-Z][A-Z0-9]*)/ig function expandVars(name: string, expanded: Record): string { @@ -42,6 +37,7 @@ async function pathSearch(bin: string, installationDirectory: { mac?: string[], const expanded = {} paths = paths.map(p => expandVars(p, expanded)) + log.debug('path-search: looking for', bin, 'in', ENV.get('PATH'), paths) if (Zotero.isWin && installationDirectory.win) paths.unshift(...(installationDirectory.win)) if (Zotero.isMac && installationDirectory.mac) paths.unshift(...(installationDirectory.mac)) paths = paths.filter(p => p) @@ -56,10 +52,11 @@ async function pathSearch(bin: string, installationDirectory: { mac?: string[], return '' } - for await (const path of asyncGenerator(paths)) { + for (const path of paths) { for (const ext of extensions) { try { const exe: string = $OS.Path.join(path, bin + ext) + log.debug(`path-search: testing ${exe}`) if (!(await $OS.File.exists(exe))) continue // eslint-disable-next-line @typescript-eslint/await-thenable diff --git a/content/prefs.ts b/content/prefs.ts index 2c2bb20a55..449662271b 100644 --- a/content/prefs.ts +++ b/content/prefs.ts @@ -2,7 +2,8 @@ declare const Services: any import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7, platform } from './client' +const $OS = is7 ? Shim : OS import { Events } from './events' import type { CharMap } from 'unicode2latex' @@ -38,16 +39,7 @@ export const Preference = new class PreferenceManager extends PreferenceManagerB this.setDefaultPrefs() // put this in a preference so that translators can access this. - if (Zotero.isWin) { - this.platform = 'win' - } - else if (Zotero.isMac) { - this.platform = 'mac' - } - else { - if (!Zotero.isLinux) Zotero.debug('error: better-bibtex could not establish the platform, assuming linux') - this.platform = 'lin' - } + this.platform = platform.name if (this.testing) { return new Proxy(this, { @@ -180,16 +172,7 @@ export const Preference = new class PreferenceManager extends PreferenceManagerB this.move('suppressTitleCase', 'exportTitleCase', old => !old) // put this in a preference so that translators can access this. - if (Zotero.isWin) { - this.platform = 'win' - } - else if (Zotero.isMac) { - this.platform = 'mac' - } - else { - if (!Zotero.isLinux) Zotero.debug('error: better-bibtex could not establish the platform, assuming linux') - this.platform = 'lin' - } + this.platform = platform.name if (this.testing) { return new Proxy(this, { diff --git a/content/pull-export.ts b/content/pull-export.ts index 5a2e69a49d..9abcc6f1a6 100644 --- a/content/pull-export.ts +++ b/content/pull-export.ts @@ -10,6 +10,7 @@ import { get as getCollection } from './collection' import { get as getLibrary } from './library' import { getItemsAsync } from './get-items-async' import { fromPairs } from './object' +import { Server } from './server' function displayOptions(request) { const isTrue = new Set([ 'y', 'yes', 'true' ]) @@ -22,7 +23,7 @@ function displayOptions(request) { } } -Zotero.Server.Endpoints['/better-bibtex/export/collection'] = Zotero.Server.Endpoints['/better-bibtex/collection'] = class { +Server.Endpoints['/better-bibtex/export/collection'] = Server.Endpoints['/better-bibtex/collection'] = class { public supportedMethods = ['GET'] public async init(request) { @@ -49,7 +50,7 @@ Zotero.Server.Endpoints['/better-bibtex/export/collection'] = Zotero.Server.Endp } } -Zotero.Server.Endpoints['/better-bibtex/export/library'] = Zotero.Server.Endpoints['/better-bibtex/library'] = class { +Server.Endpoints['/better-bibtex/export/library'] = Server.Endpoints['/better-bibtex/library'] = class { public supportedMethods = ['GET'] public async init(request) { @@ -76,7 +77,7 @@ Zotero.Server.Endpoints['/better-bibtex/export/library'] = Zotero.Server.Endpoin } } -Zotero.Server.Endpoints['/better-bibtex/export/selected'] = Zotero.Server.Endpoints['/better-bibtex/select'] = class { +Server.Endpoints['/better-bibtex/export/selected'] = Server.Endpoints['/better-bibtex/select'] = class { public supportedMethods = ['GET'] public async init(request) { @@ -109,7 +110,7 @@ Zotero.Server.Endpoints['/better-bibtex/export/selected'] = Zotero.Server.Endpoi function isSet(v) { return v ? 1 : 0 } -Zotero.Server.Endpoints['/better-bibtex/export/item'] = class { +Server.Endpoints['/better-bibtex/export/item'] = class { public supportedMethods = ['GET'] public async init(request) { diff --git a/content/server.ts b/content/server.ts new file mode 100644 index 0000000000..f1b756957c --- /dev/null +++ b/content/server.ts @@ -0,0 +1 @@ +export const Server = Zotero.Prefs.get('translators.better-bibtex.disableHTTP') ? { Endpoints: {} } : Zotero.Server diff --git a/content/skin/citation-key.svg b/content/skin/citation-key.svg new file mode 100644 index 0000000000..9515adf73f --- /dev/null +++ b/content/skin/citation-key.svg @@ -0,0 +1,5329 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + 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 +cCqyj0YjnL1oBCAgCJ0ZAaveZgKCDDMCLDO6V2PyQLF6IEjriyt3Ye9MpQmCbsKnkQnHCBUtCMJj +BDhBkF4NkxUEGzICKN3HCNTnnuxMEGw5CoJijDBY200Q7D2OGAiKFyNUy86EMYI9UUJMO/TpxghY +rGcSA5CPEUYBQhAUwek8EExmkBE00QJBcHsosAgizw+UAAPqxo1dUjBOpTYARUd3k92qUhFRAq21 +QSyJqlJ5ItJUNaeOVeeWF0UzSi3CVpJtEzPFERQiTkRECJ1y1zVsd/z///v/72s1dcRusdmMgeO8 ++SxRAAAAACA+BGoELwcySo/ypeyns3/ylM5T8qyWeqNwlFylPKnOkra7nqeUFeWpM5W0Xsq1Wq8y +0m628sprpZW3K7+ML19aed/5rZQvpUfKV0pqK/9Lp1VSvs73a7vr4+wq+W+zpJbjne+1X84rnefT +GGWVPGeU7LVvjD6tRXHKPuOltV6Xk33SONl9Wp/15cfb/PVv15ef323Zzr9868uX/5fe+JXvtdej +39t2trXTsp33Sq4ShetkO1uyvXb+vH2n5Utnu8tG/vnNP9vbY/SPLdtd/Vf6e7uL+6d/5fnO7u2u +/ulPn5+y+23q1ONtpk+/n3qMfue1kdvrjBztnUzdttcbOX6Nbi/X6c71p6XebL2ytd+T3/71r9L7 +8vW23rf+der/3C+5qdPJ/Va25aY/+7lpnZW2uyR9lvQljU5ZUjkzaLhlgHJv/0f+n/xSVv63PSs/ +nZavlM63trvu7cm3Xq9+p7R0On2+zn6bznmvjdR2y2dvvv398XY77Shr3xjtPKnRvq2ULVtrT/zy +je0vtkb++7feG23kZ/o1Xlr9XtqW4335HG9b9httz8kenT3SOJ+v1xOm7+0zyq7fVPY3V9ruFIV/ +8jtlWy9l69Yt20q/65WTVukyXtvuovL/ervr+uW/Hfn6v/c797fz+zvTdq9P2W+ktdLoTi3Xnxxp +13rClb7Lp3NervQ2WyovpTLa+T5lvW5vx9uRny19Z9tyXnn7p6yyY5QfWUrp/lG2vTValjHWfsrS +Y8fuaO1//fq3296OND5lWf1Kpt/2Sktvy488bY3Sadfq9SXPaumVVE55Z2Rn9+fZkaltaXnSSnlS +K2cztbcvyvTINM6nlN3d2trttc5qK5XW1udpJ89obTvf+OyXNqXTX0opY3wbqY1xWudIaUeOsr6d +/9bKbvnP8t1S/0mprNXlfBrfaX1/adm7nem91/96rVfKlrE5NkfZNTbHSv8l5ShnlfTlrFNKphzt +bKbVvuVov9br/nT6bXqjZfr8tOPlf7mWr6Vt+f5PV/0au/Zp98/+p5dG71m95aQfmUZbfcb4/fHE +r3xLvbmn/Rt7TmtlS5ZT+mQpu/3WKGONlv32d7z9lmOfuHe7yyR6jRwjpT4tZfdm9zm/22dX+pSy +5ZezpXX+v9VGdn++dt5Lb7uNl/9/ulxG/2jtc42S3ksv19u2n/3e+5HptNcv/TrpbdsyUjqv/Hav +KPT2jLGN9E62c7Lflmz/p4ur9EmltTdGUU5mx2SVUbqMlHplv91c46yVnaulV3KtXbnW9zmrtLe+ +20irnZen5Optm6mjoPD8n/PK/+nKoOGVQcPJ0ziZ2vlT+v04/bY0sZfS224ybUxKSJm8KDX+dHHk ++O2uDBpQuDBpz6DBg0nfMmjIcWHSGihQZbQYm83FxEztRuvgRlvj9OnTxmLTntBIb+wk1jZ6TMZ6 +Mrv7xT8mpYzNk5MZs3bGJA3XZIOLzcWDiZtEEze5bdIzLkzapLYJDJdLbpMXGTSQcGEyIgWEk5gX +GlyMhwtk0OCBC5NoQoEJZNBAi7HVXFBsiDgo9XZlWa20Ju44HUyilE+fPlP6T9//K6X+1L2ju/+1 +rr/WFf/G7Ntc+SdM6Uf/iKv/1e1zpSgpJtKE+vTnfvr2ev3413LTtzAT+e6zXvtW1gwaYFysqE/n +xxmdZ31a37pelE6mb1+q+1uT/442JWCVzn6rIceEcmfQMMLknWWKDBpQ/O1bE/rXujSAYOImOTUm +0USEScygYYRJNaHSmtxvFDKJ4vfaKC9f+vZtNLG5mDCBkX2IcUN0wCCDhhWTxvv+Xqftn0wdhTp1 +yfHvS6axKDm+/Ejd5V+XNcpKI23pMtZ/2aW9XC/fv/f+8703xo9X3hnjjbFGj05ltDFOvzEZUdjW +yNa2pVLGrK3W2o5WUrY02v639/KdzpXWWKVyUqdNLdfaMcnVzu5Ze1JZo5192dtRauXa8a/7e+zE +XkrnT5c9V2Rga9tvafn76Xu3u7jnnDFWL9fp9s7YfSo9Tj9hSeOsdNJJbe1J3+lJP2WXX5nSOCml +kV5a49+ntyl92k+79q2Ru1ruWrvSyLHGSuvfpiwryssrq5VVsqx+7eTnOav16v3V0kq9Xr4vaW13 +0Vq5v9ZbUWr9a72fbY390i9vvbVjrfW/frR8a6w929L/yn3b3nYXX8nS0ucbrdvb7rLX3mnvvG4r +u538bi+l9vnfo+S39lpa+fvGGJ9+PPF62//G+f+X/fqclP3612if/2fkl5PWvy+52j+JX123Xr/3 +8r1+pbzy0nnbXfbOK+1z97Tct96+b9td19svW9tOna2lk6u1TttdlNo6213VtrtqtdE52vofHyXG +v21j/fo1Vp+y69u2t1Z6a63d7qrVa/dFqVXWdletz7HGGp9jrfK5a71Rtrssd213UaaXXqaX0lor +nUwpvdWdOm2XdF7blKtHbvrUvnu1lK27da9evd1puzt1r+4uqbvb6+7tbS1Ll+7VVurRSum2J9f2 +Wp9Wal3y3/m0udLItdZao19vdpf32V9onbPO+ZJrnX5SJz2R03Jl+pNrT8u158sbvX7kl/XlU0r5 +ynr5yiul5XrlV9tWVivtrbTdyjhdcqWynel9Kr/S+1I+O51P5V/L7i2pU3mvpNRldI8ncdbIVcoo +Z5TUerwt27nlvdH9xlmbZ430stfY0+lkGqeckmmkUUqmM0Z5UWIzpbdjtPO5L3tH945VNtP73S8v +fzdKrbep+70+q9c7pYx9UmX05tsdr7Vs7WT619vGZ0rvyW0rm2vPy7Wda7dXSufL6rZR+oSr9fa+ +3Shd+bbt6nwpZfs2RkvZotjY7rK1Y2Xb3862o/zb1LvdFXs+Vxk5xqfxzmhlbHfxjR+l9TvrdY+3 ++V722O6yNUYbbbR/uUb5fJ2tvLHGdtf8rpPyjfc233hj+0fJ1V5Z+SONHyn/x499W0ZbJ40c75wc +ZfuVst1ZBjBFPE/JAYPD4JFkBc4R1UsOEpYGrxsvHOBECUhVxgqOnMgEufqAxqgHgmwoiwVuh9UG +Nik44moxAZEPYD2KyHpyVx/UAIHBAjBuuGBbgCjxQCbpl3LDpKWCkwuukC31OtT0ODKTk7sCCnr6 +zfwMTa3YjKwkwALHEQikuPFCiix3JSTUtEX7WRKCqFFBEQOIEMHHC5yckhi3pCoQsR5IOtjoQPJi +2wFxdqC0dHyetnSAdkIaXBNQRs3ph+OREs52noYhbH5cYaAighUUYGIEUh1ifCgp+oCTEIMSthUI +oAIwImxIsSEkBA2SlQVSfiDJoIWPI6zyA4nLrKk3QtAQYQ0hIUIaDxMPKGiX5XJL6g== + + + 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 +PuUZw6ozYvSs14GC7St4fr48KZeZ04rWC6lj/NJPW673HNdhkuE3kyGXvqMEc5Niy34OnqgyCkiw +YjxOrz3o7NJZkF36CTJsDvP8oosYrdo06ASld55gbCXCLjsFIT/mDUS23Q4rVjAP39QZjBLs3pt6 ++Uyr2Q90bp0pcAKFCUGLFigIHSV1yBB8nzmy44ZNshpZahoBtNS0Aiyp7LiTo9WYDOGReCjInAdO +v/gTOFNjD0aU0Bd8JJ0ZYNG0wkDFJ1yj9NKFSDG9AhdmHANQQYUMjB/TGAVPEXsDFebWgxWm1gIw +hEwBQPFbUiAGEqsCTdAZaAVrm7AD5bJghnh0wjjE5WBCxTv0jNozjFdmM82vvQc197M/5XzT0JkP +c5w6C8FzhJZhfrnFHMd6m2V5T9MM4z2EWWctgFPyGmeXTYvIzTexKTpX0ALm2eEGm5WipJKzKLPQ +XJxgbS9MrhtI0SvtwwiG1puK35Tb71xE6fTegMYnDMEF68UQ4yPmoEU7hkAkyQWiJ6SewU6txVAa +yTmSTmPLrdg+ePXuc6hc+64qNu/xOeujhNpwT0DwuWt2nTdS0XPldH2vTt9xzytarmbKRUfxgzK7 +8LLU3mCz9NYgw9RekTP1fmFy5xBmeswgdIzaH8CnMxM4VG0QiEzBCoActzSIwZJlJJ3KXqZaaj5t +l5svG/bG3ILtT9u0DmiO5DyIHCqyEzxbaiJEsXnWOjbX9dNGgGOTnH8gA5iUEvxKMzrZcL6mWt+s +runUbblteSW/Lf289WJFY/2O35UbhM3SdygVp0mtbLsy2tY/pW++c9ru2zTF3GCMXTeWIthbSDEK +LgP1UrsgJ0SYSBFiiaJihYgUJVqsSLGTgYEHXvRI+EiwAJogAWyBQkWIXgkTLUKYMFECRYgWvBUn +Qvx8QJ4TK1AAOVQw8lRwMjsqgJTExPA4eUCiPC48QqWx4xfkOZZUQGGipOPnS/aGyJgRFTrwTLT4 +8Xq+nwoUvxIhSKzosQhRYkULFCFSmFjRC6Gi50PBwgc8oUJCw8ADPE4eEB8yJEMGByqo2Hf/3X/3 +3/13/91/99/9d//df/ff/Xf/3X/33/13/91/99/9d//df/ff/Xf/3X/33/13/91/99/9d//df/ff +/Xf/3X/33/13/91/99/9d//df/ff/Xf/3X/33/13/91/99/9d//df/ff/Xf/3X/33w== + + + /Xf/3X/33/13/91/99/9d//df/ff/Xf/3X/33/13/91/99/9d//df/ff/Xf/3X/33/13/91/99/9 +d//df/ff/Xf/3f////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +///////////////////u//////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +////////////////////////f/f///////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +////////////////////////////////S6IdgEQMFpsGHkJoBEo0uTh4eRojQtt1MMlvHQTPkxwF +yb3nMNN0RSe8xtGVbQBAV7I6lGEYfsUIvjulY3NUW7YOdkUzP4IYPeEII0xsEB5ZrxJc012rYwSw +Vtl1ITxbayd6V2YufllnQ6jaj7M880/weLGFqNFaW5ETRmdC5QJY0p4dgFplz8UwvdwoMIl2zfBd +xZt6ymhMq+u5GDswegQeT/AJJ1ptI2bAe5DfOe5KCE437QlrQ1FUKoccu8Z4TrR+BGjOs9gZ40Hc +YLVF8KE1d+SE7z1WMxpWrJrf4pdFVqSa80A+ajil1dxnweO+ueh123KY6H1QlozOaEsW18Si709t +GY/NsvtKqRtOex2j01rNOvA13XMdaqjQJLBImZHA8ZqbILl3G6g3L3IMazMpgue/5xkvrbrlpNY3 +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 +QYp/sFmK5zjB+A8iWBvRKa8RQ0arbQEVU+8DHdsxBC+eXw6wUHJZYEINpzC71myYXrcNHsclCUzM +RFuG33wFI9NwBShTMAUhU28GHdGwEjVKa5dk147DLPsBkKEFCkGGz4dFuWW2AofJjUFIdvxAR9IL +gRU5TAaEYMFWQKKsMkF6tZEMsdIogPFD8kDDtAYBer2t6EmdufhVpZmQYYqToHEqezAi7U6A0X6L +VLC+BM5SXAMVoLMJlyeyCyxTaxusHME52CDFVeQoyT3IKMEx0DDJV45f9Jsl2FyDC1GZAovQeQNM +0PlCzY9agpWoeASPUXtFGUUWY+gUv5BDRO5Vv9p4zoDvqLKoC1BAlo6A/gBhBwQhCHkIAxJoYBgG +AAgAgEBACASCgCAgeIBggIBZoLcFXKvEKFUH7O/MMEqRnyLv9sllfoXIwShtBqMqlOkp9bGOFzqS +IhO63/pTDjXFn5zjCJUWZSVTAqPq84SM2gkddTJKeVowkQE9TLg+fy2iPq6af1vHVaYR0wcGGBxj +nVAK+IgB/o7trbqgKpIflJ3HHZTyrXnb5ecTx5aWyPzEzZyTm7gzP+cmbt7P/tyZ/Jk3uxlvdnPf +5ObOxJncrDv7uW5y897s587Ez7yZm3mzO/cnd+4mzsTN3Nmbc5Mz72c/70x+1pvdzDO7uT9xczfh +TG7mnv2cO7l5P/NzZ/Jm3uzMvNnN+5ObdxNncmbu7Oe4yc3zs587Jz/zzm7mzdzcn5y5mzgmN3Pn +fs5N3byfvbkz+RlvdjPe7AyaRdAcevf4vAYAdAaHNzk2ZGY1ZGEtMzUyYS00OGE5LWFlODYtYTBl +ODgxOGQ5YTc3YWMwMTBlNDAtODczZC00MzQ3LTkzYWMtOGZjMmRjZmU3MTI5LTc5MTY2MTA3OTI4 +MjYybDYwMiA0MWgNCldRNC04HwBWyIRRrQOrSFgY1R42R7Xc4hF2YTSSBBbGXtANoxpB2tMYb4DR +KBDwYNIH6uDBBdKYmMYdakGrRxfrIQFeDYDrkvKA2C7bJj9UYxguGutiumMvNH2ObeSBjTLIaECX +1opqOlDgfGwwfU5NDq5kBgC0BNAxN2YtZTZiYi00ZjI5LTljNTQtOTM1MjZiMjU0MjZhMTFkODkw +ZC0xZmMwLTRhNjItYmY1Ny1hNDI4YjgzYjk3YTY2Mzc3MzY2NCIgoYQ5RmCEx0J8WiT/o8+hhgMA +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 + + + FrwFf8HeAXsvzdxLQeMpKrW4sLJ3o7XWn96uL6Az1ewMNlRnmNo6MzT0PqWUUspEsqWuA/QBX2yB +IPcXMwXsBGQFK92/ZHJZp8n/lVXlYudtVJxSYtp3xb/7vOv4W62TuSsne+fFybytk2n/XnZixdNO +lrwkEwp3svROplanTqaeLNMX+3q6ZGr3kz9xq35PqlWfalaYh2650nep2+stb4XtSvGWJ1veem/K +rjwd9dzV5Sdee8rPT8qflFWtTorVp6Rs/erS+fY/reqV1ub6VN+b1DpVyZTqXbWXrFklc7xVemnL +GQ9V0tP1ydwUJk3m6lWe5yf7/3z8tMfqau3J9jGZe7pd62mVJqdzX+vak2F7slVJMrkoT6bfmxSl +0ikF01OmzARRAbzwgBEV6CDFBigwwwpQwKGBQwNnAsLSVDBFO7TFFuEhKRS07kW5fJBMKBS0b2PK ++jXy0kTm9Fxr5a/HXKr5NlkHVbjJUKlUydebc/pfT12VzLpq+fUn6/LtU77WwkZ9PbQOitXXsetS +l71e/fpkysrPg0k7SSaPn//SxAiQYOQGQYgBBhIY6WwymhMcGjwsISVAUUcFQ8Im9krDZDAXmAwO +DZLJhUNDpiAAyeQD9TCfNTlLJh8uJvzQs/kyOyQ9tbY5peS/rH6lXmsp5/Psw1WiwwoJ6EPTZHXt +8Lu+23O52nv3brXJaB1S9dVpKu6+JMC410qQDpZpuFIy6eggmWRQmlcGZRF1KW/lnJqseMIKhoBC +BigYmQAHRiLQAhQpTFSwzBQ+LpTSPTelj/Ztq3LXUfltkkwexcRry3ufbuW0XKxaVTJ5NiWTR/1S +dPUqf61nfle2+tAXrp6qZN3Jqsr5yTzXvp7KX6v039SqTZvqajn1aTq09aqJSy11nnqrtmpKrfPN +yz3mXdR1usnLb6nKc9vzOllrWlXJ38k+L2262rXSdJOeskd8pdT1Pk/zP6VjU+8q1VhhWqce26vO +N0fvfX+lK9U/JZPL456i8+JtYjK1WJNK3vNMisv3ibfJXjGfSnP13ZaYloqZvZ5Xd1LmuW7v1TTd +eGku2/08d1NVU7meWWneSp3pMhUP0xhTVVWtw/Rp/WvSa33O60+M61KpzpTm6etPuf6pJJk8//fp +tjoVVc35OfHs/TwZ/8rOVH2Y1qnoy9urTNW6zKSJ10kl81Xdv6sd7/U4N9lnenVK+R93Gi+iKlx4 +uKZsvWTynKeZc5sa52K1fGNHPLZGvFxtZk3J5NncpdaYifiem/Aw2abeSqsJ1ZPueVLJSm/TKibF +Km9pWk9pninxVlp6mL3XyXTpYVKpynptsaKe+bJ1VLxVqZRzJ1MpmTyWuSmZPJ9KL9NyrWaUTC65 +SV3rJ0ulK9lnSr5OxpmW/zav2n+3tfy8PTxPVafS+m1a69TFe/M0tU6tY7VkvbZnW597SvEyWb/7 +J1Pc3+XNTOV4vXyoUk2V2lSbemu7yU+vk2eeys/k6pMleq9N9itZZ3K+TCrTX6r0U/abVpOltSZT +5eo2NZMl7qpb6VPPXtOuU5l5ypa6zNP7dD/dW6rHKpUrXlqnnSZT9T+V5rjrb3EXsqp9OtdfP5dM +Lrl7iUKJTiWECRWbzAfUIYNCiadTAZGRcVFRolMJoamU0OhQwQv7kCOZPKarVKa052kl82RKk6mV +bDVJJk9ua7KlkrnK1EmV5S71vYdpnEkyeTSZetZkuTKlrfSp5ynXdiXJ5Ekq7V0yeTwtl6kyhWqv +ksmTr9Z+Kpd3M/M2mUpLlQ5XMnk6MRln/rEaZ8rMlMmu0yWTS67yYeYLgIDCBSDEUCGZcGJcaPDA +kMCBiXGh4Z/DAjwYUUEMUuAgBClGQIMZODAuJAGunp+byn1z8ziXM7N7nXl93d3TNf1aU1OztVVr +dncvbXXXTV/f9G1N3sze7c3N1Nubm6m3N7v1ujMzV2Zrayuraqtqq6qqqqqqqqqysqqqqrZqq3ar +aqu2qqq2trbqZu5u5q6qXvWnunT/F7v3dzdiVr2PG/3trdpdXLoXzadbbbfq7O6lrrs76u721u9+ +Viv7/qboUbqRPx97+rou+0a/r7Y3+TLnLudv8uZrM7MmP++/qW7Vdzd3V/FupFZV6kZKVXm0f6q5 +VDP1rrV47eLFvbpTcSsnVqw48WLFihWzs2LFrJ4Vq+RWarUuzbR4ceKlKzkvZmY+Xrw4LcZezP2L +mX3x8eLE3Mv6zc/i293k3VxrlWbEu7o1XaPM9k9GZ2dndkZ0XO6vKZm9+505vxWrfebjiJmP+Z9Z +k79qKvc+t76+il71vTta36+Pa9V51Tv/77vS3l1lZfbb31/dT8aFvZ7/PZnKSz7/zq9WtbOzymVd +pfqdz61YH3eVj5WzcnW7q8wqF1VVOl6VmJNZsxUrpbJZl391/i/Virl4+avqpKx4V5W3e/XVVzUv +r2TJmCYqWHI0EmC8cHN9MpWZK61kaEJ1Zafq/8/0zN3s5dU8xlWZJBNOAgxNMjkhIyMZYm7YoAAL +IxSoAIoZACEGW8aCCVL8QAIoKjYsBzeQgQIpSEGBCqBwAAtkSEzG0qlsOhwLCCTCw7IpAQRjsUQa +i0ODZIKGl8gmOg/0sYFCRNAJS4i+GKSplOCYBybEMN9V/9DXasdX6dceVXdl+pX2U7PbE39JJhe1 +9p7LnG33JZOLkkw8fKxsTr88l7bS1ZIJRbVZXaKftm0jn5pya3LcZra0LJlQmDXZ9JP58n3yXUqd +JnulLJlQNFm+fq5lW0/+pmhu/m47Z6crXsW10vlxle7/tvKhXqtmPrratZxrSn0u5H0K/rJPtbtr +ra2W1Zjtt3WNV7U65FN+uK2L5+195tsqs71PtfN+M/K69X3JhJKfbK6QXXmpV/6rVl/7LlNrX71T +UFP/9VOVr/Jc7ft3X68WXir7z1+8VWvZSk1lbWvxTf26xcrU7x8m9ZocL39XKfd3tVp9mTP/q7O7 +pqfz62Wbv2fqzlXqePE63NTMbXVtVU+/VOmufFW1tb39q5amysxsRlXcnJb4rwpvveXSpYeNyeyX +p7guk9q0LpvTdsK1uxKvXMk7b6VTSXUyxfSNntyTUv7naXliTO/7ZM++nPbx1namRM7rxJ80+SfF +65Nn9+99KudyVT1cbn/H9bQ8fVdT6k6par1PO63c9blJOznpXqdm9qbupldNSvl+FdMntWltusQ9 +VZxW6lO/tFXdcmJOmn75urVUqidjTM2HKaHbpeJ8VutbjU2TOXMnJ7fFtCQTihqrnm6yTV3f9ys1 +rUomlN60qaq+kHPdqWU2Tb2sy73J7yUTCnarb2qbcspLv6ZkEkIxxlSl5mrtS99ck5GVK36nv7/S +T/v6+snyf5NkQnlTlfDTO+f6vrZbY0q7x2qartnIq2vv23LtL0tNm+tr+fD3+fT1mdHT1r4xZrMe +cvpNTsZv+2r3ub/51y1O52+rrg61X3WfX/fCVVPev5mq9U/1WugJF/nRnf1buc09SSaUbU3lSfm+ +0+J+3l+6KXHCRk68Ntn2rbXpfZNv9h9bZlrcvvXrXFVCZQEg4EGKF7wQAxA6kOIFMJDB0NqT4bLF +gxdQOICFtm60NHO1tbVBC1K88IARW+y0rJBMwAQoXnjAiHVWSCaYygcOD0xIRgRHo7UGhWOFTaXD +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 +plk2hUhZXisi/Y9R9N0= + + + diff --git a/content/stringify.ts b/content/stringify.ts index 610baf602a..40920cdaa8 100644 --- a/content/stringify.ts +++ b/content/stringify.ts @@ -59,7 +59,7 @@ function $stringify(key, value, cache): any { } // safely handles circular references -export function stringify(obj, indent: number | string = 2, ucode?: boolean) { // eslint-disable-line @typescript-eslint/explicit-module-boundary-types +export function stringify(obj, indent: number | string = 0, ucode?: boolean) { // eslint-disable-line @typescript-eslint/explicit-module-boundary-types let cache = [] const stringified = JSON.stringify( obj, diff --git a/content/test-support.ts b/content/test-support.ts index 7bf4b72501..4363d39468 100644 --- a/content/test-support.ts +++ b/content/test-support.ts @@ -11,6 +11,7 @@ import { defaults } from '../gen/preferences/meta' import { Preference } from './prefs' import * as memory from './memory' import { Events } from './events' +import { is7 } from './client' const setatstart: string[] = ['testing', 'cache'].filter(p => Preference[p] !== defaults[p]) @@ -241,41 +242,45 @@ export class TestSupport { } public async merge(ids: number[]): Promise { - const zoteroPane = Zotero.getActiveZoteroPane() - await zoteroPane.selectItems(ids, true) - const selected = zoteroPane.getSelectedItems() - if (selected.length !== ids.length) throw new Error(`selected: ${selected.length}, expected: ${ids.length}`) + const before = await Zotero.Items.getAll(Zotero.Libraries.userLibraryID, true, false, true) - // zoteroPane.mergeSelectedItems() + if (is7) { + let other = await getItemsAsync(ids) + const master = other.find(item => item.id === ids[0]) + other = other.filter(item => item.id !== ids[0]) + const json = master.toJSON() + // Exclude certain properties that are empty in the cloned object, so we don't clobber them + const { relations: _r, collections: _c, tags: _t, ...keep } = master.clone().toJSON() // eslint-disable-line @typescript-eslint/no-unused-vars + Object.assign(json, keep) + + master.fromJSON(json) + Zotero.Items.merge(master, other) + } + else { + const zoteroPane = Zotero.getActiveZoteroPane() + await zoteroPane.selectItems(ids, true) + const selected = zoteroPane.getSelectedItems() + if (selected.length !== ids.length) throw new Error(`selected: ${selected.length}, expected: ${ids.length}`) - selected.sort((a, b) => ids.indexOf(a.id) - ids.indexOf(b.id)) + // zoteroPane.mergeSelectedItems() - const win = Zotero.getMainWindow() + selected.sort((a, b) => ids.indexOf(a.id) - ids.indexOf(b.id)) - /* - const env = { - Zotero, - window: win, - document: win.document, - Zotero_Duplicates_Pane: win.Zotero_Duplicates_Pane, - setTimeout: setTimeout.bind(win), - clearTimeout: clearTimeout.bind(win), - } - */ + const win = Zotero.getMainWindow() - if (!win.Zotero_Duplicates_Pane) { - Components.classes['@mozilla.org/moz/jssubscript-loader;1'] - .getService(Components.interfaces.mozIJSSubScriptLoader) - .loadSubScript('chrome://zotero/content/duplicatesMerge.js', win) + if (!win.Zotero_Duplicates_Pane) { + Components.classes['@mozilla.org/moz/jssubscript-loader;1'] + .getService(Components.interfaces.mozIJSSubScriptLoader) + .loadSubScript('chrome://zotero/content/duplicatesMerge.js', win) + } + + win.Zotero_Duplicates_Pane.setItems(selected) + await Zotero.Promise.delay(1500) + await win.Zotero_Duplicates_Pane.merge() } - win.Zotero_Duplicates_Pane.setItems(selected) await Zotero.Promise.delay(1500) - const before = await Zotero.Items.getAll(Zotero.Libraries.userLibraryID, true, false, true) - await win.Zotero_Duplicates_Pane.merge() - - await Zotero.Promise.delay(1500) const after = await Zotero.Items.getAll(Zotero.Libraries.userLibraryID, true, false, true) if (before.length - after.length !== (ids.length - 1)) throw new Error(`merging ${ids.length}: before = ${before.length}, after = ${after.length}`) } diff --git a/content/text.ts b/content/text.ts index 33d1db5cb7..7ce99eea4a 100644 --- a/content/text.ts +++ b/content/text.ts @@ -498,14 +498,6 @@ export const CJK = new RegExp(`([${ scripts.map((s: { name: string, bmp: string } }).join('') }])`, 'g') -export function escapeHTML(unsafe: string): string { - return unsafe - .replace(/&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"') -} - export function asciify(str: string): string { return str.replace(/[\u007F-\uFFFF]/g, chr => `\\u${(`0000${chr.charCodeAt(0).toString(16)}`).substr(-4)}`) } diff --git a/content/translators.ts b/content/translators.ts index ab9b3bba56..a740a6b570 100644 --- a/content/translators.ts +++ b/content/translators.ts @@ -1,7 +1,9 @@ /* eslint-disable no-case-declarations, @typescript-eslint/no-unsafe-return */ import { Shim } from './os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from './client' +const $OS = is7 ? Shim : OS +import merge from 'lodash.merge' Components.utils.import('resource://gre/modules/Services.jsm') @@ -10,12 +12,12 @@ declare class ChromeWorker extends Worker { } Components.utils.import('resource://zotero/config.js') declare const ZOTERO_CONFIG: any -import { clone } from './object' +// import { clone } from './object' import { Deferred } from './deferred' import type { Translators as Translator } from '../typings/translators' import { Preference } from './prefs' import { Preferences } from '../gen/preferences/meta' -import { Serializer } from './serializer' +import { Serializer } from './item-export-format' import { log } from './logger' import { DB as Cache } from './db/cache' import { flash } from './flash' @@ -23,7 +25,6 @@ import { $and } from './db/loki' import { Events } from './events' import { Pinger } from './ping' import Puqeue from 'puqeue' -import { is7 } from './client' import { orchestrator } from './orchestrator' import type { Reason } from './bootstrap' import { headers as Headers, byLabel, byId, bySlug } from '../gen/translators' @@ -90,9 +91,37 @@ export const Translators = new class { // eslint-disable-line @typescript-eslint this.uninstall('\u672B BetterBibTeX JSON (for debugging)') this.uninstall('BetterBibTeX JSON (for debugging)') - this.lateInit().catch(err => { - log.debug('translators startup failure', err) - }) + await Zotero.Translators.init() + + const reinit: { header: Translator.Header, code: string }[] = [] + // fetch from resource because that has the hash + const headers: Translator.Header[] = Headers + .map(header => JSON.parse(Zotero.File.getContentsFromURL(`chrome://zotero-better-bibtex/content/resource/${header.label}.json`))) + let code + for (const header of headers) { + // workaround for mem limitations on Windows + if (!is7 && typeof header.displayOptions?.worker === 'boolean') header.displayOptions.worker = !!Zotero.isWin + if (code = await this.install(header)) reinit.push({ header, code }) + } + + if (reinit.length) { + await Zotero.Translators.reinit() + + /* + for (const { header, code } of reinit) { + if (Zotero.Translators.getCodeForTranslator) { + const translator = Zotero.Translators.get(header.translatorID) + translator.cacheCode = true + await Zotero.Translators.getCodeForTranslator(translator) + } + else { + new Zotero.Translator({...header, cacheCode: true, code }) + } + } + */ + } + + this.ready.resolve(true) }, shutdown: async (reason: Reason) => { switch (reason) { @@ -118,38 +147,6 @@ export const Translators = new class { // eslint-disable-line @typescript-eslint }) } - private async lateInit() { - await Zotero.Translators.init() - - const reinit: { header: Translator.Header, code: string }[] = [] - // fetch from resource because that has the hash - const headers: Translator.Header[] = Headers - .map(header => JSON.parse(Zotero.File.getContentsFromURL(`chrome://zotero-better-bibtex/content/resource/${header.label}.json`))) - for (const header of headers) { - // workaround for mem limitations on Windows - if (!is7 && typeof header.displayOptions?.worker === 'boolean') header.displayOptions.worker = !!Zotero.isWin - let code - if (code = await this.install(header)) reinit.push({ header, code }) - } - - if (reinit.length) { - await Zotero.Translators.reinit() - - for (const { header, code } of reinit) { - if (Zotero.Translators.getCodeForTranslator) { - const translator = Zotero.Translators.get(header.translatorID) - translator.cacheCode = true - await Zotero.Translators.getCodeForTranslator(translator) - } - else { - new Zotero.Translator({...header, cacheCode: true, code }) - } - } - } - - this.ready.resolve(true) - } - public getTranslatorId(name: string): string { Zotero.debug(`getTranslatorId: resolving ${JSON.stringify(name)}`) const name_lc = name.toLowerCase().replace(/ /g, '') @@ -437,14 +434,12 @@ export const Translators = new class { // eslint-disable-line @typescript-eslint } public displayOptions(translatorID: string, displayOptions: any): any { - displayOptions = clone(displayOptions || this.byId[translatorID]?.displayOptions || {}) - const defaults = this.byId[translatorID]?.displayOptions || {} - for (const [k, v] of Object.entries(defaults)) { - if (typeof displayOptions[k] === 'undefined') displayOptions[k] = v - } - if (this.byId[translatorID].label === 'BetterBibTeX JSON') displayOptions.exportCharset = 'UTF-8xBOM' - - return displayOptions + return merge( + {}, + this.byId[translatorID]?.displayOptions || {}, + displayOptions, + this.byId[translatorID].label === 'BetterBibTeX JSON' ? { exportCharset: 'UTF-8xBOM' } : {} + ) } public async exportItems(job: ExportJob): Promise { diff --git a/content/worker/zotero.ts b/content/worker/zotero.ts index f15247f7aa..371a15aeec 100644 --- a/content/worker/zotero.ts +++ b/content/worker/zotero.ts @@ -1,9 +1,18 @@ /* eslint-disable @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment */ +import flatMap from 'array.prototype.flatmap' +flatMap.shim() +import matchAll from 'string.prototype.matchall' +matchAll.shim() + +import { print } from '../logger' + +declare const IOUtils: any + import { Shim } from '../os' -import { is7 } from '../client' +import { is7, platform } from '../client' if (!is7) importScripts('resource://gre/modules/osfile.jsm') -const $OS = typeof OS !== 'undefined' ? OS : Shim +const $OS = is7 ? Shim : OS const ctx: DedicatedWorkerGlobalScope = self as any @@ -17,8 +26,6 @@ for(const [key, value] of (new URLSearchParams(ctx.location.search)).entries()) workerEnvironment[key] = value } -declare const dump: (message: string) => void - importScripts('resource://zotero/config.js') // import ZOTERO_CONFIG' import { client, clientName } from '../../content/client' @@ -188,27 +195,44 @@ class WorkerZoteroBetterBibTeX { } public getContents(path: string): string { - if (path && $OS.File.exists(path)) { - // https://contest-server.cs.uchicago.edu/ref/JavaScript/developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS-2.html - const array = $OS.File.read(path) - const decoder = new TextDecoder() - return decoder.decode(array as BufferSource) + if (!path) return null + + try { + if (is7) { + const file = IOUtils.openFileForSyncReading(path) + const chunkSize = 64 + const bytes = new Uint8Array(chunkSize) + const decoder = new TextDecoder('utf-8') + let offset = 0 + const size = file.size + + let text = '' + while (offset < size) { + const len = Math.min(chunkSize, size - offset) + const chunk = len > chunkSize ? bytes : bytes.subarray(0, len) + file.readBytesInto(chunk, offset) + text += decoder.decode(chunk) + offset += len + } + + file.close() + return text + } + else { + if (!OS.File.exists(path)) return null + const bytes = OS.File.read(path) + const decoder = new TextDecoder() + return decoder.decode(bytes as BufferSource) + } } - else { + catch (err) { + if (!err.message?.includes('NS_ERROR_FILE_NOT_FOUND')) { + print(`getContents ${path} error ${err} ${Object.keys(err)} ${err.message}`) + } return null } } - /* - public cacheFetch(itemID: number) { - return cacheFetch('', itemID, null, null) - } - - public cacheStore(itemID: number, _options: any, _prefs: any, entry: string, metadata: any) { - return cacheStore('', itemID, null, null, entry, metadata) - } - */ - public parseDate(date) { return DateParser.parse(date) } @@ -263,9 +287,9 @@ const WorkerZoteroUtilities = { } function isWinRoot(path) { - return workerEnvironment.platform === 'win' && path.match(/^[a-z]:\\?$/i) + return platform.windows && path.match(/^[a-z]:\\?$/i) } -function makeDirs(path) { +async function makeDirs(path) { if (isWinRoot(path)) return if (!$OS.Path.split(path).absolute) throw new Error(`Will not create relative ${path}`) @@ -273,48 +297,54 @@ function makeDirs(path) { const paths: string[] = [] // path === paths[0] means we've hit the root, as the dirname of root is root - while (path !== paths[0] && !isWinRoot(path) && !$OS.File.exists(path)) { + while (path !== paths[0] && !isWinRoot(path) && !(await $OS.File.exists(path))) { paths.unshift(path) path = $OS.Path.dirname(path) } - if (!isWinRoot(path) && !($OS.File.stat(path) as OS.File.FileInfo).isDir) throw new Error(`makeDirs: root ${path} is not a directory`) + if (!isWinRoot(path) && !(await $OS.File.stat(path)).isDir) throw new Error(`makeDirs: root ${path} is not a directory`) for (path of paths) { - $OS.File.makeDir(path) as void + await $OS.File.makeDir(path) as void } } -function saveFile(path, overwrite) { +async function saveFile(path, overwrite) { if (!Zotero.exportDirectory) return false - if (!$OS.File.exists(this.localPath)) return false + if (!await $OS.File.exists(this.localPath)) return false this.path = $OS.Path.normalize($OS.Path.join(Zotero.exportDirectory, path)) if (!this.path.startsWith(Zotero.exportDirectory)) throw new Error(`${path} looks like a relative path`) if (this.linkMode === 'imported_file' || (this.linkMode === 'imported_url' && this.contentType !== 'text/html')) { - makeDirs($OS.Path.dirname(this.path)) + await makeDirs($OS.Path.dirname(this.path)) // eslint-disable-next-line @typescript-eslint/no-floating-promises - $OS.File.copy(this.localPath, this.path, { noOverwrite: !overwrite }) + await $OS.File.copy(this.localPath, this.path, { noOverwrite: !overwrite }) } else if (this.linkMode === 'imported_url') { const target = $OS.Path.dirname(this.path) - if (!overwrite && $OS.File.exists(target)) throw new Error(`${path} would overwite ${target}`) + if (!overwrite && (await $OS.File.exists(target))) throw new Error(`${path} would overwite ${target}`) - $OS.File.removeDir(target, { ignoreAbsent: true }) - makeDirs(target) + await $OS.File.removeDir(target, { ignoreAbsent: true }) + await makeDirs(target) const snapshot = $OS.Path.dirname(this.localPath) const iterator = new $OS.File.DirectoryIterator(snapshot) - // PITA dual-type $OS.Path is promises on main thread but sync in worker - iterator.forEach(entry => { // eslint-disable-line @typescript-eslint/no-floating-promises + const files: { src: string, tgt: string }[] = [] + await iterator.forEach(entry => { // eslint-disable-line @typescript-eslint/no-floating-promises if (entry.isDir) throw new Error(`Unexpected directory ${entry.path} in snapshot`) if (entry.name !== '.zotero-ft-cache') { - // eslint-disable-next-line @typescript-eslint/no-floating-promises - $OS.File.copy($OS.Path.join(snapshot, entry.name), $OS.Path.join(target, entry.name), { noOverwrite: !overwrite }) + files.push({ + src: $OS.Path.join(snapshot, entry.name), + tgt: $OS.Path.join(target, entry.name), + }) } }) + iterator.close() + for (const file of files) { + await $OS.File.copy(file.src, file.tgt, { noOverwrite: !overwrite }) + } } return true @@ -391,10 +421,10 @@ class WorkerZotero { public Date = ZD public Schema: any - public init() { + public async init() { this.Date.init(dateFormats) - workerJob.preferences.platform = workerEnvironment.platform + workerJob.preferences.platform = platform.name workerJob.preferences.client = client this.output = '' this.items = workerJob.data.items.length @@ -416,7 +446,7 @@ class WorkerZotero { if (!this.exportFile.endsWith(ext)) this.exportFile += ext this.exportDirectory = $OS.Path.dirname(this.exportFile) } - makeDirs(this.exportDirectory) + await makeDirs(this.exportDirectory) } else { this.exportFile = '' @@ -424,13 +454,14 @@ class WorkerZotero { } } - public done() { + public async start() { + await this.init() + doExport() if (this.exportFile) { const encoder = new TextEncoder() const array = encoder.encode(this.output) - $OS.File.writeAtomic(this.exportFile, array) as void + await $OS.File.writeAtomic(this.exportFile, array) as void } - this.send({ kind: 'done', output: this.exportFile ? true : this.output }) } public send(message: Translators.Worker.Message) { @@ -455,7 +486,7 @@ class WorkerZotero { } } public logError(err) { - dump(`worker: error: ${err}\n${err.stack}\n`) + print(`worker: error: ${err}\n${err.stack}`) this.send({ kind: 'error', message: `${err}\n${err.stack}` }) } @@ -493,7 +524,8 @@ class WorkerZotero { export var Zotero = new WorkerZotero // eslint-disable-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match,no-var const dec = new TextDecoder('utf-8') -ctx.onmessage = function(e: { isTrusted?: boolean, data?: Translators.Worker.Message } ): void { // eslint-disable-line prefer-arrow/prefer-arrow-functions + +ctx.onmessage = async function(e: { isTrusted?: boolean, data?: Translators.Worker.Message } ): Promise { // eslint-disable-line prefer-arrow/prefer-arrow-functions if (!e.data) return // some kind of startup message try { @@ -504,10 +536,17 @@ ctx.onmessage = function(e: { isTrusted?: boolean, data?: Translators.Worker.Mes case 'start': Object.assign(workerJob, JSON.parse(dec.decode(new Uint8Array(e.data.config)))) + importScripts(`chrome://zotero-better-bibtex/content/resource/${workerJob.translator}.js`) - Zotero.init() - doExport() - Zotero.done() + try { + await Zotero.start() + } + catch (err) { + Zotero.logError(err) + } + finally { + Zotero.send({ kind: 'done', output: Zotero.exportFile ? true : Zotero.output }) + } break case 'stop': diff --git a/esbuild.js b/esbuild.js index 6ffefa3d42..25badd21fb 100644 --- a/esbuild.js +++ b/esbuild.js @@ -263,8 +263,25 @@ async function rebuild() { exportGlobals: true, metafile: 'gen/worker.json', external: [ 'jsdom' ], - banner: { js: '\ndump("\\nloading BBT chromeworker\\n")\ntry {\n' }, - footer: { js: '} catch ($$err$$) { dump("\\nerror: failed loading BBT chromeworker: " + $$err$$.message + "\\n" + $$err$$.stack + "\\n") }\ndump("\\nloaded BBT chromeworker\\n")\n' }, + banner: { js: ` + dump("\\nloading BBT chromeworker\\n") + var Services + if (typeof location !== 'undefined' && location.search) { + Services = { + appinfo: { + OS: { win: 'WINNT', mac: 'Darwin', lin: 'Linux' }[(new URLSearchParams(location.search)).get('platform')], + } + } + } + try { + `}, + footer: { js: ` + } + catch ($$err$$) { + dump("\\nerror: failed loading BBT chromeworker: " + $$err$$.message + "\\n" + $$err$$.stack + "\\n") + } + dump("\\nloaded BBT chromeworker\\n") + `}, }) // translators diff --git a/locale/de-DE/better-bibtex.ftl b/locale/de-DE/better-bibtex.ftl index 89573b98b5..77397e9ea9 100644 --- a/locale/de-DE/better-bibtex.ftl +++ b/locale/de-DE/better-bibtex.ftl @@ -1,3 +1,4 @@ +-citation-key = Citation key better-bibtex_auto-export_delete = Auto-Export wird gelöscht better-bibtex_auto-export_delete_confirm = Möchtest du den Auto-Export wirklich löschen? Dies kann nicht rückgängig gemacht werden. better-bibtex_aux-scan_prompt = Name der Markierung @@ -24,8 +25,18 @@ better-bibtex_error-report_debug = better-bibtex_error-report_enable-debug = Das Zotero Debug-Logging ist derzeit deaktiviert. Es ist einfacher, das Problem zu diagnostizieren, wenn Sie es aktivieren, bevor Sie ein Debug-Log senden. better-bibtex_error-report_errors = .label = Fehler +better-bibtex_error-report_include-errors = + .label = Include error messages +better-bibtex_error-report_include-log = + .label = Include debug log +better-bibtex_error-report_include-items = + .label = Include item +better-bibtex_error-report_include-notes = + .label = notes better-bibtex_error-report_include-cache = - .label = Cache einbeziehen + .label = cache +better-bibtex_error-report_include-attachments = + .label = attachment metadata better-bibtex_error-report_items = .label = Einträge better-bibtex_error-report_not-reviewed = Debug-Reports können nicht überprüft werden, bis sie im GitHub Issue-Tracker genannt werden. @@ -34,47 +45,26 @@ better-bibtex_error-report_report-id = Debug-Log-ID: better-bibtex_error-report_restart-with-logging-enabled = .label = Mit aktiviertem Logging neustarten… better-bibtex_error-report_review = - Die unten aufgeführten Daten werden für die Fehlerbehebung an Better BibTeX gesendet. Bitte prüfen Sie sie auf sensible Daten, die sie nicht senden wollen. + The data below is about to submitted to Better BibTeX for debugging. You can preview the data here, or save a copy of the log to get the precise data about to be sent, to see whether there's sensitive information that you do not wish to send. Please think carefully about whether unchecking options below is necessary for your environment. We will generally needs more communication (= time) if you remove parts of the log this way. - Wenn Sie mit dem Senden einverstanden sind, bitte fahren Sie mit der nächsten Anzeige fort und posten Sie die dort erscheinende Debug-ID im Issue-Tracker bei + If you are OK with sending this data, please proceed to the next screen where you will be presented a red debug ID, and post this ID on the issue tracker at https://github.com/retorquere/zotero-better-bibtex/issue better-bibtex_error-report_save = - .label = Kopie des Logs speichern + .label = Save copy of log for inspection better-bibtex_error-report_submission-in-progress = Bitte warten Sie, während der Debug-Log übermittelt wird. better-bibtex_error-report_submitted = Ihr Debug-Log wurde übermittelt. better-bibtex_export-options_keep-updated = Halte aktuell better-bibtex_export-options_reminder = Sind Sie sicher, dass Sie nicht das ''{ $translator }''-Format wollen? better-bibtex_export-options_worker = Hintergrund-Export -unused_better-bibtex_first-run = - .title = Welcome to Better BibTeX for Zotero - .label = Welcome to Better BibTeX for Zotero -unused_better-bibtex_first-run_citekey-format = Your citation keys -unused_better-bibtex_first-run_citekey-format_bbt = - .label = Use the BBT default citekey format -unused_better-bibtex_first-run_citekey-format_explanation = BBT will generate citation keys for your items. The citekey generation is highly configurable, and you can choose to override the generation, but you will need to select the default now. You can always go into the preferences and change this at any time. -unused_better-bibtex_first-run_citekey-format_explanation_bbt = New keys will be generated using the default BBT format. If you want a different format, change it in the preferences, then select all items, right-click, and select Refresh -unused_better-bibtex_first-run_citekey-format_explanation_example = your citation keys will look like -unused_better-bibtex_first-run_citekey-format_explanation_zotero = Choose this option if you have existing documents that refer to keys generated by Zotero without the help of BBT. This will replicate the Zotero-generated keys faithfully, including known limitations in the Zotero key generator. Only use this if you need the keys to be exactly as Zotero generates them. -unused_better-bibtex_first-run_citekey-format_zotero = - .label = Use the Zotero default citekey format -unused_better-bibtex_first-run_done = All Done! -unused_better-bibtex_first-run_done_explanation = BBT is now set up for use. You can still change any of these settings by going into the Zotero preferences and opening the BBT tab. -unused_better-bibtex_first-run_drag-and-drop = Drag-and-drop citations -unused_better-bibtex_first-run_drag-and-drop_enable = - .label = Enable drag-and-drop citations -unused_better-bibtex_first-run_drag-and-drop_explanation = With BBT, you can drag-and-drop citations into your LaTeX editor of choice. Do you want to enable this now? -unused_better-bibtex_first-run_exporting = Exporting using BBT -unused_better-bibtex_first-run_exporting_explanation = Exporting using BBT works as usual in Zotero, but make sure you have the right format selected; in the list of formats, instead of 'BibTeX', select -unused_better-bibtex_first-run_import-strings_enable = - .label = Expand @string journal names on import -unused_better-bibtex_first-run_import-strings_explanation = Some bibtex files use @string variables for journal names. If you enable this, BBT will use a list of common journal IDs to replace these variables with the full journal name -unused_better-bibtex_first-run_import_unabbreviate = Expand bibtex strings and journal abbreviations during import -unused_better-bibtex_first-run_import_unabbreviate_enable = - .label = Unabbreviate journal names on import -unused_better-bibtex_first-run_import_unabbreviate_explanation = Some bibtex files have journal abbreviations in the 'journal' field. If you enable this, BBT will attempt to replace those abbreviations with the full journal name during import of bibtex files -unused_better-bibtex_first-run_welcome = Better BibTeX for Zotero (or BBT as it is commonly named) aims to make Zotero more useful for LaTeX and Markdown holdouts. There's a lot to configure about BBT -- take a look in the preferences if you're curious -- but let's start you off with a few simple choices. -better-bibtex_item-pane_citekey = Zitierschlüssel +better-bibtex_export-options_biblatexAPA = biblatex-apa +better-bibtex_export-options_biblatexChicago = biblatex-chicago +better-bibtex_item-pane_section_sidenav = + .tooltip = { -citation-key } +better-bibtex_item-pane_section_header = + .label = { -citation-key } +better-bibtex_item-pane_info_citation-key = + .label = { -citation-key } better-bibtex_preferences_advanced_export_brace-protection = .label = Groß-/Kleinschreibung auf Groß- und Kleinschreibung anwenden, indem sie Klammern beigefügt wird better-bibtex_preferences_advanced_export_brace-protection_warning = Wenn Sie sowohl BibTeX/BibLaTeX Best Practice (siehe BBT FAQ) als auch die Zotero-Empfehlungen zum Titel-/Satz-Casing ignorieren möchten, können Sie dies ausschalten, um das Titel-Casing für englische Referenzen zu unterdrücken @@ -266,14 +256,10 @@ better-bibtex_preferences_export_quick-copy = Schnellkopie .label = { better-bibtex_preferences_export_quick-copy } better-bibtex_preferences_export_quick-copy_explanation = Schnellkopie/Drag-and-Drop-Zitat better-bibtex_preferences_export_quick-copy_format = Schnellkopie-Format -unused_better-bibtex_preferences_export_quick-copy_atom = Atom - .label = { unused_better-bibtex_preferences_export_quick-copy_atom } better-bibtex_preferences_export_quick-copy_citekeys = Zitierschlüssel .label = { better-bibtex_preferences_export_quick-copy_citekeys } better-bibtex_preferences_export_quick-copy_eta-template = Eta-Template .label = { better-bibtex_preferences_export_quick-copy_eta-template } -unused_better-bibtex_preferences_export_quick-copy_gitbook = GitBook - .label = { unused_better-bibtex_preferences_export_quick-copy_gitbook } better-bibtex_preferences_export_quick-copy_latex = LaTeX-Zitat .label = { better-bibtex_preferences_export_quick-copy_latex } better-bibtex_preferences_export_quick-copy_latex_command = LaTeX-Befehl @@ -343,59 +329,10 @@ better-bibtex_zotero-pane_add-citation-links = Zitier-Graph: Zitat-Links hinzuf better-bibtex_zotero-pane_citekey_pin_inspire-hep = Hefte BibTeX-Schlüssel aus InspireHEP an better-bibtex_zotero-pane_citekey_refresh = Aktualisiere BibTeX key better-bibtex_zotero-pane_citekey_unpin = BibTeX-Key lösen -better-bibtex_zotero-pane_column_citekey = Zitierschlüssel +better-bibtex_zotero-pane_column_citekey = { -citation-key } better-bibtex_zotero-pane_patch-dates = Kopiere date-added/date-modified aus Extra-Feld better-bibtex_zotero-pane_sentence-case = BBT Sentence-case better-bibtex_zotero-pane_show_collection-key = Download Better-BibTeX-Export... better-bibtex_zotero-pane_tag_duplicates = Markiere doppelte Zitierschlüssel better-bibtex_zotero-pane_tex-studio = Einträge an TeXstudio senden -unused_better-bibtex_auto-export_too-long_body-eabled = Ihr { $translator }-Auto-Export nach { $path } dauerte { $seconds } Sekunden. Während Exporten jeglicher Art wird die Zotero-Benutzeroberfläche gesperrt. -unused_better-bibtex_auto-export_too-long_prime-enabled = Um die Auswirkungen von lang laufenden Auto-Exporten zu minimieren, wurde das Cache-Priming aktiviert. Dies macht den Auto-Export langsamer, verkürzt aber die Zeit, die Zotero einfriert, auf ein Minimum. -unused_better-bibtex_auto-export_too-long_sorry = Sie haben bereits Cache-Priming eingeschaltet und den Auto-Export auf "Wenn unbeschäftigt" gesetzt. Ohne Änderungen in der Architektur von Zotero (https://u.nu/27e9) kann nichts mehr getan werden. -unused_better-bibtex_auto-export_too-long_suggest-idle = Um die Auswirkungen von lang laufenden Auto-Exporten zu minimieren, sollten Sie den Auto-Export auf "Wenn unbeschäftigt" statt auf "Bei Veränderung" setzen. -unused_better-bibtex_auto-export_too-long_title = Lang andauernder Auto-Export -unused_better-bibtex_db_corrupt = Beim Öffnen der Datenbank ist ein Fehler aufgetreten -unused_better-bibtex_db_corrupt_explanation = - Beim Öffnen der Datenbank ist ein Fehler aufgetreten. Dies könnte bedeuten, dass Ihre Datenbank beschädigt ist. Der von Zotero gemeldete Fehler ist: { $error }. - - Um fortzufahren, wählen Sie eine der folgenden Optionen: - - 1. Lassen Sie Zotero versuchen, zu einem früheren Backup zurückzukehren, indem Sie jetzt neu starten - 2. Setzen Sie die Better BibTeX-Datenbank zurück und fahren Sie fort - 3. Beenden Sie Zotero und wenden Sie sich an den Support, um eine Wiederherstellung der Datenbank zu versuchen. - - Das Zurücksetzen ermöglicht es Ihnen fortzufahren, aber Ihre Zitierschlüssel werden neu generiert und der automatische Export muss neu eingerichtet werden. Ein Backup der beschädigten Datenbank wird zur Sicherheit aufbewahrt. -unused_better-bibtex_db_corrupt_quit = Zotero jetzt beenden -unused_better-bibtex_db_corrupt_reset = Zurücksetzen und fortfahren -unused_better-bibtex_db_corrupt_restore = Zotero neu starten und Wiederherstellung versuchen -unused_better-bibtex_error-report_out-of-memory = Ihr System verfügt aktuell nicht über genug Speicher für die Zusammenstellung der Log-Datei. Bitte setzen Sie ''{ $preference }'' auf einen Wert, der niedriger ist als das aktuelle { $limit }, starten Sie neu und versuchen Sie es erneut. -unused_better-bibtex_key-manager_regenerate = Erzeuge/ersetze Zitierschlüssel -unused_better-bibtex_key-manager_regenerate_confirm = Erzeuge/ersetze { $n } Zitierschlüssel, fortfahren? -unused_better-bibtex_preferences_advanced = Erweitert -unused_better-bibtex_preferences_advanced_export_workers = Parallele Hintergrundexporte: -unused_better-bibtex_preferences_advanced_import_unabbreviate = Abgekürzte Zeitschriftentitel beim Import erweitern anhand der Liste: -unused_better-bibtex_preferences_advanced_import_unabbreviate_off = Kein -unused_better-bibtex_preferences_advanced_tab_citekeys = Citation keys -unused_better-bibtex_preferences_advanced_tab_export = Export -unused_better-bibtex_preferences_advanced_warning = Diese Einstellungen werden die Leistung beeinträchtigen und können zu einem Abbruch der Exporte führen. Behandeln Sie sie mit Vorsicht. -unused_better-bibtex_preferences_auto-export_collection = Sammlung -unused_better-bibtex_preferences_auto-export_library = Bibliothek -unused_better-bibtex_preferences_auto-export_warn_long-running = Warne mich, wenn Auto-Exporte länger dauern als (seconds) -unused_better-bibtex_preferences_citekey_aux-scanner = BibTeX AUX-/Markdown-Scanner -unused_better-bibtex_preferences_citekey_citekeys = Citation keys -unused_better-bibtex_startup_db-upgrade = Datenbankbereinigung { $n }/{ $total }... -unused_better-bibtex_startup_db-upgrade_not-editable = { $n } Einträge nicht aktualisiert, weil sie schreibgeschützt sind -unused_better-bibtex_startup_db-upgrade_saving = Datenbankbereinigung, speichern... -unused_better-bibtex_startup_installing_translators_new = Better BibTeX: neue Übersetzer installiert -unused_better-bibtex_startup_installing_translators_new_dont-ask-again = Nicht nochmals fragen -unused_better-bibtex_startup_installing_translators_new_drag-and-drop = Neue Better BibTeX-Übersetzer wurden installiert. Wenn Sie diese für Drag-and-Drop verwenden wollen (z. B. um per Drag-and-Drop Zitierschlüssel oder Zitate zu übernehmen), ist ein einmaliger Neustart notwendig, um sie zu aktivieren. -unused_better-bibtex_startup_loading-keys = Lade Zitierschlüssel -unused_better-bibtex_startup_loading_databases = Loading databases -unused_better-bibtex_startup_waiting_for_translators = Warten auf Zotero-Übersetzer -unused_better-bibtex_texstudio_not_found = TeXstudio nicht gefunden in { $path } -unused_better-bibtex_zotero-pane_server_disabled = Exportier über HTTP ausgestellt -unused_preferences_auto-export_status_running = läuft -unused_preferences_auto-export_status_scheduled = geplant -unused_zotero_better-bibtex_csquotes = Ersetze links/rechts (doppelte) Anführungszeichen mit \\enquote{ "{" }...{ "}" } (benötigt csquotes) -xpi = - .description = Macht Zotero für uns LaTeX-Holdouts nutzbar. +betterbibtex-item-pane-header = { -citation-key } diff --git a/locale/en-US/better-bibtex.ftl b/locale/en-US/better-bibtex.ftl index 5f7ed8a571..3015f7c459 100644 --- a/locale/en-US/better-bibtex.ftl +++ b/locale/en-US/better-bibtex.ftl @@ -1,3 +1,4 @@ +-citation-key = Citation key better-bibtex_auto-export_delete = Deleting auto-export better-bibtex_auto-export_delete_confirm = Are you sure you want to delete this auto-export? This cannot be undone. better-bibtex_aux-scan_prompt = Tag name @@ -30,13 +31,22 @@ better-bibtex_error-report_enable-debug = Zotero debug logging is currently disa better-bibtex_error-report_errors = .label = Errors +better-bibtex_error-report_include-errors = + .label = Include error messages +better-bibtex_error-report_include-log = + .label = Include debug log +better-bibtex_error-report_include-items = + .label = Include item +better-bibtex_error-report_include-notes = + .label = notes better-bibtex_error-report_include-cache = - .label = Include cache + .label = cache +better-bibtex_error-report_include-attachments = + .label = attachment metadata better-bibtex_error-report_items = .label = Items - better-bibtex_error-report_not-reviewed = Debug logs cannot be reviewed unless referred to in the GitHub issue tracker by their ID. better-bibtex_error-report_post-to-git-hub = Please post a message to the issue tracker (https://github.com/retorquere/zotero-better-bibtex/issues) with this debug log ID, a description of the problem, and any steps necessary to reproduce it. @@ -45,68 +55,34 @@ better-bibtex_error-report_restart-with-logging-enabled = .label = Restart with Logging Enabled… -better-bibtex_error-report_review = The data below is about to submitted to Better BibTeX for debugging. You can review the data to see whether there's sensitive information that you do not wish to send. +better-bibtex_error-report_review = The data below is about to submitted to Better BibTeX for debugging. You can preview the data here, or save a copy of the log to get the precise data about to be sent, to see whether there's sensitive information that you do not wish to send. Please think carefully about whether unchecking options below is necessary for your environment. We will generally needs more communication (= time) if you remove parts of the log this way. - If you are OK with sending this data, please proceed to the next screen and post the debug ID presented in the next screen in the issue tracker at + If you are OK with sending this data, please proceed to the next screen where you will be presented a red debug ID, and post this ID on the issue tracker at https://github.com/retorquere/zotero-better-bibtex/issue + better-bibtex_error-report_save = - .label = Save copy of log + .label = Save copy of log for inspection better-bibtex_error-report_submission-in-progress = Please wait while the debug log is submitted. better-bibtex_error-report_submitted = Your debug log has been submitted. better-bibtex_export-options_keep-updated = Keep updated better-bibtex_export-options_reminder = Are you sure you don't want the '{ $translator }' format? better-bibtex_export-options_worker = Background export -unused_better-bibtex_first-run = - .title = Welcome to Better BibTeX for Zotero - .label = Welcome to Better BibTeX for Zotero - -unused_better-bibtex_first-run_citekey-format = Your citation keys -unused_better-bibtex_first-run_citekey-format_bbt = - .label = Use the BBT default citekey format - - -unused_better-bibtex_first-run_citekey-format_explanation = BBT will generate citation keys for your items. The citekey generation is highly configurable, and you can choose to override the generation, but you will need to select the default now. You can always go into the preferences and change this at any time. - -unused_better-bibtex_first-run_citekey-format_explanation_bbt = New keys will be generated using the default BBT format. If you want a different format, change it in the preferences, then select all items, right-click, and select Refresh -unused_better-bibtex_first-run_citekey-format_explanation_example = your citation keys will look like - -unused_better-bibtex_first-run_citekey-format_explanation_zotero = Choose this option if you have existing documents that refer to keys generated by Zotero without the help of BBT. This will replicate the Zotero-generated keys faithfully, including known limitations in the Zotero key generator. Only use this if you need the keys to be exactly as Zotero generates them. -unused_better-bibtex_first-run_citekey-format_zotero = - .label = Use the Zotero default citekey format - -unused_better-bibtex_first-run_done = All Done! - -unused_better-bibtex_first-run_done_explanation = BBT is now set up for use. You can still change any of these settings by going into the Zotero preferences and opening the BBT tab. -unused_better-bibtex_first-run_drag-and-drop = Drag-and-drop citations -unused_better-bibtex_first-run_drag-and-drop_enable = - .label = Enable drag-and-drop citations - - -unused_better-bibtex_first-run_drag-and-drop_explanation = With BBT, you can drag-and-drop citations into your LaTeX editor of choice. Do you want to enable this now? -unused_better-bibtex_first-run_exporting = Exporting using BBT - -unused_better-bibtex_first-run_exporting_explanation = Exporting using BBT works as usual in Zotero, but make sure you have the right format selected; in the list of formats, instead of 'BibTeX', select -unused_better-bibtex_first-run_import-strings_enable = - .label = Expand @string journal names on import +better-bibtex_export-options_biblatexAPA = biblatex-apa +better-bibtex_export-options_biblatexChicago = biblatex-chicago +better-bibtex_item-pane_section_sidenav = + .tooltip = { -citation-key } +better-bibtex_item-pane_section_header = + .label = { -citation-key } +better-bibtex_item-pane_info_citation-key = + .label = { -citation-key } -unused_better-bibtex_first-run_import-strings_explanation = Some bibtex files use @string variables for journal names. If you enable this, BBT will use a list of common journal IDs to replace these variables with the full journal name -unused_better-bibtex_first-run_import_unabbreviate = Expand bibtex strings and journal abbreviations during import -unused_better-bibtex_first-run_import_unabbreviate_enable = - .label = Unabbreviate journal names on import - - -unused_better-bibtex_first-run_import_unabbreviate_explanation = Some bibtex files have journal abbreviations in the 'journal' field. If you enable this, BBT will attempt to replace those abbreviations with the full journal name during import of bibtex files - -unused_better-bibtex_first-run_welcome = Better BibTeX for Zotero (or BBT as it is commonly named) aims to make Zotero more useful for LaTeX and Markdown holdouts. There's a lot to configure about BBT -- take a look in the preferences if you're curious -- but let's start you off with a few simple choices. -better-bibtex_item-pane_citekey = Citation Key better-bibtex_preferences_advanced_export_brace-protection = .label = Apply case-protection to capitalized words by enclosing them in braces - better-bibtex_preferences_advanced_export_brace-protection_warning = If you're dead-set on ignoring both BibTeX/BibLaTeX best practice (see the BBT FAQ) and the Zotero recommendations on title/sentence casing, you can turn this off to suppress automatic brace-protection for words with uppercase letters. better-bibtex_preferences_advanced_export_retain-cache = .label = Retain export cache across upgrades @@ -348,14 +324,10 @@ better-bibtex_preferences_export_quick-copy = Quick-Copy .label = { better-bibtex_preferences_export_quick-copy } better-bibtex_preferences_export_quick-copy_explanation = Quick-Copy/drag-and-drop citations better-bibtex_preferences_export_quick-copy_format = Quick-Copy format -unused_better-bibtex_preferences_export_quick-copy_atom = Atom - .label = { unused_better-bibtex_preferences_export_quick-copy_atom } better-bibtex_preferences_export_quick-copy_citekeys = Cite Keys .label = { better-bibtex_preferences_export_quick-copy_citekeys } better-bibtex_preferences_export_quick-copy_eta-template = Eta template .label = { better-bibtex_preferences_export_quick-copy_eta-template } -unused_better-bibtex_preferences_export_quick-copy_gitbook = GitBook - .label = { unused_better-bibtex_preferences_export_quick-copy_gitbook } better-bibtex_preferences_export_quick-copy_latex = LaTeX citation .label = { better-bibtex_preferences_export_quick-copy_latex } better-bibtex_preferences_export_quick-copy_latex_command = LaTeX command @@ -436,69 +408,12 @@ better-bibtex_zotero-pane_add-citation-links = Citation Graph: add citation link better-bibtex_zotero-pane_citekey_pin_inspire-hep = Pin BibTeX key from InspireHEP better-bibtex_zotero-pane_citekey_refresh = Refresh BibTeX key better-bibtex_zotero-pane_citekey_unpin = Unpin BibTeX key -better-bibtex_zotero-pane_column_citekey = Citation Key +better-bibtex_zotero-pane_column_citekey = { -citation-key } better-bibtex_zotero-pane_patch-dates = Copy date-added/date-modified from extra field better-bibtex_zotero-pane_sentence-case = BBT Sentence-case better-bibtex_zotero-pane_show_collection-key = Download Better BibTeX export... better-bibtex_zotero-pane_tag_duplicates = Tag duplicate citation keys better-bibtex_zotero-pane_tex-studio = Push entries to TeXstudio -unused_better-bibtex_auto-export_too-long_body-eabled = Your { $translator } auto-export to { $path } took { $seconds } seconds. During exports of any kind, the Zotero user interface locks up. - -unused_better-bibtex_auto-export_too-long_prime-enabled = To minimize the effects of long-running auto-exports, cache priming has been turned on. This will make auto-exports slower, but will shorten the time that Zotero freezes to a minimum. - -unused_better-bibtex_auto-export_too-long_sorry = You already have cache priming on, and auto-export set to idle. Nothing more can be done without an architectural change in Zotero (https://u.nu/27e9). - -unused_better-bibtex_auto-export_too-long_suggest-idle = To minimize the effects of long-running auto-exports, you may want to set auto-export to "idle" instead of "immediate". -unused_better-bibtex_auto-export_too-long_title = Long-running auto-export -unused_better-bibtex_db_corrupt = There was an error opening your database - -unused_better-bibtex_db_corrupt_explanation = There was en error opening your database. This could mean your database is corrupt. The error reported by Zotero is: { $error }. - - To proceed, choose whether you want to: - - 1. have Zotero attempt to roll back to a previous backup by restarting now - 2. reset the Better BibTeX database and proceed - 3. quit Zotero and seek support to attempt to restore the database. - - Resetting will allow you to proceed, but your citation keys will be regenerated, and auto-exports will have to be set up anew. A backup of the corrupt database will be retained in case. - -unused_better-bibtex_db_corrupt_quit = Quit Zotero now -unused_better-bibtex_db_corrupt_reset = Reset and proceed -unused_better-bibtex_db_corrupt_restore = Restart Zotero and attempt restore - -unused_better-bibtex_error-report_out-of-memory = Your system likely ran out of memory assembling the log file. Please set '{ $preference }' to a value lower than the current { $limit }, restart, and try again. -unused_better-bibtex_key-manager_regenerate = (re)generating citation keys -unused_better-bibtex_key-manager_regenerate_confirm = (re)generating { $n } citekeys, proceed? -unused_better-bibtex_preferences_advanced = Advanced -unused_better-bibtex_preferences_advanced_export_workers = Parallel background exports: -unused_better-bibtex_preferences_advanced_import_unabbreviate = Expand abbreviated journal titles on import using list: -unused_better-bibtex_preferences_advanced_import_unabbreviate_off = None -unused_better-bibtex_preferences_advanced_tab_citekeys = Citation keys -unused_better-bibtex_preferences_advanced_tab_export = Export - -unused_better-bibtex_preferences_advanced_warning = Settings here will impact performance, and can cause breakage of exports. Proceed with care. -unused_better-bibtex_preferences_auto-export_collection = Collection -unused_better-bibtex_preferences_auto-export_library = Library -unused_better-bibtex_preferences_auto-export_warn_long-running = Warn me when auto-exports take longer than (seconds) -unused_better-bibtex_preferences_citekey_aux-scanner = BibTeX AUX/Markdown scanner -unused_better-bibtex_preferences_citekey_citekeys = Citation keys -unused_better-bibtex_startup_db-upgrade = Database cleanup { $n }/{ $total }... -unused_better-bibtex_startup_db-upgrade_not-editable = { $n } items not upgraded because they are read-only -unused_better-bibtex_startup_db-upgrade_saving = Database cleanup, saving... -unused_better-bibtex_startup_installing_translators_new = Better BibTeX: new translators installed -unused_better-bibtex_startup_installing_translators_new_dont-ask-again = Don't ask again - -unused_better-bibtex_startup_installing_translators_new_drag-and-drop = New Better BibTeX translators have been installed. If you want to use these for drag-and-drop (e.g. to drag and drop citekeys or citations), you will need to restart once to activate them. -unused_better-bibtex_startup_loading-keys = Loading citation keys -unused_better-bibtex_startup_loading_databases = Loading databases -unused_better-bibtex_startup_waiting_for_translators = Waiting for Zotero translators -unused_better-bibtex_texstudio_not_found = TeXstudio not found in { $path } -unused_better-bibtex_zotero-pane_server_disabled = Export by HTTP disabled -unused_preferences_auto-export_status_running = running -unused_preferences_auto-export_status_scheduled = scheduled - -unused_zotero_better-bibtex_csquotes = Replace left/right guillemets/double quotes with \\enquote{"{"}...{"}"} (requires csquotes) -xpi = - .description = Make Zotero useful for us LaTeX holdouts. +betterbibtex-item-pane-header = { -citation-key } diff --git a/locale/fr-FR/better-bibtex.ftl b/locale/fr-FR/better-bibtex.ftl index 193953a063..9b4a3ab398 100644 --- a/locale/fr-FR/better-bibtex.ftl +++ b/locale/fr-FR/better-bibtex.ftl @@ -1,3 +1,4 @@ +-citation-key = Clé de citation better-bibtex_auto-export_delete = Suppression de l'export automatique better-bibtex_auto-export_delete_confirm = Êtes-vous sûr de vouloir supprimer cette exportation automatique ? Cette opération est irréversible. better-bibtex_aux-scan_prompt = Nom de tag @@ -24,8 +25,18 @@ better-bibtex_error-report_debug = better-bibtex_error-report_enable-debug = Le journal de débogage de Zotero est actuellement désactivé. Il sera plus facile de diagnostiquer le problème si vous l'activez avant de soumettre un rapport d'erreur. better-bibtex_error-report_errors = .label = Erreurs +better-bibtex_error-report_include-errors = + .label = Inclure les messages d'erreur +better-bibtex_error-report_include-log = + .label = Inclure le journal de débogage +better-bibtex_error-report_include-items = + .label = Inclure l'élément +better-bibtex_error-report_include-notes = + .label = notes better-bibtex_error-report_include-cache = - .label = Inclure le cache + .label = cache +better-bibtex_error-report_include-attachments = + .label = métadonnées de la pièce jointe better-bibtex_error-report_items = .label = Références better-bibtex_error-report_not-reviewed = Les journaux de débogage ne peuvent pas être vérifiés à moins d'être référencés dans le gestionnaire de tickets GitHub par leur ID. @@ -34,47 +45,26 @@ better-bibtex_error-report_report-id = ID du journal de débogage : better-bibtex_error-report_restart-with-logging-enabled = .label = Redémarrer avec le journal activé… better-bibtex_error-report_review = - Les données ci-dessous sont sur le point d'être soumises à Better BibTeX à fins de débogage. Vous pouvez les examiner pour contrôler s'il y a des informations sensibles que vous ne souhaitez pas envoyer. + Les données ci-dessous sont sur le point d'être soumises à Better BibTeX pour le débogage. Vous pouvez prévisualiser les données ici, ou enregistrer une copie du journal pour obtenir les données précises sur le point d'être envoyées, pour voir s'il y a des informations sensibles que vous souhaitez ne pas envoyer. Réfléchissez bien à la nécessité de décocher les options ci-dessous dans votre environnement. Nous aurons généralement besoin de plus de communication (= de temps) si vous supprimez des parties du journal de cette manière. - Si vous êtes d'accord pour envoyer ces données, veuillez passer à l'écran suivant et publier l'ID de débogage qui y figure dans le gestionnaire de problèmes à l'adresse suivante : + Si vous êtes d'accord avec l'envoi de ces données, passez à l'écran suivant, où vous obtiendrez un identifiant de débogage rouge, et publiez cet identifiant sur le système de suivi des problèmes à l'adresse suivante : https://github.com/retorquere/zotero-better-bibtex/issue better-bibtex_error-report_save = - .label = Enregistrer la copie du journal + .label = Sauvegarder une copie du log pour inspection better-bibtex_error-report_submission-in-progress = Veuillez patienter pendant que le journal de débogage est soumis. better-bibtex_error-report_submitted = Votre journal de débogage a été envoyé. better-bibtex_export-options_keep-updated = Garder à jour better-bibtex_export-options_reminder = Êtes-vous sûr de ne pas vouloir du format ''{ $translator }''? better-bibtex_export-options_worker = Exportation en arrière-plan -unused_better-bibtex_first-run = - .title = Bienvenue sur Better BibTeX pour Zotero - .label = Bienvenue sur Better BibTeX pour Zotero -unused_better-bibtex_first-run_citekey-format = Vos clés de citation -unused_better-bibtex_first-run_citekey-format_bbt = - .label = Utiliser le format de clé de citation par défaut de BBT -unused_better-bibtex_first-run_citekey-format_explanation = BBT va générer des clés de citation pour vos entrées bibliographiques. La génération de clés de citation est hautement configurable, et vous pouvez choisir de remplacer la génération, mais vous devrez sélectionner la valeur par défaut dès maintenant. Vous pouvez toujours aller dans les préférences et changer cela à tout moment. -unused_better-bibtex_first-run_citekey-format_explanation_bbt = Les nouvelles clés de citation seront par défaut générées en utilisant le format de BBT. Si vous voulez un format différent, modifiez-le dans les préférences, puis sélectionnez tous les éléments, cliquez avec le bouton droit et sélectionnez Actualiser -unused_better-bibtex_first-run_citekey-format_explanation_example = vos clés de citation ressembleront à -unused_better-bibtex_first-run_citekey-format_explanation_zotero = Choisissez cette option si vous avez des documents qui font référence à des clés générées par Zotero sans l'aide de BBT. Cela va reproduire fidèlement les clés générées par Zotero, y compris les limitations connues du générateur de clé de Zotero. N'utilisez ceci que s'il vous est nécessaire que les clés soient exactement les mêmes que celles générées par Zotero. -unused_better-bibtex_first-run_citekey-format_zotero = - .label = Utiliser le format par défaut de Zotero pour la clé de citation -unused_better-bibtex_first-run_done = Et voilà ! -unused_better-bibtex_first-run_done_explanation = BBT est maintenant configuré. Vous pouvez toujours modifier l'un de ces paramètres dans les préférences de Zotero, onglet 'Better BibTeX'. -unused_better-bibtex_first-run_drag-and-drop = Citations par glisser-déposer -unused_better-bibtex_first-run_drag-and-drop_enable = - .label = Activer les citations par glisser-déposer -unused_better-bibtex_first-run_drag-and-drop_explanation = BBT vous permet de glisser-déposer vos références dans l'éditeur LaTeX de votre choix. Voulez-vous activer cette fonctionnalité dès maintenant ? -unused_better-bibtex_first-run_exporting = Exporter en utilisant BBT -unused_better-bibtex_first-run_exporting_explanation = L'exportation à l'aide de BBT fonctionne comme d'habitude dans Zotero, mais assurez-vous d'avoir sélectionné le bon format ; dans la liste des formats, au lieu de 'BibTeX', sélectionnez -unused_better-bibtex_first-run_import-strings_enable = - .label = Développer les noms de journaux @string à l'importation -unused_better-bibtex_first-run_import-strings_explanation = Certains fichiers bibtex utilisent des variables @string pour les noms de journaux. Si vous activez ceci, BBT utilisera une liste d'ID communs de journaux pour remplacer ces variables par les noms complets de ces journaux -unused_better-bibtex_first-run_import_unabbreviate = Développer les chaînes de caractères bibtex et les abréviations de journaux pendant l'importation -unused_better-bibtex_first-run_import_unabbreviate_enable = - .label = Désabréger les noms de journaux lors de l'importation -unused_better-bibtex_first-run_import_unabbreviate_explanation = Certains fichiers bibtex ont des abréviations de journaux dans le champ « journal ». Si vous activez ceci, BBT tentera de remplacer ces abréviations par le nom complet du journal lors de l'importation de fichiers bibtex -unused_better-bibtex_first-run_welcome = Better BibTex pour Zotero (ou BBT) ajoute à Zotero une compatibilité étendue avec LaTeX ou Markdown. BBT est totalement configurable -- rendez-vous dans les préférences si vous êtes curieux -- mais nous allons commencer avec quelques choix simples. -better-bibtex_item-pane_citekey = Clé de citation +better-bibtex_export-options_biblatexAPA = biblatex-apa +better-bibtex_export-options_biblatexChicago = biblatex-chicago +better-bibtex_item-pane_section_sidenav = + .tooltip = { -citation-key } +better-bibtex_item-pane_section_header = + .label = { -citation-key } +better-bibtex_item-pane_info_citation-key = + .label = { -citation-key } better-bibtex_preferences_advanced_export_brace-protection = .label = Appliquer la protection de la casse aux mots en capitales en les insérant entre paires d'accolades better-bibtex_preferences_advanced_export_brace-protection_warning = Si vous n'êtes pas prêt à ignorer à la fois les meilleures pratiques BibTeX/BibLaTeX (voir la FAQ BBT) et les recommandations de Zotero sur le tire/phrase, vous pouvez désactiver cette option pour supprimer la protection automatique des accolades pour les mots avec des lettres capitales. @@ -267,14 +257,10 @@ better-bibtex_preferences_export_quick-copy = Copie rapide .label = { better-bibtex_preferences_export_quick-copy } better-bibtex_preferences_export_quick-copy_explanation = Copie rapide/glissé-déposé des citations better-bibtex_preferences_export_quick-copy_format = Format de copie rapide -unused_better-bibtex_preferences_export_quick-copy_atom = Atom - .label = { unused_better-bibtex_preferences_export_quick-copy_atom } better-bibtex_preferences_export_quick-copy_citekeys = Clés de citation .label = { better-bibtex_preferences_export_quick-copy_citekeys } better-bibtex_preferences_export_quick-copy_eta-template = Canevas Eta .label = { better-bibtex_preferences_export_quick-copy_eta-template } -unused_better-bibtex_preferences_export_quick-copy_gitbook = GitBook - .label = { unused_better-bibtex_preferences_export_quick-copy_gitbook } better-bibtex_preferences_export_quick-copy_latex = Citation LaTeX .label = { better-bibtex_preferences_export_quick-copy_latex } better-bibtex_preferences_export_quick-copy_latex_command = Commande LaTeX @@ -344,59 +330,10 @@ better-bibtex_zotero-pane_add-citation-links = Graphique de citation : ajouter d better-bibtex_zotero-pane_citekey_pin_inspire-hep = Verrouiller les clés BibTeX de InspireHEP better-bibtex_zotero-pane_citekey_refresh = Rafraichir la clé de citation better-bibtex_zotero-pane_citekey_unpin = Déverrouiller la clé de citation -better-bibtex_zotero-pane_column_citekey = Clé de citation +better-bibtex_zotero-pane_column_citekey = { -citation-key } better-bibtex_zotero-pane_patch-dates = Copier date-added/date-modified à partir du champ extra better-bibtex_zotero-pane_sentence-case = BBT Casse de la phrase better-bibtex_zotero-pane_show_collection-key = Télécharger l'export de Better BibTeX... better-bibtex_zotero-pane_tag_duplicates = Tagguer les clés de citation doublons better-bibtex_zotero-pane_tex-studio = Envoyer les citations vers TeXstudio -unused_better-bibtex_auto-export_too-long_body-eabled = Votre exportation automatique { $translator } à { $path } a pris { $seconds } secondes. Pendant les exportations de quelque type que ce soit, l''interface utilisateur de Zotero est verrouillée. -unused_better-bibtex_auto-export_too-long_prime-enabled = Pour minimiser les effets des exportations automatiques durant (trop) longtemps, la mise en place du cache a été activée. Cela rendra les exportations automatiques plus lentes, mais réduira au maximum le temps pendant lequel Zotero est inutilisable. -unused_better-bibtex_auto-export_too-long_sorry = Vous avez déjà activé la mise en place du cache, et l'exportation automatique est activée. Rien de plus ne peut être fait sans un changement de l'architecture de Zotero (https://u.nu/27e9). -unused_better-bibtex_auto-export_too-long_suggest-idle = Pour minimiser les effets des exportations automatiques durant (trop) longtemps, vous pouvez configurer l'exportation automatique en « Inactif » au lieu de « Immédiat ». -unused_better-bibtex_auto-export_too-long_title = (Longue) exportation automatique en cours -unused_better-bibtex_db_corrupt = Une erreur s'est produite lors de l'ouverture de votre base de données -unused_better-bibtex_db_corrupt_explanation = - Une erreur s''est produite lors de l''ouverture de votre base de données. Cela pourrait signifier que votre base de données est corrompue. L''erreur signalée par Zotero est la suivante: { $error }. - - Pour continuer, indiquez si vous souhaitez : - - 1. demander à Zotero de restaurer une sauvegarde précédente en redémarrant maintenant ; - 2. réinitialiser la base de données Better BibTeX et continuer - 3. quitter Zotero et solliciter l''assistance pour tenter de restaurer la base de données. - - La réinitialisation vous permettra de continuer, mais vos clés de citation seront régénérées et les exportations automatiques devront être configurées à nouveau. Une sauvegarde de la base de données corrompue sera conservée au cas où. -unused_better-bibtex_db_corrupt_quit = Quitter Zotero maintenant -unused_better-bibtex_db_corrupt_reset = Réinitialiser et continuer -unused_better-bibtex_db_corrupt_restore = Redémarrer Zotero et tenter de restaurer -unused_better-bibtex_error-report_out-of-memory = Votre système est probablement à court de mémoire lors de l’assemblage du fichier journal. Veuillez définir ''{ $preference }'' sur une valeur inférieure à la { $limit } actuelle, redémarrez et réessayez. -unused_better-bibtex_key-manager_regenerate = (ré)génération des clés de citation -unused_better-bibtex_key-manager_regenerate_confirm = { $n } clés de citation à (ré)générer : continuer ? -unused_better-bibtex_preferences_advanced = Avancé -unused_better-bibtex_preferences_advanced_export_workers = Exportation parallèle en arrière-plan : -unused_better-bibtex_preferences_advanced_import_unabbreviate = Développer les titres abrégés de journaux à importer à l'aide de la liste : -unused_better-bibtex_preferences_advanced_import_unabbreviate_off = Aucun -unused_better-bibtex_preferences_advanced_tab_citekeys = Clés de citation -unused_better-bibtex_preferences_advanced_tab_export = Exportation -unused_better-bibtex_preferences_advanced_warning = Les paramètres ci-dessous ont un impact sur les performances et peuvent faire échouer les exportations. Procéder avec attention. -unused_better-bibtex_preferences_auto-export_collection = Collection -unused_better-bibtex_preferences_auto-export_library = Bibliothèque -unused_better-bibtex_preferences_auto-export_warn_long-running = M'avertir lorsque les exportations automatiques durent plus de (en secondes) -unused_better-bibtex_preferences_citekey_aux-scanner = Scanner BibTeX AUX/Markdown -unused_better-bibtex_preferences_citekey_citekeys = Clés de citation -unused_better-bibtex_startup_db-upgrade = Nettoyage de la base de données { $n }/{ $total }... -unused_better-bibtex_startup_db-upgrade_not-editable = { $n } éléments non mis à jour car en lecture seule -unused_better-bibtex_startup_db-upgrade_saving = Nettoyage de la base de données, sauvegarde... -unused_better-bibtex_startup_installing_translators_new = Better BibTeX : nouveaux convertisseurs installés -unused_better-bibtex_startup_installing_translators_new_dont-ask-again = Ne plus le demander -unused_better-bibtex_startup_installing_translators_new_drag-and-drop = De nouveaux convertisseurs Better BibTeX ont été installés. Si vous voulez les utiliser pour glisser-déposer (par exemple pour glisser et déposer des clés de citation ou des citations), vous devrez redémarrer une fois pour les activer. -unused_better-bibtex_startup_loading-keys = Chargement des clés de citation -unused_better-bibtex_startup_loading_databases = Chargement des bases de données -unused_better-bibtex_startup_waiting_for_translators = En attente des convertisseurs Zotero -unused_better-bibtex_texstudio_not_found = TeXstudio est introuvable dans { $path } -unused_better-bibtex_zotero-pane_server_disabled = Exportation par HTTP désactivée -unused_preferences_auto-export_status_running = En cours... -unused_preferences_auto-export_status_scheduled = Planifié -unused_zotero_better-bibtex_csquotes = Remplacer les guillemets par la commande '\\enquote{ "{" }...{ "}" }' (nécessite le package « csquotes ») -xpi = - .description = Ajoute à Zotero une compatibilité étendue avec LaTeX +betterbibtex-item-pane-header = { -citation-key } diff --git a/locale/it-IT/better-bibtex.ftl b/locale/it-IT/better-bibtex.ftl index 8e471c16a6..bb7d3ee95a 100644 --- a/locale/it-IT/better-bibtex.ftl +++ b/locale/it-IT/better-bibtex.ftl @@ -1,3 +1,4 @@ +-citation-key = Citation key better-bibtex_auto-export_delete = Cancellazione esportazione automatica better-bibtex_auto-export_delete_confirm = Sei sicuro di voler cancellare questa esportazione automatica? L'operazione è irreversibile. better-bibtex_aux-scan_prompt = Nome tag @@ -24,8 +25,18 @@ better-bibtex_error-report_debug = better-bibtex_error-report_enable-debug = Il log di debug di Zotero è disabilitato. Sarà più facile diagnosticare il problema se lo si abilita prima di tentare l'invio di un log di debug. better-bibtex_error-report_errors = .label = Errori +better-bibtex_error-report_include-errors = + .label = Include error messages +better-bibtex_error-report_include-log = + .label = Include debug log +better-bibtex_error-report_include-items = + .label = Include item +better-bibtex_error-report_include-notes = + .label = notes better-bibtex_error-report_include-cache = - .label = Includi la cache + .label = cache +better-bibtex_error-report_include-attachments = + .label = attachment metadata better-bibtex_error-report_items = .label = Elementi better-bibtex_error-report_not-reviewed = I log di debug non possono essere utilizzati se non sono indicati con il loro ID nell'Issue tracker di Github. @@ -34,47 +45,26 @@ better-bibtex_error-report_report-id = ID del log di debug: better-bibtex_error-report_restart-with-logging-enabled = .label = Riavvio con log abilitato… better-bibtex_error-report_review = - I dati di seguito stanno per essere inviati a Better BibTeX per il debug. È possibile controllare i data per vedere se sono presenti informazioni sensibili che non si desidera inviare. + The data below is about to submitted to Better BibTeX for debugging. You can preview the data here, or save a copy of the log to get the precise data about to be sent, to see whether there's sensitive information that you do not wish to send. Please think carefully about whether unchecking options below is necessary for your environment. We will generally needs more communication (= time) if you remove parts of the log this way. - Se si è d'accordo con l'invio di questi dati, si prega di procedere nella schermata successiva dove sarà indicato l'ID di debug da riportare nell'Issue tracker alla pagina + If you are OK with sending this data, please proceed to the next screen where you will be presented a red debug ID, and post this ID on the issue tracker at https://github.com/retorquere/zotero-better-bibtex/issue better-bibtex_error-report_save = - .label = Salva una copia del log + .label = Save copy of log for inspection better-bibtex_error-report_submission-in-progress = Si prega di attendere mentre il log viene inviato. better-bibtex_error-report_submitted = Il log di debug è stato inviato. better-bibtex_export-options_keep-updated = Mantieni aggiornato better-bibtex_export-options_reminder = Si è sicuri di non volere il formato '{ $translator }' ? better-bibtex_export-options_worker = Esportazione in background -unused_better-bibtex_first-run = - .title = Ti presentiamo Better BibTeX per Zotero - .label = Ti presentiamo Better BibTeX per Zotero -unused_better-bibtex_first-run_citekey-format = Le tue chiavi di citazione -unused_better-bibtex_first-run_citekey-format_bbt = - .label = Usa il formato predefinito delle chiavi di citazione di BBT -unused_better-bibtex_first-run_citekey-format_explanation = BBT genererà delle chiavi per i tuoi elementi. La generazione è altamente configurabile, ed è possibile escluderla, ma va comunque impostato un parametro di default. È possibile modificare questa scelta nelle preferenze in ogni momento. -unused_better-bibtex_first-run_citekey-format_explanation_bbt = Verranno generate nuove chiavi con il formato predefinito di BBT. Se si desidera un formato diverso, modificarlo nelle preferenze, selezionare tutti gli elementi, fare click con il tasto destro e infine 'Aggiorna'. -unused_better-bibtex_first-run_citekey-format_explanation_example = le chiavi di citazione appariranno come -unused_better-bibtex_first-run_citekey-format_explanation_zotero = Scegli questa opzionie se hai dei documenti che utilizzano delle chiavi generate da Zotero senza l'aiuto di BBT. Questa opzione replicherà fedelmente le chiavi generate da Zotero, includese le limitazioni note del generatore di chiavi di Zotero. Usa questa opzione solo se necessiti di chiavi identiche a quelle generate da Zotero. -unused_better-bibtex_first-run_citekey-format_zotero = - .label = Usa il formato predefinito di Zotero per le chiavi di citazione -unused_better-bibtex_first-run_done = Fatto! -unused_better-bibtex_first-run_done_explanation = BBT è pronto per l'uso. Puoi cambiare qualsiasi opzione andando nella finestra delle preferenze e aprendo la scheda BBT. -unused_better-bibtex_first-run_drag-and-drop = Trascina citazioni -unused_better-bibtex_first-run_drag-and-drop_enable = - .label = Attiva trascinamento delle citazioni -unused_better-bibtex_first-run_drag-and-drop_explanation = Con BBT, puoi trascinare le citazioni nel tuo editor LaTeX preferito. Vuoi attivare la funzione? -unused_better-bibtex_first-run_exporting = Esportazione con BBT -unused_better-bibtex_first-run_exporting_explanation = L'esportazione con BBT funziona come di consueto in Zotero, ma assicurati di selezionare il formato corretto; al posto di 'BibTeX', seleziona -unused_better-bibtex_first-run_import-strings_enable = - .label = Espandi le variabili @string con i titoli delle riviste durante l'importazione -unused_better-bibtex_first-run_import-strings_explanation = Alcuni file bibtex usano delle variabili @string per i titoli delle riviste. Con questa opzione attiva, BBT userà una lista di ID di riviste più comuni per sostituire le variabili con il titolo intero. -unused_better-bibtex_first-run_import_unabbreviate = Espandi le stringhe bibtex e le abbreviazioni dei titoli delle riviste durante l'importazione -unused_better-bibtex_first-run_import_unabbreviate_enable = - .label = Svolgi le abbreviazioni dei titoli delle riviste durante l'importazione -unused_better-bibtex_first-run_import_unabbreviate_explanation = Alcuni file bibtex usano delle abbreviazioni nel campo 'journal'. Con questa opzione attiva, BBT cercherà di sostituire alla abbreviazioni il titolo delle riviste per esteso durante l'importazione dei file bibtex. -unused_better-bibtex_first-run_welcome = Better BibTeX for Zotero (o, più comunemente, BBT) vuole rendere Zotero più utile per gli utilizzatori abituali di LaTeX o Markdown. Ci sono un sacco di opzioni configurabili -- vedere le preferenze per credere -- ma iniziamo con delle scelte semplici. -better-bibtex_item-pane_citekey = Citation Key +better-bibtex_export-options_biblatexAPA = biblatex-apa +better-bibtex_export-options_biblatexChicago = biblatex-chicago +better-bibtex_item-pane_section_sidenav = + .tooltip = { -citation-key } +better-bibtex_item-pane_section_header = + .label = { -citation-key } +better-bibtex_item-pane_info_citation-key = + .label = { -citation-key } better-bibtex_preferences_advanced_export_brace-protection = .label = Includi le parole in maiuscolo tra graffe per preservare i caratteri così come scritti better-bibtex_preferences_advanced_export_brace-protection_warning = Se si vuole ignorare sia le buone pratiche di BibTeX/BibLaTeX (vedi le FAQ di BBT) e le raccomandazioni di Zotero sulle maiuscole, si può disattivare questa opzione per prevenire la protezione con graffe delle parole in maiuscolo. @@ -266,14 +256,10 @@ better-bibtex_preferences_export_quick-copy = Copia veloce .label = { better-bibtex_preferences_export_quick-copy } better-bibtex_preferences_export_quick-copy_explanation = Copia veloce/trascinamento citazioni better-bibtex_preferences_export_quick-copy_format = Formato Copia veloce -unused_better-bibtex_preferences_export_quick-copy_atom = Atom - .label = { unused_better-bibtex_preferences_export_quick-copy_atom } better-bibtex_preferences_export_quick-copy_citekeys = Chiavi di citazione .label = { better-bibtex_preferences_export_quick-copy_citekeys } better-bibtex_preferences_export_quick-copy_eta-template = Template Eta .label = { better-bibtex_preferences_export_quick-copy_eta-template } -unused_better-bibtex_preferences_export_quick-copy_gitbook = GitBook - .label = { unused_better-bibtex_preferences_export_quick-copy_gitbook } better-bibtex_preferences_export_quick-copy_latex = Citazione LaTeX .label = { better-bibtex_preferences_export_quick-copy_latex } better-bibtex_preferences_export_quick-copy_latex_command = Comando LaTeX @@ -343,59 +329,10 @@ better-bibtex_zotero-pane_add-citation-links = Grafico di citazione: aggiungi li better-bibtex_zotero-pane_citekey_pin_inspire-hep = Fissa chiavi BibTeX da InspireHEP better-bibtex_zotero-pane_citekey_refresh = Aggiorna chiavi BibTeX better-bibtex_zotero-pane_citekey_unpin = Sblocca chiavi BibTeX -better-bibtex_zotero-pane_column_citekey = Citation Key +better-bibtex_zotero-pane_column_citekey = { -citation-key } better-bibtex_zotero-pane_patch-dates = Copia date-added/date-modified dal campo extra better-bibtex_zotero-pane_sentence-case = BBT Tutte le Iniziali Maiuscole better-bibtex_zotero-pane_show_collection-key = Scarica esportazione di Better BibTeX... better-bibtex_zotero-pane_tag_duplicates = Tagga chiavi di citazione duplicate better-bibtex_zotero-pane_tex-studio = Invia voci a TeXstudio -unused_better-bibtex_auto-export_too-long_body-eabled = La tua esportazione automatica di { $translator } in { $path } ha impiegato { $seconds } secondi. Durante le esportazioni, l'interfaccia di Zotero non risponde. -unused_better-bibtex_auto-export_too-long_prime-enabled = Per ridurre al minimo i disagi dovuti a esportazioni automatiche di lunga durata, è stato attivato il pre-caricamento della cache. Ciò renderà le esportazioni più lente, ma ridurrà al minimo il blocco di Zotero. -unused_better-bibtex_auto-export_too-long_sorry = Il pre-caricamento della cache è già attivo, e le esportazioni automatiche impostate durante i periodi di inattività. Ulteriori miglioramenti non sono possibili senza un cambio di architettura in Zotero (https://u.nu/27e9). -unused_better-bibtex_auto-export_too-long_suggest-idle = Per ridurre al minimo i disagi dovuti a esportazioni automatiche di lunga durata, si consiglia di impostare le esportazioni automatica a "quando inattivo" invece di "a ogni modifica". -unused_better-bibtex_auto-export_too-long_title = Esportazioni automatiche di lunga durata -unused_better-bibtex_db_corrupt = Si è verificato un errore nell'apertura del tuo database -unused_better-bibtex_db_corrupt_explanation = - Si è verificato un errore nell'apertura del tuo database. Questo può indicare che il database è corrotto. L'errore riportato da Zotero è: { $error }. - - Si prega di scegliere come si desidera procedere: - - 1. chiedere a Zotero di recuperare un backup del database e riavviare - 2. effettuare il reset del database di Better BibTeX database e continuare - 3. chiudere Zotero e contattare il supporto per provare a recuperare il database. - - Il reset ti consentirà ti proseguire, ma le chiavi di citazione verranno generate di nuovo e le esportazioni automatiche andranno re-impostate. In questo caso verrà mantenuta una copia di backup del database corrotto. -unused_better-bibtex_db_corrupt_quit = Esci da Zotero -unused_better-bibtex_db_corrupt_reset = Reset e procedi -unused_better-bibtex_db_corrupt_restore = Riavvia Zotero e tenta il ripristino -unused_better-bibtex_error-report_out-of-memory = È probabile che il tuo sistema esaurisca la memoria nel tentativo di costruire il file di log. Si prega di impostare la voce '{ $preference }' a un valore più basso dell'attuale { $limit }, riavviare, quindi provare di nuovo. -unused_better-bibtex_key-manager_regenerate = (ri)generazione delle chiavi di citazione in corso -unused_better-bibtex_key-manager_regenerate_confirm = (ri)generazione di { $n } chiavi, confermi? -unused_better-bibtex_preferences_advanced = Avanzate -unused_better-bibtex_preferences_advanced_export_workers = Esportazioni parallele in background: -unused_better-bibtex_preferences_advanced_import_unabbreviate = Espandi i titoli di rivista abbreviati durante l'importazione usando la lista: -unused_better-bibtex_preferences_advanced_import_unabbreviate_off = Nessuna -unused_better-bibtex_preferences_advanced_tab_citekeys = Chiavi di citazione -unused_better-bibtex_preferences_advanced_tab_export = Esporta -unused_better-bibtex_preferences_advanced_warning = Le impostazioni qui presenti possono avere un effetto sulle prestazioni, e causare l'interruzione delle esportazioni. Procedere con cautela. -unused_better-bibtex_preferences_auto-export_collection = Collezione -unused_better-bibtex_preferences_auto-export_library = Biblioteca -unused_better-bibtex_preferences_auto-export_warn_long-running = Avvisami quando le esportazioni automatiche impiegano più di (seconds) -unused_better-bibtex_preferences_citekey_aux-scanner = Analizzatore di file BibTeX AUX/Markdown -unused_better-bibtex_preferences_citekey_citekeys = Chiavi di citazione -unused_better-bibtex_startup_db-upgrade = Pulizia database { $n }/{ $total }... -unused_better-bibtex_startup_db-upgrade_not-editable = { $n } elementi non aggiornati poiché in sola lettura -unused_better-bibtex_startup_db-upgrade_saving = Pulizia database, salvataggio... -unused_better-bibtex_startup_installing_translators_new = Better BibTeX: installati nuovi programmi traduttori -unused_better-bibtex_startup_installing_translators_new_dont-ask-again = Non chiedere di nuovo -unused_better-bibtex_startup_installing_translators_new_drag-and-drop = Sono stati installati nuovi programmi traduttori per Better BibTeX. Se si desidera usarli nelle operazioni di trascinamento (per trascinare citazioni), è necessario riavviare l'applicazione per attivarli. -unused_better-bibtex_startup_loading-keys = Caricamento chiavi di citazione -unused_better-bibtex_startup_loading_databases = Caricamento database -unused_better-bibtex_startup_waiting_for_translators = In attesa dei programmi traduttori di Zotero -unused_better-bibtex_texstudio_not_found = TeXstudio non trovato all'indirizzo { $path } -unused_better-bibtex_zotero-pane_server_disabled = Esportazione via HTTP disabilitata -unused_preferences_auto-export_status_running = in esecuzione -unused_preferences_auto-export_status_scheduled = programmato -unused_zotero_better-bibtex_csquotes = Sostituisci virgolette doppie o uncinate con \\enquote{ "{" }...{ "}" } (richiede pacchetto csquotes) -xpi = - .description = Rendi Zotero più utile per chi, come noi, è rimasto fedele a LaTeX. +betterbibtex-item-pane-header = { -citation-key } diff --git a/locale/pt-BR/better-bibtex.ftl b/locale/pt-BR/better-bibtex.ftl index f2bcdbb572..f9d650a7bb 100644 --- a/locale/pt-BR/better-bibtex.ftl +++ b/locale/pt-BR/better-bibtex.ftl @@ -1,3 +1,4 @@ +-citation-key = Citation key better-bibtex_auto-export_delete = Deleting auto-export better-bibtex_auto-export_delete_confirm = Are you sure you want to delete this auto-export? This cannot be undone. better-bibtex_aux-scan_prompt = Nome da etiqueta @@ -24,8 +25,18 @@ better-bibtex_error-report_debug = better-bibtex_error-report_enable-debug = Zotero debug logging is currently disabled. It will be easier to diagnose the problem if you enable it before submitting a debug log. better-bibtex_error-report_errors = .label = Erros +better-bibtex_error-report_include-errors = + .label = Include error messages +better-bibtex_error-report_include-log = + .label = Include debug log +better-bibtex_error-report_include-items = + .label = Include item +better-bibtex_error-report_include-notes = + .label = notes better-bibtex_error-report_include-cache = - .label = Include cache + .label = cache +better-bibtex_error-report_include-attachments = + .label = attachment metadata better-bibtex_error-report_items = .label = Items better-bibtex_error-report_not-reviewed = Debug logs cannot be reviewed unless referred to in the GitHub issue tracker by their ID. @@ -34,47 +45,26 @@ better-bibtex_error-report_report-id = Debug log ID: better-bibtex_error-report_restart-with-logging-enabled = .label = Reiniciar com registro ativado… better-bibtex_error-report_review = - The data below is about to submitted to Better BibTeX for debugging. You can review the data to see whether there's sensitive information that you do not wish to send. + The data below is about to submitted to Better BibTeX for debugging. You can preview the data here, or save a copy of the log to get the precise data about to be sent, to see whether there's sensitive information that you do not wish to send. Please think carefully about whether unchecking options below is necessary for your environment. We will generally needs more communication (= time) if you remove parts of the log this way. - If you are OK with sending this data, please proceed to the next screen and post the debug ID presented in the next screen in the issue tracker at + If you are OK with sending this data, please proceed to the next screen where you will be presented a red debug ID, and post this ID on the issue tracker at https://github.com/retorquere/zotero-better-bibtex/issue better-bibtex_error-report_save = - .label = Save copy of log + .label = Save copy of log for inspection better-bibtex_error-report_submission-in-progress = Please wait while the debug log is submitted. better-bibtex_error-report_submitted = Your debug log has been submitted. better-bibtex_export-options_keep-updated = Manter atualizado better-bibtex_export-options_reminder = Tem certeza que você não quer o formato ''{ $translator }''? better-bibtex_export-options_worker = Background export -unused_better-bibtex_first-run = - .title = Welcome to Better BibTeX for Zotero - .label = Welcome to Better BibTeX for Zotero -unused_better-bibtex_first-run_citekey-format = Your citation keys -unused_better-bibtex_first-run_citekey-format_bbt = - .label = Use the BBT default citekey format -unused_better-bibtex_first-run_citekey-format_explanation = BBT will generate citation keys for your items. The citekey generation is highly configurable, and you can choose to override the generation, but you will need to select the default now. You can always go into the preferences and change this at any time. -unused_better-bibtex_first-run_citekey-format_explanation_bbt = New keys will be generated using the default BBT format. If you want a different format, change it in the preferences, then select all items, right-click, and select Refresh -unused_better-bibtex_first-run_citekey-format_explanation_example = your citation keys will look like -unused_better-bibtex_first-run_citekey-format_explanation_zotero = Choose this option if you have existing documents that refer to keys generated by Zotero without the help of BBT. This will replicate the Zotero-generated keys faithfully, including known limitations in the Zotero key generator. Only use this if you need the keys to be exactly as Zotero generates them. -unused_better-bibtex_first-run_citekey-format_zotero = - .label = Use the Zotero default citekey format -unused_better-bibtex_first-run_done = All Done! -unused_better-bibtex_first-run_done_explanation = BBT is now set up for use. You can still change any of these settings by going into the Zotero preferences and opening the BBT tab. -unused_better-bibtex_first-run_drag-and-drop = Drag-and-drop citations -unused_better-bibtex_first-run_drag-and-drop_enable = - .label = Enable drag-and-drop citations -unused_better-bibtex_first-run_drag-and-drop_explanation = With BBT, you can drag-and-drop citations into your LaTeX editor of choice. Do you want to enable this now? -unused_better-bibtex_first-run_exporting = Exporting using BBT -unused_better-bibtex_first-run_exporting_explanation = Exporting using BBT works as usual in Zotero, but make sure you have the right format selected; in the list of formats, instead of 'BibTeX', select -unused_better-bibtex_first-run_import-strings_enable = - .label = Expand @string journal names on import -unused_better-bibtex_first-run_import-strings_explanation = Some bibtex files use @string variables for journal names. If you enable this, BBT will use a list of common journal IDs to replace these variables with the full journal name -unused_better-bibtex_first-run_import_unabbreviate = Expand bibtex strings and journal abbreviations during import -unused_better-bibtex_first-run_import_unabbreviate_enable = - .label = Unabbreviate journal names on import -unused_better-bibtex_first-run_import_unabbreviate_explanation = Some bibtex files have journal abbreviations in the 'journal' field. If you enable this, BBT will attempt to replace those abbreviations with the full journal name during import of bibtex files -unused_better-bibtex_first-run_welcome = Better BibTeX for Zotero (or BBT as it is commonly named) aims to make Zotero more useful for LaTeX and Markdown holdouts. There's a lot to configure about BBT -- take a look in the preferences if you're curious -- but let's start you off with a few simple choices. -better-bibtex_item-pane_citekey = Chave de Citação +better-bibtex_export-options_biblatexAPA = biblatex-apa +better-bibtex_export-options_biblatexChicago = biblatex-chicago +better-bibtex_item-pane_section_sidenav = + .tooltip = { -citation-key } +better-bibtex_item-pane_section_header = + .label = { -citation-key } +better-bibtex_item-pane_info_citation-key = + .label = { -citation-key } better-bibtex_preferences_advanced_export_brace-protection = .label = Apply case-protection to capitalized words by enclosing them in braces better-bibtex_preferences_advanced_export_brace-protection_warning = If you're dead-set on ignoring both BibTeX/BibLaTeX best practice (see the BBT FAQ) and the Zotero recommendations on title/sentence casing, you can turn this off to suppress automatic brace-protection for words with uppercase letters. @@ -266,14 +256,10 @@ better-bibtex_preferences_export_quick-copy = Quick-Copy .label = { better-bibtex_preferences_export_quick-copy } better-bibtex_preferences_export_quick-copy_explanation = Quick-Copy/drag-and-drop citations better-bibtex_preferences_export_quick-copy_format = Quick-Copy format -unused_better-bibtex_preferences_export_quick-copy_atom = Atom - .label = { unused_better-bibtex_preferences_export_quick-copy_atom } better-bibtex_preferences_export_quick-copy_citekeys = Cite Keys .label = { better-bibtex_preferences_export_quick-copy_citekeys } better-bibtex_preferences_export_quick-copy_eta-template = Eta template .label = { better-bibtex_preferences_export_quick-copy_eta-template } -unused_better-bibtex_preferences_export_quick-copy_gitbook = GitBook - .label = { unused_better-bibtex_preferences_export_quick-copy_gitbook } better-bibtex_preferences_export_quick-copy_latex = LaTeX citation .label = { better-bibtex_preferences_export_quick-copy_latex } better-bibtex_preferences_export_quick-copy_latex_command = LaTeX command @@ -343,59 +329,10 @@ better-bibtex_zotero-pane_add-citation-links = Citation Graph: add citation link better-bibtex_zotero-pane_citekey_pin_inspire-hep = Fixar chave BibTeX do InspireHEP better-bibtex_zotero-pane_citekey_refresh = Atualizar chave BibTeX better-bibtex_zotero-pane_citekey_unpin = Des-fixar chave BibTeX -better-bibtex_zotero-pane_column_citekey = Chave de Citação +better-bibtex_zotero-pane_column_citekey = { -citation-key } better-bibtex_zotero-pane_patch-dates = Copy date-added/date-modified from extra field better-bibtex_zotero-pane_sentence-case = BBT Sentence-case better-bibtex_zotero-pane_show_collection-key = Download Better BibTeX export... better-bibtex_zotero-pane_tag_duplicates = Etiquetar chaves de citação duplicadas better-bibtex_zotero-pane_tex-studio = Push entries to TeXstudio -unused_better-bibtex_auto-export_too-long_body-eabled = A exportação automática { $translator } para { $path } demorou { $seconds } segundos. Durante qualquer tipo de exportação, a interface de usuário do Zotero permanece travada. -unused_better-bibtex_auto-export_too-long_prime-enabled = Para minimizar os efeitos de exportações automáticas demoradas, o pré-processamento do cache foi ativado. Isso faz a exportação automática mais lenta, mas reduz o tempo que Zotero fica congelado ao mínimo. -unused_better-bibtex_auto-export_too-long_sorry = Você já ativou o pré-processamento de cache e definiu as exportações automáticas como ociosas. Nada mais pode ser feito sem mudanças estruturais no Zotero (https://u.nu/27e9). -unused_better-bibtex_auto-export_too-long_suggest-idle = Para minimizar os efeitos de exportações automáticas demoradas, você pode preferir definir as exportações automáticas como "Quando ocioso" ao invés de "Imediatamente". -unused_better-bibtex_auto-export_too-long_title = Exportação automática demorada -unused_better-bibtex_db_corrupt = Ocorreu um erro abrindo seu banco de dados -unused_better-bibtex_db_corrupt_explanation = - Ocorreu um erro abrindo seu banco de dados. Isso pode significar que seu banco de dados está corrompido. O erro informado por Zotero foi: { $error }. - - Para continuar, escolha se você quer: - - 1. reiniciar agora para fazer Zotero tentar reverter para um backup anterior - 2. esvaziar o banco de dados do Better BibTeX e continuar - 3. sair do Zotero e procurar ajuda para tentar recuperar o banco de dados. - - Você pode continuar zerando o banco de dados, mas suas chaves de citação serão recriadas e as exportações automáticas precisarão ser configuradas do início. Um backup do banco de dados corrompido vai ser mantido nesse caso. -unused_better-bibtex_db_corrupt_quit = Sair do Zotero agora -unused_better-bibtex_db_corrupt_reset = Zerar e continuar -unused_better-bibtex_db_corrupt_restore = Reiniciar o Zotero e tentar reverter -unused_better-bibtex_error-report_out-of-memory = Seu sistema provavelmente esgotou a memória gerando o arquivo de registro (log). Modifique ''{ $preference }'' para um valor mais baixo que o { $limit } atual, reinicie e tente novamente. -unused_better-bibtex_key-manager_regenerate = (re)generating citation keys -unused_better-bibtex_key-manager_regenerate_confirm = (re)generating { $n } citekeys, proceed? -unused_better-bibtex_preferences_advanced = Avançado -unused_better-bibtex_preferences_advanced_export_workers = Parallel background exports: -unused_better-bibtex_preferences_advanced_import_unabbreviate = Expand abbreviated journal titles on import using list: -unused_better-bibtex_preferences_advanced_import_unabbreviate_off = None -unused_better-bibtex_preferences_advanced_tab_citekeys = Citation keys -unused_better-bibtex_preferences_advanced_tab_export = Export -unused_better-bibtex_preferences_advanced_warning = Estas opções afetam o desempenho e podem causar falhas na exportação. Seja cuidadoso. -unused_better-bibtex_preferences_auto-export_collection = Coleção -unused_better-bibtex_preferences_auto-export_library = Biblioteca -unused_better-bibtex_preferences_auto-export_warn_long-running = Avisar quando exportações automáticas demorarem mais que (seconds) -unused_better-bibtex_preferences_citekey_aux-scanner = BibTeX AUX/Markdown scanner -unused_better-bibtex_preferences_citekey_citekeys = Citation keys -unused_better-bibtex_startup_db-upgrade = Database cleanup { $n }/{ $total }... -unused_better-bibtex_startup_db-upgrade_not-editable = { $n } items not upgraded because they are read-only -unused_better-bibtex_startup_db-upgrade_saving = Database cleanup, saving... -unused_better-bibtex_startup_installing_translators_new = Better BibTeX: novos tradutores instalados -unused_better-bibtex_startup_installing_translators_new_dont-ask-again = Don't ask again -unused_better-bibtex_startup_installing_translators_new_drag-and-drop = Novos tradutores do Better BibTeX foram instalados. Se quiser usá-los ao arrastar-e-soltar (por exemplo, para arrastar e soltar chaves de citação ou citações), você precisa reiniciar uma vez para ativá-los. -unused_better-bibtex_startup_loading-keys = Carregando chaves de citação -unused_better-bibtex_startup_loading_databases = Loading databases -unused_better-bibtex_startup_waiting_for_translators = Aguardando tradutores do Zotero -unused_better-bibtex_texstudio_not_found = TeXstudio não encontrado em { $path } -unused_better-bibtex_zotero-pane_server_disabled = Exportação via HTTP desativada -unused_preferences_auto-export_status_running = executando -unused_preferences_auto-export_status_scheduled = agendado -unused_zotero_better-bibtex_csquotes = Substituir aspas duplas ou angulares por \\enquote{ "{" }...{ "}" } (exige csquotes) -xpi = - .description = Faz Zotero útil para os tradicionalistas do LaTeX. +betterbibtex-item-pane-header = { -citation-key } diff --git a/locale/zh-CN/better-bibtex.ftl b/locale/zh-CN/better-bibtex.ftl index fbcd34c016..9a11c656f3 100644 --- a/locale/zh-CN/better-bibtex.ftl +++ b/locale/zh-CN/better-bibtex.ftl @@ -1,3 +1,4 @@ +-citation-key = 引用 better-bibtex_auto-export_delete = 正在删除自动导出 better-bibtex_auto-export_delete_confirm = 您确定要删除此项自动导出吗?该操作不可撤销。 better-bibtex_aux-scan_prompt = 标签名 @@ -24,8 +25,18 @@ better-bibtex_error-report_debug = better-bibtex_error-report_enable-debug = Zotero 的调试日志记录已被禁用。如果在提交调试日志之前启用它,将更容易诊断问题。 better-bibtex_error-report_errors = .label = 错误 +better-bibtex_error-report_include-errors = + .label = 包括错误信息 +better-bibtex_error-report_include-log = + .label = 包括调试日志 +better-bibtex_error-report_include-items = + .label = 包括条目 +better-bibtex_error-report_include-notes = + .label = 备注 better-bibtex_error-report_include-cache = - .label = 包含缓存 + .label = 缓存 +better-bibtex_error-report_include-attachments = + .label = 附件元数据 better-bibtex_error-report_items = .label = 条目 better-bibtex_error-report_not-reviewed = 仅当您在 GitHub Issues 中引用了日志 ID 时,调试日志才会被审阅。 @@ -34,47 +45,26 @@ better-bibtex_error-report_report-id = 调试日志 ID: better-bibtex_error-report_restart-with-logging-enabled = .label = 启用日志记录并重启… better-bibtex_error-report_review = - 下列数据将被提交至 Better BibTeX 以供调试。您可以检查其中是否有您不希望发送的敏感信息。 + 以下数据将被提交至 Better BibTeX 以供调试。您可以现在预览数据,或保存日志副本以获取将被发送的准确数据,以检查是否有您不希望发送的敏感信息。请仔细考虑在您的环境下是否有必要取消下面的选项。如果您以这种方式移除了部分日志,那么我们一般需要更多交流(=更多时间)。 - 若您同意发送下列数据,请进行下一步,并将下一步中显示的调试日志 ID 提交至 GitHub Issues,网址为 + 如果您允许发送数据,请进行下一步,并将以红色字体显示的调试 ID 提交至问题追踪器(issue tracker): https://github.com/retorquere/zotero-better-bibtex/issue better-bibtex_error-report_save = - .label = 保存日志副本 + .label = 保存日志副本以供检查 better-bibtex_error-report_submission-in-progress = 正在提交调试日志,请稍候。 better-bibtex_error-report_submitted = 您的调试日志已被提交。 better-bibtex_export-options_keep-updated = 保持更新 better-bibtex_export-options_reminder = 您确定不使用“{ $translator }”吗? better-bibtex_export-options_worker = 后台导出 -unused_better-bibtex_first-run = - .title = 欢迎使用 Better BibTeX for Zotero - .label = 欢迎使用 Better BibTeX for Zotero -unused_better-bibtex_first-run_citekey-format = 您的引用 -unused_better-bibtex_first-run_citekey-format_bbt = - .label = 使用 BBT 默认引用格式 -unused_better-bibtex_first-run_citekey-format_explanation = BBT 将为您的条目生成引用。引用的生成是高度可配置的,且您可以覆写已生成的引用,但现在您需要选择默认生成格式。您可以随时在首选项中修改相关配置。 -unused_better-bibtex_first-run_citekey-format_explanation_bbt = 将按 BBT 默认格式生成新引用。若您希望使用不同的格式,请在首选项中修改相应配置,保存后选中所有条目,然后在右键菜单中选择“刷新”。 -unused_better-bibtex_first-run_citekey-format_explanation_example = 您的引用将形如 -unused_better-bibtex_first-run_citekey-format_explanation_zotero = 如果您已经有文档在使用由 Zotero 而不是 BBT 生成的引用,请选择该选项。这将忠实地复制 Zotero 生成的引用,包括 Zotero 引用生成器中已知的限制。仅在您需要引用与 Zotero 生成的完全相同时使用此选项。 -unused_better-bibtex_first-run_citekey-format_zotero = - .label = 使用 Zotero 默认引用格式 -unused_better-bibtex_first-run_done = 全部完成! -unused_better-bibtex_first-run_done_explanation = BBT 现已设置完毕。您仍可在 Zotero 首选项的 BBT 选项卡中更改这些设置。 -unused_better-bibtex_first-run_drag-and-drop = 拖放引用 -unused_better-bibtex_first-run_drag-and-drop_enable = - .label = 启用拖放引用 -unused_better-bibtex_first-run_drag-and-drop_explanation = 在 BBT 的帮助下,您可以将条目拖放至您选择的 LaTeX 编辑器来输入引用。您希望现在启用该功能吗? -unused_better-bibtex_first-run_exporting = 使用 BBT 导出 -unused_better-bibtex_first-run_exporting_explanation = 使用 BBT 导出与使用 Zotero 提供的格式导出方法相同,但请确保您选择了正确的格式:在格式列表中,不要选择“BibTeX”,请选择 -unused_better-bibtex_first-run_import-strings_enable = - .label = 导入时展开 @string 期刊名 -unused_better-bibtex_first-run_import-strings_explanation = 某些 bibtex 文件使用 @string 变量表示期刊名。若您启用此项,BBT 将参考一个常见期刊 ID 列表以将这些变量替换为完整期刊名。 -unused_better-bibtex_first-run_import_unabbreviate = 导入时展开 bibtex 字符串和期刊名缩写 -unused_better-bibtex_first-run_import_unabbreviate_enable = - .label = 导入时展开期刊名缩写 -unused_better-bibtex_first-run_import_unabbreviate_explanation = 某些 bibtex 文件在“journal”字段中使用了期刊名缩写。若您启用此项,导入 bibtex 文件时 BBT 会尝试将期刊名缩写展开为全名。 -unused_better-bibtex_first-run_welcome = Better BibTeX for Zotero(通常简称为 BBT)旨在增强 Zotero 对 LaTeX 和 Markdown 用户而言的实用性。BBT 有很多配置选项——如果您感兴趣,可以在首选项中查看——但让我们从几个简单的选择开始。 -better-bibtex_item-pane_citekey = 引用 +better-bibtex_export-options_biblatexAPA = biblatex-apa +better-bibtex_export-options_biblatexChicago = biblatex-chicago +better-bibtex_item-pane_section_sidenav = + .tooltip = { -citation-key } +better-bibtex_item-pane_section_header = + .label = { -citation-key } +better-bibtex_item-pane_info_citation-key = + .label = { -citation-key } better-bibtex_preferences_advanced_export_brace-protection = .label = 使用大括号括起首字母大写的单词以保持大小写格式 better-bibtex_preferences_advanced_export_brace-protection_warning = 若您坚持忽略 BibTeX/BibLaTeX 最佳做法(见 BBT FAQ)和 Zotero 关于标题/句子大小写格式的建议,您可以关闭该选项以禁止自动使用括号对含大写字母单词进行大小写保护。 @@ -267,14 +257,10 @@ better-bibtex_preferences_export_quick-copy = 快速复制 .label = { better-bibtex_preferences_export_quick-copy } better-bibtex_preferences_export_quick-copy_explanation = 快速复制/拖放引用 better-bibtex_preferences_export_quick-copy_format = 快速复制格式 -unused_better-bibtex_preferences_export_quick-copy_atom = Atom - .label = { unused_better-bibtex_preferences_export_quick-copy_atom } better-bibtex_preferences_export_quick-copy_citekeys = 引用 .label = { better-bibtex_preferences_export_quick-copy_citekeys } better-bibtex_preferences_export_quick-copy_eta-template = Eta 模板 .label = { better-bibtex_preferences_export_quick-copy_eta-template } -unused_better-bibtex_preferences_export_quick-copy_gitbook = GitBook - .label = { unused_better-bibtex_preferences_export_quick-copy_gitbook } better-bibtex_preferences_export_quick-copy_latex = LaTeX 引用 .label = { better-bibtex_preferences_export_quick-copy_latex } better-bibtex_preferences_export_quick-copy_latex_command = LaTeX 命令 @@ -344,59 +330,10 @@ better-bibtex_zotero-pane_add-citation-links = 引用图:添加引用链接… better-bibtex_zotero-pane_citekey_pin_inspire-hep = 固定来自 InspireHEP 的引用 better-bibtex_zotero-pane_citekey_refresh = 刷新 BibTeX 引用 better-bibtex_zotero-pane_citekey_unpin = 取消固定 BibTeX 引用 -better-bibtex_zotero-pane_column_citekey = 引用 +better-bibtex_zotero-pane_column_citekey = { -citation-key } better-bibtex_zotero-pane_patch-dates = 从“其他”字段复制添加日期/修改日期 better-bibtex_zotero-pane_sentence-case = BBT 句首大写 better-bibtex_zotero-pane_show_collection-key = 下载 Better BibTeX 导出… better-bibtex_zotero-pane_tag_duplicates = 标记重复的引用 better-bibtex_zotero-pane_tex-studio = 推送条目至 TeXstudio -unused_better-bibtex_auto-export_too-long_body-eabled = 您的 { $translator } 自动导出至 { $path } 用时 { $seconds } 秒。在任何导出过程中,Zotero 用户界面均将无响应。 -unused_better-bibtex_auto-export_too-long_prime-enabled = 为了最大程度地减少高耗时自动导出的影响,缓存预处理已启用。 这将使自动导出减慢,但也将缩减 Zotero 无响应的时间至最短。 -unused_better-bibtex_auto-export_too-long_sorry = 您已经启用了缓存预处理,并将自动导出设置为空闲时运行。进一步的优化要求重构 Zotero 架构(https://u.nu/27e9)。 -unused_better-bibtex_auto-export_too-long_suggest-idle = 为了最大程度地减少高耗时自动导出的影响,您或许希望将自动导出设置为“空闲时”而不是“修改时”。 -unused_better-bibtex_auto-export_too-long_title = 高耗时自动导出 -unused_better-bibtex_db_corrupt = 打开您的数据库时出错 -unused_better-bibtex_db_corrupt_explanation = - 打开数据库时出现错误。这可能意味着您的数据库已损坏。Zotero 报告的错误为:{ $error }。 - - 如要继续,请选择您是否希望: - - 1. 通过立即重新启动 Zotero 使其尝试回滚至以前的备份 - 2. 重置 Better BibTeX 数据库并继续 - 3. 退出 Zotero 并寻求数据库恢复支持 - - 重置将允许您继续,但您的引用将被重新生成,且自动导出需要重新配置。已损坏的数据库将被备份。 -unused_better-bibtex_db_corrupt_quit = 立即退出 Zotero -unused_better-bibtex_db_corrupt_reset = 重置并继续 -unused_better-bibtex_db_corrupt_restore = 重启 Zotero 并尝试恢复 -unused_better-bibtex_error-report_out-of-memory = 你的系统可能因为组装日志文件而耗尽了内存。请将“{ $preference }”设置为低于当前的 { $limit },重新启动,然后再次尝试。 -unused_better-bibtex_key-manager_regenerate = 正在(重新)生成引用 -unused_better-bibtex_key-manager_regenerate_confirm = 正在(重新)生成 { $n } 条引用,继续吗? -unused_better-bibtex_preferences_advanced = 高级 -unused_better-bibtex_preferences_advanced_export_workers = 并行后台导出: -unused_better-bibtex_preferences_advanced_import_unabbreviate = 使用该列表展开期刊名缩写: -unused_better-bibtex_preferences_advanced_import_unabbreviate_off = 无 -unused_better-bibtex_preferences_advanced_tab_citekeys = 引用 -unused_better-bibtex_preferences_advanced_tab_export = 导出 -unused_better-bibtex_preferences_advanced_warning = 这里的设置会影响性能,并且可能会造成导出中断。请小心操作。 -unused_better-bibtex_preferences_auto-export_collection = 分类 -unused_better-bibtex_preferences_auto-export_library = 库 -unused_better-bibtex_preferences_auto-export_warn_long-running = 发出警告,若自动导出耗时超过(秒) -unused_better-bibtex_preferences_citekey_aux-scanner = BibTeX AUX/Markdown 扫描器 -unused_better-bibtex_preferences_citekey_citekeys = 引用 -unused_better-bibtex_startup_db-upgrade = 数据库清理 { $n }/{ $total }… -unused_better-bibtex_startup_db-upgrade_not-editable = { $n } 个条目未被更新,因为它们是只读的 -unused_better-bibtex_startup_db-upgrade_saving = 数据库清理完成,保存中… -unused_better-bibtex_startup_installing_translators_new = Better BibTeX:已安装新的翻译器 -unused_better-bibtex_startup_installing_translators_new_dont-ask-again = 不再询问 -unused_better-bibtex_startup_installing_translators_new_drag-and-drop = 已安装新的 Better BibTeX 翻译器。要在拖放(例如拖放引用)时使用,您需要重启一次以激活它们。 -unused_better-bibtex_startup_loading-keys = 加载引用 -unused_better-bibtex_startup_loading_databases = 加载数据库 -unused_better-bibtex_startup_waiting_for_translators = 正在等待 Zotero 翻译器 -unused_better-bibtex_texstudio_not_found = 在 { $path } 中找不到 TeXstudio -unused_better-bibtex_zotero-pane_server_disabled = 已禁用 HTTP 导出 -unused_preferences_auto-export_status_running = 运行中 -unused_preferences_auto-export_status_scheduled = 已预定 -unused_zotero_better-bibtex_csquotes = 将左/右引号替换为 \\enquote{ "{" }...{ "}" } (需要 csquotes) -xpi = - .description = 让 Zotero 适合我们 LaTeX 用户。 +betterbibtex-item-pane-header = { -citation-key } diff --git a/package-lock.json b/package-lock.json index e8c7bc120c..adbf6baa71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "zotero-better-bibtex", - "version": "6.7.173", + "version": "6.7.192", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "zotero-better-bibtex", - "version": "6.7.173", + "version": "6.7.192", "license": "ISC", "dependencies": { "@artsy/to-title-case": "^1.1.0", @@ -16,7 +16,9 @@ "@types/pako": "^2.0.3", "@types/tar-js": "^0.3.5", "@ungap/structured-clone": "^1.2.0", - "ajv": "^8.12.0", + "ajv": "^8.13.0", + "array.prototype.flatmap": "^1.3.2", + "async-indexed-db": "^1.0.3", "auto-changelog": "^2.4.0", "base64-js": "^1.5.1", "better-ajv-errors": "^1.2.0", @@ -32,7 +34,7 @@ "emittery": "^1.0.3", "fast-safe-stringify": "^2.1.1", "fold-to-ascii": "^5.0.1", - "fracturedjsonjs": "^3.1.1", + "fracturedjsonjs": "^4.0.1", "html-to-md": "^0.8.5", "i": "^0.3.7", "jieba-zh-cn": "^1.0.12", @@ -40,14 +42,16 @@ "js-jieba": "^1.0.12", "jslingua": "^0.13.0", "kuromoji": "^0.1.2", + "lodash.merge": "^4.6.2", "pako": "^2.1.0", "papaparse": "^5.4.1", "parse5": "^7.1.2", "pinyin": "^3.1.0", "punycode2": "^1.0.1", "puqeue": "^1.1.4", - "remeda": "^1.48.0", + "remeda": "^1.61.0", "sprintf-js": "^1.1.3", + "string.prototype.matchall": "^4.0.11", "tar-js": "^0.3.0", "text-title-case": "^1.0.2", "title": "^3.5.3", @@ -58,11 +62,11 @@ "zotero-plugin": "2.0.14" }, "devDependencies": { - "@retorquere/bibtex-parser": "^7.0.16", + "@retorquere/bibtex-parser": "^9.0.10", "@retorquere/zotero-sync": "^1.0.27", "@types/bluebird": "^3.5.42", "@types/lokijs": "^1.5.14", - "@types/node": "^20.11.27", + "@types/node": "^20.12.10", "@xmldom/xmldom": "^0.8.10", "ajv-keywords": "^5.1.0", "archiver": "^7.0.1", @@ -78,11 +82,11 @@ "diff": "^5.2.0", "dom-parser": "^1.1.5", "dotenv": "^16.4.5", - "ejs": "^3.1.9", - "esbuild": "^0.20.1", + "ejs": "^3.1.10", + "esbuild": "^0.21.1", "eslint": "^8.57.0", "estrace": "^5.0.1", - "eta": "^3.2.0", + "eta": "^3.4.0", "fast-json-patch": "^3.1.1", "file-path-filter": "^3.0.2", "find-up": "^7.0.0", @@ -103,6 +107,7 @@ "kuroshiro-analyzer-kuromoji": "^1.1.0", "lodash.template": "^4.5.0", "lokijs": "^1.5.12", + "meriyah": "^4.4.2", "moment": "^2.30.1", "node-eta": "^0.9.0", "npm-run-all": "^4.1.5", @@ -113,7 +118,7 @@ "process": "^0.11.10", "properties-reader": "^2.3.0", "pug": "^3.0.2", - "putout": "^35.7.3", + "putout": "^35.22.2", "recast": "^0.23.6", "regenerate": "^1.4.2", "rimraf": "^5.0.5", @@ -122,9 +127,9 @@ "string-template": "^1.0.0", "ts-node": "^10.9.2", "tslib": "^2.6.2", - "typescript": "^5.4.2", + "typescript": "^5.4.5", "unicode-11.0.0": "^0.7.8", - "unicode2latex": "^5.0.16", + "unicode2latex": "^6.0.4", "uri-templates": "^0.2.0", "util": "^0.12.5", "xml-parser": "^1.2.1", @@ -150,85 +155,21 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/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==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/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==" - }, - "node_modules/@babel/code-frame/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==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "engines": { "node": ">=6.9.0" } @@ -242,13 +183,14 @@ } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -319,9 +261,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -330,9 +272,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", "devOptional": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -342,9 +284,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.9.tgz", - "integrity": "sha512-oeOFTrYWdWXCvXGB5orvMTJ6gCZ9I6FBjR+M38iKNXCsPxr4xT0RTdg5uz1H7QP8pp74IzPtwritEr+JscqHXQ==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.24.4.tgz", + "integrity": "sha512-VOQOexSilscN24VEY810G/PqtpFvx/z6UqDIjIWbDe2368HhDLkYN5TYwaEz/+eRCUkhJ2WaNLLmQAlxzfWj4w==", "dependencies": { "core-js-pure": "^3.30.2", "regenerator-runtime": "^0.14.0" @@ -354,9 +296,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -383,9 +325,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.0.tgz", - "integrity": "sha512-YfEHq0eRH98ffb5/EsrrDspVWAuph6gDggAE74ZtjecsmyyWpW768hOyiONa8zwWGbIWYfa2Xp4tRTrpQQ00CQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz", + "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==", "dev": true, "funding": [ { @@ -401,13 +343,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.3" + "@csstools/css-tokenizer": "^2.2.4" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz", - "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz", + "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==", "dev": true, "funding": [ { @@ -424,9 +366,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.8.tgz", - "integrity": "sha512-DiD3vG5ciNzeuTEoh74S+JMjQDs50R3zlxHnBnfd04YYfA/kh2KiBCGhzqLxlJcNq+7yNQ3stuZZYLX6wK/U2g==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz", + "integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==", "dev": true, "funding": [ { @@ -442,14 +384,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.0", - "@csstools/css-tokenizer": "^2.2.3" + "@csstools/css-parser-algorithms": "^2.6.1", + "@csstools/css-tokenizer": "^2.2.4" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz", - "integrity": "sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz", + "integrity": "sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==", "dev": true, "funding": [ { @@ -468,28 +410,20 @@ "postcss-selector-parser": "^6.0.13" } }, - "node_modules/@emnapi/core": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-0.45.0.tgz", - "integrity": "sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", - "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", + "integrity": "sha512-ZKXyJeFAzcpKM2kk8ipoGIPUqx9BX52omTGnfwjJvxOCaZTM2wtDK7zN0aIgPRbT9XYAlha0HtmZ+XKteuh0Gw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", - "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.1.tgz", + "integrity": "sha512-O7yppwipkXvnEPjzkSXJRk2g4bS8sUx9p9oXHq9MU/U7lxUzZVsnFZMDTmeeX9bfQxrFcvOacl/ENgOh0WP9pA==", "cpu": [ "ppc64" ], @@ -503,9 +437,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", - "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.1.tgz", + "integrity": "sha512-hh3jKWikdnTtHCglDAeVO3Oyh8MaH8xZUaWMiCCvJ9/c3NtPqZq+CACOlGTxhddypXhl+8B45SeceYBfB/e8Ow==", "cpu": [ "arm" ], @@ -519,9 +453,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", - "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.1.tgz", + "integrity": "sha512-jXhccq6es+onw7x8MxoFnm820mz7sGa9J14kLADclmiEUH4fyj+FjR6t0M93RgtlI/awHWhtF0Wgfhqgf9gDZA==", "cpu": [ "arm64" ], @@ -535,9 +469,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", - "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.1.tgz", + "integrity": "sha512-NPObtlBh4jQHE01gJeucqEhdoD/4ya2owSIS8lZYS58aR0x7oZo9lB2lVFxgTANSa5MGCBeoQtr+yA9oKCGPvA==", "cpu": [ "x64" ], @@ -551,9 +485,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", - "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.1.tgz", + "integrity": "sha512-BLT7TDzqsVlQRmJfO/FirzKlzmDpBWwmCUlyggfzUwg1cAxVxeA4O6b1XkMInlxISdfPAOunV9zXjvh5x99Heg==", "cpu": [ "arm64" ], @@ -567,9 +501,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", - "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.1.tgz", + "integrity": "sha512-D3h3wBQmeS/vp93O4B+SWsXB8HvRDwMyhTNhBd8yMbh5wN/2pPWRW5o/hM3EKgk9bdKd9594lMGoTCTiglQGRQ==", "cpu": [ "x64" ], @@ -583,9 +517,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", - "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.1.tgz", + "integrity": "sha512-/uVdqqpNKXIxT6TyS/oSK4XE4xWOqp6fh4B5tgAwozkyWdylcX+W4YF2v6SKsL4wCQ5h1bnaSNjWPXG/2hp8AQ==", "cpu": [ "arm64" ], @@ -599,9 +533,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", - "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.1.tgz", + "integrity": "sha512-paAkKN1n1jJitw+dAoR27TdCzxRl1FOEITx3h201R6NoXUojpMzgMLdkXVgCvaCSCqwYkeGLoe9UVNRDKSvQgw==", "cpu": [ "x64" ], @@ -615,9 +549,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", - "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.1.tgz", + "integrity": "sha512-tRHnxWJnvNnDpNVnsyDhr1DIQZUfCXlHSCDohbXFqmg9W4kKR7g8LmA3kzcwbuxbRMKeit8ladnCabU5f2traA==", "cpu": [ "arm" ], @@ -631,9 +565,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", - "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.1.tgz", + "integrity": "sha512-G65d08YoH00TL7Xg4LaL3gLV21bpoAhQ+r31NUu013YB7KK0fyXIt05VbsJtpqh/6wWxoLJZOvQHYnodRrnbUQ==", "cpu": [ "arm64" ], @@ -647,9 +581,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", - "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.1.tgz", + "integrity": "sha512-tt/54LqNNAqCz++QhxoqB9+XqdsaZOtFD/srEhHYwBd3ZUOepmR1Eeot8bS+Q7BiEvy9vvKbtpHf+r6q8hF5UA==", "cpu": [ "ia32" ], @@ -663,9 +597,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", - "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.1.tgz", + "integrity": "sha512-MhNalK6r0nZD0q8VzUBPwheHzXPr9wronqmZrewLfP7ui9Fv1tdPmg6e7A8lmg0ziQCziSDHxh3cyRt4YMhGnQ==", "cpu": [ "loong64" ], @@ -679,9 +613,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", - "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.1.tgz", + "integrity": "sha512-YCKVY7Zen5rwZV+nZczOhFmHaeIxR4Zn3jcmNH53LbgF6IKRwmrMywqDrg4SiSNApEefkAbPSIzN39FC8VsxPg==", "cpu": [ "mips64el" ], @@ -695,9 +629,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", - "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.1.tgz", + "integrity": "sha512-bw7bcQ+270IOzDV4mcsKAnDtAFqKO0jVv3IgRSd8iM0ac3L8amvCrujRVt1ajBTJcpDaFhIX+lCNRKteoDSLig==", "cpu": [ "ppc64" ], @@ -711,9 +645,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", - "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.1.tgz", + "integrity": "sha512-ARmDRNkcOGOm1AqUBSwRVDfDeD9hGYRfkudP2QdoonBz1ucWVnfBPfy7H4JPI14eYtZruRSczJxyu7SRYDVOcg==", "cpu": [ "riscv64" ], @@ -727,9 +661,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", - "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.1.tgz", + "integrity": "sha512-o73TcUNMuoTZlhwFdsgr8SfQtmMV58sbgq6gQq9G1xUiYnHMTmJbwq65RzMx89l0iya69lR4bxBgtWiiOyDQZA==", "cpu": [ "s390x" ], @@ -743,9 +677,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", - "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.1.tgz", + "integrity": "sha512-da4/1mBJwwgJkbj4fMH7SOXq2zapgTo0LKXX1VUZ0Dxr+e8N0WbS80nSZ5+zf3lvpf8qxrkZdqkOqFfm57gXwA==", "cpu": [ "x64" ], @@ -759,9 +693,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", - "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.1.tgz", + "integrity": "sha512-CPWs0HTFe5woTJN5eKPvgraUoRHrCtzlYIAv9wBC+FAyagBSaf+UdZrjwYyTGnwPGkThV4OCI7XibZOnPvONVw==", "cpu": [ "x64" ], @@ -775,9 +709,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", - "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.1.tgz", + "integrity": "sha512-xxhTm5QtzNLc24R0hEkcH+zCx/o49AsdFZ0Cy5zSd/5tOj4X2g3/2AJB625NoadUuc4A8B3TenLJoYdWYOYCew==", "cpu": [ "x64" ], @@ -791,9 +725,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", - "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.1.tgz", + "integrity": "sha512-CWibXszpWys1pYmbr9UiKAkX6x+Sxw8HWtw1dRESK1dLW5fFJ6rMDVw0o8MbadusvVQx1a8xuOxnHXT941Hp1A==", "cpu": [ "x64" ], @@ -807,9 +741,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", - "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.1.tgz", + "integrity": "sha512-jb5B4k+xkytGbGUS4T+Z89cQJ9DJ4lozGRSV+hhfmCPpfJ3880O31Q1srPCimm+V6UCbnigqD10EgDNgjvjerQ==", "cpu": [ "arm64" ], @@ -823,9 +757,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", - "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.1.tgz", + "integrity": "sha512-PgyFvjJhXqHn1uxPhyN1wZ6dIomKjiLUQh1LjFvjiV1JmnkZ/oMPrfeEAZg5R/1ftz4LZWZr02kefNIQ5SKREQ==", "cpu": [ "ia32" ], @@ -839,9 +773,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", - "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.1.tgz", + "integrity": "sha512-W9NttRZQR5ehAiqHGDnvfDaGmQOm6Fi4vSlce8mjM75x//XKuVAByohlEX6N17yZnVXxQFuh4fDRunP8ca6bfA==", "cpu": [ "x64" ], @@ -960,9 +894,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -1167,21 +1101,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.1.1.tgz", - "integrity": "sha512-ATj9ua659JgrkICjJscaeZdmPr44cb/KFjNWuD0N6pux0SpzaM7+iOuuK11mAnQM2N9q0DT4REu6NkL8ZEhopw==", - "optional": true, - "dependencies": { - "@emnapi/core": "^0.45.0", - "@emnapi/runtime": "^0.45.0", - "@tybys/wasm-util": "^0.8.1" - } - }, "node_modules/@node-rs/jieba": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba/-/jieba-1.9.2.tgz", - "integrity": "sha512-H7/Pv9RBEgzcxVAM4yg6L4G10ZoiqVnNcUCs01yV9XIRwLmShUkdthkTqG8heyx2dAMRua+kofd28JtDWBHMfA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@node-rs/jieba/-/jieba-1.10.0.tgz", + "integrity": "sha512-9oZMCvZVnrAMeWTSnEjJ0OSw7YcV4dJJKSioqq80oUNf3eYLGdEXsgYwCe1AYEMcfUfNVgvjznItJKrsoud0IA==", "optional": true, "engines": { "node": ">= 10" @@ -1191,56 +1114,26 @@ "url": "https://github.com/sponsors/Brooooooklyn" }, "optionalDependencies": { - "@node-rs/jieba-android-arm-eabi": "1.9.2", - "@node-rs/jieba-android-arm64": "1.9.2", - "@node-rs/jieba-darwin-arm64": "1.9.2", - "@node-rs/jieba-darwin-x64": "1.9.2", - "@node-rs/jieba-freebsd-x64": "1.9.2", - "@node-rs/jieba-linux-arm-gnueabihf": "1.9.2", - "@node-rs/jieba-linux-arm64-gnu": "1.9.2", - "@node-rs/jieba-linux-arm64-musl": "1.9.2", - "@node-rs/jieba-linux-x64-gnu": "1.9.2", - "@node-rs/jieba-linux-x64-musl": "1.9.2", - "@node-rs/jieba-wasm32-wasi": "1.9.2", - "@node-rs/jieba-win32-arm64-msvc": "1.9.2", - "@node-rs/jieba-win32-ia32-msvc": "1.9.2", - "@node-rs/jieba-win32-x64-msvc": "1.9.2" - } - }, - "node_modules/@node-rs/jieba-android-arm-eabi": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-android-arm-eabi/-/jieba-android-arm-eabi-1.9.2.tgz", - "integrity": "sha512-FbgUDCvek/KI4mJe5wqbbJi9kDE788YVvsA7DLTE0up+Tb/A7pNIJXq4Pg7zhsgHTVL7EfHHsyd89k+YoSU7Wg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-android-arm64": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-android-arm64/-/jieba-android-arm64-1.9.2.tgz", - "integrity": "sha512-o6cZz5APAUVBCTG9tNK3XEcLunjGo7Oon1N8+1EHOHPlx4Twzhn1msBtQ+VCgboHUOI+QgZzlY/sTXGfh8IuIA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" + "@node-rs/jieba-android-arm-eabi": "1.10.0", + "@node-rs/jieba-android-arm64": "1.10.0", + "@node-rs/jieba-darwin-arm64": "1.10.0", + "@node-rs/jieba-darwin-x64": "1.10.0", + "@node-rs/jieba-freebsd-x64": "1.10.0", + "@node-rs/jieba-linux-arm-gnueabihf": "1.10.0", + "@node-rs/jieba-linux-arm64-gnu": "1.10.0", + "@node-rs/jieba-linux-arm64-musl": "1.10.0", + "@node-rs/jieba-linux-x64-gnu": "1.10.0", + "@node-rs/jieba-linux-x64-musl": "1.10.0", + "@node-rs/jieba-wasm32-wasi": "1.10.0", + "@node-rs/jieba-win32-arm64-msvc": "1.10.0", + "@node-rs/jieba-win32-ia32-msvc": "1.10.0", + "@node-rs/jieba-win32-x64-msvc": "1.10.0" } }, "node_modules/@node-rs/jieba-darwin-arm64": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-darwin-arm64/-/jieba-darwin-arm64-1.9.2.tgz", - "integrity": "sha512-68Pk5phmgn/k5w6nzZWYkDHwJ5wYagprVaSf/WgcPVucw9kAzVMZasGxXo2+Kqn2kMWhD7Dm2NT1TAromQq8Eg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-darwin-arm64/-/jieba-darwin-arm64-1.10.0.tgz", + "integrity": "sha512-IhR5r+XxFcfhVsF93zQ3uCJy8ndotRntXzoW/JCyKqOahUo/ITQRT6vTKHKMyD9xNmjl222OZonBSo2+mlI2fQ==", "cpu": [ "arm64" ], @@ -1252,171 +1145,6 @@ "node": ">= 10" } }, - "node_modules/@node-rs/jieba-darwin-x64": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-darwin-x64/-/jieba-darwin-x64-1.9.2.tgz", - "integrity": "sha512-TXms+q4l7/0a7T+O9t5fQ0m6Qi+4XKgtaRmg089iYbvSp4JfX+XIg+ZLJG+9uc25oWpOgpt+z4bsz9rrHnW/6Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-freebsd-x64": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-freebsd-x64/-/jieba-freebsd-x64-1.9.2.tgz", - "integrity": "sha512-U4p8PSm+1onheBJUKlEyP4VRE42UrH+gXDYMJlWiJDqriAjZLvA+MdF5xiqeppH0dWc/tQu/ECLoj1WXkJKfvg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-linux-arm-gnueabihf": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-arm-gnueabihf/-/jieba-linux-arm-gnueabihf-1.9.2.tgz", - "integrity": "sha512-pelyUy0uFzR7dsnleN8A+4yiNRIRQYFDufbOapP9qkgpEOSvJaD6zYOi3HDm4GdXD5jD0UFNEYMCbi2+Ed2zIg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-linux-arm64-gnu": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-arm64-gnu/-/jieba-linux-arm64-gnu-1.9.2.tgz", - "integrity": "sha512-qgrEyYbzXyqoIcl2iLXMvIv4PC1Z84O5TGCGKwGibblHAOpWIVQzkquDhty/aE9Ju1OSJiNZGtE9ISlJXB/PJA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-linux-arm64-musl": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-arm64-musl/-/jieba-linux-arm64-musl-1.9.2.tgz", - "integrity": "sha512-FMl9EYCJSKCfJb8rrk+9mmi44SwDyNCMLvxMzG/va59D0BRItmm4EP9Zd2QoKnGawV6Bw4BAXIrNhSg9gWedxg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-linux-x64-gnu": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-x64-gnu/-/jieba-linux-x64-gnu-1.9.2.tgz", - "integrity": "sha512-+7wcz5+3HzOH8+PbNwOPuelTo6ik5jgrz8SFbd+JL6sZLap2pjpKWol5nJyNYNv90yRq1A6p8TrhFXCtVZujFA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-linux-x64-musl": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-x64-musl/-/jieba-linux-x64-musl-1.9.2.tgz", - "integrity": "sha512-ims1jOq99zTvcwcUXKuD+WT36KHHVNTq9Fm663YzMMBO+5sqLleQtQkZgbh0BHJI25jvW9IrBCvuS1ZwKZ6kOA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-wasm32-wasi": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-wasm32-wasi/-/jieba-wasm32-wasi-1.9.2.tgz", - "integrity": "sha512-h/lWDJCYlsH3VUNWBCO2exite7VDPgjpOmaQgTQ6aNI5x8rR3NEkyXfmy/yWIev63tdMr9nD3sXw38QQp4ddIA==", - "cpu": [ - "wasm32" - ], - "optional": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^0.1.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@node-rs/jieba-win32-arm64-msvc": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-win32-arm64-msvc/-/jieba-win32-arm64-msvc-1.9.2.tgz", - "integrity": "sha512-a3BkMcvW9sedSA1XlYvGEQSNQQrK4kUMULKTXmqboLjFbwI9v6flpDCiJyw2pXYs+1WT6XjTHvEyVsoGCVMRlQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-win32-ia32-msvc": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-win32-ia32-msvc/-/jieba-win32-ia32-msvc-1.9.2.tgz", - "integrity": "sha512-k8xPkEOMJM3ic4UzvmvKELjPQsIFSo7mw1wx4tNrUN5mu5ANIhk1Fq0zXOcTbpIe7jHPsWaB5jYtBeeJ0h09iA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@node-rs/jieba-win32-x64-msvc": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@node-rs/jieba-win32-x64-msvc/-/jieba-win32-x64-msvc-1.9.2.tgz", - "integrity": "sha512-wIseuWUK+WdikhMFPLvr80D0I4wQJSdFsRIljiUhKwnNQESG20zIxSYE1qy7BNBd7s8fAn1BC6PGeg7S/2KliQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1623,9 +1351,9 @@ } }, "node_modules/@putout/babel": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@putout/babel/-/babel-2.2.0.tgz", - "integrity": "sha512-SSZFFiWrszC6x5J4anX2IrMKSipIL2IwrZHmjXFAThTwrlVmx5H8jcQbKhhkMz9bXMFRtKIlmXp/Zy5VD9tEDg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@putout/babel/-/babel-2.4.0.tgz", + "integrity": "sha512-o2nsxmyOI206J4NdyCRg78pwhBRLGvBp/UktOG3XZyxGGOwKYS/+zl24004ZUPBF0xY+VwxyPrq4WN1kIhv42A==", "dev": true, "engines": { "node": ">=16" @@ -1661,14 +1389,13 @@ } }, "node_modules/@putout/cli-cache/node_modules/flat-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz", - "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.4", - "rimraf": "^5.0.5" + "keyv": "^4.5.4" }, "engines": { "node": ">=16" @@ -1779,13 +1506,13 @@ } }, "node_modules/@putout/compare": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@putout/compare/-/compare-14.1.0.tgz", - "integrity": "sha512-ISxdPgWA2evPAJ1HDo9UrtJKCX1ENMvU3YAANc5IxkjhS7kIHSvJQ0+i+JYl+o4TI9BXBPhNMKTmL6m3Lrev7Q==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@putout/compare/-/compare-14.2.0.tgz", + "integrity": "sha512-Ojp8FedcZ131S7sgI8k61mrROXaW7IRsK+hoslmuFoBFYi1osJjSiOkNurxD82MX0IVbbG51PCNDKLznwnRbFA==", "dev": true, "dependencies": { "@putout/babel": "^2.0.0", - "@putout/engine-parser": "^10.0.0", + "@putout/engine-parser": "^10.3.0", "@putout/operate": "^12.0.0", "debug": "^4.1.1", "jessy": "^3.0.0", @@ -1816,9 +1543,9 @@ } }, "node_modules/@putout/engine-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@putout/engine-parser/-/engine-parser-10.1.0.tgz", - "integrity": "sha512-5zyOJrbdFMwCJHd38nY4KV/Ttb5jVhDZZ+xedZROPLeJIRCY+KiZnt+qK4l0O6EugHnlhyKhe24VJOp48Xs9bA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@putout/engine-parser/-/engine-parser-10.4.0.tgz", + "integrity": "sha512-86kg8rwBFjkl13Dc5pSrNbpuARpsmYKv4Q7igNt0ne5VDNdGPuJZRopRRh4GSO7LfdTIPeZ7kc6obVBi02FeoA==", "dev": true, "dependencies": { "@putout/babel": "^2.0.0", @@ -1872,9 +1599,9 @@ } }, "node_modules/@putout/engine-runner": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@putout/engine-runner/-/engine-runner-21.0.1.tgz", - "integrity": "sha512-nDzDPvocqh/7V2Kr6xb1fVXgAU/umJkdvrzdtfzIZfiuU5uzrg78IYu5/8Xp6T/Boa+Ut/p93ohMgIIhHFK0FQ==", + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@putout/engine-runner/-/engine-runner-21.0.3.tgz", + "integrity": "sha512-AXxcPeM7y185joWeu1yAK7yoZX4EfROOVtMmIxjggpRnMyW4DNT0N08lOdOmJdgxGUwSVv6tE/agBWThNvfgvQ==", "dev": true, "dependencies": { "@putout/babel": "^2.0.0", @@ -1884,7 +1611,7 @@ "@putout/operator-declare": "^9.0.0", "@putout/operator-filesystem": "^4.0.0", "@putout/operator-json": "^2.0.0", - "@putout/plugin-filesystem": "^4.0.1", + "@putout/plugin-filesystem": "^5.0.0", "debug": "^4.1.1", "fullstore": "^3.0.0", "jessy": "^3.0.0", @@ -1944,20 +1671,32 @@ } }, "node_modules/@putout/formatter-dump": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@putout/formatter-dump/-/formatter-dump-4.0.1.tgz", - "integrity": "sha512-jTuobQDleBZzfMIq0Ckrh++g7S6DOjHfK537uqgM/BhARtW1qH/SoLZfONRxxR6Rz4nVvRH6D/nsNnh4/EO00Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@putout/formatter-dump/-/formatter-dump-5.0.0.tgz", + "integrity": "sha512-txlOnphn2pfvbkyYmKbw+zAc+T/Q01958zy0e5jR+AQcWCGyCgjBAeVMh+pUBZ7+Zyl/CAnou0zG87t7hTYA9Q==", "dev": true, "dependencies": { "@putout/formatter-json": "^2.0.0", - "chalk": "^4.0.0", + "chalk": "^5.3.0", "table": "^6.0.1" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "putout": ">=25" + "putout": ">=35" + } + }, + "node_modules/@putout/formatter-dump/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@putout/formatter-frame": { @@ -2000,12 +1739,12 @@ } }, "node_modules/@putout/formatter-memory": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@putout/formatter-memory/-/formatter-memory-4.0.0.tgz", - "integrity": "sha512-ldjb1cWyeMPbrf/NUnaOIioWTKJJBSwqpkY5UNWt8vdlWb+9BJYGnD/uqbsrML0uKlPEZ46mN/Fb2JGhDEEivw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@putout/formatter-memory/-/formatter-memory-4.0.1.tgz", + "integrity": "sha512-S3ctALHkGQRbr6zJ4kPoo7ZNBnfxXZi66XTMc/Md8k5enS0H1ATNKcwDNdA06CB0QrC5P866VX6wPRB1PHr4Mg==", "dev": true, "dependencies": { - "@putout/formatter-dump": "^4.0.0", + "@putout/formatter-dump": "^5.0.0", "chalk": "^5.3.0", "cli-progress": "^3.8.2", "format-io": "^2.0.0", @@ -2047,12 +1786,12 @@ } }, "node_modules/@putout/formatter-progress-bar": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@putout/formatter-progress-bar/-/formatter-progress-bar-4.0.0.tgz", - "integrity": "sha512-M2jsFJyXgef0ZAPc1KULAOFYB5Q0fqL06oGqRvCME2D/cimCyBG6kRUophXWscgqwUf/YQTSWjGEjfbAcNKccw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@putout/formatter-progress-bar/-/formatter-progress-bar-4.0.1.tgz", + "integrity": "sha512-sqnCwTPliKb4ln8Ss8h/KVx539u4qDc7cqCjSzQda2zQO+rfBAMhOS4Km4MUnbglOVw89JM5fbQ25x2tRjFpmQ==", "dev": true, "dependencies": { - "@putout/formatter-dump": "^4.0.0", + "@putout/formatter-dump": "^5.0.0", "chalk": "^5.3.0", "cli-progress": "^3.8.2", "once": "^1.4.0" @@ -2076,35 +1815,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@putout/formatter-progress/node_modules/@putout/formatter-dump": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@putout/formatter-dump/-/formatter-dump-5.0.0.tgz", - "integrity": "sha512-txlOnphn2pfvbkyYmKbw+zAc+T/Q01958zy0e5jR+AQcWCGyCgjBAeVMh+pUBZ7+Zyl/CAnou0zG87t7hTYA9Q==", - "dev": true, - "dependencies": { - "@putout/formatter-json": "^2.0.0", - "chalk": "^5.3.0", - "table": "^6.0.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "putout": ">=35" - } - }, - "node_modules/@putout/formatter-progress/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@putout/formatter-stream": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@putout/formatter-stream/-/formatter-stream-5.0.0.tgz", @@ -2134,12 +1844,12 @@ } }, "node_modules/@putout/formatter-time": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@putout/formatter-time/-/formatter-time-3.0.0.tgz", - "integrity": "sha512-zQ9/P9SzQJIyZ//+CUKGO5tST3iH0vn7wqpgq0DP/On4Ljw7fUrHuhofOE72MZQZOYbQRvYnjF9qpsygB7XOnQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@putout/formatter-time/-/formatter-time-3.0.1.tgz", + "integrity": "sha512-qxxgiinxbf9BCdz7kSKiKZ/lJtfQtU1IpOB3iHCDSVfBn7gAJ2Tk5m6Dwc5wC6Cqe+1aO1pjR/JTp9skCXKf9A==", "dev": true, "dependencies": { - "@putout/formatter-dump": "^4.0.0", + "@putout/formatter-dump": "^5.0.0", "chalk": "^5.3.0", "cli-progress": "^3.8.2", "format-io": "^2.0.0", @@ -2176,9 +1886,9 @@ } }, "node_modules/@putout/operate": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@putout/operate/-/operate-12.3.0.tgz", - "integrity": "sha512-OnKEC9mlMxlP0107i7+ZaA3PJUfjEuCF23lZ/W9qrU0E7IEojoZPTAsD0pG6dzn/crd1oMOB9ozNfcBMtfI9mg==", + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/@putout/operate/-/operate-12.5.0.tgz", + "integrity": "sha512-rw6nuh2S8N+qgxOou2IYL4+8gquVoljbOr7W64qcu+paX9ECH5n0ZWhiFfgu2BeT3DKZatGi5GLkK/9RbUBUlQ==", "dev": true, "dependencies": { "@putout/babel": "^2.0.0" @@ -2240,6 +1950,19 @@ "putout": ">=35" } }, + "node_modules/@putout/operator-ignore": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@putout/operator-ignore/-/operator-ignore-1.0.0.tgz", + "integrity": "sha512-HlM2U+WXHL5yTcwNuviU1l18zVX/FBgWdZXDBFStS/Qb20vjvGiW78c5rkxYyjXldhgepQpqHOEBmO15nR5ZFQ==", + "dev": true, + "dependencies": { + "@putout/babel": "^2.4.0", + "@putout/operate": "^12.5.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@putout/operator-json": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@putout/operator-json/-/operator-json-2.1.0.tgz", @@ -2285,6 +2008,21 @@ "putout": ">=20" } }, + "node_modules/@putout/operator-rename-files": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@putout/operator-rename-files/-/operator-rename-files-1.0.0.tgz", + "integrity": "sha512-arXIWGffDV1YDVGREdcB5a9WVFENQ5R6F0HTOwpTs0s9Uy9YVFvoLQETzczJ9M0PWVfFC0fv+sr/GxhMbAT4LA==", + "dev": true, + "dependencies": { + "@putout/operator-filesystem": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "putout": ">=35" + } + }, "node_modules/@putout/plugin-apply-at": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@putout/plugin-apply-at/-/plugin-apply-at-2.0.0.tgz", @@ -2310,15 +2048,15 @@ } }, "node_modules/@putout/plugin-apply-dot-notation": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-apply-dot-notation/-/plugin-apply-dot-notation-1.1.0.tgz", - "integrity": "sha512-TEKrxwMk4eACIGoO8c3eW0fVnOJJPjdWmwVCGvPwXesvMS4m+SVlyBztslDFW9tBbnmenB81Ok2e8GZuWDkIwQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-apply-dot-notation/-/plugin-apply-dot-notation-2.0.0.tgz", + "integrity": "sha512-Bo7MqwyFzH5FisSGsOP0rWjcebziKoaJkQhQXug27EmdCkEuuhacHgjv4k4j3E9/VuZMcJdsSM92i+vX2kR3Ag==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "putout": ">=32" + "putout": ">=35" } }, "node_modules/@putout/plugin-apply-early-return": { @@ -2357,6 +2095,18 @@ "putout": ">=32" } }, + "node_modules/@putout/plugin-apply-overrides": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-apply-overrides/-/plugin-apply-overrides-1.1.0.tgz", + "integrity": "sha512-cKmfUbGBMwy2+upytcHha138WN/VilRqFVv8dmZAG1vShp2rqyNlyrbhJYhv4FmxARys3zv6EluIyzhADZ+j7Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "putout": ">=35" + } + }, "node_modules/@putout/plugin-apply-starts-with": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@putout/plugin-apply-starts-with/-/plugin-apply-starts-with-1.1.0.tgz", @@ -2562,15 +2312,15 @@ } }, "node_modules/@putout/plugin-convert-template-to-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-convert-template-to-string/-/plugin-convert-template-to-string-1.0.0.tgz", - "integrity": "sha512-Oh/MN4Irc6b3qafOSh3VQ+qw/DVZq2FSKt200XKpJw1HXcUk8RpPxNnG3xTpn2vTe/qK2e4VDtlLgdxUNo0onA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-convert-template-to-string/-/plugin-convert-template-to-string-2.0.0.tgz", + "integrity": "sha512-+qlmSL5Clg51KFI+o9oQfeQxKkKsx9c2JuPjLsuejCn8rp9wFLh9f/7SzoL7PNaBwrG0atcQUlqN0a3W/aXU3A==", "dev": true, "engines": { - "node": ">=8.3.0" + "node": ">=18" }, "peerDependencies": { - "putout": ">=7" + "putout": ">=35" } }, "node_modules/@putout/plugin-convert-to-arrow-function": { @@ -2585,10 +2335,22 @@ "putout": ">=29" } }, + "node_modules/@putout/plugin-coverage": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-coverage/-/plugin-coverage-1.0.0.tgz", + "integrity": "sha512-YX44zFIuSgWWxAVc0/uqKbqJDUBthya1QC/ov6H0GRX1vKVkqhCwcUzJ3i9DDyGLrzfhOGfzFagtZys9wRPx2Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "putout": ">=35" + } + }, "node_modules/@putout/plugin-declare": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-declare/-/plugin-declare-3.0.0.tgz", - "integrity": "sha512-pw0j3fybEVYnNP7tQeOLQe+D2j1yNYPjQruYcb15QfNOjy5aluL3GpvlfmSoYyJfYlcykh8S9/WqEzOCAaXklA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-declare/-/plugin-declare-4.0.0.tgz", + "integrity": "sha512-t5PQ/BsUvSbEBEQQBgQ6Lyg8MVFzDgl7P3ycv6GGaJ4C6dmGOwa2qePxvnQ2Bgqa6ZXPfj9wsCraofXfjIH7tg==", "dev": true, "engines": { "node": ">=18" @@ -2622,9 +2384,9 @@ } }, "node_modules/@putout/plugin-eslint": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-eslint/-/plugin-eslint-8.0.0.tgz", - "integrity": "sha512-efaDVpS+u3bg3+2Q5DSisoUm2of6YHpa3sFAm3i8IaX5HotEj7Rget3By3jnZ7bp644iEFgC10HPKM+xA9MsGQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-eslint/-/plugin-eslint-8.2.0.tgz", + "integrity": "sha512-3h1NTLUvXBJFYM3NASaFKtEzAsiopvWyPYE1PqGMxO0PLmklRfTOwEJZpKwI9IIUwK71BFPDrM66qp4LtzgeWQ==", "dev": true, "engines": { "node": ">=18" @@ -2658,16 +2420,15 @@ } }, "node_modules/@putout/plugin-filesystem": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-filesystem/-/plugin-filesystem-4.2.0.tgz", - "integrity": "sha512-LlX8tc20fLiN/iSWvYi2u3SScwKWUk7NkIH7zMsFgn1EsQQe/2WggrZYb5ZhKUaj2s2uP3U/6m/5uIUC803PDQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-filesystem/-/plugin-filesystem-5.0.0.tgz", + "integrity": "sha512-y8g787NBtcr4MVxdSUpdRidz96fRRHsGk5IWYCiZQB4Zs05vkyVjNgNAyXYJ6J6a0QadOJes64+I5aA/V4XpzQ==", "dev": true, "dependencies": { "@putout/babel": "^2.0.0", "@putout/operate": "^12.0.0", "@putout/operator-filesystem": "^4.0.0", - "@putout/operator-json": "^2.0.0", - "clean-css": "^5.3.3" + "@putout/operator-json": "^2.0.0" }, "engines": { "node": ">=18" @@ -2677,21 +2438,21 @@ } }, "node_modules/@putout/plugin-for-of": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-for-of/-/plugin-for-of-4.1.0.tgz", - "integrity": "sha512-jiFGwi/SIPoIeUJfzYI1nyD/j/0FVfkQ5wsV9AAkTZeO1rMmXtIbK4oOvkR07XXfHe0Z8dcAKh31GvIzTbMbLA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-for-of/-/plugin-for-of-5.0.0.tgz", + "integrity": "sha512-+94fmHi0JrkpGJ36kKqLS7cY6CcalMlqnzKh9FXGzPx5Kw9YQ22Fl6NJSSlKQvR42wSCD4cRv7naOFiE1rJpXw==", "dev": true, "engines": { "node": ">=18" }, "peerDependencies": { - "putout": ">=34" + "putout": ">=35" } }, "node_modules/@putout/plugin-github": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/@putout/plugin-github/-/plugin-github-12.0.2.tgz", - "integrity": "sha512-B63nUwiofKmXmRjbPQ3xczNdItWWFGc3rWOZAenekckT36AHRDhypvK7YCiaWWHKIpr+MSBmDKumqpm4neDlCA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@putout/plugin-github/-/plugin-github-12.1.1.tgz", + "integrity": "sha512-6AkvFK9DuaIxjia1NiXQxUgwSUSPIQxbanY+otTR1VfWaF2nh5hbDZEEPcKkq1QP//9tPlGMVkjxXFvAIC3f0A==", "dev": true, "engines": { "node": ">=18" @@ -2701,15 +2462,15 @@ } }, "node_modules/@putout/plugin-gitignore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-gitignore/-/plugin-gitignore-4.0.0.tgz", - "integrity": "sha512-AXzm21gzlh9Iw2cpIS9VRgMqc9ROOY1D6I9lD6X7Y+ToZ8MIeV2L9JNzqwP7mcz0/zn3oth95vOc95NDHCkuFg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-gitignore/-/plugin-gitignore-6.0.0.tgz", + "integrity": "sha512-uiAfT/shB+gsAAdy1I2UBFt005W//wgadEnXIRvwSBiA77u/VkxMJdPO7st2J6bBLTn/4tIh1WAeSuAEGC63QQ==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "putout": ">=33" + "putout": ">=35" } }, "node_modules/@putout/plugin-logical-expressions": { @@ -2821,9 +2582,9 @@ } }, "node_modules/@putout/plugin-nodejs": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-nodejs/-/plugin-nodejs-11.0.0.tgz", - "integrity": "sha512-IqBwhKeo3buqkO01o/awTDRnYLMHmb5F7y3K+A5JvY3MsZTBvhW+gjnvIcvjj8bKFxiUBBI8PEVOc49GsdfhSg==", + "version": "11.7.1", + "resolved": "https://registry.npmjs.org/@putout/plugin-nodejs/-/plugin-nodejs-11.7.1.tgz", + "integrity": "sha512-vygGe44MKWLtYmSEyDomX8laIVQWML+DA11Xy0jJ+hegZvBJK86sOnijgVcWgd5uorJ9B+/3FOD8rdjiZRyKpw==", "dev": true, "dependencies": { "just-camel-case": "^6.2.0" @@ -2836,15 +2597,15 @@ } }, "node_modules/@putout/plugin-npmignore": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-npmignore/-/plugin-npmignore-3.0.0.tgz", - "integrity": "sha512-r4Frs06vuHu9IFvUEQs1o5IHYL9hmTLAP2Y3Y2TT0GBk9NPICZZzVv+rBXXQ+W/LmFECU9stO4LgJcnxjXVBtQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-npmignore/-/plugin-npmignore-5.0.0.tgz", + "integrity": "sha512-k43d+6dCW9tiueQjyq1+h6GAcXuB79VJzBXE8sME5IPk31HVUlYfhWKHB5IaG1DT9F4+BVuyvZbIXYXdeLK+hg==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "putout": ">=33" + "putout": ">=35" } }, "node_modules/@putout/plugin-package-json": { @@ -2875,9 +2636,9 @@ } }, "node_modules/@putout/plugin-putout": { - "version": "18.7.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-putout/-/plugin-putout-18.7.0.tgz", - "integrity": "sha512-R6uWPmIJhDiMZt9KTdmtIeqjNpyJ1UdIZx6yTma1LlRC1tUjuwDpI9PeWYC8eo0aiELl3/jW6BxCVooX40/N5g==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-putout/-/plugin-putout-19.0.0.tgz", + "integrity": "sha512-Qwl7G7MpujPL24WHw30Xk7HHLu/GwNqqDXX07/khOeMgfld2RSZGDK/xbCPlf37Db7wIWmkHgGoxVEa5Q8gnhw==", "dev": true, "dependencies": { "fullstore": "^3.0.0", @@ -2889,7 +2650,7 @@ "node": ">=18" }, "peerDependencies": { - "putout": ">=34" + "putout": ">=35" } }, "node_modules/@putout/plugin-putout-config": { @@ -3251,15 +3012,15 @@ } }, "node_modules/@putout/plugin-remove-useless-spread": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@putout/plugin-remove-useless-spread/-/plugin-remove-useless-spread-10.0.1.tgz", - "integrity": "sha512-VD83xGpNYQ3eih9Tb2TCH541PQHujwrzEzwZpmJ37SDeE9CK90HLIybowBa3sHojqX2ANF4rByq2V904V5+Qww==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-remove-useless-spread/-/plugin-remove-useless-spread-11.0.0.tgz", + "integrity": "sha512-vMJBaer8ILjap1ao6kTviLi3nRSuRg9Yz7XDqmBQlRDM/cWz2v53aEzdOMqldezdewO4I/Mx0gOVOe9wjUyMlQ==", "dev": true, "engines": { "node": ">=18" }, "peerDependencies": { - "putout": ">=34" + "putout": ">=35" } }, "node_modules/@putout/plugin-remove-useless-template-expressions": { @@ -3335,10 +3096,13 @@ } }, "node_modules/@putout/plugin-sort-imports-by-specifiers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-sort-imports-by-specifiers/-/plugin-sort-imports-by-specifiers-1.0.0.tgz", - "integrity": "sha512-XJ1vZ+942dMfQpZhBEfHl8eNExTXBPPRfkJ6hTtc2wpKHOboyruxcXZZ2akquAmvjpnIzIYwMCUXLL+W8R6wZg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-sort-imports-by-specifiers/-/plugin-sort-imports-by-specifiers-1.1.0.tgz", + "integrity": "sha512-4LUqfe7NIBjmZe7LzjlYBAyFjlgEPUYASFd+fV9oe/f5g3jF0A/uM3BrlqZI+twmNQNpkIlo9orVALVqps+K6Q==", "dev": true, + "dependencies": { + "parse-import-specifiers": "^1.0.3" + }, "engines": { "node": ">=18" }, @@ -3371,15 +3135,15 @@ } }, "node_modules/@putout/plugin-tape": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-tape/-/plugin-tape-13.1.0.tgz", - "integrity": "sha512-5iXZEpO+25xYXzFyoaeobt8DmnmtAl/iqQ3RsoU3L+PhvybZIfr0ulvyZ+7+Alh07IeSntgQn9v+PTyBPCGyjA==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-tape/-/plugin-tape-14.2.0.tgz", + "integrity": "sha512-odoZS3Z+u1vO4jqpKCkOqRnBC/ZjzoEgSLJXSL1KWZAL6pBtnxnQnsNr5QPFdMmnpDyUu0iUQaV8ZpZ2UpJKxQ==", "dev": true, "engines": { "node": ">=18" }, "peerDependencies": { - "putout": ">=34" + "putout": ">=35" } }, "node_modules/@putout/plugin-try-catch": { @@ -3395,27 +3159,27 @@ } }, "node_modules/@putout/plugin-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-types/-/plugin-types-3.0.0.tgz", - "integrity": "sha512-DX/uhechHHBgJkDgk8+lyUjQn6kIktYVVHX2l9pVlqy9BIot4lG5Hy3AAFBm7/LeBrTNafy7z3s/sZmqBHj3GA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-types/-/plugin-types-4.0.0.tgz", + "integrity": "sha512-Uy8Ipq4MjLk3RAVdvU9hQ+80rG/g2PslcOo44jL2a0DI6sX6TmyPgXAQFeLiIk/DVONvVchE6nRivA6qIX1P8A==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "putout": ">=31" + "putout": ">=35" } }, "node_modules/@putout/plugin-typescript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@putout/plugin-typescript/-/plugin-typescript-6.0.0.tgz", - "integrity": "sha512-9sQ/BK2XjndwjP9yJxkkjYk6ynxuQ3rctZVn2FcPoB+XA7/i4bYwmrs8Ve2TyEbm7Fgqhkzes3UB2271VGnJug==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-typescript/-/plugin-typescript-7.3.0.tgz", + "integrity": "sha512-3+RbBpzcc2heOFK3t67FAXBwWU7E3NkWOg2KIweUe7a74WPA3CumUpm/ZFl81zRrczvm1bwzfaQNmVtTQtfT/A==", "dev": true, "engines": { "node": ">=18" }, "peerDependencies": { - "putout": ">=34" + "putout": ">=35" } }, "node_modules/@putout/plugin-webpack": { @@ -3431,9 +3195,9 @@ } }, "node_modules/@putout/printer": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@putout/printer/-/printer-8.6.1.tgz", - "integrity": "sha512-iQyvComqb1mZqoot+Vj2n23yz3a26ZsYhmq2mWZHULOwt1LN7ZJfe6L9APKezDn4YPbbDcLkVFu4qP1U95ZKzg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@putout/printer/-/printer-8.11.0.tgz", + "integrity": "sha512-l3dVdxUJigrYmX0hlodI0lvxrkxJ+G7xei74YUlQoQ8H4QWMA58xiqDAQNsIpLHLagLpgcfJrRNHg3sdhhKhhQ==", "dev": true, "dependencies": { "@putout/babel": "^2.0.0", @@ -3540,9 +3304,9 @@ } }, "node_modules/@putout/processor-yaml": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@putout/processor-yaml/-/processor-yaml-8.0.0.tgz", - "integrity": "sha512-OAHZh/fPq6hQ1XnA4kakxOlKfToh9RMIWGanCb3O/xSMITrrpz5M9aiyiD3KI+4Ls2FV0gTnazyQLvxpjd/YXw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@putout/processor-yaml/-/processor-yaml-8.0.1.tgz", + "integrity": "sha512-D3rkwtQ55o9ZqmdZS/EF3TsUC6uM/Hbb8fsR4iQs4ycEW8+ZWj7mev9476fTzARbrAylOBw6fWw9qwZrlI8lJA==", "dev": true, "dependencies": { "@putout/operator-json": "^2.0.0", @@ -3560,16 +3324,31 @@ "integrity": "sha512-p2BdO7o4BI+pMun3J+dhaOfYan5JsZrw9wjshRjkWY9+p+u+kKSMhNWYnot2yHDR9CSahZ9iT3dcqJ+V72qHMw==", "dev": true }, + "node_modules/@putout/quick-lint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@putout/quick-lint/-/quick-lint-1.1.0.tgz", + "integrity": "sha512-5zKi03SPGSQiEllctAvaFg+EHNrxCCOdU/wvpQEuUD5DAbxZncrbIuvD+reMxg67pO+ZdzL46uHhPgJ3PussPQ==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + }, + "bin": { + "quick-lint": "bin/quick-lint.mjs" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@putout/recast": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@putout/recast/-/recast-1.13.0.tgz", - "integrity": "sha512-UILta9MHeFmlxs19SC/c3ivPZ6SEhoeYDxRXN/B44SgG8RG7wlLHvEy/Np0kT8Q2vbSot7ee788IaWJUolCXZA==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@putout/recast/-/recast-1.14.0.tgz", + "integrity": "sha512-8phu29K7AwvOrNlyI4mrvxcgndk6dQyB48KpmMbPvS08cxTg9KQAfF4gEJlt2ojHSuf3i/VBKgopHxd3HhP9Cg==", "dev": true, "dependencies": { - "assert": "^2.0.0", "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" }, "engines": { @@ -3590,12 +3369,23 @@ } }, "node_modules/@retorquere/bibtex-parser": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/@retorquere/bibtex-parser/-/bibtex-parser-7.0.16.tgz", - "integrity": "sha512-8FyAzZZDQR3uXXwANgDkYaJVwTboES9FcPb2VPZxwuCODc7GPLSVeJpzrY7OC3NFc9BtNU7x8g6XFtUwPfGetg==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@retorquere/bibtex-parser/-/bibtex-parser-9.0.10.tgz", + "integrity": "sha512-LRvvIrovUApqq8yewEq0z+Cy6FyR1y6EuG/Tn9oaa3JEsCUbsF1eWiifV0AiHNKt90Vp6Zlat7AVndGThkMWDw==", "dev": true, "dependencies": { - "unicode2latex": "^5.0.13", + "@unified-latex/unified-latex-util-pegjs": "^1.7.1", + "@unified-latex/unified-latex-util-print-raw": "^1.7.1", + "@unified-latex/unified-latex-util-replace": "^1.7.1", + "@unified-latex/unified-latex-util-visit": "^1.7.1", + "i": "^0.3.7", + "lodash.merge": "^4.6.2", + "moo": "^0.5.2", + "nearley": "^2.20.1", + "npm": "^10.5.2", + "unicode2latex": "^6.0.4", + "wink-eng-lite-web-model": "^1.6.0", + "wink-nlp": "^2.2.0", "xregexp": "^5.1.1" } }, @@ -3721,6 +3511,30 @@ "url": "https://opencollective.com/stdlib" } }, + "node_modules/@stdlib/error-tools-fmtprodmsg": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@stdlib/error-tools-fmtprodmsg/-/error-tools-fmtprodmsg-0.2.1.tgz", + "integrity": "sha512-SaxvGeGfWfda/O3rTNGRGBzAL9gsY/yd8n1hXwzOl/2aUHf8nxcf6Fz6/BQ5PguT0GiBkca19XEhHZZHxX3X/g==", + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stdlib" + } + }, "node_modules/@stdlib/string-base-format-interpolate": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/@stdlib/string-base-format-interpolate/-/string-base-format-interpolate-0.2.1.tgz", @@ -3849,9 +3663,9 @@ } }, "node_modules/@stdlib/utils-define-property": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@stdlib/utils-define-property/-/utils-define-property-0.2.1.tgz", - "integrity": "sha512-1xDIWXS+Gq+dCU/codMhVj8HDNDqv9SEqQYqW8/mECdaMuQ1SrUnbMe2VK5n0J4+he+BPiWnM5mgeswm5n5mNQ==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@stdlib/utils-define-property/-/utils-define-property-0.2.3.tgz", + "integrity": "sha512-+EzWImaQR/6XNFbXIITFi3PLQGTbKVIWSYxJfHXAuTtibAMnhHOWvEzKOumVe/Q4Cdsrc3/PIkpjJzliqAX9AA==", "os": [ "aix", "darwin", @@ -3864,6 +3678,7 @@ "windows" ], "dependencies": { + "@stdlib/error-tools-fmtprodmsg": "^0.2.1", "@stdlib/string-format": "^0.2.1" }, "engines": { @@ -3933,9 +3748,9 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", @@ -3952,15 +3767,6 @@ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" }, - "node_modules/@tybys/wasm-util": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.8.1.tgz", - "integrity": "sha512-GSsTwyBl4pIzsxAY5wroZdyQKyhXk0d8PCRZtrSZ2WEB1cBdrp2EgGBwHOGCZtIIPun/DL3+AykCv+J6fyRH4Q==", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/bluebird": { "version": "3.5.42", "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.42.tgz", @@ -3983,9 +3789,9 @@ "dev": true }, "node_modules/@types/estree-jsx": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.4.tgz", - "integrity": "sha512-5idy3hvI9lAMqsyilBM+N+boaCf1MgoefbDxN6KEO5aK17TOHwFAYT9sjxzeKAiIWRUBgLxmZ9mPcnzZXtTcRQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", "dev": true, "dependencies": { "@types/estree": "*" @@ -4054,9 +3860,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", - "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", + "version": "20.12.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz", + "integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==", "dependencies": { "undici-types": "~5.26.4" } @@ -4073,9 +3879,9 @@ "optional": true }, "node_modules/@types/semver": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", - "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==" + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" }, "node_modules/@types/tar-js": { "version": "0.3.5", @@ -4297,6 +4103,137 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, + "node_modules/@unified-latex/unified-latex-types": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-types/-/unified-latex-types-1.7.1.tgz", + "integrity": "sha512-WpwM9FxJi5gEvxYYWdbtcVutNgh52lHL3c1cU82pxRdJ4ltqdmDzLwZbqnWrQxOmsmVSeyaxAfOYQpv7B016CA==", + "dev": true + }, + "node_modules/@unified-latex/unified-latex-util-match": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-match/-/unified-latex-util-match-1.7.1.tgz", + "integrity": "sha512-UGZyuq3KQ8BPy+2W0Fm47/T2m6IzZ5AqdOPEzvAZrbanmAfUFfIcsXAFz7eZsxACQDebeIiBfyo/Mm5MKCw16Q==", + "dev": true, + "dependencies": { + "@unified-latex/unified-latex-types": "^1.7.1", + "@unified-latex/unified-latex-util-print-raw": "^1.7.1" + } + }, + "node_modules/@unified-latex/unified-latex-util-pegjs": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-pegjs/-/unified-latex-util-pegjs-1.7.1.tgz", + "integrity": "sha512-YTmUDUvcz5IdtuGgwyYXoIAmYB7hL1zwuCDifZnMn1mKSc6QNB1XcnpLm2J3msLp6PlBVM1ouPZ8JJJOzRktjw==", + "dev": true, + "dependencies": { + "@unified-latex/unified-latex-types": "^1.7.1", + "@unified-latex/unified-latex-util-match": "^1.7.1" + } + }, + "node_modules/@unified-latex/unified-latex-util-print-raw": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-print-raw/-/unified-latex-util-print-raw-1.7.1.tgz", + "integrity": "sha512-63Tgz85Q4YUrnqoba5xIE23eeGErVZqaTk/kFCth/1Cc/fMulU6LJtineDcjQta1nA2X08Srog4ugfanZMgevQ==", + "dev": true, + "dependencies": { + "@unified-latex/unified-latex-types": "^1.7.1" + } + }, + "node_modules/@unified-latex/unified-latex-util-replace": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-replace/-/unified-latex-util-replace-1.7.1.tgz", + "integrity": "sha512-4hrQqBMxt1eUQGoaohzNhl9XrCwsXEBeGu9BTb6oEn1GcsNrLDUCToiPvqHX9KipM8eh9grUJjqaTDPDt7FiZg==", + "dev": true, + "dependencies": { + "@unified-latex/unified-latex-types": "^1.7.1", + "@unified-latex/unified-latex-util-match": "^1.7.1", + "@unified-latex/unified-latex-util-split": "^1.7.1", + "@unified-latex/unified-latex-util-trim": "^1.7.1", + "@unified-latex/unified-latex-util-visit": "^1.7.1", + "unified": "^10.1.2" + } + }, + "node_modules/@unified-latex/unified-latex-util-replace/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, + "node_modules/@unified-latex/unified-latex-util-replace/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@unified-latex/unified-latex-util-split": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-split/-/unified-latex-util-split-1.7.1.tgz", + "integrity": "sha512-nWRP3ZZIOO/iKEldw/+9j/7jlTsyU3YFCNJJ9jQ/g53GTEWz72vj5vAM41mXOhzy8G0tkDOLUzu0thYKg0m+Iw==", + "dev": true, + "dependencies": { + "@unified-latex/unified-latex-types": "^1.7.1", + "@unified-latex/unified-latex-util-match": "^1.7.1" + } + }, + "node_modules/@unified-latex/unified-latex-util-trim": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-trim/-/unified-latex-util-trim-1.7.1.tgz", + "integrity": "sha512-qFj8pG8jIGPXXl5gFKQ+J1crdQOm+1Q3qv6aF0rtaN9qZdiTKc3E8zptR0JHWVK1lo4kkt9yMP8f84nnpBsCMw==", + "dev": true, + "dependencies": { + "@unified-latex/unified-latex-types": "^1.7.1", + "@unified-latex/unified-latex-util-match": "^1.7.1", + "@unified-latex/unified-latex-util-visit": "^1.7.1", + "unified": "^10.1.2" + } + }, + "node_modules/@unified-latex/unified-latex-util-trim/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, + "node_modules/@unified-latex/unified-latex-util-trim/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@unified-latex/unified-latex-util-visit": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-visit/-/unified-latex-util-visit-1.7.1.tgz", + "integrity": "sha512-G9DWrGTs3ZDlTxAhtlACIU1Nnuy6W13guIahtNPrmUkO24EPqnw2auwWjGbeTnf03hwoEopibst+ExrswDwt1A==", + "dev": true, + "dependencies": { + "@unified-latex/unified-latex-types": "^1.7.1", + "@unified-latex/unified-latex-util-match": "^1.7.1" + } + }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", @@ -4363,14 +4300,14 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -4502,16 +4439,16 @@ } }, "node_modules/archiver-utils/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -4523,22 +4460,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/archiver-utils/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, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/archiver-utils/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -4550,36 +4475,13 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/archiver/node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "node_modules/archiver-utils/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16 || 14 >=14.17" } }, "node_modules/are-we-there-yet": { @@ -4595,6 +4497,20 @@ "node": ">=10" } }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/arg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/arg/-/arg-1.0.0.tgz", @@ -4648,14 +4564,15 @@ } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -4682,33 +4599,16 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", - "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", - "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", + "es-abstract": "^1.23.2", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" }, "engines": { @@ -4778,6 +4678,23 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, "node_modules/assert": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", @@ -4831,6 +4748,11 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, + "node_modules/async-indexed-db": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-indexed-db/-/async-indexed-db-1.0.3.tgz", + "integrity": "sha512-U22MVKHbMe14UBRNA/QrGxmeutQB1XyWRyjx2ewLtWPhilEWGO/bZ2gFwa8bZrJVgfIMXflwxazm8cuQlS/fsw==" + }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -5016,9 +4938,9 @@ "dev": true }, "node_modules/bare-events": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz", - "integrity": "sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", "optional": true }, "node_modules/base": { @@ -5146,6 +5068,20 @@ "ieee754": "^1.1.13" } }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/blinkdb": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/blinkdb/-/blinkdb-0.14.0.tgz", @@ -5163,6 +5099,12 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, "node_modules/bplist-parser": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", @@ -5225,6 +5167,12 @@ "node": ">=0.10.0" } }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, "node_modules/brotli": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", @@ -5233,6 +5181,131 @@ "base64-js": "^1.1.2" } }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-sign/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 + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "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/browserify-sign/node_modules/readable-stream/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 + }, + "node_modules/browserify-sign/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, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/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 + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserify-zlib/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -5266,6 +5339,18 @@ "node": ">=8.0.0" } }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -5377,6 +5462,16 @@ "node": ">=8" } }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/citeproc": { "version": "2.4.63", "resolved": "https://registry.npmjs.org/citeproc/-/citeproc-2.4.63.tgz", @@ -5422,18 +5517,6 @@ "node": ">= 0.4" } }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -5509,6 +5592,14 @@ "node": ">=4" } }, + "node_modules/clipboardy/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/clipboardy/node_modules/lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -5674,39 +5765,17 @@ "node": ">= 14" } }, - "node_modules/compress-commons/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, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/compress-commons/node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -5722,6 +5791,12 @@ "@babel/types": "^7.6.1" } }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -5739,9 +5814,9 @@ "hasInstallScript": true }, "node_modules/core-js-pure": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.0.tgz", - "integrity": "sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==", + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.1.tgz", + "integrity": "sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -5803,20 +5878,47 @@ "node": ">= 14" } }, - "node_modules/crc32-stream/node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "node_modules/create-require": { @@ -5837,6 +5939,28 @@ "node": ">= 8" } }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, "node_modules/csl-json": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/csl-json/-/csl-json-0.1.0.tgz", @@ -5909,6 +6033,54 @@ "node": ">= 12" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -6050,6 +6222,16 @@ "node": ">=6" } }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "node_modules/detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", @@ -6068,9 +6250,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "optional": true, "engines": { "node": ">=8" @@ -6104,6 +6286,23 @@ "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", "dev": true }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -6156,6 +6355,18 @@ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", "dev": true }, + "node_modules/domain-browser": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz", + "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, "node_modules/dotenv": { "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", @@ -6203,9 +6414,9 @@ "integrity": "sha512-qhABI7FiyElTqKNMv4ETT3T4gRIPal3TxvNfx8Ekwhb2HlrWIiyQJJKVTJkVmsG6H6ape6fnZQbaH69bH31a8Q==" }, "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dependencies": { "jake": "^10.8.5" }, @@ -6216,6 +6427,27 @@ "node": ">=0.10.0" } }, + "node_modules/elliptic": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", + "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, "node_modules/emittery": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.3.tgz", @@ -6276,17 +6508,21 @@ } }, "node_modules/es-abstract": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz", - "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.6", + "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.2", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.4", @@ -6294,15 +6530,16 @@ "globalthis": "^1.0.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.1", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.1", + "hasown": "^2.0.2", "internal-slot": "^1.0.7", "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", @@ -6310,17 +6547,17 @@ "object-keys": "^1.1.1", "object.assign": "^4.1.5", "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.0", + "safe-array-concat": "^1.1.2", "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.1", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -6329,11 +6566,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" - }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -6353,6 +6585,17 @@ "node": ">= 0.4" } }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", @@ -6391,9 +6634,9 @@ } }, "node_modules/esbuild": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", - "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.1.tgz", + "integrity": "sha512-GPqx+FX7mdqulCeQ4TsGZQ3djBJkx5k7zBGtqt9ycVlWNg8llJ4RO9n2vciu8BN2zAEs6lPbPl0asZsAh7oWzg==", "dev": true, "hasInstallScript": true, "bin": { @@ -6403,31 +6646,99 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.1", - "@esbuild/android-arm": "0.20.1", - "@esbuild/android-arm64": "0.20.1", - "@esbuild/android-x64": "0.20.1", - "@esbuild/darwin-arm64": "0.20.1", - "@esbuild/darwin-x64": "0.20.1", - "@esbuild/freebsd-arm64": "0.20.1", - "@esbuild/freebsd-x64": "0.20.1", - "@esbuild/linux-arm": "0.20.1", - "@esbuild/linux-arm64": "0.20.1", - "@esbuild/linux-ia32": "0.20.1", - "@esbuild/linux-loong64": "0.20.1", - "@esbuild/linux-mips64el": "0.20.1", - "@esbuild/linux-ppc64": "0.20.1", - "@esbuild/linux-riscv64": "0.20.1", - "@esbuild/linux-s390x": "0.20.1", - "@esbuild/linux-x64": "0.20.1", - "@esbuild/netbsd-x64": "0.20.1", - "@esbuild/openbsd-x64": "0.20.1", - "@esbuild/sunos-x64": "0.20.1", - "@esbuild/win32-arm64": "0.20.1", - "@esbuild/win32-ia32": "0.20.1", - "@esbuild/win32-x64": "0.20.1" + "@esbuild/aix-ppc64": "0.21.1", + "@esbuild/android-arm": "0.21.1", + "@esbuild/android-arm64": "0.21.1", + "@esbuild/android-x64": "0.21.1", + "@esbuild/darwin-arm64": "0.21.1", + "@esbuild/darwin-x64": "0.21.1", + "@esbuild/freebsd-arm64": "0.21.1", + "@esbuild/freebsd-x64": "0.21.1", + "@esbuild/linux-arm": "0.21.1", + "@esbuild/linux-arm64": "0.21.1", + "@esbuild/linux-ia32": "0.21.1", + "@esbuild/linux-loong64": "0.21.1", + "@esbuild/linux-mips64el": "0.21.1", + "@esbuild/linux-ppc64": "0.21.1", + "@esbuild/linux-riscv64": "0.21.1", + "@esbuild/linux-s390x": "0.21.1", + "@esbuild/linux-x64": "0.21.1", + "@esbuild/netbsd-x64": "0.21.1", + "@esbuild/openbsd-x64": "0.21.1", + "@esbuild/sunos-x64": "0.21.1", + "@esbuild/win32-arm64": "0.21.1", + "@esbuild/win32-ia32": "0.21.1", + "@esbuild/win32-x64": "0.21.1" + } + }, + "node_modules/esbuild-node-builtins": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/esbuild-node-builtins/-/esbuild-node-builtins-0.1.0.tgz", + "integrity": "sha512-/9vvf347QxWeMN0oCVw7T1bfSg23Gv/TEYkUq/LMUudmRteoXs/iJ8uaLuBhCHUopqePqvW6nGE0b5SGOctliw==", + "dev": true, + "dependencies": { + "assert": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^6.0.3", + "console-browserify": "^1.2.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.12.0", + "domain-browser": "^4.19.0", + "events": "^3.3.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "process": "^0.11.10", + "punycode": "^2.1.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^2.0.2", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.3.0", + "timers-browserify": "^2.0.12", + "tslib": "^2.2.0", + "tty-browserify": "^0.0.1", + "url": "^0.11.0", + "util": "^0.12.3", + "vm-browserify": "^1.1.2" + } + }, + "node_modules/esbuild-node-builtins/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 + }, + "node_modules/esbuild-node-builtins/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "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/esbuild-node-builtins/node_modules/readable-stream/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, + "dependencies": { + "safe-buffer": "~5.1.0" } }, + "node_modules/esbuild-node-builtins/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 + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -6520,9 +6831,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dependencies": { "debug": "^3.2.7" }, @@ -6814,6 +7125,19 @@ "node": ">=18" } }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -6823,9 +7147,9 @@ } }, "node_modules/eta": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-3.2.0.tgz", - "integrity": "sha512-Qzc3it7nLn49dbOb9+oHV9rwtt9qN8oShRztqkZ3gXPqQflF0VLin5qhWk0g/2ioibBwT4DU6OIMVft7tg/rVg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-3.4.0.tgz", + "integrity": "sha512-tCsc7WXTjrTx4ZjYLplcqrI3o4mYJ+Z6YspeuGL8tbt/hHoMchwBwtKfwM09svEY86iRapY93vUqQttcNuIO5Q==", "dev": true, "engines": { "node": ">=6.0.0" @@ -6852,6 +7176,16 @@ "node": ">=0.8.x" } }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "node_modules/execa": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/execa/-/execa-0.6.3.tgz", @@ -6879,6 +7213,14 @@ "which": "^1.2.9" } }, + "node_modules/execa/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/execa/node_modules/lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -7475,9 +7817,9 @@ } }, "node_modules/flatted": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.0.tgz", - "integrity": "sha512-noqGuLw158+DuD9UPRKHpJ2hGxpFyDlYYrfM0mWt4XhT4n0lwzTLh70Tkdyy4kyTmyTT9Bv7bWAJqw7cgkEXDg==" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" }, "node_modules/fold-to-ascii": { "version": "5.0.1", @@ -7555,9 +7897,9 @@ } }, "node_modules/fracturedjsonjs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fracturedjsonjs/-/fracturedjsonjs-3.1.1.tgz", - "integrity": "sha512-CjedDVndDnRjqgvrQtJ1wB3JsPTS07WtkJ0bHz47e3+acsmS9GKm0AatxFsLCaYWFXTszz2z7PeARFsBJcbiWA==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/fracturedjsonjs/-/fracturedjsonjs-4.0.1.tgz", + "integrity": "sha512-KMhSx7o45aPVj4w27dwdQyKJkNU8oBqw8UiK/s3VzsQB3+pKQ/3AqG/YOEQblV2BDuYE5dKp0OMf8RDsshrjTA==" }, "node_modules/fragment-cache": { "version": "0.2.1", @@ -7965,534 +8307,553 @@ "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/goldstein": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/goldstein/-/goldstein-5.3.0.tgz", + "integrity": "sha512-nT/F8gTuxmcwa0euuX+CY1dvtlC3FHid9IvQXP4yEciDkulp7ixZVujKTrpD965Tl7jsaIbBoR5wI3Y6Bi3hkg==", + "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3" + "@putout/plugin-declare": "^4.0.0", + "@putout/plugin-logical-expressions": "^5.0.0", + "@putout/plugin-promises": "^14.1.0", + "@putout/plugin-try-catch": "^3.0.0", + "@putout/printer": "^8.0.1", + "acorn": "^8.7.1", + "esbuild": "^0.20.1", + "esbuild-node-builtins": "^0.1.0", + "estree-to-babel": "^9.0.0", + "estree-util-attach-comments": "^3.0.0", + "putout": "^35.0.0", + "try-catch": "^3.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "gs": "bin/gs.js" + }, + "engines": { + "node": ">=18" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "node_modules/goldstein/node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + "node_modules/goldstein/node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "node_modules/goldstein/node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.0" + "node": ">=12" } }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/goldstein/node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/gray-matter/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==", + "node_modules/goldstein/node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/gray-matter/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 - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, + "node_modules/goldstein/node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "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==", + "node_modules/goldstein/node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/goldstein/node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "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==", + "node_modules/goldstein/node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { - "has-symbols": "^1.0.3" - }, + "node_modules/goldstein/node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "node_modules/goldstein/node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "node_modules/goldstein/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/has-values/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "node_modules/goldstein/node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/goldstein/node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "node_modules/goldstein/node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", - "dependencies": { - "function-bind": "^1.1.2" - }, + "node_modules/goldstein/node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "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==", + "node_modules/goldstein/node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], "dev": true, - "bin": { - "he": "bin/he" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "node_modules/goldstein/node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "node_modules/goldstein/node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/html-to-md": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/html-to-md/-/html-to-md-0.8.5.tgz", - "integrity": "sha512-2AtBBJRrZ8WvhB1eDgTjW2TwVy1lat9FJW+XvVX836gsKi6qlhwaVG2jQZjbJAFr81/UW+6ABJSz/QOpeqgmuQ==" - }, - "node_modules/http-link-header": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.1.tgz", - "integrity": "sha512-mW3N/rTYpCn99s1do0zx6nzFZSwLH9HGfUM4ZqLWJ16ylmYaC2v5eYGqrNTQlByx8AzUgGI+V/32gXPugs1+Sw==", + "node_modules/goldstein/node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/goldstein/node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, "optional": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, + "os": [ + "win32" + ], "engines": { - "node": ">= 6" - } - }, - "node_modules/hyperid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/hyperid/-/hyperid-3.2.0.tgz", - "integrity": "sha512-PdTtDo+Rmza9nEhTunaDSUKwbC69TIzLEpZUwiB6f+0oqmY0UPfhyHCPt6K1NQ4WFv5yJBTG5vELztVWP+nEVQ==", - "dependencies": { - "buffer": "^5.2.1", - "uuid": "^8.3.2", - "uuid-parse": "^1.1.0" + "node": ">=12" } }, - "node_modules/hyperid/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } + "node_modules/goldstein/node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/i": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz", - "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==", "engines": { - "node": ">=0.4" + "node": ">=12" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "node_modules/goldstein/node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 4" + "node": ">=12" } }, - "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==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "node_modules/goldstein/node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=6" + "node": ">=12" }, - "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==", - "engines": { - "node": ">=0.8.19" + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" } }, - "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, - "node_modules/ini": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", - "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", "dev": true, + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6.0" } }, - "node_modules/install": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz", - "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==", + "node_modules/gray-matter/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, - "engines": { - "node": ">= 0.10" + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "node_modules/gray-matter/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, "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">= 0.4" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } + "node_modules/gray-matter/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 }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dependencies": { - "hasown": "^2.0.0" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">= 0.4" + "node": ">=0.4.7" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "devOptional": true - }, - "node_modules/is-base64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-0.1.0.tgz", - "integrity": "sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg==" + "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==", + "engines": { + "node": ">=8" + } }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "has-bigints": "^1.0.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -8500,33 +8861,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "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" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "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==", "engines": { "node": ">= 0.4" }, @@ -8534,319 +8872,387 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "hasown": "^2.0.0" + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "node_modules/has-values/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "kind-of": "^3.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/is-expression": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", - "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, "dependencies": { - "acorn": "^7.1.1", - "object-assign": "^4.1.1" - } - }, - "node_modules/is-expression/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.4" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-extendable/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==", + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { - "has-tostringtag": "^1.0.0" + "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-git-repository": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-git-repository/-/is-git-repository-1.1.1.tgz", - "integrity": "sha512-hxLpJytJnIZ5Og5QsxSkzmb8Qx8rGau9bio1JN/QtXcGEFuSsQYau0IiqlsCwftsfVYjF1mOq6uLdmwNSspgpA==", - "dependencies": { - "execa": "^0.6.1", - "path-is-absolute": "^1.0.1" + "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, + "bin": { + "he": "bin/he" } }, - "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==", + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/is-isbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-isbn/-/is-isbn-1.1.0.tgz", - "integrity": "sha512-hGXglWhJ7tYJhdCNXzv1GOZZmTe6I9ZSiUW6e/zkN4BkCfIi84tmv/nZdnWVdH2mM3ftifefljQkZ9JhZ8W/8A==", + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "node_modules/is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "node_modules/html-to-md": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/html-to-md/-/html-to-md-0.8.5.tgz", + "integrity": "sha512-2AtBBJRrZ8WvhB1eDgTjW2TwVy1lat9FJW+XvVX836gsKi6qlhwaVG2jQZjbJAFr81/UW+6ABJSz/QOpeqgmuQ==" + }, + "node_modules/http-link-header": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz", + "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==", + "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "optional": true, "dependencies": { - "kind-of": "^3.0.2" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/hyperid": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/hyperid/-/hyperid-3.2.0.tgz", + "integrity": "sha512-PdTtDo+Rmza9nEhTunaDSUKwbC69TIzLEpZUwiB6f+0oqmY0UPfhyHCPt6K1NQ4WFv5yJBTG5vELztVWP+nEVQ==", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "buffer": "^5.2.1", + "uuid": "^8.3.2", + "uuid-parse": "^1.1.0" } }, - "node_modules/is-number/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/hyperid/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "is-buffer": "^1.1.5" - }, + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/i": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz", + "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==", "engines": { - "node": ">=0.10.0" + "node": ">=0.4" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, + "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==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { - "node": ">=0.10.0" + "node": ">=0.8.19" } }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, + "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==", "dependencies": { - "is-unc-path": "^1.0.0" - }, + "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==" + }, + "node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "node_modules/install": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz", + "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dependencies": { - "call-bind": "^1.0.2" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, "dependencies": { + "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" }, "engines": { @@ -8856,12 +9262,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dependencies": { - "has-symbols": "^1.0.2" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -8870,12 +9277,35 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "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==", + "devOptional": true + }, + "node_modules/is-base64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-0.1.0.tgz", + "integrity": "sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dependencies": { - "which-typed-array": "^1.1.14" + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8884,2509 +9314,5766 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, - "dependencies": { - "unc-path-regex": "^0.1.2" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "call-bind": "^1.0.2" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/its-set": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/its-set/-/its-set-1.2.3.tgz", - "integrity": "sha512-UQc+xLLn+0a8KKRXRj3OS2kERK8G7zcayPpPULqZnPwuJ1hGWEO8+j0T5eycu7DKXYjezw3pyF8oV1fJkJxV5w==", + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dependencies": { - "babel-runtime": "6.x.x", - "lodash.get": "^4.4.2" + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dependencies": { - "@isaacs/cliui": "^8.0.2" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/jessy": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/jessy/-/jessy-3.1.1.tgz", - "integrity": "sha512-Eivuwu3H8qfm4DldbyBci4RJMgoPK3pT3BCzIWNrGPOatkl4jh91PO4LZp7N2zIz8jQlYqs5bPKOkf138jRYqw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/jieba-zh-cn": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/jieba-zh-cn/-/jieba-zh-cn-1.0.12.tgz", - "integrity": "sha512-4tZijG9JHk5WeOn0hWM1Os550VjB7ytVwzvnYRjaZZX+xwBMqmRl/MOTjlBHXiH+Nhu7qqL6UWuuNizYidXhOw==", - "dependencies": { - "base64-js": "^1.5.1", - "brotli": "^1.3.3" - } - }, - "node_modules/jieba-zh-tw": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/jieba-zh-tw/-/jieba-zh-tw-1.0.12.tgz", - "integrity": "sha512-5nvGT8ISNbmdhXeCeN7DA8jfJxzKXalSgS7rtfm9t4abGTMjEJ6vXxbrizqZ+5LecJS5NR6sSt/bPnZI7uvuMg==", - "dependencies": { - "base64-js": "^1.5.1", - "brotli": "^1.3.3" - } - }, - "node_modules/js-jieba": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/js-jieba/-/js-jieba-1.0.12.tgz", - "integrity": "sha512-9icJ52MfCdXTpXG1shLvklGqdd0Sc7v1Xm1gdk4VB+owl/MXWAQltp1fF6TUmYYAcljfE7S0aPOlOV2/AFUrrQ==" - }, - "node_modules/js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==" - }, - "node_modules/js-tokens": { + "node_modules/is-expression": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "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==", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "acorn": "^7.1.1", + "object-assign": "^4.1.1" } }, - "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "node_modules/is-expression/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "bin": { - "jsesc": "bin/jsesc" + "acorn": "bin/acorn" }, "engines": { - "node": ">=6" + "node": ">=0.4.0" } }, - "node_modules/jslingua": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/jslingua/-/jslingua-0.13.0.tgz", - "integrity": "sha512-85aEYgFoiyA4LeysFjLWVVz5LNVCSjPuw93T7fo6qoed46EuFZaxL2mWdEQI3JoQW/pCdVr8l2iJjYIm4G0GXw==" - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "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==", - "devOptional": true - }, - "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==" - }, - "node_modules/json-stable-stringify-without-jsonify": { + "node_modules/is-extendable": { "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==" - }, - "node_modules/json-stringify-pretty-compact": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", - "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", - "dev": true - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "dependencies": { - "minimist": "^1.2.0" + "is-plain-object": "^2.0.4" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/is-extendable/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, "dependencies": { - "universalify": "^2.0.0" + "isobject": "^3.0.1" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { "node": ">=0.10.0" } }, - "node_modules/jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", - "dependencies": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" + "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==", + "engines": { + "node": ">=8" } }, - "node_modules/just-camel-case": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/just-camel-case/-/just-camel-case-6.2.0.tgz", - "integrity": "sha512-ICenRLXwkQYLk3UyvLQZ+uKuwFVJ3JHFYFn7F2782G2Mv2hW8WPePqgdhpnjGaqkYtSVWnyCESZhGXUmY3/bEg==", - "dev": true - }, - "node_modules/just-kebab-case": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-kebab-case/-/just-kebab-case-1.1.0.tgz", - "integrity": "sha512-QkuwuBMQ9BQHMUEkAtIA4INLrkmnnveqlFB1oFi09gbU0wBdZo6tTnyxNWMR84zHxBuwK7GLAwqN8nrvVxOLTA==", - "dev": true - }, - "node_modules/just-snake-case": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/just-snake-case/-/just-snake-case-3.2.0.tgz", - "integrity": "sha512-iugHP9bSE0jOq3BzN0W0rdu/OOkFirPe8FtUw6v9y37UlbUDgJ1x4xiGNfUhI6mV9dc/paaifyiyn+F+mrm8gw==", - "dev": true - }, - "node_modules/keypress": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", - "integrity": "sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA==" + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/is-git-repository": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-git-repository/-/is-git-repository-1.1.1.tgz", + "integrity": "sha512-hxLpJytJnIZ5Og5QsxSkzmb8Qx8rGau9bio1JN/QtXcGEFuSsQYau0IiqlsCwftsfVYjF1mOq6uLdmwNSspgpA==", "dependencies": { - "json-buffer": "3.0.1" + "execa": "^0.6.1", + "path-is-absolute": "^1.0.1" } }, - "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, + "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==", + "dependencies": { + "is-extglob": "^2.1.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/known-css-properties": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", - "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", + "node_modules/is-isbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-isbn/-/is-isbn-1.1.0.tgz", + "integrity": "sha512-hGXglWhJ7tYJhdCNXzv1GOZZmTe6I9ZSiUW6e/zkN4BkCfIi84tmv/nZdnWVdH2mM3ftifefljQkZ9JhZ8W/8A==", "dev": true }, - "node_modules/kuromoji": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/kuromoji/-/kuromoji-0.1.2.tgz", - "integrity": "sha512-V0dUf+C2LpcPEXhoHLMAop/bOht16Dyr+mDiIE39yX3vqau7p80De/koFqpiTcL1zzdZlc3xuHZ8u5gjYRfFaQ==", - "dependencies": { - "async": "^2.0.1", - "doublearray": "0.0.2", - "zlibjs": "^0.3.1" - } - }, - "node_modules/kuromoji/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/kuroshiro": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/kuroshiro/-/kuroshiro-1.2.0.tgz", - "integrity": "sha512-yBGCK9oDOY3LGZ/KXaN9m7ADcAuSczOR2FoMRYwHLUlis3/o/uxdMVROAjENFO0NQJgALhIdWxI/vIBVrMCk9w==", + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "dev": true, "dependencies": { - "@babel/runtime": "^7.14.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" }, "engines": { - "node": ">=6.5.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/kuroshiro-analyzer-kuromoji": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kuroshiro-analyzer-kuromoji/-/kuroshiro-analyzer-kuromoji-1.1.0.tgz", - "integrity": "sha512-BSJFhpsQdPwfFLfjKxfLA9iL+/PC6LCR9vgwgb5Jc7jZwk9ilX8SAV6CwhAQZY611tiuhbB52ONYKDO8hgY1bA==", - "dev": true, - "dependencies": { - "kuromoji": "^0.1.1" + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/last-char": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/last-char/-/last-char-1.3.11.tgz", - "integrity": "sha512-Thgr0MN085/Eo1UulZKOJy+HMoXSbw9CZ2iPqVxr6nFoIAUo6pkVc25wEU0A8cAz22wv2ZEPrlxhnguBmQ0CPA==" - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", "dependencies": { - "readable-stream": "^2.0.5" + "kind-of": "^3.0.2" }, "engines": { - "node": ">= 0.6.3" + "node": ">=0.10.0" } }, - "node_modules/lazystream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "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" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lazystream/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==" + "node_modules/is-number/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "node_modules/lazystream/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==", + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dependencies": { - "safe-buffer": "~5.1.0" + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "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==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "engines": { - "node": ">=6" + "node": ">=8" } }, - "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==", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "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==", - "devOptional": true + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "is-unc-path": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "p-locate": "^6.0.0" + "call-bind": "^1.0.7" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true - }, - "node_modules/lodash.deburr": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" - }, - "node_modules/lodash.invert": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.invert/-/lodash.invert-4.3.0.tgz", - "integrity": "sha512-3CJmOxN5y47rd+g5XjdZNcq2SorJkvlSqBwPomT094p6LZ4p7b5bUoRzYYMjwsTGWTW77z/dFZlCzeVQxBrZVg==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "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==" - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "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, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "node_modules/lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lokijs": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.12.tgz", - "integrity": "sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==", - "dev": true - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dependencies": { - "yallist": "^4.0.0" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "optional": true, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dependencies": { - "semver": "^6.0.0" + "which-typed-array": "^1.1.14" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "optional": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/map-visit": { + "node_modules/is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "dependencies": { - "object-visit": "^1.0.0" + "unc-path-regex": "^0.1.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/match-it": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/match-it/-/match-it-1.0.9.tgz", - "integrity": "sha512-l5qvhHYTFi86C+xBfxt/u0VaxVP6zP+E9RfGsxOK9no3fGNioCnntKvq400iys3tWTJd5JoR42DNpt8tEgrx7A==" - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "engines": { + "node": ">=10" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mdast-comment-marker": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.1.2.tgz", - "integrity": "sha512-HED3ezseRVkBzZ0uK4q6RJMdufr/2p3VfVZstE3H1N9K8bwtspztWo6Xd7rEatuGNoCXaBna8oEqMwUn0Ve1bw==", - "dev": true, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-mdx-expression": "^1.1.0" + "call-bind": "^1.0.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mdast-comment-marker/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, - "dependencies": { - "@types/unist": "^2" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/mdast-comment-marker/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, - "node_modules/mdast-util-from-markdown": { + "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", - "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/its-set": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/its-set/-/its-set-1.2.3.tgz", + "integrity": "sha512-UQc+xLLn+0a8KKRXRj3OS2kERK8G7zcayPpPULqZnPwuJ1hGWEO8+j0T5eycu7DKXYjezw3pyF8oV1fJkJxV5w==", "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "babel-runtime": "6.x.x", + "lodash.get": "^4.4.2" } }, - "node_modules/mdast-util-heading-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.1.tgz", - "integrity": "sha512-0L5rthU4xKDVbw+UQ7D8Y8xOEsX4JXZvemWoEAsL+WAaeSH+TvVVwFnTb3G/OrjyP4VYQULoNWU+PdZfkmNu4A==", - "dev": true, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dependencies": { - "@types/mdast": "^3.0.0" + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/mdast-util-heading-style/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "dev": true, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dependencies": { - "@types/unist": "^2" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/mdast-util-heading-style/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true - }, - "node_modules/mdast-util-mdx-expression": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz", - "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==", + "node_modules/jessy": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/jessy/-/jessy-3.1.1.tgz", + "integrity": "sha512-Eivuwu3H8qfm4DldbyBci4RJMgoPK3pT3BCzIWNrGPOatkl4jh91PO4LZp7N2zIz8jQlYqs5bPKOkf138jRYqw==", "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jieba-zh-cn": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/jieba-zh-cn/-/jieba-zh-cn-1.0.12.tgz", + "integrity": "sha512-4tZijG9JHk5WeOn0hWM1Os550VjB7ytVwzvnYRjaZZX+xwBMqmRl/MOTjlBHXiH+Nhu7qqL6UWuuNizYidXhOw==", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "base64-js": "^1.5.1", + "brotli": "^1.3.3" } }, - "node_modules/mdast-util-mdx-expression/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "dev": true, + "node_modules/jieba-zh-tw": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/jieba-zh-tw/-/jieba-zh-tw-1.0.12.tgz", + "integrity": "sha512-5nvGT8ISNbmdhXeCeN7DA8jfJxzKXalSgS7rtfm9t4abGTMjEJ6vXxbrizqZ+5LecJS5NR6sSt/bPnZI7uvuMg==", "dependencies": { - "@types/unist": "^2" + "base64-js": "^1.5.1", + "brotli": "^1.3.3" } }, - "node_modules/mdast-util-mdx-expression/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "node_modules/js-jieba": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/js-jieba/-/js-jieba-1.0.12.tgz", + "integrity": "sha512-9icJ52MfCdXTpXG1shLvklGqdd0Sc7v1Xm1gdk4VB+owl/MXWAQltp1fF6TUmYYAcljfE7S0aPOlOV2/AFUrrQ==" + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==" + }, + "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==" + }, + "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==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jslingua": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/jslingua/-/jslingua-0.13.0.tgz", + "integrity": "sha512-85aEYgFoiyA4LeysFjLWVVz5LNVCSjPuw93T7fo6qoed46EuFZaxL2mWdEQI3JoQW/pCdVr8l2iJjYIm4G0GXw==" + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "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==", + "devOptional": true + }, + "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==" + }, + "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==" + }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/just-camel-case": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-camel-case/-/just-camel-case-6.2.0.tgz", + "integrity": "sha512-ICenRLXwkQYLk3UyvLQZ+uKuwFVJ3JHFYFn7F2782G2Mv2hW8WPePqgdhpnjGaqkYtSVWnyCESZhGXUmY3/bEg==", + "dev": true + }, + "node_modules/just-kebab-case": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-kebab-case/-/just-kebab-case-1.1.0.tgz", + "integrity": "sha512-QkuwuBMQ9BQHMUEkAtIA4INLrkmnnveqlFB1oFi09gbU0wBdZo6tTnyxNWMR84zHxBuwK7GLAwqN8nrvVxOLTA==", + "dev": true + }, + "node_modules/just-snake-case": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/just-snake-case/-/just-snake-case-3.2.0.tgz", + "integrity": "sha512-iugHP9bSE0jOq3BzN0W0rdu/OOkFirPe8FtUw6v9y37UlbUDgJ1x4xiGNfUhI6mV9dc/paaifyiyn+F+mrm8gw==", + "dev": true + }, + "node_modules/keypress": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", + "integrity": "sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA==" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.30.0.tgz", + "integrity": "sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==", "dev": true }, - "node_modules/mdast-util-mdx-expression/node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "node_modules/kuromoji": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/kuromoji/-/kuromoji-0.1.2.tgz", + "integrity": "sha512-V0dUf+C2LpcPEXhoHLMAop/bOht16Dyr+mDiIE39yX3vqau7p80De/koFqpiTcL1zzdZlc3xuHZ8u5gjYRfFaQ==", + "dependencies": { + "async": "^2.0.1", + "doublearray": "0.0.2", + "zlibjs": "^0.3.1" + } + }, + "node_modules/kuromoji/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/kuroshiro": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/kuroshiro/-/kuroshiro-1.2.0.tgz", + "integrity": "sha512-yBGCK9oDOY3LGZ/KXaN9m7ADcAuSczOR2FoMRYwHLUlis3/o/uxdMVROAjENFO0NQJgALhIdWxI/vIBVrMCk9w==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.14.0" + }, + "engines": { + "node": ">=6.5.0" + } + }, + "node_modules/kuroshiro-analyzer-kuromoji": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kuroshiro-analyzer-kuromoji/-/kuroshiro-analyzer-kuromoji-1.1.0.tgz", + "integrity": "sha512-BSJFhpsQdPwfFLfjKxfLA9iL+/PC6LCR9vgwgb5Jc7jZwk9ilX8SAV6CwhAQZY611tiuhbB52ONYKDO8hgY1bA==", + "dev": true, + "dependencies": { + "kuromoji": "^0.1.1" + } + }, + "node_modules/last-char": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/last-char/-/last-char-1.3.11.tgz", + "integrity": "sha512-Thgr0MN085/Eo1UulZKOJy+HMoXSbw9CZ2iPqVxr6nFoIAUo6pkVc25wEU0A8cAz22wv2ZEPrlxhnguBmQ0CPA==" + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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/lazystream/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==" + }, + "node_modules/lazystream/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "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==", + "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==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "devOptional": true + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true + }, + "node_modules/lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/lodash.invert": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.invert/-/lodash.invert-4.3.0.tgz", + "integrity": "sha512-3CJmOxN5y47rd+g5XjdZNcq2SorJkvlSqBwPomT094p6LZ4p7b5bUoRzYYMjwsTGWTW77z/dFZlCzeVQxBrZVg==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "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==" + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lokijs": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.12.tgz", + "integrity": "sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==", + "dev": true + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "optional": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "optional": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/match-it": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/match-it/-/match-it-1.0.9.tgz", + "integrity": "sha512-l5qvhHYTFi86C+xBfxt/u0VaxVP6zP+E9RfGsxOK9no3fGNioCnntKvq400iys3tWTJd5JoR42DNpt8tEgrx7A==" + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdast-comment-marker": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.1.2.tgz", + "integrity": "sha512-HED3ezseRVkBzZ0uK4q6RJMdufr/2p3VfVZstE3H1N9K8bwtspztWo6Xd7rEatuGNoCXaBna8oEqMwUn0Ve1bw==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-mdx-expression": "^1.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-comment-marker/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/mdast-comment-marker/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", + "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", + "dev": true, + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-heading-style": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.1.tgz", + "integrity": "sha512-0L5rthU4xKDVbw+UQ7D8Y8xOEsX4JXZvemWoEAsL+WAaeSH+TvVVwFnTb3G/OrjyP4VYQULoNWU+PdZfkmNu4A==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-heading-style/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/mdast-util-heading-style/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, + "node_modules/mdast-util-mdx-expression": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz", + "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==", + "dev": true, + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, + "node_modules/mdast-util-mdx-expression/node_modules/mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-combine-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-normalize-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-resolve-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-mdx-expression/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/mdast-util-phrasing/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, + "node_modules/mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, + "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-to-markdown/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dev": true, + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/meriyah": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/meriyah/-/meriyah-4.4.2.tgz", + "integrity": "sha512-fENZIbs4tscI3IGRGtPrCoW4H4oGzVQrQCVCGRv+92kFXKkvxr52ZNR684ICvDC/UBWg9ioGc2X6pMnWOtRYwA==", + "dev": true, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", + "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", + "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "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, + "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, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dev": true, + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "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 + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, + "node_modules/montag": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/montag/-/montag-1.2.1.tgz", + "integrity": "sha512-YFuR6t5KhDlmAnUmVSxGzNcpWqSDqxbd95tvnEnn7X9yFv7g3kDFoRjwyGayVdF/NNoWk7YW7IxUjilnGnoC5Q==", + "dev": true + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==" + }, + "node_modules/nano-memoize": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/nano-memoize/-/nano-memoize-3.0.16.tgz", + "integrity": "sha512-JyK96AKVGAwVeMj3MoMhaSXaUNqgMbCRSQB3trUV8tYZfWEzqUBKdK1qJpfuNXgKeHOx1jv/IEYTM659ly7zUA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, + "node_modules/nearley/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==" + }, + "node_modules/nearley/node_modules/randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/nearley/node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "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==" + }, + "node_modules/nessy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nessy/-/nessy-4.0.0.tgz", + "integrity": "sha512-XH4zOfmpxJhxXIp0Eb4vtJDtxfSjcbjY89/Rt64BNpkiBQ1mNumJWwDGq1kXWluCDQCu5LSrwABi58lWcfsWDQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "optional": true + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-eta": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz", + "integrity": "sha512-mTCTZk29tmX1OGfVkPt63H3c3VqXrI2Kvua98S7iUIB/Gbp0MNw05YtUomxQIxnnKMyRIIuY9izPcFixzhSBrA==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/nodejieba": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/nodejieba/-/nodejieba-2.5.2.tgz", + "integrity": "sha512-ByskJvaBrQ2eV+5M0OeD80S5NKoGaHc9zi3Z/PTKl/95eac2YF8RmWduq9AknLpkQLrLAIcqurrtC6BzjpKwwg==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.4", + "node-addon-api": "^3.0.2" + }, + "engines": { + "node": ">= 10.20.0" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm": { + "version": "10.5.2", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.5.2.tgz", + "integrity": "sha512-cHVG7QEJwJdZyOrK0dKX5uf3R5Fd0E8AcmSES1jLtO52UT1enUKZ96Onw/xwq4CbrTZEnDuu2Vf9kCQh/Sd12w==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "cli-table3", + "columnify", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dev": true, + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^7.2.1", + "@npmcli/config": "^8.0.2", + "@npmcli/fs": "^3.1.0", + "@npmcli/map-workspaces": "^3.0.6", + "@npmcli/package-json": "^5.0.2", + "@npmcli/promise-spawn": "^7.0.1", + "@npmcli/redact": "^1.1.0", + "@npmcli/run-script": "^7.0.4", + "@sigstore/tuf": "^2.3.2", + "abbrev": "^2.0.0", + "archy": "~1.0.0", + "cacache": "^18.0.2", + "chalk": "^5.3.0", + "ci-info": "^4.0.0", + "cli-columns": "^4.0.0", + "cli-table3": "^0.6.4", + "columnify": "^1.6.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.3.12", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.2", + "init-package-json": "^6.0.2", + "is-cidr": "^5.0.5", + "json-parse-even-better-errors": "^3.0.1", + "libnpmaccess": "^8.0.1", + "libnpmdiff": "^6.0.3", + "libnpmexec": "^7.0.4", + "libnpmfund": "^5.0.1", + "libnpmhook": "^10.0.0", + "libnpmorg": "^6.0.1", + "libnpmpack": "^6.0.3", + "libnpmpublish": "^9.0.2", + "libnpmsearch": "^7.0.0", + "libnpmteam": "^6.0.0", + "libnpmversion": "^5.0.1", + "make-fetch-happen": "^13.0.0", + "minimatch": "^9.0.4", + "minipass": "^7.0.4", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^10.1.0", + "nopt": "^7.2.0", + "normalize-package-data": "^6.0.0", + "npm-audit-report": "^5.0.0", + "npm-install-checks": "^6.3.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-profile": "^9.0.0", + "npm-registry-fetch": "^16.2.0", + "npm-user-validate": "^2.0.0", + "npmlog": "^7.0.1", + "p-map": "^4.0.0", + "pacote": "^17.0.6", + "parse-conflict-json": "^3.0.1", + "proc-log": "^3.0.0", + "qrcode-terminal": "^0.12.0", + "read": "^3.0.1", + "semver": "^7.6.0", + "spdx-expression-parse": "^4.0.0", + "ssri": "^10.0.5", + "supports-color": "^9.4.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^5.0.0", + "which": "^4.0.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/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, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/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, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/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 + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/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, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/@colors/colors": { + "version": "1.5.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "2.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "7.4.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.0", + "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.0.0", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^1.1.0", + "@npmcli/run-script": "^7.0.2", + "bin-links": "^4.0.1", + "cacache": "^18.0.0", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.1", + "json-parse-even-better-errors": "^3.0.0", + "json-stringify-nice": "^1.1.4", + "minimatch": "^9.0.4", + "nopt": "^7.0.0", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.1", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.2.0", + "npmlog": "^7.0.1", + "pacote": "^17.0.4", + "parse-conflict-json": "^3.0.0", + "proc-log": "^3.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^10.0.5", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "8.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^3.0.2", + "ci-info": "^4.0.0", + "ini": "^4.1.2", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ansi-styles": "^4.3.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "5.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^18.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^17.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "5.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "7.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "7.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "2.3.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/builtins": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "18.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.0.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.0.5", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.6.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/color-support": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/diff": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/npm/node_modules/gauge": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^4.0.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.3.12", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hasown": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "7.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "node_modules/mdast-util-mdx-expression/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, "dependencies": { - "@types/mdast": "^3.0.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "node_modules/npm/node_modules/ignore-walk": { + "version": "6.0.4", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "node_modules/npm/node_modules/ini": { + "version": "4.1.2", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "node_modules/npm/node_modules/init-package-json": { + "version": "6.0.2", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" + "@npmcli/package-json": "^5.0.0", + "npm-package-arg": "^11.0.0", + "promzard": "^1.0.0", + "read": "^3.0.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "MIT", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "node_modules/npm/node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.0.5", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "cidr-regex": "^4.0.4" + }, + "engines": { + "node": ">=14" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "node_modules/npm/node_modules/is-core-module": { + "version": "2.13.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "MIT", "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", "dependencies": { - "micromark-util-symbol": "^1.0.0" + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-classify-character": { + "node_modules/npm/node_modules/jsbn": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "8.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "node_modules/npm/node_modules/libnpmdiff": { + "version": "6.0.9", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-symbol": "^1.0.0" + "@npmcli/arborist": "^7.2.1", + "@npmcli/disparity-colors": "^3.0.0", + "@npmcli/installed-package-contents": "^2.0.2", + "binary-extensions": "^2.3.0", + "diff": "^5.1.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4", + "tar": "^6.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "node_modules/npm/node_modules/libnpmexec": { + "version": "7.0.10", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^7.0.2", + "ci-info": "^4.0.0", + "npm-package-arg": "^11.0.1", + "npmlog": "^7.0.1", + "pacote": "^17.0.4", + "proc-log": "^3.0.0", + "read": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", + "node_modules/npm/node_modules/libnpmfund": { + "version": "5.0.7", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "node_modules/npm/node_modules/libnpmhook": { + "version": "10.0.2", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^16.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "node_modules/npm/node_modules/libnpmorg": { + "version": "6.0.3", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-symbol": "^1.0.0" + "aproba": "^2.0.0", + "npm-registry-fetch": "^16.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "node_modules/npm/node_modules/libnpmpack": { + "version": "6.0.9", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-types": "^1.0.0" + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^7.0.2", + "npm-package-arg": "^11.0.1", + "pacote": "^17.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "node_modules/npm/node_modules/libnpmpublish": { + "version": "9.0.5", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "ci-info": "^4.0.0", + "normalize-package-data": "^6.0.0", + "npm-package-arg": "^11.0.1", + "npm-registry-fetch": "^16.2.0", + "proc-log": "^3.0.0", + "semver": "^7.3.7", + "sigstore": "^2.2.0", + "ssri": "^10.0.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "node_modules/npm/node_modules/libnpmsearch": { + "version": "7.0.2", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "npm-registry-fetch": "^16.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "node_modules/npm/node_modules/libnpmteam": { + "version": "6.0.2", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^16.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } }, - "node_modules/mdast-util-mdx-expression/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "node_modules/npm/node_modules/libnpmversion": { + "version": "5.0.2", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.3", + "@npmcli/run-script": "^7.0.2", + "json-parse-even-better-errors": "^3.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } }, - "node_modules/mdast-util-mdx-expression/node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "node_modules/npm/node_modules/lru-cache": { + "version": "10.2.0", "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "13.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "@types/unist": "^2.0.0" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.4", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mdast-util-phrasing/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "node_modules/npm/node_modules/minipass": { + "version": "7.0.4", "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "@types/unist": "^2" + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/mdast-util-phrasing/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true + "node_modules/npm/node_modules/minipass-fetch": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } }, - "node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" + "minipass": "^3.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 8" } }, - "node_modules/mdast-util-to-markdown/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "@types/unist": "^2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/mdast-util-to-markdown/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true + "node_modules/npm/node_modules/minipass-json-stream": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } }, - "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "@types/mdast": "^3.0.0" + "yallist": "^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-symbol": "^1.0.0" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/mdast-util-to-markdown/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } }, - "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "yallist": "^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "node_modules/npm/node_modules/node-gyp": { + "version": "10.1.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "node_modules/npm/node_modules/nopt": { + "version": "7.2.0", "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, "engines": { - "node": ">= 0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "node_modules/npm/node_modules/normalize-package-data": { + "version": "6.0.0", "dev": true, - "engines": { - "node": ">=18" + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/npm/node_modules/npm-audit-report": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "node_modules/npm/node_modules/npm-bundled": { + "version": "3.0.0", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", - "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "node_modules/npm/node_modules/npm-install-checks": { + "version": "6.3.0", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "BSD-2-Clause", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "3.0.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "node_modules/npm/node_modules/npm-package-arg": { + "version": "11.0.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "node_modules/npm/node_modules/npm-packlist": { + "version": "8.0.2", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "9.0.0", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "node_modules/npm/node_modules/npm-profile": { + "version": "9.0.0", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "16.2.0", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@npmcli/redact": "^1.1.0", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/micromark-util-chunked": { + "node_modules/npm/node_modules/npm-user-validate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "node_modules/npm/node_modules/npmlog": { + "version": "7.0.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "are-we-there-yet": "^4.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^5.0.0", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "MIT", "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "node_modules/npm/node_modules/pacote": { + "version": "17.0.6", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "3.0.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "ISC", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "node_modules/npm/node_modules/path-scurry": { + "version": "1.10.2", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.0.16", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "inBundle": true, + "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "node_modules/npm/node_modules/proc-log": { + "version": "3.0.0", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^2.0.0" + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/micromark-util-subtokenize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", - "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "ISC" }, - "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/npm/node_modules/promzard": { + "version": "1.0.1", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "read": "^3.0.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "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==", + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", "dev": true, - "engines": { - "node": ">= 0.6" + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" } }, - "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==", + "node_modules/npm/node_modules/read": { + "version": "3.0.1", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "mime-db": "1.52.0" + "mute-stream": "^1.0.0" }, "engines": { - "node": ">= 0.6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "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==", + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "4.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "node_modules/npm/node_modules/read-package-json": { + "version": "7.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "dom-walk": "^0.1.0" + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": "*" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, - "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, + "node_modules/npm/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "minipass": "^3.0.0", "yallist": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "optional": true, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "2.3.0", "dev": true, + "inBundle": true, + "license": "Apache-2.0", "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "@sigstore/sign": "^2.3.0", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.2.0" }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "node_modules/npm/node_modules/socks": { + "version": "2.8.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, "engines": { - "node": "*" + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/montag": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/montag/-/montag-1.2.1.tgz", - "integrity": "sha512-YFuR6t5KhDlmAnUmVSxGzNcpWqSDqxbd95tvnEnn7X9yFv7g3kDFoRjwyGayVdF/NNoWk7YW7IxUjilnGnoC5Q==", - "dev": true + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } }, - "node_modules/moo": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", "dev": true, - "engines": { - "node": ">=4" + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "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==" + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" }, - "node_modules/nano-memoize": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/nano-memoize/-/nano-memoize-3.0.16.tgz", - "integrity": "sha512-JyK96AKVGAwVeMj3MoMhaSXaUNqgMbCRSQB3trUV8tYZfWEzqUBKdK1qJpfuNXgKeHOx1jv/IEYTM659ly7zUA==", - "dev": true + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.17", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/ssri": { + "version": "10.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "node_modules/nearley": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", - "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "bin": { - "nearley-railroad": "bin/nearley-railroad.js", - "nearley-test": "bin/nearley-test.js", - "nearley-unparse": "bin/nearley-unparse.js", - "nearleyc": "bin/nearleyc.js" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "funding": { - "type": "individual", - "url": "https://nearley.js.org/#give-to-nearley" + "engines": { + "node": ">=8" } }, - "node_modules/nearley/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==" - }, - "node_modules/nearley/node_modules/randexp": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=0.12" + "node": ">=8" } }, - "node_modules/nearley/node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=0.12" + "node": ">=8" } }, - "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==" - }, - "node_modules/nessy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nessy/-/nessy-4.0.0.tgz", - "integrity": "sha512-XH4zOfmpxJhxXIp0Eb4vtJDtxfSjcbjY89/Rt64BNpkiBQ1mNumJWwDGq1kXWluCDQCu5LSrwABi58lWcfsWDQ==", + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "optional": true - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, "engines": { - "node": ">=10.5.0" + "node": ">=10" } }, - "node_modules/node-eta": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz", - "integrity": "sha512-mTCTZk29tmX1OGfVkPt63H3c3VqXrI2Kvua98S7iUIB/Gbp0MNw05YtUomxQIxnnKMyRIIuY9izPcFixzhSBrA==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" + "minipass": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "node": ">= 8" } }, - "node_modules/nodejieba": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/nodejieba/-/nodejieba-2.5.2.tgz", - "integrity": "sha512-ByskJvaBrQ2eV+5M0OeD80S5NKoGaHc9zi3Z/PTKl/95eac2YF8RmWduq9AknLpkQLrLAIcqurrtC6BzjpKwwg==", - "hasInstallScript": true, - "optional": true, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.4", - "node-addon-api": "^3.0.2" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 10.20.0" + "node": ">=8" } }, - "node_modules/nopt": { + "node_modules/npm/node_modules/tar/node_modules/minipass": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, + "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/npm/node_modules/tuf-js": { + "version": "2.2.0", "dev": true, - "bin": { - "semver": "bin/semver" + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/normalize-path": { + "node_modules/npm/node_modules/unique-filename": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "node_modules/npm/node_modules/unique-slug": { + "version": "4.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" + "imurmurhash": "^0.1.4" }, "engines": { - "node": ">= 4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/npm-run-all/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==", + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/npm-run-all/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==", + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "5.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "builtins": "^5.0.0" }, "engines": { - "node": ">=4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm-run-all/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==", + "node_modules/npm/node_modules/walk-up-path": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "defaults": "^1.0.3" } }, - "node_modules/npm-run-all/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 - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "node_modules/npm/node_modules/which": { + "version": "4.0.0", "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=4.8" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/npm-run-all/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==", + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", "dev": true, + "inBundle": true, + "license": "ISC", "engines": { - "node": ">=0.8.0" + "node": ">=16" } }, - "node_modules/npm-run-all/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==", + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.5", "dev": true, - "engines": { - "node": ">=4" + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", "dev": true, - "bin": { - "semver": "bin/semver" + "inBundle": 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/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "shebang-regex": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", "dev": true, + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/npm-run-all/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==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", "dev": true, + "inBundle": true, + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" + "ansi-regex": "^6.0.1" }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "node_modules/npm/node_modules/write-file-atomic": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "path-key": "^2.0.0" + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "engines": { - "node": ">=4" - } + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" }, "node_modules/npmlog": { "version": "5.0.1", @@ -11480,13 +15167,13 @@ } }, "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -11533,13 +15220,14 @@ } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -11549,15 +15237,16 @@ } }, "node_modules/object.groupby": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", - "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dependencies": { - "array.prototype.filter": "^1.0.3", - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0" + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.pick": { @@ -11573,13 +15262,13 @@ } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -11650,6 +15339,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -11709,6 +15404,23 @@ "node": ">=6" } }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dev": true, + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/parse-github-url": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", @@ -11721,9 +15433,9 @@ } }, "node_modules/parse-import-specifiers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-import-specifiers/-/parse-import-specifiers-1.0.2.tgz", - "integrity": "sha512-MzJKeFIsoY0cTv/Y41TZipso3aYMz4+jpI1jCPhA9os6McI1cUUhI88WtmzdZ2ghfhuZ+1YF8lzx29eIhMexlA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/parse-import-specifiers/-/parse-import-specifiers-1.0.3.tgz", + "integrity": "sha512-jNtWL2DinOHUGnFEzeAyCJhacxwFkLzPnR3Foy3t2mOTIEgzZ3aaOakPw0PvoLaPZUy64CWYuhVFa/QkEMLJhA==", "dev": true, "engines": { "node": ">=16" @@ -11776,6 +15488,12 @@ "node": ">=0.10.0" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, "node_modules/path-exists": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", @@ -11807,11 +15525,11 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { @@ -11841,6 +15559,22 @@ "node": ">=4" } }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/peggy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/peggy/-/peggy-4.0.2.tgz", @@ -11879,13 +15613,12 @@ "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 + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", - "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "engines": { "node": ">=12" @@ -12009,9 +15742,9 @@ } }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { @@ -12030,7 +15763,7 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -12069,9 +15802,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -12182,6 +15915,26 @@ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, "node_modules/pug": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", @@ -12316,9 +16069,9 @@ "integrity": "sha512-EkCRMV2w15w+9wylcpabacKK9VvTRX3TvhVQJBwIk4ThvllI2M6RlvdEZvJLhxsxy4x8IEDZneQhlGU0Pk5keg==" }, "node_modules/putout": { - "version": "35.7.3", - "resolved": "https://registry.npmjs.org/putout/-/putout-35.7.3.tgz", - "integrity": "sha512-hd74dP9X4xhDaFEI4tnqXDw45x8bTLTUUfesUTDrTrqo1ZX4gZfcin3gdGI6E2YxV/MeB4gX+/XbZxszD37msQ==", + "version": "35.22.2", + "resolved": "https://registry.npmjs.org/putout/-/putout-35.22.2.tgz", + "integrity": "sha512-9WZ9Aa6s+DJTh85aYzT1+qtM2kCJ8EuDMWqVWLQbqCSUyzZRDyey0DDkeeWbLNdmlJrIeUP/HQbXI3yEbzXnOg==", "dev": true, "dependencies": { "@putout/babel": "^2.0.0", @@ -12350,15 +16103,18 @@ "@putout/operator-add-args": "^8.0.0", "@putout/operator-declare": "^9.0.0", "@putout/operator-filesystem": "^4.0.0", + "@putout/operator-ignore": "^1.0.0", "@putout/operator-json": "^2.0.0", "@putout/operator-match-files": "^3.0.0", "@putout/operator-regexp": "^1.0.0", + "@putout/operator-rename-files": "^1.0.0", "@putout/plugin-apply-at": "^2.0.0", "@putout/plugin-apply-destructuring": "^7.0.0", - "@putout/plugin-apply-dot-notation": "^1.0.0", + "@putout/plugin-apply-dot-notation": "^2.0.0", "@putout/plugin-apply-early-return": "^3.0.0", "@putout/plugin-apply-flat-map": "^2.0.0", "@putout/plugin-apply-optional-chaining": "^5.0.0", + "@putout/plugin-apply-overrides": "^1.0.0", "@putout/plugin-apply-starts-with": "^1.0.0", "@putout/plugin-apply-template-literals": "^3.0.0", "@putout/plugin-browserlist": "^2.0.0", @@ -12376,18 +16132,19 @@ "@putout/plugin-convert-object-entries-to-array-entries": "^3.0.0", "@putout/plugin-convert-optional-to-logical": "^3.0.0", "@putout/plugin-convert-quotes-to-backticks": "^3.0.0", - "@putout/plugin-convert-template-to-string": "^1.0.0", + "@putout/plugin-convert-template-to-string": "^2.0.0", "@putout/plugin-convert-to-arrow-function": "^4.0.0", - "@putout/plugin-declare": "^3.0.0", + "@putout/plugin-coverage": "^1.0.0", + "@putout/plugin-declare": "^4.0.0", "@putout/plugin-declare-before-reference": "^3.0.0", "@putout/plugin-declare-imports-first": "^2.0.0", "@putout/plugin-eslint": "^8.0.0", "@putout/plugin-extract-object-properties": "^9.0.0", "@putout/plugin-extract-sequence-expressions": "^3.0.0", - "@putout/plugin-filesystem": "^4.0.0", - "@putout/plugin-for-of": "^4.0.0", + "@putout/plugin-filesystem": "^5.0.0", + "@putout/plugin-for-of": "^5.0.0", "@putout/plugin-github": "^12.0.0", - "@putout/plugin-gitignore": "^4.0.0", + "@putout/plugin-gitignore": "^6.0.0", "@putout/plugin-logical-expressions": "^5.0.0", "@putout/plugin-madrun": "^18.0.0", "@putout/plugin-math": "^2.0.0", @@ -12398,10 +16155,10 @@ "@putout/plugin-montag": "^2.0.0", "@putout/plugin-new": "^3.0.1", "@putout/plugin-nodejs": "^11.0.0", - "@putout/plugin-npmignore": "^3.0.0", + "@putout/plugin-npmignore": "^5.0.0", "@putout/plugin-package-json": "^7.0.0", - "@putout/plugin-promises": "^14.0.0", - "@putout/plugin-putout": "^18.0.0", + "@putout/plugin-promises": "^15.0.0", + "@putout/plugin-putout": "^19.0.0", "@putout/plugin-putout-config": "^5.0.0", "@putout/plugin-regexp": "^8.0.0", "@putout/plugin-remove-console": "^6.0.0", @@ -12431,7 +16188,7 @@ "@putout/plugin-remove-useless-operand": "^2.0.0", "@putout/plugin-remove-useless-replace": "^1.0.1", "@putout/plugin-remove-useless-return": "^6.0.0", - "@putout/plugin-remove-useless-spread": "^10.0.0", + "@putout/plugin-remove-useless-spread": "^11.0.0", "@putout/plugin-remove-useless-template-expressions": "^2.0.0", "@putout/plugin-remove-useless-variables": "^10.0.0", "@putout/plugin-reuse-duplicate-init": "^5.0.0", @@ -12441,10 +16198,10 @@ "@putout/plugin-sort-imports-by-specifiers": "^1.0.0", "@putout/plugin-split-nested-destructuring": "^3.0.0", "@putout/plugin-split-variable-declarations": "^3.0.0", - "@putout/plugin-tape": "^13.0.0", + "@putout/plugin-tape": "^14.0.0", "@putout/plugin-try-catch": "^3.0.0", - "@putout/plugin-types": "^3.0.0", - "@putout/plugin-typescript": "^6.0.0", + "@putout/plugin-types": "^4.0.0", + "@putout/plugin-typescript": "^7.0.0", "@putout/plugin-webpack": "^3.0.0", "@putout/processor-css": "^9.0.0", "@putout/processor-filesystem": "^4.0.0", @@ -12453,6 +16210,7 @@ "@putout/processor-json": "^9.0.0", "@putout/processor-markdown": "^12.0.0", "@putout/processor-yaml": "^8.0.0", + "@putout/quick-lint": "^1.0.0", "@putout/traverse": "^10.0.0", "ajv": "^8.8.2", "chalk": "^5.3.0", @@ -12463,6 +16221,7 @@ "fast-glob": "^3.2.2", "find-up": "^7.0.0", "fullstore": "^3.0.0", + "goldstein": "^5.3.0", "ignore": "^5.0.4", "is-relative": "^1.0.0", "nano-memoize": "^3.0.11", @@ -12480,15 +16239,13 @@ "node": ">=18" } }, - "node_modules/putout/node_modules/@putout/formatter-dump": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@putout/formatter-dump/-/formatter-dump-5.0.0.tgz", - "integrity": "sha512-txlOnphn2pfvbkyYmKbw+zAc+T/Q01958zy0e5jR+AQcWCGyCgjBAeVMh+pUBZ7+Zyl/CAnou0zG87t7hTYA9Q==", + "node_modules/putout/node_modules/@putout/plugin-promises": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@putout/plugin-promises/-/plugin-promises-15.0.0.tgz", + "integrity": "sha512-tFHFUOBRNdQdABwmx3jqWbdHvjoYfoAieJmouv6HhMGBkf3nflwUFPdY248KmrwvEVHCR0p3WaovT5EQOUr9vQ==", "dev": true, "dependencies": { - "@putout/formatter-json": "^2.0.0", - "chalk": "^5.3.0", - "table": "^6.0.1" + "fullstore": "^3.0.0" }, "engines": { "node": ">=18" @@ -12509,6 +16266,30 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/qs": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", + "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -12557,6 +16338,25 @@ "node": ">=4" } }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -12572,16 +16372,19 @@ } }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/readdir-glob": { @@ -13896,9 +17699,9 @@ } }, "node_modules/remeda": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/remeda/-/remeda-1.48.0.tgz", - "integrity": "sha512-u0XLpaNB/qNY1icmUcosmpGKObmGuJtw7UYN+bS+Hiq0b8KRWvq3gkuqy/VCLalGUrlPrMLbt079Gg5WTuTYQw==" + "version": "1.61.0", + "resolved": "https://registry.npmjs.org/remeda/-/remeda-1.61.0.tgz", + "integrity": "sha512-caKfSz9rDeSKBQQnlJnVW3mbVdFgxgGWQKq1XlFokqjf+hQD5gxutLGTTY2A/x24UxVyJe9gH5fAkFI63ULw4A==" }, "node_modules/remove-blank-lines": { "version": "1.4.1", @@ -14061,15 +17864,15 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -14082,9 +17885,9 @@ } }, "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -14095,6 +17898,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -14130,12 +17951,12 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -14263,16 +18084,16 @@ "optional": true }, "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "define-data-property": "^1.1.2", + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -14340,6 +18161,25 @@ "node": ">=0.10.0" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -14428,11 +18268,11 @@ } }, "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" @@ -14641,9 +18481,9 @@ } }, "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==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -14757,6 +18597,56 @@ "node": ">= 0.4" } }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/streamx": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", @@ -14829,15 +18719,41 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.padend": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", - "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -14847,13 +18763,14 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -14863,26 +18780,29 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14948,15 +18868,16 @@ } }, "node_modules/stylelint": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.1.tgz", - "integrity": "sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.3.1.tgz", + "integrity": "sha512-/JOwQnBvxEKOT2RtNgGpBVXnCSMBgKOL2k7w0K52htwCyJls4+cHvc4YZgXlVoAZS9QJd2DgYAiRnja96pTgxw==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.5.0", - "@csstools/css-tokenizer": "^2.2.3", - "@csstools/media-query-list-parser": "^2.1.7", - "@csstools/selector-specificity": "^3.0.1", + "@csstools/css-parser-algorithms": "^2.6.1", + "@csstools/css-tokenizer": "^2.2.4", + "@csstools/media-query-list-parser": "^2.1.9", + "@csstools/selector-specificity": "^3.0.2", + "@dual-bundle/import-meta-resolve": "^4.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", @@ -14970,19 +18891,19 @@ "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.3.0", + "ignore": "^5.3.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.29.0", + "known-css-properties": "^0.30.0", "mathml-tag-names": "^2.1.3", - "meow": "^13.1.0", + "meow": "^13.2.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.33", + "postcss": "^8.4.38", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.0.15", + "postcss-selector-parser": "^6.0.16", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", @@ -15101,14 +19022,13 @@ } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz", - "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.4", - "rimraf": "^5.0.5" + "keyv": "^4.5.4" }, "engines": { "node": ">=16" @@ -15270,9 +19190,9 @@ "dev": true }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -15286,9 +19206,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "optional": true, "dependencies": { "chownr": "^2.0.0", @@ -15336,6 +19256,18 @@ "integrity": "sha512-M1aP6ASmuVD0PSxl5fqjCAGY9WyND3DHZ8RwT5I8o7469XE53Lb5zbPai20Dhj7TProyaapfVj3TaT0P+LoSEA==", "dev": true }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/tiny-invariant": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", @@ -15583,9 +19515,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", - "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "engines": { "node": ">=16" }, @@ -15664,6 +19596,12 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -15700,14 +19638,15 @@ } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -15736,9 +19675,9 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", - "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -15755,9 +19694,9 @@ } }, "node_modules/typescript": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", - "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15814,9 +19753,9 @@ "dev": true }, "node_modules/unicode2latex": { - "version": "5.0.16", - "resolved": "https://registry.npmjs.org/unicode2latex/-/unicode2latex-5.0.16.tgz", - "integrity": "sha512-q2GDtUcl24esEErwwJUxWLC5rPSee12SjLO9KLGw3XIGB2cOn2KQ800FGz4MvQ19A7zsIG7bya9aDBeKcCyp1A==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/unicode2latex/-/unicode2latex-6.0.4.tgz", + "integrity": "sha512-P9xJAuUU3wtOPVq4fxitEZJSNI0W1ttj2Vudf4SX+RI1SM9j1lgAyjMLSumuksoADi0mg9CADz4af25XcwV8FA==", "dev": true }, "node_modules/unicorn-magic": { @@ -16200,6 +20139,16 @@ "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, + "node_modules/url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.2" + } + }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -16210,6 +20159,12 @@ "requires-port": "^1.0.0" } }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -16371,6 +20326,12 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, "node_modules/void-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", @@ -16441,15 +20402,15 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -16467,6 +20428,24 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, + "node_modules/wink-eng-lite-web-model": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/wink-eng-lite-web-model/-/wink-eng-lite-web-model-1.6.0.tgz", + "integrity": "sha512-j4DaUTWnX3OzFFbTnY4v9RUeebghAd4mEWiJx9rZ29jfyW1OdK6H9UPbY8QrFb6sRIV1wJP2FGe2phA6MSEfwQ==", + "dev": true, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "wink-nlp": ">2.1.0" + } + }, + "node_modules/wink-nlp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/wink-nlp/-/wink-nlp-2.2.0.tgz", + "integrity": "sha512-q2BFBauhMS/4f+grni6hL+a0RxHJzmWT7Vj4nbaz7Ihr7ro/fLfrW+qHy16LlP1Oqsv1TacThKNDXmSm6F+PnA==", + "dev": true + }, "node_modules/with": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", @@ -16602,6 +20581,15 @@ "@babel/runtime-corejs3": "^7.16.5" } }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -16616,10 +20604,13 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } @@ -16683,22 +20674,6 @@ "node": ">= 14" } }, - "node_modules/zip-stream/node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/zlibjs": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz", @@ -16768,15 +20743,15 @@ } }, "node_modules/zotero-plugin/node_modules/@octokit/core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.1.0.tgz", - "integrity": "sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", "dependencies": { "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.0.0", - "@octokit/request": "^8.0.2", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" }, @@ -16785,11 +20760,11 @@ } }, "node_modules/zotero-plugin/node_modules/@octokit/endpoint": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz", - "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", "dependencies": { - "@octokit/types": "^12.0.0", + "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -16797,12 +20772,12 @@ } }, "node_modules/zotero-plugin/node_modules/@octokit/graphql": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz", - "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", "dependencies": { - "@octokit/request": "^8.0.1", - "@octokit/types": "^12.0.0", + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -16810,57 +20785,83 @@ } }, "node_modules/zotero-plugin/node_modules/@octokit/openapi-types": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz", - "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==" + "version": "22.0.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz", + "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ==" }, "node_modules/zotero-plugin/node_modules/@octokit/plugin-paginate-rest": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz", - "integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", + "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", "dependencies": { - "@octokit/types": "^12.4.0" + "@octokit/types": "^12.6.0" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": "5" + } + }, + "node_modules/zotero-plugin/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" + }, + "node_modules/zotero-plugin/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" } }, "node_modules/zotero-plugin/node_modules/@octokit/plugin-request-log": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz", - "integrity": "sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", + "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": "5" } }, "node_modules/zotero-plugin/node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.3.0.tgz", - "integrity": "sha512-c/fjpoHispRvBZuRoTVt/uALg7pXa9RQbXWJiDMk6NDkGNomuAZG7YuYYpZoxeoXv+kVRjIDTsO0e1z0pei+PQ==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", + "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", "dependencies": { - "@octokit/types": "^12.4.0" + "@octokit/types": "^12.6.0" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": "5" + } + }, + "node_modules/zotero-plugin/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" + }, + "node_modules/zotero-plugin/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" } }, "node_modules/zotero-plugin/node_modules/@octokit/request": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.2.0.tgz", - "integrity": "sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", "dependencies": { - "@octokit/endpoint": "^9.0.0", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -16868,11 +20869,11 @@ } }, "node_modules/zotero-plugin/node_modules/@octokit/request-error": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz", - "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", "dependencies": { - "@octokit/types": "^12.0.0", + "@octokit/types": "^13.1.0", "deprecation": "^2.0.0", "once": "^1.4.0" }, @@ -16881,25 +20882,25 @@ } }, "node_modules/zotero-plugin/node_modules/@octokit/rest": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.0.2.tgz", - "integrity": "sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==", + "version": "20.1.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.0.tgz", + "integrity": "sha512-STVO3itHQLrp80lvcYB2UIKoeil5Ctsgd2s1AM+du3HqZIR35ZH7WE9HLwUOLXH0myA0y3AGNPo8gZtcgIbw0g==", "dependencies": { - "@octokit/core": "^5.0.0", - "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/core": "^5.0.2", + "@octokit/plugin-paginate-rest": "^9.1.5", "@octokit/plugin-request-log": "^4.0.0", - "@octokit/plugin-rest-endpoint-methods": "^10.0.0" + "@octokit/plugin-rest-endpoint-methods": "^10.2.0" }, "engines": { "node": ">= 18" } }, "node_modules/zotero-plugin/node_modules/@octokit/types": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.5.0.tgz", - "integrity": "sha512-YJEKcb0KkJlIUNU/zjnZwHEP8AoVh/OoIcP/1IyR4UHxExz7fzpe/a8IG4wBtQi7QDEqiomVLX88S6FpxxAJtg==", + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz", + "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==", "dependencies": { - "@octokit/openapi-types": "^19.1.0" + "@octokit/openapi-types": "^22.0.1" } }, "node_modules/zotero-plugin/node_modules/archiver": { @@ -17015,15 +21016,15 @@ } }, "node_modules/zotero-plugin/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -17036,9 +21037,9 @@ } }, "node_modules/zotero-plugin/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -17049,6 +21050,14 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/zotero-plugin/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/zotero-plugin/node_modules/peggy": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/peggy/-/peggy-3.0.2.tgz", @@ -17064,6 +21073,19 @@ "node": ">=14" } }, + "node_modules/zotero-plugin/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/zotero-plugin/node_modules/zip-stream": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-5.0.2.tgz", diff --git a/package.json b/package.json index 529c98ebe8..5a00f88587 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zotero-better-bibtex", - "version": "6.7.173", + "version": "6.7.192", "description": "Make Zotero useful for us LaTeX holdouts.", "homepage": "https://retorque.re/zotero-better-bibtex", "license": "ISC", @@ -53,9 +53,9 @@ "xsubmodules": "git submodule update --init --recursive --remote && git submodule foreach git reset --hard && git submodule foreach git pull origin", "preupgrades": "npm-run-all -p --aggregate-output submodules ncu get-schema", "submodules": "./setup/submodules.py", - "ncu": "ncu -u && npm i", + "ncu": "ncu -u -x '*eslint*' && npm i", "get-schema": "./setup/item.py", - "upgrades": "git add package.json package-lock.json submodules/* site/themes/relearn schema && git commit -m upgrades", + "upgrades": "git add package.json package-lock.json submodules/* site/themes/relearn schema && echo git commit -m upgrades", "db": "npm run zipup-debug-bridge" }, "main": "index.js", @@ -70,7 +70,9 @@ "@types/pako": "^2.0.3", "@types/tar-js": "^0.3.5", "@ungap/structured-clone": "^1.2.0", - "ajv": "^8.12.0", + "ajv": "^8.13.0", + "array.prototype.flatmap": "^1.3.2", + "async-indexed-db": "^1.0.3", "auto-changelog": "^2.4.0", "base64-js": "^1.5.1", "better-ajv-errors": "^1.2.0", @@ -86,7 +88,7 @@ "emittery": "^1.0.3", "fast-safe-stringify": "^2.1.1", "fold-to-ascii": "^5.0.1", - "fracturedjsonjs": "^3.1.1", + "fracturedjsonjs": "^4.0.1", "html-to-md": "^0.8.5", "i": "^0.3.7", "jieba-zh-cn": "^1.0.12", @@ -94,14 +96,16 @@ "js-jieba": "^1.0.12", "jslingua": "^0.13.0", "kuromoji": "^0.1.2", + "lodash.merge": "^4.6.2", "pako": "^2.1.0", "papaparse": "^5.4.1", "parse5": "^7.1.2", "pinyin": "^3.1.0", "punycode2": "^1.0.1", "puqeue": "^1.1.4", - "remeda": "^1.48.0", + "remeda": "^1.61.0", "sprintf-js": "^1.1.3", + "string.prototype.matchall": "^4.0.11", "tar-js": "^0.3.0", "text-title-case": "^1.0.2", "title": "^3.5.3", @@ -112,11 +116,11 @@ "zotero-plugin": "2.0.14" }, "devDependencies": { - "@retorquere/bibtex-parser": "^7.0.16", + "@retorquere/bibtex-parser": "^9.0.10", "@retorquere/zotero-sync": "^1.0.27", "@types/bluebird": "^3.5.42", "@types/lokijs": "^1.5.14", - "@types/node": "^20.11.27", + "@types/node": "^20.12.10", "@xmldom/xmldom": "^0.8.10", "ajv-keywords": "^5.1.0", "archiver": "^7.0.1", @@ -132,11 +136,11 @@ "diff": "^5.2.0", "dom-parser": "^1.1.5", "dotenv": "^16.4.5", - "ejs": "^3.1.9", - "esbuild": "^0.20.1", + "ejs": "^3.1.10", + "esbuild": "^0.21.1", "eslint": "^8.57.0", "estrace": "^5.0.1", - "eta": "^3.2.0", + "eta": "^3.4.0", "fast-json-patch": "^3.1.1", "file-path-filter": "^3.0.2", "find-up": "^7.0.0", @@ -157,6 +161,7 @@ "kuroshiro-analyzer-kuromoji": "^1.1.0", "lodash.template": "^4.5.0", "lokijs": "^1.5.12", + "meriyah": "^4.4.2", "moment": "^2.30.1", "node-eta": "^0.9.0", "npm-run-all": "^4.1.5", @@ -167,7 +172,7 @@ "process": "^0.11.10", "properties-reader": "^2.3.0", "pug": "^3.0.2", - "putout": "^35.7.3", + "putout": "^35.22.2", "recast": "^0.23.6", "regenerate": "^1.4.2", "rimraf": "^5.0.5", @@ -176,9 +181,9 @@ "string-template": "^1.0.0", "ts-node": "^10.9.2", "tslib": "^2.6.2", - "typescript": "^5.4.2", + "typescript": "^5.4.5", "unicode-11.0.0": "^0.7.8", - "unicode2latex": "^5.0.16", + "unicode2latex": "^6.0.4", "uri-templates": "^0.2.0", "util": "^0.12.5", "xml-parser": "^1.2.1", diff --git a/schema/BetterBibTeX JSON.json b/schema/BetterBibTeX JSON.json index 76acdfc956..15bdd9f653 100644 --- a/schema/BetterBibTeX JSON.json +++ b/schema/BetterBibTeX JSON.json @@ -75,6 +75,12 @@ "Year": { "type": "boolean" }, + "biblatexAPA": { + "type": "boolean" + }, + "biblatexChicago": { + "type": "boolean" + }, "exportFileData": { "type": "boolean" }, diff --git a/setup/extract-apis.ts b/setup/extract-apis.ts index 33169cee76..fa42b436d7 100755 --- a/setup/extract-apis.ts +++ b/setup/extract-apis.ts @@ -6,6 +6,7 @@ import * as fs from 'fs' import stringify from 'fast-safe-stringify' import _ from 'lodash' import jsesc from 'jsesc' +import { parseScript } from 'meriyah' import Showdown from 'showdown' const showdown = new Showdown.Converter() @@ -24,7 +25,7 @@ class FormatterAPI { const key = name.toLowerCase() if (this.signature[key]) throw new Error(`duplicate ${kind} ${key}`) - this.signature[name.toLowerCase()] = _.cloneDeep({ + this.signature[key] = _.cloneDeep({ name, parameters: method.parameters.map(p => p.name), defaults: method.parameters.map(p => p.default), @@ -32,6 +33,13 @@ class FormatterAPI { schema: method.schema, }) if (!this.signature[key].rest) delete this.signature[key].rest + const defaults = parseScript(jsesc(this.signature[key].defaults)).body[0] + if (defaults.type === 'ExpressionStatement' && defaults.expression.type === 'ArrayExpression') { + this.signature[key].ast = defaults.expression.elements + } + else { + throw new Error(jsesc(this.signature[key].defaults)) + } const description = method.parameters.find(param => param.doc) let params = method.parameters.map(p => { diff --git a/setup/item.py b/setup/item.py index 568d083bcf..2e4d9f81b9 100755 --- a/setup/item.py +++ b/setup/item.py @@ -760,3 +760,19 @@ def template(tmpl): if 'type' in m and type(m.type) == list: m.type = sorted(m.type) json.dump(schema, f, indent=' ') + +print(' writing zotero citation key formatter') +with open('submodules/translators/BibTeX.js') as fin, open('gen/ZoteroBibTeX.mjs', 'w') as fout: + fout.write(''' + const ZU = Zotero.Utilities; + const Z = { + getHiddenPref(p) { + return Zotero.Prefs.get('translators.' + p); + } + }; + ''') + fout.write('const ZOTERO_TRANSLATOR_INFO = ') + fout.write(fin.read() + .replace('Zotero.Utilities.strToDate', 'Zotero.Date.strToDate') + ) + fout.write('\nexport { buildCiteKey, detectImport }\n') diff --git a/setup/preferences.ts b/setup/preferences.ts index 23b6b6c3bd..5a135a2ac2 100755 --- a/setup/preferences.ts +++ b/setup/preferences.ts @@ -678,7 +678,13 @@ class XHTML extends BaseASTWalker { } if (node.name === 'script') throw new Error("scripts don't work in preference panes") + let style: string switch (node.name) { + case'image': + style = node.attrs.filter(a => a.name === 'height' || a.name === 'width').map(a => `${a.name}:${eval(a.val)}`).join(';') + if (style) node.attrs.push({ name: 'style', val: JSON.stringify(style), mustEscape: false }) + break + case 'textbox': node.attrs = node.attrs.filter(a => a.name !== 'flex') diff --git a/setup/setup.py b/setup/setup.py index 868d3f48a4..a806e4eb34 100755 --- a/setup/setup.py +++ b/setup/setup.py @@ -13,5 +13,5 @@ import ftl2dtd import unicode -with open('submodules/zotero/chrome/content/zotero/osfile.mjs') as src, open('gen/osfile-shim.js', 'w') as tgt: - tgt.write(src.read().replace('export let OS =', 'export let $OS =')) +import shutil +shutil.copyfile('submodules/zotero/chrome/content/zotero/osfile.mjs', 'gen/osfile.js') diff --git a/setup/templates/auto-export-displayOptions.json b/setup/templates/auto-export-displayOptions.json index 97c42a7cb5..32b5bffbd6 100644 --- a/setup/templates/auto-export-displayOptions.json +++ b/setup/templates/auto-export-displayOptions.json @@ -1 +1 @@ -["exportNotes", "useJournalAbbreviation"] +["exportNotes", "useJournalAbbreviation", "biblatexAPA", "biblatexChicago"] diff --git a/site/content/exporting/auto.md b/site/content/exporting/auto.md index 26d3f3a1d1..e715dc0403 100644 --- a/site/content/exporting/auto.md +++ b/site/content/exporting/auto.md @@ -21,7 +21,7 @@ separate exports for separate papers for example if you have set up a collection There are two important concepts in play for auto-export -* register a collection/library for scheduled epxorts, and +* register a collection/library for scheduled exports, and * executing these scheduled exports When you check "keep updated" in the export screen, that means "in the future, schedule this export for re-export when any of its items change, to the file I pick next". If you do not check this checkbox, that merely means you are not registering the export you are doing, rather than undoing an auto-export you scheduled before. diff --git a/site/content/exporting/unicode.md b/site/content/exporting/unicode.md index 6687bb9f32..6212fdbdfa 100644 --- a/site/content/exporting/unicode.md +++ b/site/content/exporting/unicode.md @@ -11,613 +11,571 @@ Some of us though are bound to outlets that still demand BibTeX, and there's gee -### mathrsfs +### wasysym | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| 𝓏 | | \mathscr{z} | 𝓎 | | \mathscr{y} | 𝓍 | | \mathscr{x} | 𝓌 | | \mathscr{w} | -| 𝓋 | | \mathscr{v} | 𝓊 | | \mathscr{u} | 𝓉 | | \mathscr{t} | 𝓈 | | \mathscr{s} | -| 𝓇 | | \mathscr{r} | 𝓆 | | \mathscr{q} | 𝓅 | | \mathscr{p} | 𝓃 | | \mathscr{n} | -| 𝓂 | | \mathscr{m} | 𝓁 | | \mathscr{l} | 𝓀 | | \mathscr{k} | 𝒿 | | \mathscr{j} | -| 𝒾 | | \mathscr{i} | 𝒽 | | \mathscr{h} | 𝒻 | | \mathscr{f} | 𝒹 | | \mathscr{d} | -| 𝒸 | | \mathscr{c} | 𝒷 | | \mathscr{b} | 𝒶 | | \mathscr{a} | 𝒵 | | \mathscr{Z} | -| 𝒴 | | \mathscr{Y} | 𝒳 | | \mathscr{X} | 𝒲 | | \mathscr{W} | 𝒱 | | \mathscr{V} | -| 𝒰 | | \mathscr{U} | 𝒯 | | \mathscr{T} | 𝒮 | | \mathscr{S} | 𝒬 | | \mathscr{Q} | -| 𝒫 | | \mathscr{P} | 𝒪 | | \mathscr{O} | 𝒩 | | \mathscr{N} | 𝒦 | | \mathscr{K} | -| 𝒥 | | \mathscr{J} | 𝒢 | | \mathscr{G} | 𝒟 | | \mathscr{D} | 𝒞 | | \mathscr{C} | -| 𝒜 | | \mathscr{A} | ℴ | | \mathscr{o} | ℳ | | \mathscr{M} | ℱ | | \mathscr{F} | -| ℰ | | \mathscr{E} | ℯ | | \mathscr{e} | ℬ | | \mathscr{B} | ℛ | | \mathscr{R} | -| ℒ | | \mathscr{L} | ℐ | | \mathscr{I} | ℋ | | \mathscr{H} | ℊ | | \mathscr{g} | +| ♓ | \pisces | \pisces | ☽ | \rightmoon | | ☾ | \leftmoon | | | | | ### unicode-math | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| 〰 | | \hzigzag | 〒 | | \postalmark | ⭔ | | \rightpentagon | ⭓ | | \rightpentagonblack | -| ⭒ | | \smwhitestar | ⭑ | | \medblackstar | ⭐ | | \medwhitestar | ⭌ | | \rightarrowbsimilar | -| ⭋ | | \leftarrowbsimilar | ⭊ | | \leftarrowapprox | ⭉ | | \similarleftarrow | ⭈ | | \rightarrowbackapprox | -| ⭇ | | \bsimilarrightarrow | ⭆ | | \RRightarrow | ⭅ | | \LLeftarrow | ⭄ | | \rightarrowsupset | -| ⭃ | | \rightarrowgtr | ⭂ | | \leftarrowbackapprox | ⭁ | | \bsimilarleftarrow | ⭀ | | \equalleftarrow | -| ⬿ | | \leftcurvedarrow | ⬾ | | \leftarrowx | ⬽ | | \nVtwoheadleftarrowtail | ⬼ | | \nvtwoheadleftarrowtail | -| ⬻ | | \twoheadleftarrowtail | ⬺ | | \nVleftarrowtail | ⬹ | | \nvleftarrowtail | ⬸ | | \leftdotarrow | -| ⬷ | | \twoheadleftdbkarrow | ⬶ | | \twoheadmapsfrom | ⬵ | | \nVtwoheadleftarrow | ⬴ | | \nvtwoheadleftarrow | -| ⬳ | | \longleftsquigarrow | ⬲ | | \leftarrowonoplus | ⬱ | | \leftthreearrows | ⬰ | | \circleonleftarrow | -| ⬯ | | \whtvertoval | ⬮ | | \blkvertoval | ⬭ | | \whthorzoval | ⬬ | | \blkhorzoval | -| ⬫ | | \smwhtlozenge | ⬪ | | \smblklozenge | ⬩ | | \smblkdiamond | ⬨ | | \mdwhtlozenge | -| ⬧ | | \mdblklozenge | ⬦ | | \mdwhtdiamond | ⬥ | | \mdblkdiamond | ⬤ | | \lgblkcircle | -| ⬣ | | \hexagonblack | ⬢ | | \varhexagonblack | ⬡ | | \varhexagon | ⬠ | | \pentagon | -| ⬟ | | \pentagonblack | ⬞ | | \vysmwhtsquare | ⬝ | | \vysmblksquare | ⬜ | | \lgwhtsquare | -| ⬛ | | \lgblksquare | ⬚ | | \dottedsquare | ⬙ | | \diamondbotblack | ⬘ | | \diamondtopblack | -| ⬗ | | \diamondrightblack | ⬖ | | \diamondleftblack | ⬕ | | \squarellblack | ⬔ | | \squareurblack | -| ⬓ | | \squarebotblack | ⬒ | | \squaretopblack | ⫿ | | \bigtalloblong | ⫾ | | \talloblong | -| ⫼ | | \biginterleave | ⫻ | | \trslash | ⫺ | | \geqqslant | ⫹ | | \leqqslant | -| ⫸ | | \gggnest | ⫷ | | \lllnest | ⫶ | | \threedotcolon | ⫵ | | \nhVvert | -| ⫴ | | \interleave | ⫳ | | \parsim | ⫲ | | \nhpar | ⫱ | | \topcir | -| ⫰ | | \midcir | ⫯ | | \cirmid | ⫮ | | \revnmid | ⫭ | | \bNot | -| ⫬ | | \Not | ⫫ | | \Vbar | ⫩ | | \vBarv | ⫨ | | \vBar | -| ⫧ | | \Barv | ⫦ | | \varVdash | ⫥ | | \DashV | ⫤ | | \Dashv | -| ⫣ | | \dashV | ⫢ | | \vDdash | ⫡ | | \perps | ⫠ | | \shortuptack | -| ⫟ | | \shortdowntack | ⫞ | | \shortlefttack | ⫝ | | \forksnot | ⫝̸ | | \forks | -| ⫛ | | \mlcp | ⫚ | | \topfork | ⫙ | | \forkv | ⫘ | | \supdsub | -| ⫗ | | \suphsub | ⫖ | | \supsup | ⫕ | | \subsub | ⫔ | | \supsub | -| ⫓ | | \subsup | ⫒ | | \csupe | ⫑ | | \csube | ⫐ | | \csup | -| ⫏ | | \csub | ⫎ | | \rsqhook | ⫍ | | \lsqhook | ⫌ | | \supsetneqq | -| ⫋ | | \subsetneqq | ⫊ | | \supsetapprox | ⫉ | | \subsetapprox | ⫈ | | \supsim | -| ⫇ | | \subsim | ⫆ | | \supseteqq | ⫅ | | \subseteqq | ⫄ | | \supedot | -| ⫃ | | \subedot | ⫂ | | \supmult | ⫁ | | \submult | ⫀ | | \supsetplus | -| ⪿ | | \subsetplus | ⪾ | | \supsetdot | ⪽ | | \subsetdot | ⪺ | | \succnapprox | -| ⪹ | | \precnapprox | ⪸ | | \succapprox | ⪷ | | \precapprox | ⪶ | | \succneqq | -| ⪵ | | \precneqq | ⪴ | | \succeqq | ⪳ | | \preceqq | ⪲ | | \succneq | -| ⪱ | | \precneq | ⪮ | | \bumpeqq | ⪭ | | \late | ⪬ | | \smte | -| ⪫ | | \lat | ⪪ | | \smt | ⪩ | | \gescc | ⪨ | | \lescc | -| ⪥ | | \gla | ⪤ | | \glj | ⪣ | | \partialmeetcontraction | ⪠ | | \simgE | -| ⪟ | | \simlE | ⪞ | | \simgtr | ⪝ | | \simless | ⪜ | | \eqqslantgtr | -| ⪛ | | \eqqslantless | ⪚ | | \eqqgtr | ⪙ | | \eqqless | ⪘ | | \egsdot | -| ⪗ | | \elsdot | ⪖ | | \eqslantgtr | ⪕ | | \eqslantless | ⪔ | | \gesles | -| ⪓ | | \lesges | ⪒ | | \glE | ⪑ | | \lgE | ⪐ | | \gsiml | -| ⪏ | | \lsimg | ⪎ | | \gsime | ⪍ | | \lsime | ⪌ | | \gtreqqless | -| ⪋ | | \lesseqqgtr | ⪊ | | \gnapprox | ⪉ | | \lnapprox | ⪈ | | \gneq | -| ⪇ | | \lneq | ⪆ | | \gtrapprox | ⪅ | | \lessapprox | ⪄ | | \gesdotol | -| ⪃ | | \lesdotor | ⪂ | | \gesdoto | ⪁ | | \lesdoto | ⪀ | | \gesdot | -| ⩿ | | \lesdot | ⩾ | | \geqslant | ⩽ | | \leqslant | ⩼ | | \gtquest | -| ⩻ | | \ltquest | ⩺ | | \gtcir | ⩹ | | \ltcir | ⩸ | | \equivDD | -| ⩷ | | \ddotseq | ⩴ | | \Coloneqq | ⩳ | | \eqqsim | ⩲ | | \pluseqq | -| ⩱ | | \eqqplus | ⩰ | | \approxeqq | ⩯ | | \hatapprox | ⩭ | | \congdot | -| ⩬ | | \simminussim | ⩫ | | \simrdots | ⩪ | | \dotsim | ⩩ | | \equivVvert | -| ⩨ | | \equivVert | ⩧ | | \dotequiv | ⩦ | | \eqdot | ⩥ | | \rsub | -| ⩤ | | \dsub | ⩣ | | \veedoublebar | ⩢ | | \doublebarvee | ⩡ | | \varveebar | -| ⩠ | | \wedgedoublebar | ⩟ | | \wedgebar | ⩝ | | \midbarvee | ⩜ | | \midbarwedge | -| ⩛ | | \veemidvert | ⩚ | | \wedgemidvert | ⩙ | | \veeonwedge | ⩘ | | \bigslopedwedge | -| ⩗ | | \bigslopedvee | ⩕ | | \wedgeonwedge | ⩔ | | \Vee | ⩓ | | \Wedge | -| ⩒ | | \veeodot | ⩑ | | \wedgeodot | ⩐ | | \closedvarcupsmashprod | ⩏ | | \Sqcup | -| ⩎ | | \Sqcap | ⩍ | | \closedvarcap | ⩌ | | \closedvarcup | ⩋ | | \twocaps | -| ⩊ | | \twocups | ⩉ | | \capbarcup | ⩈ | | \cupbarcap | ⩇ | | \capovercup | -| ⩆ | | \cupovercap | ⩅ | | \cupvee | ⩄ | | \capwedge | ⩃ | | \barcap | -| ⩂ | | \barcup | ⩁ | | \uminus | ⩀ | | \capdot | ⨾ | | \fcmp | -| ⨽ | | \intprodr | ⨼ | | \intprod | ⨻ | | \triangletimes | ⨺ | | \triangleminus | -| ⨹ | | \triangleplus | ⨸ | | \odiv | ⨷ | | \Otimes | ⨶ | | \otimeshat | -| ⨵ | | \otimesrhrim | ⨴ | | \otimeslhrim | ⨳ | | \smashtimes | ⨲ | | \btimes | -| ⨱ | | \timesbar | ⨰ | | \dottimes | ⨯ | | \vectimes | ⨮ | | \oplusrhrim | -| ⨭ | | \opluslhrim | ⨬ | | \minusrdots | ⨫ | | \minusfdots | ⨪ | | \minusdot | -| ⨩ | | \commaminus | ⨨ | | \plustrif | ⨧ | | \plussubtwo | ⨦ | | \plussim | -| ⨥ | | \plusdot | ⨤ | | \simplus | ⨣ | | \plushat | ⨢ | | \ringplus | -| ⨡ | | \zproject | ⨠ | | \zpipe | ⨟ | | \zcmp | ⨞ | | \bigtriangleleft | -| ⨝ | | \Join | ⨜ | | \lowint | ⨛ | | \upint | ⨚ | | \intcup | -| ⨙ | | \intcap | ⨘ | | \intx | ⨗ | | \intlarhk | ⨕ | | \pointint | -| ⨔ | | \npolint | ⨓ | | \scpolint | ⨒ | | \rppolint | ⨑ | | \awint | -| ⨐ | | \cirfnint | ⨎ | | \intBar | ⨍ | | \intbar | ⨌ | | \iiiint | -| ⨋ | | \sumint | ⨊ | | \modtwosum | ⨈ | | \disjquant | ⨇ | | \conjquant | -| ⨅ | | \bigsqcap | ⨄ | | \Elxuplus | ⨃ | | \bigcupdot | ⧿ | | \tminus | -| ⧾ | | \tplus | ⧽ | | \rcurvyangle | ⧼ | | \lcurvyangle | ⧻ | | \tripleplus | -| ⧺ | | \doubleplus | ⧸ | | \xsol | ⧷ | | \rsolbar | ⧶ | | \dsol | -| ⧴ | | \RuleDelayed | ⧳ | | \errbarblackcircle | ⧲ | | \errbarcircle | ⧱ | | \errbarblackdiamond | -| ⧰ | | \errbardiamond | ⧯ | | \errbarblacksquare | ⧮ | | \errbarsquare | ⧭ | | \blackcircledownarrow | -| ⧬ | | \circledownarrow | ⧫ | | \blacklozenge | ⧪ | | \blackdiamonddownarrow | ⧩ | | \downtrianglerightblack | -| ⧨ | | \downtriangleleftblack | ⧧ | | \thermod | ⧦ | | \gleichstark | ⧥ | | \eqvparsl | -| ⧤ | | \smeparsl | ⧣ | | \eparsl | ⧢ | | \shuffle | ⧡ | | \lrtriangleeq | -| ⧠ | | \laplac | ⧞ | | \nvinfty | ⧝ | | \tieinfty | ⧜ | | \iinfin | -| ⧛ | | \Rvzigzag | ⧚ | | \Lvzigzag | ⧙ | | \rvzigzag | ⧘ | | \lvzigzag | -| ⧗ | | \blackhourglass | ⧖ | | \hourglass | ⧕ | | \rftimes | ⧔ | | \lftimes | -| ⧓ | | \fbowtie | ⧒ | | \rfbowtie | ⧑ | | \lfbowtie | ⧎ | | \rtriltri | -| ⧍ | | \triangleserifs | ⧌ | | \triangles | ⧋ | | \triangleubar | ⧊ | | \triangleodot | -| ⧉ | | \boxonbox | ⧈ | | \boxbox | ⧇ | | \boxcircle | ⧆ | | \boxast | -| ⧅ | | \boxbslash | ⧃ | | \cirE | ⧂ | | \cirscir | ⧁ | | \circledgtr | -| ⧀ | | \circledless | ⦿ | | \circledbullet | ⦾ | | \circledwhitebullet | ⦽ | | \uparrowoncircle | -| ⦼ | | \odotslashdot | ⦻ | | \olcross | ⦺ | | \obot | ⦹ | | \operp | -| ⦸ | | \circledbslash | ⦷ | | \circledparallel | ⦶ | | \circledvert | ⦵ | | \circlehbar | -| ⦴ | | \emptysetoarrl | ⦳ | | \emptysetoarr | ⦲ | | \emptysetocirc | ⦱ | | \emptysetobar | -| ⦰ | | \revemptyset | ⦯ | | \measangledltosw | ⦮ | | \measangledrtose | ⦭ | | \measangleultonw | -| ⦬ | | \measangleurtone | ⦫ | | \measangleldtosw | ⦪ | | \measanglerdtose | ⦩ | | \measanglelutonw | -| ⦨ | | \measanglerutone | ⦧ | | \wideangleup | ⦦ | | \wideangledown | ⦥ | | \revangleubar | -| ⦤ | | \angleubar | ⦣ | | \revangle | ⦢ | | \turnangle | ⦡ | | \sphericalangleup | -| ⦠ | | \gtlpar | ⦟ | | \angdnr | ⦞ | | \angles | ⦝ | | \rightanglemdot | -| ⦛ | | \measuredangleleft | ⦚ | | \vzigzag | ⦙ | | \fourvdots | ⦘ | | \rblkbrbrak | -| ⦗ | | \lblkbrbrak | ⦖ | | \Rparenless | ⦕ | | \Lparengtr | ⦔ | | \rparengtr | -| ⦓ | | \lparenless | ⦒ | | \rangledot | ⦑ | | \langledot | ⦐ | | \rbrackurtick | -| ⦏ | | \lbracklltick | ⦎ | | \rbracklrtick | ⦍ | | \lbrackultick | ⦌ | | \rbrackubar | -| ⦋ | | \lbrackubar | ⦇ | | \limg | ⦆ | | \Elroang | ⦅ | | \lParen | -| ⦄ | | \rBrace | ⦃ | | \lBrace | ⦂ | | \typecolon | ⦁ | | \spot | -| ⦀ | | \Vvert | ⥿ | | \downfishtail | ⥾ | | \upfishtail | ⥽ | | \rightfishtail | -| ⥼ | | \leftfishtail | ⥻ | | \suplarr | ⥺ | | \leftarrowsubset | ⥹ | | \subrarr | -| ⥸ | | \gtrarr | ⥷ | | \leftarrowless | ⥶ | | \ltlarr | ⥵ | | \rightarrowapprox | -| ⥴ | | \rightarrowsimilar | ⥳ | | \leftarrowsimilar | ⥲ | | \similarrightarrow | ⥱ | | \equalrightarrow | -| ⥩ | | \rightleftharpoonsdown | ⥨ | | \rightleftharpoonsup | ⥧ | | \leftrightharpoonsdown | ⥦ | | \leftrightharpoonsup | -| ⥐ | | \DownLeftRightVector | ⥎ | | \leftrightharpoonupup | ⥍ | | \updownharpoonleftright | ⥌ | | \updownharpoonrightleft | -| ⥉ | | \twoheaduparrowcircle | ⥈ | | \leftrightarrowcircle | ⥇ | | \rightarrowx | ⥆ | | \leftarrowplus | -| ⥅ | | \rightarrowplus | ⥄ | | \shortrightarrowleftarrow | ⥃ | | \leftarrowshortrightarrow | ⥂ | | \rightarrowshortleftarrow | -| ⤿ | | \ccwundercurvearrow | ⤾ | | \cwundercurvearrow | ⤽ | | \curvearrowleftplus | ⤼ | | \curvearrowrightminus | -| ⤻ | | \acwunderarcarrow | ⤺ | | \acwoverarcarrow | ⤹ | | \acwleftarcarrow | ⤸ | | \cwrightarcarrow | -| ⤷ | | \rightdowncurvedarrow | ⤶ | | \leftdowncurvedarrow | ⤵ | | \downrightcurvedarrow | ⤴ | | \uprightcurvearrow | -| ⤳ | | \rightcurvedarrow | ⤲ | | \nwovnearrow | ⤱ | | \neovnwarrow | ⤰ | | \rdiagovsearrow | -| ⤯ | | \fdiagovnearrow | ⤮ | | \neovsearrow | ⤭ | | \seovnearrow | ⤬ | | \fdiagovrdiag | -| ⤫ | | \rdiagovfdiag | ⤪ | | \towa | ⤩ | | \tosa | ⤨ | | \toea | -| ⤧ | | \tona | ⤦ | | \hkswarrow | ⤥ | | \hksearrow | ⤤ | | \hknearrow | -| ⤣ | | \hknwarrow | ⤢ | | \neswarrow | ⤡ | | \nwsearrow | ⤠ | | \barrightarrowdiamond | -| ⤟ | | \diamondleftarrowbar | ⤞ | | \rightarrowdiamond | ⤝ | | \diamondleftarrow | ⤜ | | \rightdbltail | -| ⤛ | | \leftdbltail | ⤚ | | \righttail | ⤙ | | \lefttail | ⤘ | | \nVtwoheadrightarrowtail | -| ⤗ | | \nvtwoheadrightarrowtail | ⤑ | | \rightdotarrow | ⤐ | | \drbkarrow | ⤏ | | \dbkarrow | -| ⤎ | | \leftdbkarrow | ⤍ | | \rightbkarrow | ⤌ | | \leftbkarrow | ⤋ | | \Ddownarrow | -| ⤊ | | \Uuparrow | ⤉ | | \uparrowbarred | ⤈ | | \downarrowbarred | ⤇ | | \Mapsto | -| ⤆ | | \Mapsfrom | ⤅ | | \twoheadmapsto | ⤄ | | \nvLeftrightarrow | ⤃ | | \nvRightarrow | -| ⤂ | | \nvLeftarrow | ⤁ | | \nVtwoheadrightarrow | ⟿ | | \longrightsquigarrow | ⟾ | | \Longmapsto | -| ⟽ | | \Longmapsfrom | ⟻ | | \longmapsfrom | ⟴ | | \rightarrowonoplus | ⟳ | | \cwgapcirclearrow | -| ⟲ | | \acwgapcirclearrow | ⟱ | | \DDownarrow | ⟰ | | \UUparrow | ⟭ | | \Rbrbrak | -| ⟬ | | \Lbrbrak | ⟫ | | \rang | ⟥ | | \whitesquaretickright | ⟤ | | \whitesquaretickleft | -| ⟣ | | \concavediamondtickright | ⟢ | | \concavediamondtickleft | ⟡ | | \concavediamond | ⟠ | | \lozengeminus | -| ⟟ | | \cirbot | ⟞ | | \longdashv | ⟝ | | \vlongdash | ⟜ | | \multimapinv | -| ⟛ | | \dashVdash | ⟚ | | \DashVDash | ⟙ | | \bigtop | ⟘ | | \bigbot | -| ⟗ | | \fullouterjoin | ⟖ | | \rightouterjoin | ⟕ | | \leftouterjoin | ⟔ | | \pushout | -| ⟓ | | \pullback | ⟒ | | \upin | ⟑ | | \wedgedot | ⟍ | | \diagdown | -| ⟌ | | \longdivision | ⟋ | | \diagup | ⟉ | | \suphsol | ⟈ | | \bsolhsub | -| ⟇ | | \veedot | ⟄ | | \supsetcirc | ⟃ | | \subsetcirc | ⟁ | | \whiteinwhitetriangle | -| ⟀ | | \threedangle | ➛ | | \draftingarrow | ❳ | | \rbrbrak | ❲ | | \lbrbrak | -| ✽ | | \dingasterisk | ✶ | | \varstar | ✪ | | \circledstar | ✠ | | \maltese | -| ✓ | | \checkmark | ⚲ | | \neuter | ⚬ | | \mdsmwhtcircle | ⚥ | | \Hermaphrodite | -| ⚉ | | \blackcircledtwodots | ⚈ | | \blackcircledrightdot | ⚇ | | \circledtwodots | ⚆ | | \circledrightdot | -| ⚅ | | \dicevi | ⚄ | | \dicev | ⚃ | | \diceiv | ⚂ | | \diceiii | -| ⚁ | | \diceii | ⚀ | | \dicei | ♾ | | \acidfree | ♬ | | \sixteenthnote | -| ♫ | | \twonotes | ♪ | | \eighthnote | ♩ | | \quarternote | ♧ | | \varclubsuit | -| ♦ | | \vardiamondsuit | ♥ | | \varheartsuit | ♤ | | \varspadesuit | ♂ | | \male | -| ♀ | | \female | ☾ | | \leftmoon | ☽ | | \rightmoon | ☼ | | \sun | -| ☻ | | \blacksmiley | ☡ | | \danger | ☆ | | \bigwhitestar | ★ | | \bigstar | -| ◿ | | \lrtriangle | ◾ | | \mdsmblksquare | ◽ | | \mdsmwhtsquare | ◼ | | \mdblksquare | -| ◻ | | \mdwhtsquare | ◺ | | \lltriangle | ◹ | | \urtriangle | ◸ | | \ultriangle | -| ◷ | | \circleurquad | ◶ | | \circlelrquad | ◵ | | \circlellquad | ◴ | | \circleulquad | -| ◳ | | \squareurquad | ◲ | | \squarelrquad | ◱ | | \squarellquad | ◰ | | \squareulquad | -| ◮ | | \trianglerightblack | ◭ | | \triangleleftblack | ◬ | | \trianglecdot | ◫ | | \boxbar | -| ◪ | | \squarelrblack | ◩ | | \squareulblack | ◨ | | \squarerightblack | ◧ | | \squareleftblack | -| ◦ | | \smwhtcircle | ◥ | | \urblacktriangle | ◤ | | \ulblacktriangle | ◣ | | \llblacktriangle | -| ◢ | | \lrblacktriangle | ◡ | | \botsemicircle | ◠ | | \topsemicircle | ◟ | | \llarc | -| ◞ | | \lrarc | ◝ | | \urarc | ◜ | | \ularc | ◛ | | \invwhitelowerhalfcircle | -| ◚ | | \invwhiteupperhalfcircle | ◙ | | \inversewhitecircle | ◘ | | \inversebullet | ◗ | | \blackrighthalfcircle | -| ◖ | | \blacklefthalfcircle | ◕ | | \blackcircleulquadwhite | ◔ | | \circleurquadblack | ◓ | | \circletophalfblack | -| ◒ | | \circlebottomhalfblack | ◑ | | \circlerighthalfblack | ◐ | | \circlelefthalfblack | ◎ | | \bullseye | -| ◍ | | \circlevertfill | ◌ | | \dottedcircle | ◊ | | \lozenge | ◉ | | \fisheye | -| ◈ | | \blackinwhitediamond | ◅ | | \whitepointerleft | ◄ | | \blackpointerleft | ◃ | | \smalltriangleleft | -| ◂ | | \smallblacktriangleleft | ▿ | | \triangledown | ▾ | | \blacktriangledown | ▼ | | \bigblacktriangledown | -| ▻ | | \whitepointerright | ► | | \blackpointerright | ▹ | | \smalltriangleright | ▸ | | \smallblacktriangleright | -| ▵ | | \vartriangle | ▴ | | \blacktriangle | △ | | \bigtriangleup | ▲ | | \bigblacktriangleup | -| ▱ | | \parallelogram | ▰ | | \parallelogramblack | ▯ | | \vrectangle | ▮ | | \vrectangleblack | -| ▭ | | \hrectangle | ▬ | | \hrectangleblack | ▫ | | \smwhtsquare | ▪ | | \smblksquare | -| ▩ | | \squarecrossfill | ▨ | | \squareneswfill | ▧ | | \squarenwsefill | ▦ | | \squarehvfill | -| ▥ | | \squarevfill | ▤ | | \squarehfill | ▣ | | \blackinwhitesquare | ▢ | | \squoval | -| ■ | | \mdlgblksquare | ▓ | | \blockthreeqtrshaded | ▒ | | \blockhalfshaded | ░ | | \blockqtrshaded | -| ▐ | | \blockrighthalf | ▌ | | \blocklefthalf | █ | | \blockfull | ▄ | | \blocklowhalf | -| ▀ | | \blockuphalf | ┆ | | \bdtriplevdash | ␣ | | \mathvisiblespace | ␢ | | \blanksymbol | -| ⏧ | | \elinters | ⏦ | | \accurrent | ⏥ | | \fltns | ⏤ | | \strns | -| ⏣ | | \benzenr | ⏢ | | \trapezium | ⏡ | | \ubrbrak | ⏠ | | \obrbrak | -| ⏟ | | \underbrace | ⏞ | | \overbrace | ⏝ | | \underparen | ⏜ | | \overparen | -| ⏎ | | \varcarriagereturn | ⎹ | | \rvboxline | ⎸ | | \lvboxline | ⎷ | | \sqrtbottom | -| ⎶ | | \bbrktbrk | ⎵ | | \underbracket | ⎴ | | \overbracket | ⎳ | | \sumbottom | -| ⎲ | | \sumtop | ⎯ | | \harrowextender | ⎮ | | \intextender | ⎭ | | \rbracelend | -| ⎬ | | \rbracemid | ⎫ | | \rbraceuend | ⎪ | | \vbraceextender | ⎩ | | \lbracelend | -| ⎨ | | \lbracemid | ⎧ | | \lbraceuend | ⎦ | | \rbracklend | ⎥ | | \rbrackextender | -| ⎤ | | \rbrackuend | ⎣ | | \lbracklend | ⎢ | | \lbrackextender | ⎡ | | \lbrackuend | -| ⎠ | | \rparenlend | ⎟ | | \rparenextender | ⎞ | | \rparenuend | ⎝ | | \lparenlend | -| ⎜ | | \lparenextender | ⎛ | | \lparenuend | ⎔ | | \hexagon | ⍼ | | \rangledownzigzagarrow | -| ⍰ | | \APLboxquestion | ⍓ | | \APLboxupcaret | ⌽ | | \obar | ⌶ | | \topbot | -| ⌲ | | \conictaper | ⌬ | | \varhexagonlrbonds | ⌡ | | \intbottom | ⌠ | | \inttop | -| ⌟ | | \lrcorner | ⌞ | | \llcorner | ⌝ | | \urcorner | ⌜ | | \ulcorner | -| ⌙ | | \turnednot | ⌗ | | \viewdata | ⌓ | | \profsurf | ⌒ | | \profline | -| ⌐ | | \invneg | ⌅ | \barwedge | \varbarwedge | ⌂ | | \house | ⌀ | | \diameter | -| ⋿ | | \bagmember | ⋾ | | \niobar | ⋽ | | \varniobar | ⋼ | | \nis | -| ⋻ | | \varnis | ⋺ | | \nisd | ⋹ | | \isinE | ⋸ | | \isinvb | -| ⋷ | | \isinobar | ⋵ | | \isindot | ⋴ | | \isins | ⋳ | | \varisins | -| ⋲ | | \disin | ⋭ | | \ntrianglerighteq | ⋬ | | \ntrianglelefteq | ⋩ | | \succnsim | -| ⋨ | | \precedesnotsimilar | ⋧ | | \gnsim | ⋦ | | \lnsim | ⋥ | | \sqsupsetneq | -| ⋤ | | \sqsubsetneq | ⋡ | | \nsucceq | ⋠ | | \npreceq | ⋟ | | \curlyeqsucc | -| ⋞ | | \curlyeqprec | ⋝ | | \eqgtr | ⋜ | | \eqless | ⋛ | | \gtreqless | -| ⋚ | | \lesseqgtr | ⋗ | | \gtrdot | ⋖ | | \lessdot | ⋕ | | \hash | -| ⋔ | | \pitchfork | ⋓ | | \Cup | ⋒ | | \Cap | ⋑ | | \Supset | -| ⋐ | | \Subset | ⋏ | | \curlywedge | ⋎ | | \curlyvee | ⋍ | | \backsimeq | -| ⋌ | | \rightthreetimes | ⋋ | | \leftthreetimes | ⋊ | | \rtimes | ⋉ | | \ltimes | -| ⋇ | | \divideontimes | ⊿ | | \varlrtriangle | ⊽ | | \barvee | ⊼ | | \barwedge | -| ⊻ | | \veebar | ⊺ | | \intercal | ⊸ | | \multimap | ⊵ | | \trianglerighteq | -| ⊴ | | \trianglelefteq | ⊳ | | \vartriangleright | ⊲ | | \vartriangleleft | ⊱ | | \scurel | -| ⊰ | | \prurel | ⊯ | | \nVDash | ⊮ | | \nVdash | ⊭ | | \nvDash | -| ⊬ | | \nvdash | ⊫ | | \VDash | ⊪ | | \Vvdash | ⊩ | | \Vdash | -| ⊦ | | \assert | ⊡ | | \boxdot | ⊠ | | \boxtimes | ⊟ | | \boxminus | -| ⊞ | | \boxplus | ⊝ | | \circleddash | ⊜ | | \circledequal | ⊛ | | \circledast | -| ⊚ | | \circledcirc | ⊐ | | \sqsupset | ⊏ | | \sqsubset | ⊍ | | \cupdot | -| ⊌ | | \cupleftarrow | ⊋ | | \supsetneq | ⊊ | | \subsetneq | ≽ | | \succcurlyeq | -| ≼ | | \preccurlyeq | ≷ | | \gtrless | ≶ | | \lessgtr | ≵ | | \ngtrsim | -| ≴ | | \nlesssim | ≭ | | \nasymp | ≬ | | \between | ≩ | | \gneqq | -| ≨ | | \lneqq | ≣ | | \Equiv | ≟ | | \questeq | ≞ | | \measeq | -| ≝ | | \eqdef | ≜ | | \triangleq | ≚ | | \veeeq | ≘ | | \arceq | -| ≗ | | \circeq | ≖ | | \eqcirc | ≔ | | \coloneq | ≓ | | \risingdotseq | -| ≒ | | \fallingdotseq | ≏ | | \bumpeq | ≎ | | \Bumpeq | ≊ | | \approxeq | -| ∽ | | \backsim | ∹ | | \eqcolon | ∷ | | \Colon | ∵ | | \because | -| ∴ | | \therefore | ∲ | | \lcirclerightint | ∦ | | \nparallel | ∤ | | \nmid | -| ∢ | | \sphericalangle | ∡ | | \measuredangle | ∟ | | \rightangle | √ | | \sqrt | -| ∕ | | \divslash | ∔ | | \dotplus | ∎ | | \QED | ∍ | | \smallni | -| ∊ | | \smallin | ∇ | | \nabla | ∆ | | \increment | ∅ | | \varnothing | -| ∄ | | \nexists | ∁ | | \complement | ⇿ | | \leftrightarrowtriangle | ⇾ | | \rightarrowtriangle | -| ⇽ | | \leftarrowtriangle | ⇼ | | \nVleftrightarrow | ⇺ | | \nVleftarrow | ⇹ | | \nvleftrightarrow | -| ⇷ | | \nvleftarrow | ⇶ | | \rightthreearrows | ⇴ | | \circleonrightarrow | ⇪ | | \whitearrowupfrombar | -| ⇩ | | \downwhitearrow | ⇨ | | \rightwhitearrow | ⇧ | | \upwhitearrow | ⇦ | | \leftwhitearrow | -| ⇣ | | \downdasharrow | ⇡ | | \updasharrow | ⇟ | | \nHdownarrow | ⇞ | | \nHuparrow | -| ⇝ | | \rightsquigarrow | ⇜ | | \leftsquigarrow | ⇛ | | \Rrightarrow | ⇚ | | \Lleftarrow | -| ⇙ | | \Swarrow | ⇘ | | \Searrow | ⇗ | | \Nearrow | ⇖ | | \Nwarrow | -| ⇏ | | \nRightarrow | ⇎ | | \nLeftrightarrow | ⇍ | | \nLeftarrow | ⇋ | | \leftrightharpoons | -| ⇊ | | \downdownarrows | ⇉ | | \rightrightarrows | ⇈ | | \upuparrows | ⇇ | | \leftleftarrows | -| ⇆ | | \leftrightarrows | ⇄ | | \rightleftarrows | ⇃ | | \downharpoonleft | ⇂ | | \downharpoonright | -| ⇁ | | \rightharpoondown | ↿ | | \upharpoonleft | ↾ | | \upharpoonright | ↺ | | \circlearrowleft | -| ↹ | | \barleftarrowrightarrowbar | ↸ | | \barovernorthwestarrow | ↷ | | \curvearrowright | ↶ | | \curvearrowleft | -| ↵ | | \carriagereturn | ↴ | | \linefeed | ↳ | \reflectbox{\carriagereturn} | \Rdsh | ↱ | | \Rsh | -| ↰ | | \Lsh | ↮ | | \nleftrightarrow | ↭ | | \leftrightsquigarrow | ↬ | | \looparrowright | -| ↫ | | \looparrowleft | ↨ | | \updownarrowbar | ↧ | | \mapsdown | ↥ | | \mapsup | -| ↤ | | \mapsfrom | ↣ | | \rightarrowtail | ↢ | | \leftarrowtail | ↡ | | \twoheaddownarrow | -| ↠ | | \twoheadrightarrow | ↟ | | \twoheaduparrow | ↞ | | \twoheadleftarrow | ↛ | | \nrightarrow | -| ↚ | | \nleftarrow | ⅊ | | \PropertyLine | ⅅ | | \CapitalDifferentialD | ⅄ | | \Yup | -| ⅃ | | \sansLmirrored | ⅂ | | \sansLturned | ⅁ | | \Game | ℸ | | \daleth | -| ℷ | | \gimel | ℶ | | \beth | Ⅎ | | \Finv | ℩ | | \turnediota | -| ℧ | | \mho | ℛ | | \mscrR | ℒ | | \mscrL | ℏ | | \hslash | -| ℎ | | \Planckconst | ⃰ | | \asteraccent | ⃯ | | \underrightarrow | ⃮ | | \underleftarrow | -| ⃭ | | \underleftharpoondown | ⃬ | | \underrightharpoondown | ⃩ | | \widebridgeabove | ⃨ | | \threeunderdot | -| ⃧ | | \annuity | ⃤ | | \enclosetriangle | ⃡ | | \overleftrightarrow | ⃟ | | \enclosediamond | -| ⃞ | | \enclosesquare | ⃝ | | \enclosecircle | ⃜ | | \ddddot | ⃛ | | \dddot | -| ⃗ | | \vec | ⃒ | | \vertoverlay | ⁗ | | \qprime | ⁐ | | \closure | -| ⁇ | | \Question | ⁄ | | \fracslash | ⁃ | | \hyphenbullet | ⁀ | | \tieconcat | -| ‼ | | \Exclam | ‸ | | \caretinsert | ‷ | | \backtrprime | ‶ | | \backdprime | -| ‵ | | \backprime | ‴ | | \trprime | ″ | | \dprime | ‥ | | \enleadertwodots | -| ‗ | | \twolowline | ― | | \horizbar | ‐ | | \mathhyphen | ữ1 | | \arabichad | -| ữ0 | | \arabicmaj | 𝟿 | | \mttnine | 𝟾 | | \mtteight | 𝟽 | | \mttseven | -| 𝟼 | | \mttsix | 𝟻 | | \mttfive | 𝟺 | | \mttfour | 𝟹 | | \mttthree | -| 𝟸 | | \mtttwo | 𝟷 | | \mttone | 𝟶 | | \mttzero | 𝟵 | | \mbfsansnine | -| 𝟴 | | \mbfsanseight | 𝟳 | | \mbfsansseven | 𝟲 | | \mbfsanssix | 𝟱 | | \mbfsansfive | -| 𝟰 | | \mbfsansfour | 𝟯 | | \mbfsansthree | 𝟮 | | \mbfsanstwo | 𝟭 | | \mbfsansone | -| 𝟬 | | \mbfsanszero | 𝟫 | | \msansnine | 𝟪 | | \msanseight | 𝟩 | | \msansseven | -| 𝟨 | | \msanssix | 𝟧 | | \msansfive | 𝟦 | | \msansfour | 𝟥 | | \msansthree | -| 𝟤 | | \msanstwo | 𝟣 | | \msansone | 𝟢 | | \msanszero | 𝟡 | | \Bbbnine | -| 𝟠 | | \Bbbeight | 𝟟 | | \Bbbseven | 𝟞 | | \Bbbsix | 𝟝 | | \Bbbfive | -| 𝟜 | | \Bbbfour | 𝟛 | | \Bbbthree | 𝟚 | | \Bbbtwo | 𝟙 | | \Bbbone | -| 𝟘 | | \Bbbzero | 𝟗 | | \mbfnine | 𝟖 | | \mbfeight | 𝟕 | | \mbfseven | -| 𝟔 | | \mbfsix | 𝟓 | | \mbffive | 𝟒 | | \mbffour | 𝟑 | | \mbfthree | -| 𝟐 | | \mbftwo | 𝟏 | | \mbfone | 𝟎 | | \mbfzero | 𝟋 | | \mbfdigamma | -| 𝟊 | | \mbfDigamma | 𝟉 | | \mbfitsansvarpi | 𝟈 | | \mbfitsansvarrho | 𝟇 | | \mbfitsansphi | -| 𝟆 | | \mbfitsansvarkappa | 𝟅 | | \mbfitsansvartheta | 𝟄 | | \mbfitsansepsilon | 𝟃 | | \mbfitsanspartial | -| 𝟂 | | \mbfitsansomega | 𝟁 | | \mbfitsanspsi | 𝟀 | | \mbfitsanschi | 𝞿 | | \mbfitsansvarphi | -| 𝞾 | | \mbfitsansupsilon | 𝞽 | | \mbfitsanstau | 𝞼 | | \mbfitsanssigma | 𝞻 | | \mbfitsansvarsigma | -| 𝞺 | | \mbfitsansrho | 𝞹 | | \mbfitsanspi | 𝞸 | | \mbfitsansomicron | 𝞷 | | \mbfitsansxi | -| 𝞶 | | \mbfitsansnu | 𝞵 | | \mbfitsansmu | 𝞴 | | \mbfitsanslambda | 𝞳 | | \mbfitsanskappa | -| 𝞲 | | \mbfitsansiota | 𝞱 | | \mbfitsanstheta | 𝞰 | | \mbfitsanseta | 𝞯 | | \mbfitsanszeta | -| 𝞮 | | \mbfitsansvarepsilon | 𝞭 | | \mbfitsansdelta | 𝞬 | | \mbfitsansgamma | 𝞫 | | \mbfitsansbeta | -| 𝞪 | | \mbfitsansalpha | 𝞩 | | \mbfitsansnabla | 𝞨 | | \mbfitsansOmega | 𝞧 | | \mbfitsansPsi | -| 𝞦 | | \mbfitsansChi | 𝞥 | | \mbfitsansPhi | 𝞤 | | \mbfitsansUpsilon | 𝞣 | | \mbfitsansTau | -| 𝞢 | | \mbfitsansSigma | 𝞡 | | \mbfitsansvarTheta | 𝞠 | | \mbfitsansRho | 𝞟 | | \mbfitsansPi | -| 𝞞 | | \mbfitsansOmicron | 𝞝 | | \mbfitsansXi | 𝞜 | | \mbfitsansNu | 𝞛 | | \mbfitsansMu | -| 𝞚 | | \mbfitsansLambda | 𝞙 | | \mbfitsansKappa | 𝞘 | | \mbfitsansIota | 𝞗 | | \mbfitsansTheta | -| 𝞖 | | \mbfitsansEta | 𝞕 | | \mbfitsansZeta | 𝞔 | | \mbfitsansEpsilon | 𝞓 | | \mbfitsansDelta | -| 𝞒 | | \mbfitsansGamma | 𝞑 | | \mbfitsansBeta | 𝞐 | | \mbfitsansAlpha | 𝞏 | | \mbfsansvarpi | -| 𝞎 | | \mbfsansvarrho | 𝞍 | | \mbfsansphi | 𝞌 | | \mbfsansvarkappa | 𝞋 | | \mbfsansvartheta | -| 𝞊 | | \mbfsansepsilon | 𝞉 | | \mbfsanspartial | 𝞈 | | \mbfsansomega | 𝞇 | | \mbfsanspsi | -| 𝞆 | | \mbfsanschi | 𝞅 | | \mbfsansvarphi | 𝞄 | | \mbfsansupsilon | 𝞃 | | \mbfsanstau | -| 𝞂 | | \mbfsanssigma | 𝞁 | | \mbfsansvarsigma | 𝞀 | | \mbfsansrho | 𝝿 | | \mbfsanspi | -| 𝝾 | | \mbfsansomicron | 𝝽 | | \mbfsansxi | 𝝼 | | \mbfsansnu | 𝝻 | | \mbfsansmu | -| 𝝺 | | \mbfsanslambda | 𝝹 | | \mbfsanskappa | 𝝸 | | \mbfsansiota | 𝝷 | | \mbfsanstheta | -| 𝝶 | | \mbfsanseta | 𝝵 | | \mbfsanszeta | 𝝴 | | \mbfsansvarepsilon | 𝝳 | | \mbfsansdelta | -| 𝝲 | | \mbfsansgamma | 𝝱 | | \mbfsansbeta | 𝝰 | | \mbfsansalpha | 𝝯 | | \mbfsansnabla | -| 𝝮 | | \mbfsansOmega | 𝝭 | | \mbfsansPsi | 𝝬 | | \mbfsansChi | 𝝫 | | \mbfsansPhi | -| 𝝪 | | \mbfsansUpsilon | 𝝩 | | \mbfsansTau | 𝝨 | | \mbfsansSigma | 𝝧 | | \mbfsansvarTheta | -| 𝝦 | | \mbfsansRho | 𝝥 | | \mbfsansPi | 𝝤 | | \mbfsansOmicron | 𝝣 | | \mbfsansXi | -| 𝝢 | | \mbfsansNu | 𝝡 | | \mbfsansMu | 𝝠 | | \mbfsansLambda | 𝝟 | | \mbfsansKappa | -| 𝝞 | | \mbfsansIota | 𝝝 | | \mbfsansTheta | 𝝜 | | \mbfsansEta | 𝝛 | | \mbfsansZeta | -| 𝝚 | | \mbfsansEpsilon | 𝝙 | | \mbfsansDelta | 𝝘 | | \mbfsansGamma | 𝝗 | | \mbfsansBeta | -| 𝝖 | | \mbfsansAlpha | 𝝕 | | \mbfitvarpi | 𝝔 | | \mbfitvarrho | 𝝓 | | \mbfitphi | -| 𝝒 | | \mbfitvarkappa | 𝝑 | | \mbfitvartheta | 𝝐 | | \mbfitepsilon | 𝝏 | | \mbfitpartial | -| 𝝎 | | \mbfitomega | 𝝍 | | \mbfitpsi | 𝝌 | | \mbfitchi | 𝝋 | | \mbfitvarphi | -| 𝝊 | | \mbfitupsilon | 𝝉 | | \mbfittau | 𝝈 | | \mbfitsigma | 𝝇 | | \mbfitvarsigma | -| 𝝆 | | \mbfitrho | 𝝅 | | \mbfitpi | 𝝄 | | \mbfitomicron | 𝝃 | | \mbfitxi | -| 𝝂 | | \mbfitnu | 𝝁 | | \mbfitmu | 𝝀 | | \mbfitlambda | 𝜿 | | \mbfitkappa | -| 𝜾 | | \mbfitiota | 𝜽 | | \mbfittheta | 𝜼 | | \mbfiteta | 𝜻 | | \mbfitzeta | -| 𝜺 | | \mbfitvarepsilon | 𝜹 | | \mbfitdelta | 𝜸 | | \mbfitgamma | 𝜷 | | \mbfitbeta | -| 𝜶 | | \mbfitalpha | 𝜵 | | \mbfitnabla | 𝜴 | | \mbfitOmega | 𝜳 | | \mbfitPsi | -| 𝜲 | | \mbfitChi | 𝜱 | | \mbfitPhi | 𝜰 | | \mbfitUpsilon | 𝜯 | | \mbfitTau | -| 𝜮 | | \mbfitSigma | 𝜭 | | \mbfitvarTheta | 𝜬 | | \mbfitRho | 𝜫 | | \mbfitPi | -| 𝜪 | | \mbfitOmicron | 𝜩 | | \mbfitXi | 𝜨 | | \mbfitNu | 𝜧 | | \mbfitMu | -| 𝜦 | | \mbfitLambda | 𝜥 | | \mbfitKappa | 𝜤 | | \mbfitIota | 𝜣 | | \mbfitTheta | -| 𝜢 | | \mbfitEta | 𝜡 | | \mbfitZeta | 𝜠 | | \mbfitEpsilon | 𝜟 | | \mbfitDelta | -| 𝜞 | | \mbfitGamma | 𝜝 | | \mbfitBeta | 𝜜 | | \mbfitAlpha | 𝜛 | | \mitvarpi | -| 𝜚 | | \mitvarrho | 𝜙 | | \mitphi | 𝜘 | | \mitvarkappa | 𝜗 | | \mitvartheta | -| 𝜖 | | \mitepsilon | 𝜕 | | \mitpartial | 𝜔 | | \mitomega | 𝜓 | | \mitpsi | -| 𝜒 | | \mitchi | 𝜑 | | \mitvarphi | 𝜐 | | \mitupsilon | 𝜏 | | \mittau | -| 𝜎 | | \mitsigma | 𝜍 | | \mitvarsigma | 𝜌 | | \mitrho | 𝜋 | | \mitpi | -| 𝜊 | | \mitomicron | 𝜉 | | \mitxi | 𝜈 | | \mitnu | 𝜇 | | \mitmu | -| 𝜆 | | \mitlambda | 𝜅 | | \mitkappa | 𝜄 | | \mitiota | 𝜃 | | \mittheta | -| 𝜂 | | \miteta | 𝜁 | | \mitzeta | 𝜀 | | \mitvarepsilon | 𝛿 | | \mitdelta | -| 𝛾 | | \mitgamma | 𝛽 | | \mitbeta | 𝛼 | | \mitalpha | 𝛻 | | \mitnabla | -| 𝛺 | | \mitOmega | 𝛹 | | \mitPsi | 𝛸 | | \mitChi | 𝛷 | | \mitPhi | -| 𝛶 | | \mitUpsilon | 𝛵 | | \mitTau | 𝛴 | | \mitSigma | 𝛳 | | \mitvarTheta | -| 𝛲 | | \mitRho | 𝛱 | | \mitPi | 𝛰 | | \mitOmicron | 𝛯 | | \mitXi | -| 𝛮 | | \mitNu | 𝛭 | | \mitMu | 𝛬 | | \mitLambda | 𝛫 | | \mitKappa | -| 𝛪 | | \mitIota | 𝛩 | | \mitTheta | 𝛨 | | \mitEta | 𝛧 | | \mitZeta | -| 𝛦 | | \mitEpsilon | 𝛥 | | \mitDelta | 𝛤 | | \mitGamma | 𝛣 | | \mitBeta | -| 𝛢 | | \mitAlpha | 𝛡 | | \mbfvarpi | 𝛠 | | \mbfvarrho | 𝛟 | | \mbfphi | -| 𝛞 | | \mbfvarkappa | 𝛝 | | \mbfvartheta | 𝛜 | | \mbfepsilon | 𝛛 | | \mbfpartial | -| 𝛚 | | \mbfomega | 𝛙 | | \mbfpsi | 𝛘 | | \mbfchi | 𝛗 | | \mbfvarphi | -| 𝛖 | | \mbfupsilon | 𝛕 | | \mbftau | 𝛔 | | \mbfsigma | 𝛓 | | \mbfvarsigma | -| 𝛒 | | \mbfrho | 𝛑 | | \mbfpi | 𝛐 | | \mbfomicron | 𝛏 | | \mbfxi | -| 𝛎 | | \mbfnu | 𝛍 | | \mbfmu | 𝛌 | | \mbflambda | 𝛋 | | \mbfkappa | -| 𝛊 | | \mbfiota | 𝛉 | | \mbftheta | 𝛈 | | \mbfeta | 𝛇 | | \mbfzeta | -| 𝛆 | | \mbfvarepsilon | 𝛅 | | \mbfdelta | 𝛄 | | \mbfgamma | 𝛃 | | \mbfbeta | -| 𝛂 | | \mbfalpha | 𝛁 | | \mbfnabla | 𝛀 | | \mbfOmega | 𝚿 | | \mbfPsi | -| 𝚾 | | \mbfChi | 𝚽 | | \mbfPhi | 𝚼 | | \mbfUpsilon | 𝚻 | | \mbfTau | -| 𝚺 | | \mbfSigma | 𝚹 | | \mbfvarTheta | 𝚸 | | \mbfRho | 𝚷 | | \mbfPi | -| 𝚶 | | \mbfOmicron | 𝚵 | | \mbfXi | 𝚴 | | \mbfNu | 𝚳 | | \mbfMu | -| 𝚲 | | \mbfLambda | 𝚱 | | \mbfKappa | 𝚰 | | \mbfIota | 𝚯 | | \mbfTheta | -| 𝚮 | | \mbfEta | 𝚭 | | \mbfZeta | 𝚬 | | \mbfEpsilon | 𝚫 | | \mbfDelta | -| 𝚪 | | \mbfGamma | 𝚩 | | \mbfBeta | 𝚨 | | \mbfAlpha | 𝚥 | | \jmath | -| 𝚤 | | \imath | 𝚣 | | \mttz | 𝚢 | | \mtty | 𝚡 | | \mttx | -| 𝚠 | | \mttw | 𝚟 | | \mttv | 𝚞 | | \mttu | 𝚝 | | \mttt | -| 𝚜 | | \mtts | 𝚛 | | \mttr | 𝚚 | | \mttq | 𝚙 | | \mttp | -| 𝚘 | | \mtto | 𝚗 | | \mttn | 𝚖 | | \mttm | 𝚕 | | \mttl | -| 𝚔 | | \mttk | 𝚓 | | \mttj | 𝚒 | | \mtti | 𝚑 | | \mtth | -| 𝚐 | | \mttg | 𝚏 | | \mttf | 𝚎 | | \mtte | 𝚍 | | \mttd | -| 𝚌 | | \mttc | 𝚋 | | \mttb | 𝚊 | | \mtta | 𝚉 | | \mttZ | -| 𝚈 | | \mttY | 𝚇 | | \mttX | 𝚆 | | \mttW | 𝚅 | | \mttV | -| 𝚄 | | \mttU | 𝚃 | | \mttT | 𝚂 | | \mttS | 𝚁 | | \mttR | -| 𝚀 | | \mttQ | 𝙿 | | \mttP | 𝙾 | | \mttO | 𝙽 | | \mttN | -| 𝙼 | | \mttM | 𝙻 | | \mttL | 𝙺 | | \mttK | 𝙹 | | \mttJ | -| 𝙸 | | \mttI | 𝙷 | | \mttH | 𝙶 | | \mttG | 𝙵 | | \mttF | -| 𝙴 | | \mttE | 𝙳 | | \mttD | 𝙲 | | \mttC | 𝙱 | | \mttB | -| 𝙰 | | \mttA | 𝙯 | | \mbfitsansz | 𝙮 | | \mbfitsansy | 𝙭 | | \mbfitsansx | -| 𝙬 | | \mbfitsansw | 𝙫 | | \mbfitsansv | 𝙪 | | \mbfitsansu | 𝙩 | | \mbfitsanst | -| 𝙨 | | \mbfitsanss | 𝙧 | | \mbfitsansr | 𝙦 | | \mbfitsansq | 𝙥 | | \mbfitsansp | -| 𝙤 | | \mbfitsanso | 𝙣 | | \mbfitsansn | 𝙢 | | \mbfitsansm | 𝙡 | | \mbfitsansl | -| 𝙠 | | \mbfitsansk | 𝙟 | | \mbfitsansj | 𝙞 | | \mbfitsansi | 𝙝 | | \mbfitsansh | -| 𝙜 | | \mbfitsansg | 𝙛 | | \mbfitsansf | 𝙚 | | \mbfitsanse | 𝙙 | | \mbfitsansd | -| 𝙘 | | \mbfitsansc | 𝙗 | | \mbfitsansb | 𝙖 | | \mbfitsansa | 𝙕 | | \mbfitsansZ | -| 𝙔 | | \mbfitsansY | 𝙓 | | \mbfitsansX | 𝙒 | | \mbfitsansW | 𝙑 | | \mbfitsansV | -| 𝙐 | | \mbfitsansU | 𝙏 | | \mbfitsansT | 𝙎 | | \mbfitsansS | 𝙍 | | \mbfitsansR | -| 𝙌 | | \mbfitsansQ | 𝙋 | | \mbfitsansP | 𝙊 | | \mbfitsansO | 𝙉 | | \mbfitsansN | -| 𝙈 | | \mbfitsansM | 𝙇 | | \mbfitsansL | 𝙆 | | \mbfitsansK | 𝙅 | | \mbfitsansJ | -| 𝙄 | | \mbfitsansI | 𝙃 | | \mbfitsansH | 𝙂 | | \mbfitsansG | 𝙁 | | \mbfitsansF | -| 𝙀 | | \mbfitsansE | 𝘿 | | \mbfitsansD | 𝘾 | | \mbfitsansC | 𝘽 | | \mbfitsansB | -| 𝘼 | | \mbfitsansA | 𝘻 | | \mitsansz | 𝘺 | | \mitsansy | 𝘹 | | \mitsansx | -| 𝘸 | | \mitsansw | 𝘷 | | \mitsansv | 𝘶 | | \mitsansu | 𝘵 | | \mitsanst | -| 𝘴 | | \mitsanss | 𝘳 | | \mitsansr | 𝘲 | | \mitsansq | 𝘱 | | \mitsansp | -| 𝘰 | | \mitsanso | 𝘯 | | \mitsansn | 𝘮 | | \mitsansm | 𝘭 | | \mitsansl | -| 𝘬 | | \mitsansk | 𝘫 | | \mitsansj | 𝘪 | | \mitsansi | 𝘩 | | \mitsansh | -| 𝘨 | | \mitsansg | 𝘧 | | \mitsansf | 𝘦 | | \mitsanse | 𝘥 | | \mitsansd | -| 𝘤 | | \mitsansc | 𝘣 | | \mitsansb | 𝘢 | | \mitsansa | 𝘡 | | \mitsansZ | -| 𝘠 | | \mitsansY | 𝘟 | | \mitsansX | 𝘞 | | \mitsansW | 𝘝 | | \mitsansV | -| 𝘜 | | \mitsansU | 𝘛 | | \mitsansT | 𝘚 | | \mitsansS | 𝘙 | | \mitsansR | -| 𝘘 | | \mitsansQ | 𝘗 | | \mitsansP | 𝘖 | | \mitsansO | 𝘕 | | \mitsansN | -| 𝘔 | | \mitsansM | 𝘓 | | \mitsansL | 𝘒 | | \mitsansK | 𝘑 | | \mitsansJ | -| 𝘐 | | \mitsansI | 𝘏 | | \mitsansH | 𝘎 | | \mitsansG | 𝘍 | | \mitsansF | -| 𝘌 | | \mitsansE | 𝘋 | | \mitsansD | 𝘊 | | \mitsansC | 𝘉 | | \mitsansB | -| 𝘈 | | \mitsansA | 𝘇 | | \mbfsansz | 𝘆 | | \mbfsansy | 𝘅 | | \mbfsansx | -| 𝘄 | | \mbfsansw | 𝘃 | | \mbfsansv | 𝘂 | | \mbfsansu | 𝘁 | | \mbfsanst | -| 𝘀 | | \mbfsanss | 𝗿 | | \mbfsansr | 𝗾 | | \mbfsansq | 𝗽 | | \mbfsansp | -| 𝗼 | | \mbfsanso | 𝗻 | | \mbfsansn | 𝗺 | | \mbfsansm | 𝗹 | | \mbfsansl | -| 𝗸 | | \mbfsansk | 𝗷 | | \mbfsansj | 𝗶 | | \mbfsansi | 𝗵 | | \mbfsansh | -| 𝗴 | | \mbfsansg | 𝗳 | | \mbfsansf | 𝗲 | | \mbfsanse | 𝗱 | | \mbfsansd | -| 𝗰 | | \mbfsansc | 𝗯 | | \mbfsansb | 𝗮 | | \mbfsansa | 𝗭 | | \mbfsansZ | -| 𝗬 | | \mbfsansY | 𝗫 | | \mbfsansX | 𝗪 | | \mbfsansW | 𝗩 | | \mbfsansV | -| 𝗨 | | \mbfsansU | 𝗧 | | \mbfsansT | 𝗦 | | \mbfsansS | 𝗥 | | \mbfsansR | -| 𝗤 | | \mbfsansQ | 𝗣 | | \mbfsansP | 𝗢 | | \mbfsansO | 𝗡 | | \mbfsansN | -| 𝗠 | | \mbfsansM | 𝗟 | | \mbfsansL | 𝗞 | | \mbfsansK | 𝗝 | | \mbfsansJ | -| 𝗜 | | \mbfsansI | 𝗛 | | \mbfsansH | 𝗚 | | \mbfsansG | 𝗙 | | \mbfsansF | -| 𝗘 | | \mbfsansE | 𝗗 | | \mbfsansD | 𝗖 | | \mbfsansC | 𝗕 | | \mbfsansB | -| 𝗔 | | \mbfsansA | 𝗓 | | \msansz | 𝗒 | | \msansy | 𝗑 | | \msansx | -| 𝗐 | | \msansw | 𝗏 | | \msansv | 𝗎 | | \msansu | 𝗍 | | \msanst | -| 𝗌 | | \msanss | 𝗋 | | \msansr | 𝗊 | | \msansq | 𝗉 | | \msansp | -| 𝗈 | | \msanso | 𝗇 | | \msansn | 𝗆 | | \msansm | 𝗅 | | \msansl | -| 𝗄 | | \msansk | 𝗃 | | \msansj | 𝗂 | | \msansi | 𝗁 | | \msansh | -| 𝗀 | | \msansg | 𝖿 | | \msansf | 𝖾 | | \msanse | 𝖽 | | \msansd | -| 𝖼 | | \msansc | 𝖻 | | \msansb | 𝖺 | | \msansa | 𝖹 | | \msansZ | -| 𝖸 | | \msansY | 𝖷 | | \msansX | 𝖶 | | \msansW | 𝖵 | | \msansV | -| 𝖴 | | \msansU | 𝖳 | | \msansT | 𝖲 | | \msansS | 𝖱 | | \msansR | -| 𝖰 | | \msansQ | 𝖯 | | \msansP | 𝖮 | | \msansO | 𝖭 | | \msansN | -| 𝖬 | | \msansM | 𝖫 | | \msansL | 𝖪 | | \msansK | 𝖩 | | \msansJ | -| 𝖨 | | \msansI | 𝖧 | | \msansH | 𝖦 | | \msansG | 𝖥 | | \msansF | -| 𝖤 | | \msansE | 𝖣 | | \msansD | 𝖢 | | \msansC | 𝖡 | | \msansB | -| 𝖠 | | \msansA | 𝖟 | | \mbffrakz | 𝖞 | | \mbffraky | 𝖝 | | \mbffrakx | -| 𝖜 | | \mbffrakw | 𝖛 | | \mbffrakv | 𝖚 | | \mbffraku | 𝖙 | | \mbffrakt | -| 𝖘 | | \mbffraks | 𝖗 | | \mbffrakr | 𝖖 | | \mbffrakq | 𝖕 | | \mbffrakp | -| 𝖔 | | \mbffrako | 𝖓 | | \mbffrakn | 𝖒 | | \mbffrakm | 𝖑 | | \mbffrakl | -| 𝖐 | | \mbffrakk | 𝖏 | | \mbffrakj | 𝖎 | | \mbffraki | 𝖍 | | \mbffrakh | -| 𝖌 | | \mbffrakg | 𝖋 | | \mbffrakf | 𝖊 | | \mbffrake | 𝖉 | | \mbffrakd | -| 𝖈 | | \mbffrakc | 𝖇 | | \mbffrakb | 𝖆 | | \mbffraka | 𝖅 | | \mbffrakZ | -| 𝖄 | | \mbffrakY | 𝖃 | | \mbffrakX | 𝖂 | | \mbffrakW | 𝖁 | | \mbffrakV | -| 𝖀 | | \mbffrakU | 𝕿 | | \mbffrakT | 𝕾 | | \mbffrakS | 𝕽 | | \mbffrakR | -| 𝕼 | | \mbffrakQ | 𝕻 | | \mbffrakP | 𝕺 | | \mbffrakO | 𝕹 | | \mbffrakN | -| 𝕸 | | \mbffrakM | 𝕷 | | \mbffrakL | 𝕶 | | \mbffrakK | 𝕵 | | \mbffrakJ | -| 𝕴 | | \mbffrakI | 𝕳 | | \mbffrakH | 𝕲 | | \mbffrakG | 𝕱 | | \mbffrakF | -| 𝕰 | | \mbffrakE | 𝕯 | | \mbffrakD | 𝕮 | | \mbffrakC | 𝕭 | | \mbffrakB | -| 𝕬 | | \mbffrakA | 𝕫 | | \Bbbz | 𝕪 | | \Bbby | 𝕩 | | \Bbbx | -| 𝕨 | | \Bbbw | 𝕧 | | \Bbbv | 𝕦 | | \Bbbu | 𝕥 | | \Bbbt | -| 𝕤 | | \Bbbs | 𝕣 | | \Bbbr | 𝕢 | | \Bbbq | 𝕡 | | \Bbbp | -| 𝕠 | | \Bbbo | 𝕟 | | \Bbbn | 𝕞 | | \Bbbm | 𝕝 | | \Bbbl | -| 𝕜 | | \Bbbk | 𝕛 | | \Bbbj | 𝕚 | | \Bbbi | 𝕙 | | \Bbbh | -| 𝕘 | | \Bbbg | 𝕗 | | \Bbbf | 𝕖 | | \Bbbe | 𝕕 | | \Bbbd | -| 𝕔 | | \Bbbc | 𝕓 | | \Bbbb | 𝕒 | | \Bbba | 𝕐 | | \BbbY | -| 𝕏 | | \BbbX | 𝕎 | | \BbbW | 𝕍 | | \BbbV | 𝕌 | | \BbbU | -| 𝕋 | | \BbbT | 𝕊 | | \BbbS | 𝕆 | | \BbbO | 𝕄 | | \BbbM | -| 𝕃 | | \BbbL | 𝕂 | | \BbbK | 𝕁 | | \BbbJ | 𝕀 | | \BbbI | -| 𝔾 | | \BbbG | 𝔽 | | \BbbF | 𝔼 | | \BbbE | 𝔻 | | \BbbD | -| 𝔹 | | \BbbB | 𝔸 | | \BbbA | 𝔷 | | \mfrakz | 𝔶 | | \mfraky | -| 𝔵 | | \mfrakx | 𝔴 | | \mfrakw | 𝔳 | | \mfrakv | 𝔲 | | \mfraku | -| 𝔱 | | \mfrakt | 𝔰 | | \mfraks | 𝔯 | | \mfrakr | 𝔮 | | \mfrakq | -| 𝔭 | | \mfrakp | 𝔬 | | \mfrako | 𝔫 | | \mfrakn | 𝔪 | | \mfrakm | -| 𝔩 | | \mfrakl | 𝔨 | | \mfrakk | 𝔧 | | \mfrakj | 𝔦 | | \mfraki | -| 𝔥 | | \mfrakh | 𝔤 | | \mfrakg | 𝔣 | | \mfrakf | 𝔢 | | \mfrake | -| 𝔡 | | \mfrakd | 𝔠 | | \mfrakc | 𝔟 | | \mfrakb | 𝔞 | | \mfraka | -| 𝔜 | | \mfrakY | 𝔛 | | \mfrakX | 𝔚 | | \mfrakW | 𝔙 | | \mfrakV | -| 𝔘 | | \mfrakU | 𝔗 | | \mfrakT | 𝔖 | | \mfrakS | 𝔔 | | \mfrakQ | -| 𝔓 | | \mfrakP | 𝔒 | | \mfrakO | 𝔑 | | \mfrakN | 𝔐 | | \mfrakM | -| 𝔏 | | \mfrakL | 𝔎 | | \mfrakK | 𝔍 | | \mfrakJ | 𝔊 | | \mfrakG | -| 𝔉 | | \mfrakF | 𝔈 | | \mfrakE | 𝔇 | | \mfrakD | 𝔅 | | \mfrakB | -| 𝔄 | | \mfrakA | 𝔃 | | \mbfscrz | 𝔂 | | \mbfscry | 𝔁 | | \mbfscrx | -| 𝔀 | | \mbfscrw | 𝓿 | | \mbfscrv | 𝓾 | | \mbfscru | 𝓽 | | \mbfscrt | -| 𝓼 | | \mbfscrs | 𝓻 | | \mbfscrr | 𝓺 | | \mbfscrq | 𝓹 | | \mbfscrp | -| 𝓸 | | \mbfscro | 𝓷 | | \mbfscrn | 𝓶 | | \mbfscrm | 𝓵 | | \mbfscrl | -| 𝓴 | | \mbfscrk | 𝓳 | | \mbfscrj | 𝓲 | | \mbfscri | 𝓱 | | \mbfscrh | -| 𝓰 | | \mbfscrg | 𝓯 | | \mbfscrf | 𝓮 | | \mbfscre | 𝓭 | | \mbfscrd | -| 𝓬 | | \mbfscrc | 𝓫 | | \mbfscrb | 𝓪 | | \mbfscra | 𝓩 | | \mbfscrZ | -| 𝓨 | | \mbfscrY | 𝓧 | | \mbfscrX | 𝓦 | | \mbfscrW | 𝓥 | | \mbfscrV | -| 𝓤 | | \mbfscrU | 𝓣 | | \mbfscrT | 𝓢 | | \mbfscrS | 𝓡 | | \mbfscrR | -| 𝓠 | | \mbfscrQ | 𝓟 | | \mbfscrP | 𝓞 | | \mbfscrO | 𝓝 | | \mbfscrN | -| 𝓜 | | \mbfscrM | 𝓛 | | \mbfscrL | 𝓚 | | \mbfscrK | 𝓙 | | \mbfscrJ | -| 𝓘 | | \mbfscrI | 𝓗 | | \mbfscrH | 𝓖 | | \mbfscrG | 𝓕 | | \mbfscrF | -| 𝓔 | | \mbfscrE | 𝓓 | | \mbfscrD | 𝓒 | | \mbfscrC | 𝓑 | | \mbfscrB | -| 𝓐 | | \mbfscrA | 𝓏 | | \mscrz | 𝓎 | | \mscry | 𝓍 | | \mscrx | -| 𝓌 | | \mscrw | 𝓋 | | \mscrv | 𝓊 | | \mscru | 𝓉 | | \mscrt | -| 𝓈 | | \mscrs | 𝓇 | | \mscrr | 𝓆 | | \mscrq | 𝓅 | | \mscrp | -| 𝓃 | | \mscrn | 𝓂 | | \mscrm | 𝓁 | | \mscrl | 𝓀 | | \mscrk | -| 𝒿 | | \mscrj | 𝒾 | | \mscri | 𝒽 | | \mscrh | 𝒻 | | \mscrf | -| 𝒹 | | \mscrd | 𝒸 | | \mscrc | 𝒷 | | \mscrb | 𝒶 | | \mscra | -| 𝒵 | | \mscrZ | 𝒴 | | \mscrY | 𝒳 | | \mscrX | 𝒲 | | \mscrW | -| 𝒱 | | \mscrV | 𝒰 | | \mscrU | 𝒯 | | \mscrT | 𝒮 | | \mscrS | -| 𝒬 | | \mscrQ | 𝒫 | | \mscrP | 𝒪 | | \mscrO | 𝒩 | | \mscrN | -| 𝒦 | | \mscrK | 𝒥 | | \mscrJ | 𝒢 | | \mscrG | 𝒟 | | \mscrD | -| 𝒞 | | \mscrC | 𝒜 | | \mscrA | 𝒛 | | \mbfitz | 𝒚 | | \mbfity | -| 𝒙 | | \mbfitx | 𝒘 | | \mbfitw | 𝒗 | | \mbfitv | 𝒖 | | \mbfitu | -| 𝒕 | | \mbfitt | 𝒔 | | \mbfits | 𝒓 | | \mbfitr | 𝒒 | | \mbfitq | -| 𝒑 | | \mbfitp | 𝒐 | | \mbfito | 𝒏 | | \mbfitn | 𝒎 | | \mbfitm | -| 𝒍 | | \mbfitl | 𝒌 | | \mbfitk | 𝒋 | | \mbfitj | 𝒊 | | \mbfiti | -| 𝒉 | | \mbfith | 𝒈 | | \mbfitg | 𝒇 | | \mbfitf | 𝒆 | | \mbfite | -| 𝒅 | | \mbfitd | 𝒄 | | \mbfitc | 𝒃 | | \mbfitb | 𝒂 | | \mbfita | -| 𝒁 | | \mbfitZ | 𝒀 | | \mbfitY | 𝑿 | | \mbfitX | 𝑾 | | \mbfitW | -| 𝑽 | | \mbfitV | 𝑼 | | \mbfitU | 𝑻 | | \mbfitT | 𝑺 | | \mbfitS | -| 𝑹 | | \mbfitR | 𝑸 | | \mbfitQ | 𝑷 | | \mbfitP | 𝑶 | | \mbfitO | -| 𝑵 | | \mbfitN | 𝑴 | | \mbfitM | 𝑳 | | \mbfitL | 𝑲 | | \mbfitK | -| 𝑱 | | \mbfitJ | 𝑰 | | \mbfitI | 𝑯 | | \mbfitH | 𝑮 | | \mbfitG | -| 𝑭 | | \mbfitF | 𝑬 | | \mbfitE | 𝑫 | | \mbfitD | 𝑪 | | \mbfitC | -| 𝑩 | | \mbfitB | 𝑨 | | \mbfitA | 𝑧 | | \mitz | 𝑦 | | \mity | -| 𝑥 | | \mitx | 𝑤 | | \mitw | 𝑣 | | \mitv | 𝑢 | | \mitu | -| 𝑡 | | \mitt | 𝑠 | | \mits | 𝑟 | | \mitr | 𝑞 | | \mitq | -| 𝑝 | | \mitp | 𝑜 | | \mito | 𝑛 | | \mitn | 𝑚 | | \mitm | -| 𝑙 | | \mitl | 𝑘 | | \mitk | 𝑗 | | \mitj | 𝑖 | | \miti | -| 𝑔 | | \mitg | 𝑓 | | \mitf | 𝑒 | | \mite | 𝑑 | | \mitd | -| 𝑐 | | \mitc | 𝑏 | | \mitb | 𝑎 | | \mita | 𝑍 | | \mitZ | -| 𝑌 | | \mitY | 𝑋 | | \mitX | 𝑊 | | \mitW | 𝑉 | | \mitV | -| 𝑈 | | \mitU | 𝑇 | | \mitT | 𝑆 | | \mitS | 𝑅 | | \mitR | -| 𝑄 | | \mitQ | 𝑃 | | \mitP | 𝑂 | | \mitO | 𝑁 | | \mitN | -| 𝑀 | | \mitM | 𝐿 | | \mitL | 𝐾 | | \mitK | 𝐽 | | \mitJ | -| 𝐼 | | \mitI | 𝐻 | | \mitH | 𝐺 | | \mitG | 𝐹 | | \mitF | -| 𝐸 | | \mitE | 𝐷 | | \mitD | 𝐶 | | \mitC | 𝐵 | | \mitB | -| 𝐴 | | \mitA | 𝐳 | | \mbfz | 𝐲 | | \mbfy | 𝐱 | | \mbfx | -| 𝐰 | | \mbfw | 𝐯 | | \mbfv | 𝐮 | | \mbfu | 𝐭 | | \mbft | -| 𝐬 | | \mbfs | 𝐫 | | \mbfr | 𝐪 | | \mbfq | 𝐩 | | \mbfp | -| 𝐨 | | \mbfo | 𝐧 | | \mbfn | 𝐦 | | \mbfm | 𝐥 | | \mbfl | -| 𝐤 | | \mbfk | 𝐣 | | \mbfj | 𝐢 | | \mbfi | 𝐡 | | \mbfh | -| 𝐠 | | \mbfg | 𝐟 | | \mbff | 𝐞 | | \mbfe | 𝐝 | | \mbfd | -| 𝐜 | | \mbfc | 𝐛 | | \mbfb | 𝐚 | | \mbfa | 𝐙 | | \mbfZ | -| 𝐘 | | \mbfY | 𝐗 | | \mbfX | 𝐖 | | \mbfW | 𝐕 | | \mbfV | -| 𝐔 | | \mbfU | 𝐓 | | \mbfT | 𝐒 | | \mbfS | 𝐑 | | \mbfR | -| 𝐐 | | \mbfQ | 𝐏 | | \mbfP | 𝐎 | | \mbfO | 𝐍 | | \mbfN | -| 𝐌 | | \mbfM | 𝐋 | | \mbfL | 𝐊 | | \mbfK | 𝐉 | | \mbfJ | -| 𝐈 | | \mbfI | 𝐇 | | \mbfH | 𝐆 | | \mbfG | 𝐅 | | \mbfF | -| 𝐄 | | \mbfE | 𝐃 | | \mbfD | 𝐂 | | \mbfC | 𝐁 | | \mbfB | -| 𝐀 | | \mbfA | ϶ | | \upbackepsilon | ϰ | | \varkappa | ϐ | | \varbeta | -| ο | | \mupomicron | Χ | | \mupChi | Τ | | \mupTau | Ρ | | \mupRho | -| Ο | | \mupOmicron | Ν | | \mupNu | Μ | | \mupMu | Λ | | \mupLambda | -| Κ | | \mupKappa | Ι | | \mupIota | Θ | | \mupTheta | Η | | \mupEta | -| Ζ | | \mupZeta | Ε | | \mupEpsilon | Δ | | \mupDelta | Γ | | \mupGamma | -| Β | | \mupBeta | Α | | \mupAlpha | ͍ | | \underleftrightarrow | ̚ | | \droang | -| ̕ | | \ocommatopright | ̒ | | \oturnedcomma | ̐ | | \candra | ̌ | | \check | -| ̉ | | \ovhook | ̈ | | \ddot | ̇ | | \dot | ̆ | | \breve | -| ̃ | | \tilde | ́ | | \acute | ̀ | | \grave | € | | \euro | +| € | | \euro | ̀ | | \grave | ́ | | \acute | ̃ | | \tilde | +| ̆ | | \breve | ̇ | | \dot | ̈ | | \ddot | ̉ | | \ovhook | +| ̌ | | \check | ̐ | | \candra | ̒ | | \oturnedcomma | ̕ | | \ocommatopright | +| ̚ | | \droang | ͍ | | \underleftrightarrow | Α | | \mupAlpha | Β | | \mupBeta | +| Γ | | \mupGamma | Δ | | \mupDelta | Ε | | \mupEpsilon | Ζ | | \mupZeta | +| Η | | \mupEta | Θ | | \mupTheta | Ι | | \mupIota | Κ | | \mupKappa | +| Λ | | \mupLambda | Μ | | \mupMu | Ν | | \mupNu | Ο | | \mupOmicron | +| Ρ | | \mupRho | Τ | | \mupTau | Χ | | \mupChi | ο | | \mupomicron | +| ϐ | | \varbeta | ϰ | | \varkappa | ϶ | | \upbackepsilon | 𝐀 | | \mbfA | +| 𝐁 | | \mbfB | 𝐂 | | \mbfC | 𝐃 | | \mbfD | 𝐄 | | \mbfE | +| 𝐅 | | \mbfF | 𝐆 | | \mbfG | 𝐇 | | \mbfH | 𝐈 | | \mbfI | +| 𝐉 | | \mbfJ | 𝐊 | | \mbfK | 𝐋 | | \mbfL | 𝐌 | | \mbfM | +| 𝐍 | | \mbfN | 𝐎 | | \mbfO | 𝐏 | | \mbfP | 𝐐 | | \mbfQ | +| 𝐑 | | \mbfR | 𝐒 | | \mbfS | 𝐓 | | \mbfT | 𝐔 | | \mbfU | +| 𝐕 | | \mbfV | 𝐖 | | \mbfW | 𝐗 | | \mbfX | 𝐘 | | \mbfY | +| 𝐙 | | \mbfZ | 𝐚 | | \mbfa | 𝐛 | | \mbfb | 𝐜 | | \mbfc | +| 𝐝 | | \mbfd | 𝐞 | | \mbfe | 𝐟 | | \mbff | 𝐠 | | \mbfg | +| 𝐡 | | \mbfh | 𝐢 | | \mbfi | 𝐣 | | \mbfj | 𝐤 | | \mbfk | +| 𝐥 | | \mbfl | 𝐦 | | \mbfm | 𝐧 | | \mbfn | 𝐨 | | \mbfo | +| 𝐩 | | \mbfp | 𝐪 | | \mbfq | 𝐫 | | \mbfr | 𝐬 | | \mbfs | +| 𝐭 | | \mbft | 𝐮 | | \mbfu | 𝐯 | | \mbfv | 𝐰 | | \mbfw | +| 𝐱 | | \mbfx | 𝐲 | | \mbfy | 𝐳 | | \mbfz | 𝐴 | | \mitA | +| 𝐵 | | \mitB | 𝐶 | | \mitC | 𝐷 | | \mitD | 𝐸 | | \mitE | +| 𝐹 | | \mitF | 𝐺 | | \mitG | 𝐻 | | \mitH | 𝐼 | | \mitI | +| 𝐽 | | \mitJ | 𝐾 | | \mitK | 𝐿 | | \mitL | 𝑀 | | \mitM | +| 𝑁 | | \mitN | 𝑂 | | \mitO | 𝑃 | | \mitP | 𝑄 | | \mitQ | +| 𝑅 | | \mitR | 𝑆 | | \mitS | 𝑇 | | \mitT | 𝑈 | | \mitU | +| 𝑉 | | \mitV | 𝑊 | | \mitW | 𝑋 | | \mitX | 𝑌 | | \mitY | +| 𝑍 | | \mitZ | 𝑎 | | \mita | 𝑏 | | \mitb | 𝑐 | | \mitc | +| 𝑑 | | \mitd | 𝑒 | | \mite | 𝑓 | | \mitf | 𝑔 | | \mitg | +| 𝑖 | | \miti | 𝑗 | | \mitj | 𝑘 | | \mitk | 𝑙 | | \mitl | +| 𝑚 | | \mitm | 𝑛 | | \mitn | 𝑜 | | \mito | 𝑝 | | \mitp | +| 𝑞 | | \mitq | 𝑟 | | \mitr | 𝑠 | | \mits | 𝑡 | | \mitt | +| 𝑢 | | \mitu | 𝑣 | | \mitv | 𝑤 | | \mitw | 𝑥 | | \mitx | +| 𝑦 | | \mity | 𝑧 | | \mitz | 𝑨 | | \mbfitA | 𝑩 | | \mbfitB | +| 𝑪 | | \mbfitC | 𝑫 | | \mbfitD | 𝑬 | | \mbfitE | 𝑭 | | \mbfitF | +| 𝑮 | | \mbfitG | 𝑯 | | \mbfitH | 𝑰 | | \mbfitI | 𝑱 | | \mbfitJ | +| 𝑲 | | \mbfitK | 𝑳 | | \mbfitL | 𝑴 | | \mbfitM | 𝑵 | | \mbfitN | +| 𝑶 | | \mbfitO | 𝑷 | | \mbfitP | 𝑸 | | \mbfitQ | 𝑹 | | \mbfitR | +| 𝑺 | | \mbfitS | 𝑻 | | \mbfitT | 𝑼 | | \mbfitU | 𝑽 | | \mbfitV | +| 𝑾 | | \mbfitW | 𝑿 | | \mbfitX | 𝒀 | | \mbfitY | 𝒁 | | \mbfitZ | +| 𝒂 | | \mbfita | 𝒃 | | \mbfitb | 𝒄 | | \mbfitc | 𝒅 | | \mbfitd | +| 𝒆 | | \mbfite | 𝒇 | | \mbfitf | 𝒈 | | \mbfitg | 𝒉 | | \mbfith | +| 𝒊 | | \mbfiti | 𝒋 | | \mbfitj | 𝒌 | | \mbfitk | 𝒍 | | \mbfitl | +| 𝒎 | | \mbfitm | 𝒏 | | \mbfitn | 𝒐 | | \mbfito | 𝒑 | | \mbfitp | +| 𝒒 | | \mbfitq | 𝒓 | | \mbfitr | 𝒔 | | \mbfits | 𝒕 | | \mbfitt | +| 𝒖 | | \mbfitu | 𝒗 | | \mbfitv | 𝒘 | | \mbfitw | 𝒙 | | \mbfitx | +| 𝒚 | | \mbfity | 𝒛 | | \mbfitz | 𝒜 | | \mscrA | 𝒞 | | \mscrC | +| 𝒟 | | \mscrD | 𝒢 | | \mscrG | 𝒥 | | \mscrJ | 𝒦 | | \mscrK | +| 𝒩 | | \mscrN | 𝒪 | | \mscrO | 𝒫 | | \mscrP | 𝒬 | | \mscrQ | +| 𝒮 | | \mscrS | 𝒯 | | \mscrT | 𝒰 | | \mscrU | 𝒱 | | \mscrV | +| 𝒲 | | \mscrW | 𝒳 | | \mscrX | 𝒴 | | \mscrY | 𝒵 | | \mscrZ | +| 𝒶 | | \mscra | 𝒷 | | \mscrb | 𝒸 | | \mscrc | 𝒹 | | \mscrd | +| 𝒻 | | \mscrf | 𝒽 | | \mscrh | 𝒾 | | \mscri | 𝒿 | | \mscrj | +| 𝓀 | | \mscrk | 𝓁 | | \mscrl | 𝓂 | | \mscrm | 𝓃 | | \mscrn | +| 𝓅 | | \mscrp | 𝓆 | | \mscrq | 𝓇 | | \mscrr | 𝓈 | | \mscrs | +| 𝓉 | | \mscrt | 𝓊 | | \mscru | 𝓋 | | \mscrv | 𝓌 | | \mscrw | +| 𝓍 | | \mscrx | 𝓎 | | \mscry | 𝓏 | | \mscrz | 𝓐 | | \mbfscrA | +| 𝓑 | | \mbfscrB | 𝓒 | | \mbfscrC | 𝓓 | | \mbfscrD | 𝓔 | | \mbfscrE | +| 𝓕 | | \mbfscrF | 𝓖 | | \mbfscrG | 𝓗 | | \mbfscrH | 𝓘 | | \mbfscrI | +| 𝓙 | | \mbfscrJ | 𝓚 | | \mbfscrK | 𝓛 | | \mbfscrL | 𝓜 | | \mbfscrM | +| 𝓝 | | \mbfscrN | 𝓞 | | \mbfscrO | 𝓟 | | \mbfscrP | 𝓠 | | \mbfscrQ | +| 𝓡 | | \mbfscrR | 𝓢 | | \mbfscrS | 𝓣 | | \mbfscrT | 𝓤 | | \mbfscrU | +| 𝓥 | | \mbfscrV | 𝓦 | | \mbfscrW | 𝓧 | | \mbfscrX | 𝓨 | | \mbfscrY | +| 𝓩 | | \mbfscrZ | 𝓪 | | \mbfscra | 𝓫 | | \mbfscrb | 𝓬 | | \mbfscrc | +| 𝓭 | | \mbfscrd | 𝓮 | | \mbfscre | 𝓯 | | \mbfscrf | 𝓰 | | \mbfscrg | +| 𝓱 | | \mbfscrh | 𝓲 | | \mbfscri | 𝓳 | | \mbfscrj | 𝓴 | | \mbfscrk | +| 𝓵 | | \mbfscrl | 𝓶 | | \mbfscrm | 𝓷 | | \mbfscrn | 𝓸 | | \mbfscro | +| 𝓹 | | \mbfscrp | 𝓺 | | \mbfscrq | 𝓻 | | \mbfscrr | 𝓼 | | \mbfscrs | +| 𝓽 | | \mbfscrt | 𝓾 | | \mbfscru | 𝓿 | | \mbfscrv | 𝔀 | | \mbfscrw | +| 𝔁 | | \mbfscrx | 𝔂 | | \mbfscry | 𝔃 | | \mbfscrz | 𝔄 | | \mfrakA | +| 𝔅 | | \mfrakB | 𝔇 | | \mfrakD | 𝔈 | | \mfrakE | 𝔉 | | \mfrakF | +| 𝔊 | | \mfrakG | 𝔍 | | \mfrakJ | 𝔎 | | \mfrakK | 𝔏 | | \mfrakL | +| 𝔐 | | \mfrakM | 𝔑 | | \mfrakN | 𝔒 | | \mfrakO | 𝔓 | | \mfrakP | +| 𝔔 | | \mfrakQ | 𝔖 | | \mfrakS | 𝔗 | | \mfrakT | 𝔘 | | \mfrakU | +| 𝔙 | | \mfrakV | 𝔚 | | \mfrakW | 𝔛 | | \mfrakX | 𝔜 | | \mfrakY | +| 𝔞 | | \mfraka | 𝔟 | | \mfrakb | 𝔠 | | \mfrakc | 𝔡 | | \mfrakd | +| 𝔢 | | \mfrake | 𝔣 | | \mfrakf | 𝔤 | | \mfrakg | 𝔥 | | \mfrakh | +| 𝔦 | | \mfraki | 𝔧 | | \mfrakj | 𝔨 | | \mfrakk | 𝔩 | | \mfrakl | +| 𝔪 | | \mfrakm | 𝔫 | | \mfrakn | 𝔬 | | \mfrako | 𝔭 | | \mfrakp | +| 𝔮 | | \mfrakq | 𝔯 | | \mfrakr | 𝔰 | | \mfraks | 𝔱 | | \mfrakt | +| 𝔲 | | \mfraku | 𝔳 | | \mfrakv | 𝔴 | | \mfrakw | 𝔵 | | \mfrakx | +| 𝔶 | | \mfraky | 𝔷 | | \mfrakz | 𝔸 | | \BbbA | 𝔹 | | \BbbB | +| 𝔻 | | \BbbD | 𝔼 | | \BbbE | 𝔽 | | \BbbF | 𝔾 | | \BbbG | +| 𝕀 | | \BbbI | 𝕁 | | \BbbJ | 𝕂 | | \BbbK | 𝕃 | | \BbbL | +| 𝕄 | | \BbbM | 𝕆 | | \BbbO | 𝕊 | | \BbbS | 𝕋 | | \BbbT | +| 𝕌 | | \BbbU | 𝕍 | | \BbbV | 𝕎 | | \BbbW | 𝕏 | | \BbbX | +| 𝕐 | | \BbbY | 𝕒 | | \Bbba | 𝕓 | | \Bbbb | 𝕔 | | \Bbbc | +| 𝕕 | | \Bbbd | 𝕖 | | \Bbbe | 𝕗 | | \Bbbf | 𝕘 | | \Bbbg | +| 𝕙 | | \Bbbh | 𝕚 | | \Bbbi | 𝕛 | | \Bbbj | 𝕜 | | \Bbbk | +| 𝕝 | | \Bbbl | 𝕞 | | \Bbbm | 𝕟 | | \Bbbn | 𝕠 | | \Bbbo | +| 𝕡 | | \Bbbp | 𝕢 | | \Bbbq | 𝕣 | | \Bbbr | 𝕤 | | \Bbbs | +| 𝕥 | | \Bbbt | 𝕦 | | \Bbbu | 𝕧 | | \Bbbv | 𝕨 | | \Bbbw | +| 𝕩 | | \Bbbx | 𝕪 | | \Bbby | 𝕫 | | \Bbbz | 𝕬 | | \mbffrakA | +| 𝕭 | | \mbffrakB | 𝕮 | | \mbffrakC | 𝕯 | | \mbffrakD | 𝕰 | | \mbffrakE | +| 𝕱 | | \mbffrakF | 𝕲 | | \mbffrakG | 𝕳 | | \mbffrakH | 𝕴 | | \mbffrakI | +| 𝕵 | | \mbffrakJ | 𝕶 | | \mbffrakK | 𝕷 | | \mbffrakL | 𝕸 | | \mbffrakM | +| 𝕹 | | \mbffrakN | 𝕺 | | \mbffrakO | 𝕻 | | \mbffrakP | 𝕼 | | \mbffrakQ | +| 𝕽 | | \mbffrakR | 𝕾 | | \mbffrakS | 𝕿 | | \mbffrakT | 𝖀 | | \mbffrakU | +| 𝖁 | | \mbffrakV | 𝖂 | | \mbffrakW | 𝖃 | | \mbffrakX | 𝖄 | | \mbffrakY | +| 𝖅 | | \mbffrakZ | 𝖆 | | \mbffraka | 𝖇 | | \mbffrakb | 𝖈 | | \mbffrakc | +| 𝖉 | | \mbffrakd | 𝖊 | | \mbffrake | 𝖋 | | \mbffrakf | 𝖌 | | \mbffrakg | +| 𝖍 | | \mbffrakh | 𝖎 | | \mbffraki | 𝖏 | | \mbffrakj | 𝖐 | | \mbffrakk | +| 𝖑 | | \mbffrakl | 𝖒 | | \mbffrakm | 𝖓 | | \mbffrakn | 𝖔 | | \mbffrako | +| 𝖕 | | \mbffrakp | 𝖖 | | \mbffrakq | 𝖗 | | \mbffrakr | 𝖘 | | \mbffraks | +| 𝖙 | | \mbffrakt | 𝖚 | | \mbffraku | 𝖛 | | \mbffrakv | 𝖜 | | \mbffrakw | +| 𝖝 | | \mbffrakx | 𝖞 | | \mbffraky | 𝖟 | | \mbffrakz | 𝖠 | | \msansA | +| 𝖡 | | \msansB | 𝖢 | | \msansC | 𝖣 | | \msansD | 𝖤 | | \msansE | +| 𝖥 | | \msansF | 𝖦 | | \msansG | 𝖧 | | \msansH | 𝖨 | | \msansI | +| 𝖩 | | \msansJ | 𝖪 | | \msansK | 𝖫 | | \msansL | 𝖬 | | \msansM | +| 𝖭 | | \msansN | 𝖮 | | \msansO | 𝖯 | | \msansP | 𝖰 | | \msansQ | +| 𝖱 | | \msansR | 𝖲 | | \msansS | 𝖳 | | \msansT | 𝖴 | | \msansU | +| 𝖵 | | \msansV | 𝖶 | | \msansW | 𝖷 | | \msansX | 𝖸 | | \msansY | +| 𝖹 | | \msansZ | 𝖺 | | \msansa | 𝖻 | | \msansb | 𝖼 | | \msansc | +| 𝖽 | | \msansd | 𝖾 | | \msanse | 𝖿 | | \msansf | 𝗀 | | \msansg | +| 𝗁 | | \msansh | 𝗂 | | \msansi | 𝗃 | | \msansj | 𝗄 | | \msansk | +| 𝗅 | | \msansl | 𝗆 | | \msansm | 𝗇 | | \msansn | 𝗈 | | \msanso | +| 𝗉 | | \msansp | 𝗊 | | \msansq | 𝗋 | | \msansr | 𝗌 | | \msanss | +| 𝗍 | | \msanst | 𝗎 | | \msansu | 𝗏 | | \msansv | 𝗐 | | \msansw | +| 𝗑 | | \msansx | 𝗒 | | \msansy | 𝗓 | | \msansz | 𝗔 | | \mbfsansA | +| 𝗕 | | \mbfsansB | 𝗖 | | \mbfsansC | 𝗗 | | \mbfsansD | 𝗘 | | \mbfsansE | +| 𝗙 | | \mbfsansF | 𝗚 | | \mbfsansG | 𝗛 | | \mbfsansH | 𝗜 | | \mbfsansI | +| 𝗝 | | \mbfsansJ | 𝗞 | | \mbfsansK | 𝗟 | | \mbfsansL | 𝗠 | | \mbfsansM | +| 𝗡 | | \mbfsansN | 𝗢 | | \mbfsansO | 𝗣 | | \mbfsansP | 𝗤 | | \mbfsansQ | +| 𝗥 | | \mbfsansR | 𝗦 | | \mbfsansS | 𝗧 | | \mbfsansT | 𝗨 | | \mbfsansU | +| 𝗩 | | \mbfsansV | 𝗪 | | \mbfsansW | 𝗫 | | \mbfsansX | 𝗬 | | \mbfsansY | +| 𝗭 | | \mbfsansZ | 𝗮 | | \mbfsansa | 𝗯 | | \mbfsansb | 𝗰 | | \mbfsansc | +| 𝗱 | | \mbfsansd | 𝗲 | | \mbfsanse | 𝗳 | | \mbfsansf | 𝗴 | | \mbfsansg | +| 𝗵 | | \mbfsansh | 𝗶 | | \mbfsansi | 𝗷 | | \mbfsansj | 𝗸 | | \mbfsansk | +| 𝗹 | | \mbfsansl | 𝗺 | | \mbfsansm | 𝗻 | | \mbfsansn | 𝗼 | | \mbfsanso | +| 𝗽 | | \mbfsansp | 𝗾 | | \mbfsansq | 𝗿 | | \mbfsansr | 𝘀 | | \mbfsanss | +| 𝘁 | | \mbfsanst | 𝘂 | | \mbfsansu | 𝘃 | | \mbfsansv | 𝘄 | | \mbfsansw | +| 𝘅 | | \mbfsansx | 𝘆 | | \mbfsansy | 𝘇 | | \mbfsansz | 𝘈 | | \mitsansA | +| 𝘉 | | \mitsansB | 𝘊 | | \mitsansC | 𝘋 | | \mitsansD | 𝘌 | | \mitsansE | +| 𝘍 | | \mitsansF | 𝘎 | | \mitsansG | 𝘏 | | \mitsansH | 𝘐 | | \mitsansI | +| 𝘑 | | \mitsansJ | 𝘒 | | \mitsansK | 𝘓 | | \mitsansL | 𝘔 | | \mitsansM | +| 𝘕 | | \mitsansN | 𝘖 | | \mitsansO | 𝘗 | | \mitsansP | 𝘘 | | \mitsansQ | +| 𝘙 | | \mitsansR | 𝘚 | | \mitsansS | 𝘛 | | \mitsansT | 𝘜 | | \mitsansU | +| 𝘝 | | \mitsansV | 𝘞 | | \mitsansW | 𝘟 | | \mitsansX | 𝘠 | | \mitsansY | +| 𝘡 | | \mitsansZ | 𝘢 | | \mitsansa | 𝘣 | | \mitsansb | 𝘤 | | \mitsansc | +| 𝘥 | | \mitsansd | 𝘦 | | \mitsanse | 𝘧 | | \mitsansf | 𝘨 | | \mitsansg | +| 𝘩 | | \mitsansh | 𝘪 | | \mitsansi | 𝘫 | | \mitsansj | 𝘬 | | \mitsansk | +| 𝘭 | | \mitsansl | 𝘮 | | \mitsansm | 𝘯 | | \mitsansn | 𝘰 | | \mitsanso | +| 𝘱 | | \mitsansp | 𝘲 | | \mitsansq | 𝘳 | | \mitsansr | 𝘴 | | \mitsanss | +| 𝘵 | | \mitsanst | 𝘶 | | \mitsansu | 𝘷 | | \mitsansv | 𝘸 | | \mitsansw | +| 𝘹 | | \mitsansx | 𝘺 | | \mitsansy | 𝘻 | | \mitsansz | 𝘼 | | \mbfitsansA | +| 𝘽 | | \mbfitsansB | 𝘾 | | \mbfitsansC | 𝘿 | | \mbfitsansD | 𝙀 | | \mbfitsansE | +| 𝙁 | | \mbfitsansF | 𝙂 | | \mbfitsansG | 𝙃 | | \mbfitsansH | 𝙄 | | \mbfitsansI | +| 𝙅 | | \mbfitsansJ | 𝙆 | | \mbfitsansK | 𝙇 | | \mbfitsansL | 𝙈 | | \mbfitsansM | +| 𝙉 | | \mbfitsansN | 𝙊 | | \mbfitsansO | 𝙋 | | \mbfitsansP | 𝙌 | | \mbfitsansQ | +| 𝙍 | | \mbfitsansR | 𝙎 | | \mbfitsansS | 𝙏 | | \mbfitsansT | 𝙐 | | \mbfitsansU | +| 𝙑 | | \mbfitsansV | 𝙒 | | \mbfitsansW | 𝙓 | | \mbfitsansX | 𝙔 | | \mbfitsansY | +| 𝙕 | | \mbfitsansZ | 𝙖 | | \mbfitsansa | 𝙗 | | \mbfitsansb | 𝙘 | | \mbfitsansc | +| 𝙙 | | \mbfitsansd | 𝙚 | | \mbfitsanse | 𝙛 | | \mbfitsansf | 𝙜 | | \mbfitsansg | +| 𝙝 | | \mbfitsansh | 𝙞 | | \mbfitsansi | 𝙟 | | \mbfitsansj | 𝙠 | | \mbfitsansk | +| 𝙡 | | \mbfitsansl | 𝙢 | | \mbfitsansm | 𝙣 | | \mbfitsansn | 𝙤 | | \mbfitsanso | +| 𝙥 | | \mbfitsansp | 𝙦 | | \mbfitsansq | 𝙧 | | \mbfitsansr | 𝙨 | | \mbfitsanss | +| 𝙩 | | \mbfitsanst | 𝙪 | | \mbfitsansu | 𝙫 | | \mbfitsansv | 𝙬 | | \mbfitsansw | +| 𝙭 | | \mbfitsansx | 𝙮 | | \mbfitsansy | 𝙯 | | \mbfitsansz | 𝙰 | | \mttA | +| 𝙱 | | \mttB | 𝙲 | | \mttC | 𝙳 | | \mttD | 𝙴 | | \mttE | +| 𝙵 | | \mttF | 𝙶 | | \mttG | 𝙷 | | \mttH | 𝙸 | | \mttI | +| 𝙹 | | \mttJ | 𝙺 | | \mttK | 𝙻 | | \mttL | 𝙼 | | \mttM | +| 𝙽 | | \mttN | 𝙾 | | \mttO | 𝙿 | | \mttP | 𝚀 | | \mttQ | +| 𝚁 | | \mttR | 𝚂 | | \mttS | 𝚃 | | \mttT | 𝚄 | | \mttU | +| 𝚅 | | \mttV | 𝚆 | | \mttW | 𝚇 | | \mttX | 𝚈 | | \mttY | +| 𝚉 | | \mttZ | 𝚊 | | \mtta | 𝚋 | | \mttb | 𝚌 | | \mttc | +| 𝚍 | | \mttd | 𝚎 | | \mtte | 𝚏 | | \mttf | 𝚐 | | \mttg | +| 𝚑 | | \mtth | 𝚒 | | \mtti | 𝚓 | | \mttj | 𝚔 | | \mttk | +| 𝚕 | | \mttl | 𝚖 | | \mttm | 𝚗 | | \mttn | 𝚘 | | \mtto | +| 𝚙 | | \mttp | 𝚚 | | \mttq | 𝚛 | | \mttr | 𝚜 | | \mtts | +| 𝚝 | | \mttt | 𝚞 | | \mttu | 𝚟 | | \mttv | 𝚠 | | \mttw | +| 𝚡 | | \mttx | 𝚢 | | \mtty | 𝚣 | | \mttz | 𝚤 | | \imath | +| 𝚥 | | \jmath | 𝚨 | | \mbfAlpha | 𝚩 | | \mbfBeta | 𝚪 | | \mbfGamma | +| 𝚫 | | \mbfDelta | 𝚬 | | \mbfEpsilon | 𝚭 | | \mbfZeta | 𝚮 | | \mbfEta | +| 𝚯 | | \mbfTheta | 𝚰 | | \mbfIota | 𝚱 | | \mbfKappa | 𝚲 | | \mbfLambda | +| 𝚳 | | \mbfMu | 𝚴 | | \mbfNu | 𝚵 | | \mbfXi | 𝚶 | | \mbfOmicron | +| 𝚷 | | \mbfPi | 𝚸 | | \mbfRho | 𝚹 | | \mbfvarTheta | 𝚺 | | \mbfSigma | +| 𝚻 | | \mbfTau | 𝚼 | | \mbfUpsilon | 𝚽 | | \mbfPhi | 𝚾 | | \mbfChi | +| 𝚿 | | \mbfPsi | 𝛀 | | \mbfOmega | 𝛁 | | \mbfnabla | 𝛂 | | \mbfalpha | +| 𝛃 | | \mbfbeta | 𝛄 | | \mbfgamma | 𝛅 | | \mbfdelta | 𝛆 | | \mbfvarepsilon | +| 𝛇 | | \mbfzeta | 𝛈 | | \mbfeta | 𝛉 | | \mbftheta | 𝛊 | | \mbfiota | +| 𝛋 | | \mbfkappa | 𝛌 | | \mbflambda | 𝛍 | | \mbfmu | 𝛎 | | \mbfnu | +| 𝛏 | | \mbfxi | 𝛐 | | \mbfomicron | 𝛑 | | \mbfpi | 𝛒 | | \mbfrho | +| 𝛓 | | \mbfvarsigma | 𝛔 | | \mbfsigma | 𝛕 | | \mbftau | 𝛖 | | \mbfupsilon | +| 𝛗 | | \mbfvarphi | 𝛘 | | \mbfchi | 𝛙 | | \mbfpsi | 𝛚 | | \mbfomega | +| 𝛛 | | \mbfpartial | 𝛜 | | \mbfepsilon | 𝛝 | | \mbfvartheta | 𝛞 | | \mbfvarkappa | +| 𝛟 | | \mbfphi | 𝛠 | | \mbfvarrho | 𝛡 | | \mbfvarpi | 𝛢 | | \mitAlpha | +| 𝛣 | | \mitBeta | 𝛤 | | \mitGamma | 𝛥 | | \mitDelta | 𝛦 | | \mitEpsilon | +| 𝛧 | | \mitZeta | 𝛨 | | \mitEta | 𝛩 | | \mitTheta | 𝛪 | | \mitIota | +| 𝛫 | | \mitKappa | 𝛬 | | \mitLambda | 𝛭 | | \mitMu | 𝛮 | | \mitNu | +| 𝛯 | | \mitXi | 𝛰 | | \mitOmicron | 𝛱 | | \mitPi | 𝛲 | | \mitRho | +| 𝛳 | | \mitvarTheta | 𝛴 | | \mitSigma | 𝛵 | | \mitTau | 𝛶 | | \mitUpsilon | +| 𝛷 | | \mitPhi | 𝛸 | | \mitChi | 𝛹 | | \mitPsi | 𝛺 | | \mitOmega | +| 𝛻 | | \mitnabla | 𝛼 | | \mitalpha | 𝛽 | | \mitbeta | 𝛾 | | \mitgamma | +| 𝛿 | | \mitdelta | 𝜀 | | \mitvarepsilon | 𝜁 | | \mitzeta | 𝜂 | | \miteta | +| 𝜃 | | \mittheta | 𝜄 | | \mitiota | 𝜅 | | \mitkappa | 𝜆 | | \mitlambda | +| 𝜇 | | \mitmu | 𝜈 | | \mitnu | 𝜉 | | \mitxi | 𝜊 | | \mitomicron | +| 𝜋 | | \mitpi | 𝜌 | | \mitrho | 𝜍 | | \mitvarsigma | 𝜎 | | \mitsigma | +| 𝜏 | | \mittau | 𝜐 | | \mitupsilon | 𝜑 | | \mitvarphi | 𝜒 | | \mitchi | +| 𝜓 | | \mitpsi | 𝜔 | | \mitomega | 𝜕 | | \mitpartial | 𝜖 | | \mitepsilon | +| 𝜗 | | \mitvartheta | 𝜘 | | \mitvarkappa | 𝜙 | | \mitphi | 𝜚 | | \mitvarrho | +| 𝜛 | | \mitvarpi | 𝜜 | | \mbfitAlpha | 𝜝 | | \mbfitBeta | 𝜞 | | \mbfitGamma | +| 𝜟 | | \mbfitDelta | 𝜠 | | \mbfitEpsilon | 𝜡 | | \mbfitZeta | 𝜢 | | \mbfitEta | +| 𝜣 | | \mbfitTheta | 𝜤 | | \mbfitIota | 𝜥 | | \mbfitKappa | 𝜦 | | \mbfitLambda | +| 𝜧 | | \mbfitMu | 𝜨 | | \mbfitNu | 𝜩 | | \mbfitXi | 𝜪 | | \mbfitOmicron | +| 𝜫 | | \mbfitPi | 𝜬 | | \mbfitRho | 𝜭 | | \mbfitvarTheta | 𝜮 | | \mbfitSigma | +| 𝜯 | | \mbfitTau | 𝜰 | | \mbfitUpsilon | 𝜱 | | \mbfitPhi | 𝜲 | | \mbfitChi | +| 𝜳 | | \mbfitPsi | 𝜴 | | \mbfitOmega | 𝜵 | | \mbfitnabla | 𝜶 | | \mbfitalpha | +| 𝜷 | | \mbfitbeta | 𝜸 | | \mbfitgamma | 𝜹 | | \mbfitdelta | 𝜺 | | \mbfitvarepsilon | +| 𝜻 | | \mbfitzeta | 𝜼 | | \mbfiteta | 𝜽 | | \mbfittheta | 𝜾 | | \mbfitiota | +| 𝜿 | | \mbfitkappa | 𝝀 | | \mbfitlambda | 𝝁 | | \mbfitmu | 𝝂 | | \mbfitnu | +| 𝝃 | | \mbfitxi | 𝝄 | | \mbfitomicron | 𝝅 | | \mbfitpi | 𝝆 | | \mbfitrho | +| 𝝇 | | \mbfitvarsigma | 𝝈 | | \mbfitsigma | 𝝉 | | \mbfittau | 𝝊 | | \mbfitupsilon | +| 𝝋 | | \mbfitvarphi | 𝝌 | | \mbfitchi | 𝝍 | | \mbfitpsi | 𝝎 | | \mbfitomega | +| 𝝏 | | \mbfitpartial | 𝝐 | | \mbfitepsilon | 𝝑 | | \mbfitvartheta | 𝝒 | | \mbfitvarkappa | +| 𝝓 | | \mbfitphi | 𝝔 | | \mbfitvarrho | 𝝕 | | \mbfitvarpi | 𝝖 | | \mbfsansAlpha | +| 𝝗 | | \mbfsansBeta | 𝝘 | | \mbfsansGamma | 𝝙 | | \mbfsansDelta | 𝝚 | | \mbfsansEpsilon | +| 𝝛 | | \mbfsansZeta | 𝝜 | | \mbfsansEta | 𝝝 | | \mbfsansTheta | 𝝞 | | \mbfsansIota | +| 𝝟 | | \mbfsansKappa | 𝝠 | | \mbfsansLambda | 𝝡 | | \mbfsansMu | 𝝢 | | \mbfsansNu | +| 𝝣 | | \mbfsansXi | 𝝤 | | \mbfsansOmicron | 𝝥 | | \mbfsansPi | 𝝦 | | \mbfsansRho | +| 𝝧 | | \mbfsansvarTheta | 𝝨 | | \mbfsansSigma | 𝝩 | | \mbfsansTau | 𝝪 | | \mbfsansUpsilon | +| 𝝫 | | \mbfsansPhi | 𝝬 | | \mbfsansChi | 𝝭 | | \mbfsansPsi | 𝝮 | | \mbfsansOmega | +| 𝝯 | | \mbfsansnabla | 𝝰 | | \mbfsansalpha | 𝝱 | | \mbfsansbeta | 𝝲 | | \mbfsansgamma | +| 𝝳 | | \mbfsansdelta | 𝝴 | | \mbfsansvarepsilon | 𝝵 | | \mbfsanszeta | 𝝶 | | \mbfsanseta | +| 𝝷 | | \mbfsanstheta | 𝝸 | | \mbfsansiota | 𝝹 | | \mbfsanskappa | 𝝺 | | \mbfsanslambda | +| 𝝻 | | \mbfsansmu | 𝝼 | | \mbfsansnu | 𝝽 | | \mbfsansxi | 𝝾 | | \mbfsansomicron | +| 𝝿 | | \mbfsanspi | 𝞀 | | \mbfsansrho | 𝞁 | | \mbfsansvarsigma | 𝞂 | | \mbfsanssigma | +| 𝞃 | | \mbfsanstau | 𝞄 | | \mbfsansupsilon | 𝞅 | | \mbfsansvarphi | 𝞆 | | \mbfsanschi | +| 𝞇 | | \mbfsanspsi | 𝞈 | | \mbfsansomega | 𝞉 | | \mbfsanspartial | 𝞊 | | \mbfsansepsilon | +| 𝞋 | | \mbfsansvartheta | 𝞌 | | \mbfsansvarkappa | 𝞍 | | \mbfsansphi | 𝞎 | | \mbfsansvarrho | +| 𝞏 | | \mbfsansvarpi | 𝞐 | | \mbfitsansAlpha | 𝞑 | | \mbfitsansBeta | 𝞒 | | \mbfitsansGamma | +| 𝞓 | | \mbfitsansDelta | 𝞔 | | \mbfitsansEpsilon | 𝞕 | | \mbfitsansZeta | 𝞖 | | \mbfitsansEta | +| 𝞗 | | \mbfitsansTheta | 𝞘 | | \mbfitsansIota | 𝞙 | | \mbfitsansKappa | 𝞚 | | \mbfitsansLambda | +| 𝞛 | | \mbfitsansMu | 𝞜 | | \mbfitsansNu | 𝞝 | | \mbfitsansXi | 𝞞 | | \mbfitsansOmicron | +| 𝞟 | | \mbfitsansPi | 𝞠 | | \mbfitsansRho | 𝞡 | | \mbfitsansvarTheta | 𝞢 | | \mbfitsansSigma | +| 𝞣 | | \mbfitsansTau | 𝞤 | | \mbfitsansUpsilon | 𝞥 | | \mbfitsansPhi | 𝞦 | | \mbfitsansChi | +| 𝞧 | | \mbfitsansPsi | 𝞨 | | \mbfitsansOmega | 𝞩 | | \mbfitsansnabla | 𝞪 | | \mbfitsansalpha | +| 𝞫 | | \mbfitsansbeta | 𝞬 | | \mbfitsansgamma | 𝞭 | | \mbfitsansdelta | 𝞮 | | \mbfitsansvarepsilon | +| 𝞯 | | \mbfitsanszeta | 𝞰 | | \mbfitsanseta | 𝞱 | | \mbfitsanstheta | 𝞲 | | \mbfitsansiota | +| 𝞳 | | \mbfitsanskappa | 𝞴 | | \mbfitsanslambda | 𝞵 | | \mbfitsansmu | 𝞶 | | \mbfitsansnu | +| 𝞷 | | \mbfitsansxi | 𝞸 | | \mbfitsansomicron | 𝞹 | | \mbfitsanspi | 𝞺 | | \mbfitsansrho | +| 𝞻 | | \mbfitsansvarsigma | 𝞼 | | \mbfitsanssigma | 𝞽 | | \mbfitsanstau | 𝞾 | | \mbfitsansupsilon | +| 𝞿 | | \mbfitsansvarphi | 𝟀 | | \mbfitsanschi | 𝟁 | | \mbfitsanspsi | 𝟂 | | \mbfitsansomega | +| 𝟃 | | \mbfitsanspartial | 𝟄 | | \mbfitsansepsilon | 𝟅 | | \mbfitsansvartheta | 𝟆 | | \mbfitsansvarkappa | +| 𝟇 | | \mbfitsansphi | 𝟈 | | \mbfitsansvarrho | 𝟉 | | \mbfitsansvarpi | 𝟊 | | \mbfDigamma | +| 𝟋 | | \mbfdigamma | 𝟎 | | \mbfzero | 𝟏 | | \mbfone | 𝟐 | | \mbftwo | +| 𝟑 | | \mbfthree | 𝟒 | | \mbffour | 𝟓 | | \mbffive | 𝟔 | | \mbfsix | +| 𝟕 | | \mbfseven | 𝟖 | | \mbfeight | 𝟗 | | \mbfnine | 𝟘 | | \Bbbzero | +| 𝟙 | | \Bbbone | 𝟚 | | \Bbbtwo | 𝟛 | | \Bbbthree | 𝟜 | | \Bbbfour | +| 𝟝 | | \Bbbfive | 𝟞 | | \Bbbsix | 𝟟 | | \Bbbseven | 𝟠 | | \Bbbeight | +| 𝟡 | | \Bbbnine | 𝟢 | | \msanszero | 𝟣 | | \msansone | 𝟤 | | \msanstwo | +| 𝟥 | | \msansthree | 𝟦 | | \msansfour | 𝟧 | | \msansfive | 𝟨 | | \msanssix | +| 𝟩 | | \msansseven | 𝟪 | | \msanseight | 𝟫 | | \msansnine | 𝟬 | | \mbfsanszero | +| 𝟭 | | \mbfsansone | 𝟮 | | \mbfsanstwo | 𝟯 | | \mbfsansthree | 𝟰 | | \mbfsansfour | +| 𝟱 | | \mbfsansfive | 𝟲 | | \mbfsanssix | 𝟳 | | \mbfsansseven | 𝟴 | | \mbfsanseight | +| 𝟵 | | \mbfsansnine | 𝟶 | | \mttzero | 𝟷 | | \mttone | 𝟸 | | \mtttwo | +| 𝟹 | | \mttthree | 𝟺 | | \mttfour | 𝟻 | | \mttfive | 𝟼 | | \mttsix | +| 𝟽 | | \mttseven | 𝟾 | | \mtteight | 𝟿 | | \mttnine | ữ0 | | \arabicmaj | +| ữ1 | | \arabichad | ‐ | | \mathhyphen | ― | | \horizbar | ‗ | | \twolowline | +| ‥ | | \enleadertwodots | ″ | | \dprime | ‴ | | \trprime | ‵ | | \backprime | +| ‶ | | \backdprime | ‷ | | \backtrprime | ‸ | | \caretinsert | ‼ | | \Exclam | +| ⁀ | | \tieconcat | ⁃ | | \hyphenbullet | ⁄ | | \fracslash | ⁇ | | \Question | +| ⁐ | | \closure | ⁗ | | \qprime | ⃒ | | \vertoverlay | ⃗ | | \vec | +| ⃛ | | \dddot | ⃜ | | \ddddot | ⃝ | | \enclosecircle | ⃞ | | \enclosesquare | +| ⃟ | | \enclosediamond | ⃡ | | \overleftrightarrow | ⃤ | | \enclosetriangle | ⃧ | | \annuity | +| ⃨ | | \threeunderdot | ⃩ | | \widebridgeabove | ⃬ | | \underrightharpoondown | ⃭ | | \underleftharpoondown | +| ⃮ | | \underleftarrow | ⃯ | | \underrightarrow | ⃰ | | \asteraccent | ℎ | | \Planckconst | +| ℏ | | \hslash | ℒ | | \mscrL | ℛ | | \mscrR | ℧ | | \mho | +| ℩ | | \turnediota | Ⅎ | | \Finv | ℶ | | \beth | ℷ | | \gimel | +| ℸ | | \daleth | ⅁ | | \Game | ⅂ | | \sansLturned | ⅃ | | \sansLmirrored | +| ⅄ | | \Yup | ⅅ | | \CapitalDifferentialD | ⅊ | | \PropertyLine | ↚ | | \nleftarrow | +| ↛ | | \nrightarrow | ↞ | | \twoheadleftarrow | ↟ | | \twoheaduparrow | ↠ | | \twoheadrightarrow | +| ↡ | | \twoheaddownarrow | ↢ | | \leftarrowtail | ↣ | | \rightarrowtail | ↤ | | \mapsfrom | +| ↥ | | \mapsup | ↧ | | \mapsdown | ↨ | | \updownarrowbar | ↫ | | \looparrowleft | +| ↬ | | \looparrowright | ↭ | | \leftrightsquigarrow | ↮ | | \nleftrightarrow | ↰ | | \Lsh | +| ↱ | | \Rsh | ↳ | \reflectbox{\carriagereturn} | \Rdsh | ↴ | | \linefeed | ↵ | | \carriagereturn | +| ↶ | | \curvearrowleft | ↷ | | \curvearrowright | ↸ | | \barovernorthwestarrow | ↹ | | \barleftarrowrightarrowbar | +| ↺ | | \circlearrowleft | ↾ | | \upharpoonright | ↿ | | \upharpoonleft | ⇁ | | \rightharpoondown | +| ⇂ | | \downharpoonright | ⇃ | | \downharpoonleft | ⇄ | | \rightleftarrows | ⇆ | | \leftrightarrows | +| ⇇ | | \leftleftarrows | ⇈ | | \upuparrows | ⇉ | | \rightrightarrows | ⇊ | | \downdownarrows | +| ⇋ | | \leftrightharpoons | ⇍ | | \nLeftarrow | ⇎ | | \nLeftrightarrow | ⇏ | | \nRightarrow | +| ⇖ | | \Nwarrow | ⇗ | | \Nearrow | ⇘ | | \Searrow | ⇙ | | \Swarrow | +| ⇚ | | \Lleftarrow | ⇛ | | \Rrightarrow | ⇜ | | \leftsquigarrow | ⇝ | | \rightsquigarrow | +| ⇞ | | \nHuparrow | ⇟ | | \nHdownarrow | ⇡ | | \updasharrow | ⇣ | | \downdasharrow | +| ⇦ | | \leftwhitearrow | ⇧ | | \upwhitearrow | ⇨ | | \rightwhitearrow | ⇩ | | \downwhitearrow | +| ⇪ | | \whitearrowupfrombar | ⇴ | | \circleonrightarrow | ⇶ | | \rightthreearrows | ⇷ | | \nvleftarrow | +| ⇹ | | \nvleftrightarrow | ⇺ | | \nVleftarrow | ⇼ | | \nVleftrightarrow | ⇽ | | \leftarrowtriangle | +| ⇾ | | \rightarrowtriangle | ⇿ | | \leftrightarrowtriangle | ∁ | | \complement | ∄ | | \nexists | +| ∅ | | \varnothing | ∆ | | \increment | ∇ | | \nabla | ∊ | | \smallin | +| ∍ | | \smallni | ∎ | | \QED | ∔ | | \dotplus | ∕ | | \divslash | +| √ | | \sqrt | ∟ | | \rightangle | ∡ | | \measuredangle | ∢ | | \sphericalangle | +| ∤ | | \nmid | ∦ | | \nparallel | ∲ | | \lcirclerightint | ∴ | | \therefore | +| ∵ | | \because | ∷ | | \Colon | ∹ | | \eqcolon | ∽ | | \backsim | +| ≊ | | \approxeq | ≎ | | \Bumpeq | ≏ | | \bumpeq | ≒ | | \fallingdotseq | +| ≓ | | \risingdotseq | ≔ | | \coloneq | ≖ | | \eqcirc | ≗ | | \circeq | +| ≘ | | \arceq | ≚ | | \veeeq | ≜ | | \triangleq | ≝ | | \eqdef | +| ≞ | | \measeq | ≟ | | \questeq | ≣ | | \Equiv | ≨ | | \lneqq | +| ≩ | | \gneqq | ≬ | | \between | ≭ | | \nasymp | ≴ | | \nlesssim | +| ≵ | | \ngtrsim | ≶ | | \lessgtr | ≷ | | \gtrless | ≼ | | \preccurlyeq | +| ≽ | | \succcurlyeq | ⊊ | | \subsetneq | ⊋ | | \supsetneq | ⊌ | | \cupleftarrow | +| ⊍ | | \cupdot | ⊏ | | \sqsubset | ⊐ | | \sqsupset | ⊚ | | \circledcirc | +| ⊛ | | \circledast | ⊜ | | \circledequal | ⊝ | | \circleddash | ⊞ | | \boxplus | +| ⊟ | | \boxminus | ⊠ | | \boxtimes | ⊡ | | \boxdot | ⊦ | | \assert | +| ⊩ | | \Vdash | ⊪ | | \Vvdash | ⊫ | | \VDash | ⊬ | | \nvdash | +| ⊭ | | \nvDash | ⊮ | | \nVdash | ⊯ | | \nVDash | ⊰ | | \prurel | +| ⊱ | | \scurel | ⊲ | | \vartriangleleft | ⊳ | | \vartriangleright | ⊴ | | \trianglelefteq | +| ⊵ | | \trianglerighteq | ⊸ | | \multimap | ⊺ | | \intercal | ⊻ | | \veebar | +| ⊼ | | \barwedge | ⊽ | | \barvee | ⊿ | | \varlrtriangle | ⋇ | | \divideontimes | +| ⋉ | | \ltimes | ⋊ | | \rtimes | ⋋ | | \leftthreetimes | ⋌ | | \rightthreetimes | +| ⋍ | | \backsimeq | ⋎ | | \curlyvee | ⋏ | | \curlywedge | ⋐ | | \Subset | +| ⋑ | | \Supset | ⋒ | | \Cap | ⋓ | | \Cup | ⋔ | | \pitchfork | +| ⋕ | | \hash | ⋖ | | \lessdot | ⋗ | | \gtrdot | ⋚ | | \lesseqgtr | +| ⋛ | | \gtreqless | ⋜ | | \eqless | ⋝ | | \eqgtr | ⋞ | | \curlyeqprec | +| ⋟ | | \curlyeqsucc | ⋠ | | \npreceq | ⋡ | | \nsucceq | ⋤ | | \sqsubsetneq | +| ⋥ | | \sqsupsetneq | ⋦ | | \lnsim | ⋧ | | \gnsim | ⋨ | | \precedesnotsimilar | +| ⋩ | | \succnsim | ⋬ | | \ntrianglelefteq | ⋭ | | \ntrianglerighteq | ⋲ | | \disin | +| ⋳ | | \varisins | ⋴ | | \isins | ⋵ | | \isindot | ⋷ | | \isinobar | +| ⋸ | | \isinvb | ⋹ | | \isinE | ⋺ | | \nisd | ⋻ | | \varnis | +| ⋼ | | \nis | ⋽ | | \varniobar | ⋾ | | \niobar | ⋿ | | \bagmember | +| ⌀ | | \diameter | ⌂ | | \house | ⌅ | \barwedge | \varbarwedge | ⌐ | | \invneg | +| ⌒ | | \profline | ⌓ | | \profsurf | ⌗ | | \viewdata | ⌙ | | \turnednot | +| ⌜ | | \ulcorner | ⌝ | | \urcorner | ⌞ | | \llcorner | ⌟ | | \lrcorner | +| ⌠ | | \inttop | ⌡ | | \intbottom | ⌬ | | \varhexagonlrbonds | ⌲ | | \conictaper | +| ⌶ | | \topbot | ⌽ | | \obar | ⍓ | | \APLboxupcaret | ⍰ | | \APLboxquestion | +| ⍼ | | \rangledownzigzagarrow | ⎔ | | \hexagon | ⎛ | | \lparenuend | ⎜ | | \lparenextender | +| ⎝ | | \lparenlend | ⎞ | | \rparenuend | ⎟ | | \rparenextender | ⎠ | | \rparenlend | +| ⎡ | | \lbrackuend | ⎢ | | \lbrackextender | ⎣ | | \lbracklend | ⎤ | | \rbrackuend | +| ⎥ | | \rbrackextender | ⎦ | | \rbracklend | ⎧ | | \lbraceuend | ⎨ | | \lbracemid | +| ⎩ | | \lbracelend | ⎪ | | \vbraceextender | ⎫ | | \rbraceuend | ⎬ | | \rbracemid | +| ⎭ | | \rbracelend | ⎮ | | \intextender | ⎯ | | \harrowextender | ⎲ | | \sumtop | +| ⎳ | | \sumbottom | ⎴ | | \overbracket | ⎵ | | \underbracket | ⎶ | | \bbrktbrk | +| ⎷ | | \sqrtbottom | ⎸ | | \lvboxline | ⎹ | | \rvboxline | ⏎ | | \varcarriagereturn | +| ⏜ | | \overparen | ⏝ | | \underparen | ⏞ | | \overbrace | ⏟ | | \underbrace | +| ⏠ | | \obrbrak | ⏡ | | \ubrbrak | ⏢ | | \trapezium | ⏣ | | \benzenr | +| ⏤ | | \strns | ⏥ | | \fltns | ⏦ | | \accurrent | ⏧ | | \elinters | +| ␢ | | \blanksymbol | ␣ | | \mathvisiblespace | ┆ | | \bdtriplevdash | ▀ | | \blockuphalf | +| ▄ | | \blocklowhalf | █ | | \blockfull | ▌ | | \blocklefthalf | ▐ | | \blockrighthalf | +| ░ | | \blockqtrshaded | ▒ | | \blockhalfshaded | ▓ | | \blockthreeqtrshaded | ■ | | \mdlgblksquare | +| ▢ | | \squoval | ▣ | | \blackinwhitesquare | ▤ | | \squarehfill | ▥ | | \squarevfill | +| ▦ | | \squarehvfill | ▧ | | \squarenwsefill | ▨ | | \squareneswfill | ▩ | | \squarecrossfill | +| ▪ | | \smblksquare | ▫ | | \smwhtsquare | ▬ | | \hrectangleblack | ▭ | | \hrectangle | +| ▮ | | \vrectangleblack | ▯ | | \vrectangle | ▰ | | \parallelogramblack | ▱ | | \parallelogram | +| ▲ | | \bigblacktriangleup | △ | | \bigtriangleup | ▴ | | \blacktriangle | ▵ | | \vartriangle | +| ▸ | | \smallblacktriangleright | ▹ | | \smalltriangleright | ► | | \blackpointerright | ▻ | | \whitepointerright | +| ▼ | | \bigblacktriangledown | ▾ | | \blacktriangledown | ▿ | | \triangledown | ◂ | | \smallblacktriangleleft | +| ◃ | | \smalltriangleleft | ◄ | | \blackpointerleft | ◅ | | \whitepointerleft | ◈ | | \blackinwhitediamond | +| ◉ | | \fisheye | ◊ | | \lozenge | ◌ | | \dottedcircle | ◍ | | \circlevertfill | +| ◎ | | \bullseye | ◐ | | \circlelefthalfblack | ◑ | | \circlerighthalfblack | ◒ | | \circlebottomhalfblack | +| ◓ | | \circletophalfblack | ◔ | | \circleurquadblack | ◕ | | \blackcircleulquadwhite | ◖ | | \blacklefthalfcircle | +| ◗ | | \blackrighthalfcircle | ◘ | | \inversebullet | ◙ | | \inversewhitecircle | ◚ | | \invwhiteupperhalfcircle | +| ◛ | | \invwhitelowerhalfcircle | ◜ | | \ularc | ◝ | | \urarc | ◞ | | \lrarc | +| ◟ | | \llarc | ◠ | | \topsemicircle | ◡ | | \botsemicircle | ◢ | | \lrblacktriangle | +| ◣ | | \llblacktriangle | ◤ | | \ulblacktriangle | ◥ | | \urblacktriangle | ◦ | | \smwhtcircle | +| ◧ | | \squareleftblack | ◨ | | \squarerightblack | ◩ | | \squareulblack | ◪ | | \squarelrblack | +| ◫ | | \boxbar | ◬ | | \trianglecdot | ◭ | | \triangleleftblack | ◮ | | \trianglerightblack | +| ◰ | | \squareulquad | ◱ | | \squarellquad | ◲ | | \squarelrquad | ◳ | | \squareurquad | +| ◴ | | \circleulquad | ◵ | | \circlellquad | ◶ | | \circlelrquad | ◷ | | \circleurquad | +| ◸ | | \ultriangle | ◹ | | \urtriangle | ◺ | | \lltriangle | ◻ | | \mdwhtsquare | +| ◼ | | \mdblksquare | ◽ | | \mdsmwhtsquare | ◾ | | \mdsmblksquare | ◿ | | \lrtriangle | +| ★ | | \bigstar | ☆ | | \bigwhitestar | ☡ | | \danger | ☻ | | \blacksmiley | +| ☼ | | \sun | ☽ | | \rightmoon | ☾ | | \leftmoon | ♀ | | \female | +| ♂ | | \male | ♤ | | \varspadesuit | ♥ | | \varheartsuit | ♦ | | \vardiamondsuit | +| ♧ | | \varclubsuit | ♩ | | \quarternote | ♪ | | \eighthnote | ♫ | | \twonotes | +| ♬ | | \sixteenthnote | ♾ | | \acidfree | ⚀ | | \dicei | ⚁ | | \diceii | +| ⚂ | | \diceiii | ⚃ | | \diceiv | ⚄ | | \dicev | ⚅ | | \dicevi | +| ⚆ | | \circledrightdot | ⚇ | | \circledtwodots | ⚈ | | \blackcircledrightdot | ⚉ | | \blackcircledtwodots | +| ⚥ | | \Hermaphrodite | ⚬ | | \mdsmwhtcircle | ⚲ | | \neuter | ✓ | | \checkmark | +| ✠ | | \maltese | ✪ | | \circledstar | ✶ | | \varstar | ✽ | | \dingasterisk | +| ❲ | | \lbrbrak | ❳ | | \rbrbrak | ➛ | | \draftingarrow | ⟀ | | \threedangle | +| ⟁ | | \whiteinwhitetriangle | ⟃ | | \subsetcirc | ⟄ | | \supsetcirc | ⟇ | | \veedot | +| ⟈ | | \bsolhsub | ⟉ | | \suphsol | ⟋ | | \diagup | ⟌ | | \longdivision | +| ⟍ | | \diagdown | ⟑ | | \wedgedot | ⟒ | | \upin | ⟓ | | \pullback | +| ⟔ | | \pushout | ⟕ | | \leftouterjoin | ⟖ | | \rightouterjoin | ⟗ | | \fullouterjoin | +| ⟘ | | \bigbot | ⟙ | | \bigtop | ⟚ | | \DashVDash | ⟛ | | \dashVdash | +| ⟜ | | \multimapinv | ⟝ | | \vlongdash | ⟞ | | \longdashv | ⟟ | | \cirbot | +| ⟠ | | \lozengeminus | ⟡ | | \concavediamond | ⟢ | | \concavediamondtickleft | ⟣ | | \concavediamondtickright | +| ⟤ | | \whitesquaretickleft | ⟥ | | \whitesquaretickright | ⟫ | | \rang | ⟬ | | \Lbrbrak | +| ⟭ | | \Rbrbrak | ⟰ | | \UUparrow | ⟱ | | \DDownarrow | ⟲ | | \acwgapcirclearrow | +| ⟳ | | \cwgapcirclearrow | ⟴ | | \rightarrowonoplus | ⟻ | | \longmapsfrom | ⟽ | | \Longmapsfrom | +| ⟾ | | \Longmapsto | ⟿ | | \longrightsquigarrow | ⤁ | | \nVtwoheadrightarrow | ⤂ | | \nvLeftarrow | +| ⤃ | | \nvRightarrow | ⤄ | | \nvLeftrightarrow | ⤅ | | \twoheadmapsto | ⤆ | | \Mapsfrom | +| ⤇ | | \Mapsto | ⤈ | | \downarrowbarred | ⤉ | | \uparrowbarred | ⤊ | | \Uuparrow | +| ⤋ | | \Ddownarrow | ⤌ | | \leftbkarrow | ⤍ | | \rightbkarrow | ⤎ | | \leftdbkarrow | +| ⤏ | | \dbkarrow | ⤐ | | \drbkarrow | ⤑ | | \rightdotarrow | ⤗ | | \nvtwoheadrightarrowtail | +| ⤘ | | \nVtwoheadrightarrowtail | ⤙ | | \lefttail | ⤚ | | \righttail | ⤛ | | \leftdbltail | +| ⤜ | | \rightdbltail | ⤝ | | \diamondleftarrow | ⤞ | | \rightarrowdiamond | ⤟ | | \diamondleftarrowbar | +| ⤠ | | \barrightarrowdiamond | ⤡ | | \nwsearrow | ⤢ | | \neswarrow | ⤣ | | \hknwarrow | +| ⤤ | | \hknearrow | ⤥ | | \hksearrow | ⤦ | | \hkswarrow | ⤧ | | \tona | +| ⤨ | | \toea | ⤩ | | \tosa | ⤪ | | \towa | ⤫ | | \rdiagovfdiag | +| ⤬ | | \fdiagovrdiag | ⤭ | | \seovnearrow | ⤮ | | \neovsearrow | ⤯ | | \fdiagovnearrow | +| ⤰ | | \rdiagovsearrow | ⤱ | | \neovnwarrow | ⤲ | | \nwovnearrow | ⤳ | | \rightcurvedarrow | +| ⤴ | | \uprightcurvearrow | ⤵ | | \downrightcurvedarrow | ⤶ | | \leftdowncurvedarrow | ⤷ | | \rightdowncurvedarrow | +| ⤸ | | \cwrightarcarrow | ⤹ | | \acwleftarcarrow | ⤺ | | \acwoverarcarrow | ⤻ | | \acwunderarcarrow | +| ⤼ | | \curvearrowrightminus | ⤽ | | \curvearrowleftplus | ⤾ | | \cwundercurvearrow | ⤿ | | \ccwundercurvearrow | +| ⥂ | | \rightarrowshortleftarrow | ⥃ | | \leftarrowshortrightarrow | ⥄ | | \shortrightarrowleftarrow | ⥅ | | \rightarrowplus | +| ⥆ | | \leftarrowplus | ⥇ | | \rightarrowx | ⥈ | | \leftrightarrowcircle | ⥉ | | \twoheaduparrowcircle | +| ⥌ | | \updownharpoonrightleft | ⥍ | | \updownharpoonleftright | ⥎ | | \leftrightharpoonupup | ⥐ | | \DownLeftRightVector | +| ⥦ | | \leftrightharpoonsup | ⥧ | | \leftrightharpoonsdown | ⥨ | | \rightleftharpoonsup | ⥩ | | \rightleftharpoonsdown | +| ⥱ | | \equalrightarrow | ⥲ | | \similarrightarrow | ⥳ | | \leftarrowsimilar | ⥴ | | \rightarrowsimilar | +| ⥵ | | \rightarrowapprox | ⥶ | | \ltlarr | ⥷ | | \leftarrowless | ⥸ | | \gtrarr | +| ⥹ | | \subrarr | ⥺ | | \leftarrowsubset | ⥻ | | \suplarr | ⥼ | | \leftfishtail | +| ⥽ | | \rightfishtail | ⥾ | | \upfishtail | ⥿ | | \downfishtail | ⦀ | | \Vvert | +| ⦁ | | \spot | ⦂ | | \typecolon | ⦃ | | \lBrace | ⦄ | | \rBrace | +| ⦅ | | \lParen | ⦆ | | \Elroang | ⦇ | | \limg | ⦋ | | \lbrackubar | +| ⦌ | | \rbrackubar | ⦍ | | \lbrackultick | ⦎ | | \rbracklrtick | ⦏ | | \lbracklltick | +| ⦐ | | \rbrackurtick | ⦑ | | \langledot | ⦒ | | \rangledot | ⦓ | | \lparenless | +| ⦔ | | \rparengtr | ⦕ | | \Lparengtr | ⦖ | | \Rparenless | ⦗ | | \lblkbrbrak | +| ⦘ | | \rblkbrbrak | ⦙ | | \fourvdots | ⦚ | | \vzigzag | ⦛ | | \measuredangleleft | +| ⦝ | | \rightanglemdot | ⦞ | | \angles | ⦟ | | \angdnr | ⦠ | | \gtlpar | +| ⦡ | | \sphericalangleup | ⦢ | | \turnangle | ⦣ | | \revangle | ⦤ | | \angleubar | +| ⦥ | | \revangleubar | ⦦ | | \wideangledown | ⦧ | | \wideangleup | ⦨ | | \measanglerutone | +| ⦩ | | \measanglelutonw | ⦪ | | \measanglerdtose | ⦫ | | \measangleldtosw | ⦬ | | \measangleurtone | +| ⦭ | | \measangleultonw | ⦮ | | \measangledrtose | ⦯ | | \measangledltosw | ⦰ | | \revemptyset | +| ⦱ | | \emptysetobar | ⦲ | | \emptysetocirc | ⦳ | | \emptysetoarr | ⦴ | | \emptysetoarrl | +| ⦵ | | \circlehbar | ⦶ | | \circledvert | ⦷ | | \circledparallel | ⦸ | | \circledbslash | +| ⦹ | | \operp | ⦺ | | \obot | ⦻ | | \olcross | ⦼ | | \odotslashdot | +| ⦽ | | \uparrowoncircle | ⦾ | | \circledwhitebullet | ⦿ | | \circledbullet | ⧀ | | \circledless | +| ⧁ | | \circledgtr | ⧂ | | \cirscir | ⧃ | | \cirE | ⧅ | | \boxbslash | +| ⧆ | | \boxast | ⧇ | | \boxcircle | ⧈ | | \boxbox | ⧉ | | \boxonbox | +| ⧊ | | \triangleodot | ⧋ | | \triangleubar | ⧌ | | \triangles | ⧍ | | \triangleserifs | +| ⧎ | | \rtriltri | ⧑ | | \lfbowtie | ⧒ | | \rfbowtie | ⧓ | | \fbowtie | +| ⧔ | | \lftimes | ⧕ | | \rftimes | ⧖ | | \hourglass | ⧗ | | \blackhourglass | +| ⧘ | | \lvzigzag | ⧙ | | \rvzigzag | ⧚ | | \Lvzigzag | ⧛ | | \Rvzigzag | +| ⧜ | | \iinfin | ⧝ | | \tieinfty | ⧞ | | \nvinfty | ⧠ | | \laplac | +| ⧡ | | \lrtriangleeq | ⧢ | | \shuffle | ⧣ | | \eparsl | ⧤ | | \smeparsl | +| ⧥ | | \eqvparsl | ⧦ | | \gleichstark | ⧧ | | \thermod | ⧨ | | \downtriangleleftblack | +| ⧩ | | \downtrianglerightblack | ⧪ | | \blackdiamonddownarrow | ⧫ | | \blacklozenge | ⧬ | | \circledownarrow | +| ⧭ | | \blackcircledownarrow | ⧮ | | \errbarsquare | ⧯ | | \errbarblacksquare | ⧰ | | \errbardiamond | +| ⧱ | | \errbarblackdiamond | ⧲ | | \errbarcircle | ⧳ | | \errbarblackcircle | ⧴ | | \RuleDelayed | +| ⧶ | | \dsol | ⧷ | | \rsolbar | ⧸ | | \xsol | ⧺ | | \doubleplus | +| ⧻ | | \tripleplus | ⧼ | | \lcurvyangle | ⧽ | | \rcurvyangle | ⧾ | | \tplus | +| ⧿ | | \tminus | ⨃ | | \bigcupdot | ⨄ | | \Elxuplus | ⨅ | | \bigsqcap | +| ⨇ | | \conjquant | ⨈ | | \disjquant | ⨊ | | \modtwosum | ⨋ | | \sumint | +| ⨌ | | \iiiint | ⨍ | | \intbar | ⨎ | | \intBar | ⨐ | | \cirfnint | +| ⨑ | | \awint | ⨒ | | \rppolint | ⨓ | | \scpolint | ⨔ | | \npolint | +| ⨕ | | \pointint | ⨗ | | \intlarhk | ⨘ | | \intx | ⨙ | | \intcap | +| ⨚ | | \intcup | ⨛ | | \upint | ⨜ | | \lowint | ⨝ | | \Join | +| ⨞ | | \bigtriangleleft | ⨟ | | \zcmp | ⨠ | | \zpipe | ⨡ | | \zproject | +| ⨢ | | \ringplus | ⨣ | | \plushat | ⨤ | | \simplus | ⨥ | | \plusdot | +| ⨦ | | \plussim | ⨧ | | \plussubtwo | ⨨ | | \plustrif | ⨩ | | \commaminus | +| ⨪ | | \minusdot | ⨫ | | \minusfdots | ⨬ | | \minusrdots | ⨭ | | \opluslhrim | +| ⨮ | | \oplusrhrim | ⨯ | | \vectimes | ⨰ | | \dottimes | ⨱ | | \timesbar | +| ⨲ | | \btimes | ⨳ | | \smashtimes | ⨴ | | \otimeslhrim | ⨵ | | \otimesrhrim | +| ⨶ | | \otimeshat | ⨷ | | \Otimes | ⨸ | | \odiv | ⨹ | | \triangleplus | +| ⨺ | | \triangleminus | ⨻ | | \triangletimes | ⨼ | | \intprod | ⨽ | | \intprodr | +| ⨾ | | \fcmp | ⩀ | | \capdot | ⩁ | | \uminus | ⩂ | | \barcup | +| ⩃ | | \barcap | ⩄ | | \capwedge | ⩅ | | \cupvee | ⩆ | | \cupovercap | +| ⩇ | | \capovercup | ⩈ | | \cupbarcap | ⩉ | | \capbarcup | ⩊ | | \twocups | +| ⩋ | | \twocaps | ⩌ | | \closedvarcup | ⩍ | | \closedvarcap | ⩎ | | \Sqcap | +| ⩏ | | \Sqcup | ⩐ | | \closedvarcupsmashprod | ⩑ | | \wedgeodot | ⩒ | | \veeodot | +| ⩓ | | \Wedge | ⩔ | | \Vee | ⩕ | | \wedgeonwedge | ⩗ | | \bigslopedvee | +| ⩘ | | \bigslopedwedge | ⩙ | | \veeonwedge | ⩚ | | \wedgemidvert | ⩛ | | \veemidvert | +| ⩜ | | \midbarwedge | ⩝ | | \midbarvee | ⩟ | | \wedgebar | ⩠ | | \wedgedoublebar | +| ⩡ | | \varveebar | ⩢ | | \doublebarvee | ⩣ | | \veedoublebar | ⩤ | | \dsub | +| ⩥ | | \rsub | ⩦ | | \eqdot | ⩧ | | \dotequiv | ⩨ | | \equivVert | +| ⩩ | | \equivVvert | ⩪ | | \dotsim | ⩫ | | \simrdots | ⩬ | | \simminussim | +| ⩭ | | \congdot | ⩯ | | \hatapprox | ⩰ | | \approxeqq | ⩱ | | \eqqplus | +| ⩲ | | \pluseqq | ⩳ | | \eqqsim | ⩴ | | \Coloneqq | ⩷ | | \ddotseq | +| ⩸ | | \equivDD | ⩹ | | \ltcir | ⩺ | | \gtcir | ⩻ | | \ltquest | +| ⩼ | | \gtquest | ⩽ | | \leqslant | ⩾ | | \geqslant | ⩿ | | \lesdot | +| ⪀ | | \gesdot | ⪁ | | \lesdoto | ⪂ | | \gesdoto | ⪃ | | \lesdotor | +| ⪄ | | \gesdotol | ⪅ | | \lessapprox | ⪆ | | \gtrapprox | ⪇ | | \lneq | +| ⪈ | | \gneq | ⪉ | | \lnapprox | ⪊ | | \gnapprox | ⪋ | | \lesseqqgtr | +| ⪌ | | \gtreqqless | ⪍ | | \lsime | ⪎ | | \gsime | ⪏ | | \lsimg | +| ⪐ | | \gsiml | ⪑ | | \lgE | ⪒ | | \glE | ⪓ | | \lesges | +| ⪔ | | \gesles | ⪕ | | \eqslantless | ⪖ | | \eqslantgtr | ⪗ | | \elsdot | +| ⪘ | | \egsdot | ⪙ | | \eqqless | ⪚ | | \eqqgtr | ⪛ | | \eqqslantless | +| ⪜ | | \eqqslantgtr | ⪝ | | \simless | ⪞ | | \simgtr | ⪟ | | \simlE | +| ⪠ | | \simgE | ⪣ | | \partialmeetcontraction | ⪤ | | \glj | ⪥ | | \gla | +| ⪨ | | \lescc | ⪩ | | \gescc | ⪪ | | \smt | ⪫ | | \lat | +| ⪬ | | \smte | ⪭ | | \late | ⪮ | | \bumpeqq | ⪱ | | \precneq | +| ⪲ | | \succneq | ⪳ | | \preceqq | ⪴ | | \succeqq | ⪵ | | \precneqq | +| ⪶ | | \succneqq | ⪷ | | \precapprox | ⪸ | | \succapprox | ⪹ | | \precnapprox | +| ⪺ | | \succnapprox | ⪽ | | \subsetdot | ⪾ | | \supsetdot | ⪿ | | \subsetplus | +| ⫀ | | \supsetplus | ⫁ | | \submult | ⫂ | | \supmult | ⫃ | | \subedot | +| ⫄ | | \supedot | ⫅ | | \subseteqq | ⫆ | | \supseteqq | ⫇ | | \subsim | +| ⫈ | | \supsim | ⫉ | | \subsetapprox | ⫊ | | \supsetapprox | ⫋ | | \subsetneqq | +| ⫌ | | \supsetneqq | ⫍ | | \lsqhook | ⫎ | | \rsqhook | ⫏ | | \csub | +| ⫐ | | \csup | ⫑ | | \csube | ⫒ | | \csupe | ⫓ | | \subsup | +| ⫔ | | \supsub | ⫕ | | \subsub | ⫖ | | \supsup | ⫗ | | \suphsub | +| ⫘ | | \supdsub | ⫙ | | \forkv | ⫚ | | \topfork | ⫛ | | \mlcp | +| ⫝̸ | | \forks | ⫝ | | \forksnot | ⫞ | | \shortlefttack | ⫟ | | \shortdowntack | +| ⫠ | | \shortuptack | ⫡ | | \perps | ⫢ | | \vDdash | ⫣ | | \dashV | +| ⫤ | | \Dashv | ⫥ | | \DashV | ⫦ | | \varVdash | ⫧ | | \Barv | +| ⫨ | | \vBar | ⫩ | | \vBarv | ⫫ | | \Vbar | ⫬ | | \Not | +| ⫭ | | \bNot | ⫮ | | \revnmid | ⫯ | | \cirmid | ⫰ | | \midcir | +| ⫱ | | \topcir | ⫲ | | \nhpar | ⫳ | | \parsim | ⫴ | | \interleave | +| ⫵ | | \nhVvert | ⫶ | | \threedotcolon | ⫷ | | \lllnest | ⫸ | | \gggnest | +| ⫹ | | \leqqslant | ⫺ | | \geqqslant | ⫻ | | \trslash | ⫼ | | \biginterleave | +| ⫾ | | \talloblong | ⫿ | | \bigtalloblong | ⬒ | | \squaretopblack | ⬓ | | \squarebotblack | +| ⬔ | | \squareurblack | ⬕ | | \squarellblack | ⬖ | | \diamondleftblack | ⬗ | | \diamondrightblack | +| ⬘ | | \diamondtopblack | ⬙ | | \diamondbotblack | ⬚ | | \dottedsquare | ⬛ | | \lgblksquare | +| ⬜ | | \lgwhtsquare | ⬝ | | \vysmblksquare | ⬞ | | \vysmwhtsquare | ⬟ | | \pentagonblack | +| ⬠ | | \pentagon | ⬡ | | \varhexagon | ⬢ | | \varhexagonblack | ⬣ | | \hexagonblack | +| ⬤ | | \lgblkcircle | ⬥ | | \mdblkdiamond | ⬦ | | \mdwhtdiamond | ⬧ | | \mdblklozenge | +| ⬨ | | \mdwhtlozenge | ⬩ | | \smblkdiamond | ⬪ | | \smblklozenge | ⬫ | | \smwhtlozenge | +| ⬬ | | \blkhorzoval | ⬭ | | \whthorzoval | ⬮ | | \blkvertoval | ⬯ | | \whtvertoval | +| ⬰ | | \circleonleftarrow | ⬱ | | \leftthreearrows | ⬲ | | \leftarrowonoplus | ⬳ | | \longleftsquigarrow | +| ⬴ | | \nvtwoheadleftarrow | ⬵ | | \nVtwoheadleftarrow | ⬶ | | \twoheadmapsfrom | ⬷ | | \twoheadleftdbkarrow | +| ⬸ | | \leftdotarrow | ⬹ | | \nvleftarrowtail | ⬺ | | \nVleftarrowtail | ⬻ | | \twoheadleftarrowtail | +| ⬼ | | \nvtwoheadleftarrowtail | ⬽ | | \nVtwoheadleftarrowtail | ⬾ | | \leftarrowx | ⬿ | | \leftcurvedarrow | +| ⭀ | | \equalleftarrow | ⭁ | | \bsimilarleftarrow | ⭂ | | \leftarrowbackapprox | ⭃ | | \rightarrowgtr | +| ⭄ | | \rightarrowsupset | ⭅ | | \LLeftarrow | ⭆ | | \RRightarrow | ⭇ | | \bsimilarrightarrow | +| ⭈ | | \rightarrowbackapprox | ⭉ | | \similarleftarrow | ⭊ | | \leftarrowapprox | ⭋ | | \leftarrowbsimilar | +| ⭌ | | \rightarrowbsimilar | ⭐ | | \medwhitestar | ⭑ | | \medblackstar | ⭒ | | \smwhitestar | +| ⭓ | | \rightpentagonblack | ⭔ | | \rightpentagon | 〒 | | \postalmark | 〰 | | \hzigzag | ### amssymb | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ⩾̸ | | \ngeqslant | ⩾ | | \geqslant | ⩽̸ | | \nleqslant | ⩽ | | \leqslant | -| ð | | \eth | | | | | | | | | | +| ð | | \eth | ⩽ | | \leqslant | ⩽̸ | | \nleqslant | ⩾ | | \geqslant | +| ⩾̸ | | \ngeqslant | | | | | | | | | | -### wasysym +### arevmath | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ☾ | \leftmoon | | ☽ | \rightmoon | | | | | | | | +| ð | | \eth | | | | | | | | | | -### pmboxdraw +### MinionPro | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ▟ | \pmboxdrawuni{259F} | | ▞ | \pmboxdrawuni{259E} | | ▝ | \pmboxdrawuni{259D} | | ▜ | \pmboxdrawuni{259C} | | -| ▛ | \pmboxdrawuni{259B} | | ▚ | \pmboxdrawuni{259A} | | ▙ | \pmboxdrawuni{2599} | | ▘ | \pmboxdrawuni{2598} | | -| ▗ | \pmboxdrawuni{2597} | | ▖ | \pmboxdrawuni{2596} | | ▕ | \pmboxdrawuni{2595} | | ▔ | \pmboxdrawuni{2594} | | -| ▓ | \textdkshade | | ▒ | \textshade | | ░ | \textltshade | | ▐ | \textrtblock | | -| ▏ | \pmboxdrawuni{258F} | | ▎ | \pmboxdrawuni{258E} | | ▍ | \pmboxdrawuni{258D} | | ▌ | \textlfblock | | -| ▋ | \pmboxdrawuni{258B} | | ▊ | \pmboxdrawuni{258A} | | ▉ | \pmboxdrawuni{2589} | | █ | \textblock | | -| ▇ | \pmboxdrawuni{2587} | | ▆ | \pmboxdrawuni{2586} | | ▅ | \pmboxdrawuni{2585} | | ▄ | \textdnblock | | -| ▃ | \pmboxdrawuni{2583} | | ▂ | \pmboxdrawuni{2582} | | ▁ | \pmboxdrawuni{2581} | | ▀ | \textupblock | | -| ╿ | \pmboxdrawuni{257F} | | ╾ | \pmboxdrawuni{257E} | | ╽ | \pmboxdrawuni{257D} | | ╼ | \pmboxdrawuni{257C} | | -| ╻ | \pmboxdrawuni{257B} | | ╺ | \pmboxdrawuni{257A} | | ╹ | \pmboxdrawuni{2579} | | ╸ | \pmboxdrawuni{2578} | | -| ╷ | \pmboxdrawuni{2577} | | ╶ | \pmboxdrawuni{2576} | | ╵ | \pmboxdrawuni{2575} | | ╴ | \pmboxdrawuni{2574} | | -| ╬ | \textSFxliv | | ╫ | \textSFliii | | ╪ | \textSFliv | | ╩ | \textSFxl | | -| ╨ | \textSFxlvi | | ╧ | \textSFxlv | | ╦ | \textSFxli | | ╥ | \textSFxlviii | | -| ╤ | \textSFxlvii | | ╣ | \textSFxxiii | | ╢ | \textSFxx | | ╡ | \textSFxix | | -| ╠ | \textSFxlii | | ╟ | \textSFxxxvii | | ╞ | \textSFxxxvi | | ╝ | \textSFxxvi | | -| ╜ | \textSFxxvii | | ╛ | \textSFxxviii | | ╚ | \textSFxxxviii | | ╙ | \textSFxlix | | -| ╘ | \textSFl | | ╗ | \textSFxxv | | ╖ | \textSFxxi | | ╕ | \textSFxxii | | -| ╔ | \textSFxxxix | | ╓ | \textSFlii | | ╒ | \textSFli | | ║ | \textSFxxiv | | -| ═ | \textSFxliii | | ╋ | \pmboxdrawuni{254B} | | ╊ | \pmboxdrawuni{254A} | | ╉ | \pmboxdrawuni{2549} | | -| ╈ | \pmboxdrawuni{2548} | | ╇ | \pmboxdrawuni{2547} | | ╆ | \pmboxdrawuni{2546} | | ╅ | \pmboxdrawuni{2545} | | -| ╄ | \pmboxdrawuni{2544} | | ╃ | \pmboxdrawuni{2543} | | ╂ | \pmboxdrawuni{2542} | | ╁ | \pmboxdrawuni{2541} | | -| ╀ | \pmboxdrawuni{2540} | | ┿ | \pmboxdrawuni{253F} | | ┾ | \pmboxdrawuni{253E} | | ┽ | \pmboxdrawuni{253D} | | -| ┼ | \textSFv | | ┻ | \pmboxdrawuni{253B} | | ┺ | \pmboxdrawuni{253A} | | ┹ | \pmboxdrawuni{2539} | | -| ┸ | \pmboxdrawuni{2538} | | ┷ | \pmboxdrawuni{2537} | | ┶ | \pmboxdrawuni{2536} | | ┵ | \pmboxdrawuni{2535} | | -| ┴ | \textSFvii | | ┳ | \pmboxdrawuni{2533} | | ┲ | \pmboxdrawuni{2532} | | ┱ | \pmboxdrawuni{2531} | | -| ┰ | \pmboxdrawuni{2530} | | ┯ | \pmboxdrawuni{252F} | | ┮ | \pmboxdrawuni{252E} | | ┭ | \pmboxdrawuni{252D} | | -| ┬ | \textSFvi | | ┫ | \pmboxdrawuni{252B} | | ┪ | \pmboxdrawuni{252A} | | ┩ | \pmboxdrawuni{2529} | | -| ┨ | \pmboxdrawuni{2528} | | ┧ | \pmboxdrawuni{2527} | | ┦ | \pmboxdrawuni{2526} | | ┥ | \pmboxdrawuni{2525} | | -| ┤ | \textSFix | | ┣ | \pmboxdrawuni{2523} | | ┢ | \pmboxdrawuni{2522} | | ┡ | \pmboxdrawuni{2521} | | -| ┠ | \pmboxdrawuni{2520} | | ┟ | \pmboxdrawuni{251F} | | ┞ | \pmboxdrawuni{251E} | | ┝ | \pmboxdrawuni{251D} | | -| ├ | \textSFviii | | ┛ | \pmboxdrawuni{251B} | | ┚ | \pmboxdrawuni{251A} | | ┙ | \pmboxdrawuni{2519} | | -| ┘ | \textSFiv | | ┗ | \pmboxdrawuni{2517} | | ┖ | \pmboxdrawuni{2516} | | ┕ | \pmboxdrawuni{2515} | | -| └ | \textSFii | | ┓ | \pmboxdrawuni{2513} | | ┒ | \pmboxdrawuni{2512} | | ┑ | \pmboxdrawuni{2511} | | -| ┐ | \textSFiii | | ┏ | \pmboxdrawuni{250F} | | ┎ | \pmboxdrawuni{250E} | | ┍ | \pmboxdrawuni{250D} | | -| ┌ | \textSFi | | ┃ | \pmboxdrawuni{2503} | | │ | \textSFxi | | ━ | \pmboxdrawuni{2501} | | -| ─ | \textSFx | | | | | | | | | | | +| ϐ | | \varbeta | ϰ | | \varkappa | | | | | | | -### inputenx +### mathrsfs | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ≈ | \textapproxequal | | ɸ | \textphi | | Ħ | \textmalteseH | | | | | +| ℊ | | \mathscr{g} | ℋ | | \mathscr{H} | ℐ | | \mathscr{I} | ℒ | | \mathscr{L} | +| ℛ | | \mathscr{R} | ℬ | | \mathscr{B} | ℯ | | \mathscr{e} | ℰ | | \mathscr{E} | +| ℱ | | \mathscr{F} | ℳ | | \mathscr{M} | ℴ | | \mathscr{o} | 𝒜 | | \mathscr{A} | +| 𝒞 | | \mathscr{C} | 𝒟 | | \mathscr{D} | 𝒢 | | \mathscr{G} | 𝒥 | | \mathscr{J} | +| 𝒦 | | \mathscr{K} | 𝒩 | | \mathscr{N} | 𝒪 | | \mathscr{O} | 𝒫 | | \mathscr{P} | +| 𝒬 | | \mathscr{Q} | 𝒮 | | \mathscr{S} | 𝒯 | | \mathscr{T} | 𝒰 | | \mathscr{U} | +| 𝒱 | | \mathscr{V} | 𝒲 | | \mathscr{W} | 𝒳 | | \mathscr{X} | 𝒴 | | \mathscr{Y} | +| 𝒵 | | \mathscr{Z} | 𝒶 | | \mathscr{a} | 𝒷 | | \mathscr{b} | 𝒸 | | \mathscr{c} | +| 𝒹 | | \mathscr{d} | 𝒻 | | \mathscr{f} | 𝒽 | | \mathscr{h} | 𝒾 | | \mathscr{i} | +| 𝒿 | | \mathscr{j} | 𝓀 | | \mathscr{k} | 𝓁 | | \mathscr{l} | 𝓂 | | \mathscr{m} | +| 𝓃 | | \mathscr{n} | 𝓅 | | \mathscr{p} | 𝓆 | | \mathscr{q} | 𝓇 | | \mathscr{r} | +| 𝓈 | | \mathscr{s} | 𝓉 | | \mathscr{t} | 𝓊 | | \mathscr{u} | 𝓋 | | \mathscr{v} | +| 𝓌 | | \mathscr{w} | 𝓍 | | \mathscr{x} | 𝓎 | | \mathscr{y} | 𝓏 | | \mathscr{z} | -### xecjk +### MnSymbol | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ≂ | | \texteqsim | ĸ | \textkra | | ז | \hebzayin | | י | \hebyod | | -| ו | \hebvav | | צ | \hebtsadi | | ט | \hebtet | | ת | \hebtav | | -| ש | \hebshin | | ס | \hebsamekh | | ר | \hebresh | | ק | \hebqof | | -| פ | \hebpe | | נ | \hebnun | | מ | \hebmem | | ל | \heblamed | | -| כ | \hebkaf | | ח | \hebhet | | ה | \hebhe | | ג | \hebgimel | | -| ץ | \hebfinaltsadi | | ף | \hebfinalpe | | ן | \hebfinalnun | | ם | \hebfinalmem | | -| ך | \hebfinalkaf | | ד | \hebdalet | | ב | \hebbet | | ע | \hebayin | | -| א | \hebalef | | | | | | | | | | | +| ∲ | | \lcirclerightint | ∳ | | \rcirclerightint | | | | | | | ### mathabx @@ -627,84 +585,126 @@ Some of us though are bound to outlets that still demand BibTeX, and there's gee | ∸ | | \dotdiv | | | | | | | | | | -### MnSymbol +### xecjk | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ∳ | | \rcirclerightint | ∲ | | \lcirclerightint | | | | | | | +| ≂ | | \texteqsim | א | \hebalef | | ע | \hebayin | | ב | \hebbet | | +| ד | \hebdalet | | ך | \hebfinalkaf | | ם | \hebfinalmem | | ן | \hebfinalnun | | +| ף | \hebfinalpe | | ץ | \hebfinaltsadi | | ג | \hebgimel | | ה | \hebhe | | +| ח | \hebhet | | כ | \hebkaf | | ל | \heblamed | | מ | \hebmem | | +| נ | \hebnun | | פ | \hebpe | | ק | \hebqof | | ר | \hebresh | | +| ס | \hebsamekh | | ש | \hebshin | | ת | \hebtav | | ט | \hebtet | | +| צ | \hebtsadi | | ו | \hebvav | | י | \hebyod | | ז | \hebzayin | | +| ĸ | \textkra | | | | | | | | | | | -### graphics +### textcomp | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ↳ | \reflectbox{\carriagereturn} | | | | | | | | | | | +| ¢ | \textcent | | ¤ | \textcurrency | | ¥ | \textyen | | ฿ | \textbaht | | +| ₡ | \textcolonmonetary | | ₤ | \textlira | | ₦ | \textnaira | | ₧ | \textpeseta | | +| ₩ | \textwon | | ₫ | \textdong | | ₱ | \textpeso | | ¦ | \textbrokenbar | | +| © | \textcopyright | | ª | \textordfeminine | | ° | \textdegree | | ¶ | \textparagraph | | +| º | \textordmasculine | | ð | \textdh | | ˙ | \textperiodcentered | | • | \textbullet | | +| ‰ | \textperthousand | | ‱ | \textpertenthousand | | ℞ | \textrecipe | | ™ | \texttrademark | | +| ↑ | \textuparrow | | → | \textrightarrow | | | | | | | | -### textcomp +### inputenx | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| → | \textrightarrow | | ↑ | \textuparrow | | ™ | \texttrademark | | ℞ | \textrecipe | | -| ‱ | \textpertenthousand | | ‰ | \textperthousand | | • | \textbullet | | ˙ | \textperiodcentered | | -| ð | \textdh | | º | \textordmasculine | | ¶ | \textparagraph | | ° | \textdegree | | -| ª | \textordfeminine | | © | \textcopyright | | ¦ | \textbrokenbar | | ₱ | \textpeso | | -| ₫ | \textdong | | ₩ | \textwon | | ₧ | \textpeseta | | ₦ | \textnaira | | -| ₤ | \textlira | | ₡ | \textcolonmonetary | | ฿ | \textbaht | | ¥ | \textyen | | -| ¤ | \textcurrency | | ¢ | \textcent | | | | | | | | +| Ħ | \textmalteseH | | ɸ | \textphi | | ≈ | \textapproxequal | | | | | ### tipa | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ₔ | \textsubscript{\textschwa} | | ̽ | \textovercross | | ̼ | \textseagull | | ̻ | \textsubsquare | | -| ̺ | \textinvsubbridge | | ̹ | \textsubrhalfring | | ̴ | \textsuperimposetilde | | ̱ | \textsubbar | | -| ̰ | \textsubtilde | | ̯ | \textsubarch | | ̬ | \textsubwedge | | ̪ | \textsubbridge | | -| ̩ | \textsyllabic | | ̥ | \textsubring | | ̤ | \textsubumlaut | | ̟ | \textsubplus | | -| ̞ | \textlowering | | ̝ | \textraising | | ̜ | \textsublhalfring | | ̚ | \textcorner | | -| ̙ | \textretracting | | ̘ | \textadvancing | | ̐ | \textdotbreve | | ̎ | \textdoublevbaraccent | | -| ̍ | \textvbaraccent | | ̊̄ | \textringmacron | | ̇̆ | \textdotbreve | | ̇́ | \textdotacute | | -| ̆̄ | \textbrevemacron | | ̄̀ | \textgravemacron | | ̃̇ | \texttildedot | | ̂̇ | \textcircumdot | | -| ́̌ | \textacutewedge | | ́̄ | \textacutemacron | | ̀̇ | \textgravedot | | ̀̄ | \textgravemacron | | -| ˩ | \tone{11} | | ˨ | \tone{22} | | ˧ | \tone{33} | | ˦ | \tone{44} | | -| ˥ | \tone{55} | | ʞ | \textturnk | | ɸ | \textphi | | ɤ | \textrevscripta | | -| ɣ | \textipa{G} | | ə | \textschwa | | ɖ | \textrtaild | | ɔ | \textipa{O} | | -| ɒ | textipa{\textopeno} | | ɐ | \textipa{\textturna} | | ƞ | \textipa{\textnrleg} | | ƕ | \texthvlig | | -| ħ | \textcrh | | | | | | | | | | | +| ħ | \textcrh | | ƕ | \texthvlig | | ƞ | \textipa{\textnrleg} | | ɐ | \textipa{\textturna} | | +| ɒ | textipa{\textopeno} | | ɔ | \textipa{O} | | ɖ | \textrtaild | | ə | \textschwa | | +| ɣ | \textipa{G} | | ɤ | \textrevscripta | | ɸ | \textphi | | ʞ | \textturnk | | +| ˥ | \tone{55} | | ˦ | \tone{44} | | ˧ | \tone{33} | | ˨ | \tone{22} | | +| ˩ | \tone{11} | | ̀̄ | \textgravemacron | | ̀̇ | \textgravedot | | ́̄ | \textacutemacron | | +| ́̌ | \textacutewedge | | ̂̇ | \textcircumdot | | ̃̇ | \texttildedot | | ̄̀ | \textgravemacron | | +| ̆̄ | \textbrevemacron | | ̇́ | \textdotacute | | ̇̆ | \textdotbreve | | ̊̄ | \textringmacron | | +| ̍ | \textvbaraccent | | ̎ | \textdoublevbaraccent | | ̐ | \textdotbreve | | ̘ | \textadvancing | | +| ̙ | \textretracting | | ̚ | \textcorner | | ̜ | \textsublhalfring | | ̝ | \textraising | | +| ̞ | \textlowering | | ̟ | \textsubplus | | ̤ | \textsubumlaut | | ̥ | \textsubring | | +| ̩ | \textsyllabic | | ̪ | \textsubbridge | | ̬ | \textsubwedge | | ̯ | \textsubarch | | +| ̰ | \textsubtilde | | ̱ | \textsubbar | | ̴ | \textsuperimposetilde | | ̹ | \textsubrhalfring | | +| ̺ | \textinvsubbridge | | ̻ | \textsubsquare | | ̼ | \textseagull | | ̽ | \textovercross | | +| ₔ | \textsubscript{\textschwa} | | | | | | | | | | | -### MinionPro +### ipa | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ϰ | | \varkappa | ϐ | | \varbeta | | | | | | | +| ɯ | \textturnm | | | | | | | | | | | -### textalpha +### mathscinet | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| α | \textalpha | | | | | | | | | | | +| ʿ | \lasp | | | | | | | | | | | -### mathscinet +### textalpha | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ʿ | \lasp | | | | | | | | | | | +| α | \textalpha | | | | | | | | | | | -### ipa +### graphics | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ɯ | \textturnm | | | | | | | | | | | +| ↳ | \reflectbox{\carriagereturn} | | | | | | | | | | | -### arevmath +### pmboxdraw | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | **character** | **text** | **math** | |---------------|----------|----------|---------------|----------|----------|---------------|----------|----------|---------------|----------|----------| -| ð | | \eth | | | | | | | | | | +| ─ | \textSFx | | ━ | \pmboxdrawuni{2501} | | │ | \textSFxi | | ┃ | \pmboxdrawuni{2503} | | +| ┌ | \textSFi | | ┍ | \pmboxdrawuni{250D} | | ┎ | \pmboxdrawuni{250E} | | ┏ | \pmboxdrawuni{250F} | | +| ┐ | \textSFiii | | ┑ | \pmboxdrawuni{2511} | | ┒ | \pmboxdrawuni{2512} | | ┓ | \pmboxdrawuni{2513} | | +| └ | \textSFii | | ┕ | \pmboxdrawuni{2515} | | ┖ | \pmboxdrawuni{2516} | | ┗ | \pmboxdrawuni{2517} | | +| ┘ | \textSFiv | | ┙ | \pmboxdrawuni{2519} | | ┚ | \pmboxdrawuni{251A} | | ┛ | \pmboxdrawuni{251B} | | +| ├ | \textSFviii | | ┝ | \pmboxdrawuni{251D} | | ┞ | \pmboxdrawuni{251E} | | ┟ | \pmboxdrawuni{251F} | | +| ┠ | \pmboxdrawuni{2520} | | ┡ | \pmboxdrawuni{2521} | | ┢ | \pmboxdrawuni{2522} | | ┣ | \pmboxdrawuni{2523} | | +| ┤ | \textSFix | | ┥ | \pmboxdrawuni{2525} | | ┦ | \pmboxdrawuni{2526} | | ┧ | \pmboxdrawuni{2527} | | +| ┨ | \pmboxdrawuni{2528} | | ┩ | \pmboxdrawuni{2529} | | ┪ | \pmboxdrawuni{252A} | | ┫ | \pmboxdrawuni{252B} | | +| ┬ | \textSFvi | | ┭ | \pmboxdrawuni{252D} | | ┮ | \pmboxdrawuni{252E} | | ┯ | \pmboxdrawuni{252F} | | +| ┰ | \pmboxdrawuni{2530} | | ┱ | \pmboxdrawuni{2531} | | ┲ | \pmboxdrawuni{2532} | | ┳ | \pmboxdrawuni{2533} | | +| ┴ | \textSFvii | | ┵ | \pmboxdrawuni{2535} | | ┶ | \pmboxdrawuni{2536} | | ┷ | \pmboxdrawuni{2537} | | +| ┸ | \pmboxdrawuni{2538} | | ┹ | \pmboxdrawuni{2539} | | ┺ | \pmboxdrawuni{253A} | | ┻ | \pmboxdrawuni{253B} | | +| ┼ | \textSFv | | ┽ | \pmboxdrawuni{253D} | | ┾ | \pmboxdrawuni{253E} | | ┿ | \pmboxdrawuni{253F} | | +| ╀ | \pmboxdrawuni{2540} | | ╁ | \pmboxdrawuni{2541} | | ╂ | \pmboxdrawuni{2542} | | ╃ | \pmboxdrawuni{2543} | | +| ╄ | \pmboxdrawuni{2544} | | ╅ | \pmboxdrawuni{2545} | | ╆ | \pmboxdrawuni{2546} | | ╇ | \pmboxdrawuni{2547} | | +| ╈ | \pmboxdrawuni{2548} | | ╉ | \pmboxdrawuni{2549} | | ╊ | \pmboxdrawuni{254A} | | ╋ | \pmboxdrawuni{254B} | | +| ═ | \textSFxliii | | ║ | \textSFxxiv | | ╒ | \textSFli | | ╓ | \textSFlii | | +| ╔ | \textSFxxxix | | ╕ | \textSFxxii | | ╖ | \textSFxxi | | ╗ | \textSFxxv | | +| ╘ | \textSFl | | ╙ | \textSFxlix | | ╚ | \textSFxxxviii | | ╛ | \textSFxxviii | | +| ╜ | \textSFxxvii | | ╝ | \textSFxxvi | | ╞ | \textSFxxxvi | | ╟ | \textSFxxxvii | | +| ╠ | \textSFxlii | | ╡ | \textSFxix | | ╢ | \textSFxx | | ╣ | \textSFxxiii | | +| ╤ | \textSFxlvii | | ╥ | \textSFxlviii | | ╦ | \textSFxli | | ╧ | \textSFxlv | | +| ╨ | \textSFxlvi | | ╩ | \textSFxl | | ╪ | \textSFliv | | ╫ | \textSFliii | | +| ╬ | \textSFxliv | | ╴ | \pmboxdrawuni{2574} | | ╵ | \pmboxdrawuni{2575} | | ╶ | \pmboxdrawuni{2576} | | +| ╷ | \pmboxdrawuni{2577} | | ╸ | \pmboxdrawuni{2578} | | ╹ | \pmboxdrawuni{2579} | | ╺ | \pmboxdrawuni{257A} | | +| ╻ | \pmboxdrawuni{257B} | | ╼ | \pmboxdrawuni{257C} | | ╽ | \pmboxdrawuni{257D} | | ╾ | \pmboxdrawuni{257E} | | +| ╿ | \pmboxdrawuni{257F} | | ▀ | \textupblock | | ▁ | \pmboxdrawuni{2581} | | ▂ | \pmboxdrawuni{2582} | | +| ▃ | \pmboxdrawuni{2583} | | ▄ | \textdnblock | | ▅ | \pmboxdrawuni{2585} | | ▆ | \pmboxdrawuni{2586} | | +| ▇ | \pmboxdrawuni{2587} | | █ | \textblock | | ▉ | \pmboxdrawuni{2589} | | ▊ | \pmboxdrawuni{258A} | | +| ▋ | \pmboxdrawuni{258B} | | ▌ | \textlfblock | | ▍ | \pmboxdrawuni{258D} | | ▎ | \pmboxdrawuni{258E} | | +| ▏ | \pmboxdrawuni{258F} | | ▐ | \textrtblock | | ░ | \textltshade | | ▒ | \textshade | | +| ▓ | \textdkshade | | ▔ | \pmboxdrawuni{2594} | | ▕ | \pmboxdrawuni{2595} | | ▖ | \pmboxdrawuni{2596} | | +| ▗ | \pmboxdrawuni{2597} | | ▘ | \pmboxdrawuni{2598} | | ▙ | \pmboxdrawuni{2599} | | ▚ | \pmboxdrawuni{259A} | | +| ▛ | \pmboxdrawuni{259B} | | ▜ | \pmboxdrawuni{259C} | | ▝ | \pmboxdrawuni{259D} | | ▞ | \pmboxdrawuni{259E} | | +| ▟ | \pmboxdrawuni{259F} | | | | | | | | | | | diff --git a/site/themes/relearn b/site/themes/relearn index 0add74a831..21b4289ecf 160000 --- a/site/themes/relearn +++ b/site/themes/relearn @@ -1 +1 @@ -Subproject commit 0add74a831b25d64272e8e769880f32d970f5b79 +Subproject commit 21b4289ecf44cead65bbe8427724e1769aedca7d diff --git a/submodules/babel b/submodules/babel index 1040ffd87c..3e19161863 160000 --- a/submodules/babel +++ b/submodules/babel @@ -1 +1 @@ -Subproject commit 1040ffd87cc538a6121ab34d34213bd1e907a212 +Subproject commit 3e19161863841cbd7909374d5b1351df06392b1d diff --git a/submodules/biber b/submodules/biber index 80c047759e..8743daaa37 160000 --- a/submodules/biber +++ b/submodules/biber @@ -1 +1 @@ -Subproject commit 80c047759e3fd2986b21579a69854cfc5d9422db +Subproject commit 8743daaa37e148103f33bb7579773c2b44e5f68d diff --git a/submodules/biblatex b/submodules/biblatex index 533b1ee6ab..ac2456c249 160000 --- a/submodules/biblatex +++ b/submodules/biblatex @@ -1 +1 @@ -Subproject commit 533b1ee6ab1d7b1b61d830125ebad6375204cf81 +Subproject commit ac2456c2492861451547659702ae4a72264e4997 diff --git a/submodules/citation-style-language-locales b/submodules/citation-style-language-locales index cf4b49404f..1159f592d0 160000 --- a/submodules/citation-style-language-locales +++ b/submodules/citation-style-language-locales @@ -1 +1 @@ -Subproject commit cf4b49404fc15cf9a37372e4707ce710b0935ccc +Subproject commit 1159f592d095d890ba5b338a330be0f2c774c537 diff --git a/submodules/translators b/submodules/translators new file mode 160000 index 0000000000..c46011097e --- /dev/null +++ b/submodules/translators @@ -0,0 +1 @@ +Subproject commit c46011097e3c599a295d1846bf6beefc89c05647 diff --git a/submodules/zotero b/submodules/zotero index 8b37a9889a..31616af2af 160000 --- a/submodules/zotero +++ b/submodules/zotero @@ -1 +1 @@ -Subproject commit 8b37a9889a8201724e771f84994f05687ebcbd1b +Subproject commit 31616af2af78ca0cdbfcf02539675d18bea4be8d diff --git a/submodules/zotero-utilities b/submodules/zotero-utilities index fbc4d6ad1c..eab0922a2d 160000 --- a/submodules/zotero-utilities +++ b/submodules/zotero-utilities @@ -1 +1 @@ -Subproject commit fbc4d6ad1c947035404db4321912ed46fb113380 +Subproject commit eab0922a2dd3e1254d1ab69e87cb673f208c6257 diff --git a/test/behave b/test/behave index f1121726f9..60e479b3e4 100755 --- a/test/behave +++ b/test/behave @@ -120,6 +120,7 @@ if args.this or args.test_this: if args.test_this: args.test = BRANCH.replace('gh-', '') if args.test or args.this or args.nightly or args.tagged: args.slow = True +if args.test: args.stop = False if args.client == 'jurism': print(f"********* JURISM NO LONGER SUPPORTED ***********") diff --git a/test/features/export.feature b/test/features/export.feature index b84a4c9ce9..938562e5d1 100644 --- a/test/features/export.feature +++ b/test/features/export.feature @@ -13,8 +13,12 @@ Feature: Export Examples: | file | references | + | Exporting item type film merges scriptwriter with other contributors #2802 | 1 | + | Three dashes in extra field for generating markdown files from bibtex #2849 | 1 | + | Export of Contributor to WITH #2837 | 1 | | Better BibTeX export from Zotero missing Extra fields eg issued #2816 | 1 | | Support for Chinese Quotation Marks When Exporting with Export unicode as plaintext latex commands #2810 | 1 | + | Exporting item type film merges scriptwriter with other contributors #2802 | 1 | | en-dash and i-circumflex translation error #2796 | 3 | | Exporting # in hashtags. #2795 | 1 | | My citation key formula suddenly includes editors for book sections even when there is a declared author #2794 | 2 | @@ -622,6 +626,13 @@ Feature: Export And I wait 15 seconds Then "~/autoexport.bib" should match "export/*.after.bibtex" + Scenario: Export of Contributor to WITH #2837-autoexport + Given I import 1 reference from "export/*.json" + Then an auto-export to "~/autoexport.bib" using "Better BibLaTeX" should match "export/*.before.biblatex" + When I change biblatexAPA to true on the auto-export + And I wait 15 seconds + Then "~/autoexport.bib" should match "export/*.after.biblatex" + Scenario: Auto-Export citekey edits #citekey-edit Given I import 1 reference from "export/*.json" Then an auto-export to "~/autoexport.bib" using "Better BibTeX" should match "export/*.before.bibtex" diff --git a/test/features/import.feature b/test/features/import.feature index d430df266e..5dd5af75f0 100644 --- a/test/features/import.feature +++ b/test/features/import.feature @@ -10,6 +10,11 @@ Feature: Import When I import 2 references from "import/*.bib" Then the library should match "import/*.json" + Scenario: URL not recognised in a simple online bib file entry on import #2842 + When I apply the preferences from "import/*.json" + And I import 1 reference from "import/*.bib" + Then the library should match "import/*.json" + # And the markdown citation for Torre2008 should be '\(Torre & Verducci, 2008\)' # And the markdown bibliography for Torre2008 should be 'Torre, J., & Verducci, T. \(2008\). _The Yankee Years_. Doubleday.' # And the markdown citation for orre2008 should be '' diff --git a/test/features/steps/steps.py b/test/features/steps/steps.py index e21bb17db1..5a3f5968ed 100644 --- a/test/features/steps/steps.py +++ b/test/features/steps/steps.py @@ -62,16 +62,20 @@ def step_impl(context, value): @when(u'I create preference override {value}') def step_impl(context, value): - value = json.loads(value) - assert value.startswith('~/'), value - value = os.path.join(context.tmpDir, value[2:]) - with open(value, 'w') as f: + override = json.loads(value) + assert override.startswith('~/'), override + override = os.path.join(context.tmpDir, override[2:]) + with open(override, 'w') as f: json.dump({'override': { 'preferences': {} }}, f) - context.preferenceOverride = value + context.preferenceOverride = override @when(u'I remove preference override {value}') def step_impl(context, value): - os.remove(context.preferenceOverride) + override = json.loads(value) + assert override.startswith('~/'), override + override = os.path.join(context.tmpDir, override[2:]) + assert override == context.preferenceOverride, [ override, context.preferenceOverride ] + os.remove(override) @step('I set preference override {pref} to {value}') def step_impl(context, pref, value): @@ -135,10 +139,10 @@ def step_impl(context): context.zotero.restart(timeout=context.timeout) @step(r'I apply the preferences from "{source}"') -def step_impl(context, references, source): +def step_impl(context, source): source = expand_scenario_variables(context, source) context.imported = source - assert_that(context.zotero.import_file(context, source, items=False), equal_to(references)) + assert_that(context.zotero.import_file(context, source, items=False), equal_to(0)) @step('I compile "{source}" to "{target}" it should match "{baseline}" with {n} citations') def step_impl(context, source, target, baseline, n): @@ -339,7 +343,16 @@ def step_impl(context): @when(u'I merge the selected items') def step_impl(context): assert len(context.selected) > 1 - context.zotero.execute('return await Zotero.BetterBibTeX.TestSupport.merge(selected)', selected=context.selected) + context.zotero.execute(''' + try { + return await Zotero.BetterBibTeX.TestSupport.merge(selected) + } catch (err) { + Zotero.debug('oops on merge') + Zotero.debug(`${err}`) + Zotero.debug(err.stack) + throw err + } + ''', selected=context.selected) @when(u'I empty the trash') def step_impl(context): diff --git a/test/features/steps/zotero.py b/test/features/steps/zotero.py index 41ef5756f8..b01b98229f 100644 --- a/test/features/steps/zotero.py +++ b/test/features/steps/zotero.py @@ -526,6 +526,7 @@ def import_file(self, context, references, collection = False, items=True): shutil.copy(orig, references) if '.bib' in references: + assert os.path.exists(references), f'{json.dumps(references)} does not exist' copy = False bib = '' with open(references) as f: diff --git a/test/fixtures/export/BibLaTeX Patent author handling, type #1060.biblatex b/test/fixtures/export/BibLaTeX Patent author handling, type #1060.biblatex index b67da5f1b6..7012e86929 100644 --- a/test/fixtures/export/BibLaTeX Patent author handling, type #1060.biblatex +++ b/test/fixtures/export/BibLaTeX Patent author handling, type #1060.biblatex @@ -1,11 +1,10 @@ - @patent{inventorCombinatorialProblemStabilityIssueDate, type = {patent}, title = {A Combinatorial Problem; Stability and Order for Models and Theories in Infinitary Languages}, author = {Inventor, Some}, - editora = {Attorney/Agent, Some and Contributer, Some}, - editoratype = {collaborator}, holder = {{Assignee}}, + namea = {Attorney/Agent, Some and Contributer, Some}, + nameatype = {collaborator}, year = {Issue Date}, number = {Patent Number}, pages = {247--261}, @@ -13,8 +12,6 @@ pubstate = {Legal Status} } % == BibLateX quality report for inventorCombinatorialProblemStabilityIssueDate: -% Unexpected field 'editora' -% Unexpected field 'editoratype' % Unexpected field 'pages' % ? unused Application number ("Application Number") % ? unused Assignee ("Assignee") @@ -40,4 +37,3 @@ % ? unused Assignee ("DaimlerChrysler AG (Stuttgart, 70567, DE) Bayerische Motoren Werke AG (München, 80809, DE) Robert Bosch GmbH (Stuttgart, 70469, DE)") % ? unused Filing date ("2003-12-24") % ? unused Number ("DE10361215") - diff --git a/test/fixtures/export/Book Title exports to Journaltitle for Biblatex @incollection reference type #1691.biblatex b/test/fixtures/export/Book Title exports to Journaltitle for Biblatex @incollection reference type #1691.biblatex index 9bc6e9f49f..4528563a92 100644 --- a/test/fixtures/export/Book Title exports to Journaltitle for Biblatex @incollection reference type #1691.biblatex +++ b/test/fixtures/export/Book Title exports to Journaltitle for Biblatex @incollection reference type #1691.biblatex @@ -1,11 +1,10 @@ - @online{NagyHistorians2008, type = {Billet}, title = {Historians and {{Emotions}}: {{New Theories}}, {{New Questions}}}, shorttitle = {Historians and {{Emotions}}}, author = {Nagy, Piroska}, - editora = {Boquet, Damien}, - editoratype = {collaborator}, + namea = {Boquet, Damien}, + nameatype = {collaborator}, date = {2008-10-24}, url = {http://emma.hypotheses.org/147}, urldate = {2017-12-12}, @@ -13,8 +12,6 @@ } % == BibLateX quality report for NagyHistorians2008: % Unexpected field 'type' -% Unexpected field 'editora' -% Unexpected field 'editoratype' % ? Title looks like it was stored in title-case in Zotero @incollection{胡適哲學史1917, @@ -31,5 +28,3 @@ origpublisher = {萬有文庫}, origtitle = {中國哲學史大綱卷上[1919],商務} } - - diff --git a/test/fixtures/export/Convert Chinese name to Pinyin in citation key. #2361.biblatex b/test/fixtures/export/Convert Chinese name to Pinyin in citation key. #2361.biblatex index a52478c1cd..cbbc3671c3 100644 --- a/test/fixtures/export/Convert Chinese name to Pinyin in citation key. #2361.biblatex +++ b/test/fixtures/export/Convert Chinese name to Pinyin in citation key. #2361.biblatex @@ -1,8 +1,8 @@ @thesis{weixiao2016, title = {黄土高原同纬度大气降水稳定同位素分析}, author = {魏笑}, - editora = {赵英 and 西北农林科技大学}, - editoratype = {collaborator}, + namea = {赵英 and 西北农林科技大学}, + nameatype = {collaborator}, date = {2016-01-01T00:00:00}, abstract = {大气降水中氢氧稳定同位素的含量不高,其变化过程与纬度、海拔、季节变化、温度和降水量等因素都有关系。本次研究以黄土高原为背景,主要选取了甘肃省庆阳市西峰区、甘肃省庆阳市环县、陕西省延安市安塞县、陕西省延安市延长县、宁夏回族自治区中卫市海原县、山西省大同市、山西省介休市7个试验点,对各试验点2015年的大气降水进行采集,分析、测定各试验点大气降水稳定同位素的月平均值,进而得出研究区域大气降水氢氧稳定同位素含量的时空变化特征及其与温度、降水量的响应关系,初步建立了研究区域的局地大气降水线方程,为分析陆地水循环水汽的来源,水汽的转移、运动方式以及后续黄土高原地区地下水补给来源等相关试验提供基础数据和理论依据。研究结果表明:与全球大气降水线方程相比,研究区域大气降水线方程斜率和截距均较低。斜率和截距越小,说明降水时存在的蒸发作用越强烈,表明雨滴在降水过程中受云下二次蒸发而发生强烈的同位素动力分馏效应,使降水线的斜率和截距变小。7个试验点具有不同的时空变化特征:从时间变化上看,海原县和大同市大气降水δ\textasciitilde O的值夏季富集,冬季贫化,环县、西峰大气降水δ\textasciitilde (18)O的值季节变化不明显,安塞县、延长县、介休市大气降水δ\textasciitilde (18)O的值则基本表现为冬季富集,夏季贫化;在空间变化上,则基本表现为各试验点δ\textasciitilde (18)O值自西向东呈减小趋势。本次研究各试验点大气降水δ\textasciitilde (18)O主要受温度和降水量的影响,各试验点具有不同的特点:海原县主要受温度效应影响,降水中δ\textasciitilde (18)O值较高,而其余各点由于受较强的季风活动所引起的降水量效应的影响,导致其大气降水中δ\textasciitilde (18)O的值相对较低,尤其是山西省大同市试验点,季风活动引起的降水量效应以及较寒冷的气候使得其δ\textasciitilde (18)O的值明显低于其它试验点。}, keywords = {同纬度,大气降水,稳定同位素} diff --git a/test/fixtures/export/Direct access to Zotero Creators fields #2787.biblatex b/test/fixtures/export/Direct access to Zotero Creators fields #2787.biblatex index 7692b362fa..a619bf38e4 100644 --- a/test/fixtures/export/Direct access to Zotero Creators fields #2787.biblatex +++ b/test/fixtures/export/Direct access to Zotero Creators fields #2787.biblatex @@ -2,8 +2,8 @@ title = {Theodor W. Adorno: Negative Dialektik}, shorttitle = {Klassiker Auslegen: Negative Dialektik}, editor = {Honneth, Axel and Menke, Christoph}, - editorb = {Höffe, Otfried}, - editorbtype = {redactor}, + editora = {Höffe, Otfried}, + editoratype = {redactor}, date = {2006}, series = {Klassiker Auslegen}, number = {28}, diff --git a/test/fixtures/export/Error exporting with custom Extra field #1118.bibtex b/test/fixtures/export/Error exporting with custom Extra field #1118.bibtex index 25988f1250..d71c20b90d 100644 --- a/test/fixtures/export/Error exporting with custom Extra field #1118.bibtex +++ b/test/fixtures/export/Error exporting with custom Extra field #1118.bibtex @@ -6,6 +6,11 @@ journal = {Pacific Journal of Mathematics}, volume = {41}, pages = {247--261}, - annotation = {\{biblatex\{ editortype: "translated and edited under the supervision of", referencetype: mvlexicon \}\}\{\}}, + annotation = {\{biblatex\{\\ + editortype: "translated and edited under the supervision of",\\ + referencetype: mvlexicon\\ +\}\}\\ +\\ +\{\}}, note = {MR 46:7018} } diff --git a/test/fixtures/export/Export of Contributor to WITH #2837-autoexport.after.biblatex b/test/fixtures/export/Export of Contributor to WITH #2837-autoexport.after.biblatex new file mode 100644 index 0000000000..00754c10ff --- /dev/null +++ b/test/fixtures/export/Export of Contributor to WITH #2837-autoexport.after.biblatex @@ -0,0 +1,6 @@ +@book{meyersWitheringWorrying2014, + title = {Withering Worrying}, + author = {Meyers, K.}, + with = {Long, W. T.}, + date = {2014} +} diff --git a/test/fixtures/export/Export of Contributor to WITH #2837-autoexport.before.biblatex b/test/fixtures/export/Export of Contributor to WITH #2837-autoexport.before.biblatex new file mode 100644 index 0000000000..636e2c20c8 --- /dev/null +++ b/test/fixtures/export/Export of Contributor to WITH #2837-autoexport.before.biblatex @@ -0,0 +1,7 @@ +@book{meyersWitheringWorrying2014, + title = {Withering Worrying}, + author = {Meyers, K.}, + namea = {Long, W. T.}, + nameatype = {collaborator}, + date = {2014} +} diff --git a/test/fixtures/export/Export of Contributor to WITH #2837-autoexport.json b/test/fixtures/export/Export of Contributor to WITH #2837-autoexport.json new file mode 100644 index 0000000000..63c8865f64 --- /dev/null +++ b/test/fixtures/export/Export of Contributor to WITH #2837-autoexport.json @@ -0,0 +1,32 @@ +{ + "config": { + "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", + "label": "BetterBibTeX JSON", + "options": { + }, + "preferences": { + "autoExport": "immediate" + } + }, + "items": [ + { + "citationKey": "meyersWitheringWorrying2014", + "creators": [ + { + "creatorType": "author", + "firstName": "K.", + "lastName": "Meyers" + }, + { + "creatorType": "contributor", + "firstName": "W. T.", + "lastName": "Long" + } + ], + "date": "2014", + "itemID": 1, + "itemType": "book", + "title": "Withering worrying" + } + ] +} diff --git a/test/fixtures/export/Export of Contributor to WITH #2837.biblatex b/test/fixtures/export/Export of Contributor to WITH #2837.biblatex new file mode 100644 index 0000000000..00754c10ff --- /dev/null +++ b/test/fixtures/export/Export of Contributor to WITH #2837.biblatex @@ -0,0 +1,6 @@ +@book{meyersWitheringWorrying2014, + title = {Withering Worrying}, + author = {Meyers, K.}, + with = {Long, W. T.}, + date = {2014} +} diff --git a/test/fixtures/export/Export of Contributor to WITH #2837.json b/test/fixtures/export/Export of Contributor to WITH #2837.json new file mode 100644 index 0000000000..77cb36ce5b --- /dev/null +++ b/test/fixtures/export/Export of Contributor to WITH #2837.json @@ -0,0 +1,33 @@ +{ + "config": { + "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", + "label": "BetterBibTeX JSON", + "options": { + "biblatexAPA": true + }, + "preferences": { + "kuroshiro": true + } + }, + "items": [ + { + "citationKey": "meyersWitheringWorrying2014", + "creators": [ + { + "creatorType": "author", + "firstName": "K.", + "lastName": "Meyers" + }, + { + "creatorType": "contributor", + "firstName": "W. T.", + "lastName": "Long" + } + ], + "date": "2014", + "itemID": 1, + "itemType": "book", + "title": "Withering worrying" + } + ] +} diff --git a/test/fixtures/export/Exporting item type film merges scriptwriter with other contributors #2802.biblatex b/test/fixtures/export/Exporting item type film merges scriptwriter with other contributors #2802.biblatex new file mode 100644 index 0000000000..2da4cf228d --- /dev/null +++ b/test/fixtures/export/Exporting item type film merges scriptwriter with other contributors #2802.biblatex @@ -0,0 +1,17 @@ +@video{Loach:DanielBlake2017, + type = {Drama}, + entrysubtype = {film}, + title = {I, {{Daniel Blake}}}, + editor = {Loach, Ken}, + editortype = {director}, + editora = {Laverty, Paul}, + editoratype = {scriptwriter}, + editorb = {Johns, Dave and Squires, Hayley and Percy, Sharon}, + editorbtype = {none}, + date = {2017-06-09}, + publisher = {Sixteen Films, Why Not Productions, Wild Bunch}, + abstract = {After surviving a heart-attack, a 59-year-old carpenter must fight bureaucratic forces to receive Employment and Support Allowance.}, + keywords = {bureaucracy,psychological violence,United Kingdom}, + annotation = {IMDb ID: tt5168192\\ +event-location: United Kingdom, France, Belgium} +} diff --git a/test/fixtures/export/Exporting item type film merges scriptwriter with other contributors #2802.json b/test/fixtures/export/Exporting item type film merges scriptwriter with other contributors #2802.json new file mode 100644 index 0000000000..1c4ea7893d --- /dev/null +++ b/test/fixtures/export/Exporting item type film merges scriptwriter with other contributors #2802.json @@ -0,0 +1,76 @@ +{ + "config": { + "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", + "label": "BetterBibTeX JSON", + "options": { + "Items": true, + "Preferences": true, + "exportNotes": true, + "biblatexChicago": true, + "worker": true + }, + "preferences": { + "autoExport": "idle", + "citeCommand": "autocite", + "citekeyFormat": "auth + ':' + shorttitle(3,3) + year" + } + }, + "items": [ + { + "abstractNote": "After surviving a heart-attack, a 59-year-old carpenter must fight bureaucratic forces to receive Employment and Support Allowance.", + "citationKey": "Loach:DanielBlake2017", + "creators": [ + { + "creatorType": "director", + "firstName": "Ken", + "lastName": "Loach" + }, + { + "creatorType": "scriptwriter", + "firstName": "Paul", + "lastName": "Laverty" + }, + { + "creatorType": "contributor", + "firstName": "Dave", + "lastName": "Johns" + }, + { + "creatorType": "contributor", + "firstName": "Hayley", + "lastName": "Squires" + }, + { + "creatorType": "contributor", + "firstName": "Sharon", + "lastName": "Percy" + } + ], + "date": "2017-06-09", + "extra": [ + "IMDb ID: tt5168192", + "event-location: United Kingdom, France, Belgium" + ], + "itemID": 1, + "itemType": "film", + "libraryCatalog": "IMDb", + "publisher": "Sixteen Films, Why Not Productions, Wild Bunch", + "runningTime": "1h40m", + "tags": [ + { + "tag": "bureaucracy", + "type": 1 + }, + { + "tag": "psychological violence", + "type": 1 + }, + { + "tag": "United Kingdom" + } + ], + "title": "I, Daniel Blake", + "type": "Drama" + } + ] +} diff --git a/test/fixtures/export/Length filter double-counting characters #2525.biblatex b/test/fixtures/export/Length filter double-counting characters #2525.biblatex index 34b7c7239d..cf988f06ad 100644 --- a/test/fixtures/export/Length filter double-counting characters #2525.biblatex +++ b/test/fixtures/export/Length filter double-counting characters #2525.biblatex @@ -1,5 +1,5 @@ @article{Leach2022-JLTP, - title = {The {{BeEST Experiment}}: {{Searching}} for {{Beyond Standard Model Neutrinos}} Using \$\^{}7\${{Be Decay}} in {{STJs}}}, + title = {The {{BeEST Experiment}}: {{Searching}} for {{Beyond Standard Model Neutrinos}} Using \$\textasciicircum 7\${{Be Decay}} in {{STJs}}}, shorttitle = {The {{BeEST Experiment}}}, author = {Leach, K. G. and Friedrich, S.}, date = {2022-12}, diff --git a/test/fixtures/export/Setting the item type via the cheater syntax #587.biblatex b/test/fixtures/export/Setting the item type via the cheater syntax #587.biblatex index 973452d59d..3ec13227f4 100644 --- a/test/fixtures/export/Setting the item type via the cheater syntax #587.biblatex +++ b/test/fixtures/export/Setting the item type via the cheater syntax #587.biblatex @@ -1,4 +1,3 @@ - @booklet{clark_mesopotamia_1957, title = {Mesopotamia: Between Two Rivers}, author = {Clark, Hazel V.}, @@ -11,8 +10,8 @@ @review{kamp_deconstructing_2006, title = {Deconstructing Dinner}, author = {Kamp, David}, - editora = {Pollan, Michael}, - editoratype = {collaborator}, + namea = {Pollan, Michael}, + nameatype = {collaborator}, date = {2006-04-23}, url = {http://www.nytimes.com/2006/04/23/books/review/23kamp.html.}, abstract = {Example from CMoS, 16e, 14.125}, @@ -41,8 +40,8 @@ @review{ratliff_mystery_1999, title = {The Mystery of Samba: {{Popular}} Music and National Identity in {{Brazil}}}, author = {Ratliff, Ben}, - editora = {{Hermano Vianna}}, - editoratype = {collaborator}, + namea = {{Hermano Vianna}}, + nameatype = {collaborator}, date = {1999-04}, journaltitle = {Lingua Franca}, volume = {9}, @@ -57,5 +56,3 @@ Original annotation: \par Example from CMoS, 16e, 14.125} } - - diff --git a/test/fixtures/export/Three dashes in extra field for generating markdown files from bibtex #2849.biblatex b/test/fixtures/export/Three dashes in extra field for generating markdown files from bibtex #2849.biblatex new file mode 100644 index 0000000000..9305fdb390 --- /dev/null +++ b/test/fixtures/export/Three dashes in extra field for generating markdown files from bibtex #2849.biblatex @@ -0,0 +1,11 @@ +@inproceedings{castillo_authoritarianism_2011, + title = {Authoritarianism, social dominance, and trust in public institutions.}, + author = {Castillo, J. and Miranda, D. and Torres, P.}, + date = {2011-07}, + location = {Bilgi University, Istambul}, + eventtitle = {Annual Scientific Meeting of the International Society of Political Psychology ISPP}, + keywords = {legitimacy ideology Chile}, + annotation = {url\_slides: "lisa-coes.github.io/"\\ +---\\ +This is a presentation funded by ANID} +} diff --git a/test/fixtures/export/Three dashes in extra field for generating markdown files from bibtex #2849.json b/test/fixtures/export/Three dashes in extra field for generating markdown files from bibtex #2849.json new file mode 100644 index 0000000000..dd31773394 --- /dev/null +++ b/test/fixtures/export/Three dashes in extra field for generating markdown files from bibtex #2849.json @@ -0,0 +1,54 @@ +{ + "config": { + "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", + "label": "BetterBibTeX JSON", + "preferences": { + "asciiBibTeX": false, + "bibtexParticleNoOp": true, + "bibtexURL": "url", + "citekeyFormat": "auth(n=0,m=1,creator=\"*\",initials=false).fold.lower + \"_\" + shorttitle(1).lower + \"_\" + year", + "exportBraceProtection": false, + "exportTitleCase": false, + "importSentenceCase": "off", + "keyScope": "global" + } + }, + "items": [ + { + "citationKey": "castillo_authoritarianism_2011a", + "conferenceName": "Annual Scientific Meeting of the International Society of Political Psychology ISPP", + "creators": [ + { + "creatorType": "author", + "firstName": "J.", + "lastName": "Castillo" + }, + { + "creatorType": "author", + "firstName": "D.", + "lastName": "Miranda" + }, + { + "creatorType": "author", + "firstName": "P.", + "lastName": "Torres" + } + ], + "date": "July, 2011", + "extra": [ + "url_slides: \"lisa-coes.github.io/\"", + "---", + "This is a presentation funded by ANID" + ], + "itemID": 1, + "itemType": "conferencePaper", + "place": "Bilgi University, Istambul", + "tags": [ + { + "tag": "legitimacy ideology Chile" + } + ], + "title": "Authoritarianism, social dominance, and trust in public institutions." + } + ] +} \ No newline at end of file diff --git a/test/fixtures/export/URL-DOI exclusive export broken for item types with no dedicated DOI field #1331.biblatex b/test/fixtures/export/URL-DOI exclusive export broken for item types with no dedicated DOI field #1331.biblatex index 7782f7cd1e..4be3587baa 100644 --- a/test/fixtures/export/URL-DOI exclusive export broken for item types with no dedicated DOI field #1331.biblatex +++ b/test/fixtures/export/URL-DOI exclusive export broken for item types with no dedicated DOI field #1331.biblatex @@ -1,8 +1,8 @@ @book{Gentleman2005, title = {Bioinformatics and {{Computational Biology Solutions Using R}} and {{Bioconductor}}}, editor = {Gentleman, Robert and Carey, Vincent J. and Huber, Wolfgang and Irizarry, Rafael A. and Dudoit, Sandrine}, - editorb = {Wong, Wing and Gail, M. and Krickeberg, K. and Tsiatis, A. and Samet, J.}, - editorbtype = {redactor}, + editora = {Wong, Wing and Gail, M. and Krickeberg, K. and Tsiatis, A. and Samet, J.}, + editoratype = {redactor}, date = {2005}, series = {Statistics for {{Biology}} and {{Health}}}, publisher = {Springer New York}, diff --git a/test/fixtures/export/Unbalanced vphantom escapes #1043.bibtex b/test/fixtures/export/Unbalanced vphantom escapes #1043.bibtex index dfc84fb7a0..7ba86cda2b 100644 --- a/test/fixtures/export/Unbalanced vphantom escapes #1043.bibtex +++ b/test/fixtures/export/Unbalanced vphantom escapes #1043.bibtex @@ -1,5 +1,5 @@ @article{mies1973, - title = {Molecular {{Theory}} of {{Atomic Collisions}}: {{Calculated Cross Sections}} for \$\{{\textbackslash}mathrm\{\vphantom{\}\}}{{H}}\vphantom\{\}\vphantom\{\}\^{}\{+\}+{\textbackslash}mathrm\{\vphantom\}{{F}}\vphantom\{\}(\^{}\{2\}{{P}})\$\vphantom\{\}}, + title = {Molecular {{Theory}} of {{Atomic Collisions}}: {{Calculated Cross Sections}} for \$\{{\textbackslash}mathrm\{\vphantom{\}\}}{{H}}\vphantom\{\}\vphantom\{\}{\textasciicircum}\{+\}+{\textbackslash}mathrm\{\vphantom\}{{F}}\vphantom\{\}({\textasciicircum}\{2\}{{P}})\$\vphantom\{\}}, shorttitle = {Molecular {{Theory}} of {{Atomic Collisions}}}, author = {Mies, F. H.}, year = {1973}, diff --git a/test/fixtures/export/map csl-json variables #293.biblatex b/test/fixtures/export/map csl-json variables #293.biblatex index 9d9e882ff7..0d40af3100 100644 --- a/test/fixtures/export/map csl-json variables #293.biblatex +++ b/test/fixtures/export/map csl-json variables #293.biblatex @@ -1,8 +1,9 @@ - @book{kelsen_democratie_2004, title = {La démocratie. Sa nature, sa valeur}, author = {Kelsen, Hans}, translator = {Eisenmann, Charles}, + namea = {Raynaud, Philippe}, + nameatype = {collaborator}, date = {2004}, origdate = {1929}, series = {Bibliothèque Dalloz}, @@ -31,5 +32,3 @@ origpublisher = {origpublisher}, origtitle = {origtitle} } - - diff --git a/test/fixtures/export/markup small-caps, superscript, italics #301.biblatex b/test/fixtures/export/markup small-caps, superscript, italics #301.biblatex index 43007f57e7..31a2470632 100644 --- a/test/fixtures/export/markup small-caps, superscript, italics #301.biblatex +++ b/test/fixtures/export/markup small-caps, superscript, italics #301.biblatex @@ -1,8 +1,9 @@ - @incollection{burgorgue-larsen_interventions_2011, title = {Les interventions \emph{éclairées} devant la Cour européenne des droits de l'homme ou le rôle stratégique des \emph{amici curiae}}, booktitle = {La conscience des droits. Mélanges en l'honneur de Jean-Paul Costa}, author = {Burgorgue-Larsen, Laurence}, + namea = {Titiun, Patrick and Dumaine, Patricia}, + nameatype = {collaborator}, date = {2011}, pages = {68--82}, publisher = {Dalloz}, @@ -26,5 +27,3 @@ langid = {french}, volumes = {355 p.} } - - diff --git a/test/fixtures/import/Allow spaces between href arguments for import #2504.json b/test/fixtures/import/Allow spaces between href arguments for import #2504.json index 27dd743a5a..3d8ae95365 100644 --- a/test/fixtures/import/Allow spaces between href arguments for import #2504.json +++ b/test/fixtures/import/Allow spaces between href arguments for import #2504.json @@ -2,117 +2,35 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "preferences": { - "ascii": "", - "asciiBibLaTeX": false, - "asciiBibTeX": true, - "autoAbbrev": false, - "autoAbbrevStyle": "", - "autoExport": "immediate", - "autoExportDelay": 5, - "autoExportIdleWait": 10, - "autoExportPathReplaceDiacritics": false, - "autoExportPathReplaceDirSep": "-", - "autoExportPathReplaceSpace": " ", - "automaticTags": true, - "autoPinDelay": 0, - "auxImport": false, - "baseAttachmentPath": "", - "biblatexExtendedDateFormat": true, - "biblatexExtendedNameFormat": true, - "biblatexExtractEprint": true, - "bibtexParticleNoOp": false, - "bibtexURL": "off", - "cache": true, - "cacheFlushInterval": 5, - "charmap": "", - "citeCommand": "cite", - "citekeyFold": true, - "citekeyFormat": "auth + year", - "citekeySearch": true, - "citekeyUnsafeChars": "\\\"#%'(),={}~", - "csquotes": "", - "DOIandURL": "both", - "exportBibTeXStrings": "off", - "exportBraceProtection": true, - "exportTitleCase": true, - "extraMergeCitekeys": false, - "extraMergeCSL": false, - "extraMergeTeX": false, - "git": "config", - "import": true, - "importBibTeXStrings": true, - "importCaseProtection": "as-needed", - "importCitationKey": true, - "importExtra": true, - "importJabRefAbbreviations": true, - "importJabRefStrings": true, - "importNoteToExtra": "", - "importSentenceCase": "on+guess", - "importUnknownTexCommand": "ignore", - "itemObserverDelay": 5, - "jabrefFormat": 0, - "jieba": false, - "keyConflictPolicy": "keep", - "keyScope": "library", - "kuroshiro": false, - "language": "langid", - "mapMath": "", - "mapText": "", - "parseParticles": true, - "patchDates": "dateadded=dateAdded, date-added=dateAdded, datemodified=dateModified, date-modified=dateModified", - "postscript": "", - "postscriptOverride": "", - "preferencesOverride": "", - "qualityReport": false, - "quickCopyEta": "", - "quickCopyMode": "latex", - "quickCopyOrgMode": "zotero", - "quickCopyPandocBrackets": false, - "quickCopySelectLink": "zotero", - "rawImports": false, - "rawLaTag": "#LaTeX", - "relativeFilePaths": false, - "retainCache": false, - "separatorList": "and", - "separatorNames": "and", - "skipFields": "", - "skipWords": "a,ab,aboard,about,above,across,after,against,al,along,amid,among,an,and,anti,around,as,at,before,behind,below,beneath,beside,besides,between,beyond,but,by,d,da,das,de,del,dell,dello,dei,degli,della,dell,delle,dem,den,der,des,despite,die,do,down,du,during,ein,eine,einem,einen,einer,eines,el,en,et,except,for,from,gli,i,il,in,inside,into,is,l,la,las,le,les,like,lo,los,near,nor,of,off,on,onto,or,over,past,per,plus,round,save,since,so,some,sur,than,the,through,to,toward,towards,un,una,unas,under,underneath,une,unlike,uno,unos,until,up,upon,versus,via,von,while,with,within,without,yet,zu,zum", - "startupProgress": "popup", - "strings": "", - "stringsOverride": "", - "verbatimFields": "url,doi,file,pdf,ids,eprint,/^verb[a-z]$/,groups,/^citeulike-linkout-[0-9]+$/, /^bdsk-url-[0-9]+$/", - "warnBulkModify": 10, - "warnTitleCased": false - }, "options": { - "exportNotes": true, - "exportFileData": false, - "keepUpdated": false, - "worker": false, - "Normalize": true + "Items": true, + "Preferences": true, + "exportNotes": true + }, + "preferences": { + "citekeyFormat": "auth + year" } }, - "version": { - "zotero": "6.0.26", - "bbt": "6.7.77.emile.limonia" - }, - "collections": {}, "items": [ { - "version": 0, - "itemType": "document", - "url": "https://www.math.uni-bielefeld.de/~gaehler/gap/packages.php", - "date": "2022-07", - "extra": "Citation Key: CaratInterface2.3.4\ntex.printedkey: Gäh22", - "title": "CaratInterface, interface to CARAT, a crystallographic groups package, Version 2.3.4", + "citationKey": "CaratInterface2.3.4", "creators": [ { + "creatorType": "author", "firstName": "F.", - "lastName": "Gähler", - "creatorType": "author" + "lastName": "G\u00e4hler" } ], + "date": "2022-07", + "extra": [ + "Citation Key: CaratInterface2.3.4", + "tex.printedkey: G\u00e4h22" + ], + "itemID": 1, + "itemType": "document", + "notes": [ + "Refereed GAP package" + ], "tags": [ { "tag": "crystallographic groups" @@ -124,64 +42,48 @@ "tag": "GLnZ" } ], - "relations": [], - "dateAdded": "2023-05-02T14:04:07Z", - "dateModified": "2023-05-02T14:04:07Z", - "uri": "http://zotero.org/users/8230813/items/HJZ7MCCF", - "attachments": [], - "notes": [ - { - "key": "6WRLYPAU", - "version": 0, - "itemType": "note", - "parentItem": "HJZ7MCCF", - "note": "Refereed GAP package", - "tags": [], - "relations": {}, - "dateAdded": "2023-05-02T14:04:07Z", - "dateModified": "2023-05-02T14:04:07Z", - "uri": "http://zotero.org/users/8230813/items/6WRLYPAU" - } - ], - "citationKey": "CaratInterface2.3.4", - "itemID": 104, - "itemKey": "HJZ7MCCF", - "libraryID": 1 + "title": "CaratInterface, Interface to CARAT, a crystallographic groups package, Version 2.3.4", + "url": "https://www.math.uni-bielefeld.de/~gaehler/gap/packages.php" }, { - "version": 0, - "itemType": "document", - "url": "https://www.math.uni-bielefeld.de/~gaehler/gap/packages.php", - "date": "2023-04", - "extra": "Citation Key: Cryst4.1.26\ntex.printedkey: EGN23", - "title": "Cryst, Computing with crystallographic groups, Version 4.1.26", + "citationKey": "Cryst4.1.26", "creators": [ { + "creatorType": "author", "firstName": "B.", - "lastName": "Eick", - "creatorType": "author" + "lastName": "Eick" }, { + "creatorType": "author", "firstName": "F.", - "lastName": "Gähler", - "creatorType": "author" + "lastName": "G\u00e4hler" }, { + "creatorType": "author", "firstName": "W.", - "lastName": "Nickel", - "creatorType": "author" + "lastName": "Nickel" } ], + "date": "2023-04", + "extra": [ + "Citation Key: Cryst4.1.26", + "tex.printedkey: EGN23" + ], + "itemID": 2, + "itemType": "document", + "notes": [ + "Refereed GAP package" + ], "tags": [ - { - "tag": "crystallographic groups" - }, { "tag": "affine crystallographic groups" }, { "tag": "color groups" }, + { + "tag": "crystallographic groups" + }, { "tag": "International Tables for Crystallography" }, @@ -201,49 +103,33 @@ "tag": "Wyckoff positions" } ], - "relations": [], - "dateAdded": "2023-05-02T14:04:07Z", - "dateModified": "2023-05-02T14:04:07Z", - "uri": "http://zotero.org/users/8230813/items/QR8Q5VB5", - "attachments": [], - "notes": [ - { - "key": "DBJHY38M", - "version": 0, - "itemType": "note", - "parentItem": "QR8Q5VB5", - "note": "Refereed GAP package", - "tags": [], - "relations": {}, - "dateAdded": "2023-05-02T14:04:07Z", - "dateModified": "2023-05-02T14:04:07Z", - "uri": "http://zotero.org/users/8230813/items/DBJHY38M" - } - ], - "citationKey": "Cryst4.1.26", - "itemID": 107, - "itemKey": "QR8Q5VB5", - "libraryID": 1 + "title": "Cryst, Computing with crystallographic groups, Version 4.1.26", + "url": "https://www.math.uni-bielefeld.de/~gaehler/gap/packages.php" }, { - "version": 0, - "itemType": "document", - "url": "https://www.math.uni-bielefeld.de/~gaehler/gap/packages.php", - "date": "2022-07", - "extra": "Citation Key: CrystCat1.1.10\ntex.printedkey: FG22", - "title": "CrystCat, The crystallographic groups catalog, Version 1.1.10", + "citationKey": "CrystCat1.1.10", "creators": [ { + "creatorType": "author", "firstName": "V.", - "lastName": "Felsch", - "creatorType": "author" + "lastName": "Felsch" }, { + "creatorType": "author", "firstName": "F.", - "lastName": "Gähler", - "creatorType": "author" + "lastName": "G\u00e4hler" } ], + "date": "2022-07", + "extra": [ + "Citation Key: CrystCat1.1.10", + "tex.printedkey: FG22" + ], + "itemID": 3, + "itemType": "document", + "notes": [ + "Refereed GAP package" + ], "tags": [ { "tag": "crystallographic groups" @@ -252,38 +138,18 @@ "tag": "space groups" } ], - "relations": [], - "dateAdded": "2023-05-02T14:04:07Z", - "dateModified": "2023-05-02T14:04:07Z", - "uri": "http://zotero.org/users/8230813/items/57KACB4M", - "attachments": [], - "notes": [ - { - "key": "YZKTTG27", - "version": 0, - "itemType": "note", - "parentItem": "57KACB4M", - "note": "Refereed GAP package", - "tags": [], - "relations": {}, - "dateAdded": "2023-05-02T14:04:07Z", - "dateModified": "2023-05-02T14:04:07Z", - "uri": "http://zotero.org/users/8230813/items/YZKTTG27" - } - ], - "citationKey": "CrystCat1.1.10", - "itemID": 109, - "itemKey": "57KACB4M", - "libraryID": 1 + "title": "CrystCat, The crystallographic groups catalog, Version 1.1.10", + "url": "https://www.math.uni-bielefeld.de/~gaehler/gap/packages.php" }, { - "version": 0, + "citationKey": "GAP4.13dev", + "extra": [ + "Citation Key: GAP4.13dev", + "tex.key: GAP" + ], + "itemID": 4, "itemType": "document", - "url": "https://www.gap-system.org", "publisher": "The GAP Group", - "extra": "Citation Key: GAP4.13dev\ntex.key: GAP", - "title": "GAP – Groups, Algorithms, and Programming, Version 4.13dev", - "creators": [], "tags": [ { "tag": "*" @@ -298,16 +164,8 @@ "tag": "manual" } ], - "relations": [], - "dateAdded": "2023-05-02T14:04:07Z", - "dateModified": "2023-05-02T14:04:07Z", - "uri": "http://zotero.org/users/8230813/items/ACF2Q7U2", - "attachments": [], - "notes": [], - "citationKey": "GAP4.13dev", - "itemID": 106, - "itemKey": "ACF2Q7U2", - "libraryID": 1 + "title": "GAP \u2013 Groups, Algorithms, and Programming, Version 4.13dev", + "url": "https://www.gap-system.org" } ] -} +} \ No newline at end of file diff --git a/test/fixtures/import/BBT + Zotfile creating duplicate files in the wrong location #2300.json b/test/fixtures/import/BBT + Zotfile creating duplicate files in the wrong location #2300.json index fac5124a8a..0b934f9c1f 100644 --- a/test/fixtures/import/BBT + Zotfile creating duplicate files in the wrong location #2300.json +++ b/test/fixtures/import/BBT + Zotfile creating duplicate files in the wrong location #2300.json @@ -32,7 +32,7 @@ "itemID": 1, "itemType": "journalArticle", "notes": [ - "In the paper at hand, I provide an editorial history of Isaac Newton\u2019s famous regulae philosophandi on the basis of extant manuscript material.&amp;lt;/p&amp;gt;" + "In the paper at hand, I provide an editorial history of Isaac Newton\u2019s famous regulae philosophandi on the basis of extant manuscript material.&lt;/p&gt;" ], "pages": "143\u2013164", "publicationTitle": "Estudios de Filosof\u00eda", @@ -105,12 +105,13 @@ "tex.category: Secondary", "tex.date-added: 2022-10-26 18:58:57 -0400", "tex.date-modified: 2022-10-26 18:58:57 -0400", - "tex.price: $80.00" + "tex.price: $80.00", + "tex.title+duplicate-1: The Cambridge History of Seventeenth-Century Philosophy" ], "itemID": 3, "itemType": "book", "publisher": "Cambridge University Press", - "title": "The cambridge history of seventeenth-century philosophy" + "title": "The Cambridge history of seventeenth-century philosophy" }, { "ISBN": "0-521-65177-8", @@ -145,13 +146,6 @@ }, { "ISBN": "0415170540 (hardcover)", - "attachments": [ - { - "itemType": "attachment", - "path": "ATTACHMENT_KEY/Gaukroger - The Soft Underbelly of Reason The Passions in the Seventeenth (1998).pdf", - "title": "Gaukroger - The Soft Underbelly of Reason The Passions in the Seventeenth (1998)" - } - ], "citationKey": "ZGaukroger1998a", "creators": [ { @@ -201,9 +195,8 @@ "issue": "4075", "itemID": 6, "itemType": "journalArticle", - "journalAbbreviation": "Science", "pages": "751\u2013758", - "publicationTitle": "Science (New York, N.Y.)", + "publicationTitle": "Science", "title": "Newton and the fudge factor", "volume": "179" }, @@ -247,7 +240,7 @@ "tag": "Synthesis" } ], - "title": "Constituting the \u2018object\u2019 of science in Newton's Principia: the many faces of Janus", + "title": "Constituting the \u2018object\u2019 of science in newton's principia: the many faces of janus", "url": "https://doi.org/10.1016/j.shpsa.2022.07.002", "volume": "95" } diff --git a/test/fixtures/import/BBT does not import groups from JabRef 5.1 #1641.json b/test/fixtures/import/BBT does not import groups from JabRef 5.1 #1641.json index 503933a7b6..8f80edf97d 100644 --- a/test/fixtures/import/BBT does not import groups from JabRef 5.1 #1641.json +++ b/test/fixtures/import/BBT does not import groups from JabRef 5.1 #1641.json @@ -164,7 +164,7 @@ "tag": "sense" } ], - "title": "The Logic of Sense", + "title": "The logic of sense", "url": "https://www.bloomsbury.com/uk/logic-of-sense-9781474234887/" }, { @@ -174,7 +174,7 @@ "creators": [ { "creatorType": "author", - "firstName": "Ragnhe\u1ecbur", + "firstName": "Ragnhei \u0323ur", "lastName": "Bogad\u00f3ttir" }, { diff --git a/test/fixtures/import/Better BibLaTeX import improvements #549.json b/test/fixtures/import/Better BibLaTeX import improvements #549.json index a70beb777c..1753ae4377 100644 --- a/test/fixtures/import/Better BibLaTeX import improvements #549.json +++ b/test/fixtures/import/Better BibLaTeX import improvements #549.json @@ -2,10 +2,13 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "localeDateOrder": "dmy", - "options": {}, + "options": { + "Items": true, + "Preferences": true, + "exportNotes": true + }, "preferences": { - "citekeyFormat": "[auth][year]" + "citekeyFormat": "auth + year" } }, "items": [ @@ -22,7 +25,7 @@ ], "itemID": 1, "itemType": "journalArticle", - "title": "Blah mkbibemph and \u201cmkbibquote\u201d." + "title": "Blah mkbibemph and \u201cmkbibquote\u201d." }, { "citationKey": "1e", @@ -37,7 +40,7 @@ ], "itemID": 2, "itemType": "journalArticle", - "title": "Blah emph and \u201cenquote\u201d." + "title": "Blah emph and \u201cenquote\u201d." }, { "citationKey": "2b", @@ -52,7 +55,7 @@ ], "itemID": 3, "itemType": "book", - "title": "Blah mkbibemph and \u201cmkbibquote\u201d." + "title": "Blah mkbibemph and \u201cmkbibquote\u201d." }, { "citationKey": "2e", @@ -67,7 +70,7 @@ ], "itemID": 4, "itemType": "book", - "title": "Blah emph and \u201cenquote\u201d." + "title": "Blah emph and \u201cenquote\u201d." }, { "citationKey": "Algar1985", @@ -143,8 +146,7 @@ ], "date": "2013", "extra": [ - "Citation Key: Cooper2013", - "tex.crossref: Classen2013" + "Citation Key: Cooper2013" ], "itemID": 8, "itemType": "bookSection", @@ -168,7 +170,7 @@ "itemType": "journalArticle", "pages": "1-11", "publicationTitle": "Beitr\u00e4ge zur Geschichte der Philosophie des Mittelalters", - "title": "Die dem boethius f\u00e4lschlich zugeschriebene abhandlung des dominicus gundisalvi 'De unitate'", + "title": "Die dem Boethius f\u00e4lschlich zugeschriebene Abhandlung des Dominicus Gundisalvi 'De unitate'", "volume": "1" } ] diff --git a/test/fixtures/import/Better BibTeX.009.json b/test/fixtures/import/Better BibTeX.009.json index 9c07897094..c1aad4c059 100644 --- a/test/fixtures/import/Better BibTeX.009.json +++ b/test/fixtures/import/Better BibTeX.009.json @@ -2,9 +2,13 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "options": {}, + "options": { + "Items": true, + "Preferences": true, + "exportNotes": true + }, "preferences": { - "citekeyFormat": "[auth][year]" + "citekeyFormat": "auth + year" } }, "items": [ @@ -133,7 +137,7 @@ { "itemID": 3, "itemType": "note", - "note": "Import errors found:
  • No fields in @emptyreference
", + "note": "Import errors found:
  • No fields in @emptyreference
    @misc{emptyreference,\n  \n}
", "tags": [ { "tag": "#Better BibTeX import error", diff --git a/test/fixtures/import/Better BibTeX.010.json b/test/fixtures/import/Better BibTeX.010.json index 8b905fc637..6809caeb8a 100644 --- a/test/fixtures/import/Better BibTeX.010.json +++ b/test/fixtures/import/Better BibTeX.010.json @@ -2,228 +2,114 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "preferences": { - "ascii": "", - "asciiBibLaTeX": false, - "asciiBibTeX": true, - "autoAbbrev": false, - "autoAbbrevStyle": "", - "autoExport": "immediate", - "autoExportDelay": 5, - "autoExportIdleWait": 10, - "autoExportPathReplaceDiacritics": false, - "autoExportPathReplaceDirSep": "-", - "autoExportPathReplaceSpace": " ", - "automaticTags": true, - "autoPinDelay": 0, - "auxImport": false, - "baseAttachmentPath": "", - "biblatexExtendedDateFormat": true, - "biblatexExtendedNameFormat": true, - "biblatexExtractEprint": true, - "bibtexEditionOrdinal": false, - "bibtexParticleNoOp": false, - "bibtexURL": "off", - "cache": true, - "cacheFlushInterval": 5, - "charmap": "", - "citeCommand": "cite", - "citekeyFold": true, - "citekeyFormat": "auth + year", - "citekeySearch": true, - "citekeyUnsafeChars": "\\\"#%'(),={}~", - "csquotes": "", - "DOIandURL": "both", - "exportBibTeXStrings": "off", - "exportBraceProtection": true, - "exportTitleCase": true, - "extraMergeCitekeys": false, - "extraMergeCSL": false, - "extraMergeTeX": false, - "git": "config", - "import": true, - "importBibTeXStrings": true, - "importCaseProtection": "as-needed", - "importCitationKey": true, - "importDetectURLs": true, - "importExtra": true, - "importJabRefAbbreviations": true, - "importJabRefStrings": true, - "importNoteToExtra": "", - "importSentenceCase": "on+guess", - "importSentenceCaseQuoted": true, - "importUnknownTexCommand": "ignore", - "itemObserverDelay": 5, - "jabrefFormat": 0, - "jieba": false, - "keyConflictPolicy": "keep", - "keyScope": "library", - "kuroshiro": false, - "language": "langid", - "mapMath": "", - "mapText": "", - "parseParticles": true, - "patchDates": "dateadded=dateAdded, date-added=dateAdded, datemodified=dateModified, date-modified=dateModified", - "postscript": "", - "postscriptOverride": "", - "preferencesOverride": "", - "qualityReport": false, - "quickCopyEta": "", - "quickCopyMode": "latex", - "quickCopyOrgMode": "zotero", - "quickCopyPandocBrackets": false, - "quickCopySelectLink": "zotero", - "rawImports": false, - "rawLaTag": "#LaTeX", - "relativeFilePaths": false, - "retainCache": false, - "separatorList": "and", - "separatorNames": "and", - "skipFields": "", - "skipWords": "a,ab,aboard,about,above,across,after,against,al,along,amid,among,an,and,anti,around,as,at,before,behind,below,beneath,beside,besides,between,beyond,but,by,d,da,das,de,del,dell,dello,dei,degli,della,dell,delle,dem,den,der,des,despite,die,do,down,du,during,ein,eine,einem,einen,einer,eines,el,en,et,except,for,from,gli,i,il,in,inside,into,is,l,la,las,le,les,like,lo,los,near,nor,of,off,on,onto,or,over,past,per,plus,round,save,since,so,some,sur,than,the,through,to,toward,towards,un,una,unas,under,underneath,une,unlike,uno,unos,until,up,upon,versus,via,von,while,with,within,without,yet,zu,zum", - "startupProgress": "popup", - "strings": "", - "stringsOverride": "", - "verbatimFields": "url,doi,file,pdf,ids,eprint,/^verb[a-z]$/,groups,/^citeulike-linkout-[0-9]+$/, /^bdsk-url-[0-9]+$/", - "warnBulkModify": 10, - "warnTitleCased": false - }, "options": { - "exportNotes": true, - "exportFileData": false, - "keepUpdated": false, - "worker": false, - "Normalize": true + "Items": true, + "Preferences": true, + "exportNotes": true + }, + "preferences": { + "citekeyFormat": "auth + year" } }, - "version": { - "zotero": "6.0.27", - "bbt": "6.7.122.emile.limonia" - }, - "collections": {}, "items": [ { - "version": 0, - "itemType": "conferencePaper", - "url": "http://dblp.uni-trier.de/db/conf/icdm/icdmw2009.html#HulseKNW09", - "publisher": "IEEE Computer Society", - "pages": "507-514", "ISBN": "978-0-7695-3902-7", - "date": "2010-01-27", - "extra": "Citation Key: Hulse2009\ntex.added-at: 2010-01-27T00:00:00.000+0100\ntex.crossref: conf/icdm/2009w\ntex.description: dblp\ntex.interhash: aad604c231737dbf8f6155082e3535ae\ntex.intrahash: c97a29e90fbd958a0990360f70252458\ntex.owner: sstudent\ntex.timestamp: 2011.01.03", - "title": "Feature selection with high-dimensional imbalanced data#", + "attachments": [ + { + "accessDate": "2024-04-15T01:00:16Z", + "itemType": "attachment", + "linkMode": "linked_url", + "title": "biburl", + "url": "http://www.bibsonomy.org/bibtex/2c97a29e90fbd958a0990360f70252458/dblp" + }, + { + "accessDate": "2024-04-15T01:00:16Z", + "itemType": "attachment", + "linkMode": "linked_url", + "title": "ee", + "url": "http://doi.ieeecomputersociety.org/10.1109/ICDMW.2009.35" + } + ], + "citationKey": "Hulse2009", "creators": [ { + "creatorType": "author", "firstName": "Jason Van", - "lastName": "Hulse", - "creatorType": "author" + "lastName": "Hulse" }, { + "creatorType": "author", "firstName": "Taghi M.", - "lastName": "Khoshgoftaar", - "creatorType": "author" + "lastName": "Khoshgoftaar" }, { + "creatorType": "author", "firstName": "Amri", - "lastName": "Napolitano", - "creatorType": "author" + "lastName": "Napolitano" }, { + "creatorType": "author", "firstName": "Randall", - "lastName": "Wald", - "creatorType": "author" + "lastName": "Wald" }, { - "firstName": "Yücel", - "lastName": "Saygin", - "creatorType": "editor" + "creatorType": "editor", + "firstName": "Y\u00fccel", + "lastName": "Saygin" }, { + "creatorType": "editor", "firstName": "Jeffrey Xu", - "lastName": "Yu", - "creatorType": "editor" + "lastName": "Yu" }, { + "creatorType": "editor", "firstName": "Hillol", - "lastName": "Kargupta", - "creatorType": "editor" + "lastName": "Kargupta" }, { + "creatorType": "editor", "firstName": "Wei", - "lastName": "Wang", - "creatorType": "editor" + "lastName": "Wang" }, { + "creatorType": "editor", "firstName": "Sanjay", - "lastName": "Ranka", - "creatorType": "editor" + "lastName": "Ranka" }, { + "creatorType": "editor", "firstName": "Philip S.", - "lastName": "Yu", - "creatorType": "editor" + "lastName": "Yu" }, { + "creatorType": "editor", "firstName": "Xindong", - "lastName": "Wu", - "creatorType": "editor" + "lastName": "Wu" } ], + "date": "2010-01-27", + "extra": [ + "Citation Key: Hulse2009", + "tex.added-at: 2010-01-27T00:00:00.000+0100", + "tex.description: dblp", + "tex.interhash: aad604c231737dbf8f6155082e3535ae", + "tex.intrahash: c97a29e90fbd958a0990360f70252458", + "tex.owner: sstudent", + "tex.timestamp: 2011.01.03" + ], + "itemID": 1, + "itemType": "conferencePaper", + "pages": "507-514", + "publicationTitle": "ICDM workshops", + "publisher": "IEEE Computer Society", "tags": [ { "tag": "dblp" } ], - "relations": [], - "dateAdded": "2023-10-07T20:22:32Z", - "dateModified": "2023-10-07T20:22:32Z", - "uri": "http://zotero.org/users/8230813/items/9IGTWAGK", - "attachments": [ - { - "version": 0, - "itemType": "attachment", - "url": "http://www.bibsonomy.org/bibtex/2c97a29e90fbd958a0990360f70252458/dblp", - "accessDate": "2023-10-07T20:22:32Z", - "title": "biburl", - "parentItem": "9IGTWAGK", - "linkMode": "linked_url", - "contentType": "", - "charset": "", - "tags": [], - "relations": {}, - "dateAdded": "2023-10-07T20:22:32Z", - "dateModified": "2023-10-07T20:22:32Z", - "uri": "http://zotero.org/users/8230813/items/B4BF4LJR", - "itemID": 103, - "itemKey": "B4BF4LJR", - "libraryID": 1 - }, - { - "version": 0, - "itemType": "attachment", - "url": "http://doi.ieeecomputersociety.org/10.1109/ICDMW.2009.35", - "accessDate": "2023-10-07T20:22:32Z", - "title": "ee", - "parentItem": "9IGTWAGK", - "linkMode": "linked_url", - "contentType": "", - "charset": "", - "tags": [], - "relations": {}, - "dateAdded": "2023-10-07T20:22:32Z", - "dateModified": "2023-10-07T20:22:32Z", - "uri": "http://zotero.org/users/8230813/items/WNHNHZR9", - "itemID": 104, - "itemKey": "WNHNHZR9", - "libraryID": 1 - } - ], - "notes": [], - "citationKey": "Hulse2009", - "itemID": 102, - "itemKey": "9IGTWAGK", - "libraryID": 1, - "publicationTitle": "ICDM workshops" + "title": "Feature selection with high-dimensional imbalanced data#", + "url": "http://dblp.uni-trier.de/db/conf/icdm/icdmw2009.html#HulseKNW09" } ] -} +} \ No newline at end of file diff --git a/test/fixtures/import/Better BibTeX.011.json b/test/fixtures/import/Better BibTeX.011.json index 06ca7b77e8..116b7b666d 100644 --- a/test/fixtures/import/Better BibTeX.011.json +++ b/test/fixtures/import/Better BibTeX.011.json @@ -2,14 +2,13 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "localeDateOrder": "ymd", "options": { + "Items": true, + "Preferences": true, "exportNotes": true }, "preferences": { - "citekeyFormat": "[auth][year]", - "importCaseProtection": "off", - "itemObserverDelay": 100 + "citekeyFormat": "auth + year" } }, "items": [ @@ -36,14 +35,13 @@ "extra": [ "Citation Key: Klassen2010", "tex.bibsource: DBLP, http://dblp.uni-trier.de", - "tex.crossref: DBLP:conf/cata/2010", "tex.owner: sstudent", "tex.timestamp: 2011.03.22" ], "itemID": 1, "itemType": "conferencePaper", "notes": [ - "

svm liniowe najlepsze

" + "svm liniowe najlepsze" ], "pages": "25-30", "publicationTitle": "CATA", diff --git a/test/fixtures/import/BibTeX import; preamble with def create problems #732.json b/test/fixtures/import/BibTeX import; preamble with def create problems #732.json index 7d9e7a7828..e52aae3aed 100644 --- a/test/fixtures/import/BibTeX import; preamble with def create problems #732.json +++ b/test/fixtures/import/BibTeX import; preamble with def create problems #732.json @@ -2,13 +2,13 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "localeDateOrder": "ymd", "options": { + "Items": true, + "Preferences": true, "exportNotes": true }, "preferences": { - "citekeyFormat": "[auth][year]", - "itemObserverDelay": 100 + "citekeyFormat": "auth + year" } }, "items": [ @@ -23,7 +23,7 @@ { "creatorType": "author", "firstName": "Pavel", - "lastName": "Krej\u010d\u00ed" + "lastName": "Krej\u010d\u0131\u0301" } ], "extra": [ diff --git a/test/fixtures/import/Copy date-addeddate-modified from extra field regenerates citation key #2142.json b/test/fixtures/import/Copy date-addeddate-modified from extra field regenerates citation key #2142.json index 1d438f4add..6e8bbadb24 100644 --- a/test/fixtures/import/Copy date-addeddate-modified from extra field regenerates citation key #2142.json +++ b/test/fixtures/import/Copy date-addeddate-modified from extra field regenerates citation key #2142.json @@ -19,7 +19,7 @@ "accessDate": "2015-07-25", "attachments": [ { - "accessDate": "2024-01-19T08:16:28Z", + "accessDate": "2024-04-13T12:47:05Z", "itemType": "attachment", "linkMode": "linked_url", "title": "bdsk-url-2", @@ -49,7 +49,7 @@ "lastName": "Hwang" } ], - "date": "October 2008", + "date": "2008-10", "extra": [ "Citation Key: ReedClark2008War-Power", "tex.local-url: War/Bargain/ReedClark2008War-Power.pdf" diff --git a/test/fixtures/import/Copy date-addeddate-modified menu option not working #2378.json b/test/fixtures/import/Copy date-addeddate-modified menu option not working #2378.json index 5e198695f4..79dd63e2e5 100644 --- a/test/fixtures/import/Copy date-addeddate-modified menu option not working #2378.json +++ b/test/fixtures/import/Copy date-addeddate-modified menu option not working #2378.json @@ -27,7 +27,7 @@ "lastName": "Snidal" } ], - "date": "1998-2", + "date": "1998-02", "extra": [ "Citation Key: AbbottSnidal:1998" ], @@ -55,7 +55,7 @@ "lastName": "Snidal" } ], - "date": "1998-2", + "date": "1998-02", "extra": [ "Citation Key: AbbottSnidal" ], diff --git a/test/fixtures/import/DOIs excluded from export in 6.7.86 #2555.json b/test/fixtures/import/DOIs excluded from export in 6.7.86 #2555.json index f449a91aa3..1b06f0edf9 100644 --- a/test/fixtures/import/DOIs excluded from export in 6.7.86 #2555.json +++ b/test/fixtures/import/DOIs excluded from export in 6.7.86 #2555.json @@ -3,6 +3,8 @@ "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", "options": { + "Items": true, + "Preferences": true, "exportNotes": true }, "preferences": { @@ -57,9 +59,9 @@ "publicationTitle": "Logics in artificial intelligence", "publisher": "Springer Berlin Heidelberg", "series": "Lecture notes in computer science", - "title": "Z-log: Applying system-Z", + "title": "Z-log: Applying system-z", "url": "http://dx.doi.org/10.1007/3-540-45757-7_52", "volume": "2424" } ] -} +} \ No newline at end of file diff --git a/test/fixtures/import/Dealing with base64-encoded paths from BibDesk #2374.json b/test/fixtures/import/Dealing with base64-encoded paths from BibDesk #2374.json index 74d05c96dd..c4078fde61 100644 --- a/test/fixtures/import/Dealing with base64-encoded paths from BibDesk #2374.json +++ b/test/fixtures/import/Dealing with base64-encoded paths from BibDesk #2374.json @@ -101,7 +101,7 @@ "lastName": "Smith" } ], - "date": "2019-1", + "date": "2019-01", "extra": [ "Citation Key: KraftSmith:2019", "tex.date-added: 2020-08-07 09:07:58 -0400", diff --git a/test/fixtures/import/Double newlines means parbreak #2789.json b/test/fixtures/import/Double newlines means parbreak #2789.json index 6fef40ec5c..7fabba3395 100644 --- a/test/fixtures/import/Double newlines means parbreak #2789.json +++ b/test/fixtures/import/Double newlines means parbreak #2789.json @@ -2,157 +2,48 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "preferences": { - "ascii": "", - "asciiBibLaTeX": false, - "asciiBibTeX": true, - "autoAbbrev": false, - "autoAbbrevStyle": "", - "autoExport": "immediate", - "autoExportDelay": 5, - "autoExportIdleWait": 10, - "autoExportPathReplaceDiacritics": false, - "autoExportPathReplaceDirSep": "-", - "autoExportPathReplaceSpace": " ", - "automaticTags": true, - "autoPinDelay": 0, - "auxImport": false, - "baseAttachmentPath": "", - "biblatexExtendedDateFormat": true, - "biblatexExtendedNameFormat": true, - "biblatexExtractEprint": true, - "bibtexEditionOrdinal": false, - "bibtexParticleNoOp": false, - "bibtexURL": "off", - "cache": true, - "cacheFlushInterval": 5, - "charmap": "", - "citeCommand": "cite", - "citekeyCaseInsensitive": true, - "citekeyFold": true, - "citekeyFormat": "auth + year", - "citekeySearch": true, - "citekeyUnsafeChars": "\\\"#%'(),={}~", - "csquotes": "", - "DOIandURL": "both", - "exportBibTeXStrings": "off", - "exportBraceProtection": true, - "exportTitleCase": true, - "extraMergeCitekeys": false, - "extraMergeCSL": false, - "extraMergeTeX": false, - "git": "config", - "import": true, - "importBibTeXStrings": true, - "importCaseProtection": "as-needed", - "importCitationKey": true, - "importDetectURLs": true, - "importExtra": true, - "importJabRefAbbreviations": true, - "importJabRefStrings": true, - "importNoteToExtra": "", - "importSentenceCase": "on+guess", - "importSentenceCaseQuoted": true, - "importUnknownTexCommand": "ignore", - "itemObserverDelay": 5, - "jabrefFormat": 0, - "jieba": false, - "keyConflictPolicy": "keep", - "keyScope": "library", - "kuroshiro": false, - "language": "langid", - "mapMath": "", - "mapText": "", - "packages": "", - "parseParticles": true, - "patchDates": "dateadded=dateAdded, date-added=dateAdded, datemodified=dateModified, date-modified=dateModified", - "postscript": "", - "postscriptOverride": "", - "preferencesOverride": "", - "qualityReport": false, - "quickCopyEta": "", - "quickCopyMode": "latex", - "quickCopyOrgMode": "zotero", - "quickCopyPandocBrackets": false, - "quickCopySelectLink": "zotero", - "rawImports": false, - "rawLaTag": "#LaTeX", - "relativeFilePaths": false, - "retainCache": false, - "separatorList": "and", - "separatorNames": "and", - "skipFields": "", - "skipWords": "a,ab,aboard,about,above,across,after,against,al,along,amid,among,an,and,anti,around,as,at,before,behind,below,beneath,beside,besides,between,beyond,but,by,d,da,das,de,del,dell,dello,dei,degli,della,dell,delle,dem,den,der,des,despite,die,do,down,du,during,ein,eine,einem,einen,einer,eines,el,en,et,except,for,from,gli,i,il,in,inside,into,is,l,la,las,le,les,like,lo,los,near,nor,of,off,on,onto,or,over,past,per,plus,round,save,since,so,some,sur,than,the,through,to,toward,towards,un,una,unas,under,underneath,une,unlike,uno,unos,until,up,upon,versus,via,von,while,with,within,without,yet,zu,zum", - "startupProgress": "popup", - "strings": "", - "stringsOverride": "", - "verbatimFields": "url,doi,file,pdf,ids,eprint,/^verb[a-z]$/,groups,/^citeulike-linkout-[0-9]+$/, /^bdsk-url-[0-9]+$/, keywords", - "warnBulkModify": 10, - "warnTitleCased": false - }, "options": { - "exportNotes": true, - "exportFileData": false, "Items": true, "Preferences": true, - "keepUpdated": false, - "worker": false, - "Normalize": true + "exportNotes": true + }, + "preferences": { + "citekeyFormat": "auth + year" } }, - "version": { - "zotero": "6.0.30", - "bbt": "6.7.160.emile.HUAWEI_P30_lite-9994ba306.localdomain" - }, - "collections": {}, "items": [ { - "version": 0, - "itemType": "journalArticle", - "url": "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3989732/", - "volume": "8", - "publicationTitle": "Frontiers in computational neuroscience", - "date": "2014", - "extra": "Citation Key: Straube14infreqPerfEstImbal\nPublisher: Frontiers Media SA\ntex.owner: sotterson\ntex.timestamp: 2017.01.17", "DOI": "10.3389/fncom.2014.00043", "abstractNote": "In everyday life, humans and animals often have to base decisions on infrequent relevant stimuli with respect to frequent irrelevant ones. When research in neuroscience mimics this situation, the effect of this imbalance in stimulus classes on performance evaluation has to be considered. This is most obvious for the often used overall accuracy, because the proportion of correct responses is governed by the more frequent class. This imbalance problem has been widely debated across disciplines and out of the discussed treatments this review focusses on performance estimation. For this, a more universal view is taken: an agent performing a classification task. Commonly used performance measures are characterized when used with imbalanced classes. Metrics like Accuracy, F-Measure, Matthews Correlation Coefficient, and Mutual Information are affected by imbalance, while other metrics do not have this drawback, like AUC, d-prime, Balanced Accuracy, Weighted Accuracy and G-Mean. It is pointed out that one is not restricted to this group of metrics, but the sensitivity to the class ratio has to be kept in mind for a proper choice. Selecting an appropriate metric is critical to avoid drawing misled conclusions. Keywords: metrics, decision making, confusion matrix, oddball, imbalance, performance evaluation, classification", - "title": "How to evaluate an agent's behavior to infrequent events??Reliable performance estimation insensitive to class distribution", + "citationKey": "Straube14infreqPerfEstImbal", "creators": [ { + "creatorType": "author", "firstName": "Sirko", - "lastName": "Straube", - "creatorType": "author" + "lastName": "Straube" }, { + "creatorType": "author", "firstName": "Mario M", - "lastName": "Krell", - "creatorType": "author" + "lastName": "Krell" } ], - "tags": [], - "relations": {}, - "dateAdded": "2024-02-15T14:48:20Z", - "dateModified": "2024-02-15T14:48:20Z", - "uri": "http://zotero.org/users/8230813/items/A4K3RZHH", - "attachments": [], + "date": "2014", + "extra": [ + "Citation Key: Straube14infreqPerfEstImbal", + "Publisher: Frontiers Media SA", + "tex.owner: sotterson", + "tex.timestamp: 2017.01.17" + ], + "itemID": 1, + "itemType": "journalArticle", "notes": [ - { - "key": "L6V67WXL", - "version": 0, - "itemType": "note", - "parentItem": "A4K3RZHH", - "note": "Straube14infreqPerfEstImbal

\nCommonly used performance measures are characterized when used with imbalanced classes. A nice review paper.

\nMetrics like Accuracy, F-Measure, Matthews Correlation Coefficient (really?), and Mutual Information are affected by imbalance, while other metrics do not have this drawback, like AUC, d-prime, Balanced Accuracy, Weighted Accuracy and G-Mean.

\nMutual Information and Imbalance - I(X;Y) = H(X) - H(X|Y) - if X is a binary class prediction, then H(X) is solely determined by the prior class distribution - so you'll get a different # for different class imbalance - but if you're just doing featsel using MI, then all features will have the same H(X) and (I think) it still makes sense to pick features w/ max MI, right?

\nMatthews Correlation Coefficient is said to be one of the best metrics for multi-class imbalanced accuracy: Liang21sleepStagePred", - "tags": [], - "relations": {}, - "dateAdded": "2024-02-15T14:48:20Z", - "dateModified": "2024-02-15T14:48:20Z", - "uri": "http://zotero.org/users/8230813/items/L6V67WXL" - } + "Straube14infreqPerfEstImbal

Commonly used performance measures are characterized when used with imbalanced classes. A nice review paper.

Metrics like Accuracy, F-Measure, Matthews Correlation Coefficient (really?), and Mutual Information are affected by imbalance, while other metrics do not have this drawback, like AUC, d-prime, Balanced Accuracy, Weighted Accuracy and G-Mean.

Mutual Information and Imbalance

- I(X;Y) = H(X) - H(X|Y)

- if X is a binary class prediction, then H(X) is solely determined by the prior class distribution

- so you'll get a different # for different class imbalance

- but if you're just doing featsel using MI, then all features will have the same H(X) and (I think) it still makes sense to pick features w/ max MI, right?

Matthews Correlation Coefficient is said to be one of the best metrics for multi-class imbalanced accuracy: Liang21sleepStagePred" ], - "citationKey": "Straube14infreqPerfEstImbal", - "itemID": 102, - "itemKey": "A4K3RZHH", - "libraryID": 1 + "publicationTitle": "Frontiers in computational neuroscience", + "title": "How to evaluate an agent's behavior to infrequent events??Reliable performance estimation insensitive to class distribution", + "url": "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3989732/", + "volume": "8" } ] -} \ No newline at end of file +} diff --git a/test/fixtures/import/Failure to handle unparsed author names (92).json b/test/fixtures/import/Failure to handle unparsed author names (92).json index e474d9d1ce..0c5cd152bd 100644 --- a/test/fixtures/import/Failure to handle unparsed author names (92).json +++ b/test/fixtures/import/Failure to handle unparsed author names (92).json @@ -51,7 +51,7 @@ "itemType": "bookSection", "publicationTitle": "Landolt-B\u00f6rnstein", "publisher": "Springer-Verlag", - "series": "SpringerMaterials - the Landolt-B\u00f6rnstein database", + "series": "SpringerMaterials - the landolt-b\u00f6rnstein database", "title": "Cuprous oxide (Cu\u2082O) crystal structure, lattice parameters", "volume": "III/41c" } diff --git a/test/fixtures/import/Film references do not export properly for APA formating #2494.bib b/test/fixtures/import/Film references do not export properly for APA formating #2494.bib index 66154b962d..cbcc730e3a 100644 --- a/test/fixtures/import/Film references do not export properly for APA formating #2494.bib +++ b/test/fixtures/import/Film references do not export properly for APA formating #2494.bib @@ -8,7 +8,7 @@ @video{formanOneFlewCuckoo1975 } @video{formanOneFlewCuckoo1975-film, - entrysubtype = {film} + entrysubtype = {film}, title = {One Flew over the Cuckoo's Nest}, editor = {Forman, Miloš}, date = {1975}, @@ -18,7 +18,7 @@ @video{formanOneFlewCuckoo1975-film } @video{formanOneFlewCuckoo1975-tv, - entrysubtype = {tvbroadcast} + entrysubtype = {tvbroadcast}, title = {One Flew over the Cuckoo's Nest}, editor = {Forman, Miloš}, date = {1975}, @@ -28,7 +28,7 @@ @video{formanOneFlewCuckoo1975-tv } @video{formanOneFlewCuckoo1975-epi, - entrysubtype = {tvepisode} + entrysubtype = {tvepisode}, title = {One Flew over the Cuckoo's Nest}, editor = {Forman, Miloš}, date = {1975}, diff --git a/test/fixtures/import/Import error with character '+' in BibTeX field name #2660.json b/test/fixtures/import/Import error with character '+' in BibTeX field name #2660.json index 0433836af5..3c193370c0 100644 --- a/test/fixtures/import/Import error with character '+' in BibTeX field name #2660.json +++ b/test/fixtures/import/Import error with character '+' in BibTeX field name #2660.json @@ -266,7 +266,7 @@ "itemID": 13, "itemType": "journalArticle", "publicationTitle": "The New Yorker", - "title": "On video games and storytelling. An Interview with Tom Bissell", + "title": "On video games and storytelling. An interview with Tom Bissell", "url": "https://www.newyorker.com/books/page-turner/on-video-games-and-storytelling-an-interview-with-tom-bissell" }, { @@ -423,7 +423,7 @@ "itemType": "journalArticle", "pages": "17\u201339", "publicationTitle": "Journal of Postsecondary Education and Disability", - "title": "A descriptive review of ADHD coaching research. Implications for College Students", + "title": "A descriptive review of ADHD coaching research. Implications for college students", "url": "https://www.ahead.org/professional-resources/publications/jped/archived-jped/jped-volume-31", "volume": "31" }, @@ -488,7 +488,7 @@ "itemID": 23, "itemType": "journalArticle", "publicationTitle": "Psychonomic Bulletin & Review", - "title": "Unpacking buyer-seller differences in valuation from experience. A Cognitive Modeling Approach" + "title": "Unpacking buyer-seller differences in valuation from experience. A cognitive modeling approach" }, { "citationKey": "10.10:77", @@ -624,7 +624,7 @@ "itemID": 29, "itemType": "report", "publisher": "Pearson", - "title": "Minnesota Multiphasic Personality Inventory\u20132 Restructured Form (MMPI-2-RF). Technical Manual", + "title": "Minnesota Multiphasic Personality Inventory\u20132 Restructured Form (MMPI-2-RF). Technical manual", "type": "manual" }, { @@ -785,7 +785,7 @@ "four-disc special extended ed. on DVD" ], "publisher": "WingNut Films and The Saul Zaentz Company", - "title": "The lord of the rings. The Fellowship of the Ring" + "title": "The lord of the rings. The fellowship of the ring" }, { "citationKey": "10.12:85", @@ -925,7 +925,7 @@ "itemID": 41, "itemType": "videoRecording", "publisher": "YouTube", - "title": "Bren\u00e9 Brown. Listening to Shame", + "title": "Bren\u00e9 Brown. Listening to shame", "url": "https://www.youtube.com/watch?v=psN1DORYYV0" }, { @@ -1440,7 +1440,7 @@ ], "itemID": 66, "itemType": "webpage", - "title": "College students are forming mental-health Clubs\u2013and they're making a difference @washingtonpost. Thumbnail with link attached", + "title": "College students are forming mental-health clubs\u2013and they're making a difference @washingtonpost. Thumbnail with link attached", "url": "https://twitter.com/apaeducation/status/1012810490530140161" }, { @@ -1539,7 +1539,7 @@ ], "itemID": 71, "itemType": "webpage", - "title": "These frogs walk instead of hop. https://scimag.2KlriwH", + "title": "These frogs walk instead of hop. https://scimag.2KlriwH", "url": "https://www.facebook.com/ScienceNOW/videos/10155508587605108" }, { @@ -1670,7 +1670,7 @@ ], "itemID": 78, "itemType": "webpage", - "title": "Be kind to yourself. How Self-Compassion can Improve Your Resiliency", + "title": "Be kind to yourself. How self-compassion can improve your resiliency", "url": "https://www.mayoclinic.org/healthy-lifestyle/adult-health/in-depth/self-compassion-can-improve-your-resiliency/art-20267193" }, { @@ -1773,7 +1773,7 @@ "itemID": 82, "itemType": "book", "publisher": "Routledge", - "title": "Rethinking global health. Frameworks of Power" + "title": "Rethinking global health. Frameworks of power" }, { "citationKey": "10.2:22a", @@ -1793,7 +1793,7 @@ "itemID": 83, "itemType": "book", "publisher": "Random House Audio", - "title": "Quiet. The Power of Introverts in a World that Can't Stop Talking", + "title": "Quiet. The power of introverts in a world that can't stop talking", "url": "http://bit.ly/2GOBpbl" }, { @@ -1817,7 +1817,7 @@ "itemID": 84, "itemType": "book", "publisher": "Henry Holt and Co.", - "title": "Algorithms to live by. The Computer Science of Human Decisions", + "title": "Algorithms to live by. The computer science of human decisions", "url": "http://a.co/7qGBZAk" }, { @@ -1841,7 +1841,7 @@ "itemID": 85, "itemType": "book", "publisher": "Chelsea Green Publishing", - "title": "Thinking in systems. A Primer" + "title": "Thinking in systems. A primer" }, { "citationKey": "10.2:24", @@ -1860,7 +1860,7 @@ "itemID": 86, "itemType": "book", "publisher": "American Psychological Association and De Gruyter Mouton", - "title": "Entrenchment and the psychology of language learning. How we Reorganize and Adapt Linguistic Knowledge" + "title": "Entrenchment and the psychology of language learning. How we reorganize and adapt linguistic knowledge" }, { "citationKey": "10.2:25", @@ -1878,7 +1878,7 @@ "itemID": 87, "itemType": "book", "publisher": "Routledge", - "title": "Military veteran psychological health and social care. Contemporary Approaches" + "title": "Military veteran psychological health and social care. Contemporary approaches" }, { "citationKey": "10.2:26", @@ -1906,7 +1906,7 @@ "itemID": 88, "itemType": "book", "publisher": "Springer Publishing Company", - "title": "Guided participation in pediatric nursing practice. Relationship-based Teaching and Learning with Parents, Children and Adolescents", + "title": "Guided participation in pediatric nursing practice. Relationship-based teaching and learning with parents, children and adolescents", "url": "http://a.co/0IAiVgt" }, { @@ -2015,7 +2015,7 @@ "itemID": 92, "itemType": "book", "publisher": "Basic Books", - "title": "The interpretation of dreams. The Complete and Definitive Text" + "title": "The interpretation of dreams. The complete and definitive text" }, { "citationKey": "10.2:29b", @@ -2091,7 +2091,7 @@ "itemID": 95, "itemType": "book", "publisher": "American Psychological Association", - "title": "APA handbook of the psychology of women. Vol. 1. History, theory, and Battlegrounds" + "title": "APA handbook of the psychology of women. Vol. 1. History, theory, and battlegrounds" }, { "citationKey": "10.2:31", @@ -2193,7 +2193,7 @@ "itemID": 100, "itemType": "book", "publisher": "American Psychological Association", - "title": "The complete social scientist. A Kurt Lewin Reader" + "title": "The complete social scientist. A Kurt Lewin reader" }, { "citationKey": "10.2:35a", @@ -2237,7 +2237,7 @@ "itemID": 103, "itemType": "book", "publisher": "The Jewish Publication Society", - "title": "The Torah. The Five Books of Moses" + "title": "The Torah. The five books of Moses" }, { "citationKey": "10.2:35d", @@ -2393,7 +2393,7 @@ "pages": "7\u201313", "publicationTitle": "Principles and practise of forensic psychiatry", "publisher": "CRC Press", - "title": "Defining forensic psychiatry. Roles and Responsibilities" + "title": "Defining forensic psychiatry. Roles and responsibilities" }, { "citationKey": "10.3:40", @@ -2461,7 +2461,7 @@ "pages": "67\u201386", "publicationTitle": "Gu\u00eda pr\u00e1ctica de terapias estimulativas en el Alzh\u00e9imer", "publisher": "Editorial S\u00edntesis", - "title": "Auditory sensory therapy. Brain Activation Through Music", + "title": "Auditory sensory therapy. Brain activation through music", "url": "http://www.sintesis.com/guias-profesionales-203/guia-practica-de-terapias-estimulativas-en-el-alzheimer-libro-1943.html" }, { @@ -2531,7 +2531,7 @@ "pages": "100\u2013108", "publicationTitle": "Cognitive psychology", "publisher": "Psychology Press", - "title": "Calling a squirrel and squirrel but a canoe a wigwam. A Category-specific Deficit for Artefactual Objects and Body Parts" + "title": "Calling a squirrel and squirrel but a canoe a wigwam. A category-specific deficit for artefactual objects and body parts" }, { "citationKey": "10.3:44", @@ -2559,7 +2559,7 @@ "pages": "72\u201340", "publicationTitle": "Making human beings human", "publisher": "SAGE Publications", - "title": "The social ecology of human development. A Retrospective Conclusion" + "title": "The social ecology of human development. A retrospective conclusion" }, { "citationKey": "10.3:44r", @@ -2578,7 +2578,7 @@ "itemID": 114, "itemType": "book", "publisher": "National Education Press", - "title": "Brain and intelligence. The Ecology of Child Development" + "title": "Brain and intelligence. The ecology of child development" }, { "citationKey": "10.3:45", @@ -2714,7 +2714,7 @@ ], "itemID": 120, "itemType": "report", - "title": "What we heard. Summary of Key Findings: 2013 Canada Council's Inter-Arts Office Consultation", + "title": "What we heard. Summary of key findings: 2013 Canada Council's Inter-Arts Office consultation", "url": "http://publications.gc.ca/collections/collection_2017/canadacouncil/K23-65-2013-eng.pdf" }, { @@ -2732,8 +2732,8 @@ "itemID": 121, "itemType": "report", "number": "18-2424", - "title": "Facing forward. Life After Cancer Treatment", - "type": "NIH publication", + "title": "Facing forward. Life after cancer treatment", + "type": "NIH Publication", "url": "https://www.cancer.gov/publications/patient-education/life-after-cancer-treatment.pdf" }, { @@ -2830,7 +2830,7 @@ "itemID": 125, "itemType": "report", "publisher": "British Cardiovascular Society", - "title": "British Cardiovascular Society Working Group report. Out-of-hours Cardiovascular Care: Management of Cardiac Emergencies and Hospital In-patients", + "title": "British Cardiovascular Society Working Group report. Out-of-hours cardiovascular care: Management of cardiac emergencies and hospital in-patients", "url": "http://www.bcs.com/documents/BCSOOHWP_Final_Report_05092016.pdf" }, { @@ -2847,7 +2847,7 @@ ], "itemID": 126, "itemType": "report", - "title": "Agency financial report. Fiscal Year 2017", + "title": "Agency financial report. Fiscal year 2017", "url": "https://www.sec.gov/files/sec-2017-agency-financial-report.pdf" }, { @@ -2943,8 +2943,8 @@ "itemType": "report", "number": "1", "publisher": "U.S. Small Business Administration, Office of Advocacy", - "title": "Profile of veteran business owners. More Young Veterans Appear to be Starting Businesses", - "type": "Issue brief", + "title": "Profile of veteran business owners. More young veterans appear to be starting businesses", + "type": "Issue Brief", "url": "https://www.sba.org/sites/default/files/Issue%20Brief%201,%20Veteran%20Business%20Owners.pdf" }, { @@ -2963,7 +2963,7 @@ "itemID": 132, "itemType": "report", "publisher": "National Education Policy Center", - "title": "Don't expect too much. Policy Brief. The Limited Usefulness of Common SES Measures and a Prescription for Change", + "title": "Don't expect too much. Policy Brief. The limited usefulness of common SES measures and a prescription for change", "url": "https://nepc.colorado.edu/publication/SES" }, { @@ -3011,7 +3011,7 @@ ], "itemID": 134, "itemType": "presentation", - "title": "Everybody's got a little music in them. Conference session. Using Music Therapy to Connect, Engage, and Motivate", + "title": "Everybody's got a little music in them. Conference session. Using music therapy to connect, engage, and motivate", "url": "https://asa.confex.com/asa/2017/webprogramarchives/Session9517.html" }, { @@ -3046,7 +3046,7 @@ ], "itemID": 135, "itemType": "presentation", - "title": "If mama ain't happy, nobody's happy. Paper presentation. The Effect of Parental Depression on Mood Dysregulation in Children" + "title": "If mama ain't happy, nobody's happy. Paper presentation. The effect of parental depression on mood dysregulation in children" }, { "citationKey": "10.5:62", @@ -3103,7 +3103,7 @@ ], "itemID": 137, "itemType": "presentation", - "title": "The art and significance of successfully identifying resilient individuals. A Person-Focused Approach" + "title": "The art and significance of successfully identifying resilient individuals. A person-focused approach" }, { "citationKey": "10.5:A2", @@ -3167,7 +3167,7 @@ "itemID": 140, "itemType": "thesis", "publisher": "ProQuest Dissertations and Theses Global / University of Wisconsin\u2013Madison", - "title": "Resistance to authority. Methodological Innovations and New Lessons from the Milgram Experiment", + "title": "Resistance to authority. Methodological innovations and new lessons from the Milgram experiment", "type": "phd" }, { @@ -3186,7 +3186,7 @@ "itemID": 141, "itemType": "thesis", "publisher": "William & Mary Digital Archive / The College of William & Mary", - "title": "Dealing with dual differences. Social Coping Strategies of Gifted and Lesbian, Gay, Bisexual, Transgender, and Queer Adolescents", + "title": "Dealing with dual differences. Social coping strategies of gifted and lesbian, gay, bisexual, transgender, and queer adolescents", "type": "master", "url": "https://digitalarchive.wm.edu/bitstream/handle/10288/16594/HutchesonVirginia2012.pdf" }, @@ -3246,7 +3246,7 @@ ], "itemID": 144, "itemType": "book", - "title": "We are displaced. My Journey and Stories From Refugee Girls Around the World" + "title": "We are displaced. My journey and stories from refugee girls around the world" }, { "citationKey": "10.7:69", @@ -3321,7 +3321,7 @@ ], "itemID": 147, "itemType": "manuscript", - "title": "Linking positive affect to blood lipids. A Cultural Perspective" + "title": "Linking positive affect to blood lipids. A cultural perspective" }, { "citationKey": "10.8:71", @@ -3366,7 +3366,7 @@ ], "itemID": 149, "itemType": "manuscript", - "title": "Emotion recognition as a function of facial cues. Implications for Practice" + "title": "Emotion recognition as a function of facial cues. Implications for practice" }, { "citationKey": "10.8:73a", @@ -3400,7 +3400,7 @@ ], "itemID": 150, "itemType": "webpage", - "title": "When money talks. Judging Risk and Coercion in High-Paying Clinical Trials" + "title": "When money talks. Judging risk and coercion in high-paying clinical trials" }, { "citationKey": "10.8:73b", @@ -3520,7 +3520,7 @@ ], "itemID": 157, "itemType": "case", - "title": "Brown v. Board of education", + "title": "Brown v. board of education", "url": "http://www.oyez.org/cases/1940-1955/347us483" }, { @@ -3532,7 +3532,7 @@ ], "itemID": 158, "itemType": "case", - "title": "Obergefell v. Hodges", + "title": "Obergefell v. hodges", "url": "https://www.supremecourt.gov/opinions/14pdf/14-556_3204.pdf" }, { @@ -3545,7 +3545,7 @@ ], "itemID": 159, "itemType": "case", - "title": "Daubert v. Merrell dow pharmaceuticals, inc.", + "title": "Daubert v. merrell dow pharmaceuticals, inc.", "url": "https://openjurist.org/951/f2d/1128/william-dabert-v-merrell-dow-pharmaceuticals" }, { @@ -3558,7 +3558,7 @@ ], "itemID": 160, "itemType": "case", - "title": "Burriola v. Greater toledo YMCA", + "title": "Burriola v. greater toledo YMCA", "url": "https://law.justia.com/cases/federal/district-courts/FSupp2/133/1034/2293141/" }, { @@ -3574,7 +3574,7 @@ ], "itemID": 161, "itemType": "case", - "title": "Durflinger v. Artiles", + "title": "Durflinger v. artiles", "url": "https://openjurist.org/727/f2d/888/durflinger-v-artiles" }, { @@ -3586,7 +3586,7 @@ ], "itemID": 162, "itemType": "case", - "title": "Tarasoff v. Regents of the university of california", + "title": "Tarasoff v. regents of the university of california", "url": "https://www.casebriefs.com/blog/law/torts/tors-keyed-to-dobbs/the-duty-to-protect-from-third-persons/tarasoff-v-regents-of-university-of-california" }, { @@ -3600,7 +3600,7 @@ ], "itemID": 163, "itemType": "case", - "title": "Texas v. Morales", + "title": "Texas v. morales", "url": "https://www.leagle.com/decision/19921027826sw2d20111010" }, { @@ -3703,7 +3703,7 @@ "itemID": 171, "itemType": "bill", "shortTitle": "Strengthening the federal student loan program", - "title": "Strengthening the federal student loan program for borrowers. Hearing before the U.S. Senate Committee on Health, Education, Labor & Pensions", + "title": "Strengthening the federal student loan program for borrowers. Hearing before the U.S. senate committee on health, education, labor & pensions", "url": "https://www.help.senate.gov/hearings/strengthening-the-federal-student-load-program-for-borrowers" }, { @@ -3821,7 +3821,7 @@ "extra": [ "Citation Key: 11.8:22", "Publisher: U.S. Patent and Trademark Office", - "Type: U.S. patent" + "Type: U.S. Patent" ], "itemID": 178, "itemType": "patent", @@ -4959,7 +4959,7 @@ "itemID": 245, "itemType": "journalArticle", "publicationTitle": "Journal of the Decline of Academia", - "title": "Annoyingly casual titles. How to Exhaust all Effort on the Title Alone" + "title": "Annoyingly casual titles. How to exhaust all effort on the title alone" }, { "citationKey": "9.49:6", @@ -4978,7 +4978,7 @@ "itemID": 246, "itemType": "journalArticle", "publicationTitle": "Journal of the Decline of Academia", - "title": "Annoyingly casual titles. Creating Titles to Distract from Vacuity" + "title": "Annoyingly casual titles. Creating titles to distract from vacuity" }, { "citationKey": "9.51:1", @@ -5023,7 +5023,7 @@ "pages": "111\u2013113", "publicationTitle": "The psychologically healthy workplace", "publisher": "American Psychological Association", - "title": "Work-life balance. Contemporary Perspectives" + "title": "Work-life balance. Contemporary perspectives" }, { "citationKey": "9.52:2", @@ -5489,7 +5489,7 @@ "itemType": "journalArticle", "pages": "161\u2013174", "publicationTitle": "Organizational Behaviour", - "title": "General and specific measures in organizational behaviour research. Considerations, Examples, and Recommandations for Researchers", + "title": "General and specific measures in organizational behaviour research. Considerations, examples, and recommandations for researchers", "volume": "33" }, { @@ -5677,7 +5677,7 @@ "itemType": "journalArticle", "pages": "155\u2013161", "publicationTitle": "Cl\u00ednica y Salud", - "title": "Sensorineural anosmia. Relationship Between Subtype, Recognition Time, and Age", + "title": "Sensorineural anosmia. Relationship between subtype, recognition time, and age", "volume": "28" }, { @@ -5838,7 +5838,7 @@ "itemType": "journalArticle", "pages": "758\u2013775", "publicationTitle": "Journal of Applied Psychology", - "title": "On the value of aiming high. The Causes and Consequences of Ambition", + "title": "On the value of aiming high. The causes and consequences of ambition", "volume": "97" }, { @@ -5873,7 +5873,7 @@ ], "pages": "214\u2013228", "publicationTitle": "Journal of Applied Psychology", - "title": "Double crossed. The Spillover and Crossover Effect of Work Demands on Work Outcomes Through the Family", + "title": "Double crossed. The spillover and crossover effect of work demands on work outcomes through the family", "volume": "104" }, { @@ -5897,7 +5897,7 @@ "itemType": "journalArticle", "pages": "611\u2013618", "publicationTitle": "American Journal of Orthopsychiatry", - "title": "Marking time in the land of plenty. Reflections on Mental Health in the United States", + "title": "Marking time in the land of plenty. Reflections on mental health in the United States", "volume": "84" }, { @@ -5924,7 +5924,7 @@ "itemType": "journalArticle", "pages": "1\u201351", "publicationTitle": "Psychological Review", - "title": "Language learning as language use. A Cross-linguistic Model of Child Language Development", + "title": "Language learning as language use. A cross-linguistic model of child language development", "url": "http://some.url", "volume": "126" }, @@ -6045,7 +6045,7 @@ "itemType": "journalArticle", "pages": "391\u2013402", "publicationTitle": "American Journal of Orthopsychiatry", - "title": "Marking time in the land of plenty. Reflections on Mental Health in the United States", + "title": "Marking time in the land of plenty. Reflections on mental health in the United States", "volume": "51" }, { @@ -6066,9 +6066,8 @@ "issue": "6422", "itemID": 276, "itemType": "journalArticle", - "journalAbbreviation": "Science", "pages": "33\u201334", - "publicationTitle": "Science (New York, N.Y.)", + "publicationTitle": "Science", "title": "Really cool neutral plasmas", "volume": "363" }, @@ -6187,7 +6186,7 @@ "itemType": "dataset", "number": "ICPSR 35531", "publisher": "National Archive of Data on Arts and Culture", - "title": "Fast response survey system (FRSS). Teacher's Use of Educational Technology in U.S. Public Schools, 2009", + "title": "Fast response survey system (FRSS). Teacher's use of educational technology in U.S. public schools, 2009", "versionNumber": "V3" }, { @@ -6241,7 +6240,7 @@ "itemType": "journalArticle", "pages": "73\u201386", "publicationTitle": "Cognitive Neuropsychology", - "title": "Calling a squirrel and squirrel but a canoe a wigwam. A Category-specific Deficit for Artefactual Objects and Body Parts", + "title": "Calling a squirrel and squirrel but a canoe a wigwam. A category-specific deficit for artefactual objects and body parts", "volume": "9" }, { diff --git a/test/fixtures/import/Import location to event-place for conference papers.json b/test/fixtures/import/Import location to event-place for conference papers.json index de1cc38193..54e5dfe464 100644 --- a/test/fixtures/import/Import location to event-place for conference papers.json +++ b/test/fixtures/import/Import location to event-place for conference papers.json @@ -2,9 +2,13 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "options": {}, + "options": { + "Items": true, + "Preferences": true, + "exportNotes": true + }, "preferences": { - "citekeyFormat": "[auth][year]" + "citekeyFormat": "auth + year" } }, "items": [ @@ -37,7 +41,7 @@ "place": "New York, NY, USA", "publicationTitle": "Proceedings of the 7th international conference on principles and practice of programming in java", "publisher": "ACM", - "series": "PPPJ '09", + "series": "Pppj '09", "tags": [ { "tag": "calling context tree" diff --git a/test/fixtures/import/Imported tags from Calibre (bibtex.file) are a single tag in Zotero #2743.json b/test/fixtures/import/Imported tags from Calibre (bibtex.file) are a single tag in Zotero #2743.json index 2012c27f48..a1b8c2ea8b 100644 --- a/test/fixtures/import/Imported tags from Calibre (bibtex.file) are a single tag in Zotero #2743.json +++ b/test/fixtures/import/Imported tags from Calibre (bibtex.file) are a single tag in Zotero #2743.json @@ -53,7 +53,7 @@ "tag": "Minderheiten" } ], - "title": "Rechte nationaler minderheiten: ethische begr\u00fcndung, rechtliche verankerung und historische erfahrung", + "title": "Rechte nationaler Minderheiten: ethische Begr\u00fcndung, rechtliche Verankerung und historische Erfahrung", "volume": "1" } ] diff --git a/test/fixtures/import/Improve import of films #1837.json b/test/fixtures/import/Improve import of films #1837.json index 7eb1b51b1e..e50e7d58f8 100644 --- a/test/fixtures/import/Improve import of films #1837.json +++ b/test/fixtures/import/Improve import of films #1837.json @@ -3,6 +3,8 @@ "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", "options": { + "Items": true, + "Preferences": true, "exportNotes": true }, "preferences": { @@ -111,7 +113,7 @@ "itemType": "book", "place": "New York", "publisher": "Oxford University Press", - "title": "Jihad and death. The Global Appeal of Islamic State" + "title": "Jihad and death. The global appeal of islamic state" } ] -} +} \ No newline at end of file diff --git a/test/fixtures/import/Jabref import - groups lost #1730.json b/test/fixtures/import/Jabref import - groups lost #1730.json index 1473b6dbf7..c690541585 100644 --- a/test/fixtures/import/Jabref import - groups lost #1730.json +++ b/test/fixtures/import/Jabref import - groups lost #1730.json @@ -2,17 +2,12 @@ "collections": { "coll:00000": { "collections": [ - "coll:00004", - "coll:00007" - ], - "items": [ - 1, - 3, - 5, - 7 + "coll:00006" ], + "items": [], "key": "coll:00000", - "name": "Jabref import - groups lost #1730-3" + "name": "Markings", + "parent": "coll:00004" }, "coll:00001": { "collections": [ @@ -24,43 +19,48 @@ ], "key": "coll:00001", "name": "Group1", - "parent": "coll:00003" + "parent": "coll:00004" }, "coll:00002": { "collections": [ - "coll:00006" + "coll:00008", + "coll:00009" + ], + "items": [ + 1 ], - "items": [], "key": "coll:00002", - "name": "Markings", + "name": "Group1", "parent": "coll:00003" }, "coll:00003": { "collections": [ - "coll:00001", "coll:00002", - "coll:00010" + "coll:00007" ], "items": [ - 2, - 4, - 6, - 8 + 1, + 3, + 5, + 7 ], "key": "coll:00003", - "name": "Jabref import - groups lost #1730-5" + "name": "Jabref import - groups lost #1730-3" }, "coll:00004": { "collections": [ - "coll:00008", - "coll:00009" + "coll:00000", + "coll:00001", + "coll:00010" ], "items": [ - 1 + 2, + 4, + 6, + 8 ], "key": "coll:00004", - "name": "Group1", - "parent": "coll:00000" + "name": "Jabref import - groups lost #1730-5" }, "coll:00005": { "collections": [], @@ -74,7 +74,7 @@ "items": [], "key": "coll:00006", "name": "jfd1", - "parent": "coll:00002" + "parent": "coll:00000" }, "coll:00007": { "collections": [], @@ -84,7 +84,7 @@ ], "key": "coll:00007", "name": "Group2", - "parent": "coll:00000" + "parent": "coll:00003" }, "coll:00008": { "collections": [], @@ -95,7 +95,7 @@ ], "key": "coll:00008", "name": "Group1a", - "parent": "coll:00004" + "parent": "coll:00002" }, "coll:00009": { "collections": [], @@ -104,7 +104,7 @@ ], "key": "coll:00009", "name": "Group1b", - "parent": "coll:00004" + "parent": "coll:00002" }, "coll:00010": { "collections": [], @@ -114,7 +114,7 @@ ], "key": "coll:00010", "name": "Group2", - "parent": "coll:00003" + "parent": "coll:00004" }, "coll:00011": { "collections": [], @@ -278,7 +278,7 @@ "Submitted 6 Feb 2020, Accepted 17 April 2020," ], "publicationTitle": "2020 international symposium on electromagnetic compatibility - EMC EUROPE", - "title": "Coupling of Energy into PCB traces in a reverberant environment: Absorption cross-section and Risk of Susceptibility", + "title": "Coupling of energy into PCB traces in a reverberant environment: Absorption cross-section and risk of susceptibility", "url": "http://eprints.whiterose.ac.uk/160133/" }, { @@ -328,7 +328,7 @@ "Submitted 6 Feb 2020, Accepted 17 April 2020," ], "publicationTitle": "2020 international symposium on electromagnetic compatibility - EMC EUROPE", - "title": "Coupling of Energy into PCB traces in a reverberant environment: Absorption cross-section and Risk of Susceptibility", + "title": "Coupling of energy into PCB traces in a reverberant environment: Absorption cross-section and risk of susceptibility", "url": "http://eprints.whiterose.ac.uk/160133/" }, { @@ -445,12 +445,11 @@ "issue": "8", "itemID": 7, "itemType": "journalArticle", - "journalAbbreviation": "Electronics", "notes": [ "Submitted: 8 June 2020; Revised 13 July 2020, Accepted 27 July 2020" ], "pages": "1219", - "publicationTitle": "Electronicsweek", + "publicationTitle": "Electronics", "title": "Virtual sensing directional hub MAC (VSDH-MAC) protocol with power control", "url": "http://eprints.whiterose.ac.uk/163808/", "volume": "9" @@ -489,12 +488,11 @@ "issue": "8", "itemID": 8, "itemType": "journalArticle", - "journalAbbreviation": "Electronics", "notes": [ "Submitted: 8 June 2020; Revised 13 July 2020, Accepted 27 July 2020" ], "pages": "1219", - "publicationTitle": "Electronicsweek", + "publicationTitle": "Electronics", "title": "Virtual sensing directional hub MAC (VSDH-MAC) protocol with power control", "url": "http://eprints.whiterose.ac.uk/163808/", "volume": "9" diff --git a/test/fixtures/import/LaTeX commands in Zotero should be exported untouched #1380.json b/test/fixtures/import/LaTeX commands in Zotero should be exported untouched #1380.json index 20df6205c6..4c2619160c 100644 --- a/test/fixtures/import/LaTeX commands in Zotero should be exported untouched #1380.json +++ b/test/fixtures/import/LaTeX commands in Zotero should be exported untouched #1380.json @@ -2,10 +2,13 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "localeDateOrder": "ymd", - "options": {}, + "options": { + "Items": true, + "Preferences": true, + "exportNotes": true + }, "preferences": { - "citekeyFormat": "[auth][year]", + "citekeyFormat": "auth + year", "rawImports": true } }, @@ -16,38 +19,31 @@ "creators": [ { "creatorType": "author", - "firstName": "Frank", - "lastName": "Mittelbach" + "name": "Mittelbach, Frank" }, { "creatorType": "author", - "firstName": "Michel", - "lastName": "Goossens" + "name": "Goossens, Michel" }, { "creatorType": "translator", - "firstName": "Jacques", - "lastName": "Andr\\'e" + "name": "Andr\\'e, Jacques" }, { "creatorType": "translator", - "firstName": "Beno\u00eet", - "lastName": "Bellet" + "name": "Bellet, Beno\u00eet" }, { "creatorType": "translator", - "firstName": "Jean-C\u00f4me", - "lastName": "Charpentier" + "name": "Charpentier, Jean-C\u00f4me" }, { "creatorType": "translator", - "firstName": "Jean-Michel", - "lastName": "Hufflen" + "name": "Hufflen, Jean-Michel" }, { "creatorType": "translator", - "firstName": "Yves", - "lastName": "Soulet" + "name": "Soulet, Yves" } ], "date": "2006-02", diff --git a/test/fixtures/import/Lowercase A in BBT Sentence Case #2078.json b/test/fixtures/import/Lowercase A in BBT Sentence Case #2078.json index 2b5077665f..cefd7cd646 100644 --- a/test/fixtures/import/Lowercase A in BBT Sentence Case #2078.json +++ b/test/fixtures/import/Lowercase A in BBT Sentence Case #2078.json @@ -45,7 +45,7 @@ "pages": "1412", "publicationTitle": "Journal of Open Source Software", "shortTitle": "Insight", - "title": "Insight: A unified interface to access information from model objects in R", + "title": "Insight: a unified interface to access information from model objects in R", "url": "http://joss.theoj.org/papers/10.21105/joss.01412", "volume": "4" } diff --git a/test/fixtures/import/Overline during Import #1467.json b/test/fixtures/import/Overline during Import #1467.json index c6768ca325..9745474acb 100644 --- a/test/fixtures/import/Overline during Import #1467.json +++ b/test/fixtures/import/Overline during Import #1467.json @@ -304,7 +304,7 @@ "journalAbbreviation": "Semicond. Sci. Technol.", "pages": "113001", "publicationTitle": "Semiconductor Science and Technology", - "title": "Recent progress in metal-organic chemical vapor deposition of (0001\u0305) N-Polar group-III nitrides", + "title": "Recent progress in metal-organic chemical vapor deposition of (0001\u0305) N-polar group-III nitrides", "volume": "29" }, { @@ -400,7 +400,7 @@ "journalAbbreviation": "Appl. Phys. Express", "pages": "061005", "publicationTitle": "Applied Physics Express", - "title": "Red to blue wavelength emission of N-Polar (0001\u0305) InGaN light-emitting diodes grown by metalorganic vapor phase epitaxy", + "title": "Red to blue wavelength emission of N-polar (0001\u0305) InGaN light-emitting diodes grown by metalorganic vapor phase epitaxy", "volume": "8" } ] diff --git a/test/fixtures/import/Problem when importing BibTeX entries with percent sign #95 or preamble #96.json b/test/fixtures/import/Problem when importing BibTeX entries with percent sign #95 or preamble #96.json index 884a49b9b2..25f059f9fb 100644 --- a/test/fixtures/import/Problem when importing BibTeX entries with percent sign #95 or preamble #96.json +++ b/test/fixtures/import/Problem when importing BibTeX entries with percent sign #95 or preamble #96.json @@ -15,7 +15,7 @@ { "DOI": "10.1016/j.tsf.2009.05.016", "ISSN": "0040-6090", - "abstractNote": "In this study, electrochromic properties of cuprous oxide nanoparticles, self-accumulated on the surface of a sol-gel silica thin film, have been investigated by using UV-visible spectrophotometry in a lithium-based electrolyte cell. The cuprous oxide nanoparticles showed a reversible electrochromic process with a thin film transmission reduction of about 50% in a narrow wavelength range of 400-500\u00c2nm, as compared to the bleached state of the film. Using optical transmission measurement, we have found that the band gap energy of the films reduced from 2.7\u00c2eV for Cu2O to 1.3\u00c2eV for CuO by increasing the annealing temperature from 220 to 300\u00c2\u00b0C in an N2 environment for 1\u00c2h. Study of the band gaps of the as-deposited, colored and bleached states of the nanoparticles showed that the electrochromic process corresponded to a reversible red-ox conversion of Cu2O to CuO on the film surface, in addition to the reversible red-ox reaction of the Cu2O film. X-ray photoelectron spectroscopy indicated that the copper oxide nanoparticles accumulated on the film surface, after annealing the samples at 200\u00c2\u00b0C. Surface morphology of the films and particle size of the surface copper oxides have also been studied by atomic force microscopy analysis. The copper oxide nanoparticles with average size of about 100\u00c2nm increased the surface area ratio and surface roughness of the silica films from 2.2% and 0.8\u00c2nm to 51% and 21\u00c2nm, respectively.", + "abstractNote": "In this study, electrochromic properties of cuprous oxide nanoparticles, self-accumulated on the surface of a sol-gel silica thin film, have been investigated by using UV-visible spectrophotometry in a lithium-based electrolyte cell. The cuprous oxide nanoparticles showed a reversible electrochromic process with a thin film transmission reduction of about 50transmission measurement, we have found that the band gap energy of the films reduced from 2.7\u00c2eV for Cu2O to 1.3\u00c2eV for CuO by increasing the annealing temperature from 220 to 300\u00c2\u00b0C in an N2 environment for 1\u00c2h. Study of the band gaps of the as-deposited, colored and bleached states of the nanoparticles showed that the electrochromic process corresponded to a reversible red-ox conversion of Cu2O to CuO on the film surface, in addition to the reversible red-ox reaction of the Cu2O film. X-ray photoelectron spectroscopy indicated that the copper oxide nanoparticles accumulated on the film surface, after annealing the samples at 200\u00c2\u00b0C. Surface morphology of the films and particle size of the surface copper oxides have also been studied by atomic force microscopy analysis. The copper oxide nanoparticles with average size of about 100\u00c2nm increased the surface area ratio and surface roughness of the silica films from 2.221\u00c2nm, respectively.", "citationKey": "Akhavan_2009", "creators": [ { diff --git a/test/fixtures/import/Some bibtex entries quietly discarded on import from bib file #873.json b/test/fixtures/import/Some bibtex entries quietly discarded on import from bib file #873.json index f550e0bbd5..d31ab8e080 100644 --- a/test/fixtures/import/Some bibtex entries quietly discarded on import from bib file #873.json +++ b/test/fixtures/import/Some bibtex entries quietly discarded on import from bib file #873.json @@ -134,10 +134,10 @@ "itemID": 3, "itemType": "book", "notes": [ - "Contents: 1. An introduction to description logics D. Nardi and R. J. Brachman; Part I. Theory: 2. Basic description logics F. Baader and W. Nutt; 3. Complexity of reasoning F. M. Donini; 4. Relationships with other formalisms U. Sattler, D. Calvanese and R. Molitor; 5. Expressive description logics D. Calvanese and G. De Giacomo; 6. Extensions to description logics F. Baader, R. Ku\u0308sters and F. Wolter; Part II. Implementation: 7. From description logic provers to knowledge representation systems D. L. McGuinness and P. F. Patel-Schneider; 8. Description logics systems R. Mo\u0308ller and V. Haarslev; 9. Implementation and optimisation techniques I. Horrocks; Part III. Applications: 10. Conceptual modeling with description logics A. Borgida and R. J. Brachman; 11. Software engineering C. Welty; 12. Configuration D. L. McGuinness; 13. Medical informatics A. Rector; 14. Digital libraries and web-based information systems I. Horrocks, D. L. McGuinness and C. Welty; 15. Natural language processing E. Franconi; 16. Description logics for data bases A. Borgida, M. Lenzerini and R. Rosati; Appendix. Description logic terminology F. Baader; Bibliography. See also http://www.inf.unibz.it/%7efranconi/dl/course/" + "Contents: 1. An introduction to description logics D. Nardi and R. J. Brachman; Part I. Theory: 2. Basic description logics F. Baader and W. Nutt; 3. Complexity of reasoning F. M. Donini; 4. Relationships with other formalisms U. Sattler, D. Calvanese and R. Molitor; 5. Expressive description logics D. Calvanese and G. De Giacomo; 6. Extensions to description logics F. Baader, R. Ku\u0308sters and F. Wolter; Part II. Implementation: 7. From description logic provers to knowledge representation systems D. L. McGuinness and P. F. Patel-Schneider; 8. Description logics systems R. Mo\u0308ller and V. Haarslev; 9. Implementation and optimisation techniques I. Horrocks; Part III. Applications: 10. Conceptual modeling with description logics A. Borgida and R. J. Brachman; 11. Software engineering C. Welty; 12. Configuration D. L. McGuinness; 13. Medical informatics A. Rector; 14. Digital libraries and web-based information systems I. Horrocks, D. L. McGuinness and C. Welty; 15. Natural language processing E. Franconi; 16. Description logics for data bases A. Borgida, M. Lenzerini and R. Rosati; Appendix. Description logic terminology F. Baader; Bibliography. See also http://www.inf.unibz.it/" ], "publisher": "Cambridge University Press", - "title": "The description logic handbook \u2014 Theory, implementation and applications", + "title": "The description logic handbook \u2014 theory, implementation and applications", "url": "http://titles.cambridge.org/catalogue.asp?ISBN=0521781760" }, { @@ -165,7 +165,7 @@ ], "rights": "unrestricted", "title": "Programming hierarchical task networks in the situation calculus", - "url": "http://citeseer.ist.psu.edu/525546.html; http://www.cs.toronto.edu/cogrobo/Papers/htn-opw.ps" + "url": "http://citeseer.ist.psu.edu/525546.html; http://www.cs.toronto.edu/cogrobo/Papers/htn-opw.ps" }, { "abstractNote": "Hierarchical task network and action-based planning approaches have traditionally been studied separately. In many domains, human expertise in the form of hierarchical reduction schemas exists, but is incomplete. In such domains, hybrid approaches that use both HTN and action-based planning techniques are needed. In this paper, we extend our previous work on refinement planning to include hierarchical planning. Specifically, we provide a generalized plan-space refinement that is capable of handling non-primitive actions. The generalization provides a principled way of handling partially hierarchical domains, while preserving systematicity, and respecting the user-intent inherent in the reduction schemas. Our general account also puts into perspective the many surface differences between the HTN and action-based planners, and could support the transfer of progress between HTN and action-based planning approaches.", @@ -188,8 +188,7 @@ } ], "extra": [ - "Citation Key: rao:_hybrid_plann_partial_hierar_domain", - "tex.crossref: AAAI98" + "Citation Key: rao:_hybrid_plann_partial_hierar_domain" ], "itemID": 5, "itemType": "conferencePaper", @@ -228,7 +227,7 @@ ], "rights": "unrestricted", "title": "Propice-plan: Toward a unified framework for planning and execution", - "url": "http://citeseer.ist.psu.edu/507370.html; http://www.informatik.uni-ulm.de/ki/biundo/ECP-Papers/61-despouys.ps.gz" + "url": "http://citeseer.ist.psu.edu/507370.html; http://www.informatik.uni-ulm.de/ki/biundo/ECP-Papers/61-despouys.ps.gz" }, { "abstractNote": "Planning is a central activity in many areas including robotics, manufacturing, space mission sequencing, and logistics. As the size and complexity of planning problems grow, there is great economic pressure to automate this process in order to reduce the cost of planning effort, and to improve the quality of produced plans. AI planning research has focused on general-purpose planning systems which can process the specifications of an application domain and generate solutions to planning problems in that domain. Unfortunately, there is a big gap between theoretical and application oriented work in AI planning. The theoretical work has been mostly based on state-based planning, which has limited practical applications. The application-oriented work has been based on hierarchical task network (HTN) planning, which lacks a theoretical foundation. As a result, in spite of many years of research, building planning applications remains a formidable task. The goal of this dissertation is to facilitate building reliable and effective planning applications. The methodology includes design of a mathematical framework for HTN planning, analysis of this framework, development of provably correct algorithms based on this analysis, and the implementation of these algorithms for further evaluation and exploration. The representation, analyses, and algorithms described in this thesis will make it easier to apply HTN planning techniques effectively and correctly to planning applications. The precise and mathematical nature of the descriptions will also help teaching about HTN planning, will clarify misconceptions in the literature, and will stimulate further research.", @@ -293,7 +292,7 @@ "number": "CS-TR-3981", "publisher": "University of Maryland, College Park", "title": "SHOP: Simple hierarchical ordered planner", - "type": "Technical report" + "type": "Technical Report" }, { "abstractNote": "The Act formalism provides a medium in which to express knowledge about actions for both the SIPE-2 plan generation system and the PRS plan execution system. This document describes the Act-Editor, which provides a graphical user interface for creating and manipulating Acts. The document is designed for individuals who are already familiar with the Act formalism. The Act-Editor runs on Sun workstations with either Allegro Common Lisp 4.2/4.3 with CLIM 2.0/2.1, or Lucid Lisp 4.1 with CLIM 1.1., as well as Symbolics Lisp Machines.", @@ -310,7 +309,7 @@ "lastName": "Wilkins" } ], - "date": "September 1997", + "date": "1997-09", "extra": [ "Citation Key: AICPub215:1997" ], @@ -318,7 +317,7 @@ "itemType": "report", "place": "Menlo Park, CA", "publisher": "Artificial Intelligence Center, SRI International", - "title": "The act-editor user's guide: A manual for version 2.2", + "title": "The act-editor user's guide: a manual for version 2.2", "type": "manual" }, { @@ -431,8 +430,7 @@ } ], "extra": [ - "Citation Key: aaai96-2*1215", - "tex.crossref: AAAI96" + "Citation Key: aaai96-2*1215" ], "itemID": 13, "itemType": "conferencePaper", @@ -563,7 +561,7 @@ "itemType": "book", "place": "Menlo Park, California", "publisher": "Benjamin / Cummings Publishing Company", - "title": "Natural Lan\u00adguage Un\u00adder\u00adstand\u00ading" + "title": "Natural lan\u00adguage un\u00adder\u00adstand\u00ading" }, { "citationKey": "Alterman:85", @@ -596,8 +594,7 @@ } ], "extra": [ - "Citation Key: Alterman:86", - "tex.crossref: aaai86" + "Citation Key: Alterman:86" ], "itemID": 21, "itemType": "conferencePaper", @@ -644,8 +641,7 @@ } ], "extra": [ - "Citation Key: Appelt:87", - "tex.crossref: ijcai87" + "Citation Key: Appelt:87" ], "itemID": 23, "itemType": "conferencePaper", @@ -751,8 +747,7 @@ } ], "extra": [ - "Citation Key: AtkinsDurfeeShin:96", - "tex.crossref: UAI96" + "Citation Key: AtkinsDurfeeShin:96" ], "itemID": 27, "itemType": "conferencePaper", @@ -782,8 +777,7 @@ } ], "extra": [ - "Citation Key: AtkinsETAL:97", - "tex.crossref: AAAI97" + "Citation Key: AtkinsETAL:97" ], "itemID": 28, "itemType": "conferencePaper", @@ -946,7 +940,7 @@ "lastName": "McIlraith" } ], - "date": "January 2007", + "date": "2007-01", "extra": [ "Citation Key: bai-bac-mci-ijcai07" ], @@ -999,8 +993,7 @@ } ], "extra": [ - "Citation Key: Baker:AAAI94", - "tex.crossref: AAAI94" + "Citation Key: Baker:AAAI94" ], "itemID": 36, "itemType": "conferencePaper", @@ -1110,7 +1103,7 @@ "lastName": "Weld" } ], - "date": "February 1994", + "date": "1994-02", "extra": [ "Citation Key: Barrett:UCPOP" ], @@ -1351,7 +1344,7 @@ "lastName": "Barto" } ], - "date": "September 1989", + "date": "1989-09", "extra": [ "Citation Key: Barto:89" ], @@ -1361,7 +1354,7 @@ "place": "Amherst, MA", "publisher": "Department of Computer and Information Science, University of Massachusetts, Amherst", "title": "Connectionist learning for control: An overview", - "type": "COINS technical report" + "type": "COINS Technical Report" }, { "citationKey": "Barto:MSS", @@ -1451,13 +1444,12 @@ } ], "extra": [ - "Citation Key: Bauer:93", - "tex.crossref: ijcai93" + "Citation Key: Bauer:93" ], "itemID": 53, "itemType": "conferencePaper", "pages": "460\u2013466", - "title": "PHI \u2014 A logic-based tool for intelligent help systems" + "title": "PHI \u2014 a logic-based tool for intelligent help systems" }, { "citationKey": "Beck:72", @@ -1540,8 +1532,7 @@ } ], "extra": [ - "Citation Key: BeetzGrosskreutz:98", - "tex.crossref: AIPS98" + "Citation Key: BeetzGrosskreutz:98" ], "itemID": 57, "itemType": "conferencePaper", @@ -1688,7 +1679,7 @@ "itemID": 63, "itemType": "conferencePaper", "pages": "49-53", - "publicationTitle": "Proceedings of the 18th Conference of the Association for Computational Linguistics", + "publicationTitle": "Proceedings of the 18th conference of the association for computational linguistics", "publisher": "Association for Computational Linguistics", "title": "Computational analogues of constraints on grammars: A model of syntactic acquisition" }, @@ -1738,8 +1729,7 @@ } ], "extra": [ - "Citation Key: Bessiere:91", - "tex.crossref: AAAI91" + "Citation Key: Bessiere:91" ], "itemID": 66, "itemType": "conferencePaper", @@ -1761,8 +1751,7 @@ } ], "extra": [ - "Citation Key: BG00:incomplete", - "tex.crossref: AIPS00" + "Citation Key: BG00:incomplete" ], "itemID": 67, "itemType": "conferencePaper", @@ -1785,7 +1774,7 @@ "itemID": 68, "itemType": "manuscript", "notes": [ - "Unpublished manuscript based on invited address to IJCAI-97 http://aida.intellektik.informatik.th-darmstadt.de/ bibel/" + "Unpublished manuscript based on invited address to IJCAI-97 http://aida.intellektik.informatik.th-darmstadt.de/ bibel/" ], "title": "Let's plan it deductively!" }, @@ -1882,7 +1871,7 @@ "lastName": "Birnbaum" } ], - "date": "December 1986", + "date": "1986-12", "extra": [ "Citation Key: Birnbaum:86" ], @@ -1909,7 +1898,7 @@ "itemType": "journalArticle", "pages": "57\u201377", "publicationTitle": "AIJ", - "title": "Rigor mortis: a response to Nilsson's \u201cLogic and artificial intelligence\u201d", + "title": "Rigor mortis: a response to Nilsson's \u201clogic and artificial intelligence\u201d", "volume": "47" }, { @@ -1928,8 +1917,7 @@ ], "extra": [ "Citation Key: BlaylockAllen:2014", - "Section: 1", - "tex.crossref: sukthankar-etal:2014a" + "Section: 1" ], "itemID": 74, "itemType": "bookSection", @@ -2085,8 +2073,7 @@ } ], "extra": [ - "Citation Key: Blythe:94", - "tex.crossref: UAI94" + "Citation Key: Blythe:94" ], "itemID": 81, "itemType": "conferencePaper", @@ -2272,8 +2259,7 @@ } ], "extra": [ - "Citation Key: Bonet:97", - "tex.crossref: AAAI97" + "Citation Key: Bonet:97" ], "itemID": 89, "itemType": "conferencePaper", @@ -2295,13 +2281,12 @@ } ], "extra": [ - "Citation Key: bonetGeffner:06LDFS", - "tex.crossref: ICAPS-06" + "Citation Key: bonetGeffner:06LDFS" ], "itemID": 90, "itemType": "conferencePaper", "pages": "142\u2013151", - "title": "Learning depth-first search: A unified approach to heuristic search in deterministic and non-deterministic settings, and its application to MDPs" + "title": "Learning depth-first search: a unified approach to heuristic search in deterministic and non-deterministic settings, and its application to MDPs" }, { "citationKey": "Bonissone:PI", @@ -2318,8 +2303,7 @@ } ], "extra": [ - "Citation Key: Bonissone:PI", - "tex.crossref: PlanInit1" + "Citation Key: Bonissone:PI" ], "itemID": 91, "itemType": "conferencePaper", @@ -2383,7 +2367,7 @@ "itemType": "conferencePaper", "pages": "58\u201367", "publicationTitle": "ACM SIGMOD international conference on the management of data", - "title": "CLASSIC: A structural data model for objects" + "title": "CLASSIC: a structural data model for objects" }, { "citationKey": "Boutilier95", @@ -2487,8 +2471,7 @@ } ], "extra": [ - "Citation Key: Bowen:91", - "tex.crossref: AAAI91" + "Citation Key: Bowen:91" ], "itemID": 97, "itemType": "conferencePaper", @@ -2548,8 +2531,7 @@ } ], "extra": [ - "Citation Key: Brachman:79", - "tex.crossref: Findler" + "Citation Key: Brachman:79" ], "itemID": 100, "itemType": "bookSection", @@ -2617,8 +2599,7 @@ ], "extra": [ "Citation Key: BrachmanETAL:91", - "Section: 14", - "tex.crossref: Sowa:91" + "Section: 14" ], "itemID": 102, "itemType": "bookSection", @@ -2710,8 +2691,7 @@ ], "extra": [ "Citation Key: Bratman:90", - "Section: 2", - "tex.crossref: Intentions" + "Section: 2" ], "itemID": 106, "itemType": "bookSection", @@ -2728,13 +2708,8 @@ }, { "creatorType": "editor", - "firstName": "M.", - "lastName": "Halle" - }, - { - "creatorType": "editor", - "firstName": "J.", - "lastName": "Bresnan" + "firstName": "J. Bresnan", + "lastName": "M. Halle" }, { "creatorType": "editor", @@ -2802,7 +2777,7 @@ "lastName": "Brooks" } ], - "date": "March 1986", + "date": "1986-03", "extra": [ "Citation Key: Brooks:86" ], @@ -2823,7 +2798,7 @@ "lastName": "Brooks" } ], - "date": "September 1987", + "date": "1987-09", "extra": [ "Citation Key: Brooks:87" ], @@ -2866,7 +2841,7 @@ "lastName": "Brooks" } ], - "date": "January 1991", + "date": "1991-01", "extra": [ "Citation Key: Brooks:91" ], @@ -3232,8 +3207,7 @@ } ], "extra": [ - "Citation Key: Burstein:PI", - "tex.crossref: PlanInit1" + "Citation Key: Burstein:PI" ], "itemID": 127, "itemType": "conferencePaper", @@ -3291,9 +3265,8 @@ "issue": "3", "itemID": 129, "itemType": "journalArticle", - "journalAbbreviation": "Science", "pages": "927-929", - "publicationTitle": "Science (New York, N.Y.)", + "publicationTitle": "Science", "title": "Recognition of a hidden mineral deposit by an artificial intelligence program", "volume": "217" }, @@ -3432,8 +3405,7 @@ } ], "extra": [ - "Citation Key: Carbonell", - "tex.crossref: Strategies4NLP" + "Citation Key: Carbonell" ], "itemID": 136, "itemType": "bookSection", @@ -3743,8 +3715,7 @@ ], "date": "1992", "extra": [ - "Citation Key: Chrisman:92", - "tex.crossref: aips92" + "Citation Key: Chrisman:92" ], "itemID": 149, "itemType": "conferencePaper", @@ -3958,8 +3929,7 @@ ], "date": "1992", "extra": [ - "Citation Key: CNLP", - "tex.crossref: aips92" + "Citation Key: CNLP" ], "itemID": 157, "itemType": "conferencePaper", @@ -4007,8 +3977,7 @@ ], "extra": [ "Citation Key: Cohen:90", - "Section: 3", - "tex.crossref: Intentions" + "Section: 3" ], "itemID": 159, "itemType": "bookSection", @@ -4029,7 +3998,7 @@ "lastName": "Levesque" } ], - "date": "March 1990", + "date": "1990-03", "extra": [ "Citation Key: Cohen:90a" ], @@ -4290,8 +4259,7 @@ ], "date": "1992", "extra": [ - "Citation Key: Collins:92", - "tex.crossref: AAAI92" + "Citation Key: Collins:92" ], "itemID": 169, "itemType": "conferencePaper", @@ -4371,8 +4339,7 @@ "extra": [ "Citation Key: conf/aaai/SrivastavaIZ08", "tex.bibdate: 2008-08-15", - "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/aaai/aaai2008.html#SrivastavaIZ08", - "tex.crossref: AAAI05" + "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/aaai/aaai2008.html#SrivastavaIZ08" ], "itemID": 172, "itemType": "conferencePaper", @@ -4443,8 +4410,7 @@ "extra": [ "Citation Key: conf/ijcai/Levesque05", "tex.bibdate: 2005-12-09", - "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/ijcai/ijcai2005.html#Levesque05", - "tex.crossref: IJCAI05" + "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/ijcai/ijcai2005.html#Levesque05" ], "itemID": 175, "itemType": "conferencePaper", @@ -4508,8 +4474,7 @@ "Place: Lake District of the United Kingdom", "Citation Key: conf/kr/BienvenuFM06", "tex.bibdate: 2006-06-09", - "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/kr/kr2006.html#BienvenuFM06", - "tex.crossref: KR-2006" + "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/kr/kr2006.html#BienvenuFM06" ], "itemID": 177, "itemType": "conferencePaper", @@ -4537,7 +4502,7 @@ ], "pages": "89\u201395", "publicationTitle": "AIJ", - "title": "An optimal k/-consistency algorithm", + "title": "An Optimal k-consistency algorithm", "volume": "41" }, { @@ -4555,8 +4520,7 @@ } ], "extra": [ - "Citation Key: CoradeschiVidal:99", - "tex.crossref: ijcai99" + "Citation Key: CoradeschiVidal:99" ], "itemID": 179, "itemType": "conferencePaper", @@ -4622,8 +4586,7 @@ ], "date": "1981", "extra": [ - "Citation Key: Cullingford:81", - "tex.crossref: ICU" + "Citation Key: Cullingford:81" ], "itemID": 182, "itemType": "bookSection", @@ -4832,7 +4795,6 @@ "Citation Key: DBLP:conf/aips/Edelkamp02", "tex.bibsource: dblp computer science bibliography, http://dblp.org", "tex.biburl: http://dblp.uni-trier.de/rec/bib/conf/aips/Edelkamp02", - "tex.crossref: AIPS02", "tex.timestamp: Thu, 13 Dec 2012 14:15:16 +0100" ], "itemID": 191, @@ -5090,8 +5052,7 @@ ], "date": "1993", "extra": [ - "Citation Key: Dean:93", - "tex.crossref: aaai93" + "Citation Key: Dean:93" ], "itemID": 202, "itemType": "conferencePaper", @@ -5116,8 +5077,7 @@ } ], "extra": [ - "Citation Key: Dean:97a", - "tex.crossref: AAAI97" + "Citation Key: Dean:97a" ], "itemID": 203, "itemType": "conferencePaper", @@ -5133,7 +5093,7 @@ "lastName": "Dean" } ], - "date": "December 1984", + "date": "1984-12", "extra": [ "Citation Key: dean84a", "tex.key: dean84a" @@ -5153,14 +5113,16 @@ "lastName": "Dean" } ], - "date": "1985", + "date": "1985-08", "extra": [ "Citation Key: dean85" ], "itemID": 205, - "itemType": "report", - "publisher": "Yale University Computer Science Department", - "title": "Temporal imagery: an approach to reasoning about time for planning and problem solving" + "itemType": "conferencePaper", + "pages": "1060-1062", + "publicationTitle": "IJCAI-85", + "publisher": "IJCAI", + "title": "Temporal reasoning involving counterfactuals and disjunctions" }, { "citationKey": "dean85", @@ -5171,16 +5133,14 @@ "lastName": "Dean" } ], - "date": "August 1985", + "date": "1985", "extra": [ "Citation Key: dean85" ], "itemID": 206, - "itemType": "conferencePaper", - "pages": "1060-1062", - "publicationTitle": "IJCAI-85", - "publisher": "IJCAI", - "title": "Temporal reasoning involving counterfactuals and disjunctions" + "itemType": "report", + "publisher": "Yale University Computer Science Department", + "title": "Temporal imagery: an approach to reasoning about time for planning and problem solving" }, { "citationKey": "dean86", @@ -5191,7 +5151,7 @@ "lastName": "Dean" } ], - "date": "July 1986", + "date": "1986-07", "extra": [ "Citation Key: dean86" ], @@ -5289,8 +5249,7 @@ ], "date": "1993", "extra": [ - "Citation Key: DeanETAL:93", - "tex.crossref: UAI93" + "Citation Key: DeanETAL:93" ], "itemID": 211, "itemType": "conferencePaper", @@ -5341,7 +5300,7 @@ ], "pages": "35\u201374", "publicationTitle": "AIJ", - "title": "Planning under time constraints in Stochastic Domains", + "title": "Planning under time constraints in stochastic domains", "volume": "76" }, { @@ -5479,7 +5438,7 @@ "lastName": "Sussman" } ], - "date": "August 1977", + "date": "1977-08", "extra": [ "Citation Key: deKleer:77", "Number: 8" @@ -5533,8 +5492,7 @@ } ], "extra": [ - "Citation Key: desJardins:PI", - "tex.crossref: PlanInit1" + "Citation Key: desJardins:PI" ], "itemID": 219, "itemType": "conferencePaper", @@ -5666,7 +5624,7 @@ "lastName": "Weld" } ], - "date": "December 1993", + "date": "1993-12", "extra": [ "Citation Key: Draper:93" ], @@ -5717,8 +5675,7 @@ } ], "extra": [ - "Citation Key: Drexler:Incentives", - "tex.crossref: EcologyOfComp" + "Citation Key: Drexler:Incentives" ], "itemID": 226, "itemType": "bookSection", @@ -5740,8 +5697,7 @@ ], "date": "1990", "extra": [ - "Citation Key: Drummond:90", - "tex.crossref: AAAI90" + "Citation Key: Drummond:90" ], "itemID": 227, "itemType": "conferencePaper", @@ -5783,8 +5739,7 @@ } ], "extra": [ - "Citation Key: DSmith:PI", - "tex.crossref: PlanInit1" + "Citation Key: DSmith:PI" ], "itemID": 229, "itemType": "conferencePaper", @@ -5963,7 +5918,7 @@ "itemType": "book", "place": "Cambridge", "publisher": "Cambridge University Press", - "title": "Dynamic memory: A theory of learning in computers and people" + "title": "Dynamic memory: a theory of learning in computers and people" }, { "citationKey": "editors", @@ -6066,7 +6021,7 @@ "itemType": "book", "place": "New York", "publisher": "Academic Press", - "title": "GPS: A case study in generality and problem solving" + "title": "GPS: a case study in generality and problem solving" }, { "citationKey": "Erol:94a", @@ -6088,8 +6043,7 @@ } ], "extra": [ - "Citation Key: Erol:94a", - "tex.crossref: AIPS94" + "Citation Key: Erol:94a" ], "itemID": 240, "itemType": "conferencePaper", @@ -6097,7 +6051,7 @@ "As the name suggests, presents a sound and complete algorithm for HTN planning. The accomplishment is less overwhelming than it might at first seem, because the HTN plan's semantics rests on STRIPS-style world updates. So an HTN planner constructed according to this method will have the same knowledge-engineering demands as a first-principles STRIPS planner." ], "pages": "249\u2013254", - "title": "UMCP: A sound and complete procedure for hierarchical task network planning" + "title": "UMCP: a sound and complete procedure for hierarchical task network planning" }, { "citationKey": "Erol:94b", @@ -6119,8 +6073,7 @@ } ], "extra": [ - "Citation Key: Erol:94b", - "tex.crossref: AAAI94" + "Citation Key: Erol:94b" ], "itemID": 241, "itemType": "conferencePaper", @@ -6232,7 +6185,7 @@ "date": "1997", "extra": [ "Citation Key: Etzioni-etal:1997a", - "tex.acontentnote: Abstract: Closed-world inference-an essential component of many planning algorithms-is the process of determining that a logical sentence is false based on its absence from a knowledge base, or the inability to derive it. We describe a novel method for closed-world inference and update over the first-order theories of action used by planning algorithms such as NONLIN, TWEAK, and UCPOP. We show the method to be sound and efficient, but incomplete. In our experiments, closed-world inference consistently averaged about 2 milliseconds while updates averaged approximately 1.2 milliseconds. Furthermore, we demonstrate that incompleteness is nonproblematic in practice, since our mechanism makes over 99% of the desired inferences. We incorporated our method into the XII planner, which supports our Internet Softbot (software robot). The technique cut the number of actions executed by the Softbot by a factor of one hundred, and resulted in a corresponding speedup to XII.", + "tex.acontentnote: Abstract: Closed-world inference-an essential component of many planning algorithms-is the process of determining that a logical sentence is false based on its absence from a knowledge base, or the inability to derive it. We describe a novel method for closed-world inference and update over the first-order theories of action used by planning algorithms such as NONLIN, TWEAK, and UCPOP. We show the method to be sound and efficient, but incomplete. In our experiments, closed-world inference consistently averaged about 2 milliseconds while updates averaged approximately 1.2 milliseconds. Furthermore, we demonstrate that incompleteness is nonproblematic in practice, since our mechanism makes over 99incorporated our method into the XII planner, which supports our Internet Softbot (software robot). The technique cut the number of actions executed by the Softbot by a factor of one hundred, and resulted in a corresponding speedup to XII.", "tex.topic: planning;circumscription;closed-world-reasoning;" ], "issue": "1\u20132", @@ -6253,13 +6206,12 @@ } ], "extra": [ - "Citation Key: Etzioni:91", - "tex.crossref: AAAI91" + "Citation Key: Etzioni:91" ], "itemID": 246, "itemType": "conferencePaper", "pages": "533\u2013540", - "title": "STATIC: A problem-space compiler for PRODIGY" + "title": "STATIC: a problem-space compiler for PRODIGY" }, { "citationKey": "Etzioni:92", @@ -6297,8 +6249,7 @@ ], "date": "1992", "extra": [ - "Citation Key: Etzioni:92", - "tex.crossref: KR:92" + "Citation Key: Etzioni:92" ], "itemID": 247, "itemType": "conferencePaper", @@ -6325,8 +6276,7 @@ } ], "extra": [ - "Citation Key: Etzioni:94", - "tex.crossref: KR:94" + "Citation Key: Etzioni:94" ], "itemID": 248, "itemType": "conferencePaper", @@ -6412,7 +6362,7 @@ ], "itemID": 251, "itemType": "conferencePaper", - "publicationTitle": "Proceedings of the 1992 AAAI Spring Symposium on knowledge assimilation", + "publicationTitle": "Proceedings of the 1992 AAAI spring symposium on knowledge assimilation", "title": "Softbots as testbeds for machine learning" }, { @@ -6433,7 +6383,7 @@ "itemType": "journalArticle", "pages": "7\u201313", "publicationTitle": "AIM", - "title": "Intelligence without robots: A reply to Brooks", + "title": "Intelligence without robots: a reply to Brooks", "volume": "14" }, { @@ -6482,16 +6432,15 @@ "lastName": "Finin" } ], - "date": "September 1990", + "date": "1990-09", "extra": [ "Citation Key: eval:90" ], "issue": "3", "itemID": 254, "itemType": "journalArticle", - "journalAbbreviation": "CL", "pages": "175-181", - "publicationTitle": "Corolla Londiniensis", + "publicationTitle": "CL", "title": "Workshop on the evaluation of natural language processing systems", "volume": "16" }, @@ -6533,7 +6482,7 @@ "itemType": "book", "place": "Cambridge, Mass.", "publisher": "MIT Press", - "title": "NETL: A system for representing and using real-world knowledge" + "title": "NETL: a system for representing and using real-world knowledge" }, { "citationKey": "Fanty:85", @@ -6828,8 +6777,7 @@ ], "date": "1987", "extra": [ - "Citation Key: FirbyAAAI-87", - "tex.crossref: AAAI87" + "Citation Key: FirbyAAAI-87" ], "itemID": 268, "itemType": "conferencePaper", @@ -6857,7 +6805,7 @@ "itemID": 269, "itemType": "book", "publisher": "Brown University Department of Computer Science", - "title": "FRANZ LISP ... The manual" + "title": "FRANZ LISP ... the manual" }, { "citationKey": "Foderaro", @@ -6875,7 +6823,7 @@ "itemID": 270, "itemType": "book", "publisher": "University of California, Berkeley, Department of Computer Science", - "title": "FRANZ LISP ... The manual" + "title": "FRANZ LISP ... the manual" }, { "citationKey": "Forbus:1981", @@ -7122,7 +7070,7 @@ "itemID": 280, "itemType": "conferencePaper", "publicationTitle": "American institute of aeronautics and astronautics", - "title": "Human vs. Autonomous control of UAV surveillance", + "title": "Human vs. autonomous control of UAV surveillance", "url": "http://human-factors.arc.nasa.gov/apex/content/papers.html" }, { @@ -7205,8 +7153,7 @@ } ], "extra": [ - "Citation Key: freed98:apex", - "tex.crossref: AAAI98" + "Citation Key: freed98:apex" ], "itemID": 283, "itemType": "conferencePaper", @@ -7294,8 +7241,7 @@ } ], "extra": [ - "Citation Key: Frisch:kr91", - "tex.crossref: KR:91" + "Citation Key: Frisch:kr91" ], "itemID": 287, "itemType": "conferencePaper", @@ -7314,8 +7260,7 @@ } ], "extra": [ - "Citation Key: FRUMP", - "tex.crossref: Strategies4NLP" + "Citation Key: FRUMP" ], "itemID": 288, "itemType": "bookSection", @@ -7363,7 +7308,7 @@ "itemID": 290, "itemType": "report", "publisher": "University of British Columbia Department of Computer Science", - "title": "WHISPER: A computer implementation using analogues in reasoning" + "title": "WHISPER: a computer implementation using analogues in reasoning" }, { "citationKey": "Galton:90", @@ -7527,7 +7472,7 @@ "lastName": "Gazdar" } ], - "date": "September 1985", + "date": "1985-09", "extra": [ "Citation Key: Gazdar:85" ], @@ -7539,7 +7484,7 @@ "number": "CSLI-85-32", "place": "Stanford University, Stanford, CA", "publisher": "CSLI", - "title": "Finite state morphology: A review of Koskenniemi (1983)" + "title": "Finite state morphology: a review of Koskenniemi (1983)" }, { "citationKey": "Gelernter:1959", @@ -7575,9 +7520,8 @@ ], "itemID": 299, "itemType": "journalArticle", - "journalAbbreviation": "Science", "pages": "1041-1049", - "publicationTitle": "Science (New York, N.Y.)", + "publicationTitle": "Science", "title": "Empirical explorations of SYNCHEM", "volume": "197" }, @@ -7635,7 +7579,7 @@ "lastName": "Fikes" } ], - "date": "June 1992", + "date": "1992-06", "extra": [ "Citation Key: Genesereth:KIF3" ], @@ -7644,7 +7588,7 @@ "number": "Logic-92-1", "publisher": "Computer Science Department, Stanford University", "title": "Knowledge interchange format, version 3.0 reference manual", - "type": "Logic group report" + "type": "Logic Group Report" }, { "citationKey": "Georgeff:86", @@ -7769,7 +7713,7 @@ "place": "Brescia, Italy", "publisher": "Dept. of Electronics for Automation, University of Brescia", "title": "Plan constraints and preferences in PDDL3", - "type": "Technical report" + "type": "Technical Report" }, { "citationKey": "ghallab04:planningBook", @@ -7850,7 +7794,7 @@ ], "itemID": 309, "itemType": "document", - "title": "PDDL\u2014The planning domain definition language", + "title": "PDDL\u2014the planning domain definition language", "url": "citeseer.nj.nec.com/ghallab98pddl.html" }, { @@ -7887,9 +7831,8 @@ ], "itemID": 311, "itemType": "journalArticle", - "journalAbbreviation": "Science", "pages": "185-187", - "publicationTitle": "Science (New York, N.Y.)", + "publicationTitle": "Science", "title": "Perceived lightness depends on perceived spatial arrangement", "volume": "195" }, @@ -7924,8 +7867,7 @@ } ], "extra": [ - "Citation Key: Ginsberg-85-IJCAI", - "tex.crossref: IJCAI-85" + "Citation Key: Ginsberg-85-IJCAI" ], "itemID": 313, "itemType": "conferencePaper", @@ -7967,13 +7909,12 @@ } ], "extra": [ - "Citation Key: Ginsberg-Smith-87-FPW-1", - "tex.crossref: Brown:FPW" + "Citation Key: Ginsberg-Smith-87-FPW-1" ], "itemID": 315, "itemType": "conferencePaper", "pages": "233\u2013258", - "title": "Reasoning about action I: A possible worlds approach" + "title": "Reasoning about action I: a possible worlds approach" }, { "citationKey": "Ginsberg-Smith-87-FPW-2", @@ -7990,8 +7931,7 @@ } ], "extra": [ - "Citation Key: Ginsberg-Smith-87-FPW-2", - "tex.crossref: Brown:FPW" + "Citation Key: Ginsberg-Smith-87-FPW-2" ], "itemID": 316, "itemType": "conferencePaper", @@ -8020,7 +7960,7 @@ "itemType": "journalArticle", "pages": "165\u2013195", "publicationTitle": "AIJ", - "title": "Reasoning about action I: A possible worlds approach", + "title": "Reasoning about action I: a possible worlds approach", "volume": "35" }, { @@ -8178,8 +8118,7 @@ ], "date": "1997-08", "extra": [ - "Citation Key: Givan:97", - "tex.crossref: ijcai97" + "Citation Key: Givan:97" ], "itemID": 324, "itemType": "conferencePaper", @@ -8203,7 +8142,6 @@ "date": "1991-07", "extra": [ "Citation Key: Godefroid:91", - "tex.crossref: AAAI91", "tex.dbasekey: godefroid:91" ], "itemID": 325, @@ -8272,8 +8210,7 @@ "extra": [ "Citation Key: Golden98", "tex.bibdate: 2002-01-03", - "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/aips/aips1998.html#Golden98", - "tex.crossref: AIPS98" + "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/aips/aips1998.html#Golden98" ], "itemID": 328, "itemType": "conferencePaper", @@ -8314,8 +8251,7 @@ } ], "extra": [ - "Citation Key: Goldweic:PlanLoops", - "tex.crossref: PlanInit1" + "Citation Key: Goldweic:PlanLoops" ], "itemID": 330, "itemType": "conferencePaper", @@ -8446,7 +8382,7 @@ "itemType": "journalArticle", "pages": "365\u2013396", "publicationTitle": "JAIR", - "title": "Adaptive problem-solving for large-scale scheduling problems: A case study", + "title": "Adaptive problem-solving for large-scale scheduling problems: a case study", "volume": "4" }, { @@ -8503,8 +8439,7 @@ } ], "extra": [ - "Citation Key: Green:75", - "tex.crossref: IJCAI85" + "Citation Key: Green:75" ], "itemID": 338, "itemType": "conferencePaper", @@ -8526,13 +8461,12 @@ } ], "extra": [ - "Citation Key: Greenwald:PI", - "tex.crossref: PlanInit1" + "Citation Key: Greenwald:PI" ], "itemID": 339, "itemType": "conferencePaper", "pages": "179\u2013190", - "title": "Monte Carlo Simulation and Bottleneck-centered Heuristics for Time-critical scheduling in stochastic domains" + "title": "Monte carlo simulation and bottleneck-centered heuristics for time-critical scheduling in stochastic domains" }, { "citationKey": "Grice", @@ -8660,8 +8594,7 @@ ], "itemID": 344, "itemType": "journalArticle", - "journalAbbreviation": "CL", - "publicationTitle": "Corolla Londiniensis", + "publicationTitle": "CL", "title": "Attention, intention and the structure of discourse", "volume": "12" }, @@ -8676,8 +8609,7 @@ ], "extra": [ "Citation Key: Grosz:86a", - "Section: 21", - "tex.crossref: NLPReadings" + "Section: 21" ], "itemID": 345, "itemType": "bookSection", @@ -8879,7 +8811,7 @@ "lastName": "Hanks" } ], - "date": "June 1993", + "date": "1993-06", "extra": [ "Citation Key: Haddawy:93" ], @@ -8924,7 +8856,7 @@ "lastName": "Haddawy" } ], - "date": "July 1994", + "date": "1994-07", "extra": [ "Citation Key: Haddawy94:Generating", "tex.key: Conference" @@ -9020,8 +8952,7 @@ } ], "extra": [ - "Citation Key: hanks:YSP", - "tex.crossref: aaai86" + "Citation Key: hanks:YSP" ], "itemID": 360, "itemType": "conferencePaper", @@ -9103,8 +9034,7 @@ ], "date": "1986", "extra": [ - "Citation Key: Harper:86", - "tex.crossref: ACL-86" + "Citation Key: Harper:86" ], "itemID": 363, "itemType": "conferencePaper", @@ -9151,8 +9081,7 @@ } ], "extra": [ - "Citation Key: Harvey:IJCAI95", - "tex.crossref: ijcai95" + "Citation Key: Harvey:IJCAI95" ], "itemID": 365, "itemType": "conferencePaper", @@ -9216,8 +9145,7 @@ } ], "extra": [ - "Citation Key: Hayes:2ndManifesto", - "tex.crossref: FTCW" + "Citation Key: Hayes:2ndManifesto" ], "itemID": 368, "itemType": "bookSection", @@ -9310,8 +9238,7 @@ } ], "extra": [ - "Citation Key: Hayes:84", - "tex.crossref: FTCW" + "Citation Key: Hayes:84" ], "itemID": 373, "itemType": "bookSection", @@ -9413,7 +9340,7 @@ "itemType": "book", "place": "Hillsdale, NJ", "publisher": "LEA", - "title": "Integrated marker-passing and problem-solving: A spreading-activation approach to improved choice in planning" + "title": "Integrated marker-passing and problem-solving: a spreading-activation approach to improved choice in planning" }, { "citationKey": "Hendler:PI", @@ -9425,8 +9352,7 @@ } ], "extra": [ - "Citation Key: Hendler:PI", - "tex.crossref: PlanInit1" + "Citation Key: Hendler:PI" ], "itemID": 377, "itemType": "conferencePaper", @@ -9507,7 +9433,7 @@ "itemID": 381, "itemType": "report", "publisher": "MIT Artificial Intelligence Laboratory", - "title": "Description and theoretical analysis of PLANNER: A language for proving theorems and manipulating models in a robot" + "title": "Description and theoretical analysis of PLANNER: a language for proving theorems and manipulating models in a robot" }, { "citationKey": "Hewitt:91", @@ -9583,8 +9509,7 @@ } ], "extra": [ - "Citation Key: Hinton:86", - "tex.crossref: PDP2" + "Citation Key: Hinton:86" ], "itemID": 385, "itemType": "bookSection", @@ -9606,7 +9531,7 @@ "itemID": 386, "itemType": "report", "publisher": "University of British Columbia Department of Computer Science", - "title": "Anaphora in natural language understanding: A survey" + "title": "Anaphora in natural language understanding: a survey" }, { "citationKey": "Hirst:81", @@ -9625,7 +9550,7 @@ "itemType": "book", "place": "Berlin", "publisher": "Springer-Verlag", - "title": "Anaphora in natural language understanding: A survey" + "title": "Anaphora in natural language understanding: a survey" }, { "citationKey": "Hirst:82", @@ -9643,8 +9568,7 @@ ], "date": "1982", "extra": [ - "Citation Key: Hirst:82", - "tex.crossref: AAAI-82" + "Citation Key: Hirst:82" ], "itemID": 388, "itemType": "conferencePaper", @@ -9908,7 +9832,7 @@ "lastName": "Martin" } ], - "date": "December 1990", + "date": "1990-12", "extra": [ "Citation Key: Hobbs:IasATR" ], @@ -9998,7 +9922,7 @@ "itemType": "journalArticle", "pages": "49-117", "publicationTitle": "JAIR", - "title": "Message-based web service composition, integrity constraints, and planning under uncertainty: A new connection", + "title": "Message-based web service composition, integrity constraints, and planning under uncertainty: a new connection", "volume": "35" }, { @@ -10046,8 +9970,8 @@ }, { "creatorType": "author", - "firstName": "Frederico dos Santos", - "lastName": "Liporace" + "firstName": "Frederico", + "lastName": "dos Santos Liporace" }, { "creatorType": "author", @@ -10115,8 +10039,8 @@ }, { "creatorType": "author", - "firstName": "Frederico dos S.", - "lastName": "Liporace" + "firstName": "Frederico", + "lastName": "dos S. Liporace" }, { "creatorType": "author", @@ -10272,8 +10196,7 @@ "extra": [ "Citation Key: howey04:_val", "tex.bibdate: 2005-01-05", - "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/ictai/ictai2004.html#HoweyLF04", - "tex.crossref: DBLP:conf/ictai/2004" + "tex.bibsource: DBLP, http://dblp.uni-trier.de/db/conf/ictai/ictai2004.html#HoweyLF04" ], "itemID": 411, "itemType": "conferencePaper", @@ -10336,7 +10259,7 @@ "notes": [ "Relevant to the issue of creating new entities when planning." ], - "publicationTitle": "Proceedings of the 16th conference on very large databases, morgan kaufman pubs. (los altos CA), brisbane", + "publicationTitle": "Proceedings of the 16th conference on very large databases, morgan kaufman pubs. (Los altos CA), brisbane", "title": "ILOG: Declarative creation and manipulation of object-identifiers" }, { @@ -10398,8 +10321,7 @@ } ], "extra": [ - "Citation Key: IJCAI01*425", - "tex.crossref: IJCAI01" + "Citation Key: IJCAI01*425" ], "itemID": 415, "itemType": "conferencePaper", @@ -10433,7 +10355,7 @@ "itemType": "journalArticle", "journalAbbreviation": "IEEE Expert", "pages": "34\u201344", - "publicationTitle": "Ieee Expert-intelligent Systems & Their Applications", + "publicationTitle": "IEEE Expert-intelligent Systems & Their Applications", "title": "An architecture for real-time reasoning and system control", "volume": "7:6" }, @@ -10575,7 +10497,7 @@ "place": "ERLBAUM-ADDRESS", "publicationTitle": "Knowledge and cognition", "publisher": "Lawrence Erlbaum", - "title": "How can merlin understand?" + "title": "How can Merlin understand?" }, { "citationKey": "Johnson:1974", @@ -10617,7 +10539,7 @@ "lastName": "Klein" } ], - "date": "October 1986", + "date": "1986-10", "extra": [ "Citation Key: Johnson:86" ], @@ -10694,7 +10616,7 @@ "itemID": 426, "itemType": "journalArticle", "publicationTitle": "CoRR", - "title": "The metric-FF planning system: Translating \"Ignoring Delete Lists\" to numeric state variables", + "title": "The metric-FF planning system: Translating \"ignoring delete lists\" to numeric state variables", "url": "http://arxiv.org/abs/1106.5271", "volume": "abs/1106.5271" }, @@ -10943,8 +10865,7 @@ } ], "extra": [ - "Citation Key: Kabanza:95", - "tex.crossref: ijcai95" + "Citation Key: Kabanza:95" ], "itemID": 435, "itemType": "conferencePaper", @@ -10961,8 +10882,7 @@ } ], "extra": [ - "Citation Key: Kabanza:96", - "tex.crossref: Actions:96" + "Citation Key: Kabanza:96" ], "itemID": 436, "itemType": "conferencePaper", @@ -11039,8 +10959,7 @@ } ], "extra": [ - "Citation Key: Kaelbling:90", - "tex.crossref: PlanReadings" + "Citation Key: Kaelbling:90" ], "itemID": 439, "itemType": "bookSection", @@ -11057,8 +10976,7 @@ } ], "extra": [ - "Citation Key: Kaelbling:PI", - "tex.crossref: PlanInit1" + "Citation Key: Kaelbling:PI" ], "itemID": 440, "itemType": "conferencePaper", @@ -11236,7 +11154,7 @@ "lastName": "Kant" } ], - "date": "August 1977", + "date": "1977-08", "extra": [ "Citation Key: Kant:77", "Number: 64" @@ -11332,8 +11250,7 @@ ], "extra": [ "Citation Key: Kautz:90", - "Section: 6", - "tex.crossref: Intentions" + "Section: 6" ], "itemID": 451, "itemType": "bookSection", @@ -11350,8 +11267,7 @@ } ], "extra": [ - "Citation Key: Kautz:ParkingLot", - "tex.crossref: aaai86" + "Citation Key: Kautz:ParkingLot" ], "itemID": 452, "itemType": "conferencePaper", @@ -11974,7 +11890,7 @@ "lastName": "Kowalski" } ], - "date": "October 1975", + "date": "1975-10", "extra": [ "Citation Key: Kowalski:75" ], @@ -12154,14 +12070,14 @@ "lastName": "Weld" } ], - "date": "June 1993", + "date": "1993-06", "extra": [ "Citation Key: Kushmerick:93" ], "itemID": 487, "itemType": "report", "notes": [ - "This citation should be replaced with Kushmerick, et. al., Artificial Intelligence/, 1995" + "This citation should be replaced with Kushmerick, et. al., Artificial Intelligence, 1995" ], "number": "93-06-03", "place": "Seattle, WA", @@ -12236,8 +12152,7 @@ ], "date": "1991", "extra": [ - "Citation Key: Kyburg:91", - "tex.crossref: ijcai91" + "Citation Key: Kyburg:91" ], "itemID": 490, "itemType": "conferencePaper", @@ -12651,13 +12566,8 @@ }, { "creatorType": "editor", - "firstName": "Ryszard", - "lastName": "Michalski" - }, - { - "creatorType": "editor", - "firstName": "Jaime G.", - "lastName": "Carbonell" + "firstName": "Jaime G. Carbonell", + "lastName": "Ryszard Michalski" }, { "creatorType": "editor", @@ -12699,7 +12609,7 @@ "itemType": "journalArticle", "pages": "236-240", "publicationTitle": "Proc. AAAI", - "title": "Why AM and Eurisko appear to work", + "title": "Why AM and eurisko appear to work", "volume": "3" }, { @@ -12717,8 +12627,7 @@ } ], "extra": [ - "Citation Key: Lenat:88", - "tex.crossref: EcologyOfComp" + "Citation Key: Lenat:88" ], "itemID": 509, "itemType": "bookSection", @@ -12733,7 +12642,7 @@ "lastName": "Leong" } ], - "date": "June 1991", + "date": "1991-06", "extra": [ "Citation Key: Leong:91" ], @@ -12759,8 +12668,7 @@ } ], "extra": [ - "Citation Key: LeshEtzioni:95", - "tex.crossref: ijcai95" + "Citation Key: LeshEtzioni:95" ], "itemID": 511, "itemType": "conferencePaper", @@ -12782,8 +12690,7 @@ } ], "extra": [ - "Citation Key: LeshEtzioni:96", - "tex.crossref: KR:96" + "Citation Key: LeshEtzioni:96" ], "itemID": 512, "itemType": "conferencePaper", @@ -12896,8 +12803,7 @@ } ], "extra": [ - "Citation Key: Levesque:96", - "tex.crossref: AAAI96" + "Citation Key: Levesque:96" ], "itemID": 516, "itemType": "conferencePaper", @@ -12939,7 +12845,7 @@ "itemID": 518, "itemType": "report", "publisher": "MIT Artificial Intelligence Laboratory", - "title": "Instrumental with/ and the control relation in english" + "title": "Instrumental with and the control relation in english" }, { "citationKey": "Lewis:73", @@ -13005,13 +12911,12 @@ } ], "extra": [ - "Citation Key: Lifschitz:STRIPS", - "tex.crossref: PlanReadings" + "Citation Key: Lifschitz:STRIPS" ], "itemID": 521, "itemType": "bookSection", "notes": [ - "Reprinted from Reasoning about Actions and Plans/" + "Reprinted from Reasoning about Actions and Plans" ], "pages": "523\u2013530", "title": "On the semantics of STRIPS" @@ -13033,7 +12938,7 @@ "itemType": "journalArticle", "pages": "209\u2013229", "publicationTitle": "JAIR", - "title": "Learning the past tense of english verbs: The symbolic pattern associator vs. Connectionist models", + "title": "Learning the past tense of english verbs: The symbolic pattern associator vs. connectionist models", "volume": "1" }, { @@ -13217,7 +13122,7 @@ "itemID": 530, "itemType": "journalArticle", "publicationTitle": "IEEE Transactions on Computers", - "title": "Spatial planning: A configuration space approach", + "title": "Spatial Planning: A configuration space approach", "volume": "C-32" }, { @@ -13363,12 +13268,11 @@ } ], "extra": [ - "Citation Key: Malone:Enterprise", - "tex.crossref: EcologyOfComp" + "Citation Key: Malone:Enterprise" ], "itemID": 536, "itemType": "bookSection", - "title": "Enterprise: A market-like task scheduler for distributed computing environments" + "title": "Enterprise: a market-like task scheduler for distributed computing environments" }, { "citationKey": "Mano:76", @@ -13481,7 +13385,7 @@ "lastName": "Xu" } ], - "date": "November 1990", + "date": "1990-11", "extra": [ "Citation Key: Marcus:90" ], @@ -13491,7 +13395,7 @@ "place": "Cambridge, MA", "publisher": "MIT Center for Cognitive Science", "title": "Overregularization", - "type": "Occasional paper" + "type": "Occasional Paper" }, { "citationKey": "Marr:1982", @@ -13717,7 +13621,7 @@ "lastName": "McAllester" } ], - "date": "January 1980", + "date": "1980-01", "extra": [ "Citation Key: McAllester:80" ], @@ -13744,8 +13648,7 @@ ], "date": "1991", "extra": [ - "Citation Key: McAllester:91", - "tex.crossref: AAAI91" + "Citation Key: McAllester:91" ], "itemID": 551, "itemType": "conferencePaper", @@ -13927,8 +13830,7 @@ } ], "extra": [ - "Citation Key: McCarty:92", - "tex.crossref: KR:92" + "Citation Key: McCarty:92" ], "itemID": 559, "itemType": "conferencePaper", @@ -13944,7 +13846,7 @@ "lastName": "E.G. McCluskey" } ], - "date": "November 1956", + "date": "1956-11", "extra": [ "Citation Key: McCluskey:56" ], @@ -14357,7 +14259,7 @@ "itemID": 580, "itemType": "report", "publisher": "Yale University Department of Computer Science", - "title": "The nisp manual" + "title": "The Nisp manual" }, { "citationKey": "McDermott:83Duck", @@ -14510,8 +14412,7 @@ } ], "extra": [ - "Citation Key: McDermott:96", - "tex.crossref: AIPS96" + "Citation Key: McDermott:96" ], "itemID": 588, "itemType": "conferencePaper", @@ -14604,7 +14505,7 @@ "name": "MCDERMOTT" } ], - "date": "July 1991", + "date": "1991-07", "extra": [ "Citation Key: McDermott:Pedestal" ], @@ -14676,8 +14577,7 @@ ], "extra": [ "Citation Key: Meehan:TALE-SPIN", - "Section: 9", - "tex.crossref: ICU" + "Section: 9" ], "itemID": 594, "itemType": "bookSection", @@ -14694,8 +14594,7 @@ } ], "extra": [ - "Citation Key: Mellish:89", - "tex.crossref: ACL-89" + "Citation Key: Mellish:89" ], "itemID": 595, "itemType": "conferencePaper", @@ -14756,8 +14655,7 @@ ], "date": "1983", "extra": [ - "Citation Key: Michalski:83", - "tex.crossref: Michalski:Learning" + "Citation Key: Michalski:83" ], "itemID": 598, "itemType": "bookSection", @@ -14837,8 +14735,7 @@ } ], "extra": [ - "Citation Key: Miller:Agoric", - "tex.crossref: EcologyOfComp" + "Citation Key: Miller:Agoric" ], "itemID": 602, "itemType": "bookSection", @@ -14849,7 +14746,7 @@ "creators": [ { "creatorType": "author", - "firstName": "Firby, J., D.", + "firstName": "Firby, D.", "lastName": "Miller" }, { @@ -14907,7 +14804,7 @@ "number": "43", "publisher": "Cognitive Science Laboratory, Princeton University", "title": "Five papers on WordNet", - "type": "CSL report" + "type": "CSL Report" }, { "citationKey": "Mills:92", @@ -15040,12 +14937,11 @@ } ], "extra": [ - "Citation Key: Minton:91", - "tex.crossref: ijcai91" + "Citation Key: Minton:91" ], "itemID": 610, "itemType": "conferencePaper", - "title": "Commitment strategies in planning: A comparative analysis" + "title": "Commitment strategies in planning: a comparative analysis" }, { "citationKey": "Minton:92", @@ -15072,13 +14968,12 @@ } ], "extra": [ - "Citation Key: Minton:92", - "tex.crossref: KR:92" + "Citation Key: Minton:92" ], "itemID": 611, "itemType": "conferencePaper", "pages": "83\u201392", - "title": "Total order vs./ partial order planning: Factors influencing performance" + "title": "Total order vs. partial order planning: Factors influencing performance" }, { "citationKey": "Minton:94", @@ -15107,7 +15002,7 @@ "itemType": "journalArticle", "pages": "227\u2013262", "publicationTitle": "JAIR", - "title": "Total-order and partial-order planning: A comparative analysis", + "title": "Total-order and partial-order planning: a comparative analysis", "volume": "2" }, { @@ -15166,13 +15061,8 @@ }, { "creatorType": "editor", - "firstName": "Ryszard", - "lastName": "Michalski" - }, - { - "creatorType": "editor", - "firstName": "Jaime G.", - "lastName": "Carbonell" + "firstName": "Jaime G. Carbonell", + "lastName": "Ryszard Michalski" }, { "creatorType": "editor", @@ -15219,7 +15109,7 @@ "itemType": "journalArticle", "pages": "47\u201380", "publicationTitle": "Machine Learning", - "title": "Explanation-based generalization: A unifying view", + "title": "Explanation-based generalization: a unifying view", "volume": "1" }, { @@ -15301,13 +15191,8 @@ }, { "creatorType": "editor", - "firstName": "K.J.J.", - "lastName": "Hintikka" - }, - { - "creatorType": "editor", - "firstName": "J.M.E.", - "lastName": "Moravcsik" + "firstName": "J.M.E. Moravcsik", + "lastName": "K.J.J. Hintikka" }, { "creatorType": "editor", @@ -15462,8 +15347,7 @@ } ], "extra": [ - "Citation Key: Moore:84", - "tex.crossref: FTCW" + "Citation Key: Moore:84" ], "itemID": 626, "itemType": "bookSection", @@ -15506,8 +15390,7 @@ } ], "extra": [ - "Citation Key: Morgenstern:87", - "tex.crossref: ijcai87" + "Citation Key: Morgenstern:87" ], "itemID": 628, "itemType": "conferencePaper", @@ -15587,13 +15470,8 @@ }, { "creatorType": "editor", - "firstName": "Ryszard", - "lastName": "Michalski" - }, - { - "creatorType": "editor", - "firstName": "Jaime G.", - "lastName": "Carbonell" + "firstName": "Jaime G. Carbonell", + "lastName": "Ryszard Michalski" }, { "creatorType": "editor", @@ -15654,7 +15532,7 @@ "notes": [ "Data set from Naval Ocean Systems Center." ], - "title": "Working Papers:Navy tactical narrative paragraphs and glosses" + "title": "Working papers:navy tactical narrative paragraphs and glosses" }, { "citationKey": "Musliner:93", @@ -15684,7 +15562,7 @@ "itemType": "journalArticle", "pages": "1561\u20131574", "publicationTitle": "SMC", - "title": "CIRCA: A cooperative intelligent real-time control architecture", + "title": "CIRCA: a cooperative intelligent real-time control architecture", "volume": "23" }, { @@ -15721,7 +15599,6 @@ "date": "1994-08", "extra": [ "Citation Key: musliner:94a", - "tex.crossref: AAAI94", "tex.dbasekey: musliner:94a" ], "itemID": 637, @@ -15778,7 +15655,7 @@ "itemID": 639, "itemType": "manuscript", "notes": [ - "Prepublication draft; to appear in Artificial Intelligence/" + "Prepublication draft; to appear in Artificial Intelligence" ], "title": "The Effect of resource limits and task complexity on collaborative planning in dialogue" }, @@ -16185,7 +16062,7 @@ "lastName": "Levy" } ], - "date": "December 1995", + "date": "1995-12", "extra": [ "Citation Key: Ngo95:Probabilistic", "tex.key: Conference" @@ -16219,7 +16096,7 @@ "lastName": "Helwig" } ], - "date": "August 1995", + "date": "1995-08", "extra": [ "Citation Key: Ngo95:Theoretical", "tex.key: Conference" @@ -16358,8 +16235,7 @@ "date": "2001", "extra": [ "Citation Key: NguyenRao01", - "tex.bibsource: DBLP, http://dblp.uni-trier.de", - "tex.crossref: DBLP:conf/ijcai/2001" + "tex.bibsource: DBLP, http://dblp.uni-trier.de" ], "itemID": 659, "itemType": "conferencePaper", @@ -16596,7 +16472,7 @@ ], "itemID": 671, "itemType": "thesis", - "publisher": "Computer Science Division (EECS), % University of California at Berkeley", + "publisher": "Computer Science Division (EECS),University of California at Berkeley", "title": "Unified theory of inference for text understanding", "type": "phd" }, @@ -16615,8 +16491,7 @@ } ], "extra": [ - "Citation Key: Oates:PI", - "tex.crossref: PlanInit1" + "Citation Key: Oates:PI" ], "itemID": 672, "itemType": "conferencePaper", @@ -16644,8 +16519,7 @@ ], "date": "1992", "extra": [ - "Citation Key: OlawskyAIPS", - "tex.crossref: aips92" + "Citation Key: OlawskyAIPS" ], "itemID": 673, "itemType": "conferencePaper", @@ -16796,8 +16670,8 @@ "creators": [ { "creatorType": "author", - "firstName": "Jon a", - "lastName": "Pastor" + "firstName": "Jon", + "lastName": "a Pastor" }, { "creatorType": "author", @@ -16806,13 +16680,12 @@ } ], "extra": [ - "Citation Key: Pastor:PI", - "tex.crossref: PlanInit1" + "Citation Key: Pastor:PI" ], "itemID": 679, "itemType": "conferencePaper", "pages": "375\u2013384", - "title": "View-concepts: Persistent Storage for planning and scheduling" + "title": "View-concepts: Persistent storage for planning and scheduling" }, { "citationKey": "Patel:84", @@ -17069,7 +16942,7 @@ "lastName": "Pednault" } ], - "date": "December 1986", + "date": "1986-12", "extra": [ "Citation Key: Pednault:86" ], @@ -17111,8 +16984,7 @@ } ], "extra": [ - "Citation Key: Pednault:88a", - "tex.crossref: AAAI88" + "Citation Key: Pednault:88a" ], "itemID": 690, "itemType": "conferencePaper", @@ -17130,8 +17002,7 @@ ], "date": "1989", "extra": [ - "Citation Key: Pednault:89", - "tex.crossref: KR:89" + "Citation Key: Pednault:89" ], "itemID": 691, "itemType": "conferencePaper", @@ -17148,8 +17019,7 @@ ], "date": "1991", "extra": [ - "Citation Key: Pednault:91", - "tex.crossref: ijcai91" + "Citation Key: Pednault:91" ], "itemID": 692, "itemType": "conferencePaper", @@ -17209,13 +17079,12 @@ ], "date": "1992", "extra": [ - "Citation Key: Penberthy:92", - "tex.crossref: KR:92" + "Citation Key: Penberthy:92" ], "itemID": 694, "itemType": "conferencePaper", "pages": "103\u2013114", - "title": "UCPOP: A sound, complete, partial order planner for ADL" + "title": "UCPOP: a sound, complete, partial order planner for ADL" }, { "citationKey": "Peng:86", @@ -17232,13 +17101,12 @@ } ], "extra": [ - "Citation Key: Peng:86", - "tex.crossref: aaai86" + "Citation Key: Peng:86" ], "itemID": 695, "itemType": "conferencePaper", "pages": "140-145", - "title": "Plausibility of Diagnostic Hypotheses: the nature of simplicity" + "title": "Plausibility of diagnostic hypotheses: the nature of simplicity" }, { "citationKey": "Pentland:1983", @@ -17281,8 +17149,7 @@ ], "date": "1993", "extra": [ - "Citation Key: Pereira:93", - "tex.crossref: ACL-93" + "Citation Key: Pereira:93" ], "itemID": 697, "itemType": "conferencePaper", @@ -17393,8 +17260,7 @@ } ], "extra": [ - "Citation Key: Petrick-Bacchus-icaps:04", - "tex.crossref: ICAPS-04" + "Citation Key: Petrick-Bacchus-icaps:04" ], "itemID": 702, "itemType": "conferencePaper", @@ -17457,7 +17323,7 @@ ], "itemID": 705, "itemType": "bookSection", - "publicationTitle": "Proceedings of the 18th Conference of the Association for Computational Linguistics", + "publicationTitle": "Proceedings of the 18th conference of the association for computational linguistics", "publisher": "Association for Computational Linguistics", "title": "Flexible parsing" }, @@ -17532,8 +17398,7 @@ } ], "extra": [ - "Citation Key: PIEvaluation", - "tex.crossref: PlanInit1" + "Citation Key: PIEvaluation" ], "itemID": 708, "itemType": "conferencePaper", @@ -17673,7 +17538,7 @@ "itemType": "book", "place": "New York", "publisher": "Oxford University Press", - "title": "Computational intelligence: A logical approach" + "title": "Computational intelligence: a logical approach" }, { "citationKey": "Pople:75", @@ -18085,7 +17950,7 @@ "itemType": "journalArticle", "pages": "287\u2013339", "publicationTitle": "JAIR", - "title": "Planning for contingencies: A decision-based approach", + "title": "Planning for contingencies: a decision-based approach", "volume": "4" }, { @@ -18103,8 +17968,7 @@ } ], "extra": [ - "Citation Key: Pryor:CassandraIjcai", - "tex.crossref: ijcai95" + "Citation Key: Pryor:CassandraIjcai" ], "itemID": 728, "itemType": "conferencePaper", @@ -18128,7 +17992,7 @@ "lastName": "Collins" } ], - "date": "June 1993", + "date": "1993-06", "extra": [ "Citation Key: Pryor:CassandraORIG" ], @@ -18267,7 +18131,7 @@ "lastName": "Quine" } ], - "date": "October 1952", + "date": "1952-10", "extra": [ "Citation Key: Quine:52" ], @@ -18349,13 +18213,8 @@ }, { "creatorType": "editor", - "firstName": "Ryszard", - "lastName": "Michalski" - }, - { - "creatorType": "editor", - "firstName": "Jaime G.", - "lastName": "Carbonell" + "firstName": "Jaime G. Carbonell", + "lastName": "Ryszard Michalski" }, { "creatorType": "editor", @@ -18473,8 +18332,7 @@ ], "date": "2007", "extra": [ - "Citation Key: RaoETALDiversity:07", - "tex.crossref: IJCAI07" + "Citation Key: RaoETALDiversity:07" ], "itemID": 744, "itemType": "conferencePaper", @@ -18492,8 +18350,7 @@ ], "date": "1994", "extra": [ - "Citation Key: RaoKR-94", - "tex.crossref: KR:94" + "Citation Key: RaoKR-94" ], "itemID": 745, "itemType": "conferencePaper", @@ -18750,7 +18607,7 @@ "itemID": 756, "itemType": "thesis", "publisher": "Computer and Information Science, Penn University", - "title": "Selection and information: A class-based approach to lexical relationships", + "title": "Selection and information: a class-based approach to lexical relationships", "type": "phd" }, { @@ -19293,8 +19150,7 @@ ], "date": "1981", "extra": [ - "Citation Key: Rosenschein:PDLPlan", - "tex.crossref: ijcai81" + "Citation Key: Rosenschein:PDLPlan" ], "itemID": 779, "itemType": "conferencePaper", @@ -19384,7 +19240,7 @@ "lastName": "Hertzberg" } ], - "date": "March 1993", + "date": "1993-03", "extra": [ "Citation Key: Rutten:93" ], @@ -19445,8 +19301,7 @@ } ], "extra": [ - "Citation Key: Sadeh:PI", - "tex.crossref: PlanInit1" + "Citation Key: Sadeh:PI" ], "itemID": 786, "itemType": "conferencePaper", @@ -19463,8 +19318,7 @@ } ], "extra": [ - "Citation Key: Sadek:92", - "tex.crossref: KR:92" + "Citation Key: Sadek:92" ], "itemID": 787, "itemType": "conferencePaper", @@ -19592,7 +19446,7 @@ "lastName": "Sandewall" } ], - "date": "November 1992", + "date": "1992-11", "extra": [ "Citation Key: Sandewall:92" ], @@ -19623,7 +19477,7 @@ ], "publisher": "Link\u00f6ping University", "title": "Logic based modelling of goal-directed behavior", - "type": "Link\u00f6ping electronic articles in computer and information science" + "type": "Link\u00f6ping Electronic Articles in Computer and Information Science" }, { "citationKey": "Sathi:Manufacturing", @@ -19644,7 +19498,7 @@ "lastName": "Greenberg" } ], - "date": "September 1985", + "date": "1985-09", "extra": [ "Citation Key: Sathi:Manufacturing" ], @@ -19813,8 +19667,7 @@ } ], "extra": [ - "Citation Key: Scherl:93", - "tex.crossref: AAAI93" + "Citation Key: Scherl:93" ], "itemID": 801, "itemType": "conferencePaper", @@ -19846,7 +19699,7 @@ "itemID": 802, "itemType": "manuscript", "notes": [ - "Unpublished MSS. submitted to Artificial Intelligence/. Shorter version appeared in Proceedings of AAAI-93" + "Unpublished MSS. submitted to Artificial Intelligence. Shorter version appeared in Proceedings of AAAI-93" ], "title": "The frame problem and knowledge-producing actions" }, @@ -19935,8 +19788,7 @@ } ], "extra": [ - "Citation Key: Schubert:89", - "tex.crossref: KR:89" + "Citation Key: Schubert:89" ], "itemID": 806, "itemType": "conferencePaper", @@ -19966,7 +19818,7 @@ "pages": "23\u201367", "publicationTitle": "Knowledge representation and defeasible reasoning", "publisher": "Kluwer Academic Publishers", - "title": "Monotonic Solution of the Frame Problem in the situation calculus" + "title": "Monotonic solution of the frame problem in the situation calculus" }, { "citationKey": "Scripts", @@ -20183,7 +20035,7 @@ ], "itemID": 815, "itemType": "conferencePaper", - "publicationTitle": "Proceedings of the first international conference on knowledge capture (K-cap'01)", + "publicationTitle": "Proceedings of the first international conference on knowledge capture (k-cap'01)", "title": "Knowledge entry as the graphical assembly of components" }, { @@ -20351,9 +20203,8 @@ ], "itemID": 823, "itemType": "journalArticle", - "journalAbbreviation": "Science", "pages": "701-703", - "publicationTitle": "Science (New York, N.Y.)", + "publicationTitle": "Science", "title": "Mental rotation of three-dimensional objects", "volume": "171" }, @@ -20679,8 +20530,7 @@ } ], "extra": [ - "Citation Key: Sidner:83", - "tex.crossref: BradyandBerwick" + "Citation Key: Sidner:83" ], "itemID": 837, "itemType": "bookSection", @@ -20742,8 +20592,7 @@ } ], "extra": [ - "Citation Key: Siskind:93", - "tex.crossref: AAAI93" + "Citation Key: Siskind:93" ], "itemID": 840, "itemType": "conferencePaper", @@ -20772,7 +20621,7 @@ "number": "IRCS\u201393\u201303", "place": "Philadelphia, PA", "publisher": "University of Pennsylvania Institute for Research in Cognitive Science", - "title": "Screamer: A portable efficient implementation of nondeterministic common lisp" + "title": "Screamer: a portable efficient implementation of nondeterministic common lisp" }, { "citationKey": "Slate:77", @@ -20861,8 +20710,7 @@ } ], "extra": [ - "Citation Key: Smith:PI", - "tex.crossref: PlanInit1" + "Citation Key: Smith:PI" ], "itemID": 845, "itemType": "conferencePaper", @@ -20961,7 +20809,7 @@ "place": "Carlton, AUSTRALIA", "publisher": "AAII", "title": "Planned team activity", - "type": "Technical note" + "type": "Technical Note" }, { "citationKey": "Soutter:96", @@ -21148,8 +20996,7 @@ } ], "extra": [ - "Citation Key: StephanBiundo:93", - "tex.crossref: ijcai93" + "Citation Key: StephanBiundo:93" ], "itemID": 856, "itemType": "conferencePaper", @@ -21171,8 +21018,7 @@ } ], "extra": [ - "Citation Key: StephanBiundo:96", - "tex.crossref: AIPS96" + "Citation Key: StephanBiundo:96" ], "itemID": 857, "itemType": "conferencePaper", @@ -21304,7 +21150,7 @@ "lastName": "Stolcke" } ], - "date": "November 1993", + "date": "1993-11", "extra": [ "Citation Key: Stolcke:93" ], @@ -21486,13 +21332,8 @@ }, { "creatorType": "editor", - "firstName": "W.", - "lastName": "Kintsch" - }, - { - "creatorType": "editor", - "firstName": "R.J.", - "lastName": "Miller" + "firstName": "R.J. Miller", + "lastName": "W. Kintsch" }, { "creatorType": "editor", @@ -21526,8 +21367,7 @@ } ], "extra": [ - "Citation Key: Sycara:PI", - "tex.crossref: PlanInit1" + "Citation Key: Sycara:PI" ], "itemID": 872, "itemType": "conferencePaper", @@ -21643,8 +21483,7 @@ } ], "extra": [ - "Citation Key: Tate:OPlanConstraints", - "tex.crossref: PlanInit1" + "Citation Key: Tate:OPlanConstraints" ], "itemID": 877, "itemType": "conferencePaper", @@ -21661,8 +21500,7 @@ } ], "extra": [ - "Citation Key: Tate:PIPosition", - "tex.crossref: PlanInit1" + "Citation Key: Tate:PIPosition" ], "itemID": 878, "itemType": "conferencePaper", @@ -21857,13 +21695,12 @@ ], "date": "1991", "extra": [ - "Citation Key: Trost:91", - "tex.crossref: ijcai91" + "Citation Key: Trost:91" ], "itemID": 886, "itemType": "conferencePaper", "pages": "1024\u20131030", - "title": "X2MORF: A morphological component based on augmented two-level morphology" + "title": "X2MORF: a morphological component based on augmented two-level morphology" }, { "citationKey": "trueg04:_apply_autom_plann_system_airpor", @@ -21892,7 +21729,7 @@ "itemType": "report", "number": "199", "publisher": "Insitut f\u00fcr Informatik, Universit\u00e4t Freiburg", - "title": "Applying automatic planning systems to airport ground-traffic control \u2014 A feasibility study" + "title": "Applying automatic planning systems to airport ground-traffic control \u2014 a feasibility study" }, { "citationKey": "Turing:53", @@ -22020,8 +21857,7 @@ ], "date": "1987", "extra": [ - "Citation Key: UPlan", - "tex.crossref: ijcai87" + "Citation Key: UPlan" ], "itemID": 893, "itemType": "conferencePaper", @@ -22133,8 +21969,7 @@ } ], "extra": [ - "Citation Key: VelosoPollackCox:98", - "tex.crossref: AIPS98" + "Citation Key: VelosoPollackCox:98" ], "itemID": 898, "itemType": "conferencePaper", @@ -22206,13 +22041,12 @@ } ], "extra": [ - "Citation Key: Vilain:90", - "tex.crossref: AAAI90" + "Citation Key: Vilain:90" ], "itemID": 901, "itemType": "conferencePaper", "pages": "190\u2013197", - "title": "Getting serious about parsing plans: A grammatical analysis of plan recognition" + "title": "Getting serious about parsing plans: a grammatical analysis of plan recognition" }, { "citationKey": "Vilain:91", @@ -22225,8 +22059,7 @@ ], "date": "1991", "extra": [ - "Citation Key: Vilain:91", - "tex.crossref: AAAI91" + "Citation Key: Vilain:91" ], "itemID": 902, "itemType": "conferencePaper", @@ -22329,7 +22162,7 @@ "lastName": "Stornetta" } ], - "date": "February 1992", + "date": "1992-02", "extra": [ "Citation Key: Waldspurger:Spawn" ], @@ -22338,7 +22171,7 @@ "itemType": "journalArticle", "pages": "103\u2013117", "publicationTitle": "TSWE", - "title": "Spawn: A distributed computational economy", + "title": "Spawn: a distributed computational economy", "volume": "18" }, { @@ -22560,8 +22393,7 @@ } ], "extra": [ - "Citation Key: Webber:83", - "tex.crossref: BradyandBerwick" + "Citation Key: Webber:83" ], "itemID": 915, "itemType": "bookSection", @@ -22920,13 +22752,12 @@ } ], "extra": [ - "Citation Key: WilkinsMyers:98", - "tex.crossref: AIPS98" + "Citation Key: WilkinsMyers:98" ], "itemID": 932, "itemType": "conferencePaper", "pages": "154\u2013162", - "title": "A multiagent planning architecture" + "title": "A Multiagent planning architecture" }, { "citationKey": "WilkinsMyers:ACT", @@ -23056,7 +22887,7 @@ "itemType": "report", "number": "MCCS-90-194", "publisher": "Computing Research Laboratory, New Mexico State University", - "title": "Preference semantics: a family history" + "title": "Preference Semantics: a family history" }, { "citationKey": "WilliamsNayak:96", @@ -23073,8 +22904,7 @@ } ], "extra": [ - "Citation Key: WilliamsNayak:96", - "tex.crossref: AAAI96" + "Citation Key: WilliamsNayak:96" ], "itemID": 938, "itemType": "conferencePaper", @@ -23822,7 +23652,7 @@ { "itemID": 972, "itemType": "note", - "note": "Import errors found:

  • Unresolved @string reference "AAAI-91"
  • Unresolved @string reference "IJCAI-75"
  • Unresolved @string reference "IJCAI-73"
  • Unresolved @string reference "ERLBAUM-ADDRESS"
  • Unresolved @string reference "ERLBAUM"
  • Unresolved @string reference "AIJ"
  • Unresolved @string reference "IJCAI-77"
  • Unresolved @string reference "ACL-87"
  • Unresolved @string reference "LEA"
  • Unresolved @string reference "CI"
  • Unresolved @string reference "IJCAI-81"
  • Unresolved @string reference "September"
  • Unresolved @string reference "CL"
  • Unresolved @string reference "COGSCI"
  • Unresolved @string reference "AIM"
  • Unresolved @string reference "CSLI"
  • Unresolved @string reference "AAAI-82"
  • Unresolved @string reference "March"
  • Unresolved @string reference "MITAI"
  • Unresolved @string reference "AAAI-88"
  • Unresolved @string reference "January"
  • Unresolved @string reference "AAAI-83"
  • Unresolved @string reference "IJCAI-83"
  • Unresolved @string reference "FTCW"
  • Unresolved @string reference "AAAI-80"
  • Unresolved @string reference "MCDERMOTT"
  • Unresolved @string reference "IJIS"
  • Unresolved @string reference "ML"
  • Unresolved @string reference "JAIR"
  • Unresolved @string reference "REITER"
  • Unresolved @string reference "AW-ADDRESS"
  • Unresolved @string reference "KAUFMANN"
  • Unresolved @string reference "WILKINS"
  • Unresolved @string reference "AAAI-87"
  • Unresolved @string reference "ACL-86"
  • Unresolved @string reference "AAAI-86"
  • Unresolved @string reference "ACL-85"
  • Unresolved @string reference "IJCAI-87"
  • Unresolved @string reference "ACL-88"
  • Unresolved @string reference "SRI-ADDRESS"
  • Unresolved @string reference "December"
  • Unresolved @string reference "CSLI-ADDRESS"
  • Unresolved @string reference "October"
  • Unresolved @string reference "AAAI-90"
  • Unresolved @string reference "MITP"
  • Unresolved @string reference "MITP-ADDRESS"
  • Unresolved @string reference "MIT-ADDRESS"
  • Unresolved @string reference "BSTJ"
  • Unresolved @string reference "November"
  • Unresolved @string reference "KAUFMANN-ADDRESS"
  • Unresolved @string reference "AAAI-PRESS"
  • Unresolved @string reference "IJCAI-89"
  • Unresolved @string reference "IJCAI-85"
  • Unresolved @string reference "SMC"
  • Unresolved @string reference "GINSBERG"
  • Unresolved @string reference "EXPERT"
  • Unresolved @string reference "UDUB"
  • Unresolved @string reference "NEW-AAAI-PUB"
  • Unresolved @string reference "TCOMPUTERS"
  • Unresolved @string reference "CIJ"
  • Unresolved @string reference "PAMI"
  • Unresolved @string reference "ICSI"
  • Unresolved @string reference "ELSEVIER"
  • Unresolved @string reference "TSWE"
  • Unresolved @string reference "SRI"
  • Unresolved @string reference "INGRAND"
  • Unresolved @string reference "KSL"
  • Unresolved @string reference "STANFORD-ADDRESS"
  • Unresolved @string reference "CMUSCS"
  • Unresolved @string reference "CMU-ADDRESS"
  • Unresolved @string reference "AAAI"
  • Unresolved @string reference "AAAI-PRESS-ADDRESS"
  • Unresolved @string reference "JLC"
  • Unresolved @string reference "IJCAI-97"
  • Unresolved @string reference "DKE"
  • Unresolved @string reference "AAII"
  • Unresolved @string reference "ar"
  • Unresolved @string reference "MPOLLACK"
  • Unresolved @string reference "SPRINGER"
  • Unresolved @string reference "ETAI"
  • Unresolved @string reference "amai"
  • Unresolved @string reference "LNCS"
  • Unresolved @string reference "FREED"
  • Unresolved @string reference "ICAPS"
  • Unresolved @string reference "ILP-05"
  • Unresolved @string reference "ICML-97"
  • Unresolved @string reference "ICML-06"
  • Unresolved @string reference "IJCAI"
  • Unresolved @string reference "AAAI-99"
  • Unresolved @string reference "PICAPS"
", + "note": "Import errors found:
  • Unresolved @string reference "AAAI-91"
  • Unresolved @string reference "IJCAI-75"
  • Unresolved @string reference "IJCAI-73"
  • Unresolved @string reference "ERLBAUM-ADDRESS"
  • Unresolved @string reference "ERLBAUM"
  • Unresolved @string reference "AIJ"
  • Unresolved @string reference "IJCAI-77"
  • Unresolved @string reference "ACL-87"
  • Unresolved @string reference "LEA"
  • Unresolved @string reference "CI"
  • Unresolved @string reference "IJCAI-81"
  • Unresolved @string reference "CL"
  • Unresolved @string reference "COGSCI"
  • Unresolved @string reference "AIM"
  • Unresolved @string reference "CSLI"
  • Unresolved @string reference "AAAI-82"
  • Unresolved @string reference "MITAI"
  • Unresolved @string reference "AAAI-88"
  • Unresolved @string reference "AAAI-83"
  • Unresolved @string reference "IJCAI-83"
  • Unresolved @string reference "FTCW"
  • Unresolved @string reference "AAAI-80"
  • Unresolved @string reference "MCDERMOTT"
  • Unresolved @string reference "IJIS"
  • Unresolved @string reference "ML"
  • Unresolved @string reference "JAIR"
  • Unresolved @string reference "REITER"
  • Unresolved @string reference "AW-ADDRESS"
  • Unresolved @string reference "KAUFMANN"
  • Unresolved @string reference "WILKINS"
  • Unresolved @string reference "AAAI-87"
  • Unresolved @string reference "ACL-86"
  • Unresolved @string reference "AAAI-86"
  • Unresolved @string reference "ACL-85"
  • Unresolved @string reference "IJCAI-87"
  • Unresolved @string reference "ACL-88"
  • Unresolved @string reference "SRI-ADDRESS"
  • Unresolved @string reference "CSLI-ADDRESS"
  • Unresolved @string reference "AAAI-90"
  • Unresolved @string reference "MITP"
  • Unresolved @string reference "MITP-ADDRESS"
  • Unresolved @string reference "MIT-ADDRESS"
  • Unresolved @string reference "BSTJ"
  • Unresolved @string reference "KAUFMANN-ADDRESS"
  • Unresolved @string reference "AAAI-PRESS"
  • Unresolved @string reference "IJCAI-89"
  • Unresolved @string reference "IJCAI-85"
  • Unresolved @string reference "SMC"
  • Unresolved @string reference "GINSBERG"
  • Unresolved @string reference "EXPERT"
  • Unresolved @string reference "UDUB"
  • Unresolved @string reference "NEW-AAAI-PUB"
  • Unresolved @string reference "TCOMPUTERS"
  • Unresolved @string reference "CIJ"
  • Unresolved @string reference "PAMI"
  • Unresolved @string reference "ICSI"
  • Unresolved @string reference "ELSEVIER"
  • Unresolved @string reference "TSWE"
  • Unresolved @string reference "SRI"
  • Unresolved @string reference "INGRAND"
  • Unresolved @string reference "KSL"
  • Unresolved @string reference "STANFORD-ADDRESS"
  • Unresolved @string reference "CMUSCS"
  • Unresolved @string reference "CMU-ADDRESS"
  • Unresolved @string reference "AAAI"
  • Unresolved @string reference "AAAI-PRESS-ADDRESS"
  • Unresolved @string reference "JLC"
  • Unresolved @string reference "IJCAI-97"
  • Unresolved @string reference "DKE"
  • Unresolved @string reference "AAII"
  • Unresolved @string reference "ar"
  • Unresolved @string reference "MPOLLACK"
  • Unresolved @string reference "SPRINGER"
  • Unresolved @string reference "ETAI"
  • Unresolved @string reference "amai"
  • Unresolved @string reference "LNCS"
  • Unresolved @string reference "FREED"
  • Unresolved @string reference "ICAPS"
  • Unresolved @string reference "ILP-05"
  • Unresolved @string reference "ICML-97"
  • Unresolved @string reference "ICML-06"
  • Unresolved @string reference "jair"
  • Unresolved @string reference "IJCAI"
  • Unresolved @string reference "AAAI-99"
  • Unresolved @string reference "PICAPS"
  • Unresolved @string reference "ijcai"
  • @miller85: unexpected 4-part name "Miller, D., Firby, J.", dropping "J."
    Miller, D., Firby, J.
", "tags": [ { "tag": "#Better BibTeX import error", @@ -24402,7 +24232,7 @@ "pages": "364\u2013372", "publicationTitle": "ICAPS", "publisher": "AAAI Press", - "title": "Simulated penetration testing: From \"Dijkstra\" to \"Turing Test++\"", + "title": "Simulated penetration testing: From \"dijkstra\" to \"turing test++\"", "url": "http://www.aaai.org/Library/ICAPS/icaps15contents.php" }, { @@ -24452,7 +24282,7 @@ "publicationTitle": "Logics in artificial intelligence", "publisher": "Springer Berlin Heidelberg", "series": "Lecture notes in computer science", - "title": "Z-log: Applying system-Z", + "title": "Z-log: Applying system-z", "url": "http://dx.doi.org/10.1007/3-540-45757-7_52", "volume": "2424" }, diff --git a/test/fixtures/import/Title of German entry converted to lowercase during import #1350.json b/test/fixtures/import/Title of German entry converted to lowercase during import #1350.json index a19c819f5e..a528f5f922 100644 --- a/test/fixtures/import/Title of German entry converted to lowercase during import #1350.json +++ b/test/fixtures/import/Title of German entry converted to lowercase during import #1350.json @@ -2,9 +2,13 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "options": {}, + "options": { + "Items": true, + "Preferences": true, + "exportNotes": true + }, "preferences": { - "citekeyFormat": "[auth][year]" + "citekeyFormat": "auth + year" } }, "items": [ @@ -65,7 +69,7 @@ "itemType": "bookSection", "pages": "93 \u2013 108", "place": "Paderborn", - "publicationTitle": "Religion heute \u2013 \u00f6ffentlich und politisch: Provokationen, kontroversen, perspektiven", + "publicationTitle": "Religion heute \u2013 \u00f6ffentlich und politisch: Provokationen, Kontroversen, Perspektiven", "publisher": "Sch\u00f6ningh", "title": "Die R\u00fcckkehr der Religionen in der politischen und medialen \u00d6ffent\u00ad lichkeit" }, @@ -86,9 +90,9 @@ "itemType": "bookSection", "language": "german", "place": "W\u00fcrzburg", - "publicationTitle": "Eine Auswahl von Techniken und Beispielen", + "publicationTitle": "Eine auswahl von techniken und beispielen", "publisher": "Ergon", - "title": "Die Darstellung des Islams in der Presse: Sprache, Bilder, Suggestionen" + "title": "Die darstellung des islams in der presse: Sprache, bilder, suggestionen" }, { "citationKey": "schiffer2005a", @@ -107,9 +111,9 @@ "itemType": "bookSection", "language": "german", "place": "W\u00fcrzburg", - "publicationTitle": "Eine Auswahl von Techniken und Beispielen", + "publicationTitle": "Eine auswahl von techniken und beispielen", "publisher": "Ergon", - "title": "Die Darstellung des Islams in der Presse: Sprache, Bilder, Suggestionen" + "title": "Die darstellung des islams in der presse: Sprache, bilder, suggestionen" } ] } \ No newline at end of file diff --git a/test/fixtures/import/URL not recognised in a simple online bib file entry on import #2842.bib b/test/fixtures/import/URL not recognised in a simple online bib file entry on import #2842.bib new file mode 100644 index 0000000000..b4226e12ec --- /dev/null +++ b/test/fixtures/import/URL not recognised in a simple online bib file entry on import #2842.bib @@ -0,0 +1,6 @@ +@Online{Gartner_CloudComputing, +author = {Gartner}, +month = {08}, +year = {2013}, +url = {https://web.archive.org/web/20130825054202/http://www.gartner.com/technology/reprints.do?id=1-1IMDMZ5&ct=130819&st=sb}, +} diff --git a/test/fixtures/import/URL not recognised in a simple online bib file entry on import #2842.json b/test/fixtures/import/URL not recognised in a simple online bib file entry on import #2842.json new file mode 100644 index 0000000000..e1d118073d --- /dev/null +++ b/test/fixtures/import/URL not recognised in a simple online bib file entry on import #2842.json @@ -0,0 +1,44 @@ +{ + "config": { + "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", + "label": "BetterBibTeX JSON", + "options": { + "Items": true, + "Preferences": true, + "exportNotes": true, + "worker": true + }, + "preferences": { + "auxImport": true, + "baseAttachmentPath": "C:\\Users\\shwur\\WIZnet Germany GmbH\\Agents of P.U.F. - General\\Zotero Storage", + "citekeyFormat": "auth + year", + "importSentenceCase": "off", + "rawImports": true, + "relativeFilePaths": true + } + }, + "items": [ + { + "citationKey": "Gartner_CloudComputing", + "creators": [ + { + "creatorType": "author", + "name": "Gartner" + } + ], + "date": "2013-08", + "extra": [ + "Citation Key: Gartner_CloudComputing" + ], + "itemID": 1, + "itemType": "webpage", + "tags": [ + { + "tag": "#LaTeX", + "type": 1 + } + ], + "url": "https://web.archive.org/web/20130825054202/http://www.gartner.com/technology/reprints.do?id=1-1IMDMZ5&ct=130819&st=sb" + } + ] +} \ No newline at end of file diff --git a/test/fixtures/import/Unabbreviate on import #1436-1.json b/test/fixtures/import/Unabbreviate on import #1436-1.json index d2c2eb7c40..dd2bb4e5c6 100644 --- a/test/fixtures/import/Unabbreviate on import #1436-1.json +++ b/test/fixtures/import/Unabbreviate on import #1436-1.json @@ -555,7 +555,7 @@ "journalAbbreviation": "J. Surf. Investig. X-Ray Synchrotron Neutron Tech.", "pages": "12a", "publicationTitle": "Journal of Surface Investigation: X-ray, Synchrotron and Neutron Techniques", - "title": "Caract\u00e9risation des dispositifs Opto-\u00c9lectroniques par microscopy \u00e0 balayage", + "title": "Caract\u00e9risation des dispositifs opto-\u00e9lectroniques par microscopy \u00e0 balayage", "volume": "14" }, { @@ -4188,9 +4188,8 @@ "issue": "4", "itemID": 91, "itemType": "journalArticle", - "journalAbbreviation": "Small", "pages": "467\u2013470", - "publicationTitle": "Small (Weinheim an der Bergstrasse, Germany)", + "publicationTitle": "Small", "title": "Probing exciton diffusion in semiconductors using semiconductor-nanorod quantum structures", "volume": "4" }, @@ -4668,7 +4667,7 @@ "journalAbbreviation": "Adv. Mater.", "pages": "3755\u20133760", "publicationTitle": "Advanced Materials", - "title": "Monolithic III-V Nanowire Solar Cells on Graphene via Direct van der Waals Epitaxy", + "title": "Monolithic III-V Nanowire Solar Cells on Graphene via Direct van Der Waals Epitaxy", "volume": "26" }, { @@ -5465,9 +5464,8 @@ "issue": "7", "itemID": 115, "itemType": "journalArticle", - "journalAbbreviation": "Small", "pages": "899\u2013903", - "publicationTitle": "Small (Weinheim an der Bergstrasse, Germany)", + "publicationTitle": "Small", "title": "Prismatic Quantum Heterostructures Synthesized on Molecular-Beam Epitaxy GaAs Nanowires", "volume": "4" }, @@ -12309,7 +12307,7 @@ "journalAbbreviation": "Appl. Phys. Lett.", "pages": "043109", "publicationTitle": "Applied Physics Letters", - "title": "Large redshift in photoluminescence of P-doped InP nanowires induced by Fermi-Level pinning", + "title": "Large redshift in photoluminescence of p-doped InP nanowires induced by Fermi-Level pinning", "volume": "88" }, { @@ -14900,7 +14898,7 @@ "journalAbbreviation": "Appl. Phys. Lett.", "pages": "213113", "publicationTitle": "Applied Physics Letters", - "title": "Environmental sensitivity of N-i-n and undoped single GaN nanowire photodetectors", + "title": "Environmental sensitivity of n-i-n and undoped single GaN nanowire photodetectors", "volume": "102" }, { @@ -22927,9 +22925,8 @@ "issue": "5158", "itemID": 454, "itemType": "journalArticle", - "journalAbbreviation": "Science", "pages": "553\u2013556", - "publicationTitle": "Science (New York, N.Y.)", + "publicationTitle": "Science", "title": "Quantum Cascade Laser", "volume": "264" }, @@ -23632,7 +23629,7 @@ "journalAbbreviation": "J. Opt. Soc. Am.", "pages": "742\u2013744", "publicationTitle": "Journal of The Optical Society of America", - "title": "Optical constants from the far infrared to the X-ray region: Mg, Al, Cu, Ag, Au, Bi, C, and Al2O3", + "title": "Optical constants from the far infrared to the x-ray region: Mg, Al, Cu, Ag, Au, Bi, C, and Al2O3", "volume": "65" }, { diff --git a/test/fixtures/import/issuenumberarticle-number #2551.json b/test/fixtures/import/issuenumberarticle-number #2551.json index a05ce8a987..c51be35d5a 100644 --- a/test/fixtures/import/issuenumberarticle-number #2551.json +++ b/test/fixtures/import/issuenumberarticle-number #2551.json @@ -53,7 +53,7 @@ "itemID": 1, "itemType": "journalArticle", "publicationTitle": "Remote Sensing", - "title": "Precipitation retrieval over the tibetan plateau from the geostationary Orbit\u2014Part 2: Precipitation rates with elektro-l2 and insat-3D", + "title": "Precipitation retrieval over the tibetan plateau from the geostationary orbit\u2014part 2: Precipitation rates with elektro-L2 and insat-3D", "url": "https://www.mdpi.com/2072-4292/12/13/2114", "volume": "12" } diff --git a/test/fixtures/import/support Local-Zo-Url-x field from BibDesk2Zotero_attachments #667.json b/test/fixtures/import/support Local-Zo-Url-x field from BibDesk2Zotero_attachments #667.json index 513bc60e48..405929c0ab 100644 --- a/test/fixtures/import/support Local-Zo-Url-x field from BibDesk2Zotero_attachments #667.json +++ b/test/fixtures/import/support Local-Zo-Url-x field from BibDesk2Zotero_attachments #667.json @@ -2,13 +2,13 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", - "localeDateOrder": "ymd", "options": { + "Items": true, + "Preferences": true, "exportNotes": true }, "preferences": { - "citekeyFormat": "[auth][year]", - "itemObserverDelay": 100 + "citekeyFormat": "auth + year" } }, "items": [ @@ -16,9 +16,8 @@ "attachments": [ { "itemType": "attachment", - "path": "/Users/emile/.BBTTEST/zotero/storage/8VZFW8AS/1.pdf", - "title": "1", - "uri": "http://zotero.org/users/local/6z7M0kXV/items/8VZFW8AS" + "path": "ATTACHMENT_KEY/1.pdf", + "title": "1" } ], "citationKey": "Abbott-2007-aa", @@ -50,7 +49,7 @@ "tag": "Political Economy" } ], - "title": "Are developing countries deterred from using the WTO dispute settlement system? - participation of developing countries in the DSM in the years 1995-2005" + "title": "Are developing countries deterred from using the WTO dispute settlement system? - Participation of developing countries in the DSM in the years 1995-2005" } ] -} +} \ No newline at end of file diff --git a/test/fixtures/import/unknown command handler #1733.json b/test/fixtures/import/unknown command handler #1733.json index cd1e42eb4c..aa261abe78 100644 --- a/test/fixtures/import/unknown command handler #1733.json +++ b/test/fixtures/import/unknown command handler #1733.json @@ -2,143 +2,66 @@ "config": { "id": "36a3b0b5-bad0-4a04-b79b-441c7cef77db", "label": "BetterBibTeX JSON", + "options": { + "Items": true, + "Preferences": true, + "exportNotes": true + }, "preferences": { - "ascii": "", - "asciiBibLaTeX": false, - "asciiBibTeX": true, - "autoAbbrev": false, - "autoAbbrevStyle": "", - "autoExport": "immediate", - "autoExportDelay": 5, - "autoExportIdleWait": 10, - "autoExportPathReplaceDiacritics": false, - "autoExportPathReplaceDirSep": "-", - "autoExportPathReplaceSpace": " ", - "automaticTags": true, - "autoPinDelay": 0, - "auxImport": false, - "baseAttachmentPath": "", - "biblatexExtendedDateFormat": true, - "biblatexExtendedNameFormat": true, - "biblatexExtractEprint": true, - "bibtexEditionOrdinal": false, - "bibtexParticleNoOp": false, - "bibtexURL": "off", - "cache": true, - "cacheFlushInterval": 5, - "charmap": "", - "citeCommand": "cite", - "citekeyFold": true, "citekeyFormat": "auth + year", - "citekeySearch": true, - "citekeyUnsafeChars": "\\\"#%'(),={}~", - "csquotes": "", - "DOIandURL": "both", - "exportBibTeXStrings": "off", - "exportBraceProtection": true, - "exportTitleCase": true, - "extraMergeCitekeys": false, - "extraMergeCSL": false, - "extraMergeTeX": false, - "git": "config", - "import": true, - "importBibTeXStrings": true, - "importCaseProtection": "as-needed", - "importCitationKey": true, - "importDetectURLs": true, - "importExtra": true, - "importJabRefAbbreviations": true, - "importJabRefStrings": true, - "importNoteToExtra": "", - "importSentenceCase": "on+guess", - "importSentenceCaseQuoted": true, - "importUnknownTexCommand": "tex", - "itemObserverDelay": 5, - "jabrefFormat": 0, - "jieba": false, - "keyConflictPolicy": "keep", - "keyScope": "library", - "kuroshiro": false, - "language": "langid", - "mapMath": "", - "mapText": "", - "parseParticles": true, - "patchDates": "dateadded=dateAdded, date-added=dateAdded, datemodified=dateModified, date-modified=dateModified", - "postscript": "", - "postscriptOverride": "", - "preferencesOverride": "", - "qualityReport": false, - "quickCopyEta": "", - "quickCopyMode": "latex", - "quickCopyOrgMode": "zotero", - "quickCopyPandocBrackets": false, - "quickCopySelectLink": "zotero", - "rawImports": false, - "rawLaTag": "#LaTeX", - "relativeFilePaths": false, - "retainCache": false, - "separatorList": "and", - "separatorNames": "and", - "skipFields": "", - "skipWords": "a,ab,aboard,about,above,across,after,against,al,along,amid,among,an,and,anti,around,as,at,before,behind,below,beneath,beside,besides,between,beyond,but,by,d,da,das,de,del,dell,dello,dei,degli,della,dell,delle,dem,den,der,des,despite,die,do,down,du,during,ein,eine,einem,einen,einer,eines,el,en,et,except,for,from,gli,i,il,in,inside,into,is,l,la,las,le,les,like,lo,los,near,nor,of,off,on,onto,or,over,past,per,plus,round,save,since,so,some,sur,than,the,through,to,toward,towards,un,una,unas,under,underneath,une,unlike,uno,unos,until,up,upon,versus,via,von,while,with,within,without,yet,zu,zum", - "startupProgress": "popup", - "strings": "", - "stringsOverride": "", - "verbatimFields": "url,doi,file,pdf,ids,eprint,/^verb[a-z]$/,groups,/^citeulike-linkout-[0-9]+$/, /^bdsk-url-[0-9]+$/", - "warnBulkModify": 10, - "warnTitleCased": false - }, - "options": { - "exportNotes": true, - "exportFileData": false, - "keepUpdated": false, - "worker": false, - "Normalize": true + "importUnknownTexCommand": "tex" } }, - "version": { - "zotero": "6.0.27", - "bbt": "6.7.122.emile.limonia" - }, - "collections": {}, "items": [ { - "version": 0, - "itemType": "journalArticle", - "volume": "424", - "pages": "927-934", - "publicationTitle": "", - "date": "2004-09", - "extra": "Citation Key: 2004A&A...424..927C\narXiv: astro-ph/0405395 [astro-ph]\ntex.adsnote: Provided by the SAO/NASA Astrophysics Data System", "DOI": "10.1051/0004-6361:20040307", - "title": "Bright metal-poor variables: Why “Anomalous” cepheids?", + "attachments": [ + { + "accessDate": "2024-04-15T01:01:22Z", + "itemType": "attachment", + "linkMode": "linked_url", + "title": "adsurl", + "url": "https://ui.adsabs.harvard.edu/abs/2004A&A...424..927C" + } + ], + "citationKey": "2004A&A...424..927C", "creators": [ { + "creatorType": "author", "firstName": "F.", - "lastName": "Caputo", - "creatorType": "author" + "lastName": "Caputo" }, { + "creatorType": "author", "firstName": "V.", - "lastName": "Castellani", - "creatorType": "author" + "lastName": "Castellani" }, { + "creatorType": "author", "firstName": "S.", - "lastName": "Degl'Innocenti", - "creatorType": "author" + "lastName": "Degl'Innocenti" }, { + "creatorType": "author", "firstName": "G.", - "lastName": "Fiorentino", - "creatorType": "author" + "lastName": "Fiorentino" }, { + "creatorType": "author", "firstName": "M.", - "lastName": "Marconi", - "creatorType": "author" + "lastName": "Marconi" } ], + "date": "2004-09", + "extra": [ + "Citation Key: 2004A&A...424..927C", + "arXiv: astro-ph/0405395 [astro-ph]", + "tex.adsnote: Provided by the SAO/NASA Astrophysics Data System" + ], + "itemID": 1, + "itemType": "journalArticle", + "pages": "927-934", + "publicationTitle": "", "tags": [ { "tag": "Astrophysics" @@ -150,36 +73,8 @@ "tag": "stars: variables: Cepheids" } ], - "relations": [], - "dateAdded": "2023-10-07T18:59:30Z", - "dateModified": "2023-10-07T18:59:30Z", - "uri": "http://zotero.org/users/8230813/items/BN2NFCZR", - "attachments": [ - { - "version": 0, - "itemType": "attachment", - "url": "https://ui.adsabs.harvard.edu/abs/2004A&A...424..927C", - "accessDate": "2023-10-07T18:59:30Z", - "title": "adsurl", - "parentItem": "BN2NFCZR", - "linkMode": "linked_url", - "contentType": "", - "charset": "", - "tags": [], - "relations": {}, - "dateAdded": "2023-10-07T18:59:30Z", - "dateModified": "2023-10-07T18:59:30Z", - "uri": "http://zotero.org/users/8230813/items/PZ4EZPTF", - "itemID": 1505, - "itemKey": "PZ4EZPTF", - "libraryID": 1 - } - ], - "notes": [], - "citationKey": "2004A&A...424..927C", - "itemID": 1504, - "itemKey": "BN2NFCZR", - "libraryID": 1 + "title": "Bright metal-poor variables: Why \u201canomalous\u201d cepheids?", + "volume": "424" } ] -} +} \ No newline at end of file diff --git a/test/fixtures/import/web_page and other mendeley idiocy.json b/test/fixtures/import/web_page and other mendeley idiocy.json index 8bd1841ea3..723431fe9c 100644 --- a/test/fixtures/import/web_page and other mendeley idiocy.json +++ b/test/fixtures/import/web_page and other mendeley idiocy.json @@ -691,7 +691,7 @@ "itemID": 4, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51544019760003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51544019760003843" ], "publisher": "Jackson, Mississippi : University Press of Mississippi", "title": "Little red readings historical materialist perspectives on children\u2019s literature" @@ -715,7 +715,7 @@ "itemID": 5, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1621367911" + "ID: TN_proquest1621367911" ], "pages": "B14", "publicationTitle": "New York Times (1923-Current file)", @@ -775,7 +775,7 @@ "itemID": 7, "itemType": "book", "notes": [ - "Description based upon print version of record.; Description based on print version record.; ID: 01UAALMA51543392390003843" + "Description based upon print version of record.; Description based on print version record.; ID: 01UA_ALMA51543392390003843" ], "publisher": "New York : Fordham University Press", "title": "How to be an intellectual: Essays on criticism, culture, and the university" @@ -803,7 +803,7 @@ ], "itemID": 8, "itemType": "webpage", - "title": "\"Pitt Pioneers: or, How Our Faculty Helped Establish Children\u2019s Literature and Childhood Studies in the Academy\" (2014)", + "title": "\"Pitt pioneers: or, how our faculty helped establish children\u2019s literature and childhood studies in the academy\" (2014)", "url": "https://www.academia.edu/9397598/_Pitt_Pioneers_or_How_Our_Faculty_Helped_Establish_Children_s_Literature_and_Childhood_Studies_in_the_Academy_2014_" }, { @@ -824,7 +824,7 @@ "itemID": 9, "itemType": "book", "notes": [ - "Includes bibliographical references (p. 149-162) and index; ID: 01UAALMA21393431080003843" + "Includes bibliographical references (p. 149-162) and index; ID: 01UA_ALMA21393431080003843" ], "publisher": "Columbia : University of Missouri Press", "title": "Faint praise : the plight of book reviewing in America" @@ -846,7 +846,7 @@ "itemID": 10, "itemType": "book", "notes": [ - "Includes bibliographical references (pages 203-213) and index.; ID: 01UAALMA71628903890003843" + "Includes bibliographical references (pages 203-213) and index.; ID: 01UA_ALMA71628903890003843" ], "publisher": "Jefferson, North Carolina : McFarland & Company, Inc., Publishers", "title": "Which side are you on? : seven social responsibility debates in American librarianship, 1990-2015" @@ -965,7 +965,7 @@ "itemID": 13, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51539696940003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51539696940003843" ], "publisher": "San Francisco : Jossey-Bass", "title": "Twitter for good: Change the world one tweet at a time" @@ -1039,7 +1039,7 @@ "itemID": 15, "itemType": "book", "notes": [ - "Includes bibliographical references (pages 165]-189) and index; ID: 01UAALMA21422213960003843" + "Includes bibliographical references (pages 165]-189) and index; ID: 01UA_ALMA21422213960003843" ], "publisher": "New York : Peter Lang", "title": "Reading the world, the globe, and the cosmos : approaches to teaching literature for the Twenty-First century" @@ -1062,7 +1062,7 @@ "itemID": 16, "itemType": "book", "notes": [ - "Includes bibliographical references and index; ID: 01UAALMA21459275130003843" + "Includes bibliographical references and index; ID: 01UA_ALMA21459275130003843" ], "publisher": "Cambridge, Mass. : Harvard University Press", "title": "Our aesthetic categories : zany, cute, interesting" @@ -1147,7 +1147,7 @@ "itemID": 19, "itemType": "journalArticle", "publicationTitle": "Booktoss", - "title": "2020 \u2013 the \u201cHold my beer\u201d decade", + "title": "2020 \u2013 the \u201chold my beer\u201d decade", "url": "https://booktoss.blog/2020/05/09/2020-the-hold-my-beer-decade/" }, { @@ -1168,7 +1168,7 @@ "itemID": 20, "itemType": "book", "notes": [ - "ID: TN\u209aq\u2091bookcentralEBC5640118" + "ID: TN_pq_ebook_centralEBC5640118" ], "title": "Marxist literary criticism today" }, @@ -1211,7 +1211,7 @@ "itemID": 22, "itemType": "book", "notes": [ - "Includes bibliographical references (pages 181-212) and index; ID: 01UAALMA21452464220003843" + "Includes bibliographical references (pages 181-212) and index; ID: 01UA_ALMA21452464220003843" ], "publisher": "New York : Collins", "title": "From cover to cover : evaluating and reviewing children's books" @@ -1356,7 +1356,7 @@ "tag": "SOCIAL SCIENCE" } ], - "title": "Spoiler alert: A critical guide" + "title": "Spoiler alert: a critical guide" }, { "abstractNote": "Allusions are often translated literally while their connotative and pragmatic meaning is largely ignored. This frequently leads to culture bumps, in other words, to puzzling or impenetrable wordings. Culture Bumps discusses this problem and how to deal with a culture-specific, source-text allusion in such a way that readers of the target text can understand the function and meaning of the allusive passage. The main focus is on translators and readers as active participants in the communicative process, and the book contains interviews with professional translators as well as empirical data on the responses of real readers. Examples provide teachers who want to take up the problem in translation classes with materials from contemporary English texts, both fiction and non-fiction, as well as a flowchart of translation strategies. The conclusion recommends that translators should take the needs of readers into account when choosing translation strategies for allusions, and that university-level language teaching and translator training should pay more attention to the biculturalisation of students", @@ -1430,7 +1430,7 @@ "itemID": 29, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091rudit1046984ar" + "ID: TN_erudit1046984ar" ], "publicationTitle": "M\u00e9moires du livre", "title": "Writing about writers", @@ -1491,7 +1491,7 @@ "itemID": 31, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA71628989420003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA71628989420003843" ], "publisher": "Jackson : University Press of Mississippi", "title": "Growing up Asian American in young adult fiction" @@ -1514,7 +1514,7 @@ "itemID": 32, "itemType": "book", "notes": [ - "ID: TN\u209aq\u2091bookcentralEBC3239850" + "ID: TN_pq_ebook_centralEBC3239850" ], "publisher": "New York: Fordham University Press", "title": "Realizing capital: Financial and psychic economies in victorian form", @@ -1543,7 +1543,7 @@ "itemID": 33, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest305040598" + "ID: TN_proquest305040598" ], "title": "Librarian-book reviewers and librarianship" }, @@ -1565,7 +1565,7 @@ "itemID": 34, "itemType": "book", "notes": [ - "Includes bibliographical references (pages 278-316) and index.; ID: 01UAALMA21630648630003843" + "Includes bibliographical references (pages 278-316) and index.; ID: 01UA_ALMA21630648630003843" ], "publisher": "New York Riverhead Books", "title": "Because internet : understanding the new rules of language" @@ -1627,13 +1627,13 @@ "lastName": "Steward" } ], - "date": "1994-4", + "date": "1994-04", "extra": [ "Citation Key: Steward1994" ], "itemID": 37, "itemType": "journalArticle", - "title": "The multiculturally responsive vs. the multiculturally reactive: A study of perceptions of white counselor trainees.", + "title": "The multiculturally responsive vs. the multiculturally reactive: a study of perceptions of white counselor trainees.", "url": "https://eric.ed.gov/?q=Multicultural+Literature+and+the+Politics+of+Reaction&ft=on&id=ED376381" }, { @@ -1713,7 +1713,7 @@ ], "itemID": 41, "itemType": "report", - "title": "BooKExpo america and bookcon to feature star-studded lineup of World?s best-selling Children?s and young adult authors - BookExpo 2020", + "title": "BooKExpo america and bookcon to feature star-studded lineup of world?s best-selling children?s and young adult authors - BookExpo 2020", "url": "https://www.bookexpoamerica.com/Media/Press-Releases/BooKExpo-America-And-Bookcon-To-Feature-Star-Studded-Lineup-Of-Worlds-Best-Selling-Childrens-And-Young-Adult-Authors/" }, { @@ -1775,7 +1775,7 @@ "itemID": 44, "itemType": "book", "notes": [ - "Includes bibliographical references and indexes.; ID: 01UAALMA51545015840003843" + "Includes bibliographical references and indexes.; ID: 01UA_ALMA51545015840003843" ], "publisher": "Amsterdam; Philadelphia : John Benjamins Pub. Co", "title": "Cohesive profiling meaning and interaction in personal weblogs" @@ -1856,7 +1856,7 @@ "itemID": 47, "itemType": "journalArticle", "publicationTitle": "Understanding and Dismantling Privilege", - "title": "Critical content analysis: A flexible method for thinking with theory", + "title": "Critical content analysis: a flexible method for thinking with theory", "url": "https://www.wpcjournal.com/article/view/18826", "volume": "8" }, @@ -1875,7 +1875,7 @@ "lastName": "Benfer" } ], - "date": "2014-9", + "date": "2014-09", "extra": [ "Citation Key: Gangi2014" ], @@ -1903,7 +1903,7 @@ "itemID": 49, "itemType": "book", "notes": [ - "ID: TN\u2092xford\u209bcholarshiposo/9780198702504.003.0007" + "ID: TN_oxford_scholarshiposo/9780198702504.003.0007" ], "publisher": "Oxford University Press", "title": "Playing nice, being mean, and the space in between: Book critics and the difficulties of writing bad reviews" @@ -1996,7 +1996,7 @@ "itemID": 52, "itemType": "journalArticle", "notes": [ - "ID: TNucl10074348" + "ID: TN_ucl10074348" ], "publicationTitle": "Participations", "title": "Is \"Everyone welcome\"?: Intersectionality, inclusion, and the extension of cultural hierarchies on Emma Watson's Feminist book club, \"Our shared shelf\"" @@ -2086,7 +2086,7 @@ "tag": "Spectatorship" } ], - "title": "\u2018What were We\u2014Idiots?\u2019: Re-evaluating female spectatorship and the new horror heroine with catherine hardwicke\u2019s twilight" + "title": "\u2018What were we\u2014idiots?\u2019: Re-evaluating female spectatorship and the new horror heroine with catherine hardwicke\u2019s twilight" }, { "abstractNote": "First published in 2004. Routledge is an imprint of Taylor & Francis, an informa company. George Yancy holds the McCracken Fellowship in Africaana Studies at New York University. He has edited three previous books, including African-American Philosophers: 17 Conversations (Routledge, 1998), Cornel West: A Critical Reader (2001), and The Philosophical i: Personal Reflections on Life in Philosophy (2002). \"Not only are these essays provocative, but they are illuminating and useful both to scholars and to neophytes. The anthology as a whole deserves an unqualified recommendation for all interested in this matter.\" -L. Sebastian Purcell, Boston College", @@ -2288,7 +2288,7 @@ "itemID": 57, "itemType": "book", "notes": [ - "ID: TN\u209aq\u2091bookcentralEBC5548389" + "ID: TN_pq_ebook_centralEBC5548389" ], "publisher": "Seattle: University of Washington Press", "title": "Racial ecologies" @@ -2354,7 +2354,7 @@ "itemID": 60, "itemType": "book", "notes": [ - "Includes bibliographical references (p. 189-225) and index.; ID: 01UAALMA51544855280003843" + "Includes bibliographical references (p. 189-225) and index.; ID: 01UA_ALMA51544855280003843" ], "publisher": "New Brunswick, N.J. : Rutgers University Press", "title": "Raising your kids right children's literature and american political conservatism" @@ -2407,7 +2407,7 @@ "itemID": 62, "itemType": "journalArticle", "publicationTitle": "Participations", - "title": "Reading harry potter: A personal and collective experience", + "title": "Reading Harry Potter: A personal and collective experience", "volume": "5" }, { @@ -2714,7 +2714,7 @@ "itemID": 69, "itemType": "book", "notes": [ - "Includes bibliographical references and index; ID: 01UAALMA21443524890003843" + "Includes bibliographical references and index; ID: 01UA_ALMA21443524890003843" ], "publisher": "Durham; London : Duke University Press", "title": "What is a world? : on postcolonial literature as world literature" @@ -2796,7 +2796,7 @@ "itemID": 72, "itemType": "book", "notes": [ - "Description based upon print version of record.; ID: 01UAALMA51660911640003843" + "Description based upon print version of record.; ID: 01UA_ALMA51660911640003843" ], "publisher": "Hoboken : Taylor and Francis", "title": "The children's book business: Lessons from the long eighteenth century" @@ -2984,7 +2984,7 @@ "itemID": 75, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51531436740003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51531436740003843" ], "publisher": "New Haven : Yale University Press", "title": "Materialism" @@ -3047,7 +3047,7 @@ "itemID": 77, "itemType": "book", "notes": [ - "Includes bibliographic references and index.; ID: 01UAALMA51544147360003843" + "Includes bibliographic references and index.; ID: 01UA_ALMA51544147360003843" ], "publisher": "Amsterdam : Rodopi", "title": "Authority matters : Rethinking the theory and practice of authorship" @@ -3069,7 +3069,7 @@ "itemID": 78, "itemType": "journalArticle", "publicationTitle": "The New York Review of Books", - "title": "The problem with \u2018Problematic\u2019", + "title": "The problem with \u2018problematic\u2019", "url": "https://www.nybooks.com/daily/2017/11/01/the-problem-with-problematic/" }, { @@ -3099,7 +3099,7 @@ "itemID": 79, "itemType": "book", "notes": [ - "Includes bibliographical references.; ID: 01UAALMA51544570200003843" + "Includes bibliographical references.; ID: 01UA_ALMA51544570200003843" ], "publisher": "Philadelphia : Temple University Press", "title": "Crossroads, directions and a new critical race theory" @@ -3187,7 +3187,7 @@ "itemID": 82, "itemType": "thesis", "notes": [ - "ID: TNcdi\u209aroquestjournals\u2081767220832" + "ID: TN_cdi_proquest_journals_1767220832" ], "publisher": "ProQuest Dissertations Publishing", "title": "Literacy and social justice: Understanding student perceptions and conceptions about literature" @@ -3217,7 +3217,7 @@ "itemID": 83, "itemType": "thesis", "notes": [ - "Source type: Dissertations &amp; Theses; Object type: Dissertation; Object type: Thesis; Copyright: Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.; DOCID: 4326335711; DocISBN: 978-0-438-02282-9; PCID: 112175342; PMID: 66569; DissertationNum: 10857168; PublisherXID: 10857168" + "Source type: Dissertations & Theses; Object type: Dissertation; Object type: Thesis; Copyright: Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.; DOCID: 4326335711; DocISBN: 978-0-438-02282-9; PCID: 112175342; PMID: 66569; DissertationNum: 10857168; PublisherXID: 10857168" ], "publisher": "University of Cincinnati", "title": "Whose books get published?: Individual agency and the business of children's publishing", @@ -3246,7 +3246,7 @@ "itemID": 84, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest304544124" + "ID: TN_proquest304544124" ], "title": "\"For all our children's fate\": Children's literature and contemporary culture" }, @@ -3269,7 +3269,7 @@ "itemID": 85, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest199358950" + "ID: TN_proquest199358950" ], "pages": "315-318", "publicationTitle": "The Horn Book Magazine", @@ -3293,7 +3293,7 @@ "itemID": 86, "itemType": "book", "notes": [ - "ID: TNjstorbooksj.ctt1pwt9w5" + "ID: TN_jstor_booksj.ctt1pwt9w5" ], "publisher": "New York: NYU Press", "title": "Algorithms of oppression - how search engines reinforce racism" @@ -3474,7 +3474,7 @@ "itemID": 90, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51544082500003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51544082500003843" ], "publisher": "Minneapolis, Minnesota : University of Minnesota Press", "title": "Red skin, white masks rejecting the colonial politics of recognition" @@ -3551,7 +3551,7 @@ "itemID": 92, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2097itrc20258576" + "ID: TN_gale_litrc20258576" ], "pages": "34", "publicationTitle": "The Horn Book Magazine", @@ -3777,7 +3777,7 @@ "tag": "Writing" } ], - "title": "The trouble with reader-response theory when reading multicultural literature: A critique of dana fox's and kathy's short's stories matter", + "title": "The trouble with reader-response theory when reading multicultural literature: a critique of dana fox's and kathy's short's stories matter", "url": "http://ezproxy.library.arizona.edu/login?url=https://www.proquest.com/scholarly-journals/trouble-with-reader-response-theory-when-reading/docview/1881110575/se-2?accountid=8360 https://arizona-primo.hosted.exlibrisgroup.com/openurl/01UA/01UA?&aufirst=Jacquelyn&aulast=Chappel&atitle=The+Trouble+with+Reader-response+Theory+when+Reading+Multicultural+Literature%3A+A+Critique+of+Dana+Fox%27s+and+Kathy%27s+Short%27s+Stories+Matter&title=The+Trouble+with+Reader-response+Theory+when+Reading+Multicultural+Literature%3A+A+Critique+of+Dana+Fox%27s+and+Kathy%27s+Short%27s+Stories+Matter&volume=31&date=2017&spage=81&issn=", "volume": "31" }, @@ -3847,7 +3847,7 @@ "itemID": 98, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51687551240003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51687551240003843" ], "publisher": "Nova Science Publishers, Inc", "title": "Activism, campaigning and political discourse on Twitter" @@ -4137,7 +4137,7 @@ "itemID": 106, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091rudit1043124ar" + "ID: TN_erudit1043124ar" ], "publicationTitle": "M\u00e9moires du livre", "title": "Reviewers as readers with power", @@ -4377,7 +4377,7 @@ "itemID": 114, "itemType": "book", "notes": [ - "Description based upon print version of record.; Description based on online resource; title from PDF title page (ebrary, viewed September 17, 2014).; ID: 01UAALMA51544193970003843" + "Description based upon print version of record.; Description based on online resource; title from PDF title page (ebrary, viewed September 17, 2014).; ID: 01UA_ALMA51544193970003843" ], "publisher": "Newcastle upon Tyne, England : Cambridge Scholars Publishing", "title": "The review as art and communication" @@ -4407,7 +4407,7 @@ "itemID": 115, "itemType": "book", "notes": [ - "ID: TN\u2091lsevier\u209bdoi\u20810\u2081016B978\u2080\u20808\u208097086\u2088\u20810424\u2086" + "ID: TN_elsevier_sdoi_10_1016_B978_0_08_097086_8_10424_6" ], "publisher": "Elsevier Ltd", "title": "Cultural mediators and gatekeepers" @@ -4507,11 +4507,11 @@ "itemID": 117, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fa560927070" + "ID: TN_gale_ofa560927070" ], "pages": "893-908", "publicationTitle": "International journal of communication", - "title": "Distributed creativity on the internet: A theoretical foundation for online creative participation", + "title": "Distributed creativity on the internet: a theoretical foundation for online creative participation", "volume": "12" }, { @@ -4532,7 +4532,7 @@ "itemID": 118, "itemType": "journalArticle", "publicationTitle": "Understanding and Dismantling Privilege", - "title": "\"But I Just Don't See It!\": Making white superiority visible", + "title": "\"But I just don't see it!\": Making white superiority visible", "url": "https://www.wpcjournal.com/article/view/10829", "volume": "3" }, @@ -4554,7 +4554,7 @@ "itemID": 119, "itemType": "book", "notes": [ - "ID: TN\u209aq\u2091bookcentralEBC4001362" + "ID: TN_pq_ebook_centralEBC4001362" ], "publisher": "London: Palgrave Macmillan Limited", "title": "Media, margins and civic agency" @@ -4609,7 +4609,7 @@ "itemID": 121, "itemType": "journalArticle", "publicationTitle": "Understanding and Dismantling Privilege", - "title": "Considerations for using critical race theory and critical content analysis: A research note", + "title": "Considerations for using critical race theory and critical content analysis: a research note", "url": "https://www.wpcjournal.com/article/view/18198", "volume": "8" }, @@ -4646,7 +4646,7 @@ "tag": "Latinx critical race theory" } ], - "title": "Beyond mirrors and windows: A critical content analysis of latinx children's books" + "title": "Beyond mirrors and windows: a critical content analysis of latinx children's books" }, { "abstractNote": "This essay describes a fan-based pedagogy and the learning outcomes it produced among college students. We focus on a fandom assignment given in an \u2018Introduction to American Popular Culture\u2019 course in an American Studies department at a large state university. The assignment required students to conduct a study of a fan community of their choice. Students developed and administered questionnaires, conducted interviews, and wrote essays describing and interpreting their findings. They were required to include a reflective paragraph discussing what they learned about fandom as a result of their research. Using content analysis, we coded 135 essays from four sections of the class to identify how students spoke about what they learned. Students reported acquiring a deeper understanding of the role of fandom in constructing identity and community. In addition, many questioned and changed their preconceptions about fans and fan behavior. A number also noted that they acquired an appreciation for the theories and methods of academic fan studies. A majority of students indicated that studying fandom resulted in greater self- awareness and awareness of others. We make the case that learning and applying the methods of fan studies prepares students to engage the world outside the classroom with a more critical and reflective lens.", @@ -4718,7 +4718,7 @@ "itemID": 125, "itemType": "thesis", "notes": [ - "ID: TN\u209aroquest61563298" + "ID: TN_proquest61563298" ], "publisher": "State University of New York at Binghamton", "title": "Bookmarking racism: Challenging white privilege through children's literature and participatory action research in a suburban school" @@ -4745,7 +4745,7 @@ "itemID": 126, "itemType": "thesis", "notes": [ - "ID: TN\u209aroquest305112645" + "ID: TN_proquest305112645" ], "publisher": "ProQuest Dissertations Publishing", "title": "\u201cGentle doses of racism\u201d: Whiteness and children's literature" @@ -4775,7 +4775,7 @@ "itemID": 127, "itemType": "thesis", "notes": [ - "Source type: Dissertations &amp; Theses; Object type: Dissertation; Object type: Thesis; Copyright: Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.; DOCID: 4327328151; DocISBN: 978-0-438-88867-8; PCID: 112458482; PMID: 66569; DissertationNum: 10976903; PublisherXID: 10976903" + "Source type: Dissertations & Theses; Object type: Dissertation; Object type: Thesis; Copyright: Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.; DOCID: 4327328151; DocISBN: 978-0-438-88867-8; PCID: 112458482; PMID: 66569; DissertationNum: 10976903; PublisherXID: 10976903" ], "publisher": "The University of Alabama", "title": "Determining how preservice teachers select multicultural children's literature", @@ -4827,7 +4827,7 @@ "itemID": 129, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1399381926" + "ID: TN_proquest1399381926" ], "title": "Work in progress : children's literature and childist criticism : towards an institutional re-consideration" }, @@ -5029,7 +5029,7 @@ "itemID": 134, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51626148750003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51626148750003843" ], "publisher": "Fordham University Press", "title": "Under representation : the racial regime of aesthetics" @@ -5051,7 +5051,7 @@ "itemID": 135, "itemType": "conferencePaper", "series": "ALISE 2019", - "title": "We need them but what are they?: A conceptual analysis of diverse books" + "title": "We need them but what are they?: a conceptual analysis of diverse books" }, { "abstractNote": "Using unobtrusive observations in comics stores and comics conventions as well as in-depth interviews with comics aficionados and store owners from five different countries this work examines the interpersonal communication patterns of comics aficionados, focusing on situations in which they meet and discuss their mutual interest. A repeating sequence of events had been identified and was subsequently dubbed as a \u2018recommendation ceremony\u2019. The analysis suggests that the \u2018recommendations ceremony\u2019 helps the people to fulfill their material and psychological needs as well as social functions that are crucial to the creation of the comics readers\u2019 sense of community.", @@ -5389,7 +5389,7 @@ ], "itemID": 146, "itemType": "webpage", - "title": "How barnes & noble\u2019s \u2018Diverse editions\u2019 of classic novels widely miss the mark", + "title": "How barnes & noble\u2019s \u2018diverse editions\u2019 of classic novels widely miss the mark", "url": "https://medium.com/@RodFaulkner/how-barnes-nobles-diverse-editions-of-classic-novels-widely-miss-the-mark-3f3d1bf8cbb3" }, { @@ -5583,7 +5583,7 @@ "lastName": "Amsden" } ], - "date": "2015-2", + "date": "2015-02", "extra": [ "Citation Key: Amsden2015" ], @@ -5654,7 +5654,7 @@ "itemID": 155, "itemType": "book", "notes": [ - "Includes bibliography and index.; ID: 01UAALMA21468543070003843" + "Includes bibliography and index.; ID: 01UA_ALMA21468543070003843" ], "publisher": "Basingstoke : Macmillan", "title": "Structuralism and the logic of dissent : Barthes, derrida, foucault, lacan" @@ -5677,7 +5677,7 @@ "itemID": 156, "itemType": "book", "notes": [ - "Translation of Le plaisir du texte.; ID: 01UAALMA21399200520003843" + "Translation of Le plaisir du texte.; ID: 01UA_ALMA21399200520003843" ], "publisher": "New York : Hill and Wang", "title": "The pleasure of the text" @@ -5729,7 +5729,7 @@ "lastName": "Bertin" } ], - "date": "2016-2", + "date": "2016-02", "extra": [ "Citation Key: Bertin2016" ], @@ -5836,7 +5836,7 @@ "itemID": 162, "itemType": "book", "notes": [ - "&quot;Bibliography of ethical criticism&quot;: p. 505-534.; Includes bibliographies and indexes.; ID: 01UAALMA21405686220003843" + ""Bibliography of ethical criticism": p. 505-534.; Includes bibliographies and indexes.; ID: 01UA_ALMA21405686220003843" ], "publisher": "Berkeley : University of California Press", "title": "The company we keep : an ethics of fiction" @@ -5949,7 +5949,7 @@ "itemID": 165, "itemType": "webpage", "publicationTitle": "The Open Book Blog", - "title": "How labeling books as \u201cDiverse\u201d reinforces white supremacy", + "title": "How labeling books as \u201cdiverse\u201d reinforces white supremacy", "url": "https://blog.leeandlow.com/2020/08/26/how-labeling-books-as-diverse-reinforces-white-supremacy/" }, { @@ -6121,7 +6121,7 @@ "itemID": 171, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51599529990003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51599529990003843" ], "publisher": "Princeton University Press", "title": "Under the cover : the creation, production, and reception of a novel" @@ -6142,7 +6142,7 @@ "itemID": 172, "itemType": "book", "notes": [ - "Includes bibliographical references (pages 253-260) and index.; ID: 01UAALMA51613900150003843" + "Includes bibliographical references (pages 253-260) and index.; ID: 01UA_ALMA51613900150003843" ], "publisher": "Routledge", "title": "Entranced by story : brain, tale and teller, from infancy to old age" @@ -6204,7 +6204,7 @@ "itemID": 174, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51612588030003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51612588030003843" ], "publisher": "Oakland, California : University of California Press", "title": "Seeing race again : countering colorblindness across the disciplines" @@ -6255,7 +6255,7 @@ "itemID": 176, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51534026010003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51534026010003843" ], "publisher": "New York : New York University Press", "title": "Critical race theory : an introduction" @@ -6277,7 +6277,7 @@ "itemID": 177, "itemType": "book", "notes": [ - "ID: TN\u209aroquest839302410" + "ID: TN_proquest839302410" ], "title": "Cultural boundaries and structural change - the extension of the high culture model to theater, opera, and the dance, 1900-1940" }, @@ -6300,7 +6300,7 @@ "itemType": "journalArticle", "pages": "219", "publicationTitle": "Childhood Education", - "title": "Evaluating children's books portraying native american and asian cultures", + "title": "Evaluating children's books portraying Native American and Asian cultures", "volume": "68" }, { @@ -6357,7 +6357,7 @@ "itemID": 181, "itemType": "webpage", "publicationTitle": "Global Comment", - "title": "We still need a female hero: Revisiting \"In Praise of Joanne Rowling's Hermione Granger series\"", + "title": "We still need a female hero: Revisiting \"in praise of joanne rowling's hermione granger series\"", "url": "https://globalcomment.com/we-still-need-a-female-hero-revisiting-in-praise-of-joanne-rowlings-hermione-granger-series/" }, { @@ -6401,7 +6401,7 @@ "itemID": 183, "itemType": "journalArticle", "publicationTitle": "Research on Diversity in Youth Literature", - "title": "Unsettling representations of identities: A critical review of diverse youth literature", + "title": "Unsettling representations of identities: a critical review of diverse youth literature", "url": "https://sophia.stkate.edu/rdyl/vol1/iss1/7", "volume": "1" }, @@ -6529,7 +6529,7 @@ "itemID": 187, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA21418982950003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA21418982950003843" ], "publisher": "Cambridge, Mass. : Harvard University Press", "title": "Is there a text in this class? : The authority of interpretive communities" @@ -6551,7 +6551,7 @@ "itemID": 188, "itemType": "book", "notes": [ - "Includes index.; ID: 01UAALMA21487439460003843" + "Includes index.; ID: 01UA_ALMA21487439460003843" ], "publisher": "Oxford : Clarendon Press; Oxford; New York : Oxford University Press", "title": "Professional correctness : literary studies and political change" @@ -6572,7 +6572,7 @@ ], "itemID": 189, "itemType": "webpage", - "title": "Survey of public participation in the arts 1982-2012 combined file [United states]" + "title": "Survey of public participation in the arts 1982-2012 combined file [united states]" }, { "citationKey": "Fox2003a", @@ -6611,7 +6611,7 @@ "itemID": 191, "itemType": "book", "notes": [ - "ID: 01UAALMA21443739850003843" + "ID: 01UA_ALMA21443739850003843" ], "publisher": "Bloomington, Indiana University Press", "title": "The educated imagination" @@ -6632,7 +6632,7 @@ "itemID": 192, "itemType": "thesis", "notes": [ - "Thesis\u2013Teachers College, Columbia University.; Bibliography: leaves 124-127.; ID: 01UAALMA21464657350003843" + "Thesis\u2013Teachers College, Columbia University.; Bibliography: leaves 124-127.; ID: 01UA_ALMA21464657350003843" ], "publisher": "Thesis\u2013Teachers College, Columbia University", "title": "An analytical study of the extent and nature of the reviewing of juvenile books in eight journals and newspapers : with special regard to their usefulness as selection aids for school libraries" @@ -6654,7 +6654,7 @@ "itemID": 193, "itemType": "book", "notes": [ - "Includes index.; Description based on online resource; title from PDF title page (ebrary, viewed June 30, 2014).; ID: 01UAALMA51689438440003843" + "Includes index.; Description based on online resource; title from PDF title page (ebrary, viewed June 30, 2014).; ID: 01UA_ALMA51689438440003843" ], "publisher": "New York, New York : Oxford University Press", "title": "The signifying monkey : a theory of African-American literary criticism" @@ -6687,7 +6687,7 @@ "itemID": 194, "itemType": "book", "notes": [ - "ID: TN\u209bpringer\u209b978-1-137-52346-4\u208378673" + "ID: TN_springer_s978-1-137-52346-4_378673" ], "publisher": "London: Palgrave Macmillan UK", "title": "New directions in popular fiction: Genre, distribution, reproduction" @@ -6709,7 +6709,7 @@ "itemID": 195, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51527060200003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51527060200003843" ], "publisher": "Palgrave Macmillan", "title": "Popular media cultures : fans, audiences and paratexts" @@ -6754,7 +6754,7 @@ "itemID": 197, "itemType": "book", "notes": [ - "Bibliography: p. 221-236.; ID: 01UAALMA21473665260003843" + "Bibliography: p. 221-236.; ID: 01UA_ALMA21473665260003843" ], "publisher": "Tallahassee : Florida State University Press", "title": "The politics of literary theory : an introduction to Marxist criticism" @@ -6768,7 +6768,7 @@ "lastName": "G\u00f3mez" } ], - "date": "2016-2", + "date": "2016-02", "itemID": 198, "itemType": "webpage", "publicationTitle": "School Library Journal", @@ -6832,7 +6832,7 @@ "itemID": 200, "itemType": "webpage", "publicationTitle": "Slate Magazine", - "title": "Kosoko jackson\u2019s a place for wolves book scandal suggests YA twitter is getting uglier.", + "title": "Kosoko Jackson\u2019s A Place for Wolves book scandal suggests YA Twitter is getting uglier.", "url": "https://slate.com/culture/2019/03/ya-book-scandal-kosoko-jackson-a-place-for-wolves-explained.html" }, { @@ -6862,7 +6862,7 @@ "itemID": 201, "itemType": "book", "notes": [ - "Includes bibliographical references (p. 223]-256) and index; ID: 01UAALMA21436653860003843" + "Includes bibliographical references (p. 223]-256) and index; ID: 01UA_ALMA21436653860003843" ], "publisher": "Stanford, Calif. : Stanford Business Books", "title": "The culture and commerce of publishing in the 21st century" @@ -6914,7 +6914,7 @@ "itemID": 203, "itemType": "book", "notes": [ - "ID: TN\u209bpringer\u209b978-1-137-53924-3\u208376154" + "ID: TN_springer_s978-1-137-53924-3_376154" ], "publisher": "London: Palgrave Macmillan UK", "title": "Constructing the adolescent reader in contemporary young adult fiction" @@ -6934,8 +6934,8 @@ }, { "creatorType": "author", - "firstName": "Mass. ). Center for the Study of Children's Literature Simmons College", - "lastName": "(Boston" + "firstName": "Mass. ). Center", + "lastName": "for the Study of Children's Literature Simmons College (Boston" } ], "date": "1987", @@ -6969,7 +6969,7 @@ "itemID": 205, "itemType": "book", "notes": [ - "Includes bibliographical references (p. ) and index; ID: 01UAALMA21446774300003843" + "Includes bibliographical references (p. ) and index; ID: 01UA_ALMA21446774300003843" ], "publisher": "Columbia : University of South Carolina Press", "title": "Vernacular voices : the rhetoric of publics and public spheres" @@ -7066,7 +7066,7 @@ "itemID": 208, "itemType": "book", "notes": [ - "Includes bibliographical references (p. 203]-223) and index.; ID: 01UAALMA21414708010003843" + "Includes bibliographical references (p. 203]-223) and index.; ID: 01UA_ALMA21414708010003843" ], "publisher": "London; New York : Routledge", "title": "Raymond Williams : literature, Marxism and cultural materialism" @@ -7087,7 +7087,7 @@ "itemID": 209, "itemType": "book", "notes": [ - "Includes bibliographical references (pages 166-198) and index.; ID: 01UAALMA71628890610003843" + "Includes bibliographical references (pages 166-198) and index.; ID: 01UA_ALMA71628890610003843" ], "publisher": "Cambridge; Malden, MA : Polity Press", "title": "Social media and everyday politics" @@ -7131,7 +7131,7 @@ "itemID": 211, "itemType": "book", "notes": [ - "Includes bibliographical references (p. 205-237) and index.; ID: 01UAALMA21397847860003843" + "Includes bibliographical references (p. 205-237) and index.; ID: 01UA_ALMA21397847860003843" ], "publisher": "Madison, Wis. : University of Wisconsin Press", "title": "Crossing borders : reception theory, poststructuralism, deconstruction" @@ -7171,7 +7171,7 @@ "itemID": 213, "itemType": "book", "notes": [ - "Bibliographic Level Mode of Issuance: Monograph; ID: 01UAALMA51562243040003843" + "Bibliographic Level Mode of Issuance: Monograph; ID: 01UA_ALMA51562243040003843" ], "publisher": "Place of publication not identified Routledge", "title": "Literature for children : contemporary criticism" @@ -7211,7 +7211,7 @@ "itemID": 215, "itemType": "book", "publisher": "Wilfrid Laurier University Press", - "title": "Why indigenous literatures matter", + "title": "Why Indigenous literatures matter", "url": "https://www.worldcat.org/title/why-indigenous-literatures-matter/oclc/1030372038&referer=brief_results" }, { @@ -7235,7 +7235,7 @@ "itemID": 216, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51531160860003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51531160860003843" ], "publisher": "Routledge", "title": "Prizing children's literature : the cultural politics of children's book awards" @@ -7257,7 +7257,7 @@ "itemID": 217, "itemType": "book", "notes": [ - "Includes bibliographical references (p. 201-207) and index; ID: 01UAALMA21432556890003843" + "Includes bibliographical references (p. 201-207) and index; ID: 01UA_ALMA21432556890003843" ], "publisher": "Athens, Ga; London : University of Georgia Press", "title": "What is a book?" @@ -7278,10 +7278,10 @@ "itemID": 218, "itemType": "book", "notes": [ - "Includes bibliographical references (pages 161-165) and index.; ID: 01UAALMA51531597190003843" + "Includes bibliographical references (pages 161-165) and index.; ID: 01UA_ALMA51531597190003843" ], "publisher": "Rowman & Littlefield Publishers", - "title": "Book banning in 21st-century America" + "title": "Book banning in 21st-century america" }, { "citationKey": "Krippendorff2013", @@ -7328,7 +7328,7 @@ "itemID": 220, "itemType": "book", "notes": [ - "ID: 01UAALMA21657422020003843" + "ID: 01UA_ALMA21657422020003843" ], "publisher": "Tucson, Arizona : University of Arizona Press", "title": "How Indians think: colonial indigenous intellectuals and the question of critical race... theory" @@ -7342,7 +7342,7 @@ "lastName": "Larrick" } ], - "date": "1965-9", + "date": "1965-09", "extra": [ "Citation Key: Larrick1965" ], @@ -7379,7 +7379,7 @@ "itemID": 222, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51535167080003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51535167080003843" ], "publisher": "Routledge", "title": "Teaching children's literature: it's critical!" @@ -7432,7 +7432,7 @@ "itemID": 224, "itemType": "book", "notes": [ - "Includes bibliographical references and indexes; ID: 01UAALMA21448218810003843" + "Includes bibliographical references and indexes; ID: 01UA_ALMA21448218810003843" ], "publisher": "Mahwah, N.J. : Lawrence Erlbaum Associates", "title": "Reframing sociocultural research on literacy : identity, agency, and power" @@ -7500,7 +7500,7 @@ "itemID": 227, "itemType": "book", "notes": [ - "Includes bibliographical references and indexes.; Includes bibliographical references and indexes.; ID: 01UAALMA21425312300003843" + "Includes bibliographical references and indexes.; Includes bibliographical references and indexes.; ID: 01UA_ALMA21425312300003843" ], "publisher": "Norwood, N.J. : Ablex Pub. Corp", "title": "Reader stance and literary understanding : exploring the theories, research, and practice" @@ -7533,7 +7533,7 @@ "itemID": 228, "itemType": "book", "notes": [ - "ID: TN\u209bpringer\u209b978-1-137-51446-2\u208375745" + "ID: TN_springer_s978-1-137-51446-2_375745" ], "publisher": "London: Palgrave Macmillan UK", "title": "Publishers, readers, and digital engagement" @@ -7641,7 +7641,7 @@ "itemType": "journalArticle", "pages": "201-212", "publicationTitle": "Children's Literature in Education", - "title": "\u201cI may be crackin\u2019, but um fackin\u2019\u201d: Racial humor in the watsons go to Birmingham\u20141963", + "title": "\u201cI may be crackin\u2019, but um fackin\u2019\u201d: Racial humor in the watsons go to birmingham\u20141963", "volume": "39" }, { @@ -7737,7 +7737,7 @@ "itemID": 236, "itemType": "book", "notes": [ - "Unlimited simultaneous users.; Description based on online resource; title from digital title page (viewed on September 14, 2015).; ID: 01UAALMA51528892310003843" + "Unlimited simultaneous users.; Description based on online resource; title from digital title page (viewed on September 14, 2015).; ID: 01UA_ALMA51528892310003843" ], "publisher": "Routledge", "title": "Freaks, geeks, and cool kids : teenagers in an era of consumerism, standardized tests, and social media" @@ -7774,8 +7774,8 @@ }, { "creatorType": "editor", - "firstName": "American Council of Learned", - "lastName": "Societies" + "firstName": "American Council", + "lastName": "of Learned Societies" } ], "date": "2005", @@ -7808,7 +7808,7 @@ "itemID": 239, "itemType": "book", "notes": [ - "Includes bibliographical references.; ID: 01UAALMA21473519800003843" + "Includes bibliographical references.; ID: 01UA_ALMA21473519800003843" ], "publisher": "Cambridge, Mass. : Harvard University Press", "title": "Playing in the dark : whiteness and the literary imagination" @@ -7916,7 +7916,7 @@ "lastName": "Myers" } ], - "date": "2014-3", + "date": "2014-03", "extra": [ "Citation Key: Myers2014" ], @@ -7936,7 +7936,7 @@ "lastName": "Myers" } ], - "date": "2014-3", + "date": "2014-03", "extra": [ "Citation Key: Myers2014" ], @@ -7964,7 +7964,7 @@ "itemID": 245, "itemType": "book", "notes": [ - "Includes bibliographical references (p. 153-159).; ID: 01UAALMA21435708190003843" + "Includes bibliographical references (p. 153-159).; ID: 01UA_ALMA21435708190003843" ], "publisher": "Stoke on Trent, Staffordshire, England : Trentham Books", "title": "Through whose eyes? : exploring racism : reader, text and context" @@ -8054,7 +8054,7 @@ "itemID": 248, "itemType": "book", "notes": [ - "ID: TN\u209bpringer\u209beries978-3-319-42893-2" + "ID: TN_springer_series978-3-319-42893-2" ], "publisher": "Springer International Publishing, Cham", "title": "Racism in contemporary african american children\u2019s and young adult literature" @@ -8083,7 +8083,7 @@ "itemID": 249, "itemType": "journalArticle", "notes": [ - "ID: TNcdijstor\u209arimary\u20841962273" + "ID: TN_cdi_jstor_primary_41962273" ], "pages": "242-245", "title": "Professional book reviews: Challenges and solutions: Children's literature in today's K\u201312 classrooms", @@ -8100,7 +8100,7 @@ "itemID": 250, "itemType": "webpage", "publicationTitle": "Goodreads", - "title": "Petra-X (somewhere in the caribbean, the united kingdom)\u2019s review of the secret life of groceries: The dark miracle of the american supermarket | goodreads", + "title": "Petra-x (somewhere in the caribbean, the united kingdom)\u2019s review of the secret life of groceries: The dark miracle of the american supermarket | goodreads", "url": "https://www.goodreads.com/review/show/3562346570?book_show_action=true&from_review_page=1" }, { @@ -8124,7 +8124,7 @@ "itemID": 251, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA71628896100003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA71628896100003843" ], "publisher": "London; New York : Routledge, Taylor & Francis Group", "title": "Media activism in the digital age" @@ -8146,7 +8146,7 @@ "itemID": 252, "itemType": "book", "notes": [ - "Includes bibliographical references (p. 180-182) and indexes.; ID: 01UAALMA21481249440003843" + "Includes bibliographical references (p. 180-182) and indexes.; ID: 01UA_ALMA21481249440003843" ], "publisher": "New York; London : Teachers College Press", "title": "Children's literature and the politics of equality" @@ -8231,7 +8231,7 @@ "itemID": 255, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51535611040003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51535611040003843" ], "publisher": "Bristol University Press", "title": "New media and public activism : neoliberalism, the state and radical protest in the public sphere" @@ -8284,7 +8284,7 @@ "itemID": 257, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA21480090040003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA21480090040003843" ], "publisher": "Bingley, UK : Emerald Publishing", "title": "Social movements and media" @@ -8306,7 +8306,7 @@ "itemID": 258, "itemType": "book", "notes": [ - "Bibliography: p. 155-171.; ID: 01UAALMA21414384950003843" + "Bibliography: p. 155-171.; ID: 01UA_ALMA21414384950003843" ], "publisher": "London : Macmillan", "title": "The case of Peter Pan, or, The impossibility of children's fiction" @@ -8362,7 +8362,7 @@ "itemID": 260, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51527034730003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51527034730003843" ], "publisher": "Lanham : Rowman and Littlefield", "title": "Scales on censorship : real life lessons from School Library Journal" @@ -8383,7 +8383,7 @@ "itemID": 261, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA21424224870003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA21424224870003843" ], "publisher": "Chicago : ALA Editions, an imprint of the American Library Association", "title": "Books under fire : a hit list of banned and challenged children's books" @@ -8422,7 +8422,7 @@ "itemID": 263, "itemType": "magazineArticle", "publicationTitle": "Indiewire", - "title": "Catherine hardwicke wanted \u2018Twilight\u2019 to have diverse cast | IndieWire", + "title": "Catherine hardwicke wanted \u2018twilight\u2019 to have diverse cast | IndieWire", "url": "https://www.indiewire.com/2018/10/catherine-hardwicke-twilight-diverse-cast-stephenie-meyer-refused-1202009330/" }, { @@ -8443,7 +8443,7 @@ "itemID": 264, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA51545103730003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA51545103730003843" ], "publisher": "New York : Columbia University Press", "title": "The late age of print: everyday book culture from consumerism to control" @@ -8476,7 +8476,7 @@ "itemID": 265, "itemType": "book", "notes": [ - "Includes bibliographical references.; ID: 01UAALMA51694714500003843" + "Includes bibliographical references.; ID: 01UA_ALMA51694714500003843" ], "publisher": "New York : Lothrop, Lee & Shepard Books", "title": "Celebrating children's books : essays on children's literature in honor of Zena Sutherland" @@ -8524,7 +8524,7 @@ "itemID": 267, "itemType": "journalArticle", "notes": [ - "ID: TNcdijstor\u209arimary\u20841962274" + "ID: TN_cdi_jstor_primary_41962274" ], "pages": "246-254", "title": "Children's literature reviews: Challenges to children's literature: Deskilling, censoring, and obsolescence", @@ -8552,7 +8552,7 @@ "itemID": 268, "itemType": "book", "notes": [ - "Includes bibliographical references and index.; ID: 01UAALMA21421025800003843" + "Includes bibliographical references and index.; ID: 01UA_ALMA21421025800003843" ], "publisher": "Oxford : Clarendon Press; Oxford; New York : Oxford University Press", "title": "Grub Street and the ivory tower : literary journalism and literary scholarship from Fielding to the Internet" @@ -8566,7 +8566,7 @@ "lastName": "Turner-Neal" } ], - "date": "2015-8", + "date": "2015-08", "itemID": 269, "itemType": "magazineArticle", "publicationTitle": "Country Roads Magazine", @@ -8701,7 +8701,7 @@ "itemID": 273, "itemType": "book", "notes": [ - "&quot;First published 1939.&quot;; ID: dedupmrg294186296" + ""First published 1939."; ID: dedupmrg294186296" ], "publisher": "London, The Hogarth Press", "title": "Reviewing" @@ -8723,7 +8723,7 @@ "itemID": 274, "itemType": "book", "notes": [ - "&quot;First published 1939.&quot;; ID: dedupmrg294186296" + ""First published 1939."; ID: dedupmrg294186296" ], "publisher": "London, The Hogarth Press", "title": "Reviewing" @@ -8745,27 +8745,27 @@ "itemID": 275, "itemType": "book", "notes": [ - "Includes bibliographical references (p. 191-203) and index; ID: 01UAALMA21444778790003843" + "Includes bibliographical references (p. 191-203) and index; ID: 01UA_ALMA21444778790003843" ], "publisher": "Routledge", "title": "Sticks and stones : the troublesome success of children's literature from Slovenly Peter to Harry Potter" }, { - "citationKey": "zotero-715", + "citationKey": "zotero-2097", "itemID": 276, "itemType": "film", "title": "Canceling | ContraPoints - YouTube", "url": "https://www.youtube.com/watch?v=OjMPJVmXxV8" }, { - "citationKey": "zotero-888", + "citationKey": "zotero-2270", "itemID": 277, "itemType": "webpage", "title": "Where is the diversity in publishing? The 2019 diversity baseline survey results | lee & low blog", "url": "https://blog.leeandlow.com/2020/01/28/2019diversitybaselinesurvey/" }, { - "citationKey": "zotero-917", + "citationKey": "zotero-2299", "itemID": 278, "itemType": "webpage", "title": "Dr. Jennifer on Twitter: \"6 months after leaving the TT job hunt, I still find myself thinking about the research studies/articles I wrote that never got in a journal. Can you still publish as a non-academic? Is anyone out there an \"independent scholar?\"\" / Twitter", @@ -8792,7 +8792,7 @@ "itemID": 279, "itemType": "journalArticle", "notes": [ - "ID: TNwj10.1002/asi.20399" + "ID: TN_wj10.1002/asi.20399" ], "pages": "1194-1207", "publicationTitle": "Journal of the American Society for Information Science and Technology", @@ -8833,7 +8833,7 @@ { "DOI": "10.1002/asi.23805", "ISSN": "2330-1635", - "abstractNote": "Although peer-review and citation counts are commonly used to help assess the scholarly impact of published research, informal reader feedback might also be exploited to help assess the wider impacts of books, such as their educational or cultural value. The social website Goodreads seems to be a reasonable source for this purpose because it includes a large number of book reviews and ratings by many users inside and outside of academia. To check this, Goodreads book metrics were compared with different book-based impact indicators for 15,928 academic books across broad fields. Goodreads engagements were numerous enough in the arts (85% of books had at least one), humanities (80%), and social sciences (67%) for use as a source of impact evidence. Low and moderate correlations between Goodreads book metrics and scholarly or non-scholarly indicators suggest that reader feedback in Goodreads reflects the many purposes of books rather than a single type of impact. Although Goodreads book metrics...", + "abstractNote": "Although peer-review and citation counts are commonly used to help assess the scholarly impact of published research, informal reader feedback might also be exploited to help assess the wider impacts of books, such as their educational or cultural value. The social website Goodreads seems to be a reasonable source for this purpose because it includes a large number of book reviews and ratings by many users inside and outside of academia. To check this, Goodreads book metrics were compared with different book-based impact indicators for 15,928 academic books across broad fields. Goodreads engagements were numerous enough in the arts (85", "citationKey": "Kousha2017", "creators": [ { @@ -8861,7 +8861,7 @@ "itemID": 281, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1919396787" + "ID: TN_proquest1919396787" ], "pages": "2004-2016", "publicationTitle": "Journal of the Association for Information Science and Technology", @@ -8880,7 +8880,7 @@ "lastName": "Mora" } ], - "date": "2014-9", + "date": "2014-09", "extra": [ "Citation Key: Mora2014" ], @@ -8914,11 +8914,11 @@ "itemID": 283, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1933246555" + "ID: TN_proquest1933246555" ], "pages": "221-224", "publicationTitle": "Journal of Adolescent & Adult Literacy", - "title": "Worlds of inclusion: Challenging reading, writing, and publishing science fiction\u2013 and Fantasy\u2010Based young adult literature", + "title": "Worlds of inclusion: Challenging reading, writing, and publishing science fiction\u2013 and fantasy\u2010based young adult literature", "volume": "61" }, { @@ -8941,7 +8941,7 @@ "itemID": 284, "itemType": "journalArticle", "notes": [ - "ID: TNwj10.1002/jaal.755" + "ID: TN_wj10.1002/jaal.755" ], "pages": "7-12", "publicationTitle": "Journal of Adolescent & Adult Literacy", @@ -9104,7 +9104,7 @@ "itemType": "journalArticle", "pages": "197-216", "publicationTitle": "Children's Literature in Education: An International Quarterly", - "title": "'not censorship but selection': Censorship and/as prizing", + "title": "'Not censorship but selection': Censorship and/as prizing", "url": "http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&xri:pqil:res_ver=0.2&res_id=xri:ilcs-us&rft_id=xri:ilcs:rec:abell:R04216711", "volume": "40" }, @@ -9125,7 +9125,7 @@ "lastName": "Browne" } ], - "date": "2012-3", + "date": "2012-03", "extra": [ "Citation Key: Brooks2012", "Publisher: Springer Netherlands", @@ -9255,11 +9255,11 @@ "itemID": 289, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fa276354552" + "ID: TN_gale_ofa276354552" ], "pages": "365", "publicationTitle": "Early Childhood Education Journal", - "title": "\"I Don't See Color\": Challenging assumptions about discussing race with young children", + "title": "\"I don't see color\": Challenging assumptions about discussing race with young children", "volume": "39" }, { @@ -9284,7 +9284,7 @@ "itemID": 290, "itemType": "journalArticle", "notes": [ - "10.1017/s0140525x06289118\u00a1br/\u00bf\u00a1br/\u00bf10.1080/13613320308200\u00a1br/\u00bf\u00a1br/\u00bf10.1080/08878739909555215\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1289308\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0042085900345003\u00a1br/\u00bf\u00a1br/\u00bf10.1023/a:1022813119743\u00a1br/\u00bf\u00a1br/\u00bf1573-1960\u00a1br/\u00bf\u00a1br/\u00bf10.1080/00405849209543550\u00a1br/\u00bf\u00a1br/\u00bf10.1080/00405849609543706\u00a1br/\u00bf\u00a1br/\u00bf10.17763/haer.59.3.058342114k266250\u00a1br/\u00bf\u00a1br/\u00bf10.17763/haer.72.1.c11617526l7k46v6\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0013124507301577\u00a1br/\u00bf\u00a1br/\u00bf10.1177/002205748516700204\u00a1br/\u00bf\u00a1br/\u00bf10.17763/haer.63.3.h423221226v18648\u00a1br/\u00bf\u00a1br/\u00bf10.1207/s15327930pje7201\u2084\u00a1br/\u00bf\u00a1br/\u00bf10.3102/0013189x032003016\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1469-5812.2006.00175.x\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0022487100051003007\u00a1br/\u00bf\u00a1br/\u00bf10.1080/0022027041000229396\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203420270\u00a1br/\u00bf\u00a1br/\u00bf10.2307/2295605" + "10.1017/s0140525x06289118\u00a1br/\u00bf\u00a1br/\u00bf10.1080/13613320308200\u00a1br/\u00bf\u00a1br/\u00bf10.1080/08878739909555215\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1289308\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0042085900345003\u00a1br/\u00bf\u00a1br/\u00bf10.1023/a:1022813119743\u00a1br/\u00bf\u00a1br/\u00bf1573-1960\u00a1br/\u00bf\u00a1br/\u00bf10.1080/00405849209543550\u00a1br/\u00bf\u00a1br/\u00bf10.1080/00405849609543706\u00a1br/\u00bf\u00a1br/\u00bf10.17763/haer.59.3.058342114k266250\u00a1br/\u00bf\u00a1br/\u00bf10.17763/haer.72.1.c11617526l7k46v6\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0013124507301577\u00a1br/\u00bf\u00a1br/\u00bf10.1177/002205748516700204\u00a1br/\u00bf\u00a1br/\u00bf10.17763/haer.63.3.h423221226v18648\u00a1br/\u00bf\u00a1br/\u00bf10.1207/s15327930pje7201_4\u00a1br/\u00bf\u00a1br/\u00bf10.3102/0013189x032003016\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1469-5812.2006.00175.x\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0022487100051003007\u00a1br/\u00bf\u00a1br/\u00bf10.1080/0022027041000229396\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203420270\u00a1br/\u00bf\u00a1br/\u00bf10.2307/2295605" ], "pages": "371-385", "publicationTitle": "The Urban review", @@ -9353,7 +9353,7 @@ "tag": "Teachers" } ], - "title": "The oppressor within: A counterstory of race, repression, and teacher reflection", + "title": "The oppressor within: a counterstory of race, repression, and teacher reflection", "volume": "40" }, { @@ -9376,7 +9376,7 @@ "itemID": 291, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bpringerjour10.1007/s12109-006-0012-6" + "ID: TN_springer_jour10.1007/s12109-006-0012-6" ], "pages": "3-26", "publicationTitle": "Publishing Research Quarterly", @@ -9395,7 +9395,7 @@ "lastName": "Johnson" } ], - "date": "2017-6", + "date": "2017-06", "extra": [ "Citation Key: Johnson2017", "Publisher: Springer Nature B.V", @@ -9422,7 +9422,7 @@ "lastName": "Laing" } ], - "date": "2017-9", + "date": "2017-09", "extra": [ "Citation Key: Laing2017", "Publisher: Springer US", @@ -9473,7 +9473,7 @@ "itemID": 294, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bpringerjour10.1007/s12109-018-9573-4" + "ID: TN_springer_jour10.1007/s12109-018-9573-4" ], "pages": "207-217", "publicationTitle": "Publishing Research Quarterly", @@ -9501,7 +9501,7 @@ "itemID": 295, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest2280931610" + "ID: TN_proquest2280931610" ], "pages": "704-709", "publicationTitle": "Publishing Research Quarterly", @@ -9640,7 +9640,7 @@ "itemID": 297, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091lsevier\u209bdoi\u20810\u2081016jchb\u2082007\u20808\u208004" + "ID: TN_elsevier_sdoi_10_1016_j_chb_2007_08_004" ], "pages": "1977-1992", "publicationTitle": "Computers in Human Behavior", @@ -9677,7 +9677,7 @@ "itemID": 298, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fa484925407" + "ID: TN_gale_ofa484925407" ], "pages": "82", "publicationTitle": "International Journal of Child-Computer Interaction", @@ -9719,7 +9719,7 @@ "itemID": 299, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091lsevier\u209bdoi\u20810\u2081016jjbusres\u2082013\u20803\u208033" + "ID: TN_elsevier_sdoi_10_1016_j_jbusres_2013_03_033" ], "pages": "464-470", "publicationTitle": "Journal of Business Research", @@ -9729,7 +9729,7 @@ { "DOI": "10.1016/j.jesp.2019.04.008", "ISSN": "0022-1031", - "abstractNote": "In this research we examine how normative expressions of prejudice shape university communities. Across four studies, we examine the prevalence of a former university mascot depicting harmful stereotypes about Native Americans and how exposure to that mascot influences people's attitudes and behaviors. In Study 1, images of the mascot persist on \u00bf10% of university apparel worn by students, in 50% of campus spaces, and in 5% of images searched online. Surveying students on this campus, we find that students with lower (higher) reported explicit prejudice also tended to have lower (higher) belonging at the university (Study 2). In two final experimental studies (N\u202f=\u202f683), when compared to stereotype free university advertisements exposure to the stereotypic mascot reduced donations to the university by 5.5%, and in particular, among people low versus high in explicit prejudice (Studies 3 and 4). Overall, these findings suggest that institutional norms play an important role in expressions of prejudice and experiences of belonging. \u2022A mascot depicting Native American stereotypes is prevalent at one university campus.\u2022Exposure to the stereotypic mascot reduced university donations by 5.5%.\u2022People low in explicit prejudice report lower belonging when exposed to the mascot.", + "abstractNote": "In this research we examine how normative expressions of prejudice shape university communities. Across four studies, we examine the prevalence of a former university mascot depicting harmful stereotypes about Native Americans and how exposure to that mascot influences people's attitudes and behaviors. In Study 1, images of the mascot persist on \u00bf10\u2022A mascot depicting Native American stereotypes is prevalent at one university campus.\u2022Exposure to the stereotypic mascot reduced university donations by 5.5", "citationKey": "Kraus2019", "creators": [ { @@ -9825,7 +9825,7 @@ "itemID": 301, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091lsevier\u209bdoi\u20810\u2081016j\u209aoetic\u2082008\u20802\u208004" + "ID: TN_elsevier_sdoi_10_1016_j_poetic_2008_02_004" ], "pages": "148-165", "publicationTitle": "Poetics", @@ -9852,7 +9852,7 @@ "itemID": 302, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091lsevier\u209bdoi\u20810\u2081016j\u209aoetic\u2082010\u20811\u208003" + "ID: TN_elsevier_sdoi_10_1016_j_poetic_2010_11_003" ], "pages": "64-84", "publicationTitle": "Poetics", @@ -9888,7 +9888,7 @@ "itemID": 303, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091lsevier\u209bdoi\u20810\u2081016j\u209aoetic\u2082015\u20809\u208001" + "ID: TN_elsevier_sdoi_10_1016_j_poetic_2015_09_001" ], "pages": "25-37", "publicationTitle": "Poetics", @@ -9957,7 +9957,7 @@ "lastName": "Fox" } ], - "date": "2003-2", + "date": "2003-02", "extra": [ "Citation Key: Fox2003", "Publisher: Elsevier Ltd" @@ -9990,7 +9990,7 @@ "itemID": 306, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091lsevier\u209bdoi\u20810\u2081016S0304\u208422X\u20803\u20800037\u2088" + "ID: TN_elsevier_sdoi_10_1016_S0304_422X_03_00037_8" ], "pages": "259-281", "publicationTitle": "Poetics", @@ -10042,7 +10042,7 @@ "itemID": 308, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091lsevier\u209bdoi\u20810\u2081016S0304\u208422X\u20897\u20800018\u2081" + "ID: TN_elsevier_sdoi_10_1016_S0304_422X_97_00018_1" ], "pages": "265-280", "publicationTitle": "Poetics", @@ -10149,7 +10149,7 @@ "itemID": 310, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bpringerjour1010081830778" + "ID: TN_springer_jour1010081830778" ], "pages": "387-409", "publicationTitle": "Continental Philosophy Review", @@ -10217,7 +10217,7 @@ "itemID": 312, "itemType": "journalArticle", "notes": [ - "10.1207/s15430421tip4203\u2085\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1469-5812.2004.00058.x\u00a1br/\u00bf\u00a1br/\u00bf10.1007/s11256-005-0009-z\u00a1br/\u00bf\u00a1br/\u00bf10.1177/107780040200800106\u00a1br/\u00bf\u00a1br/\u00bf10.1086/443894\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1741-5446.2001.00467.x\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203880371\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0022487101052002002\u00a1br/\u00bf\u00a1br/\u00bf10.2307/797566\u00a1br/\u00bf\u00a1br/\u00bf10.1177/002248718904000202\u00a1br/\u00bf\u00a1br/\u00bf10.1080/713845282\u00a1br/\u00bf\u00a1br/\u00bf1532-6993\u00a1br/\u00bf\u00a1br/\u00bf10.1080/1361332052000340971\u00a1br/\u00bf\u00a1br/\u00bf10.1080/01596300701801278\u00a1br/\u00bf\u00a1br/\u00bf10.17763/haer.79.2.nu3436017730384w\u00a1br/\u00bf\u00a1br/\u00bf10.1080/13613324.2012.674027\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10665684.2011.539472\u00a1br/\u00bf\u00a1br/\u00bf10.1002/j.1556-6678.2008.tb00517.x\u00a1br/\u00bf\u00a1br/\u00bf10.1080/095183998236863\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1228886\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0042085999335004\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1532708608321504\u00a1br/\u00bf\u00a1br/\u00bf10.1080/13613320902995491\u00a1br/\u00bf\u00a1br/\u00bf10.2307/800672\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10665680490422089\u00a1br/\u00bf\u00a1br/\u00bf10.1207/s15327892mcp0504\u2082\u00a1br/\u00bf\u00a1br/\u00bf10.1080/0951839032000033509\u00a1br/\u00bf\u00a1br/\u00bf10.1080/00131857.2014.989952\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1468796806068323\u00a1br/\u00bf\u00a1br/\u00bf10.3102/0013189x021002020\u00a1br/\u00bf\u00a1br/\u00bf10.3102/00028312043004701\u00a1br/\u00bf\u00a1br/\u00bf10.1080/13613320600807550\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0022487195046004005" + "10.1207/s15430421tip4203_5\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1469-5812.2004.00058.x\u00a1br/\u00bf\u00a1br/\u00bf10.1007/s11256-005-0009-z\u00a1br/\u00bf\u00a1br/\u00bf10.1177/107780040200800106\u00a1br/\u00bf\u00a1br/\u00bf10.1086/443894\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1741-5446.2001.00467.x\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203880371\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0022487101052002002\u00a1br/\u00bf\u00a1br/\u00bf10.2307/797566\u00a1br/\u00bf\u00a1br/\u00bf10.1177/002248718904000202\u00a1br/\u00bf\u00a1br/\u00bf10.1080/713845282\u00a1br/\u00bf\u00a1br/\u00bf1532-6993\u00a1br/\u00bf\u00a1br/\u00bf10.1080/1361332052000340971\u00a1br/\u00bf\u00a1br/\u00bf10.1080/01596300701801278\u00a1br/\u00bf\u00a1br/\u00bf10.17763/haer.79.2.nu3436017730384w\u00a1br/\u00bf\u00a1br/\u00bf10.1080/13613324.2012.674027\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10665684.2011.539472\u00a1br/\u00bf\u00a1br/\u00bf10.1002/j.1556-6678.2008.tb00517.x\u00a1br/\u00bf\u00a1br/\u00bf10.1080/095183998236863\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1228886\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0042085999335004\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1532708608321504\u00a1br/\u00bf\u00a1br/\u00bf10.1080/13613320902995491\u00a1br/\u00bf\u00a1br/\u00bf10.2307/800672\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10665680490422089\u00a1br/\u00bf\u00a1br/\u00bf10.1207/s15327892mcp0504_2\u00a1br/\u00bf\u00a1br/\u00bf10.1080/0951839032000033509\u00a1br/\u00bf\u00a1br/\u00bf10.1080/00131857.2014.989952\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1468796806068323\u00a1br/\u00bf\u00a1br/\u00bf10.3102/0013189x021002020\u00a1br/\u00bf\u00a1br/\u00bf10.3102/00028312043004701\u00a1br/\u00bf\u00a1br/\u00bf10.1080/13613320600807550\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0022487195046004005" ], "pages": "1-19", "publicationTitle": "Educational studies (Ames)", @@ -10652,7 +10652,7 @@ "lastName": "Wharton" } ], - "date": "2018-9", + "date": "2018-09", "extra": [ "Citation Key: Phruksachart2018", "Edition: Rev. ed", @@ -10663,7 +10663,7 @@ "itemID": 316, "itemType": "journalArticle", "notes": [ - "\u00a1b\u00bfFrom Duplicate 1 (\u00a1i\u00bfFrom cover to cover : evaluating and reviewing children's books\u00a1/i\u00bf - Horning, Kathleen T)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfIncludes bibliographical references (pages 181-212) and index; ID: 01UAALMA21452464220003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 2 (\u00a1i\u00bfThe review as art and communication\u00a1/i\u00bf - Skidmore, Joey)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfDescription based upon print version of record.; Description based on online resource; title from PDF title page (ebrary, viewed September 17, 2014).; ID: 01UAALMA51544193970003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 5 (\u00a1i\u00bfEditorial: Critical literacy revisited: Writing as critique\u00a1/i\u00bf - Janks, Hilary; Vasquez, Vivian)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfSource type: Scholarly Journals; Object type: Editorial; Object type: Commentary; Copyright: Copyright University of Waikato, Department of English May 2011; DOCID: 2602001211; PCID: 67792272; PMID: 155333; ProvJournalCode: NGTC; PublisherXID: ICANGTCNGTCv10n1\u20820110501541\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 8 (\u00a1i\u00bfThe culture and commerce of publishing in the 21st century\u00a1/i\u00bf - Greco, Albert N)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfIncludes bibliographical references (p. 223]-256) and index; ID: 01UAALMA21436653860003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 9 (\u00a1i\u00bfQuality and influence in literary work: evaluating the \u2018educated imagination\u2019\u00a1/i\u00bf - Zuccala, Alesia)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u2092xford10.1093/reseval/rvs017\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 10 (\u00a1i\u00bfProfiling review writers in the library periodical literature\u00a1/i\u00bf - Buttlar, Lois J)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TNgale\u2092fa9375756\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 11 (\u00a1i\u00bfHerd behavior in purchasing books online\u00a1/i\u00bf - Chen, Yi-Fen)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u2091lsevier\u209bdoi\u20810\u2081016jchb\u2082007\u20808\u208004\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 12 (\u00a1i\u00bfReading and writing book reviews across the disciplines\u00a1/i\u00bf - Hartley, James)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TNwj10.1002/asi.20399\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 13 (\u00a1i\u00bfMotives for and consequences of reading internet book reviews\u00a1/i\u00bf - Kuei Huang, Yun; Yang, Wen I)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u2091merald\u209b10.1108/02640470810851770\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 14 (\u00a1i\u00bfNegro Character As Seen by White Authors\u00a1/i\u00bf - Brown, Sterling A)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bf25\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 15 (\u00a1i\u00bfBlurred Of Mouth\u00a1/i\u00bf - Chia, Jessica)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u209aroquest2280498596\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 17 (\u00a1i\u00bfGoodreads reviews to assess the wider impacts of books\u00a1/i\u00bf - Kousha, Kayvan; Thelwall, Mike; Abdoli, Mahshid)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u209aroquest1919396787\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 18 (\u00a1i\u00bfFinding Good Reads on Goodreads: Readers Take RA into Their Own Hands\u00a1/i\u00bf - Naik, Yesha)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u209aroquest1021835587\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 19 (\u00a1i\u00bfReading Online: Updating the State of the Discipline\u00a1/i\u00bf - Murray, Simone)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u209aroquest2159297257\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 20 (\u00a1i\u00bfThe company we keep : an ethics of fiction\u00a1/i\u00bf - Booth, Wayne C)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bf&quot;Bibliography of ethical criticism&quot;: p. 505-534.; Includes bibliographies and indexes.; ID: 01UAALMA21405686220003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 23 (\u00a1i\u00bfPublishers, Readers, and Digital Engagement\u00a1/i\u00bf - Martens, Marianne)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u209bpringer\u209b978-1-137-51446-2\u208375745\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 24 (\u00a1i\u00bfSocial responsibility in librarianship : essays on equality\u00a1/i\u00bf - MacCann, Donnarae)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfIncludes bibliographical references.; ID: dedupmrg80437634\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 26 (\u00a1i\u00bfEssaying the Review\u00a1/i\u00bf - Paul, Lissa)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u209aroquest1312023762\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 27 (\u00a1i\u00bfGrowing Number of Bloggers See Their Work as Journalism\u00a1/i\u00bf - Ji, Hong; Sheehy, Michael)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u209aroquest820481867\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 28 (\u00a1i\u00bfThe pleasure of the text\u00a1/i\u00bf - Barthes, Roland)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfTranslation of Le plaisir du texte.; ID: 01UAALMA21399200520003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 29 (\u00a1i\u00bfA Reviewer's Story\u00a1/i\u00bf - Hearne, Betsy)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TNucpj10.1086/601047\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 30 (\u00a1i\u00bfUnderstanding Cultural Omnivorousness: Or, the Myth of the Cultural Omnivore\u00a1/i\u00bf - Warde, Alan; Wright, David; Gayo-Cal, Modesto)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN\u209bage\u209b10\u2081177\u2081749975507078185\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 31 (\u00a1i\u00bfCultural capital and the literary field\u00a1/i\u00bf - Wright, David)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TNinformaworld\u209b10\u2081080\u20809548960600712934" + "\u00a1b\u00bfFrom Duplicate 1 (\u00a1i\u00bfFrom cover to cover : evaluating and reviewing children's books\u00a1/i\u00bf - Horning, Kathleen T)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfIncludes bibliographical references (pages 181-212) and index; ID: 01UA_ALMA21452464220003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 2 (\u00a1i\u00bfThe review as art and communication\u00a1/i\u00bf - Skidmore, Joey)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfDescription based upon print version of record.; Description based on online resource; title from PDF title page (ebrary, viewed September 17, 2014).; ID: 01UA_ALMA51544193970003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 5 (\u00a1i\u00bfEditorial: Critical literacy revisited: Writing as critique\u00a1/i\u00bf - Janks, Hilary; Vasquez, Vivian)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfSource type: Scholarly Journals; Object type: Editorial; Object type: Commentary; Copyright: Copyright University of Waikato, Department of English May 2011; DOCID: 2602001211; PCID: 67792272; PMID: 155333; ProvJournalCode: NGTC; PublisherXID: ICANGTC_NGTC_v10n1_20110501541\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 8 (\u00a1i\u00bfThe culture and commerce of publishing in the 21st century\u00a1/i\u00bf - Greco, Albert N)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfIncludes bibliographical references (p. 223]-256) and index; ID: 01UA_ALMA21436653860003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 9 (\u00a1i\u00bfQuality and influence in literary work: evaluating the \u2018educated imagination\u2019\u00a1/i\u00bf - Zuccala, Alesia)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_oxford10.1093/reseval/rvs017\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 10 (\u00a1i\u00bfProfiling review writers in the library periodical literature\u00a1/i\u00bf - Buttlar, Lois J)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_gale_ofa9375756\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 11 (\u00a1i\u00bfHerd behavior in purchasing books online\u00a1/i\u00bf - Chen, Yi-Fen)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_elsevier_sdoi_10_1016_j_chb_2007_08_004\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 12 (\u00a1i\u00bfReading and writing book reviews across the disciplines\u00a1/i\u00bf - Hartley, James)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_wj10.1002/asi.20399\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 13 (\u00a1i\u00bfMotives for and consequences of reading internet book reviews\u00a1/i\u00bf - Kuei Huang, Yun; Yang, Wen I)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_emerald_s10.1108/02640470810851770\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 14 (\u00a1i\u00bfNegro Character As Seen by White Authors\u00a1/i\u00bf - Brown, Sterling A)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bf25\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 15 (\u00a1i\u00bfBlurred Of Mouth\u00a1/i\u00bf - Chia, Jessica)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_proquest2280498596\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 17 (\u00a1i\u00bfGoodreads reviews to assess the wider impacts of books\u00a1/i\u00bf - Kousha, Kayvan; Thelwall, Mike; Abdoli, Mahshid)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_proquest1919396787\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 18 (\u00a1i\u00bfFinding Good Reads on Goodreads: Readers Take RA into Their Own Hands\u00a1/i\u00bf - Naik, Yesha)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_proquest1021835587\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 19 (\u00a1i\u00bfReading Online: Updating the State of the Discipline\u00a1/i\u00bf - Murray, Simone)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_proquest2159297257\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 20 (\u00a1i\u00bfThe company we keep : an ethics of fiction\u00a1/i\u00bf - Booth, Wayne C)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bf"Bibliography of ethical criticism": p. 505-534.; Includes bibliographies and indexes.; ID: 01UA_ALMA21405686220003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 23 (\u00a1i\u00bfPublishers, Readers, and Digital Engagement\u00a1/i\u00bf - Martens, Marianne)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_springer_s978-1-137-51446-2_375745\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 24 (\u00a1i\u00bfSocial responsibility in librarianship : essays on equality\u00a1/i\u00bf - MacCann, Donnarae)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfIncludes bibliographical references.; ID: dedupmrg80437634\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 26 (\u00a1i\u00bfEssaying the Review\u00a1/i\u00bf - Paul, Lissa)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_proquest1312023762\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 27 (\u00a1i\u00bfGrowing Number of Bloggers See Their Work as Journalism\u00a1/i\u00bf - Ji, Hong; Sheehy, Michael)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_proquest820481867\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 28 (\u00a1i\u00bfThe pleasure of the text\u00a1/i\u00bf - Barthes, Roland)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfTranslation of Le plaisir du texte.; ID: 01UA_ALMA21399200520003843\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 29 (\u00a1i\u00bfA Reviewer's Story\u00a1/i\u00bf - Hearne, Betsy)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_ucpj10.1086/601047\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 30 (\u00a1i\u00bfUnderstanding Cultural Omnivorousness: Or, the Myth of the Cultural Omnivore\u00a1/i\u00bf - Warde, Alan; Wright, David; Gayo-Cal, Modesto)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_sage_s10_1177_1749975507078185\u00a1br/\u00bf\u00a1br/\u00bf\u00a1b\u00bfFrom Duplicate 31 (\u00a1i\u00bfCultural capital and the literary field\u00a1/i\u00bf - Wright, David)\u00a1br/\u00bf\u00a1/b\u00bf\u00a1br/\u00bfID: TN_informaworld_s10_1080_09548960600712934" ], "pages": "221", "publicationTitle": "Callaloo", @@ -10778,7 +10778,7 @@ "itemID": 319, "itemType": "journalArticle", "notes": [ - "ID: TNinformaworld\u209b10\u2081080\u2080740770X\u2082019\u2081671106" + "ID: TN_informaworld_s10_1080_0740770X_2019_1671106" ], "pages": "276-295", "publicationTitle": "Women & Performance: a journal of feminist theory", @@ -10810,11 +10810,11 @@ "itemID": 320, "itemType": "journalArticle", "notes": [ - "ID: TNinformaworld\u209b10\u2081080\u20808900520701315269" + "ID: TN_informaworld_s10_1080_08900520701315269" ], "pages": "37-48", "publicationTitle": "Journal of Mass Media Ethics", - "title": "\"If I Break a Rule, What Do I Do, Fire Myself?\" ethics codes of independent blogs", + "title": "\"If I break a rule, what do I do, fire myself?\" ethics codes of independent blogs", "volume": "22" }, { @@ -10895,7 +10895,7 @@ "itemID": 322, "itemType": "journalArticle", "notes": [ - "ID: TNinformaworld\u209b10\u2081080\u20809502386\u2082017\u2081374423" + "ID: TN_informaworld_s10_1080_09502386_2017_1374423" ], "pages": "975-996", "publicationTitle": "Cultural Studies", @@ -10922,7 +10922,7 @@ "itemID": 323, "itemType": "journalArticle", "notes": [ - "ID: TNinformaworld\u209b10\u2081080\u20809502386\u2082018\u2081549265" + "ID: TN_informaworld_s10_1080_09502386_2018_1549265" ], "pages": "143-166", "publicationTitle": "Cultural Studies", @@ -10949,7 +10949,7 @@ "itemID": 324, "itemType": "journalArticle", "notes": [ - "ID: TNinformaworld\u209b10\u2081080\u20809548960600712934" + "ID: TN_informaworld_s10_1080_09548960600712934" ], "pages": "123-139", "publicationTitle": "Cultural Trends", @@ -11305,7 +11305,7 @@ "tag": "United States" } ], - "title": "Teaching intolerance: Anti-indian imagery, racial politics, and (Anti)Racist pedagogy", + "title": "Teaching intolerance: Anti-indian imagery, racial politics, and (anti)racist pedagogy", "volume": "30" }, { @@ -11469,7 +11469,7 @@ { "DOI": "10.1080/13614541.2015.1078618", "ISSN": "1361-4541", - "abstractNote": "Presents an investigation of contemporary American authors who write for youth. The methodology derives from Laurenson\u2019s study of the sociology of British authors. The study is based on the biographical and sociological data of the randomly selected 220 of 786 (27%) authors identified as first authors from American Library Association selected lists. Whites, women, and writers from the Northeast United States and West Coast dominate the field. Authors tend to be educated at high prestige colleges and universities and follow careers as writers, teachers, and fields in communications. Male and minority writers have increased in recent decades along with newer forms of artistic production.", + "abstractNote": "Presents an investigation of contemporary American authors who write for youth. The methodology derives from Laurenson\u2019s study of the sociology of British authors. The study is based on the biographical and sociological data of the randomly selected 220 of 786 (27", "citationKey": "Immroth2015", "creators": [ { @@ -11548,7 +11548,7 @@ "itemID": 334, "itemType": "journalArticle", "notes": [ - "ID: TNinformaworld\u209b10\u2081080\u2081369118X\u2082017\u2081366540" + "ID: TN_informaworld_s10_1080_1369118X_2017_1366540" ], "pages": "232-249", "publicationTitle": "Information, Communication & Society", @@ -11631,7 +11631,7 @@ "itemID": 336, "itemType": "journalArticle", "notes": [ - "ID: TNinformaworld\u209b10\u2081080\u20815358593\u2082016\u2081183871" + "ID: TN_informaworld_s10_1080_15358593_2016_1183871" ], "pages": "4-24", "publicationTitle": "Review of Communication", @@ -11873,7 +11873,7 @@ "itemID": 342, "itemType": "journalArticle", "notes": [ - "ID: TNucpj10.1086/601047" + "ID: TN_ucpj10.1086/601047" ], "pages": "80-87", "publicationTitle": "The Library Quarterly", @@ -11892,7 +11892,7 @@ "lastName": "Carbado" } ], - "date": "2013-6", + "date": "2013-06", "extra": [ "Citation Key: Carbado2013", "Publisher: University of Chicago Press" @@ -11987,7 +11987,7 @@ "itemID": 344, "itemType": "journalArticle", "notes": [ - "ID: TN\u2092xford10.1093/elt/cct025" + "ID: TN_oxford10.1093/elt/cct025" ], "pages": "374-377", "publicationTitle": "Elt Journal", @@ -12014,7 +12014,7 @@ "itemID": 345, "itemType": "journalArticle", "notes": [ - "ID: TN\u2092xford10.1093/esr/jcp039" + "ID: TN_oxford10.1093/esr/jcp039" ], "pages": "623-637", "publicationTitle": "European Sociological Review", @@ -12101,7 +12101,7 @@ "itemID": 347, "itemType": "journalArticle", "notes": [ - "ID: TN\u2092xford10.1093/reseval/rvs017" + "ID: TN_oxford10.1093/reseval/rvs017" ], "pages": "229-241", "publicationTitle": "Research Evaluation", @@ -12130,7 +12130,7 @@ "itemID": 348, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091merald\u209b10.1108/02640470810851770" + "ID: TN_emerald_s10.1108/02640470810851770" ], "pages": "97-110", "publicationTitle": "The Electronic Library", @@ -12157,7 +12157,7 @@ "itemID": 349, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091merald\u209b10.1108/JD-07-2018-0104" + "ID: TN_emerald_s10.1108/JD-07-2018-0104" ], "pages": "612-626", "publicationTitle": "Journal of Documentation", @@ -12207,7 +12207,7 @@ "itemID": 351, "itemType": "journalArticle", "notes": [ - "ID: TNinformaworld\u209b10\u2081111curi\u20812037" + "ID: TN_informaworld_s10_1111_curi_12037" ], "pages": "68-89", "publicationTitle": "Curriculum Inquiry", @@ -12259,7 +12259,7 @@ "itemID": 353, "itemType": "journalArticle", "notes": [ - "10.2307/2167981\u00a1br/\u00bf\u00a1br/\u00bf10.1177/019685998601000201\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203292990\u00a1br/\u00bf\u00a1br/\u00bf10.1017/cbo9780511812507\u00a1br/\u00bf\u00a1br/\u00bf10.1146/annurev.soc.28.110601.141107\u00a1br/\u00bf\u00a1br/\u00bf10.2307/3088900\u00a1br/\u00bf\u00a1br/\u00bf10.2307/2657316\u00a1br/\u00bf\u00a1br/\u00bf10.1086/230580\u00a1br/\u00bf\u00a1br/\u00bf10.1177/089124397011001004\u00a1br/\u00bf\u00a1br/\u00bf10.1023/a:1007068714468\u00a1br/\u00bf\u00a1br/\u00bf10.1016/s1537-4661(01)80009-x\u00a1br/\u00bf\u00a1br/\u00bf10.1525/sp.2002.49.4.521\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822383659\u00a1br/\u00bf\u00a1br/\u00bf10.1177/026327696013002010\u00a1br/\u00bf\u00a1br/\u00bf1467-9558\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0730888495022003002\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1341787\u00a1br/\u00bf\u00a1br/\u00bf10.1093/sf/72.2.529\u00a1br/\u00bf\u00a1br/\u00bf10.1007/978-1-349-11902-8\u2082\u00a1br/\u00bf\u00a1br/\u00bf10.1086/229967\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822381044\u00a1br/\u00bf\u00a1br/\u00bf10.1086/494918\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1228940\u00a1br/\u00bf\u00a1br/\u00bf10.1007/978-1-4899-0818-6\u2085\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203973431\u00a1br/\u00bf\u00a1br/\u00bf10.2307/2657409\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822381044-006\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203303979\u00a1br/\u00bf\u00a1br/\u00bf10.2747/0272-3638.14.2.194\u00a1br/\u00bf\u00a1br/\u00bf10.1017/cbo9780511625480\u00a1br/\u00bf\u00a1br/\u00bf10.1111/0735-2751.00074\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0957926500011001003\u00a1br/\u00bf\u00a1br/\u00bf10.1177/089124101030001002\u00a1br/\u00bf\u00a1br/\u00bf10.1016/s0895-9935(03)12005-0\u00a1br/\u00bf\u00a1br/\u00bf10.1007/bf02193666\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0891243287001002002\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1388607\u00a1br/\u00bf\u00a1br/\u00bf10.1353/dem.2002.0037\u00a1br/\u00bf\u00a1br/\u00bf10.3102/00028312038004781" + "10.2307/2167981\u00a1br/\u00bf\u00a1br/\u00bf10.1177/019685998601000201\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203292990\u00a1br/\u00bf\u00a1br/\u00bf10.1017/cbo9780511812507\u00a1br/\u00bf\u00a1br/\u00bf10.1146/annurev.soc.28.110601.141107\u00a1br/\u00bf\u00a1br/\u00bf10.2307/3088900\u00a1br/\u00bf\u00a1br/\u00bf10.2307/2657316\u00a1br/\u00bf\u00a1br/\u00bf10.1086/230580\u00a1br/\u00bf\u00a1br/\u00bf10.1177/089124397011001004\u00a1br/\u00bf\u00a1br/\u00bf10.1023/a:1007068714468\u00a1br/\u00bf\u00a1br/\u00bf10.1016/s1537-4661(01)80009-x\u00a1br/\u00bf\u00a1br/\u00bf10.1525/sp.2002.49.4.521\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822383659\u00a1br/\u00bf\u00a1br/\u00bf10.1177/026327696013002010\u00a1br/\u00bf\u00a1br/\u00bf1467-9558\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0730888495022003002\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1341787\u00a1br/\u00bf\u00a1br/\u00bf10.1093/sf/72.2.529\u00a1br/\u00bf\u00a1br/\u00bf10.1007/978-1-349-11902-8_2\u00a1br/\u00bf\u00a1br/\u00bf10.1086/229967\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822381044\u00a1br/\u00bf\u00a1br/\u00bf10.1086/494918\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1228940\u00a1br/\u00bf\u00a1br/\u00bf10.1007/978-1-4899-0818-6_5\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203973431\u00a1br/\u00bf\u00a1br/\u00bf10.2307/2657409\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822381044-006\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203303979\u00a1br/\u00bf\u00a1br/\u00bf10.2747/0272-3638.14.2.194\u00a1br/\u00bf\u00a1br/\u00bf10.1017/cbo9780511625480\u00a1br/\u00bf\u00a1br/\u00bf10.1111/0735-2751.00074\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0957926500011001003\u00a1br/\u00bf\u00a1br/\u00bf10.1177/089124101030001002\u00a1br/\u00bf\u00a1br/\u00bf10.1016/s0895-9935(03)12005-0\u00a1br/\u00bf\u00a1br/\u00bf10.1007/bf02193666\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0891243287001002002\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1388607\u00a1br/\u00bf\u00a1br/\u00bf10.1353/dem.2002.0037\u00a1br/\u00bf\u00a1br/\u00bf10.3102/00028312038004781" ], "pages": "623-646", "publicationTitle": "Sociological theory", @@ -12295,7 +12295,7 @@ "tag": "Whiteness studies" } ], - "title": "\u201cWhat Group?\u201d Studying Whites and Whiteness in the Era of \u201cColor-Blindness\u201d", + "title": "\u201cWhat group?\u201d studying whites and whiteness in the era of \u201ccolor-blindness\u201d", "volume": "22" }, { @@ -12361,7 +12361,7 @@ "tag": "Whiteness studies" } ], - "title": "Critical whiteness theories and the evangelical \u201cRace problem\u201d: Extending emerson and smith's divided by faith", + "title": "Critical whiteness theories and the evangelical \u201crace problem\u201d: Extending emerson and smith's divided by faith", "volume": "47" }, { @@ -12480,7 +12480,7 @@ "itemID": 356, "itemType": "journalArticle", "notes": [ - "0264-3758; ID: TNcdigaleinfotracacademiconefileA499880004" + "0264-3758; ID: TN_cdi_gale_infotracacademiconefile_A499880004" ], "pages": "557-572", "publicationTitle": "Journal of applied philosophy", @@ -12509,7 +12509,7 @@ "itemID": 357, "itemType": "journalArticle", "notes": [ - "0264-3758; ID: TNcdigaleinfotracacademiconefileA499880004" + "0264-3758; ID: TN_cdi_gale_infotracacademiconefile_A499880004" ], "pages": "557-572", "publicationTitle": "Journal of applied philosophy", @@ -12538,7 +12538,7 @@ "itemID": 358, "itemType": "journalArticle", "notes": [ - "0264-3758; ID: TNcdigaleinfotracacademiconefileA499880004" + "0264-3758; ID: TN_cdi_gale_infotracacademiconefile_A499880004" ], "pages": "557-572", "publicationTitle": "Journal of applied philosophy", @@ -12567,11 +12567,11 @@ "itemID": 359, "itemType": "journalArticle", "notes": [ - "ID: TNcdigaleinfotracacademiconefileA585000083" + "ID: TN_cdi_gale_infotracacademiconefile_A585000083" ], "pages": "257-267", "publicationTitle": "Journal of applied philosophy", - "title": "Resolving the tensions between white people's active investment in racial inequality and white ignorance: A response to marzia milazzo", + "title": "Resolving the tensions between white people's active investment in racial inequality and white ignorance: a response to marzia milazzo", "volume": "36" }, { @@ -12612,7 +12612,7 @@ "itemID": 360, "itemType": "journalArticle", "notes": [ - "Related Persons: Forte, Andrea; Prilla, Michael; Vivacqua, Adriana; M\u00fcller, Claudia; Robert, Jr, Lionel; ID: TN\u2090cm3154512" + "Related Persons: Forte, Andrea; Prilla, Michael; Vivacqua, Adriana; M\u00fcller, Claudia; Robert, Jr, Lionel; ID: TN_acm3154512" ], "pages": "117-121", "title": "Understanding book popularity on goodreads" @@ -12643,7 +12643,7 @@ "itemID": 361, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2080001699312456858" + "ID: TN_sage_s10_1177_0001699312456858" ], "pages": "351-365", "publicationTitle": "Acta Sociologica", @@ -12845,7 +12845,7 @@ "tag": "urban education" } ], - "title": "Reading, sharing, and experiencing Literary/Lived narratives about contemporary racism" + "title": "Reading, sharing, and experiencing literary/lived narratives about contemporary racism" }, { "DOI": "10.1177/0263276407075956", @@ -12868,7 +12868,7 @@ "itemID": 364, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2080263276407075956" + "ID: TN_sage_s10_1177_0263276407075956" ], "pages": "55-78", "publicationTitle": "Theory, Culture & Society", @@ -12901,7 +12901,7 @@ "itemID": 365, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest820481867" + "ID: TN_proquest820481867" ], "pages": "38-47", "publicationTitle": "Newspaper Research Journal", @@ -12995,7 +12995,7 @@ { "DOI": "10.1177/1077800418801375", "ISSN": "1077-8004", - "abstractNote": "Book reviews written by readers and published on digital sites such as Goodreads are a new force in contemporary book culture. This article uses feminist standpoint theory to investigate the language used in Goodreads reviews to better understand how these reviewers articulate intimate reading experiences. A total of 692 reviews of seven bestselling fiction and nonfiction books are analyzed by two methods. The first, thematic content analysis, involves close reading of the reviews. The second, sentiment analysis, is an automated \u201cdistant reading\u201d process. These methods prompt us, as researchers, to reflect on the way they foster or inhibit a sense of proximity to readers, even as they reveal predominant features of Goodreads reviews. Together, the methods reveal that 86.1% of Goodreads reviews describe a reading experience, and 68% specifically mention an emotional reaction to the book, with the emotion most intense in reviews of fiction. Reviews also create social connections...", + "abstractNote": "Book reviews written by readers and published on digital sites such as Goodreads are a new force in contemporary book culture. This article uses feminist standpoint theory to investigate the language used in Goodreads reviews to better understand how these reviewers articulate intimate reading experiences. A total of 692 reviews of seven bestselling fiction and nonfiction books are analyzed by two methods. The first, thematic content analysis, involves close reading of the reviews. The second, sentiment analysis, is an automated \u201cdistant reading\u201d process. These methods prompt us, as researchers, to reflect on the way they foster or inhibit a sense of proximity to readers, even as they reveal predominant features of Goodreads reviews. Together, the methods reveal that 86.1", "citationKey": "Driscoll2019", "creators": [ { @@ -13028,7 +13028,7 @@ "itemID": 368, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081077800418801375" + "ID: TN_sage_s10_1177_1077800418801375" ], "pages": "248-259", "publicationTitle": "Qualitative Inquiry", @@ -13179,7 +13179,7 @@ "itemID": 370, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081354067X18796805" + "ID: TN_sage_s10_1177_1354067X18796805" ], "pages": "529-544", "publicationTitle": "Culture & Psychology", @@ -13207,7 +13207,7 @@ "itemID": 371, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081354856517721805" + "ID: TN_sage_s10_1177_1354856517721805" ], "pages": "1063-1076", "publicationTitle": "Convergence: The International Journal of Research into New Media Technologies", @@ -13235,7 +13235,7 @@ "itemID": 372, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081354856517751391" + "ID: TN_sage_s10_1177_1354856517751391" ], "pages": "1168-1184", "publicationTitle": "Convergence: The International Journal of Research into New Media Technologies", @@ -13263,7 +13263,7 @@ "itemID": 373, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081461444815582141" + "ID: TN_sage_s10_1177_1461444815582141" ], "pages": "2305-2322", "publicationTitle": "New Media & Society", @@ -13291,7 +13291,7 @@ "itemID": 374, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081464700107078139" + "ID: TN_sage_s10_1177_1464700107078139" ], "pages": "149-168", "publicationTitle": "Feminist Theory", @@ -13318,7 +13318,7 @@ "itemID": 375, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081464884909102582" + "ID: TN_sage_s10_1177_1464884909102582" ], "pages": "283-285", "publicationTitle": "Journalism", @@ -13370,7 +13370,7 @@ "itemID": 376, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081464884910388230" + "ID: TN_sage_s10_1177_1464884910388230" ], "pages": "586-606", "publicationTitle": "Journalism", @@ -13403,7 +13403,7 @@ "itemID": 377, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081464884911415973" + "ID: TN_sage_s10_1177_1464884911415973" ], "pages": "963-982", "publicationTitle": "Journalism", @@ -13436,7 +13436,7 @@ "itemID": 378, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081464884916663599" + "ID: TN_sage_s10_1177_1464884916663599" ], "pages": "375-391", "publicationTitle": "Journalism", @@ -13464,7 +13464,7 @@ "itemID": 379, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081464884917722453" + "ID: TN_sage_s10_1177_1464884917722453" ], "pages": "427-443", "publicationTitle": "Journalism", @@ -13502,7 +13502,7 @@ "itemID": 380, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081464884919845458" + "ID: TN_sage_s10_1177_1464884919845458" ], "pages": "1070-1086", "publicationTitle": "Journalism", @@ -13546,7 +13546,7 @@ "itemID": 381, "itemType": "journalArticle", "notes": [ - "10.1037/0003-066x.52.6.613\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.55.6.893\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1745691611406922\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0031017\u00a1br/\u00bf\u00a1br/\u00bf10.1525/sp.2009.56.3.403\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0013595\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167292183006\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.obhdp.2007.05.001\u00a1br/\u00bf\u00a1br/\u00bf10.1002/ejsp.348\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.78.4.635\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.90.6.961\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.77.4.669\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167202239047\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0033-2909.102.1.72\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167299025004008\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.78.4.690\u00a1br/\u00bf\u00a1br/\u00bf10.1017/s0007123401000102\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.72.6.1364\u00a1br/\u00bf\u00a1br/\u00bf10.1006/jesp.1996.0018\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.74.2.378\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167201275007\u00a1br/\u00bf\u00a1br/\u00bf10.1177/106939719502900302\u00a1br/\u00bf\u00a1br/\u00bf10.1037/1089-2680.3.1.23\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203973431\u00a1br/\u00bf\u00a1br/\u00bf10.1037/h0076486\u00a1br/\u00bf\u00a1br/\u00bf10.1023/a:1022148418210\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.2044-8309.1986.tb00712.x\u00a1br/\u00bf\u00a1br/\u00bf10.1080/15298868.2010.542015\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.jesp.2003.09.002\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1468-2508.2007.00562.x\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822381044-003\u00a1br/\u00bf\u00a1br/\u00bf10.1002/ejsp.259\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1467-6494.1994.tb00311.x\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822381044-004\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1745691610393980\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.2044-8309.1998.tb01163.x\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0024598\u00a1br/\u00bf\u00a1br/\u00bf10.1002/ejsp.175\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0956797610392926\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0956797610384741\u00a1br/\u00bf\u00a1br/\u00bf10.1080/15298868.2011.556804\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.89.2.223\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.94.1.91\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0032250\u00a1br/\u00bf\u00a1br/\u00bf10.1111/0004-5608.00182\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0011990\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10463280601095240\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.jesp.2009.08.017\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167296226008\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.36.5.511\u00a1br/\u00bf\u00a1br/\u00bf10.1006/jesp.2001.1512\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0033-295x.102.2.331\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.jesp.2007.11.002\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167207311200\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1467-9221.2005.00440.x\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.95.1.144\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822383659\u00a1br/\u00bf\u00a1br/\u00bf10.1016/s0065-2601(04)36001-6\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0033-295x.94.3.319\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0003-066x.51.9.918\u00a1br/\u00bf\u00a1br/\u00bf10.1037/h0034225\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1341787\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.72.6.1268\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1368430209344869\u00a1br/\u00bf\u00a1br/\u00bf10.1146/annurev.soc.31.041304.122322\u00a1br/\u00bf\u00a1br/\u00bf10.1002/ejsp.2420250102\u00a1br/\u00bf\u00a1br/\u00bf1745-6924\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167204271713\u00a1br/\u00bf\u00a1br/\u00bf10.1007/978-1-4899-0818-6\u2084\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167207303016\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.77.1.167\u00a1br/\u00bf\u00a1br/\u00bf10.1257/0002828042002561\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10463280600574815\u00a1br/\u00bf\u00a1br/\u00bf10.1037//0022-3514.74.6.1464\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0033-295x.98.2.224\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.jesp.2014.04.005\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.73.4.805\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167206287182\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167212475224\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10478401003676501\u00a1br/\u00bf\u00a1br/\u00bf10.1177/002200278102500401\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1467-9280.2006.01810.x" + "10.1037/0003-066x.52.6.613\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.55.6.893\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1745691611406922\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0031017\u00a1br/\u00bf\u00a1br/\u00bf10.1525/sp.2009.56.3.403\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0013595\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167292183006\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.obhdp.2007.05.001\u00a1br/\u00bf\u00a1br/\u00bf10.1002/ejsp.348\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.78.4.635\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.90.6.961\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.77.4.669\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167202239047\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0033-2909.102.1.72\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167299025004008\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.78.4.690\u00a1br/\u00bf\u00a1br/\u00bf10.1017/s0007123401000102\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.72.6.1364\u00a1br/\u00bf\u00a1br/\u00bf10.1006/jesp.1996.0018\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.74.2.378\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167201275007\u00a1br/\u00bf\u00a1br/\u00bf10.1177/106939719502900302\u00a1br/\u00bf\u00a1br/\u00bf10.1037/1089-2680.3.1.23\u00a1br/\u00bf\u00a1br/\u00bf10.4324/9780203973431\u00a1br/\u00bf\u00a1br/\u00bf10.1037/h0076486\u00a1br/\u00bf\u00a1br/\u00bf10.1023/a:1022148418210\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.2044-8309.1986.tb00712.x\u00a1br/\u00bf\u00a1br/\u00bf10.1080/15298868.2010.542015\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.jesp.2003.09.002\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1468-2508.2007.00562.x\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822381044-003\u00a1br/\u00bf\u00a1br/\u00bf10.1002/ejsp.259\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1467-6494.1994.tb00311.x\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822381044-004\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1745691610393980\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.2044-8309.1998.tb01163.x\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0024598\u00a1br/\u00bf\u00a1br/\u00bf10.1002/ejsp.175\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0956797610392926\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0956797610384741\u00a1br/\u00bf\u00a1br/\u00bf10.1080/15298868.2011.556804\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.89.2.223\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.94.1.91\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0032250\u00a1br/\u00bf\u00a1br/\u00bf10.1111/0004-5608.00182\u00a1br/\u00bf\u00a1br/\u00bf10.1037/a0011990\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10463280601095240\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.jesp.2009.08.017\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167296226008\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.36.5.511\u00a1br/\u00bf\u00a1br/\u00bf10.1006/jesp.2001.1512\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0033-295x.102.2.331\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.jesp.2007.11.002\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167207311200\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1467-9221.2005.00440.x\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.95.1.144\u00a1br/\u00bf\u00a1br/\u00bf10.1215/9780822383659\u00a1br/\u00bf\u00a1br/\u00bf10.1016/s0065-2601(04)36001-6\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0033-295x.94.3.319\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0003-066x.51.9.918\u00a1br/\u00bf\u00a1br/\u00bf10.1037/h0034225\u00a1br/\u00bf\u00a1br/\u00bf10.2307/1341787\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.72.6.1268\u00a1br/\u00bf\u00a1br/\u00bf10.1177/1368430209344869\u00a1br/\u00bf\u00a1br/\u00bf10.1146/annurev.soc.31.041304.122322\u00a1br/\u00bf\u00a1br/\u00bf10.1002/ejsp.2420250102\u00a1br/\u00bf\u00a1br/\u00bf1745-6924\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167204271713\u00a1br/\u00bf\u00a1br/\u00bf10.1007/978-1-4899-0818-6_4\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167207303016\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.77.1.167\u00a1br/\u00bf\u00a1br/\u00bf10.1257/0002828042002561\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10463280600574815\u00a1br/\u00bf\u00a1br/\u00bf10.1037//0022-3514.74.6.1464\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0033-295x.98.2.224\u00a1br/\u00bf\u00a1br/\u00bf10.1016/j.jesp.2014.04.005\u00a1br/\u00bf\u00a1br/\u00bf10.1037/0022-3514.73.4.805\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167206287182\u00a1br/\u00bf\u00a1br/\u00bf10.1177/0146167212475224\u00a1br/\u00bf\u00a1br/\u00bf10.1080/10478401003676501\u00a1br/\u00bf\u00a1br/\u00bf10.1177/002200278102500401\u00a1br/\u00bf\u00a1br/\u00bf10.1111/j.1467-9280.2006.01810.x" ], "pages": "594-609", "publicationTitle": "Perspectives on Psychological Science", @@ -13646,7 +13646,7 @@ "itemID": 382, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bage\u209b10\u2081177\u2081749975507078185" + "ID: TN_sage_s10_1177_1749975507078185" ], "pages": "143-164", "publicationTitle": "Cultural Sociology", @@ -13736,7 +13736,7 @@ "itemID": 384, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1983660865" + "ID: TN_proquest1983660865" ], "pages": "397", "publicationTitle": "Novel", @@ -13762,7 +13762,7 @@ "itemID": 385, "itemType": "journalArticle", "notes": [ - "ID: TNduke10.1215/01636545-1992-54-21" + "ID: TN_duke10.1215/01636545-1992-54-21" ], "pages": "21", "publicationTitle": "Radical History Review", @@ -13799,7 +13799,7 @@ "itemID": 386, "itemType": "journalArticle", "notes": [ - "ID: TN\u2090ea10.1257/aer.104.8.2421" + "ID: TN_aea10.1257/aer.104.8.2421" ], "pages": "2421-2455", "publicationTitle": "American Economic Review", @@ -13836,7 +13836,7 @@ "itemID": 387, "itemType": "journalArticle", "notes": [ - "ID: TNinformsmksc.1090.0557" + "ID: TN_informsmksc.1090.0557" ], "pages": "815-827", "publicationTitle": "Marketing Science", @@ -13864,7 +13864,7 @@ "itemID": 388, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest2159297257" + "ID: TN_proquest2159297257" ], "pages": "370-396", "publicationTitle": "Book History", @@ -13890,7 +13890,7 @@ "itemID": 389, "itemType": "journalArticle", "notes": [ - "ID: TN\u209arojectmuse\u209b248391S1553120185300013" + "ID: TN_projectmuse_s248391_S1553120185300013" ], "pages": "100-104", "publicationTitle": "Children's Literature Association Quarterly", @@ -13916,7 +13916,7 @@ "itemID": 390, "itemType": "journalArticle", "notes": [ - "ID: TN\u209arojectmuse\u209b248341S1553120184400148" + "ID: TN_projectmuse_s248341_S1553120184400148" ], "pages": "184-186", "publicationTitle": "Children's Literature Association Quarterly", @@ -13967,7 +13967,7 @@ "itemID": 392, "itemType": "journalArticle", "notes": [ - "ID: TN\u209arojectmuse\u209b249312S1553120192300087" + "ID: TN_projectmuse_s249312_S1553120192300087" ], "pages": "37-39", "publicationTitle": "Children's Literature Association Quarterly", @@ -13993,7 +13993,7 @@ "itemID": 393, "itemType": "journalArticle", "notes": [ - "ID: TN\u209arojectmuse\u209b249281S1553120192100071" + "ID: TN_projectmuse_s249281_S1553120192100071" ], "pages": "29-35", "publicationTitle": "Children's Literature Association Quarterly", @@ -14029,11 +14029,11 @@ "itemID": 394, "itemType": "journalArticle", "notes": [ - "ID: TN\u209arojectmuse\u209b250011S1553120103300026" + "ID: TN_projectmuse_s250011_S1553120103300026" ], "pages": "137", "publicationTitle": "Children's Literature Association Quarterly", - "title": "Are children's book publishers changing the way children read?: A panel discussion", + "title": "Are children's book publishers changing the way children read?: a panel discussion", "volume": "28" }, { @@ -14080,11 +14080,11 @@ "itemID": 396, "itemType": "journalArticle", "notes": [ - "ID: TN\u209arojectmuse\u209b265018S1931023409400672" + "ID: TN_projectmuse_s265018_S1931023409400672" ], "pages": "10-19", "publicationTitle": "L'Esprit Cr\u00e9ateur", - "title": "Children's literature, issues of definition: The \"Why?\" and \"Why Not?\" of criticism", + "title": "Children's literature, issues of definition: The \"why?\" and \"why not?\" of criticism", "volume": "45" }, { @@ -14269,7 +14269,7 @@ "itemID": 400, "itemType": "journalArticle", "notes": [ - "ID: TNcrossref10.1386/btwo.1.1.7\u2081" + "ID: TN_crossref10.1386/btwo.1.1.7_1" ], "publicationTitle": "Book 2.0", "title": "history.child.book.shop.2.0", @@ -14287,8 +14287,8 @@ }, { "creatorType": "editor", - "firstName": "Department of", - "lastName": "Media" + "firstName": "Department", + "lastName": "of Media" }, { "creatorType": "editor", @@ -14303,7 +14303,7 @@ "itemID": 401, "itemType": "journalArticle", "notes": [ - "ID: TN\u2099arciseur:oai:repub.eur.nl:31592" + "ID: TN_narciseur:oai:repub.eur.nl:31592" ], "pages": "441-462", "publicationTitle": "Communications: the European journal of communication research", @@ -14329,7 +14329,7 @@ "itemID": 402, "itemType": "journalArticle", "notes": [ - "ID: TNcrossref10.15643/libartrus-2017.3.3" + "ID: TN_crossref10.15643/libartrus-2017.3.3" ], "pages": "230", "publicationTitle": "Rossiiskii Gumanitarnyi Zhurnal", @@ -14356,7 +14356,7 @@ "itemID": 403, "itemType": "journalArticle", "notes": [ - "ID: TNdash1/4795341" + "ID: TN_dash1/4795341" ], "publicationTitle": "PMLA.Publications of the Modern Language Association of America", "title": "Children\u2019s books, dolls, and the performance of race; or, the possibility of children\u2019s literature", @@ -14383,11 +14383,11 @@ "itemID": 404, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1325180426" + "ID: TN_proquest1325180426" ], "pages": "238", "publicationTitle": "PMLA.Publications of the Modern Language Association of America", - "title": "\"Words with Friends\": Socially networked reading on goodreads", + "title": "\"Words with friends\": Socially networked reading on goodreads", "volume": "128" }, { @@ -14435,7 +14435,7 @@ "itemID": 406, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091ric\u209bEJ1164894" + "ID: TN_eric_sEJ1164894" ], "pages": "335", "publicationTitle": "Harvard Educational Review", @@ -14462,9 +14462,9 @@ "itemID": 407, "itemType": "journalArticle", "notes": [ - "ID: TNdatacite10622566" + "ID: TN_datacite10622566" ], - "title": "A comparison of traditional book reviews and Amazon.com book reviews of fiction using a content analysis approach", + "title": "A comparison of traditional book reviews and amazon.com book reviews of fiction using a content analysis approach", "volume": "12" }, { @@ -14491,7 +14491,7 @@ "itemID": 408, "itemType": "journalArticle", "notes": [ - "ID: TNdoaj\u209boaidoaj\u2092rg\u2090rticlef38963c85c2340b2989dfce42a344694" + "ID: TN_doaj_soai_doaj_org_article_f38963c85c2340b2989dfce42a344694" ], "pages": "397-413", "publicationTitle": "RDBCI: Revista Digital de Biblioteconomia e Ci\u00eancia da Informa\u00e7\u00e3o", @@ -14551,10 +14551,10 @@ "itemID": 410, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest2124051924" + "ID: TN_proquest2124051924" ], "publicationTitle": "Scholarly and Research Communication", - "title": "Readers read, readers write: A methodology for the study of reading practices in media convergence", + "title": "Readers read, readers write: a methodology for the study of reading practices in media convergence", "volume": "5" }, { @@ -14606,7 +14606,7 @@ "itemType": "journalArticle", "pages": "339-363", "publicationTitle": "The Modern Language Review", - "title": "Foucault on the \"Question of the Author\": A critical exegesis", + "title": "Foucault on the \"question of the author\": a critical exegesis", "url": "http://www.jstor.org/stable/3738750", "volume": "99" }, @@ -14631,7 +14631,7 @@ "itemID": 413, "itemType": "journalArticle", "notes": [ - "0028-6087; ID: TNcdi\u209aroquestjournals\u2081297397992" + "0028-6087; ID: TN_cdi_proquest_journals_1297397992" ], "pages": "123-162", "publicationTitle": "New literary history", @@ -14660,7 +14660,7 @@ "itemID": 414, "itemType": "journalArticle", "notes": [ - "ID: TNcdi\u209aroquestjournals\u208237300263" + "ID: TN_cdi_proquest_journals_237300263" ], "pages": "20-23", "publicationTitle": "English journal", @@ -14697,11 +14697,11 @@ "itemID": 415, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fa591131999" + "ID: TN_gale_ofa591131999" ], "pages": "158", "publicationTitle": "Journal of Advertising Research", - "title": "Adolescent perceptions of black-oriented media: \"The Day Beyonce Turned Black\": Can black-oriented films and TV programs be marketed more Broadly?(Report)", + "title": "Adolescent perceptions of black-oriented media: \"The day beyonce turned black\": Can black-oriented films and TV programs be marketed more broadly?(report)", "volume": "59" }, { @@ -14901,7 +14901,7 @@ "tag": "Youth" } ], - "title": "Zoom: A review of the literature on marginalized adolescent readers, literacy theory, and policy implications", + "title": "Zoom: a review of the literature on marginalized adolescent readers, literacy theory, and policy implications", "volume": "76" }, { @@ -15063,7 +15063,7 @@ "tag": "Young adult literature" } ], - "title": "\"But This Story of Mine Is Not Unique\": A review of research on african american children's literature", + "title": "\"But this story of mine is not unique\": a review of research on african american children's literature", "volume": "79" }, { @@ -15085,7 +15085,7 @@ "itemID": 420, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bcopus2-s2.0-85056714664" + "ID: TN_scopus2-s2.0-85056714664" ], "pages": "12-15", "publicationTitle": "Journal of Scholarly Publishing", @@ -15137,7 +15137,7 @@ "itemID": 422, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1810344971" + "ID: TN_proquest1810344971" ], "pages": "R1-R7", "publicationTitle": "Film Criticism", @@ -15189,7 +15189,7 @@ "itemID": 424, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest2249642905" + "ID: TN_proquest2249642905" ], "pages": "3-8", "publicationTitle": "Children & Libraries", @@ -15217,7 +15217,7 @@ "itemID": 425, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1021835587" + "ID: TN_proquest1021835587" ], "pages": "319-323", "publicationTitle": "Reference & User Services Quarterly", @@ -15263,7 +15263,7 @@ "itemID": 426, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091rudit1009347ar" + "ID: TN_erudit1009347ar" ], "publicationTitle": "M\u00e9moires du livre", "title": "#1b1t: Investigating reading practices at the turn of the twenty-first century", @@ -15292,7 +15292,7 @@ "itemID": 427, "itemType": "journalArticle", "notes": [ - "ID: TNcrossref10.7202/1046988ar" + "ID: TN_crossref10.7202/1046988ar" ], "publicationTitle": "M\u00e9moires du livre", "title": "Serious fun: Gaming the book festival", @@ -15332,7 +15332,7 @@ "itemID": 428, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091rudit1060971ar" + "ID: TN_erudit1060971ar" ], "publicationTitle": "M\u00e9moires du livre", "title": "The discourse and value of being an independent publisher", @@ -15651,7 +15651,7 @@ "itemID": 440, "itemType": "book", "publisher": "n+1 foundation", - "title": "Canon/Archive: studies in quantitative formalism from the Stanford Literary Lab" + "title": "Canon/archive: studies in quantitative formalism from the stanford literary lab" }, { "ISBN": "978-1-138-12008-2", @@ -15908,7 +15908,7 @@ "lastName": "Harris" } ], - "date": "1993-6", + "date": "1993-06", "extra": [ "Citation Key: Harris1993", "Publisher: Harvard Law Review Association" @@ -16097,8 +16097,8 @@ }, { "creatorType": "editor", - "firstName": "Department of", - "lastName": "Media" + "firstName": "Department", + "lastName": "of Media" }, { "creatorType": "editor", @@ -16113,7 +16113,7 @@ "itemID": 453, "itemType": "journalArticle", "notes": [ - "ID: TN\u2099arciseur:oai:repub.eur.nl:41392" + "ID: TN_narciseur:oai:repub.eur.nl:41392" ], "pages": "139-168", "publicationTitle": "K\u00f6lner Zeitschrift f\u00fcr Soziologie und Sozialpsychologie (print)", @@ -16138,11 +16138,11 @@ "itemID": 454, "itemType": "journalArticle", "notes": [ - "ID: TN\u209arojectmuse\u209b633173S2157418916000586" + "ID: TN_projectmuse_s633173_S2157418916000586" ], "pages": "57-75", "publicationTitle": "Minnesota Review", - "title": "What was \u201cClose reading\u201d?: A century of method in literary studies", + "title": "What was \u201cclose reading\u201d?: a century of method in literary studies", "volume": "87" }, { @@ -16164,7 +16164,7 @@ "itemID": 455, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fa20191277" + "ID: TN_gale_ofa20191277" ], "pages": "30", "publicationTitle": "National Review", @@ -16190,7 +16190,7 @@ "itemID": 456, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fg594089998" + "ID: TN_gale_ofg594089998" ], "pages": "40", "publicationTitle": "The New Republic", @@ -16216,7 +16216,7 @@ "itemID": 457, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1297371156" + "ID: TN_proquest1297371156" ], "pages": "197", "publicationTitle": "a Forum on Fiction", @@ -16268,7 +16268,7 @@ "itemID": 459, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest2365267915" + "ID: TN_proquest2365267915" ], "pages": "36-38", "publicationTitle": "Psychology Today", @@ -16293,7 +16293,7 @@ "itemID": 460, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fa9375756" + "ID: TN_gale_ofa9375756" ], "pages": "221", "publicationTitle": "RQ", @@ -16346,7 +16346,7 @@ "itemType": "journalArticle", "pages": "145-197", "publicationTitle": "Research in the Teaching of English", - "title": "Children's literature at the turn of the century: \"Toward a Political Economy of the Publishing Industry\"", + "title": "Children's literature at the turn of the century: \"Toward a political economy of the publishing industry\"", "url": "https://www.jstor.org/stable/40171621", "volume": "37" }, @@ -16390,7 +16390,7 @@ "itemID": 464, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1312023762" + "ID: TN_proquest1312023762" ], "pages": "93", "publicationTitle": "Signal", @@ -16417,7 +16417,7 @@ "itemID": 465, "itemType": "journalArticle", "notes": [ - "ID: TNcdichadwyckhealey\u2090bellR02199600" + "ID: TN_cdi_chadwyckhealey_abell_R02199600" ], "pages": "329-343", "publicationTitle": "Style (University Park, PA)", @@ -16442,7 +16442,7 @@ "itemID": 466, "itemType": "journalArticle", "notes": [ - "ID: TNwos000331415500010" + "ID: TN_wos000331415500010" ], "pages": "89-100", "publicationTitle": "Filozofia", @@ -16469,7 +16469,7 @@ "itemID": 467, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest2308830547" + "ID: TN_proquest2308830547" ], "pages": "52-57", "publicationTitle": "Reason", @@ -16496,7 +16496,7 @@ "itemID": 468, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest2213786436" + "ID: TN_proquest2213786436" ], "pages": "58-63", "publicationTitle": "Reason", @@ -16531,7 +16531,7 @@ "itemID": 469, "itemType": "journalArticle", "publicationTitle": "Research note", - "title": "All reviews are not created equal: The disaggregate impact of reviews and reviewers at Amazon.Com" + "title": "All reviews are not created equal: The disaggregate impact of reviews and reviewers at amazon.com" }, { "ISSN": "0094-5366", @@ -16556,7 +16556,7 @@ "itemID": 470, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2097itrc603632628" + "ID: TN_gale_litrc603632628" ], "pages": "1", "publicationTitle": "Bilingual Review", @@ -16581,7 +16581,7 @@ "itemID": 471, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fg455183834" + "ID: TN_gale_ofg455183834" ], "pages": "22", "publicationTitle": "Voice of Youth Advocates", @@ -16606,7 +16606,7 @@ "itemID": 472, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fg347403589" + "ID: TN_gale_ofg347403589" ], "pages": "51", "publicationTitle": "Voice of Youth Advocates", @@ -16631,7 +16631,7 @@ "itemID": 473, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fg409832259" + "ID: TN_gale_ofg409832259" ], "pages": "45", "publicationTitle": "Voice of Youth Advocates", @@ -16656,7 +16656,7 @@ "itemID": 474, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fg484156269" + "ID: TN_gale_ofg484156269" ], "pages": "43", "publicationTitle": "Voice of Youth Advocates", @@ -16681,7 +16681,7 @@ "itemID": 475, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fg529357095" + "ID: TN_gale_ofg529357095" ], "pages": "39", "publicationTitle": "Voice of Youth Advocates", @@ -16743,7 +16743,7 @@ "itemType": "journalArticle", "journalAbbreviation": "Esquire", "notes": [ - "ID: TNgale\u2092fa589559574" + "ID: TN_gale_ofa589559574" ], "pages": "22", "publicationTitle": "Esquire (New York, N.Y.)", @@ -16859,7 +16859,7 @@ "itemID": 480, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest1290173911" + "ID: TN_proquest1290173911" ], "pages": "587", "publicationTitle": "Language Arts", @@ -16908,7 +16908,7 @@ "itemID": 482, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest2339023315" + "ID: TN_proquest2339023315" ], "pages": "42-43", "publicationTitle": "Mother Jones", @@ -16934,7 +16934,7 @@ "itemID": 483, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fa358427046" + "ID: TN_gale_ofa358427046" ], "pages": "17", "publicationTitle": "School Library Journal", @@ -16959,7 +16959,7 @@ "itemID": 484, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fa399886794" + "ID: TN_gale_ofa399886794" ], "pages": "17", "title": "Value judgment: evaluating books, labels, and programs.(Scales on Censorship)(Column)", @@ -16973,11 +16973,11 @@ "itemID": 485, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fg621477024" + "ID: TN_gale_ofg621477024" ], "pages": "1", "publicationTitle": "New Criterion", - "title": "Cancel culture comstockery.(Notes & comments: April 2020)", + "title": "Cancel culture comstockery.(notes & comments: April 2020)", "volume": "38" }, { @@ -17059,11 +17059,11 @@ "itemID": 488, "itemType": "journalArticle", "notes": [ - "ID: TNwanfangjourhwyy-z201107119" + "ID: TN_wanfang_jourhwyy-z201107119" ], "pages": "224-225", "publicationTitle": "\u6d77\u5916\u82f1\u8bed(\u4e2d\u65ec\u520a)", - "title": "What the author really is roland barthes vs. Michel foucault" + "title": "What the author really is roland barthes vs. michel foucault" }, { "ISSN": "1054-7711", @@ -17084,7 +17084,7 @@ "itemID": 489, "itemType": "journalArticle", "notes": [ - "ID: TN\u209aroquest2280498596" + "ID: TN_proquest2280498596" ], "publicationTitle": "Allure", "title": "Blurred of mouth", @@ -17146,7 +17146,7 @@ ], "pages": "7-9", "publicationTitle": "Voices From the Middle", - "title": "Are you as \"Literate\" as your students?", + "title": "Are you as \"literate\" as your students?", "url": "http://ezproxy.library.arizona.edu/login?url=https://www-proquest-com.ezproxy4.library.arizona.edu/docview/1011487043?accountid=8360", "volume": "19" }, @@ -17210,7 +17210,7 @@ "itemID": 493, "itemType": "journalArticle", "notes": [ - "ID: TN\u2091ric\u209bEJ605246" + "ID: TN_eric_sEJ605246" ], "pages": "28", "publicationTitle": "Knowledge Quest", @@ -17314,7 +17314,7 @@ "itemType": "journalArticle", "journalAbbreviation": "New Statesman", "notes": [ - "ID: TN\u209aroquest2230263088" + "ID: TN_proquest2230263088" ], "pages": "48-50", "publicationTitle": "New statesman (London, England : 1957)", @@ -17436,7 +17436,7 @@ "itemType": "journalArticle", "pages": "6-17", "publicationTitle": "Journal of Children's Literature", - "title": "Much ado about a \"Fine Dessert\": The cultural politics of representing slavery in children's literature", + "title": "Much ado about a \"fine dessert\": The cultural politics of representing slavery in children's literature", "volume": "42" }, { @@ -17449,7 +17449,7 @@ "lastName": "Campbell" } ], - "date": "2018-6", + "date": "2018-06", "extra": [ "Citation Key: Campbell2018", "Publisher: American Library Association" @@ -17510,11 +17510,11 @@ "itemID": 502, "itemType": "journalArticle", "notes": [ - "ID: TNgale\u2092fa329269019" + "ID: TN_gale_ofa329269019" ], "pages": "201", "publicationTitle": "Communication, Culture and Critique", - "title": "Stuart hall's \"Deconstructing the Popular\": Reconsiderations 30 years later", + "title": "Stuart hall's \"deconstructing the popular\": Reconsiderations 30 years later", "volume": "6" }, { @@ -17667,7 +17667,7 @@ "itemID": 509, "itemType": "journalArticle", "notes": [ - "ID: TN\u209bcopus2-s2.0-85034449785" + "ID: TN_scopus2-s2.0-85034449785" ], "pages": "2071-2092", "publicationTitle": "International Journal of Communication", @@ -17692,7 +17692,7 @@ "itemID": 510, "itemType": "journalArticle", "notes": [ - "ID: TNdoaj\u209boaidoaj\u2092rg\u2090rticle\u2084340117d36424b928b6072d6d9c67608" + "ID: TN_doaj_soai_doaj_org_article_4340117d36424b928b6072d6d9c67608" ], "publicationTitle": "Transformative Works and Cultures", "title": "Narrative extraction, #BlackPantherSoLit, and signifyin': \"Black Panther\" fandom and transformative social practices", @@ -17724,7 +17724,7 @@ "itemID": 511, "itemType": "journalArticle", "notes": [ - "Source type: Scholarly Journals; Object type: Editorial; Object type: Commentary; Copyright: Copyright University of Waikato, Department of English May 2011; DOCID: 2602001211; PCID: 67792272; PMID: 155333; ProvJournalCode: NGTC; PublisherXID: ICANGTCNGTCv10n1\u20820110501541" + "Source type: Scholarly Journals; Object type: Editorial; Object type: Commentary; Copyright: Copyright University of Waikato, Department of English May 2011; DOCID: 2602001211; PCID: 67792272; PMID: 155333; ProvJournalCode: NGTC; PublisherXID: ICANGTC_NGTC_v10n1_20110501541" ], "pages": "1-n/a", "publicationTitle": "English Teaching", @@ -17758,7 +17758,7 @@ "itemID": 512, "itemType": "journalArticle", "notes": [ - "Source type: Scholarly Journals; Object type: Feature; Object type: Article; Copyright: Copyright University of Waikato, Department of English May 2011; DOCID: 2602001181; PCID: 67792272; PMID: 155333; ProvJournalCode: NGTC; PublisherXID: ICANGTCNGTCv10n1\u208201105016901" + "Source type: Scholarly Journals; Object type: Feature; Object type: Article; Copyright: Copyright University of Waikato, Department of English May 2011; DOCID: 2602001181; PCID: 67792272; PMID: 155333; ProvJournalCode: NGTC; PublisherXID: ICANGTC_NGTC_v10n1_201105016901" ], "pages": "41-57", "publicationTitle": "English Teaching", diff --git a/test/fixtures/import/zbb (quietly) chokes on this .bib #664.json b/test/fixtures/import/zbb (quietly) chokes on this .bib #664.json index fb11c41e99..86ec4562ec 100644 --- a/test/fixtures/import/zbb (quietly) chokes on this .bib #664.json +++ b/test/fixtures/import/zbb (quietly) chokes on this .bib #664.json @@ -18,7 +18,7 @@ "abstractNote": "Do societies choose inefficient policies and institutions? An extension of the Coase theorem to politics would suggest the answer is no. This paper discusses various approaches to political economy and develops the argument that there are strong empirical and theoretical grounds for believing that inefficient policies and institutions are prevalent. We conclude that these inefficient institutions and policies are chosen because they serve the interests of politicians or social groups that hold political power at the expense of the rest. The theoretical case depends on commitment problems inherent in politics; parties holding political power cannot make commitments to bind their future actions because there is no outside agency with the coercive capacity to enforce such arrangements. Journal of Comparative Economics 31 (4) (2003) 620-652.", "attachments": [ { - "accessDate": "2024-01-19T08:18:11Z", + "accessDate": "2024-04-15T01:00:49Z", "itemType": "attachment", "linkMode": "linked_url", "title": "bdsk-url-2", @@ -38,7 +38,7 @@ "Citation Key: Acemoglu2003Whynotpolitical", "tex.date-added: 2015-04-15 15:21:27 +0000", "tex.date-modified: 2017-05-15 14:14:57 +0000", - "tex.jlprojects: spatial\u2091lections, continuous\u2092piniondynamics", + "tex.jlprojects: spatial_elections, continuous_opinion_dynamics", "tex.project: ODCD", "tex.rating: 4", "tex.timestamp: 2011.06.01" diff --git a/translators/Better BibLaTeX.json b/translators/Better BibLaTeX.json index 96db3890cc..6272ab9108 100644 --- a/translators/Better BibLaTeX.json +++ b/translators/Better BibLaTeX.json @@ -16,6 +16,8 @@ "exportNotes": false, "exportFileData": false, "useJournalAbbreviation": false, + "biblatexAPA": false, + "biblatexChicago": false, "keepUpdated": false, "worker": true }, diff --git a/translators/Better BibTeX Citation Key Quick Copy.ts b/translators/Better BibTeX Citation Key Quick Copy.ts index fc242d8432..aad1a765e5 100644 --- a/translators/Better BibTeX Citation Key Quick Copy.ts +++ b/translators/Better BibTeX Citation Key Quick Copy.ts @@ -2,7 +2,7 @@ declare const Zotero: any import { simplifyForExport } from '../gen/items/simplify' -import { escapeHTML } from '../content/text' +import { html as escapeHTML } from '../content/escape' import { Eta } from 'eta' const eta = new Eta({ autoEscape: true }) diff --git a/translators/Better BibTeX.ts b/translators/Better BibTeX.ts index 3dfa12b6d2..182f85a02c 100644 --- a/translators/Better BibTeX.ts +++ b/translators/Better BibTeX.ts @@ -1,5 +1,7 @@ import { Translation, collect } from './lib/translator' import type { Translators } from '../typings/translators.d.ts' +import type { ParseError } from '@retorquere/bibtex-parser' +import { detectImport as zotero_detectImport } from '../gen/ZoteroBibTeX.mjs' declare const Zotero: any declare var ZOTERO_TRANSLATOR_INFO: Translators.Header // eslint-disable-line no-var @@ -15,43 +17,7 @@ export function doExport(): void { import * as escape from '../content/escape' export function detectImport(): boolean { - if (!Zotero.BetterBibTeX || !Zotero.getHiddenPref('better-bibtex.import')) return false - - const maxChars = 1048576 // 1MB - const chunk = 4096 - - let inComment = false - let block = '' - let buffer = '' - let chr = '' - let charsRead = 0 - - const re = /^\s*@[a-zA-Z]+[({]/ - while ((buffer = Zotero.read(chunk)) && charsRead < maxChars) { - Zotero.debug(`Scanning ${buffer.length} characters for BibTeX`) - charsRead += buffer.length - for (let i=0; i { if (translation.preferences.strings && translation.preferences.importBibTeXStrings) input = `${translation.preferences.strings}\n${input}` + const start = Date.now() const bib = await Zotero.BetterBibTeX.parseBibTeX(input, translation) - const errors = bib.errors + Zotero.debug(`parsed ${bib.entries.length} items in ${Date.now() - start}msec`) + const errors: ParseError[] = bib.errors const whitelist = bib.comments .filter((comment: string) => comment.startsWith('zotero-better-bibtex:whitelist:')) @@ -95,6 +63,7 @@ export async function doImport(): Promise { if (bibtex.key && whitelist && !whitelist.includes(bibtex.key.toLowerCase())) continue id++ + if ((id % 1000) === 0) await new Promise(resolve => setTimeout(resolve, 0)) if (bibtex.key) itemIDS[bibtex.key] = id // Endnote has no citation keys @@ -106,7 +75,7 @@ export async function doImport(): Promise { } catch (err) { Zotero.debug('bbt import error:', err) - errors.push({ message: err.message }) + errors.push({ error: err.message, input: '' }) } imported += 1 @@ -120,17 +89,13 @@ export async function doImport(): Promise { if (errors.length) { const item = new Zotero.Item('note') item.note = 'Import errors found:
    ' + Zotero.debug(`import errors: ${JSON.stringify(errors)}`) for (const err of errors) { item.note += '
  • ' - if (err.line) { - item.note += `line ${err.line}` - if (err.column) item.note += `, column ${err.column}` - item.note += ': ' - } - item.note += escape.html(err.message) - if (err.source) { - item.note += `
    ${escape.html(err.source)}
    ` - Zotero.debug(`import error: ${err.message}\n>>>\n${err.source}\n<<<`) + item.note += escape.html(err.error) + if (err.input) { + Zotero.debug(`import error: ${err.error}\n>>>\n${err.input}\n<<<`) + item.note += `
    ${escape.html(err.input)}
    ` } item.note += '
  • ' } diff --git a/translators/bibtex/biblatex.ts b/translators/bibtex/biblatex.ts index 90e534204e..5666da2551 100644 --- a/translators/bibtex/biblatex.ts +++ b/translators/bibtex/biblatex.ts @@ -4,8 +4,7 @@ import { strToISO } from '../../content/dateparser' import { qualityReport } from '../../gen/biber-tool' import { Entry as BaseEntry, Config } from './entry' - -type CreatorArray = any[] & { type?: string } +import { print } from '../../content/logger' const config: Config = { fieldEncoding: { @@ -127,35 +126,80 @@ const config: Config = { }, } +class CreatorTypeMap { + public type: Record = {} + private registered: Record = {} + private static extension = { + editor: ['', 'a', 'b', 'c'], + name: ['a', 'b', 'c'], + } + + constructor(private hasEditor: boolean) { + } + + register(base: 'editor' | 'name', type: string) { + type = type.toLowerCase() + if (!this.registered[type]) { + for (const postfix of CreatorTypeMap.extension[base]) { + const candidate = `${base}${postfix}` + if (this.hasEditor && candidate === 'editor' && type !== 'editor') continue + if (this.type[candidate]) { + if (postfix !== 'c') continue + print(`squashing ${type} into ${candidate}`) + } + this.type[candidate] = type + this.registered[type] = candidate + break + } + } + + print(`::register(${JSON.stringify({ base, type })} = ${JSON.stringify(this.type)}`) + return this.registered[type] + } +} + class Entry extends BaseEntry { public addCreators() { if (!this.item.creators || !this.item.creators.length) return - const creators: Record = { + const creators: Record = { author: [], + with: [], bookauthor: [], commentator: [], editor: [], editora: [], editorb: [], + editorc: [], + namea: [], + nameb: [], + namec: [], holder: [], translator: [], // scriptwriter: [], // director: [], } - creators.editora.type = 'collaborator' - creators.editorb.type = 'redactor' + + const creatorType = new CreatorTypeMap(!!this.item.creators.find(cr => cr.creatorType === 'editor')) + const video = ['video', 'movie'].includes(this.entrytype) + if (video) creatorType.register('editor', 'director') for (const creator of this.item.creators) { switch (creator.creatorType) { case 'director': // 365.something - if (['video', 'movie'].includes(this.entrytype)) { - creators.editor.push(creator) - creators.editor.type = 'director' + creators[video ? 'editor' : 'author'].push(creator) + break + + case 'contributor': + if (this.translation.options.biblatexAPA) { + creators.with.push(creator) + } + else if (video && this.translation.options.biblatexChicago) { + creators[creatorType.register('editor', 'none')].push(creator) } else { - creators.author.push(creator) + creators[creatorType.register('name', 'collaborator')].push(creator) } break @@ -190,22 +234,25 @@ class Entry extends BaseEntry { break case 'seriesEditor': - creators.editorb.push(creator) + creators[creatorType.register('editor', 'redactor')].push(creator) break case 'scriptwriter': // 365.something - creators.editora.push(creator) - if (['video', 'movie'].includes(this.entrytype)) { - creators.editora.type = 'scriptwriter' + if (video) { + creators[creatorType.register('editor', 'scriptwriter')].push(creator) + } + else { + creators[creatorType.register('name', 'collaborator')].push(creator) } break default: - creators.editora.push(creator) + creators[creatorType.register('name', 'collaborator')].push(creator) } } + print(`::types=${JSON.stringify(creatorType.type)}`) for (const [field, value] of Object.entries(creators)) { this.remove(field) this.remove(`${field}type`) @@ -213,7 +260,7 @@ class Entry extends BaseEntry { if (!value.length) continue this.add({ name: field, value, enc: 'creators' }) - if (value.type) this.add({ name: `${field}type`, value: value.type }) + this.add({ name: `${field}type`, value: creatorType.type[field] }) } } } diff --git a/translators/bibtex/bibtex.ts b/translators/bibtex/bibtex.ts index c896531d3b..2b1a042303 100644 --- a/translators/bibtex/bibtex.ts +++ b/translators/bibtex/bibtex.ts @@ -15,7 +15,7 @@ import { Translation } from '../lib/translator' import { Entry as BaseEntry, Config } from './entry' -import * as bibtexParser from '@retorquere/bibtex-parser' +import { Library, Entry as BibTeXEntry, JabRefMetadata, ParseError, Creator, parseAsync as parse } from '@retorquere/bibtex-parser' function unique(value, index, self) { return self.indexOf(value) === index @@ -420,60 +420,70 @@ export function generateBibTeX(translation: Translation): void { translation.bibtex.complete() } -const importJabRef = new class { - public unabbrevations: Record = {} +const importJabRef = new class JabRefDefaults { + public unabbrev: Record = {} public strings = '' private loaded = { - unabbrevations: false, + unabbrev: false, strings: false, } load(translation: Translation) { - if (!this.loaded.unabbrevations && translation.preferences.importJabRefAbbreviations) { - Object.assign(this.unabbrevations, JSON.parse(Zotero.File.getContentsFromURL('chrome://zotero-better-bibtex/content/resource/bibtex/unabbrev.json'))) - this.loaded.unabbrevations = true + const assets = { + 'strings.bib': translation.preferences.importJabRefStrings, + 'unabbrev.json': translation.preferences.importJabRefAbbreviations, } - if (!this.loaded.strings && translation.preferences.importJabRefStrings) { - this.strings = Zotero.File.getContentsFromURL('chrome://zotero-better-bibtex/content/resource/bibtex/strings.bib') - this.loaded.strings = true + for (const [ asset, enabled ] of Object.entries(assets)) { + if (!enabled) continue + const cache = asset.split('.')[0] + if (this.loaded[cache]) continue + + const data = Zotero.File.getContentsFromURL(`chrome://zotero-better-bibtex/content/resource/bibtex/${asset}`) + switch (cache) { + case 'unabbrev': + Object.assign(this[cache], JSON.parse(data)) + break + case 'strings': + this[cache] = data + break + } + + this.loaded[cache] = true } } } -export async function parseBibTeX(input: string, translation: Translation): Promise { +export async function parseBibTeX(input: string, translation: Translation): Promise { translation.ZoteroItem = ZoteroItem importJabRef.load(translation) - return bibtexParser.promises.parse(input, { + return await parse(input, { // we are actually sure it's a valid enum value; stupid workaround for TS2322: Type 'string' is not assignable to type 'boolean | "as-needed" | "strict"'. - caseProtection: (translation.preferences.importCaseProtection as 'as-needed'), - errorHandler: (translation.preferences.testing ? undefined : function(err) { log.error(err) }), // eslint-disable-line prefer-arrow/prefer-arrow-functions - unknownCommandHandler: function(node) { // eslint-disable-line object-shorthand + unsupported: (node, tex, _entry) => { switch (translation.preferences.importUnknownTexCommand) { case 'tex': - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return this.text(``) + return `` case 'text': - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return this.text(node.source) + return node.type === 'macro' ? node.content : tex case 'ignore': - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return this.text('') + return '' default: - throw new Error(`Unexpected unknownCommandHandler ${JSON.stringify(translation.preferences.importUnknownTexCommand)}`) + return tex } }, - markup: (translation.csquotes ? { enquote: translation.csquotes } : {}), - sentenceCase: translation.preferences.importSentenceCase !== 'off', - guessAlreadySentenceCased: translation.preferences.importSentenceCase === 'on+guess', - sentenceCasePreserveQuoted: !translation.preferences.importSentenceCaseQuoted, + english: translation.preferences.importSentenceCase !== 'off', + sentenceCase: { + guess: translation.preferences.importSentenceCase === 'on+guess', + preserveQuoted: !translation.preferences.importSentenceCaseQuoted, + }, + caseProtection: (translation.preferences.importCaseProtection as 'as-needed'), verbatimFields: translation.verbatimFields, raw: translation.preferences.rawImports, - unabbreviate: importJabRef.unabbrevations, strings: importJabRef.strings, + removeOuterBraces: [ 'doi', 'publisher', 'location', 'title', 'booktitle' ], }) } @@ -538,7 +548,9 @@ export class ZoteroItem { private patentNumberPrefix = '' // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - constructor(private translation: Translation, private item: any, private bibtex: bibtexParser.Entry, private jabref: bibtexParser.jabref.JabRefMetadata) { + constructor(private translation: Translation, private item: any, private bibtex: BibTeXEntry, private jabref: JabRefMetadata) { + // hard for users to debug, replace with regular spaces + this.bibtex = JSON.parse(JSON.stringify(this.bibtex, (k, v) => (typeof v === 'string' ? v.replace(/\u00A0/g, ' ').trim() : v) as string)) } private fallback(fields: string[], value: string): boolean { @@ -551,11 +563,17 @@ export class ZoteroItem { return false } + protected $crossref(): boolean { + return true + } + protected $title(): boolean { let title: string[] = [] - let len: number + for (const field of ['title', 'titleaddon', 'subtitle']) { - if (len = this.bibtex.fields[field]?.length) title.push(this.bibtex.fields[field][len - 1]) + if (typeof this.bibtex.fields[field] === 'string' || typeof this.bibtex.fields[field] === 'number') { + title.push(`${this.bibtex.fields[field]}`) + } } title = title.filter(unique) @@ -572,7 +590,7 @@ export class ZoteroItem { protected $holder(): boolean { if (this.item.itemType === 'patent') { - this.item.assignee = this.bibtex.fields.holder.map((name: string) => name.replace(/"/g, '')).join('; ') + this.item.assignee = this.bibtex.fields.holder.map(creator => [creator.name, creator.lastName, creator.firstName].filter(name => name).map(name => name.replace(/"/g, '')).join(', ')).join('; ') } return true } @@ -583,11 +601,13 @@ export class ZoteroItem { field = candidates.find(f => this.validFields[f]) if (!field) return this.fallback(candidates, value) + const flatten = (v): string => typeof v === 'string' ? v : Array.isArray(v) ? v.join(' and ') : '' + this.item[field] = [ - (this.bibtex.fields.publisher || []).join(' and '), - (this.bibtex.fields.institution || []).join(' and '), - (this.bibtex.fields.school || []).join(' and '), - (this.bibtex.fields.organization || []).join(' and '), + flatten(this.bibtex.fields.publisher), + flatten(this.bibtex.fields.institution), + flatten(this.bibtex.fields.school), + flatten(this.bibtex.fields.organization), ].filter(v => v.replace(/[ \t\r\n]+/g, ' ').trim()).join(' / ') return true @@ -636,8 +656,8 @@ export class ZoteroItem { return this.set('publicationTitle', value) case 'book': - if ((this.bibtex.fields.title || []).includes(value)) return true - if (this.bibtex.fields.title && this.bibtex.crossref.donated.includes('booktitle')) return true + if (this.bibtex.fields.title && this.bibtex.crossref?.donated.includes('booktitle')) return true + if (this.bibtex.fields.title === value) return true if (!this.item.title) return this.set('title', value) break } @@ -683,9 +703,11 @@ export class ZoteroItem { protected $journaltitle(): boolean { let journal: { field: string, value: string}, abbr: { field: string, value: string} = null + const unpack = (v: string | string[]): string => Array.isArray(v) ? v[0] : (v || '') + // journal-full is bibdesk const titles = [ 'journal-full', 'journal', 'journaltitle', 'shortjournal' ].map(field => { - const value = this.bibtex.fields[field]?.[0] || '' + const value = unpack(this.bibtex.fields[field]) delete this.bibtex.fields[field] // this makes sure we're not ran again return { field, value } }) @@ -719,10 +741,34 @@ export class ZoteroItem { return true }) + // the remainer goes to the `extra` field for (const candidate of titles) { this.extra.push(`tex.${candidate.field}: ${candidate.value}`) } + const resolve = (a: string): string => { + if (!importJabRef.unabbrev) return '' + + a = a.toUpperCase() + let j: string + + if (j = importJabRef.unabbrev[a]) return j + + const m = a.match(/(.*)(\s+\S*\d\S*)$/) + if (m && (j = importJabRef.unabbrev[m[1]])) return `${j}${m[2]}` + + return '' + } + + let resolved: string + if (abbr && !journal && (resolved = resolve(abbr.value))) { + journal = { field: '', value: resolved } + } + else if (journal && !abbr && (resolved = resolve(journal.value))) { + abbr = { ...journal } + journal = { field: '', value: resolved } + } + if (journal) { switch (this.item.itemType) { case 'conferencePaper': @@ -742,7 +788,7 @@ export class ZoteroItem { else if (!this.extra.find(line => line.startsWith('Journal abbreviation:'))) { this.extra.push(`Journal abbreviation: ${abbr.value}`) } - else { + else if (abbr.field) { this.extra.push(`tex.${abbr.field}: ${abbr.value}`) } } @@ -772,12 +818,14 @@ export class ZoteroItem { protected $abstract(value: string): boolean { return this.set('abstractNote', value) } protected $keywords(): boolean { - let tags: string[] = [] + const tags: string[] = [] - const add = (data: string[]) => { - if (!Array.isArray(data)) return - for (const line of data) { - tags = [...tags, ...line.trim().split(/\s*[,;]\s*/).map(t => t.replace(/[\s\r\n]+/g, ' ')).filter(t => t)] + const add = (data: string | string[]) => { + if (typeof data === 'string') { + tags.push(...(data.split(/\s*[,;]\s*/))) + } + else if (data) { + tags.push(...data) } } @@ -786,7 +834,7 @@ export class ZoteroItem { add(this.bibtex.fields.mesh) add(this.bibtex.fields.tags) - this.item.tags = [...(new Set(tags))].sort() + this.item.tags = [...(new Set(tags.map(t => t.replace(/[\s\r\n]+/g, ' ')).filter(t => t)))].sort() return true } protected $keyword(): boolean { return this.$keywords() } @@ -796,15 +844,16 @@ export class ZoteroItem { protected $date(): boolean { if (this.item.date) return true - const dates = (this.bibtex.fields.date || []).slice() + const dates: string[] = [] + if (this.bibtex.fields.date) dates.push(this.bibtex.fields.date) - const year = (this.bibtex.fields.year && this.bibtex.fields.year[0]) || '' + const year = this.bibtex.fields.year || '' - let month = (this.bibtex.fields.month && this.bibtex.fields.month[0]) || '' - const monthno: number = months.indexOf(month.toLowerCase()) - if (monthno >= 0) month = `0${monthno + 1}`.slice(-2) + let month = this.bibtex.fields.month || '' + if (month) month = month.padStart(2, '0') - const day = (this.bibtex.fields.day && this.bibtex.fields.day[0]) || '' + let day = this.bibtex.fields.day || '' + if (day) day = day.padStart(2, '0') if (year && month.match(/^[0-9]+$/) && day.match(/^[0-9]+$/)) { dates.push(`${year}-${month}-${day}`) @@ -877,7 +926,7 @@ export class ZoteroItem { } // eslint-disable-next-line no-control-regex, @typescript-eslint/no-unsafe-return - const parts = record.split(':').map(str => str.replace(/[\u0011\u0012\u0013]/g, escaped => replace[escaped])) + const parts = record.split(':').map(part => part.replace(/[\u0011\u0012\u0013]/g, escaped => replace[escaped])) switch (parts.length) { case 1: att.path = parts[0] @@ -1029,7 +1078,7 @@ export class ZoteroItem { protected $series(value: string): boolean { return this.set('series', value) } protected $collection(value: string): boolean { - return this.bibtex.fields.series ? (this.bibtex.fields.series[0].toLowerCase() === value.toLowerCase()) : this.$series(value) + return this.bibtex.fields.series ? (this.bibtex.fields.series.toLowerCase() === value.toLowerCase()) : this.$series(value) } // horrid jabref 3.8+ groups format @@ -1099,9 +1148,9 @@ export class ZoteroItem { throw new Error(err) } - public import(errors: bibtexParser.ParseError[]): boolean { // eslint-disable-line @typescript-eslint/explicit-module-boundary-types + public import(errors: ParseError[]): boolean { // eslint-disable-line @typescript-eslint/explicit-module-boundary-types if (!Object.keys(this.bibtex.fields).length) { - errors.push({ message: `No fields in ${this.bibtex.key ? `@${this.bibtex.key}` : 'unnamed item'}` }) + errors.push({ error: `No fields in ${this.bibtex.key ? `@${this.bibtex.key}` : 'unnamed item'}`, input: this.bibtex.input }) return false } @@ -1115,7 +1164,7 @@ export class ZoteroItem { log.debug(msg) if (unknown) { if (this.translation.preferences.testing) throw new Error(msg) - errors.push({ message: msg }) + errors.push({ error: msg, input: this.bibtex.input }) } if (this.bibtex.type) this.extra.push(`tex.entrytype: ${this.bibtex.type}`) @@ -1125,12 +1174,12 @@ export class ZoteroItem { this.item.itemType === 'book' && this.bibtex.fields.title?.length && this.bibtex.fields.booktitle?.length - && !this.bibtex.crossref.donated.includes('booktitle')) this.item.itemType = 'bookSection' + && !this.bibtex.crossref?.donated.includes('booktitle')) this.item.itemType = 'bookSection' if ( this.item.itemType === 'journalArticle' && this.bibtex.fields.booktitle?.length - && this.bibtex.fields.booktitle.join('\n').match(/proceeding/i)) this.item.itemType = 'conferencePaper' + && this.bibtex.fields.booktitle.match(/proceeding/i)) this.item.itemType = 'conferencePaper' if (!valid.type[this.item.itemType]) this.error(`import error: unexpected item ${this.bibtex.key} of type ${this.item.itemType}`) this.validFields = valid.field[this.item.itemType] @@ -1176,6 +1225,16 @@ export class ZoteroItem { 'author', 'editor', 'translator', + + 'bookauthor', + 'collaborator', + 'commentator', + 'director', + 'editora', + 'editorb', + 'editors', + 'holder', + 'scriptwriter', ] const creatorTypeMap = { author: 'author', @@ -1195,8 +1254,8 @@ export class ZoteroItem { const creatorTypeRemap: Record = {} for (const creator of creatorTypes) { const creatortype = `${creator}type` - const remapped = creatorTypeMap[this.bibtex.fields[creatortype]?.[0]] - if (remapped) { + const remapped = creatorTypeMap[this.bibtex.fields[creatortype]] + if (typeof remapped === 'string') { creatorTypeRemap[creator] = remapped delete this.bibtex.fields[creatortype] } @@ -1204,13 +1263,11 @@ export class ZoteroItem { Object.assign(creatorTypeMap, creatorTypeRemap) const creatorsForType = Zotero.Utilities.getCreatorsForType(this.item.itemType) - for (const type of creatorTypes.concat(Object.keys(this.bibtex.creators).filter(other => !creatorTypes.includes(other)))) { + for (const type of creatorTypes.filter(t => this.bibtex.fields[t])) { // 'assignee' is not a creator field for Zotero if (type === 'holder' && this.item.itemType === 'patent') continue - if (!this.bibtex.fields[type]) continue - const creators = this.bibtex.fields[type].length ? this.bibtex.creators[type] : [] - delete this.bibtex.fields[type] + const creators: Creator[] = this.bibtex.fields[type] as unknown as Creator[] let creatorType = creatorTypeMap[`${this.item.itemType}.${type}`] || creatorTypeMap[type] if (creatorType === 'author') creatorType = ['director', 'inventor', 'programmer', 'author'].find(t => creatorsForType.includes(t)) @@ -1221,8 +1278,8 @@ export class ZoteroItem { for (const creator of creators) { const name: {lastName?: string, firstName?: string, fieldMode?: number, creatorType: string } = { creatorType } - if (creator.literal) { - name.lastName = creator.literal.replace(/\u00A0/g, ' ') + if (creator.name) { + name.lastName = creator.name name.fieldMode = 1 } else { @@ -1230,25 +1287,19 @@ export class ZoteroItem { name.lastName = creator.lastName || '' if (creator.prefix) name.lastName = `${creator.prefix} ${name.lastName}`.trim() if (creator.suffix) name.firstName = name.firstName ? `${name.firstName}, ${creator.suffix}` : creator.suffix - name.firstName = name.firstName.replace(/\u00A0/g, ' ').trim() - name.lastName = name.lastName.replace(/\u00A0/g, ' ').trim() if (name.lastName && !name.firstName) name.fieldMode = 1 } this.item.creators.push(name) } - } - // do this before because some handlers directly access this.bibtex.fields - for (const [field, values] of Object.entries(this.bibtex.fields)) { - this.bibtex.fields[field] = values.map(value => typeof value === 'string' ? value.replace(/\u00A0/g, ' ').trim() : `${value}`) + delete this.bibtex.fields[type] } const zoteroField = { conference: 'conferenceName', } - if (this.item.itemType === 'patent' && this.bibtex.fields.type) { this.patentNumberPrefix = { patent: '', @@ -1258,22 +1309,26 @@ export class ZoteroItem { patentdede: 'DE', patentde: 'DE', patentfr: 'FR', - }[this.bibtex.fields.type[0].toLowerCase()] || '' + }[this.bibtex.fields.type.toLowerCase()] || '' } const urls: Set = new Set - for (const field of ['url', 'howpublished', 'remote-url']) { - if (this.bibtex.fields[field]) { - this.bibtex.fields[field] = this.bibtex.fields[field].filter(url => !this.$url(url, field, urls)) - } - } + for (let [field, values] of Object.entries(this.bibtex.fields)) { + if (Array.isArray(values) && this.bibtex.mode[field] === 'literallist') values = values.join(' and ') + if (typeof values === 'string') values = [ values ] - for (const [field, values] of Object.entries(this.bibtex.fields)) { for (const value of values) { - if (field.match(/^(local-zo-url-[0-9]+|file-[0-9]+)$/)) { + if (this.bibtex.mode[field] === 'creatorlist' && this[`$${field}`]?.(value, field)) continue + + if (typeof value !== 'string') { + errors.push({ error: `unexpected value ${JSON.stringify(value)} for ${field}`, input: JSON.stringify(value) }) + continue + } + + if (field.match(/^(local-zo-url-[0-9]+|file-[0-9]+)$/) || field.match(/^file[+]duplicate-\d+$/)) { if (this.$file(value)) continue } - else if (field.match(/^bdsk-url-[0-9]+$/)) { + else if (field.match(/^(bdsk-url-[0-9]+|url|howpublished|remote-url)$/)) { if (this.$url(value, field, urls)) continue } else if (field.match(/^bdsk-file-[0-9]+$/)) { diff --git a/translators/bibtex/entry.ts b/translators/bibtex/entry.ts index cb49818c69..8dddca1dbb 100644 --- a/translators/bibtex/entry.ts +++ b/translators/bibtex/entry.ts @@ -56,10 +56,19 @@ const fieldOrder = [ 'editoratype', 'editorb', 'editorbtype', + 'editorc', + 'editorctype', 'translator', 'translatortype', 'holder', 'holdertype', + 'with', + 'namea', + 'nameatype', + 'nameb', + 'namebtype', + 'namec', + 'namectype', 'options', 'date', 'origdate', @@ -114,7 +123,7 @@ const enc_creators_marker = { const isBibString = /^[a-z][-a-z0-9_]*$/i export type Config = { - fieldEncoding: Record + fieldEncoding: Record caseConversion: Record typeMap: { csl: Record @@ -181,7 +190,7 @@ export class Entry { private metadata: Cache.ExportedItemMetadata = { DeclarePrefChars: '', noopsort: false, packages: [] } private packages: Record = {} private juniorcomma: boolean - private translation: Translation + public translation: Translation public lint(_explanation: Record): string[] { return [] @@ -390,12 +399,12 @@ export class Entry { } /** normalize dashes, mainly for use in `pages` */ - public normalizeDashes(str): string { - str = (str || '').trim() + public normalizeDashes(ranges: string): string { + ranges = (ranges || '').trim() - if (this.item.raw) return str + if (this.item.raw) return ranges - return str + return ranges .replace(/\u2053/g, '~') .replace(/[\u2014\u2015]/g, '---') // em-dash .replace(/[\u2012\u2013]/g, '--') // en-dash @@ -514,6 +523,10 @@ export class Entry { else { let value switch (field.enc) { + case 'extra': + value = this.enc_extra(field) + break + case 'literal_list': value = this.enc_literal_list(field, { raw: this.item.raw }) break @@ -775,7 +788,7 @@ export class Entry { } } - this.add({ name: 'annotation', value: this.item.extra?.replace(/\n+/g, newlines => (newlines.length > 1 ? '\n\n' : ' ')).trim() }) + this.add({ name: 'annotation', value: this.item.extra, enc: 'extra' }) if (this.translation.options.exportNotes) { // if bibtexURL === 'note' is active, the note field will have been filled with an URL. In all other cases, if this is attempting to overwrite the 'note' field, I want the test suite to throw an error @@ -985,7 +998,10 @@ export class Entry { const encoded = [] for (const creator of f.value) { let name - if (creator.name || (creator.lastName && (creator.fieldMode === 1))) { + if (creator.name && raw) { + name = creator.name + } + else if (creator.name || (creator.lastName && (creator.fieldMode === 1))) { name = creator.name || creator.lastName if (name !== 'others') name = raw ? `{${name}}` : this.enc_literal({value: new String(this._enc_creators_scrub_name(name))}) // eslint-disable-line no-new-wrappers @@ -1029,12 +1045,25 @@ export class Entry { } /* - * Encode text to LaTeX + * Encode extra field to LaTeX + * + * This encoding supports plaintext with newlines + * + * @param {field} field to encode. + * @return {String} field.value encoded as latex + */ + protected enc_extra(f) { + return this.enc_literal({ value: f.value.replace(/\n/g, '\x0E') }).replace(/\x0E/g, newlines => newlines.length === 1 ? '\\\\\n' : '\n\n') // eslint-disable-line no-control-regex + } + + /* + /* + * Encode list to LaTeX * * This encoding supports simple HTML markup. * * @param {field} field to encode. - * @return {String} field.value encoded as author-style value + * @return {String} field.value encoded as list of literals */ protected enc_literal_list(f, options: { raw?: boolean } = {}) { const list = Array.isArray(f.value) ? f.value : [ f.value ] @@ -1514,9 +1543,9 @@ export class Entry { } } - private unique_chars(str) { + private unique_chars(bag: string): string { let uniq = '' - for (const c of str) { + for (const c of bag) { if (uniq.indexOf(c) < 0) uniq += c } return uniq diff --git a/translators/bibtex/exporter.ts b/translators/bibtex/exporter.ts index 9d83dc7664..580b2af76a 100644 --- a/translators/bibtex/exporter.ts +++ b/translators/bibtex/exporter.ts @@ -33,7 +33,7 @@ export class Exporter { if (!this.translation.BetterTeX || !this.translation.preferences.strings) return if (this.translation.BetterTeX && this.translation.preferences.exportBibTeXStrings.startsWith('match')) { - this.strings = bibtexParser.parse(this.translation.preferences.strings, { markup: (this.translation.csquotes ? { enquote: this.translation.csquotes } : {}) }).strings + this.strings = bibtexParser.parse(this.translation.preferences.strings).strings for (const [k, v] of Object.entries(this.strings)) { this.strings_reverse[v.toUpperCase()] = k.toUpperCase() } diff --git a/translators/lib/translator.ts b/translators/lib/translator.ts index c0e4d389fd..8b9038dde0 100644 --- a/translators/lib/translator.ts +++ b/translators/lib/translator.ts @@ -2,11 +2,13 @@ declare const Zotero: any declare const __estrace: any // eslint-disable-line no-underscore-dangle import { Shim } from '../../content/os' -const $OS = typeof OS !== 'undefined' ? OS : Shim +import { is7 } from '../../content/client' +const $OS = is7 ? Shim : OS import * as Prefs from '../../gen/preferences/meta' const PrefNames: Set = new Set(Object.keys(Prefs.defaults)) import { client } from '../../content/client' +import { regex as escapeRE } from '../../content/escape' import { RegularItem, Item, Collection, Attachment } from '../../gen/typings/serialized-item' import type { Exporter as BibTeXExporter } from '../bibtex/exporter' import type { ZoteroItem } from '../bibtex/bibtex' @@ -172,10 +174,6 @@ export class Collections { } } -function escapeRegExp(text: string): string { - return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} - export type Input = { items: Items collections: Collections @@ -278,6 +276,8 @@ export class Translation { // eslint-disable-line @typescript-eslint/naming-conv quickCopyMode?: string dropAttachments?: boolean exportNotes?: boolean + biblatexAPA?: boolean + biblatexChicago?: boolean markdown?: boolean exportFileData?: boolean useJournalAbbreviation?: boolean @@ -384,11 +384,11 @@ export class Translation { // eslint-disable-line @typescript-eslint/naming-conv translation.preferences.separatorNames = translation.preferences.separatorNames.trim() translation.and = { list: { - re: new RegExp(escapeRegExp(translation.preferences.separatorList), 'g'), + re: new RegExp(escapeRE(translation.preferences.separatorList), 'g'), repl: ` {${translation.preferences.separatorList}} `, }, names: { - re: new RegExp(` ${escapeRegExp(translation.preferences.separatorNames)} `, 'g'), + re: new RegExp(` ${escapeRE(translation.preferences.separatorNames)} `, 'g'), repl: ` {${translation.preferences.separatorNames}} `, }, } @@ -427,7 +427,7 @@ export class Translation { // eslint-disable-line @typescript-eslint/naming-conv this[translator.label.replace(/[^a-z]/ig, '')] = true this.BetterTeX = this.BetterBibTeX || this.BetterBibLaTeX this.BetterCSL = this.BetterCSLJSON || this.BetterCSLYAML - this.options = translator.displayOptions || {} + this.options = {...(translator.displayOptions || {})} this.platform = (Zotero.getHiddenPref('better-bibtex.platform') as string) this.isJurisM = client === 'jurism' @@ -444,15 +444,8 @@ export class Translation { // eslint-disable-line @typescript-eslint/naming-conv catch (err) { } - for (const key in this.options) { - if (typeof this.options[key] === 'boolean') { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - this.options[key] = Zotero.getOption(key) - } - else { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - this.options[key] = !!Zotero.getOption(key) - } + for (const key in this.options) { // eslint-disable-line guard-for-in + this.options[key] = !!Zotero.getOption(key) } this.options.custom = Zotero.getOption('custom') // for pandoc-filter CSL diff --git a/typings/async-indexed-db.d.ts b/typings/async-indexed-db.d.ts new file mode 100644 index 0000000000..7f54dfe874 --- /dev/null +++ b/typings/async-indexed-db.d.ts @@ -0,0 +1,34 @@ +declare module 'async-indexed-db' { + class AsyncIndexedDB { + public name: string + public db: IDBDatabase + + constructor(name: string, schema: (db: IDBDatabase) => Promise, version: number) + + static proxy(obj: any): any + } + + export class AsyncIDBObjectStore { + name: string + keyPath: string | string[] | null + indexNames: DOMStringList + // transaction: IDBTransaction + autoIncrement: boolean + async add(value: any, key?: IDBValidKey | IDBKeyRange | null): Promise + clear(): Promise + // count(key?: IDBValidKey | IDBKeyRange | null): IDBRequest + // createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex + // delete(key: IDBValidKey | IDBKeyRange): IDBRequest + // deleteIndex(indexName: string): void + // get(key: IDBValidKey | IDBKeyRange): IDBRequest + // getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest + // getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest + // getKey(key: IDBValidKey | IDBKeyRange): IDBRequest + // index(name: string): IDBIndex + // openCursor(range?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest + // openKeyCursor(range?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest + // put(value: any, key?: IDBValidKey | IDBKeyRange | null): IDBRequest + } + + export = AsyncIndexedDB +} diff --git a/typings/global.d.ts b/typings/global.d.ts index f828be159a..f963ba9f5e 100644 --- a/typings/global.d.ts +++ b/typings/global.d.ts @@ -70,11 +70,13 @@ interface ZoteroItem { toJSON: () => import('../gen/typings/serialized-item').Item } -// https://stackoverflow.com/questions/39040108/import-class-in-definition-file-d-ts -declare const Zotero: { - [attr: string]: any +type GlobalBBT = { + // https://stackoverflow.com/questions/39040108/import-class-in-definition-file-d-ts BetterBibTeX: import('../content/better-bibtex').BetterBibTeX } +type ZoteroObject = GlobalBBT & Omit, keyof GlobalBBT> +declare const Zotero: ZoteroObject declare const Components: any declare const Services: any +declare const rootURI: string diff --git a/typings/puqeue/index.d.ts b/typings/puqeue.d.ts similarity index 100% rename from typings/puqeue/index.d.ts rename to typings/puqeue.d.ts diff --git a/typings/translators.d.ts b/typings/translators.d.ts index 5a17f6120f..a754eefed2 100644 --- a/typings/translators.d.ts +++ b/typings/translators.d.ts @@ -45,7 +45,7 @@ export namespace Translators { name: string verbatim?: string value: string | string[] | number | null | Attachment[] | Tag[] - enc?: 'raw' | 'url' | 'verbatim' | 'creators' | 'literal' | 'literal_list' | 'latex' | 'tags' | 'attachments' | 'date' | 'minimal' | 'bibtex' | 'biblatex' + enc?: 'raw' | 'url' | 'verbatim' | 'creators' | 'literal' | 'literal_list' | 'latex' | 'tags' | 'attachments' | 'date' | 'minimal' | 'bibtex' | 'biblatex' | 'extra' orig?: { name?: string, verbatim?: string, inherit?: boolean } bibtexStrings?: boolean bare?: boolean @@ -84,6 +84,8 @@ export namespace Translators { exportNotes?: boolean, exportFileData?: boolean useJournalAbbreviation?: boolean + biblatexAPA?: boolean + biblatexChicago?: boolean keepUpdated?: boolean worker?: boolean markdown?: boolean