mystmd 1.3.25__py3-none-any.whl → 1.3.26__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
mystmd_py/myst.cjs CHANGED
@@ -21087,20 +21087,20 @@ Expecting one of '${allowedValues.join("', '")}'`);
21087
21087
  *
21088
21088
  * @api private
21089
21089
  */
21090
- _prepareUserArgs(argv, parseOptions2) {
21090
+ _prepareUserArgs(argv, parseOptions3) {
21091
21091
  if (argv !== void 0 && !Array.isArray(argv)) {
21092
21092
  throw new Error("first parameter to parse must be array or undefined");
21093
21093
  }
21094
- parseOptions2 = parseOptions2 || {};
21094
+ parseOptions3 = parseOptions3 || {};
21095
21095
  if (argv === void 0) {
21096
21096
  argv = process11.argv;
21097
21097
  if (process11.versions && process11.versions.electron) {
21098
- parseOptions2.from = "electron";
21098
+ parseOptions3.from = "electron";
21099
21099
  }
21100
21100
  }
21101
21101
  this.rawArgs = argv.slice();
21102
21102
  let userArgs;
21103
- switch (parseOptions2.from) {
21103
+ switch (parseOptions3.from) {
21104
21104
  case void 0:
21105
21105
  case "node":
21106
21106
  this._scriptPath = argv[1];
@@ -21118,7 +21118,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
21118
21118
  userArgs = argv.slice(0);
21119
21119
  break;
21120
21120
  default:
21121
- throw new Error(`unexpected parse option { from: '${parseOptions2.from}' }`);
21121
+ throw new Error(`unexpected parse option { from: '${parseOptions3.from}' }`);
21122
21122
  }
21123
21123
  if (!this._name && this._scriptPath)
21124
21124
  this.nameFromFilename(this._scriptPath);
@@ -21141,8 +21141,8 @@ Expecting one of '${allowedValues.join("', '")}'`);
21141
21141
  * @param {string} [parseOptions.from] - where the args are from: 'node', 'user', 'electron'
21142
21142
  * @return {Command} `this` command for chaining
21143
21143
  */
21144
- parse(argv, parseOptions2) {
21145
- const userArgs = this._prepareUserArgs(argv, parseOptions2);
21144
+ parse(argv, parseOptions3) {
21145
+ const userArgs = this._prepareUserArgs(argv, parseOptions3);
21146
21146
  this._parseCommand([], userArgs);
21147
21147
  return this;
21148
21148
  }
@@ -21164,8 +21164,8 @@ Expecting one of '${allowedValues.join("', '")}'`);
21164
21164
  * @param {string} parseOptions.from - where the args are from: 'node', 'user', 'electron'
21165
21165
  * @return {Promise}
21166
21166
  */
21167
- async parseAsync(argv, parseOptions2) {
21168
- const userArgs = this._prepareUserArgs(argv, parseOptions2);
21167
+ async parseAsync(argv, parseOptions3) {
21168
+ const userArgs = this._prepareUserArgs(argv, parseOptions3);
21169
21169
  await this._parseCommand([], userArgs);
21170
21170
  return this;
21171
21171
  }
@@ -81027,471 +81027,6 @@ var require_he = __commonJS({
81027
81027
  }
81028
81028
  });
81029
81029
 
81030
- // ../../node_modules/nbtx/dist/cjs/minify/utils.js
81031
- var require_utils6 = __commonJS({
81032
- "../../node_modules/nbtx/dist/cjs/minify/utils.js"(exports2) {
81033
- "use strict";
81034
- Object.defineProperty(exports2, "__esModule", { value: true });
81035
- exports2.ensureString = exports2.walkOutputs = exports2.ensureSafePath = exports2.isNotNull = exports2.DEFAULT_HASH_WARNING = exports2.TRUNCATED_CHARS_COUNT = exports2.MAX_CHARS = void 0;
81036
- exports2.MAX_CHARS = 25e3;
81037
- exports2.TRUNCATED_CHARS_COUNT = 64;
81038
- function DEFAULT_HASH_WARNING(content3) {
81039
- console.warn('nbtx is not using a hashing library to create the hash.\nThe IDs generated are random, please provide a `computeHash` function, for example using "crypto".\nSee nbtx README for more information.');
81040
- return `not-a-hash-${Math.random().toString(36).slice(2)}${Math.random().toString(36).slice(2)}`;
81041
- }
81042
- exports2.DEFAULT_HASH_WARNING = DEFAULT_HASH_WARNING;
81043
- function isNotNull(arg2) {
81044
- return arg2 != null;
81045
- }
81046
- exports2.isNotNull = isNotNull;
81047
- function ensureSafePath(path44) {
81048
- return path44.replace("/", "-");
81049
- }
81050
- exports2.ensureSafePath = ensureSafePath;
81051
- function walkOutputs2(outputs, func) {
81052
- outputs.forEach((output2) => {
81053
- if ("data" in output2 && output2.data) {
81054
- Object.entries(output2.data).forEach(([, bundle]) => {
81055
- func(bundle);
81056
- });
81057
- } else {
81058
- func(output2);
81059
- }
81060
- });
81061
- }
81062
- exports2.walkOutputs = walkOutputs2;
81063
- function ensureString3(maybeString, joinWith = "") {
81064
- if (!maybeString)
81065
- return "";
81066
- if (typeof maybeString === "string")
81067
- return maybeString;
81068
- if (maybeString.join)
81069
- return maybeString.join(joinWith);
81070
- return maybeString;
81071
- }
81072
- exports2.ensureString = ensureString3;
81073
- }
81074
- });
81075
-
81076
- // ../../node_modules/nbtx/dist/cjs/minify/mime.js
81077
- var require_mime = __commonJS({
81078
- "../../node_modules/nbtx/dist/cjs/minify/mime.js"(exports2) {
81079
- "use strict";
81080
- var __awaiter = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
81081
- function adopt(value) {
81082
- return value instanceof P ? value : new P(function(resolve9) {
81083
- resolve9(value);
81084
- });
81085
- }
81086
- return new (P || (P = Promise))(function(resolve9, reject) {
81087
- function fulfilled(value) {
81088
- try {
81089
- step(generator.next(value));
81090
- } catch (e2) {
81091
- reject(e2);
81092
- }
81093
- }
81094
- function rejected(value) {
81095
- try {
81096
- step(generator["throw"](value));
81097
- } catch (e2) {
81098
- reject(e2);
81099
- }
81100
- }
81101
- function step(result) {
81102
- result.done ? resolve9(result.value) : adopt(result.value).then(fulfilled, rejected);
81103
- }
81104
- step((generator = generator.apply(thisArg, _arguments || [])).next());
81105
- });
81106
- };
81107
- Object.defineProperty(exports2, "__esModule", { value: true });
81108
- exports2.minifyMimeOutput = void 0;
81109
- var utils_1 = require_utils6();
81110
- function minifyContent(content3, contentType, isBase64Image, outputCache, opts) {
81111
- if (!isBase64Image && content3 && content3.length <= opts.maxCharacters) {
81112
- return { content: content3, content_type: contentType };
81113
- }
81114
- let hash;
81115
- if (isBase64Image) {
81116
- const [data] = content3.split(";base64,").reverse();
81117
- hash = opts.computeHash(data);
81118
- outputCache[hash] = [data, { contentType, encoding: "base64" }];
81119
- } else {
81120
- hash = opts.computeHash(content3);
81121
- outputCache[hash] = [content3, { contentType, encoding: "utf8" }];
81122
- }
81123
- return {
81124
- content_type: contentType,
81125
- hash
81126
- };
81127
- }
81128
- function minifyMimeOutput(output2, outputCache, opts) {
81129
- return __awaiter(this, void 0, void 0, function* () {
81130
- const items = yield Promise.all(Object.entries(output2.data).map(([mimetype, mimeContent]) => __awaiter(this, void 0, void 0, function* () {
81131
- let isBase64Image = false;
81132
- let stringContent = "";
81133
- if (mimetype !== "application/javascript" && (mimetype === "application/json" || mimetype.startsWith("application/") && typeof mimeContent === "object")) {
81134
- stringContent = JSON.stringify(mimeContent);
81135
- } else {
81136
- stringContent = (0, utils_1.ensureString)(mimeContent);
81137
- }
81138
- if (!mimetype.startsWith("image/svg") && mimetype.startsWith("image/")) {
81139
- isBase64Image = true;
81140
- }
81141
- return minifyContent(stringContent, mimetype, isBase64Image, outputCache, opts);
81142
- })));
81143
- const data = items.reduce((bundle, item) => Object.assign(Object.assign({}, bundle), { [item.content_type]: item }), {});
81144
- return {
81145
- output_type: output2.output_type,
81146
- execution_count: output2.execution_count,
81147
- metadata: output2.metadata,
81148
- data
81149
- };
81150
- });
81151
- }
81152
- exports2.minifyMimeOutput = minifyMimeOutput;
81153
- }
81154
- });
81155
-
81156
- // ../../node_modules/nbtx/dist/cjs/minify/text.js
81157
- var require_text2 = __commonJS({
81158
- "../../node_modules/nbtx/dist/cjs/minify/text.js"(exports2) {
81159
- "use strict";
81160
- var __awaiter = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
81161
- function adopt(value) {
81162
- return value instanceof P ? value : new P(function(resolve9) {
81163
- resolve9(value);
81164
- });
81165
- }
81166
- return new (P || (P = Promise))(function(resolve9, reject) {
81167
- function fulfilled(value) {
81168
- try {
81169
- step(generator.next(value));
81170
- } catch (e2) {
81171
- reject(e2);
81172
- }
81173
- }
81174
- function rejected(value) {
81175
- try {
81176
- step(generator["throw"](value));
81177
- } catch (e2) {
81178
- reject(e2);
81179
- }
81180
- }
81181
- function step(result) {
81182
- result.done ? resolve9(result.value) : adopt(result.value).then(fulfilled, rejected);
81183
- }
81184
- step((generator = generator.apply(thisArg, _arguments || [])).next());
81185
- });
81186
- };
81187
- Object.defineProperty(exports2, "__esModule", { value: true });
81188
- exports2.minifyErrorOutput = exports2.minifyStreamOutput = void 0;
81189
- var utils_1 = require_utils6();
81190
- function ensureStringEnsureNewlines(maybeString) {
81191
- return typeof maybeString === "string" ? maybeString : maybeString === null || maybeString === void 0 ? void 0 : maybeString.join("\n");
81192
- }
81193
- function minifyStringOutput(output2, fieldName, outputCache, opts) {
81194
- return __awaiter(this, void 0, void 0, function* () {
81195
- if (!output2[fieldName]) {
81196
- throw Error(`Bad Field name ${fieldName} for output type ${output2.output_type}`);
81197
- }
81198
- const text7 = opts.ensureNewlines ? ensureStringEnsureNewlines(output2[fieldName]) : (0, utils_1.ensureString)(output2[fieldName]);
81199
- if (text7 && text7.length <= opts.maxCharacters) {
81200
- return Object.assign(Object.assign({}, output2), { [fieldName]: text7 });
81201
- }
81202
- const hash = opts.computeHash(text7);
81203
- outputCache[hash] = [text7, { contentType: "text/plain", encoding: "utf8" }];
81204
- return Object.assign(Object.assign({}, output2), { hash, [fieldName]: `${text7.slice(0, opts.truncateTo - 3)}...` });
81205
- });
81206
- }
81207
- var minifyStreamOutput = (output2, outputCache, opts) => __awaiter(void 0, void 0, void 0, function* () {
81208
- return minifyStringOutput(output2, "text", outputCache, opts);
81209
- });
81210
- exports2.minifyStreamOutput = minifyStreamOutput;
81211
- var minifyErrorOutput = (output2, outputCache, opts) => __awaiter(void 0, void 0, void 0, function* () {
81212
- return minifyStringOutput(output2, "traceback", outputCache, Object.assign({ ensureNewlines: true }, opts));
81213
- });
81214
- exports2.minifyErrorOutput = minifyErrorOutput;
81215
- }
81216
- });
81217
-
81218
- // ../../node_modules/nbtx/dist/cjs/minify/minify.js
81219
- var require_minify = __commonJS({
81220
- "../../node_modules/nbtx/dist/cjs/minify/minify.js"(exports2) {
81221
- "use strict";
81222
- var __awaiter = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
81223
- function adopt(value) {
81224
- return value instanceof P ? value : new P(function(resolve9) {
81225
- resolve9(value);
81226
- });
81227
- }
81228
- return new (P || (P = Promise))(function(resolve9, reject) {
81229
- function fulfilled(value) {
81230
- try {
81231
- step(generator.next(value));
81232
- } catch (e2) {
81233
- reject(e2);
81234
- }
81235
- }
81236
- function rejected(value) {
81237
- try {
81238
- step(generator["throw"](value));
81239
- } catch (e2) {
81240
- reject(e2);
81241
- }
81242
- }
81243
- function step(result) {
81244
- result.done ? resolve9(result.value) : adopt(result.value).then(fulfilled, rejected);
81245
- }
81246
- step((generator = generator.apply(thisArg, _arguments || [])).next());
81247
- });
81248
- };
81249
- Object.defineProperty(exports2, "__esModule", { value: true });
81250
- exports2.minifyCellOutput = void 0;
81251
- var mime_1 = require_mime();
81252
- var text_1 = require_text2();
81253
- var utils_1 = require_utils6();
81254
- function minifyOneOutputItem(output2, outputCache, opts) {
81255
- return __awaiter(this, void 0, void 0, function* () {
81256
- if (!("output_type" in output2))
81257
- return null;
81258
- switch (output2.output_type) {
81259
- case "stream":
81260
- return (0, text_1.minifyStreamOutput)(output2, outputCache, opts);
81261
- case "error":
81262
- return (0, text_1.minifyErrorOutput)(output2, outputCache, opts);
81263
- case "update_display_data":
81264
- case "display_data":
81265
- case "execute_result":
81266
- return (0, mime_1.minifyMimeOutput)(output2, outputCache, opts);
81267
- default:
81268
- return null;
81269
- }
81270
- });
81271
- }
81272
- function minifyCellOutput2(outputs, outputCache, opts = {}) {
81273
- var _a6, _b, _c;
81274
- return __awaiter(this, void 0, void 0, function* () {
81275
- const options = {
81276
- maxCharacters: (_a6 = opts.maxCharacters) !== null && _a6 !== void 0 ? _a6 : utils_1.MAX_CHARS,
81277
- truncateTo: (_b = opts.truncateTo) !== null && _b !== void 0 ? _b : utils_1.TRUNCATED_CHARS_COUNT,
81278
- computeHash: (_c = opts.computeHash) !== null && _c !== void 0 ? _c : utils_1.DEFAULT_HASH_WARNING
81279
- };
81280
- const minifiedOrNull = yield Promise.all(outputs.map((output2) => __awaiter(this, void 0, void 0, function* () {
81281
- return minifyOneOutputItem(output2, outputCache, options);
81282
- })));
81283
- return minifiedOrNull.filter(utils_1.isNotNull);
81284
- });
81285
- }
81286
- exports2.minifyCellOutput = minifyCellOutput2;
81287
- }
81288
- });
81289
-
81290
- // ../../node_modules/nbtx/dist/cjs/minify/convert.js
81291
- var require_convert = __commonJS({
81292
- "../../node_modules/nbtx/dist/cjs/minify/convert.js"(exports2) {
81293
- "use strict";
81294
- var __rest = exports2 && exports2.__rest || function(s5, e2) {
81295
- var t2 = {};
81296
- for (var p5 in s5)
81297
- if (Object.prototype.hasOwnProperty.call(s5, p5) && e2.indexOf(p5) < 0)
81298
- t2[p5] = s5[p5];
81299
- if (s5 != null && typeof Object.getOwnPropertySymbols === "function")
81300
- for (var i2 = 0, p5 = Object.getOwnPropertySymbols(s5); i2 < p5.length; i2++) {
81301
- if (e2.indexOf(p5[i2]) < 0 && Object.prototype.propertyIsEnumerable.call(s5, p5[i2]))
81302
- t2[p5[i2]] = s5[p5[i2]];
81303
- }
81304
- return t2;
81305
- };
81306
- Object.defineProperty(exports2, "__esModule", { value: true });
81307
- exports2.convertToIOutputs = void 0;
81308
- function convertToIOutputs(minified, outputCache) {
81309
- return minified.map((m2) => {
81310
- switch (m2.output_type) {
81311
- case "stream": {
81312
- const { hash } = m2, rest = __rest(m2, ["hash"]);
81313
- if (hash && outputCache[hash]) {
81314
- return Object.assign(Object.assign({}, rest), { text: outputCache[hash][0] });
81315
- }
81316
- return rest;
81317
- }
81318
- case "error": {
81319
- const { hash, traceback } = m2, rest = __rest(m2, ["hash", "traceback"]);
81320
- if (hash && outputCache[hash]) {
81321
- return Object.assign(Object.assign({}, rest), { traceback: [outputCache[hash][0]] });
81322
- }
81323
- return Object.assign(Object.assign({}, rest), { traceback: [traceback] });
81324
- }
81325
- default: {
81326
- return Object.assign(Object.assign({}, m2), { data: Object.entries(m2.data).reduce((acc, [mimetype, payload]) => {
81327
- let { content: content3 } = payload;
81328
- const { hash } = payload;
81329
- if (hash && outputCache[hash]) {
81330
- [content3] = outputCache[hash];
81331
- }
81332
- if (content3 && mimetype !== "application/javascript" && mimetype.startsWith("application/")) {
81333
- try {
81334
- content3 = JSON.parse(content3);
81335
- } catch (e2) {
81336
- console.debug(`${mimetype} is not json parsable, leaving as is`);
81337
- }
81338
- }
81339
- if (content3 && mimetype.startsWith("image/") && !mimetype.startsWith("image/svg") && content3.startsWith("data:") && content3.includes(";base64,")) {
81340
- const [data] = content3.split(";base64,").reverse();
81341
- content3 = data;
81342
- }
81343
- if (!content3)
81344
- return acc;
81345
- return Object.assign(Object.assign({}, acc), { [mimetype]: content3 });
81346
- }, {}) });
81347
- }
81348
- }
81349
- });
81350
- }
81351
- exports2.convertToIOutputs = convertToIOutputs;
81352
- }
81353
- });
81354
-
81355
- // ../../node_modules/nbtx/dist/cjs/minify/types.js
81356
- var require_types = __commonJS({
81357
- "../../node_modules/nbtx/dist/cjs/minify/types.js"(exports2) {
81358
- "use strict";
81359
- Object.defineProperty(exports2, "__esModule", { value: true });
81360
- }
81361
- });
81362
-
81363
- // ../../node_modules/nbtx/dist/cjs/minify/index.js
81364
- var require_minify2 = __commonJS({
81365
- "../../node_modules/nbtx/dist/cjs/minify/index.js"(exports2) {
81366
- "use strict";
81367
- var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m2, k, k2) {
81368
- if (k2 === void 0)
81369
- k2 = k;
81370
- var desc = Object.getOwnPropertyDescriptor(m2, k);
81371
- if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
81372
- desc = { enumerable: true, get: function() {
81373
- return m2[k];
81374
- } };
81375
- }
81376
- Object.defineProperty(o, k2, desc);
81377
- } : function(o, m2, k, k2) {
81378
- if (k2 === void 0)
81379
- k2 = k;
81380
- o[k2] = m2[k];
81381
- });
81382
- var __exportStar = exports2 && exports2.__exportStar || function(m2, exports3) {
81383
- for (var p5 in m2)
81384
- if (p5 !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p5))
81385
- __createBinding(exports3, m2, p5);
81386
- };
81387
- Object.defineProperty(exports2, "__esModule", { value: true });
81388
- exports2.convertToIOutputs = exports2.minifyCellOutput = void 0;
81389
- var minify_1 = require_minify();
81390
- Object.defineProperty(exports2, "minifyCellOutput", { enumerable: true, get: function() {
81391
- return minify_1.minifyCellOutput;
81392
- } });
81393
- var convert_1 = require_convert();
81394
- Object.defineProperty(exports2, "convertToIOutputs", { enumerable: true, get: function() {
81395
- return convert_1.convertToIOutputs;
81396
- } });
81397
- __exportStar(require_types(), exports2);
81398
- __exportStar(require_utils6(), exports2);
81399
- }
81400
- });
81401
-
81402
- // ../../node_modules/nbtx/dist/cjs/types.js
81403
- var require_types2 = __commonJS({
81404
- "../../node_modules/nbtx/dist/cjs/types.js"(exports2) {
81405
- "use strict";
81406
- Object.defineProperty(exports2, "__esModule", { value: true });
81407
- exports2.CELL_TYPES = exports2.KnownCellOutputMimeTypes = void 0;
81408
- var KnownCellOutputMimeTypes;
81409
- (function(KnownCellOutputMimeTypes2) {
81410
- KnownCellOutputMimeTypes2["TextPlain"] = "text/plain";
81411
- KnownCellOutputMimeTypes2["TextHtml"] = "text/html";
81412
- KnownCellOutputMimeTypes2["TextLatex"] = "text/latex";
81413
- KnownCellOutputMimeTypes2["ImagePng"] = "image/png";
81414
- KnownCellOutputMimeTypes2["ImageBmp"] = "image/bmp";
81415
- KnownCellOutputMimeTypes2["ImageJpeg"] = "image/jpeg";
81416
- KnownCellOutputMimeTypes2["ImageSvg"] = "image/svg+xml";
81417
- KnownCellOutputMimeTypes2["ImageGif"] = "image/gif";
81418
- KnownCellOutputMimeTypes2["AppJson"] = "application/json";
81419
- KnownCellOutputMimeTypes2["AppGeoJson"] = "application/geo+json";
81420
- KnownCellOutputMimeTypes2["AppPlotly"] = "application/vnd.plotly.v1+json";
81421
- KnownCellOutputMimeTypes2["AppVega"] = "application/vnd.vega.v5+json";
81422
- KnownCellOutputMimeTypes2["AppVegaLite"] = "application/vnd.vegalite.v3+json";
81423
- KnownCellOutputMimeTypes2["AppVirtualDom"] = "application/vdom.v1+json";
81424
- KnownCellOutputMimeTypes2["AppJavascript"] = "application/javascript";
81425
- KnownCellOutputMimeTypes2["AppWidgetView"] = "application/vnd.jupyter.widget-view+json";
81426
- KnownCellOutputMimeTypes2["AppWidgetState"] = "application/vnd.jupyter.widget-state+json";
81427
- KnownCellOutputMimeTypes2["AppBokehLoad"] = "application/vnd.bokehjs_load.v0+json";
81428
- KnownCellOutputMimeTypes2["AppBokehExec"] = "application/vnd.bokehjs_exec.v0+json";
81429
- })(KnownCellOutputMimeTypes = exports2.KnownCellOutputMimeTypes || (exports2.KnownCellOutputMimeTypes = {}));
81430
- var CELL_TYPES2;
81431
- (function(CELL_TYPES3) {
81432
- CELL_TYPES3["raw"] = "raw";
81433
- CELL_TYPES3["markdown"] = "markdown";
81434
- CELL_TYPES3["code"] = "code";
81435
- })(CELL_TYPES2 = exports2.CELL_TYPES || (exports2.CELL_TYPES = {}));
81436
- }
81437
- });
81438
-
81439
- // ../../node_modules/nbtx/dist/cjs/utils.js
81440
- var require_utils7 = __commonJS({
81441
- "../../node_modules/nbtx/dist/cjs/utils.js"(exports2) {
81442
- "use strict";
81443
- Object.defineProperty(exports2, "__esModule", { value: true });
81444
- exports2.extFromMimeType = void 0;
81445
- var types_1 = require_types2();
81446
- function extFromMimeType3(mimeType) {
81447
- if (mimeType === types_1.KnownCellOutputMimeTypes.TextHtml)
81448
- return ".html";
81449
- if (mimeType === types_1.KnownCellOutputMimeTypes.TextLatex)
81450
- return ".tex";
81451
- if (mimeType.startsWith("text/"))
81452
- return ".txt";
81453
- if (mimeType.startsWith("image/")) {
81454
- const suffix = mimeType.split("/")[1];
81455
- const ext2 = suffix.split("+")[0];
81456
- return `.${ext2}`;
81457
- }
81458
- return ".json";
81459
- }
81460
- exports2.extFromMimeType = extFromMimeType3;
81461
- }
81462
- });
81463
-
81464
- // ../../node_modules/nbtx/dist/cjs/index.js
81465
- var require_cjs2 = __commonJS({
81466
- "../../node_modules/nbtx/dist/cjs/index.js"(exports2) {
81467
- "use strict";
81468
- var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m2, k, k2) {
81469
- if (k2 === void 0)
81470
- k2 = k;
81471
- var desc = Object.getOwnPropertyDescriptor(m2, k);
81472
- if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
81473
- desc = { enumerable: true, get: function() {
81474
- return m2[k];
81475
- } };
81476
- }
81477
- Object.defineProperty(o, k2, desc);
81478
- } : function(o, m2, k, k2) {
81479
- if (k2 === void 0)
81480
- k2 = k;
81481
- o[k2] = m2[k];
81482
- });
81483
- var __exportStar = exports2 && exports2.__exportStar || function(m2, exports3) {
81484
- for (var p5 in m2)
81485
- if (p5 !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p5))
81486
- __createBinding(exports3, m2, p5);
81487
- };
81488
- Object.defineProperty(exports2, "__esModule", { value: true });
81489
- __exportStar(require_minify2(), exports2);
81490
- __exportStar(require_types2(), exports2);
81491
- __exportStar(require_utils7(), exports2);
81492
- }
81493
- });
81494
-
81495
81030
  // ../../node_modules/mime-db/db.json
81496
81031
  var require_db = __commonJS({
81497
81032
  "../../node_modules/mime-db/db.json"(exports2, module2) {
@@ -96934,7 +96469,7 @@ var require_errors = __commonJS({
96934
96469
  });
96935
96470
 
96936
96471
  // ../../node_modules/adm-zip/util/utils.js
96937
- var require_utils8 = __commonJS({
96472
+ var require_utils6 = __commonJS({
96938
96473
  "../../node_modules/adm-zip/util/utils.js"(exports2, module2) {
96939
96474
  var fsystem = require_fileSystem().require();
96940
96475
  var pth = require("path");
@@ -97220,7 +96755,7 @@ var require_fattr = __commonJS({
97220
96755
  // ../../node_modules/adm-zip/util/index.js
97221
96756
  var require_util3 = __commonJS({
97222
96757
  "../../node_modules/adm-zip/util/index.js"(exports2, module2) {
97223
- module2.exports = require_utils8();
96758
+ module2.exports = require_utils6();
97224
96759
  module2.exports.Constants = require_constants2();
97225
96760
  module2.exports.Errors = require_errors();
97226
96761
  module2.exports.FileAttr = require_fattr();
@@ -99262,7 +98797,7 @@ var require_options2 = __commonJS({
99262
98797
  });
99263
98798
 
99264
98799
  // ../myst-execute/node_modules/isexe/dist/cjs/index.js
99265
- var require_cjs3 = __commonJS({
98800
+ var require_cjs2 = __commonJS({
99266
98801
  "../myst-execute/node_modules/isexe/dist/cjs/index.js"(exports2) {
99267
98802
  "use strict";
99268
98803
  var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m2, k, k2) {
@@ -99319,7 +98854,7 @@ var require_cjs3 = __commonJS({
99319
98854
  // ../myst-execute/node_modules/which/lib/index.js
99320
98855
  var require_lib16 = __commonJS({
99321
98856
  "../myst-execute/node_modules/which/lib/index.js"(exports2, module2) {
99322
- var { isexe, sync: isexeSync } = require_cjs3();
98857
+ var { isexe, sync: isexeSync } = require_cjs2();
99323
98858
  var { join: join20, delimiter: delimiter2, sep: sep5, posix: posix2 } = require("path");
99324
98859
  var isWindows = process.platform === "win32";
99325
98860
  var rSlash = new RegExp(`[${posix2.sep}${sep5 === posix2.sep ? "" : sep5}]`.replace(/(\\)/g, "\\$1"));
@@ -99602,7 +99137,7 @@ var require_constants3 = __commonJS({
99602
99137
  });
99603
99138
 
99604
99139
  // ../../node_modules/picomatch/lib/utils.js
99605
- var require_utils9 = __commonJS({
99140
+ var require_utils7 = __commonJS({
99606
99141
  "../../node_modules/picomatch/lib/utils.js"(exports2) {
99607
99142
  "use strict";
99608
99143
  var path44 = require("path");
@@ -99668,7 +99203,7 @@ var require_utils9 = __commonJS({
99668
99203
  var require_scan2 = __commonJS({
99669
99204
  "../../node_modules/picomatch/lib/scan.js"(exports2, module2) {
99670
99205
  "use strict";
99671
- var utils2 = require_utils9();
99206
+ var utils2 = require_utils7();
99672
99207
  var {
99673
99208
  CHAR_ASTERISK: CHAR_ASTERISK2,
99674
99209
  /* * */
@@ -100002,7 +99537,7 @@ var require_parse4 = __commonJS({
100002
99537
  "../../node_modules/picomatch/lib/parse.js"(exports2, module2) {
100003
99538
  "use strict";
100004
99539
  var constants2 = require_constants3();
100005
- var utils2 = require_utils9();
99540
+ var utils2 = require_utils7();
100006
99541
  var {
100007
99542
  MAX_LENGTH,
100008
99543
  POSIX_REGEX_SOURCE,
@@ -100785,7 +100320,7 @@ var require_picomatch = __commonJS({
100785
100320
  var path44 = require("path");
100786
100321
  var scan2 = require_scan2();
100787
100322
  var parse16 = require_parse4();
100788
- var utils2 = require_utils9();
100323
+ var utils2 = require_utils7();
100789
100324
  var constants2 = require_constants3();
100790
100325
  var isObject2 = (val) => val && typeof val === "object" && !Array.isArray(val);
100791
100326
  var picomatch = (glob2, options, returnState = false) => {
@@ -101442,7 +100977,7 @@ var require_glob_parent = __commonJS({
101442
100977
  });
101443
100978
 
101444
100979
  // ../../node_modules/braces/lib/utils.js
101445
- var require_utils10 = __commonJS({
100980
+ var require_utils8 = __commonJS({
101446
100981
  "../../node_modules/braces/lib/utils.js"(exports2) {
101447
100982
  "use strict";
101448
100983
  exports2.isInteger = (num) => {
@@ -101535,7 +101070,7 @@ var require_utils10 = __commonJS({
101535
101070
  var require_stringify3 = __commonJS({
101536
101071
  "../../node_modules/braces/lib/stringify.js"(exports2, module2) {
101537
101072
  "use strict";
101538
- var utils2 = require_utils10();
101073
+ var utils2 = require_utils8();
101539
101074
  module2.exports = (ast, options = {}) => {
101540
101075
  const stringify4 = (node3, parent2 = {}) => {
101541
101076
  const invalidBlock = options.escapeInvalid && utils2.isInvalidBrace(parent2);
@@ -102001,7 +101536,7 @@ var require_compile = __commonJS({
102001
101536
  "../../node_modules/braces/lib/compile.js"(exports2, module2) {
102002
101537
  "use strict";
102003
101538
  var fill3 = require_fill_range();
102004
- var utils2 = require_utils10();
101539
+ var utils2 = require_utils8();
102005
101540
  var compile2 = (ast, options = {}) => {
102006
101541
  const walk2 = (node3, parent2 = {}) => {
102007
101542
  const invalidBlock = utils2.isInvalidBrace(parent2);
@@ -102054,7 +101589,7 @@ var require_expand = __commonJS({
102054
101589
  "use strict";
102055
101590
  var fill3 = require_fill_range();
102056
101591
  var stringify4 = require_stringify3();
102057
- var utils2 = require_utils10();
101592
+ var utils2 = require_utils8();
102058
101593
  var append = (queue = "", stash = "", enclose = false) => {
102059
101594
  const result = [];
102060
101595
  queue = [].concat(queue);
@@ -119480,7 +119015,7 @@ var require_webp = __commonJS({
119480
119015
  });
119481
119016
 
119482
119017
  // ../../node_modules/buffer-image-size/lib/types.js
119483
- var require_types3 = __commonJS({
119018
+ var require_types = __commonJS({
119484
119019
  "../../node_modules/buffer-image-size/lib/types.js"(exports2, module2) {
119485
119020
  "use strict";
119486
119021
  var typeHandlers = {
@@ -119503,7 +119038,7 @@ var require_types3 = __commonJS({
119503
119038
  var require_detector = __commonJS({
119504
119039
  "../../node_modules/buffer-image-size/lib/detector.js"(exports2, module2) {
119505
119040
  "use strict";
119506
- var typeHandlers = require_types3();
119041
+ var typeHandlers = require_types();
119507
119042
  module2.exports = function(buffer2) {
119508
119043
  var type2, result;
119509
119044
  for (type2 in typeHandlers) {
@@ -119520,7 +119055,7 @@ var require_detector = __commonJS({
119520
119055
  var require_lib18 = __commonJS({
119521
119056
  "../../node_modules/buffer-image-size/lib/index.js"(exports2, module2) {
119522
119057
  "use strict";
119523
- var typeHandlers = require_types3();
119058
+ var typeHandlers = require_types();
119524
119059
  var detector = require_detector();
119525
119060
  function lookup2(buffer2) {
119526
119061
  var type2 = detector(buffer2);
@@ -122735,7 +122270,7 @@ var require_fs = __commonJS({
122735
122270
  });
122736
122271
 
122737
122272
  // ../myst-cli/node_modules/fs-extra/lib/mkdirs/utils.js
122738
- var require_utils11 = __commonJS({
122273
+ var require_utils9 = __commonJS({
122739
122274
  "../myst-cli/node_modules/fs-extra/lib/mkdirs/utils.js"(exports2, module2) {
122740
122275
  "use strict";
122741
122276
  var path44 = require("path");
@@ -122757,7 +122292,7 @@ var require_make_dir = __commonJS({
122757
122292
  "../myst-cli/node_modules/fs-extra/lib/mkdirs/make-dir.js"(exports2, module2) {
122758
122293
  "use strict";
122759
122294
  var fs50 = require_fs();
122760
- var { checkPath } = require_utils11();
122295
+ var { checkPath } = require_utils9();
122761
122296
  var getMode = (options) => {
122762
122297
  const defaults4 = { mode: 511 };
122763
122298
  if (typeof options === "number")
@@ -123797,7 +123332,7 @@ var require_ensure = __commonJS({
123797
123332
  });
123798
123333
 
123799
123334
  // ../myst-cli/node_modules/jsonfile/utils.js
123800
- var require_utils12 = __commonJS({
123335
+ var require_utils10 = __commonJS({
123801
123336
  "../myst-cli/node_modules/jsonfile/utils.js"(exports2, module2) {
123802
123337
  function stringify4(obj, { EOL = "\n", finalEOL = true, replacer = null, spaces } = {}) {
123803
123338
  const EOF2 = finalEOL ? EOL : "";
@@ -123823,7 +123358,7 @@ var require_jsonfile = __commonJS({
123823
123358
  _fs3 = require("fs");
123824
123359
  }
123825
123360
  var universalify = require_universalify();
123826
- var { stringify: stringify4, stripBom } = require_utils12();
123361
+ var { stringify: stringify4, stripBom } = require_utils10();
123827
123362
  async function _readFile(file, options = {}) {
123828
123363
  if (typeof options === "string") {
123829
123364
  options = { encoding: options };
@@ -123947,7 +123482,7 @@ var require_output_file = __commonJS({
123947
123482
  var require_output_json = __commonJS({
123948
123483
  "../myst-cli/node_modules/fs-extra/lib/json/output-json.js"(exports2, module2) {
123949
123484
  "use strict";
123950
- var { stringify: stringify4 } = require_utils12();
123485
+ var { stringify: stringify4 } = require_utils10();
123951
123486
  var { outputFile } = require_output_file();
123952
123487
  async function outputJson(file, data, options = {}) {
123953
123488
  const str2 = stringify4(data, options);
@@ -123961,7 +123496,7 @@ var require_output_json = __commonJS({
123961
123496
  var require_output_json_sync = __commonJS({
123962
123497
  "../myst-cli/node_modules/fs-extra/lib/json/output-json-sync.js"(exports2, module2) {
123963
123498
  "use strict";
123964
- var { stringify: stringify4 } = require_utils12();
123499
+ var { stringify: stringify4 } = require_utils10();
123965
123500
  var { outputFileSync } = require_output_file();
123966
123501
  function outputJsonSync(file, data, options) {
123967
123502
  const str2 = stringify4(data, options);
@@ -130314,7 +129849,7 @@ var require_raw2 = __commonJS({
130314
129849
  });
130315
129850
 
130316
129851
  // ../../node_modules/body-parser/lib/types/text.js
130317
- var require_text3 = __commonJS({
129852
+ var require_text2 = __commonJS({
130318
129853
  "../../node_modules/body-parser/lib/types/text.js"(exports2, module2) {
130319
129854
  "use strict";
130320
129855
  var bytes = require_bytes();
@@ -131808,7 +131343,7 @@ var require_formats = __commonJS({
131808
131343
  });
131809
131344
 
131810
131345
  // ../../node_modules/qs/lib/utils.js
131811
- var require_utils13 = __commonJS({
131346
+ var require_utils11 = __commonJS({
131812
131347
  "../../node_modules/qs/lib/utils.js"(exports2, module2) {
131813
131348
  "use strict";
131814
131349
  var formats = require_formats();
@@ -132017,7 +131552,7 @@ var require_stringify4 = __commonJS({
132017
131552
  "../../node_modules/qs/lib/stringify.js"(exports2, module2) {
132018
131553
  "use strict";
132019
131554
  var getSideChannel = require_side_channel();
132020
- var utils2 = require_utils13();
131555
+ var utils2 = require_utils11();
132021
131556
  var formats = require_formats();
132022
131557
  var has3 = Object.prototype.hasOwnProperty;
132023
131558
  var arrayPrefixGenerators = {
@@ -132296,7 +131831,7 @@ var require_stringify4 = __commonJS({
132296
131831
  var require_parse6 = __commonJS({
132297
131832
  "../../node_modules/qs/lib/parse.js"(exports2, module2) {
132298
131833
  "use strict";
132299
- var utils2 = require_utils13();
131834
+ var utils2 = require_utils11();
132300
131835
  var has3 = Object.prototype.hasOwnProperty;
132301
131836
  var isArray2 = Array.isArray;
132302
131837
  var defaults4 = {
@@ -132776,7 +132311,7 @@ var require_body_parser = __commonJS({
132776
132311
  parser3 = require_raw2();
132777
132312
  break;
132778
132313
  case "text":
132779
- parser3 = require_text3();
132314
+ parser3 = require_text2();
132780
132315
  break;
132781
132316
  case "urlencoded":
132782
132317
  parser3 = require_urlencoded();
@@ -135673,14 +135208,14 @@ var require_fresh = __commonJS({
135673
135208
  });
135674
135209
 
135675
135210
  // ../../node_modules/mime/types.json
135676
- var require_types4 = __commonJS({
135211
+ var require_types2 = __commonJS({
135677
135212
  "../../node_modules/mime/types.json"(exports2, module2) {
135678
135213
  module2.exports = { "application/andrew-inset": ["ez"], "application/applixware": ["aw"], "application/atom+xml": ["atom"], "application/atomcat+xml": ["atomcat"], "application/atomsvc+xml": ["atomsvc"], "application/bdoc": ["bdoc"], "application/ccxml+xml": ["ccxml"], "application/cdmi-capability": ["cdmia"], "application/cdmi-container": ["cdmic"], "application/cdmi-domain": ["cdmid"], "application/cdmi-object": ["cdmio"], "application/cdmi-queue": ["cdmiq"], "application/cu-seeme": ["cu"], "application/dash+xml": ["mpd"], "application/davmount+xml": ["davmount"], "application/docbook+xml": ["dbk"], "application/dssc+der": ["dssc"], "application/dssc+xml": ["xdssc"], "application/ecmascript": ["ecma"], "application/emma+xml": ["emma"], "application/epub+zip": ["epub"], "application/exi": ["exi"], "application/font-tdpfr": ["pfr"], "application/font-woff": [], "application/font-woff2": [], "application/geo+json": ["geojson"], "application/gml+xml": ["gml"], "application/gpx+xml": ["gpx"], "application/gxf": ["gxf"], "application/gzip": ["gz"], "application/hyperstudio": ["stk"], "application/inkml+xml": ["ink", "inkml"], "application/ipfix": ["ipfix"], "application/java-archive": ["jar", "war", "ear"], "application/java-serialized-object": ["ser"], "application/java-vm": ["class"], "application/javascript": ["js", "mjs"], "application/json": ["json", "map"], "application/json5": ["json5"], "application/jsonml+json": ["jsonml"], "application/ld+json": ["jsonld"], "application/lost+xml": ["lostxml"], "application/mac-binhex40": ["hqx"], "application/mac-compactpro": ["cpt"], "application/mads+xml": ["mads"], "application/manifest+json": ["webmanifest"], "application/marc": ["mrc"], "application/marcxml+xml": ["mrcx"], "application/mathematica": ["ma", "nb", "mb"], "application/mathml+xml": ["mathml"], "application/mbox": ["mbox"], "application/mediaservercontrol+xml": ["mscml"], "application/metalink+xml": ["metalink"], "application/metalink4+xml": ["meta4"], "application/mets+xml": ["mets"], "application/mods+xml": ["mods"], "application/mp21": ["m21", "mp21"], "application/mp4": ["mp4s", "m4p"], "application/msword": ["doc", "dot"], "application/mxf": ["mxf"], "application/octet-stream": ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"], "application/oda": ["oda"], "application/oebps-package+xml": ["opf"], "application/ogg": ["ogx"], "application/omdoc+xml": ["omdoc"], "application/onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"], "application/oxps": ["oxps"], "application/patch-ops-error+xml": ["xer"], "application/pdf": ["pdf"], "application/pgp-encrypted": ["pgp"], "application/pgp-signature": ["asc", "sig"], "application/pics-rules": ["prf"], "application/pkcs10": ["p10"], "application/pkcs7-mime": ["p7m", "p7c"], "application/pkcs7-signature": ["p7s"], "application/pkcs8": ["p8"], "application/pkix-attr-cert": ["ac"], "application/pkix-cert": ["cer"], "application/pkix-crl": ["crl"], "application/pkix-pkipath": ["pkipath"], "application/pkixcmp": ["pki"], "application/pls+xml": ["pls"], "application/postscript": ["ai", "eps", "ps"], "application/prs.cww": ["cww"], "application/pskc+xml": ["pskcxml"], "application/raml+yaml": ["raml"], "application/rdf+xml": ["rdf"], "application/reginfo+xml": ["rif"], "application/relax-ng-compact-syntax": ["rnc"], "application/resource-lists+xml": ["rl"], "application/resource-lists-diff+xml": ["rld"], "application/rls-services+xml": ["rs"], "application/rpki-ghostbusters": ["gbr"], "application/rpki-manifest": ["mft"], "application/rpki-roa": ["roa"], "application/rsd+xml": ["rsd"], "application/rss+xml": ["rss"], "application/rtf": ["rtf"], "application/sbml+xml": ["sbml"], "application/scvp-cv-request": ["scq"], "application/scvp-cv-response": ["scs"], "application/scvp-vp-request": ["spq"], "application/scvp-vp-response": ["spp"], "application/sdp": ["sdp"], "application/set-payment-initiation": ["setpay"], "application/set-registration-initiation": ["setreg"], "application/shf+xml": ["shf"], "application/smil+xml": ["smi", "smil"], "application/sparql-query": ["rq"], "application/sparql-results+xml": ["srx"], "application/srgs": ["gram"], "application/srgs+xml": ["grxml"], "application/sru+xml": ["sru"], "application/ssdl+xml": ["ssdl"], "application/ssml+xml": ["ssml"], "application/tei+xml": ["tei", "teicorpus"], "application/thraud+xml": ["tfi"], "application/timestamped-data": ["tsd"], "application/vnd.3gpp.pic-bw-large": ["plb"], "application/vnd.3gpp.pic-bw-small": ["psb"], "application/vnd.3gpp.pic-bw-var": ["pvb"], "application/vnd.3gpp2.tcap": ["tcap"], "application/vnd.3m.post-it-notes": ["pwn"], "application/vnd.accpac.simply.aso": ["aso"], "application/vnd.accpac.simply.imp": ["imp"], "application/vnd.acucobol": ["acu"], "application/vnd.acucorp": ["atc", "acutc"], "application/vnd.adobe.air-application-installer-package+zip": ["air"], "application/vnd.adobe.formscentral.fcdt": ["fcdt"], "application/vnd.adobe.fxp": ["fxp", "fxpl"], "application/vnd.adobe.xdp+xml": ["xdp"], "application/vnd.adobe.xfdf": ["xfdf"], "application/vnd.ahead.space": ["ahead"], "application/vnd.airzip.filesecure.azf": ["azf"], "application/vnd.airzip.filesecure.azs": ["azs"], "application/vnd.amazon.ebook": ["azw"], "application/vnd.americandynamics.acc": ["acc"], "application/vnd.amiga.ami": ["ami"], "application/vnd.android.package-archive": ["apk"], "application/vnd.anser-web-certificate-issue-initiation": ["cii"], "application/vnd.anser-web-funds-transfer-initiation": ["fti"], "application/vnd.antix.game-component": ["atx"], "application/vnd.apple.installer+xml": ["mpkg"], "application/vnd.apple.mpegurl": ["m3u8"], "application/vnd.apple.pkpass": ["pkpass"], "application/vnd.aristanetworks.swi": ["swi"], "application/vnd.astraea-software.iota": ["iota"], "application/vnd.audiograph": ["aep"], "application/vnd.blueice.multipass": ["mpm"], "application/vnd.bmi": ["bmi"], "application/vnd.businessobjects": ["rep"], "application/vnd.chemdraw+xml": ["cdxml"], "application/vnd.chipnuts.karaoke-mmd": ["mmd"], "application/vnd.cinderella": ["cdy"], "application/vnd.claymore": ["cla"], "application/vnd.cloanto.rp9": ["rp9"], "application/vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"], "application/vnd.cluetrust.cartomobile-config": ["c11amc"], "application/vnd.cluetrust.cartomobile-config-pkg": ["c11amz"], "application/vnd.commonspace": ["csp"], "application/vnd.contact.cmsg": ["cdbcmsg"], "application/vnd.cosmocaller": ["cmc"], "application/vnd.crick.clicker": ["clkx"], "application/vnd.crick.clicker.keyboard": ["clkk"], "application/vnd.crick.clicker.palette": ["clkp"], "application/vnd.crick.clicker.template": ["clkt"], "application/vnd.crick.clicker.wordbank": ["clkw"], "application/vnd.criticaltools.wbs+xml": ["wbs"], "application/vnd.ctc-posml": ["pml"], "application/vnd.cups-ppd": ["ppd"], "application/vnd.curl.car": ["car"], "application/vnd.curl.pcurl": ["pcurl"], "application/vnd.dart": ["dart"], "application/vnd.data-vision.rdz": ["rdz"], "application/vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"], "application/vnd.dece.ttml+xml": ["uvt", "uvvt"], "application/vnd.dece.unspecified": ["uvx", "uvvx"], "application/vnd.dece.zip": ["uvz", "uvvz"], "application/vnd.denovo.fcselayout-link": ["fe_launch"], "application/vnd.dna": ["dna"], "application/vnd.dolby.mlp": ["mlp"], "application/vnd.dpgraph": ["dpg"], "application/vnd.dreamfactory": ["dfac"], "application/vnd.ds-keypoint": ["kpxx"], "application/vnd.dvb.ait": ["ait"], "application/vnd.dvb.service": ["svc"], "application/vnd.dynageo": ["geo"], "application/vnd.ecowin.chart": ["mag"], "application/vnd.enliven": ["nml"], "application/vnd.epson.esf": ["esf"], "application/vnd.epson.msf": ["msf"], "application/vnd.epson.quickanime": ["qam"], "application/vnd.epson.salt": ["slt"], "application/vnd.epson.ssf": ["ssf"], "application/vnd.eszigno3+xml": ["es3", "et3"], "application/vnd.ezpix-album": ["ez2"], "application/vnd.ezpix-package": ["ez3"], "application/vnd.fdf": ["fdf"], "application/vnd.fdsn.mseed": ["mseed"], "application/vnd.fdsn.seed": ["seed", "dataless"], "application/vnd.flographit": ["gph"], "application/vnd.fluxtime.clip": ["ftc"], "application/vnd.framemaker": ["fm", "frame", "maker", "book"], "application/vnd.frogans.fnc": ["fnc"], "application/vnd.frogans.ltf": ["ltf"], "application/vnd.fsc.weblaunch": ["fsc"], "application/vnd.fujitsu.oasys": ["oas"], "application/vnd.fujitsu.oasys2": ["oa2"], "application/vnd.fujitsu.oasys3": ["oa3"], "application/vnd.fujitsu.oasysgp": ["fg5"], "application/vnd.fujitsu.oasysprs": ["bh2"], "application/vnd.fujixerox.ddd": ["ddd"], "application/vnd.fujixerox.docuworks": ["xdw"], "application/vnd.fujixerox.docuworks.binder": ["xbd"], "application/vnd.fuzzysheet": ["fzs"], "application/vnd.genomatix.tuxedo": ["txd"], "application/vnd.geogebra.file": ["ggb"], "application/vnd.geogebra.tool": ["ggt"], "application/vnd.geometry-explorer": ["gex", "gre"], "application/vnd.geonext": ["gxt"], "application/vnd.geoplan": ["g2w"], "application/vnd.geospace": ["g3w"], "application/vnd.gmx": ["gmx"], "application/vnd.google-apps.document": ["gdoc"], "application/vnd.google-apps.presentation": ["gslides"], "application/vnd.google-apps.spreadsheet": ["gsheet"], "application/vnd.google-earth.kml+xml": ["kml"], "application/vnd.google-earth.kmz": ["kmz"], "application/vnd.grafeq": ["gqf", "gqs"], "application/vnd.groove-account": ["gac"], "application/vnd.groove-help": ["ghf"], "application/vnd.groove-identity-message": ["gim"], "application/vnd.groove-injector": ["grv"], "application/vnd.groove-tool-message": ["gtm"], "application/vnd.groove-tool-template": ["tpl"], "application/vnd.groove-vcard": ["vcg"], "application/vnd.hal+xml": ["hal"], "application/vnd.handheld-entertainment+xml": ["zmm"], "application/vnd.hbci": ["hbci"], "application/vnd.hhe.lesson-player": ["les"], "application/vnd.hp-hpgl": ["hpgl"], "application/vnd.hp-hpid": ["hpid"], "application/vnd.hp-hps": ["hps"], "application/vnd.hp-jlyt": ["jlt"], "application/vnd.hp-pcl": ["pcl"], "application/vnd.hp-pclxl": ["pclxl"], "application/vnd.hydrostatix.sof-data": ["sfd-hdstx"], "application/vnd.ibm.minipay": ["mpy"], "application/vnd.ibm.modcap": ["afp", "listafp", "list3820"], "application/vnd.ibm.rights-management": ["irm"], "application/vnd.ibm.secure-container": ["sc"], "application/vnd.iccprofile": ["icc", "icm"], "application/vnd.igloader": ["igl"], "application/vnd.immervision-ivp": ["ivp"], "application/vnd.immervision-ivu": ["ivu"], "application/vnd.insors.igm": ["igm"], "application/vnd.intercon.formnet": ["xpw", "xpx"], "application/vnd.intergeo": ["i2g"], "application/vnd.intu.qbo": ["qbo"], "application/vnd.intu.qfx": ["qfx"], "application/vnd.ipunplugged.rcprofile": ["rcprofile"], "application/vnd.irepository.package+xml": ["irp"], "application/vnd.is-xpr": ["xpr"], "application/vnd.isac.fcs": ["fcs"], "application/vnd.jam": ["jam"], "application/vnd.jcp.javame.midlet-rms": ["rms"], "application/vnd.jisp": ["jisp"], "application/vnd.joost.joda-archive": ["joda"], "application/vnd.kahootz": ["ktz", "ktr"], "application/vnd.kde.karbon": ["karbon"], "application/vnd.kde.kchart": ["chrt"], "application/vnd.kde.kformula": ["kfo"], "application/vnd.kde.kivio": ["flw"], "application/vnd.kde.kontour": ["kon"], "application/vnd.kde.kpresenter": ["kpr", "kpt"], "application/vnd.kde.kspread": ["ksp"], "application/vnd.kde.kword": ["kwd", "kwt"], "application/vnd.kenameaapp": ["htke"], "application/vnd.kidspiration": ["kia"], "application/vnd.kinar": ["kne", "knp"], "application/vnd.koan": ["skp", "skd", "skt", "skm"], "application/vnd.kodak-descriptor": ["sse"], "application/vnd.las.las+xml": ["lasxml"], "application/vnd.llamagraphics.life-balance.desktop": ["lbd"], "application/vnd.llamagraphics.life-balance.exchange+xml": ["lbe"], "application/vnd.lotus-1-2-3": ["123"], "application/vnd.lotus-approach": ["apr"], "application/vnd.lotus-freelance": ["pre"], "application/vnd.lotus-notes": ["nsf"], "application/vnd.lotus-organizer": ["org"], "application/vnd.lotus-screencam": ["scm"], "application/vnd.lotus-wordpro": ["lwp"], "application/vnd.macports.portpkg": ["portpkg"], "application/vnd.mcd": ["mcd"], "application/vnd.medcalcdata": ["mc1"], "application/vnd.mediastation.cdkey": ["cdkey"], "application/vnd.mfer": ["mwf"], "application/vnd.mfmp": ["mfm"], "application/vnd.micrografx.flo": ["flo"], "application/vnd.micrografx.igx": ["igx"], "application/vnd.mif": ["mif"], "application/vnd.mobius.daf": ["daf"], "application/vnd.mobius.dis": ["dis"], "application/vnd.mobius.mbk": ["mbk"], "application/vnd.mobius.mqy": ["mqy"], "application/vnd.mobius.msl": ["msl"], "application/vnd.mobius.plc": ["plc"], "application/vnd.mobius.txf": ["txf"], "application/vnd.mophun.application": ["mpn"], "application/vnd.mophun.certificate": ["mpc"], "application/vnd.mozilla.xul+xml": ["xul"], "application/vnd.ms-artgalry": ["cil"], "application/vnd.ms-cab-compressed": ["cab"], "application/vnd.ms-excel": ["xls", "xlm", "xla", "xlc", "xlt", "xlw"], "application/vnd.ms-excel.addin.macroenabled.12": ["xlam"], "application/vnd.ms-excel.sheet.binary.macroenabled.12": ["xlsb"], "application/vnd.ms-excel.sheet.macroenabled.12": ["xlsm"], "application/vnd.ms-excel.template.macroenabled.12": ["xltm"], "application/vnd.ms-fontobject": ["eot"], "application/vnd.ms-htmlhelp": ["chm"], "application/vnd.ms-ims": ["ims"], "application/vnd.ms-lrm": ["lrm"], "application/vnd.ms-officetheme": ["thmx"], "application/vnd.ms-outlook": ["msg"], "application/vnd.ms-pki.seccat": ["cat"], "application/vnd.ms-pki.stl": ["stl"], "application/vnd.ms-powerpoint": ["ppt", "pps", "pot"], "application/vnd.ms-powerpoint.addin.macroenabled.12": ["ppam"], "application/vnd.ms-powerpoint.presentation.macroenabled.12": ["pptm"], "application/vnd.ms-powerpoint.slide.macroenabled.12": ["sldm"], "application/vnd.ms-powerpoint.slideshow.macroenabled.12": ["ppsm"], "application/vnd.ms-powerpoint.template.macroenabled.12": ["potm"], "application/vnd.ms-project": ["mpp", "mpt"], "application/vnd.ms-word.document.macroenabled.12": ["docm"], "application/vnd.ms-word.template.macroenabled.12": ["dotm"], "application/vnd.ms-works": ["wps", "wks", "wcm", "wdb"], "application/vnd.ms-wpl": ["wpl"], "application/vnd.ms-xpsdocument": ["xps"], "application/vnd.mseq": ["mseq"], "application/vnd.musician": ["mus"], "application/vnd.muvee.style": ["msty"], "application/vnd.mynfc": ["taglet"], "application/vnd.neurolanguage.nlu": ["nlu"], "application/vnd.nitf": ["ntf", "nitf"], "application/vnd.noblenet-directory": ["nnd"], "application/vnd.noblenet-sealer": ["nns"], "application/vnd.noblenet-web": ["nnw"], "application/vnd.nokia.n-gage.data": ["ngdat"], "application/vnd.nokia.n-gage.symbian.install": ["n-gage"], "application/vnd.nokia.radio-preset": ["rpst"], "application/vnd.nokia.radio-presets": ["rpss"], "application/vnd.novadigm.edm": ["edm"], "application/vnd.novadigm.edx": ["edx"], "application/vnd.novadigm.ext": ["ext"], "application/vnd.oasis.opendocument.chart": ["odc"], "application/vnd.oasis.opendocument.chart-template": ["otc"], "application/vnd.oasis.opendocument.database": ["odb"], "application/vnd.oasis.opendocument.formula": ["odf"], "application/vnd.oasis.opendocument.formula-template": ["odft"], "application/vnd.oasis.opendocument.graphics": ["odg"], "application/vnd.oasis.opendocument.graphics-template": ["otg"], "application/vnd.oasis.opendocument.image": ["odi"], "application/vnd.oasis.opendocument.image-template": ["oti"], "application/vnd.oasis.opendocument.presentation": ["odp"], "application/vnd.oasis.opendocument.presentation-template": ["otp"], "application/vnd.oasis.opendocument.spreadsheet": ["ods"], "application/vnd.oasis.opendocument.spreadsheet-template": ["ots"], "application/vnd.oasis.opendocument.text": ["odt"], "application/vnd.oasis.opendocument.text-master": ["odm"], "application/vnd.oasis.opendocument.text-template": ["ott"], "application/vnd.oasis.opendocument.text-web": ["oth"], "application/vnd.olpc-sugar": ["xo"], "application/vnd.oma.dd2+xml": ["dd2"], "application/vnd.openofficeorg.extension": ["oxt"], "application/vnd.openxmlformats-officedocument.presentationml.presentation": ["pptx"], "application/vnd.openxmlformats-officedocument.presentationml.slide": ["sldx"], "application/vnd.openxmlformats-officedocument.presentationml.slideshow": ["ppsx"], "application/vnd.openxmlformats-officedocument.presentationml.template": ["potx"], "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ["xlsx"], "application/vnd.openxmlformats-officedocument.spreadsheetml.template": ["xltx"], "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ["docx"], "application/vnd.openxmlformats-officedocument.wordprocessingml.template": ["dotx"], "application/vnd.osgeo.mapguide.package": ["mgp"], "application/vnd.osgi.dp": ["dp"], "application/vnd.osgi.subsystem": ["esa"], "application/vnd.palm": ["pdb", "pqa", "oprc"], "application/vnd.pawaafile": ["paw"], "application/vnd.pg.format": ["str"], "application/vnd.pg.osasli": ["ei6"], "application/vnd.picsel": ["efif"], "application/vnd.pmi.widget": ["wg"], "application/vnd.pocketlearn": ["plf"], "application/vnd.powerbuilder6": ["pbd"], "application/vnd.previewsystems.box": ["box"], "application/vnd.proteus.magazine": ["mgz"], "application/vnd.publishare-delta-tree": ["qps"], "application/vnd.pvi.ptid1": ["ptid"], "application/vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"], "application/vnd.realvnc.bed": ["bed"], "application/vnd.recordare.musicxml": ["mxl"], "application/vnd.recordare.musicxml+xml": ["musicxml"], "application/vnd.rig.cryptonote": ["cryptonote"], "application/vnd.rim.cod": ["cod"], "application/vnd.rn-realmedia": ["rm"], "application/vnd.rn-realmedia-vbr": ["rmvb"], "application/vnd.route66.link66+xml": ["link66"], "application/vnd.sailingtracker.track": ["st"], "application/vnd.seemail": ["see"], "application/vnd.sema": ["sema"], "application/vnd.semd": ["semd"], "application/vnd.semf": ["semf"], "application/vnd.shana.informed.formdata": ["ifm"], "application/vnd.shana.informed.formtemplate": ["itp"], "application/vnd.shana.informed.interchange": ["iif"], "application/vnd.shana.informed.package": ["ipk"], "application/vnd.simtech-mindmapper": ["twd", "twds"], "application/vnd.smaf": ["mmf"], "application/vnd.smart.teacher": ["teacher"], "application/vnd.solent.sdkm+xml": ["sdkm", "sdkd"], "application/vnd.spotfire.dxp": ["dxp"], "application/vnd.spotfire.sfs": ["sfs"], "application/vnd.stardivision.calc": ["sdc"], "application/vnd.stardivision.draw": ["sda"], "application/vnd.stardivision.impress": ["sdd"], "application/vnd.stardivision.math": ["smf"], "application/vnd.stardivision.writer": ["sdw", "vor"], "application/vnd.stardivision.writer-global": ["sgl"], "application/vnd.stepmania.package": ["smzip"], "application/vnd.stepmania.stepchart": ["sm"], "application/vnd.sun.wadl+xml": ["wadl"], "application/vnd.sun.xml.calc": ["sxc"], "application/vnd.sun.xml.calc.template": ["stc"], "application/vnd.sun.xml.draw": ["sxd"], "application/vnd.sun.xml.draw.template": ["std"], "application/vnd.sun.xml.impress": ["sxi"], "application/vnd.sun.xml.impress.template": ["sti"], "application/vnd.sun.xml.math": ["sxm"], "application/vnd.sun.xml.writer": ["sxw"], "application/vnd.sun.xml.writer.global": ["sxg"], "application/vnd.sun.xml.writer.template": ["stw"], "application/vnd.sus-calendar": ["sus", "susp"], "application/vnd.svd": ["svd"], "application/vnd.symbian.install": ["sis", "sisx"], "application/vnd.syncml+xml": ["xsm"], "application/vnd.syncml.dm+wbxml": ["bdm"], "application/vnd.syncml.dm+xml": ["xdm"], "application/vnd.tao.intent-module-archive": ["tao"], "application/vnd.tcpdump.pcap": ["pcap", "cap", "dmp"], "application/vnd.tmobile-livetv": ["tmo"], "application/vnd.trid.tpt": ["tpt"], "application/vnd.triscape.mxs": ["mxs"], "application/vnd.trueapp": ["tra"], "application/vnd.ufdl": ["ufd", "ufdl"], "application/vnd.uiq.theme": ["utz"], "application/vnd.umajin": ["umj"], "application/vnd.unity": ["unityweb"], "application/vnd.uoml+xml": ["uoml"], "application/vnd.vcx": ["vcx"], "application/vnd.visio": ["vsd", "vst", "vss", "vsw"], "application/vnd.visionary": ["vis"], "application/vnd.vsf": ["vsf"], "application/vnd.wap.wbxml": ["wbxml"], "application/vnd.wap.wmlc": ["wmlc"], "application/vnd.wap.wmlscriptc": ["wmlsc"], "application/vnd.webturbo": ["wtb"], "application/vnd.wolfram.player": ["nbp"], "application/vnd.wordperfect": ["wpd"], "application/vnd.wqd": ["wqd"], "application/vnd.wt.stf": ["stf"], "application/vnd.xara": ["xar"], "application/vnd.xfdl": ["xfdl"], "application/vnd.yamaha.hv-dic": ["hvd"], "application/vnd.yamaha.hv-script": ["hvs"], "application/vnd.yamaha.hv-voice": ["hvp"], "application/vnd.yamaha.openscoreformat": ["osf"], "application/vnd.yamaha.openscoreformat.osfpvg+xml": ["osfpvg"], "application/vnd.yamaha.smaf-audio": ["saf"], "application/vnd.yamaha.smaf-phrase": ["spf"], "application/vnd.yellowriver-custom-menu": ["cmp"], "application/vnd.zul": ["zir", "zirz"], "application/vnd.zzazz.deck+xml": ["zaz"], "application/voicexml+xml": ["vxml"], "application/wasm": ["wasm"], "application/widget": ["wgt"], "application/winhlp": ["hlp"], "application/wsdl+xml": ["wsdl"], "application/wspolicy+xml": ["wspolicy"], "application/x-7z-compressed": ["7z"], "application/x-abiword": ["abw"], "application/x-ace-compressed": ["ace"], "application/x-apple-diskimage": [], "application/x-arj": ["arj"], "application/x-authorware-bin": ["aab", "x32", "u32", "vox"], "application/x-authorware-map": ["aam"], "application/x-authorware-seg": ["aas"], "application/x-bcpio": ["bcpio"], "application/x-bdoc": [], "application/x-bittorrent": ["torrent"], "application/x-blorb": ["blb", "blorb"], "application/x-bzip": ["bz"], "application/x-bzip2": ["bz2", "boz"], "application/x-cbr": ["cbr", "cba", "cbt", "cbz", "cb7"], "application/x-cdlink": ["vcd"], "application/x-cfs-compressed": ["cfs"], "application/x-chat": ["chat"], "application/x-chess-pgn": ["pgn"], "application/x-chrome-extension": ["crx"], "application/x-cocoa": ["cco"], "application/x-conference": ["nsc"], "application/x-cpio": ["cpio"], "application/x-csh": ["csh"], "application/x-debian-package": ["udeb"], "application/x-dgc-compressed": ["dgc"], "application/x-director": ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"], "application/x-doom": ["wad"], "application/x-dtbncx+xml": ["ncx"], "application/x-dtbook+xml": ["dtb"], "application/x-dtbresource+xml": ["res"], "application/x-dvi": ["dvi"], "application/x-envoy": ["evy"], "application/x-eva": ["eva"], "application/x-font-bdf": ["bdf"], "application/x-font-ghostscript": ["gsf"], "application/x-font-linux-psf": ["psf"], "application/x-font-pcf": ["pcf"], "application/x-font-snf": ["snf"], "application/x-font-type1": ["pfa", "pfb", "pfm", "afm"], "application/x-freearc": ["arc"], "application/x-futuresplash": ["spl"], "application/x-gca-compressed": ["gca"], "application/x-glulx": ["ulx"], "application/x-gnumeric": ["gnumeric"], "application/x-gramps-xml": ["gramps"], "application/x-gtar": ["gtar"], "application/x-hdf": ["hdf"], "application/x-httpd-php": ["php"], "application/x-install-instructions": ["install"], "application/x-iso9660-image": [], "application/x-java-archive-diff": ["jardiff"], "application/x-java-jnlp-file": ["jnlp"], "application/x-latex": ["latex"], "application/x-lua-bytecode": ["luac"], "application/x-lzh-compressed": ["lzh", "lha"], "application/x-makeself": ["run"], "application/x-mie": ["mie"], "application/x-mobipocket-ebook": ["prc", "mobi"], "application/x-ms-application": ["application"], "application/x-ms-shortcut": ["lnk"], "application/x-ms-wmd": ["wmd"], "application/x-ms-wmz": ["wmz"], "application/x-ms-xbap": ["xbap"], "application/x-msaccess": ["mdb"], "application/x-msbinder": ["obd"], "application/x-mscardfile": ["crd"], "application/x-msclip": ["clp"], "application/x-msdos-program": [], "application/x-msdownload": ["com", "bat"], "application/x-msmediaview": ["mvb", "m13", "m14"], "application/x-msmetafile": ["wmf", "emf", "emz"], "application/x-msmoney": ["mny"], "application/x-mspublisher": ["pub"], "application/x-msschedule": ["scd"], "application/x-msterminal": ["trm"], "application/x-mswrite": ["wri"], "application/x-netcdf": ["nc", "cdf"], "application/x-ns-proxy-autoconfig": ["pac"], "application/x-nzb": ["nzb"], "application/x-perl": ["pl", "pm"], "application/x-pilot": [], "application/x-pkcs12": ["p12", "pfx"], "application/x-pkcs7-certificates": ["p7b", "spc"], "application/x-pkcs7-certreqresp": ["p7r"], "application/x-rar-compressed": ["rar"], "application/x-redhat-package-manager": ["rpm"], "application/x-research-info-systems": ["ris"], "application/x-sea": ["sea"], "application/x-sh": ["sh"], "application/x-shar": ["shar"], "application/x-shockwave-flash": ["swf"], "application/x-silverlight-app": ["xap"], "application/x-sql": ["sql"], "application/x-stuffit": ["sit"], "application/x-stuffitx": ["sitx"], "application/x-subrip": ["srt"], "application/x-sv4cpio": ["sv4cpio"], "application/x-sv4crc": ["sv4crc"], "application/x-t3vm-image": ["t3"], "application/x-tads": ["gam"], "application/x-tar": ["tar"], "application/x-tcl": ["tcl", "tk"], "application/x-tex": ["tex"], "application/x-tex-tfm": ["tfm"], "application/x-texinfo": ["texinfo", "texi"], "application/x-tgif": ["obj"], "application/x-ustar": ["ustar"], "application/x-virtualbox-hdd": ["hdd"], "application/x-virtualbox-ova": ["ova"], "application/x-virtualbox-ovf": ["ovf"], "application/x-virtualbox-vbox": ["vbox"], "application/x-virtualbox-vbox-extpack": ["vbox-extpack"], "application/x-virtualbox-vdi": ["vdi"], "application/x-virtualbox-vhd": ["vhd"], "application/x-virtualbox-vmdk": ["vmdk"], "application/x-wais-source": ["src"], "application/x-web-app-manifest+json": ["webapp"], "application/x-x509-ca-cert": ["der", "crt", "pem"], "application/x-xfig": ["fig"], "application/x-xliff+xml": ["xlf"], "application/x-xpinstall": ["xpi"], "application/x-xz": ["xz"], "application/x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"], "application/xaml+xml": ["xaml"], "application/xcap-diff+xml": ["xdf"], "application/xenc+xml": ["xenc"], "application/xhtml+xml": ["xhtml", "xht"], "application/xml": ["xml", "xsl", "xsd", "rng"], "application/xml-dtd": ["dtd"], "application/xop+xml": ["xop"], "application/xproc+xml": ["xpl"], "application/xslt+xml": ["xslt"], "application/xspf+xml": ["xspf"], "application/xv+xml": ["mxml", "xhvml", "xvml", "xvm"], "application/yang": ["yang"], "application/yin+xml": ["yin"], "application/zip": ["zip"], "audio/3gpp": [], "audio/adpcm": ["adp"], "audio/basic": ["au", "snd"], "audio/midi": ["mid", "midi", "kar", "rmi"], "audio/mp3": [], "audio/mp4": ["m4a", "mp4a"], "audio/mpeg": ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"], "audio/ogg": ["oga", "ogg", "spx"], "audio/s3m": ["s3m"], "audio/silk": ["sil"], "audio/vnd.dece.audio": ["uva", "uvva"], "audio/vnd.digital-winds": ["eol"], "audio/vnd.dra": ["dra"], "audio/vnd.dts": ["dts"], "audio/vnd.dts.hd": ["dtshd"], "audio/vnd.lucent.voice": ["lvp"], "audio/vnd.ms-playready.media.pya": ["pya"], "audio/vnd.nuera.ecelp4800": ["ecelp4800"], "audio/vnd.nuera.ecelp7470": ["ecelp7470"], "audio/vnd.nuera.ecelp9600": ["ecelp9600"], "audio/vnd.rip": ["rip"], "audio/wav": ["wav"], "audio/wave": [], "audio/webm": ["weba"], "audio/x-aac": ["aac"], "audio/x-aiff": ["aif", "aiff", "aifc"], "audio/x-caf": ["caf"], "audio/x-flac": ["flac"], "audio/x-m4a": [], "audio/x-matroska": ["mka"], "audio/x-mpegurl": ["m3u"], "audio/x-ms-wax": ["wax"], "audio/x-ms-wma": ["wma"], "audio/x-pn-realaudio": ["ram", "ra"], "audio/x-pn-realaudio-plugin": ["rmp"], "audio/x-realaudio": [], "audio/x-wav": [], "audio/xm": ["xm"], "chemical/x-cdx": ["cdx"], "chemical/x-cif": ["cif"], "chemical/x-cmdf": ["cmdf"], "chemical/x-cml": ["cml"], "chemical/x-csml": ["csml"], "chemical/x-xyz": ["xyz"], "font/collection": ["ttc"], "font/otf": ["otf"], "font/ttf": ["ttf"], "font/woff": ["woff"], "font/woff2": ["woff2"], "image/apng": ["apng"], "image/bmp": ["bmp"], "image/cgm": ["cgm"], "image/g3fax": ["g3"], "image/gif": ["gif"], "image/ief": ["ief"], "image/jp2": ["jp2", "jpg2"], "image/jpeg": ["jpeg", "jpg", "jpe"], "image/jpm": ["jpm"], "image/jpx": ["jpx", "jpf"], "image/ktx": ["ktx"], "image/png": ["png"], "image/prs.btif": ["btif"], "image/sgi": ["sgi"], "image/svg+xml": ["svg", "svgz"], "image/tiff": ["tiff", "tif"], "image/vnd.adobe.photoshop": ["psd"], "image/vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"], "image/vnd.djvu": ["djvu", "djv"], "image/vnd.dvb.subtitle": [], "image/vnd.dwg": ["dwg"], "image/vnd.dxf": ["dxf"], "image/vnd.fastbidsheet": ["fbs"], "image/vnd.fpx": ["fpx"], "image/vnd.fst": ["fst"], "image/vnd.fujixerox.edmics-mmr": ["mmr"], "image/vnd.fujixerox.edmics-rlc": ["rlc"], "image/vnd.ms-modi": ["mdi"], "image/vnd.ms-photo": ["wdp"], "image/vnd.net-fpx": ["npx"], "image/vnd.wap.wbmp": ["wbmp"], "image/vnd.xiff": ["xif"], "image/webp": ["webp"], "image/x-3ds": ["3ds"], "image/x-cmu-raster": ["ras"], "image/x-cmx": ["cmx"], "image/x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"], "image/x-icon": ["ico"], "image/x-jng": ["jng"], "image/x-mrsid-image": ["sid"], "image/x-ms-bmp": [], "image/x-pcx": ["pcx"], "image/x-pict": ["pic", "pct"], "image/x-portable-anymap": ["pnm"], "image/x-portable-bitmap": ["pbm"], "image/x-portable-graymap": ["pgm"], "image/x-portable-pixmap": ["ppm"], "image/x-rgb": ["rgb"], "image/x-tga": ["tga"], "image/x-xbitmap": ["xbm"], "image/x-xpixmap": ["xpm"], "image/x-xwindowdump": ["xwd"], "message/rfc822": ["eml", "mime"], "model/gltf+json": ["gltf"], "model/gltf-binary": ["glb"], "model/iges": ["igs", "iges"], "model/mesh": ["msh", "mesh", "silo"], "model/vnd.collada+xml": ["dae"], "model/vnd.dwf": ["dwf"], "model/vnd.gdl": ["gdl"], "model/vnd.gtw": ["gtw"], "model/vnd.mts": ["mts"], "model/vnd.vtu": ["vtu"], "model/vrml": ["wrl", "vrml"], "model/x3d+binary": ["x3db", "x3dbz"], "model/x3d+vrml": ["x3dv", "x3dvz"], "model/x3d+xml": ["x3d", "x3dz"], "text/cache-manifest": ["appcache", "manifest"], "text/calendar": ["ics", "ifb"], "text/coffeescript": ["coffee", "litcoffee"], "text/css": ["css"], "text/csv": ["csv"], "text/hjson": ["hjson"], "text/html": ["html", "htm", "shtml"], "text/jade": ["jade"], "text/jsx": ["jsx"], "text/less": ["less"], "text/markdown": ["markdown", "md"], "text/mathml": ["mml"], "text/n3": ["n3"], "text/plain": ["txt", "text", "conf", "def", "list", "log", "in", "ini"], "text/prs.lines.tag": ["dsc"], "text/richtext": ["rtx"], "text/rtf": [], "text/sgml": ["sgml", "sgm"], "text/slim": ["slim", "slm"], "text/stylus": ["stylus", "styl"], "text/tab-separated-values": ["tsv"], "text/troff": ["t", "tr", "roff", "man", "me", "ms"], "text/turtle": ["ttl"], "text/uri-list": ["uri", "uris", "urls"], "text/vcard": ["vcard"], "text/vnd.curl": ["curl"], "text/vnd.curl.dcurl": ["dcurl"], "text/vnd.curl.mcurl": ["mcurl"], "text/vnd.curl.scurl": ["scurl"], "text/vnd.dvb.subtitle": ["sub"], "text/vnd.fly": ["fly"], "text/vnd.fmi.flexstor": ["flx"], "text/vnd.graphviz": ["gv"], "text/vnd.in3d.3dml": ["3dml"], "text/vnd.in3d.spot": ["spot"], "text/vnd.sun.j2me.app-descriptor": ["jad"], "text/vnd.wap.wml": ["wml"], "text/vnd.wap.wmlscript": ["wmls"], "text/vtt": ["vtt"], "text/x-asm": ["s", "asm"], "text/x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"], "text/x-component": ["htc"], "text/x-fortran": ["f", "for", "f77", "f90"], "text/x-handlebars-template": ["hbs"], "text/x-java-source": ["java"], "text/x-lua": ["lua"], "text/x-markdown": ["mkd"], "text/x-nfo": ["nfo"], "text/x-opml": ["opml"], "text/x-org": [], "text/x-pascal": ["p", "pas"], "text/x-processing": ["pde"], "text/x-sass": ["sass"], "text/x-scss": ["scss"], "text/x-setext": ["etx"], "text/x-sfv": ["sfv"], "text/x-suse-ymp": ["ymp"], "text/x-uuencode": ["uu"], "text/x-vcalendar": ["vcs"], "text/x-vcard": ["vcf"], "text/xml": [], "text/yaml": ["yaml", "yml"], "video/3gpp": ["3gp", "3gpp"], "video/3gpp2": ["3g2"], "video/h261": ["h261"], "video/h263": ["h263"], "video/h264": ["h264"], "video/jpeg": ["jpgv"], "video/jpm": ["jpgm"], "video/mj2": ["mj2", "mjp2"], "video/mp2t": ["ts"], "video/mp4": ["mp4", "mp4v", "mpg4"], "video/mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v"], "video/ogg": ["ogv"], "video/quicktime": ["qt", "mov"], "video/vnd.dece.hd": ["uvh", "uvvh"], "video/vnd.dece.mobile": ["uvm", "uvvm"], "video/vnd.dece.pd": ["uvp", "uvvp"], "video/vnd.dece.sd": ["uvs", "uvvs"], "video/vnd.dece.video": ["uvv", "uvvv"], "video/vnd.dvb.file": ["dvb"], "video/vnd.fvt": ["fvt"], "video/vnd.mpegurl": ["mxu", "m4u"], "video/vnd.ms-playready.media.pyv": ["pyv"], "video/vnd.uvvu.mp4": ["uvu", "uvvu"], "video/vnd.vivo": ["viv"], "video/webm": ["webm"], "video/x-f4v": ["f4v"], "video/x-fli": ["fli"], "video/x-flv": ["flv"], "video/x-m4v": ["m4v"], "video/x-matroska": ["mkv", "mk3d", "mks"], "video/x-mng": ["mng"], "video/x-ms-asf": ["asf", "asx"], "video/x-ms-vob": ["vob"], "video/x-ms-wm": ["wm"], "video/x-ms-wmv": ["wmv"], "video/x-ms-wmx": ["wmx"], "video/x-ms-wvx": ["wvx"], "video/x-msvideo": ["avi"], "video/x-sgi-movie": ["movie"], "video/x-smv": ["smv"], "x-conference/x-cooltalk": ["ice"] };
135679
135214
  }
135680
135215
  });
135681
135216
 
135682
135217
  // ../../node_modules/mime/mime.js
135683
- var require_mime2 = __commonJS({
135218
+ var require_mime = __commonJS({
135684
135219
  "../../node_modules/mime/mime.js"(exports2, module2) {
135685
135220
  var path44 = require("path");
135686
135221
  var fs50 = require("fs");
@@ -135721,7 +135256,7 @@ var require_mime2 = __commonJS({
135721
135256
  return this.extensions[type2];
135722
135257
  };
135723
135258
  var mime3 = new Mime();
135724
- mime3.define(require_types4());
135259
+ mime3.define(require_types2());
135725
135260
  mime3.default_type = mime3.lookup("bin");
135726
135261
  mime3.Mime = Mime;
135727
135262
  mime3.charsets = {
@@ -135943,7 +135478,7 @@ var require_send = __commonJS({
135943
135478
  var etag = require_etag();
135944
135479
  var fresh = require_fresh();
135945
135480
  var fs50 = require("fs");
135946
- var mime3 = require_mime2();
135481
+ var mime3 = require_mime();
135947
135482
  var ms = require_ms5();
135948
135483
  var onFinished = require_on_finished();
135949
135484
  var parseRange = require_range_parser();
@@ -137316,7 +136851,7 @@ var require_proxy_addr = __commonJS({
137316
136851
  });
137317
136852
 
137318
136853
  // ../../node_modules/express/lib/utils.js
137319
- var require_utils14 = __commonJS({
136854
+ var require_utils12 = __commonJS({
137320
136855
  "../../node_modules/express/lib/utils.js"(exports2) {
137321
136856
  "use strict";
137322
136857
  var Buffer7 = require_safe_buffer().Buffer;
@@ -137468,9 +137003,9 @@ var require_application = __commonJS({
137468
137003
  var debug = require_src3()("express:application");
137469
137004
  var View = require_view();
137470
137005
  var http5 = require("http");
137471
- var compileETag = require_utils14().compileETag;
137472
- var compileQueryParser = require_utils14().compileQueryParser;
137473
- var compileTrust = require_utils14().compileTrust;
137006
+ var compileETag = require_utils12().compileETag;
137007
+ var compileQueryParser = require_utils12().compileQueryParser;
137008
+ var compileTrust = require_utils12().compileTrust;
137474
137009
  var deprecate3 = require_depd()("express");
137475
137010
  var flatten2 = require_array_flatten();
137476
137011
  var merge3 = require_utils_merge();
@@ -138695,15 +138230,15 @@ var require_response = __commonJS({
138695
138230
  var encodeUrl = require_encodeurl();
138696
138231
  var escapeHtml4 = require_escape_html();
138697
138232
  var http5 = require("http");
138698
- var isAbsolute = require_utils14().isAbsolute;
138233
+ var isAbsolute = require_utils12().isAbsolute;
138699
138234
  var onFinished = require_on_finished();
138700
138235
  var path44 = require("path");
138701
138236
  var statuses = require_statuses();
138702
138237
  var merge3 = require_utils_merge();
138703
138238
  var sign = require_cookie_signature().sign;
138704
- var normalizeType = require_utils14().normalizeType;
138705
- var normalizeTypes = require_utils14().normalizeTypes;
138706
- var setCharset = require_utils14().setCharset;
138239
+ var normalizeType = require_utils12().normalizeType;
138240
+ var normalizeTypes = require_utils12().normalizeTypes;
138241
+ var setCharset = require_utils12().setCharset;
138707
138242
  var cookie = require_cookie();
138708
138243
  var send = require_send();
138709
138244
  var extname8 = path44.extname;
@@ -148836,7 +148371,7 @@ var require_zip = __commonJS({
148836
148371
  });
148837
148372
 
148838
148373
  // ../../node_modules/rxjs/dist/cjs/internal/types.js
148839
- var require_types5 = __commonJS({
148374
+ var require_types3 = __commonJS({
148840
148375
  "../../node_modules/rxjs/dist/cjs/internal/types.js"(exports2) {
148841
148376
  "use strict";
148842
148377
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -152563,7 +152098,7 @@ var require_zipWith = __commonJS({
152563
152098
  });
152564
152099
 
152565
152100
  // ../../node_modules/rxjs/dist/cjs/index.js
152566
- var require_cjs4 = __commonJS({
152101
+ var require_cjs3 = __commonJS({
152567
152102
  "../../node_modules/rxjs/dist/cjs/index.js"(exports2) {
152568
152103
  "use strict";
152569
152104
  var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m2, k, k2) {
@@ -152841,7 +152376,7 @@ var require_cjs4 = __commonJS({
152841
152376
  Object.defineProperty(exports2, "NEVER", { enumerable: true, get: function() {
152842
152377
  return never_2.NEVER;
152843
152378
  } });
152844
- __exportStar(require_types5(), exports2);
152379
+ __exportStar(require_types3(), exports2);
152845
152380
  var config_1 = require_config4();
152846
152381
  Object.defineProperty(exports2, "config", { enumerable: true, get: function() {
152847
152382
  return config_1.config;
@@ -176032,7 +175567,7 @@ var require_strip_json_comments = __commonJS({
176032
175567
  });
176033
175568
 
176034
175569
  // ../../node_modules/rc/lib/utils.js
176035
- var require_utils15 = __commonJS({
175570
+ var require_utils13 = __commonJS({
176036
175571
  "../../node_modules/rc/lib/utils.js"(exports2) {
176037
175572
  "use strict";
176038
175573
  var fs50 = require("fs");
@@ -176412,7 +175947,7 @@ var require_minimist = __commonJS({
176412
175947
  // ../../node_modules/rc/index.js
176413
175948
  var require_rc = __commonJS({
176414
175949
  "../../node_modules/rc/index.js"(exports2, module2) {
176415
- var cc = require_utils15();
175950
+ var cc = require_utils13();
176416
175951
  var join20 = require("path").join;
176417
175952
  var deepExtend = require_deep_extend();
176418
175953
  var etc = "/etc";
@@ -177849,7 +177384,7 @@ var require_util6 = __commonJS({
177849
177384
  });
177850
177385
 
177851
177386
  // ../../node_modules/@pnpm/npm-conf/lib/types.js
177852
- var require_types6 = __commonJS({
177387
+ var require_types4 = __commonJS({
177853
177388
  "../../node_modules/@pnpm/npm-conf/lib/types.js"(exports2) {
177854
177389
  "use strict";
177855
177390
  var path44 = require("path");
@@ -178002,7 +177537,7 @@ var require_conf = __commonJS({
178002
177537
  constructor(base5, types6) {
178003
177538
  super(base5);
178004
177539
  this.root = base5;
178005
- this._parseField = util4.parseField.bind(null, types6 || require_types6());
177540
+ this._parseField = util4.parseField.bind(null, types6 || require_types4());
178006
177541
  }
178007
177542
  // https://github.com/npm/cli/blob/latest/lib/config/core.js#L326-L338
178008
177543
  add(data, marker) {
@@ -178595,7 +178130,7 @@ var require_parse_options = __commonJS({
178595
178130
  "../../node_modules/semver/internal/parse-options.js"(exports2, module2) {
178596
178131
  var looseOption = Object.freeze({ loose: true });
178597
178132
  var emptyOpts = Object.freeze({});
178598
- var parseOptions2 = (options) => {
178133
+ var parseOptions3 = (options) => {
178599
178134
  if (!options) {
178600
178135
  return emptyOpts;
178601
178136
  }
@@ -178604,7 +178139,7 @@ var require_parse_options = __commonJS({
178604
178139
  }
178605
178140
  return options;
178606
178141
  };
178607
- module2.exports = parseOptions2;
178142
+ module2.exports = parseOptions3;
178608
178143
  }
178609
178144
  });
178610
178145
 
@@ -178635,11 +178170,11 @@ var require_semver2 = __commonJS({
178635
178170
  var debug = require_debug5();
178636
178171
  var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants7();
178637
178172
  var { safeRe: re, t: t2 } = require_re2();
178638
- var parseOptions2 = require_parse_options();
178173
+ var parseOptions3 = require_parse_options();
178639
178174
  var { compareIdentifiers } = require_identifiers();
178640
178175
  var SemVer = class {
178641
178176
  constructor(version4, options) {
178642
- options = parseOptions2(options);
178177
+ options = parseOptions3(options);
178643
178178
  if (version4 instanceof SemVer) {
178644
178179
  if (version4.loose === !!options.loose && version4.includePrerelease === !!options.includePrerelease) {
178645
178180
  return version4;
@@ -179880,7 +179415,7 @@ var require_range3 = __commonJS({
179880
179415
  "../../node_modules/semver/classes/range.js"(exports2, module2) {
179881
179416
  var Range = class {
179882
179417
  constructor(range, options) {
179883
- options = parseOptions2(options);
179418
+ options = parseOptions3(options);
179884
179419
  if (range instanceof Range) {
179885
179420
  if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) {
179886
179421
  return range;
@@ -180002,7 +179537,7 @@ var require_range3 = __commonJS({
180002
179537
  module2.exports = Range;
180003
179538
  var LRU = require_lru_cache();
180004
179539
  var cache = new LRU({ max: 1e3 });
180005
- var parseOptions2 = require_parse_options();
179540
+ var parseOptions3 = require_parse_options();
180006
179541
  var Comparator = require_comparator();
180007
179542
  var debug = require_debug5();
180008
179543
  var SemVer = require_semver2();
@@ -180241,7 +179776,7 @@ var require_comparator = __commonJS({
180241
179776
  return ANY;
180242
179777
  }
180243
179778
  constructor(comp, options) {
180244
- options = parseOptions2(options);
179779
+ options = parseOptions3(options);
180245
179780
  if (comp instanceof Comparator) {
180246
179781
  if (comp.loose === !!options.loose) {
180247
179782
  return comp;
@@ -180309,7 +179844,7 @@ var require_comparator = __commonJS({
180309
179844
  }
180310
179845
  return new Range(this.value, options).test(comp.semver);
180311
179846
  }
180312
- options = parseOptions2(options);
179847
+ options = parseOptions3(options);
180313
179848
  if (options.includePrerelease && (this.value === "<0.0.0-0" || comp.value === "<0.0.0-0")) {
180314
179849
  return false;
180315
179850
  }
@@ -180335,7 +179870,7 @@ var require_comparator = __commonJS({
180335
179870
  }
180336
179871
  };
180337
179872
  module2.exports = Comparator;
180338
- var parseOptions2 = require_parse_options();
179873
+ var parseOptions3 = require_parse_options();
180339
179874
  var { safeRe: re, t: t2 } = require_re2();
180340
179875
  var cmp = require_cmp();
180341
179876
  var debug = require_debug5();
@@ -184934,7 +184469,7 @@ var require_signal = __commonJS({
184934
184469
  });
184935
184470
 
184936
184471
  // ../../node_modules/@jupyterlab/coreutils/lib/text.js
184937
- var require_text4 = __commonJS({
184472
+ var require_text3 = __commonJS({
184938
184473
  "../../node_modules/@jupyterlab/coreutils/lib/text.js"(exports2) {
184939
184474
  "use strict";
184940
184475
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -185071,7 +184606,7 @@ var require_lib25 = __commonJS({
185071
184606
  __exportStar(require_pageconfig(), exports2);
185072
184607
  __exportStar(require_path2(), exports2);
185073
184608
  __exportStar(require_signal(), exports2);
185074
- __exportStar(require_text4(), exports2);
184609
+ __exportStar(require_text3(), exports2);
185075
184610
  __exportStar(require_time(), exports2);
185076
184611
  __exportStar(require_url(), exports2);
185077
184612
  }
@@ -193891,7 +193426,7 @@ var {
193891
193426
  } = import_index.default;
193892
193427
 
193893
193428
  // src/version.ts
193894
- var version = "1.3.25";
193429
+ var version = "1.3.26";
193895
193430
  var version_default = version;
193896
193431
 
193897
193432
  // ../myst-cli/dist/build/build.js
@@ -194906,6 +194441,51 @@ function validateStringOrNumber(input3, opts) {
194906
194441
  return validationError("must be string or number", opts);
194907
194442
  }
194908
194443
 
194444
+ // ../myst-frontmatter/dist/utils/socialLinks.js
194445
+ var SOCIAL_LINKS_KEYS = [
194446
+ "url",
194447
+ "github",
194448
+ "bluesky",
194449
+ "mastodon",
194450
+ "linkedin",
194451
+ "threads",
194452
+ "twitter"
194453
+ // Change to 'x' in future
194454
+ ];
194455
+ var SOCIAL_LINKS_ALIASES = {
194456
+ website: "url",
194457
+ x: "twitter",
194458
+ // Can change this in a future release to be the other way
194459
+ bsky: "bluesky",
194460
+ instagram: "threads"
194461
+ // This is the same username
194462
+ };
194463
+ function validateSocialLinks(input3, opts, output2 = {}) {
194464
+ const value = output2 ? input3 : validateObjectKeys(input3, { optional: SOCIAL_LINKS_KEYS, alias: SOCIAL_LINKS_ALIASES }, opts);
194465
+ if (defined(value.url)) {
194466
+ output2.url = validateUrl(value.url, incrementOptions("url", opts));
194467
+ }
194468
+ if (defined(value.github)) {
194469
+ output2.github = validateString(value.github, incrementOptions("github", opts));
194470
+ }
194471
+ if (defined(value.bluesky)) {
194472
+ output2.bluesky = validateString(value.bluesky, incrementOptions("bluesky", opts));
194473
+ }
194474
+ if (defined(value.mastodon)) {
194475
+ output2.mastodon = validateString(value.mastodon, incrementOptions("mastodon", opts));
194476
+ }
194477
+ if (defined(value.linkedin)) {
194478
+ output2.linkedin = validateUrl(value.linkedin, incrementOptions("linkedin", opts));
194479
+ }
194480
+ if (defined(value.threads)) {
194481
+ output2.threads = validateString(value.threads, incrementOptions("threads", opts));
194482
+ }
194483
+ if (defined(value.twitter)) {
194484
+ output2.twitter = validateString(value.twitter, incrementOptions("twitter", opts));
194485
+ }
194486
+ return output2;
194487
+ }
194488
+
194909
194489
  // ../myst-frontmatter/dist/affiliations/validators.js
194910
194490
  var AFFILIATION_KEYS = [
194911
194491
  "id",
@@ -194921,10 +194501,10 @@ var AFFILIATION_KEYS = [
194921
194501
  "ringgold",
194922
194502
  "ror",
194923
194503
  "doi",
194924
- "url",
194925
194504
  "email",
194926
194505
  "phone",
194927
- "fax"
194506
+ "fax",
194507
+ ...SOCIAL_LINKS_KEYS
194928
194508
  ];
194929
194509
  var AFFILIATION_ALIASES = {
194930
194510
  ref: "id",
@@ -194933,8 +194513,8 @@ var AFFILIATION_ALIASES = {
194933
194513
  province: "state",
194934
194514
  zipcode: "postal_code",
194935
194515
  zip_code: "postal_code",
194936
- website: "url",
194937
- institution: "name"
194516
+ institution: "name",
194517
+ ...SOCIAL_LINKS_ALIASES
194938
194518
  };
194939
194519
  function validateAffiliation(input3, opts) {
194940
194520
  if (typeof input3 === "string") {
@@ -194998,9 +194578,7 @@ function validateAffiliation(input3, opts) {
194998
194578
  if (defined(value.email)) {
194999
194579
  output2.email = validateEmail(value.email, incrementOptions("email", opts));
195000
194580
  }
195001
- if (defined(value.url)) {
195002
- output2.url = validateUrl(value.url, incrementOptions("url", opts));
195003
- }
194581
+ validateSocialLinks(value, opts, output2);
195004
194582
  if (defined(value.phone)) {
195005
194583
  output2.phone = validateString(value.phone, incrementOptions("phone", opts));
195006
194584
  }
@@ -195270,12 +194848,10 @@ var PERSON_KEYS = [
195270
194848
  "roles",
195271
194849
  "affiliations",
195272
194850
  "collaborations",
195273
- "twitter",
195274
- "github",
195275
- "url",
195276
194851
  "note",
195277
194852
  "phone",
195278
- "fax"
194853
+ "fax",
194854
+ ...SOCIAL_LINKS_KEYS
195279
194855
  ];
195280
194856
  var PERSON_ALIASES = {
195281
194857
  ref: "id",
@@ -195283,7 +194859,7 @@ var PERSON_ALIASES = {
195283
194859
  role: "roles",
195284
194860
  "equal-contributor": "equal_contributor",
195285
194861
  affiliation: "affiliations",
195286
- website: "url"
194862
+ ...SOCIAL_LINKS_ALIASES
195287
194863
  };
195288
194864
  var NAME_KEYS = [
195289
194865
  "literal",
@@ -195456,15 +195032,7 @@ function validateContributor(input3, stash, opts) {
195456
195032
  return validateAndStashObject(aff, stash, "affiliations", validateAffiliation, affiliationsOpts);
195457
195033
  });
195458
195034
  }
195459
- if (defined(value.twitter)) {
195460
- output2.twitter = validateString(value.twitter, incrementOptions("twitter", opts));
195461
- }
195462
- if (defined(value.github)) {
195463
- output2.github = validateString(value.github, incrementOptions("github", opts));
195464
- }
195465
- if (defined(value.url)) {
195466
- output2.url = validateUrl(value.url, incrementOptions("url", opts));
195467
- }
195035
+ validateSocialLinks(value, opts, output2);
195468
195036
  if (defined(value.phone)) {
195469
195037
  output2.phone = validateString(value.phone, incrementOptions("phone", opts));
195470
195038
  }
@@ -205520,6 +205088,30 @@ function transformGitHubBracketedAdmonition(node3) {
205520
205088
  ];
205521
205089
  return true;
205522
205090
  }
205091
+ var QmdCallouts = [
205092
+ "callout-note",
205093
+ "callout-warning",
205094
+ "callout-important",
205095
+ "callout-tip",
205096
+ "callout-caution"
205097
+ ];
205098
+ function admonitionQmdTransform(tree) {
205099
+ const divs = selectAll("div", tree);
205100
+ divs.forEach((node3) => {
205101
+ var _a6;
205102
+ const classNames3 = (_a6 = node3.class) === null || _a6 === void 0 ? void 0 : _a6.split(/\s/).map((c) => c.trim());
205103
+ if (!classNames3)
205104
+ return;
205105
+ const match3 = classNames3 === null || classNames3 === void 0 ? void 0 : classNames3.find((s5) => QmdCallouts.find((c) => c === s5));
205106
+ if (!match3)
205107
+ return;
205108
+ node3.type = "admonition";
205109
+ node3.kind = match3.replace("callout-", "");
205110
+ node3.class = classNames3.filter((c) => c && c !== match3).join(" ");
205111
+ if (!node3.class)
205112
+ delete node3.class;
205113
+ });
205114
+ }
205523
205115
  function admonitionBlockquoteTransform(tree) {
205524
205116
  const blockquote5 = selectAll("blockquote", tree);
205525
205117
  blockquote5.forEach((node3) => {
@@ -237358,7 +236950,7 @@ var TRANSFORM_SOURCE2 = "BlockTransform:BlockMetadata";
237358
236950
  function blockMetadataTransform(mdast2, file) {
237359
236951
  const blocks2 = selectAll("block", mdast2);
237360
236952
  blocks2.forEach((block5) => {
237361
- var _a6, _b, _c, _d2, _e;
236953
+ var _a6, _b, _c, _d2, _e, _f;
237362
236954
  if (block5.meta) {
237363
236955
  try {
237364
236956
  const data = JSON.parse(block5.meta);
@@ -237377,12 +236969,13 @@ function blockMetadataTransform(mdast2, file) {
237377
236969
  block5.kind = kind;
237378
236970
  delete block5.data.kind;
237379
236971
  }
237380
- const className = (_b = block5.data) === null || _b === void 0 ? void 0 : _b.class;
237381
- if (className) {
237382
- block5.class = className;
236972
+ if (typeof ((_b = block5.data) === null || _b === void 0 ? void 0 : _b.class) === "string") {
236973
+ block5.class = `${(_c = block5.class) !== null && _c !== void 0 ? _c : ""} ${block5.data.class}`.trim();
237383
236974
  delete block5.data.class;
237384
236975
  }
237385
- const label = (_d2 = (_c = block5.data) === null || _c === void 0 ? void 0 : _c.label) !== null && _d2 !== void 0 ? _d2 : (_e = block5.data) === null || _e === void 0 ? void 0 : _e.id;
236976
+ if (block5.data && Object.keys(block5.data).length === 0)
236977
+ delete block5.data;
236978
+ const label = (_e = (_d2 = block5.data) === null || _d2 === void 0 ? void 0 : _d2.label) !== null && _e !== void 0 ? _e : (_f = block5.data) === null || _f === void 0 ? void 0 : _f.id;
237386
236979
  if (typeof label === "string") {
237387
236980
  const normalized = normalizeLabel(label);
237388
236981
  if (normalized) {
@@ -239675,6 +239268,7 @@ function basicTransformations(tree, file, opts) {
239675
239268
  mathLabelTransform(tree, file);
239676
239269
  subequationTransform(tree, file);
239677
239270
  headingLabelTransform(tree);
239271
+ admonitionQmdTransform(tree);
239678
239272
  admonitionBlockquoteTransform(tree);
239679
239273
  admonitionHeadersTransform(tree);
239680
239274
  joinGatesTransform(tree, file);
@@ -280926,6 +280520,81 @@ function nestedPartToTokens(partName, part, lineNumber, state, pluginRuleName, i
280926
280520
  return [openToken, ...nestedTokens, closeToken];
280927
280521
  }
280928
280522
 
280523
+ // ../markdown-it-myst/dist/inlineAttributes.js
280524
+ function tokenizeInlineAttributes(header) {
280525
+ const pattern = /(\.[A-Za-z0-9_-]+(?:\s|$))|(#[A-Za-z0-9_-]+(?:\s|$))|([a-zA-Z0-9_-]+)="((?:\\.|[^\\"])*)"(?:\s|$)|([a-zA-Z0-9_-]+)=([^\s"']+)(?:\s|$)|([A-Za-z0-9_:-]+)(?:\s|$)|([^\s]+)/g;
280526
+ const results = [];
280527
+ let match3;
280528
+ while ((match3 = pattern.exec(header)) !== null) {
280529
+ const [, classGroup, idGroup, attrKeyQuoted, attrValQuoted, attrKeyUnquoted, attrValUnquoted, bareGroup, unknownGroup] = match3;
280530
+ if (classGroup) {
280531
+ results.push({ kind: "class", value: classGroup.slice(1).trim() });
280532
+ } else if (idGroup) {
280533
+ results.push({ kind: "id", value: idGroup.slice(1).trim() });
280534
+ } else if (attrKeyQuoted && attrValQuoted !== void 0) {
280535
+ const unescaped = attrValQuoted.replace(/\\"/g, '"').trim();
280536
+ results.push({ kind: "attr", key: attrKeyQuoted, value: unescaped });
280537
+ } else if (attrKeyUnquoted && attrValUnquoted !== void 0) {
280538
+ results.push({ kind: "attr", key: attrKeyUnquoted, value: attrValUnquoted.trim() });
280539
+ } else if (bareGroup) {
280540
+ results.push({ kind: "bare", value: bareGroup.trim() });
280541
+ } else if (unknownGroup) {
280542
+ results.push({ kind: "unknown", value: unknownGroup.trim() });
280543
+ }
280544
+ }
280545
+ return results;
280546
+ }
280547
+ function inlineOptionsToTokens(header, lineNumber, state) {
280548
+ const tokens = tokenizeInlineAttributes(header);
280549
+ if (tokens.length === 0) {
280550
+ throw new Error("No inline tokens found");
280551
+ }
280552
+ let name3 = void 0;
280553
+ if (tokens[0].kind === "bare") {
280554
+ name3 = tokens[0].value;
280555
+ tokens.shift();
280556
+ }
280557
+ if (tokens.filter(({ kind }) => kind === "id").length > 1) {
280558
+ throw new Error("Cannot have more than one ID defined");
280559
+ }
280560
+ if (tokens.some(({ kind }) => kind === "bare")) {
280561
+ throw new Error("No additional bare tokens allowed after the first token");
280562
+ }
280563
+ const markdownItTokens = tokens.map((opt) => {
280564
+ if (opt.kind === "id" && /^[0-9]/.test(opt.value)) {
280565
+ throw new Error(`ID cannot start with a number: "${opt.value}"`);
280566
+ }
280567
+ if (opt.kind === "unknown") {
280568
+ if (opt.value.match(/\.[A-Za-z0-9_\-.]+/)) {
280569
+ throw new Error(`Unknown token "${opt.value}". Classes must be separated by spaces, try "${opt.value.replace(/\./g, " .").trim()}"`);
280570
+ }
280571
+ throw new Error(`Unknown token "${opt.value}"`);
280572
+ }
280573
+ if (opt.kind === "class" || opt.kind === "id" || opt.kind === "bare") {
280574
+ const classTokens = [
280575
+ new state.Token("myst_option_open", "", 1),
280576
+ new state.Token("myst_option_close", "", -1)
280577
+ ];
280578
+ classTokens[0].info = opt.kind;
280579
+ classTokens[0].content = opt.kind === "class" ? `.${opt.value}` : opt.kind === "id" ? `#${opt.value}` : opt.value;
280580
+ classTokens[0].meta = { location: "inline", ...opt };
280581
+ return classTokens;
280582
+ }
280583
+ const optTokens = nestedPartToTokens("myst_option", opt.value, lineNumber, state, "run_roles", true);
280584
+ if (optTokens.length) {
280585
+ optTokens[0].info = opt.key;
280586
+ optTokens[0].content = opt.value;
280587
+ optTokens[0].meta = { location: "inline", ...opt };
280588
+ }
280589
+ return optTokens;
280590
+ });
280591
+ const options = tokens.map((t2) => [
280592
+ t2.kind === "attr" ? t2.key : t2.kind === "id" ? "label" : t2.kind,
280593
+ t2.value
280594
+ ]);
280595
+ return { name: name3, tokens: markdownItTokens.flat(), options };
280596
+ }
280597
+
280929
280598
  // ../markdown-it-myst/dist/roles.js
280930
280599
  function rolePlugin(md) {
280931
280600
  md.inline.ruler.before("backticks", "parse_roles", roleRule);
@@ -280950,6 +280619,13 @@ ${content3}</pre></aside>
280950
280619
  `;
280951
280620
  };
280952
280621
  }
280622
+ var _x;
280623
+ try {
280624
+ _x = new RegExp("^\\{\\s*([^}]+?)\\s*\\}(`+)(?!`)(.+?)(?<!`)\\2(?!`)");
280625
+ } catch (err) {
280626
+ _x = /^\{\s*([^}]+?)\s*\}(`+)(?!`)(.+?)\2(?!`)/;
280627
+ }
280628
+ var ROLE_PATTERN = _x;
280953
280629
  function roleRule(state, silent) {
280954
280630
  if (state.src.charCodeAt(state.pos - 1) === 92) {
280955
280631
  return false;
@@ -280957,24 +280633,18 @@ function roleRule(state, silent) {
280957
280633
  const match3 = ROLE_PATTERN.exec(state.src.slice(state.pos));
280958
280634
  if (match3 == null)
280959
280635
  return false;
280960
- const [str2, name3, , content3] = match3;
280636
+ const [str2, header, , content3] = match3;
280961
280637
  if (!silent) {
280962
280638
  const token = state.push("role", "", 0);
280963
- token.meta = { name: name3 };
280639
+ token.info = header;
280964
280640
  token.content = content3;
280965
280641
  token.col = [state.pos, state.pos + str2.length];
280966
280642
  }
280967
280643
  state.pos += str2.length;
280968
280644
  return true;
280969
280645
  }
280970
- var _x;
280971
- try {
280972
- _x = new RegExp("^\\{\\s*([a-zA-Z_\\-+:]{1,36})\\s*\\}(`+)(?!`)(.+?)(?<!`)\\2(?!`)");
280973
- } catch (error) {
280974
- _x = /^\{\s*([a-zA-Z_\-+:]{1,36})\s*\}(`+)(?!`)(.+?)\2(?!`)/;
280975
- }
280976
- var ROLE_PATTERN = _x;
280977
280646
  function runRoles(state) {
280647
+ var _a6, _b, _c;
280978
280648
  for (const token of state.tokens) {
280979
280649
  if (token.type === "inline" && token.children) {
280980
280650
  const childTokens = [];
@@ -280983,25 +280653,30 @@ function runRoles(state) {
280983
280653
  try {
280984
280654
  const { map: map14 } = token;
280985
280655
  const { content: content3, col } = child;
280656
+ const { name: name3, tokens: optTokens } = inlineOptionsToTokens(child.info, (_a6 = map14 === null || map14 === void 0 ? void 0 : map14[0]) !== null && _a6 !== void 0 ? _a6 : 0, state);
280657
+ if (!name3) {
280658
+ throw new Error('A role name is required, for example, "{sub}`2`"');
280659
+ }
280986
280660
  const roleOpen = new state.Token("parsed_role_open", "", 1);
280987
280661
  roleOpen.content = content3;
280988
280662
  roleOpen.hidden = true;
280989
- roleOpen.info = child.meta.name;
280663
+ roleOpen.info = name3;
280664
+ roleOpen.meta = { header: child.info };
280990
280665
  roleOpen.block = false;
280991
280666
  roleOpen.map = map14;
280992
280667
  roleOpen.col = col;
280993
- const contentTokens = roleContentToTokens(content3, map14 ? map14[0] : 0, state);
280668
+ const contentTokens = roleContentToTokens(content3, (_b = map14 === null || map14 === void 0 ? void 0 : map14[0]) !== null && _b !== void 0 ? _b : 0, state);
280994
280669
  const roleClose = new state.Token("parsed_role_close", "", -1);
280995
280670
  roleClose.block = false;
280996
280671
  roleClose.hidden = true;
280997
- roleOpen.info = child.meta.name;
280998
- const newTokens = [roleOpen, ...contentTokens, roleClose];
280672
+ roleOpen.info = name3;
280673
+ const newTokens = [roleOpen, ...optTokens, ...contentTokens, roleClose];
280999
280674
  childTokens.push(...newTokens);
281000
280675
  } catch (err) {
281001
280676
  const errorToken = new state.Token("role_error", "", 0);
281002
280677
  errorToken.content = child.content;
281003
280678
  errorToken.info = child.info;
281004
- errorToken.meta = child.meta;
280679
+ errorToken.meta = (_c = child.meta) !== null && _c !== void 0 ? _c : {};
281005
280680
  errorToken.map = child.map;
281006
280681
  errorToken.meta.error_message = err.message;
281007
280682
  errorToken.meta.error_name = err.name;
@@ -281046,7 +280721,7 @@ function computeBlockTightness(src, map14) {
281046
280721
  function replaceFences(state) {
281047
280722
  for (const token of state.tokens) {
281048
280723
  if (token.type === "fence" || token.type === "colon_fence") {
281049
- const match3 = token.info.match(/^\s*\{\s*([^}\s]+)\s*\}\s*(.*)$/);
280724
+ const match3 = token.info.match(/^\s*\{\s*([^}]+)\s*\}\s*(.*)$/);
281050
280725
  if (match3) {
281051
280726
  token.type = "directive";
281052
280727
  token.info = match3[1].trim();
@@ -281057,15 +280732,16 @@ function replaceFences(state) {
281057
280732
  return true;
281058
280733
  }
281059
280734
  function runDirectives(state) {
281060
- var _a6;
280735
+ var _a6, _b;
281061
280736
  const finalTokens = [];
281062
280737
  for (const token of state.tokens) {
281063
280738
  if (token.type === "directive") {
281064
280739
  try {
281065
280740
  const { info, map: map14 } = token;
281066
280741
  const arg2 = ((_a6 = token.meta.arg) === null || _a6 === void 0 ? void 0 : _a6.trim()) || void 0;
281067
- const content3 = parseDirectiveContent(token.content.trim() ? token.content.split(/\r?\n/) : [], info, state);
281068
- const { body: body3, options } = content3;
280742
+ const { name: name3 = "div", tokens: inlineOptTokens, options: inlineOptions } = inlineOptionsToTokens(info, (_b = map14 === null || map14 === void 0 ? void 0 : map14[0]) !== null && _b !== void 0 ? _b : 0, state);
280743
+ const content3 = parseDirectiveContent(token.content.trim() ? token.content.split(/\r?\n/) : [], name3, state);
280744
+ const { body: body3, options, optionsLocation } = content3;
281069
280745
  let { bodyOffset } = content3;
281070
280746
  while (body3.length && !body3[0].trim()) {
281071
280747
  body3.shift();
@@ -281073,25 +280749,26 @@ function runDirectives(state) {
281073
280749
  }
281074
280750
  const bodyString = body3.join("\n").trimEnd();
281075
280751
  const directiveOpen = new state.Token("parsed_directive_open", "", 1);
281076
- directiveOpen.info = info;
280752
+ directiveOpen.info = name3;
281077
280753
  directiveOpen.hidden = true;
281078
280754
  directiveOpen.content = bodyString;
281079
280755
  directiveOpen.map = map14;
281080
280756
  directiveOpen.meta = {
281081
280757
  arg: arg2,
281082
- options: getDirectiveOptions(options),
280758
+ options: getDirectiveOptions([...inlineOptions, ...options !== null && options !== void 0 ? options : []]),
281083
280759
  // Tightness is computed for all directives (are they separated by a newline before/after)
281084
280760
  tight: computeBlockTightness(state.src, token.map)
281085
280761
  };
281086
280762
  const startLineNumber = map14 ? map14[0] : 0;
281087
280763
  const argTokens = directiveArgToTokens(arg2, startLineNumber, state);
281088
- const optsTokens = directiveOptionsToTokens(options || [], startLineNumber + 1, state);
280764
+ const optsTokens = directiveOptionsToTokens(options || [], startLineNumber + 1, state, optionsLocation);
281089
280765
  const bodyTokens = directiveBodyToTokens(bodyString, startLineNumber + bodyOffset, state);
281090
280766
  const directiveClose = new state.Token("parsed_directive_close", "", -1);
281091
280767
  directiveClose.info = info;
281092
280768
  directiveClose.hidden = true;
281093
280769
  const newTokens = [
281094
280770
  directiveOpen,
280771
+ ...inlineOptTokens,
281095
280772
  ...argTokens,
281096
280773
  ...optsTokens,
281097
280774
  ...bodyTokens,
@@ -281141,7 +280818,12 @@ function parseDirectiveContent(content3, info, state) {
281141
280818
  try {
281142
280819
  const options = js_yaml_default.load(yamlBlock.join("\n"));
281143
280820
  if (options && typeof options === "object") {
281144
- return { body: newContent, options: Object.entries(options), bodyOffset };
280821
+ return {
280822
+ body: newContent,
280823
+ options: Object.entries(options),
280824
+ bodyOffset,
280825
+ optionsLocation: "yaml"
280826
+ };
281145
280827
  }
281146
280828
  } catch (err) {
281147
280829
  stateWarn(state, `Invalid YAML options in "${info}" directive: ${err.reason}`);
@@ -281165,7 +280847,7 @@ function parseDirectiveContent(content3, info, state) {
281165
280847
  bodyOffset++;
281166
280848
  }
281167
280849
  }
281168
- return { body: newContent, options, bodyOffset };
280850
+ return { body: newContent, options, bodyOffset, optionsLocation: "colon" };
281169
280851
  }
281170
280852
  return { body: content3, bodyOffset: 1 };
281171
280853
  }
@@ -281173,10 +280855,14 @@ function directiveArgToTokens(arg2, lineNumber, state) {
281173
280855
  return nestedPartToTokens("directive_arg", arg2, lineNumber, state, "run_directives", true);
281174
280856
  }
281175
280857
  function getDirectiveOptions(options) {
281176
- if (!options)
280858
+ if (!options || options.length === 0)
281177
280859
  return void 0;
281178
280860
  const simplified = {};
281179
280861
  options.forEach(([key2, val]) => {
280862
+ if (key2 === "class" && simplified.class) {
280863
+ simplified.class += ` ${val}`;
280864
+ return;
280865
+ }
281180
280866
  if (simplified[key2] !== void 0) {
281181
280867
  return;
281182
280868
  }
@@ -281184,16 +280870,16 @@ function getDirectiveOptions(options) {
281184
280870
  });
281185
280871
  return simplified;
281186
280872
  }
281187
- function directiveOptionsToTokens(options, lineNumber, state) {
280873
+ function directiveOptionsToTokens(options, lineNumber, state, optionsLocation) {
281188
280874
  const tokens = options.map(([key2, value], index4) => {
281189
- const optTokens = typeof value === "string" ? nestedPartToTokens("directive_option", value, lineNumber + index4, state, "run_directives", true) : [
281190
- new state.Token("directive_option_open", "", 1),
281191
- new state.Token("directive_option_close", "", -1)
280875
+ const optTokens = typeof value === "string" ? nestedPartToTokens("myst_option", value, lineNumber + index4, state, "run_directives", true) : [
280876
+ new state.Token("myst_option_open", "", 1),
280877
+ new state.Token("myst_option_close", "", -1)
281192
280878
  ];
281193
280879
  if (optTokens.length) {
281194
280880
  optTokens[0].info = key2;
281195
280881
  optTokens[0].content = typeof value === "string" ? value : "";
281196
- optTokens[0].meta = { value };
280882
+ optTokens[0].meta = { location: optionsLocation, value };
281197
280883
  }
281198
280884
  return optTokens;
281199
280885
  });
@@ -281946,12 +281632,7 @@ var admonitionDirective = {
281946
281632
  "note",
281947
281633
  "seealso",
281948
281634
  "tip",
281949
- "warning",
281950
- ".callout-note",
281951
- ".callout-warning",
281952
- ".callout-important",
281953
- ".callout-tip",
281954
- ".callout-caution"
281635
+ "warning"
281955
281636
  ],
281956
281637
  arg: {
281957
281638
  type: "myst",
@@ -281995,7 +281676,7 @@ var admonitionDirective = {
281995
281676
  }
281996
281677
  const admonition5 = {
281997
281678
  type: "admonition",
281998
- kind: data.name !== "admonition" ? data.name.replace(".callout-", "") : void 0,
281679
+ kind: data.name !== "admonition" ? data.name : void 0,
281999
281680
  children
282000
281681
  };
282001
281682
  if (((_a6 = data.options) === null || _a6 === void 0 ? void 0 : _a6.icon) === false) {
@@ -282045,7 +281726,7 @@ function getCodeBlockOptions(data, vfile2, defaultFilename) {
282045
281726
  const { options, node: node3 } = data;
282046
281727
  if ((options === null || options === void 0 ? void 0 : options["lineno-start"]) != null && (options === null || options === void 0 ? void 0 : options["number-lines"]) != null) {
282047
281728
  fileWarn(vfile2, 'Cannot use both "lineno-start" and "number-lines"', {
282048
- node: (_a6 = select('mystDirectiveOption[name="number-lines"]', node3)) !== null && _a6 !== void 0 ? _a6 : node3,
281729
+ node: (_a6 = select('mystOption[name="number-lines"]', node3)) !== null && _a6 !== void 0 ? _a6 : node3,
282049
281730
  source: "code-block:options",
282050
281731
  ruleId: RuleId.directiveOptionsCorrect
282051
281732
  });
@@ -282115,7 +281796,7 @@ function parseTags(input3, vfile2, node3) {
282115
281796
  return parseTags(js_yaml_default.load(input3), vfile2, node3);
282116
281797
  } catch (error) {
282117
281798
  fileError(vfile2, "Could not load tags for code-cell directive", {
282118
- node: (_a6 = select('mystDirectiveOption[name="tags"]', node3)) !== null && _a6 !== void 0 ? _a6 : node3,
281799
+ node: (_a6 = select('mystOption[name="tags"]', node3)) !== null && _a6 !== void 0 ? _a6 : node3,
282119
281800
  source: "code-cell:tags",
282120
281801
  ruleId: RuleId.directiveOptionsCorrect
282121
281802
  });
@@ -282135,7 +281816,7 @@ function parseTags(input3, vfile2, node3) {
282135
281816
  }
282136
281817
  } else if (tags) {
282137
281818
  fileWarn(vfile2, "tags in code-cell directive must be a list of strings", {
282138
- node: (_b = select('mystDirectiveOption[name="tags"]', node3)) !== null && _b !== void 0 ? _b : node3,
281819
+ node: (_b = select('mystOption[name="tags"]', node3)) !== null && _b !== void 0 ? _b : node3,
282139
281820
  source: "code-cell:tags",
282140
281821
  ruleId: RuleId.directiveOptionsCorrect
282141
281822
  });
@@ -282628,7 +282309,7 @@ var includeDirective = {
282628
282309
  filter7.endAt = (_h = data.options) === null || _h === void 0 ? void 0 : _h["end-at"];
282629
282310
  filter7.endBefore = (_j = data.options) === null || _j === void 0 ? void 0 : _j["end-before"];
282630
282311
  if ((_k = data.options) === null || _k === void 0 ? void 0 : _k.lines) {
282631
- filter7.lines = parseLinesString(vfile2, (_l = select('mystDirectiveOption[name="lines"]', data.node)) !== null && _l !== void 0 ? _l : void 0, (_m = data.options) === null || _m === void 0 ? void 0 : _m.lines);
282312
+ filter7.lines = parseLinesString(vfile2, (_l = select('mystOption[name="lines"]', data.node)) !== null && _l !== void 0 ? _l : void 0, (_m = data.options) === null || _m === void 0 ? void 0 : _m.lines);
282632
282313
  } else {
282633
282314
  const startLine = (_o = data.options) === null || _o === void 0 ? void 0 : _o["start-line"];
282634
282315
  const endLine = (_p = data.options) === null || _p === void 0 ? void 0 : _p["end-line"];
@@ -285954,7 +285635,7 @@ var csvTableDirective = {
285954
285635
  headerCells = parseCSV(data.options.header, ctx, data.options);
285955
285636
  } catch (error) {
285956
285637
  fileError(vfile2, "csv-table directive header must be valid CSV-formatted MyST", {
285957
- node: (_b = select('mystDirectiveOption[name="header"]', data.node)) !== null && _b !== void 0 ? _b : data.node,
285638
+ node: (_b = select('mystOption[name="header"]', data.node)) !== null && _b !== void 0 ? _b : data.node,
285958
285639
  ruleId: RuleId.directiveOptionsCorrect
285959
285640
  });
285960
285641
  }
@@ -286289,14 +285970,13 @@ var divDirective = {
286289
285970
  ...commonDirectiveOptions("div")
286290
285971
  },
286291
285972
  body: {
286292
- type: "myst",
286293
- required: true
285973
+ type: "myst"
286294
285974
  },
286295
285975
  run(data) {
286296
- const div2 = {
286297
- type: "div",
286298
- children: data.body
286299
- };
285976
+ const div2 = { type: "div" };
285977
+ if (data.body) {
285978
+ div2.children = data.body;
285979
+ }
286300
285980
  addCommonDirectiveOptions(data, div2);
286301
285981
  return [div2];
286302
285982
  }
@@ -286388,11 +286068,75 @@ var defaultDirectives = [
286388
286068
  tocDirective
286389
286069
  ];
286390
286070
 
286071
+ // ../myst-roles/dist/utils.js
286072
+ function classRoleOption(nodeType = "node") {
286073
+ return {
286074
+ class: {
286075
+ type: String,
286076
+ doc: `Annotate the ${nodeType} with a set of space-delimited class names.`
286077
+ }
286078
+ };
286079
+ }
286080
+ function labelRoleOption(nodeType = "node") {
286081
+ return {
286082
+ label: {
286083
+ type: String,
286084
+ alias: ["name"],
286085
+ doc: `Label the ${nodeType} to be cross-referenced or explicitly linked to.`
286086
+ }
286087
+ };
286088
+ }
286089
+ function commonRoleOptions(nodeType = "node") {
286090
+ return {
286091
+ ...classRoleOption(nodeType),
286092
+ ...labelRoleOption(nodeType)
286093
+ };
286094
+ }
286095
+ function addClassOptions2(data, node3) {
286096
+ var _a6;
286097
+ if (typeof ((_a6 = data.options) === null || _a6 === void 0 ? void 0 : _a6.class) === "string") {
286098
+ node3.class = data.options.class;
286099
+ }
286100
+ return node3;
286101
+ }
286102
+ function addLabelOptions2(data, node3) {
286103
+ var _a6;
286104
+ const { label, identifier } = normalizeLabel((_a6 = data.options) === null || _a6 === void 0 ? void 0 : _a6.label) || {};
286105
+ if (label)
286106
+ node3.label = label;
286107
+ if (identifier)
286108
+ node3.identifier = identifier;
286109
+ return node3;
286110
+ }
286111
+ function addCommonRoleOptions(data, node3) {
286112
+ addClassOptions2(data, node3);
286113
+ addLabelOptions2(data, node3);
286114
+ return node3;
286115
+ }
286116
+
286117
+ // ../myst-roles/dist/span.js
286118
+ var spanRole = {
286119
+ name: "span",
286120
+ options: { ...commonRoleOptions("span") },
286121
+ body: {
286122
+ type: "myst"
286123
+ },
286124
+ run(data) {
286125
+ const node3 = { type: "span" };
286126
+ if (data.body) {
286127
+ node3.children = data.body;
286128
+ }
286129
+ addCommonRoleOptions(data, node3);
286130
+ return [node3];
286131
+ }
286132
+ };
286133
+
286391
286134
  // ../myst-roles/dist/abbreviation.js
286392
286135
  var ABBR_PATTERN = /^(.+?)\(([^()]+)\)$/;
286393
286136
  var abbreviationRole = {
286394
286137
  name: "abbreviation",
286395
286138
  alias: ["abbr"],
286139
+ options: { ...commonRoleOptions("abbreviation") },
286396
286140
  body: {
286397
286141
  type: String,
286398
286142
  required: true
@@ -286403,7 +286147,9 @@ var abbreviationRole = {
286403
286147
  const match3 = ABBR_PATTERN.exec(body3);
286404
286148
  const value = (_b = (_a6 = match3 === null || match3 === void 0 ? void 0 : match3[1]) === null || _a6 === void 0 ? void 0 : _a6.trim()) !== null && _b !== void 0 ? _b : body3.trim();
286405
286149
  const title = (_c = match3 === null || match3 === void 0 ? void 0 : match3[2]) === null || _c === void 0 ? void 0 : _c.trim();
286406
- return [{ type: "abbreviation", title, children: [{ type: "text", value }] }];
286150
+ const abbr = { type: "abbreviation", title, children: [{ type: "text", value }] };
286151
+ addCommonRoleOptions(data, abbr);
286152
+ return [abbr];
286407
286153
  }
286408
286154
  };
286409
286155
 
@@ -286411,12 +286157,15 @@ var abbreviationRole = {
286411
286157
  var chemRole = {
286412
286158
  name: "chemicalFormula",
286413
286159
  alias: ["chem"],
286160
+ options: { ...commonRoleOptions("chemicalFormula") },
286414
286161
  body: {
286415
286162
  type: String,
286416
286163
  required: true
286417
286164
  },
286418
286165
  run(data) {
286419
- return [{ type: "chemicalFormula", value: data.body }];
286166
+ const chem = { type: "chemicalFormula", value: data.body };
286167
+ addCommonRoleOptions(data, chem);
286168
+ return [chem];
286420
286169
  }
286421
286170
  };
286422
286171
 
@@ -286445,6 +286194,7 @@ var citeRole = {
286445
286194
  "cite:cauthors"
286446
286195
  // 'cite:empty',
286447
286196
  ],
286197
+ options: { ...commonRoleOptions("cite") },
286448
286198
  body: {
286449
286199
  type: String,
286450
286200
  required: true
@@ -286477,18 +286227,15 @@ var citeRole = {
286477
286227
  return cite3;
286478
286228
  });
286479
286229
  if (data.name === "cite" && children.length === 1) {
286230
+ addCommonRoleOptions(data, children[0]);
286480
286231
  return children;
286481
286232
  }
286482
286233
  if (data.name.includes("cite:alp")) {
286483
286234
  return children;
286484
286235
  }
286485
- return [
286486
- {
286487
- type: "citeGroup",
286488
- kind,
286489
- children
286490
- }
286491
- ];
286236
+ const citeGroup3 = { type: "citeGroup", kind, children };
286237
+ addCommonRoleOptions(data, citeGroup3);
286238
+ return [citeGroup3];
286492
286239
  }
286493
286240
  };
286494
286241
 
@@ -286496,24 +286243,30 @@ var citeRole = {
286496
286243
  var deleteRole = {
286497
286244
  name: "delete",
286498
286245
  alias: ["del", "strike"],
286246
+ options: { ...commonRoleOptions("delete") },
286499
286247
  body: {
286500
286248
  type: "myst",
286501
286249
  required: true
286502
286250
  },
286503
286251
  run(data) {
286504
- return [{ type: "delete", children: data.body }];
286252
+ const del2 = { type: "delete", children: data.body };
286253
+ addCommonRoleOptions(data, del2);
286254
+ return [del2];
286505
286255
  }
286506
286256
  };
286507
286257
 
286508
286258
  // ../myst-roles/dist/math.js
286509
286259
  var mathRole = {
286510
286260
  name: "math",
286261
+ options: { ...commonRoleOptions("math") },
286511
286262
  body: {
286512
286263
  type: String,
286513
286264
  required: true
286514
286265
  },
286515
286266
  run(data) {
286516
- return [{ type: "inlineMath", value: data.body }];
286267
+ const node3 = { type: "inlineMath", value: data.body };
286268
+ addCommonRoleOptions(data, node3);
286269
+ return [node3];
286517
286270
  }
286518
286271
  };
286519
286272
 
@@ -286783,16 +286536,14 @@ var UNITS2 = {
286783
286536
  // ../myst-roles/dist/inlineExpression.js
286784
286537
  var evalRole = {
286785
286538
  name: "eval",
286539
+ options: { ...commonRoleOptions("eval") },
286786
286540
  body: {
286787
286541
  type: String,
286788
286542
  required: true
286789
286543
  },
286790
286544
  run(data) {
286791
- const value = data.body;
286792
- const node3 = {
286793
- type: "inlineExpression",
286794
- value
286795
- };
286545
+ const node3 = { type: "inlineExpression", value: data.body };
286546
+ addCommonRoleOptions(data, node3);
286796
286547
  return [node3];
286797
286548
  }
286798
286549
  };
@@ -286801,12 +286552,15 @@ var evalRole = {
286801
286552
  var smallcapsRole = {
286802
286553
  name: "smallcaps",
286803
286554
  alias: ["sc"],
286555
+ options: { ...commonRoleOptions("smallcaps") },
286804
286556
  body: {
286805
286557
  type: "myst",
286806
286558
  required: true
286807
286559
  },
286808
286560
  run(data) {
286809
- return [{ type: "smallcaps", children: data.body }];
286561
+ const node3 = { type: "smallcaps", children: data.body };
286562
+ addCommonRoleOptions(data, node3);
286563
+ return [node3];
286810
286564
  }
286811
286565
  };
286812
286566
 
@@ -286814,12 +286568,15 @@ var smallcapsRole = {
286814
286568
  var subscriptRole = {
286815
286569
  name: "subscript",
286816
286570
  alias: ["sub"],
286571
+ options: { ...commonRoleOptions("subscript") },
286817
286572
  body: {
286818
286573
  type: "myst",
286819
286574
  required: true
286820
286575
  },
286821
286576
  run(data) {
286822
- return [{ type: "subscript", children: data.body }];
286577
+ const node3 = { type: "subscript", children: data.body };
286578
+ addCommonRoleOptions(data, node3);
286579
+ return [node3];
286823
286580
  }
286824
286581
  };
286825
286582
 
@@ -286827,12 +286584,15 @@ var subscriptRole = {
286827
286584
  var superscriptRole = {
286828
286585
  name: "superscript",
286829
286586
  alias: ["sup"],
286587
+ options: { ...commonRoleOptions("superscript") },
286830
286588
  body: {
286831
286589
  type: "myst",
286832
286590
  required: true
286833
286591
  },
286834
286592
  run(data) {
286835
- return [{ type: "superscript", children: data.body }];
286593
+ const node3 = { type: "superscript", children: data.body };
286594
+ addCommonRoleOptions(data, node3);
286595
+ return [node3];
286836
286596
  }
286837
286597
  };
286838
286598
 
@@ -286840,12 +286600,15 @@ var superscriptRole = {
286840
286600
  var underlineRole = {
286841
286601
  name: "underline",
286842
286602
  alias: ["u"],
286603
+ options: { ...commonRoleOptions("underline") },
286843
286604
  body: {
286844
286605
  type: "myst",
286845
286606
  required: true
286846
286607
  },
286847
286608
  run(data) {
286848
- return [{ type: "underline", children: data.body }];
286609
+ const node3 = { type: "underline", children: data.body };
286610
+ addCommonRoleOptions(data, node3);
286611
+ return [node3];
286849
286612
  }
286850
286613
  };
286851
286614
 
@@ -286854,16 +286617,17 @@ var keyboardRole = {
286854
286617
  name: "keyboard",
286855
286618
  doc: 'The keyboard role denote textual user input from a keyboard, such as "Ctrl" + "Space".',
286856
286619
  alias: ["kbd"],
286620
+ options: { ...commonRoleOptions("keyboard") },
286857
286621
  body: {
286858
286622
  type: String,
286859
286623
  required: true
286860
286624
  },
286861
286625
  run(data) {
286862
- const body3 = data.body;
286863
286626
  const node3 = {
286864
286627
  type: "keyboard",
286865
- children: [{ type: "text", value: body3 }]
286628
+ children: [{ type: "text", value: data.body }]
286866
286629
  };
286630
+ addCommonRoleOptions(data, node3);
286867
286631
  return [node3];
286868
286632
  }
286869
286633
  };
@@ -286914,6 +286678,7 @@ var rawTypstRole = {
286914
286678
 
286915
286679
  // ../myst-roles/dist/index.js
286916
286680
  var defaultRoles = [
286681
+ spanRole,
286917
286682
  abbreviationRole,
286918
286683
  chemRole,
286919
286684
  citeRole,
@@ -288176,10 +287941,10 @@ var UNHIDDEN_TOKENS = /* @__PURE__ */ new Set([
288176
287941
  "parsed_directive_close",
288177
287942
  "directive_arg_open",
288178
287943
  "directive_arg_close",
288179
- "directive_option_open",
288180
- "directive_option_close",
288181
287944
  "directive_body_open",
288182
287945
  "directive_body_close",
287946
+ "myst_option_open",
287947
+ "myst_option_close",
288183
287948
  "parsed_role_open",
288184
287949
  "parsed_role_close",
288185
287950
  "role_body_open",
@@ -288676,15 +288441,6 @@ var defaultMdast = {
288676
288441
  };
288677
288442
  }
288678
288443
  },
288679
- directive_option: {
288680
- type: "mystDirectiveOption",
288681
- getAttrs(t2) {
288682
- return {
288683
- name: t2.info,
288684
- value: t2.meta.value
288685
- };
288686
- }
288687
- },
288688
288444
  directive_body: {
288689
288445
  type: "mystDirectiveBody",
288690
288446
  getAttrs(t2) {
@@ -288695,7 +288451,23 @@ var defaultMdast = {
288695
288451
  },
288696
288452
  directive_error: {
288697
288453
  type: "mystDirectiveError",
288698
- noCloseToken: true
288454
+ noCloseToken: true,
288455
+ getAttrs(t2) {
288456
+ var _a6;
288457
+ return {
288458
+ message: (_a6 = t2.meta) === null || _a6 === void 0 ? void 0 : _a6.error_message
288459
+ };
288460
+ }
288461
+ },
288462
+ myst_option: {
288463
+ type: "mystOption",
288464
+ getAttrs(t2) {
288465
+ return {
288466
+ name: t2.info,
288467
+ location: t2.meta.location,
288468
+ value: t2.meta.value
288469
+ };
288470
+ }
288699
288471
  },
288700
288472
  parsed_role: {
288701
288473
  type: "mystRole",
@@ -288857,7 +288629,7 @@ function tokensToMyst(src, tokens, options = defaultOptions2) {
288857
288629
  return tree;
288858
288630
  }
288859
288631
 
288860
- // ../myst-parser/dist/roles.js
288632
+ // ../myst-parser/dist/utils.js
288861
288633
  function contentFromNode(node3, spec, vfile2, description, ruleId) {
288862
288634
  const { children, value } = node3;
288863
288635
  if (spec.type === ParseTypesEnum.parsed || spec.type === "myst") {
@@ -288911,65 +288683,81 @@ function contentFromNode(node3, spec, vfile2, description, ruleId) {
288911
288683
  return !!value;
288912
288684
  }
288913
288685
  }
288914
- function applyRoles(tree, specs, vfile2) {
288915
- const specLookup = {};
288916
- specs.forEach((spec) => {
288917
- const names = [spec.name];
288918
- if (spec.alias) {
288919
- names.push(...typeof spec.alias === "string" ? [spec.alias] : spec.alias);
288686
+
288687
+ // ../myst-parser/dist/inlineAttributes.js
288688
+ function parseOptions(name3, node3, vfile2, optionsSpec) {
288689
+ var _a6, _b;
288690
+ let validationError2 = false;
288691
+ const options = {};
288692
+ const optionNodes = (_b = (_a6 = node3.children) === null || _a6 === void 0 ? void 0 : _a6.filter((c) => c.type === "mystOption")) !== null && _b !== void 0 ? _b : [];
288693
+ const optionNodeLookup = {};
288694
+ optionNodes.forEach((optionNode) => {
288695
+ if (optionNode.name === "id" && optionNode.location === "inline") {
288696
+ optionNodeLookup.label = optionNode;
288697
+ return;
288920
288698
  }
288921
- names.forEach((name3) => {
288922
- if (specLookup[name3]) {
288923
- fileWarn(vfile2, `duplicate roles registered with name: ${name3}`, {
288924
- ruleId: RuleId.roleRegistered
288925
- });
288699
+ if (optionNode.name === "class") {
288700
+ if (optionNodeLookup.class) {
288701
+ optionNodeLookup.class.value += ` ${optionNode.value}`;
288926
288702
  } else {
288927
- specLookup[name3] = spec;
288703
+ optionNodeLookup.class = optionNode;
288928
288704
  }
288929
- });
288930
- });
288931
- const nodes = selectAll("mystRole[processed=false]", tree);
288932
- nodes.forEach((node3) => {
288933
- delete node3.processed;
288934
- const { name: name3 } = node3;
288935
- const spec = specLookup[name3];
288936
- if (!spec) {
288937
- fileError(vfile2, `unknown role: ${name3}`, { node: node3, ruleId: RuleId.roleKnown });
288938
- delete node3.children;
288939
288705
  return;
288940
288706
  }
288941
- const { body: body3, validate: validate5, run } = spec;
288942
- let data = { name: name3, node: node3 };
288943
- let validationError2 = false;
288944
- const bodyNode = select("mystRoleBody", node3);
288945
- if (body3) {
288946
- if (body3.required && !bodyNode) {
288947
- fileError(vfile2, `required body not provided for role: ${name3}`, {
288707
+ if (optionNodeLookup[optionNode.name]) {
288708
+ fileWarn(vfile2, `duplicate option "${optionNode.name}" declared (in ${name3})`, {
288709
+ node: optionNode,
288710
+ ruleId: RuleId.directiveOptionsCorrect
288711
+ });
288712
+ } else {
288713
+ optionNodeLookup[optionNode.name] = optionNode;
288714
+ }
288715
+ });
288716
+ Object.entries(optionsSpec || {}).forEach(([optionName, optionSpec]) => {
288717
+ var _a7;
288718
+ let optionNameUsed = optionName;
288719
+ let optionNode = optionNodeLookup[optionName];
288720
+ (_a7 = optionSpec.alias) === null || _a7 === void 0 ? void 0 : _a7.forEach((alias) => {
288721
+ const aliasNode = optionNodeLookup[alias];
288722
+ if (!aliasNode)
288723
+ return;
288724
+ if (!optionNode && aliasNode) {
288725
+ optionNode = aliasNode;
288726
+ optionNameUsed = alias;
288727
+ optionNodeLookup[optionName] = optionNode;
288728
+ } else {
288729
+ fileWarn(vfile2, `option "${optionNameUsed}" used instead of "${alias}" (in ${name3})`, {
288948
288730
  node: node3,
288949
- ruleId: RuleId.roleBodyCorrect
288731
+ ruleId: RuleId.directiveOptionsCorrect
288950
288732
  });
288951
- node3.type = "mystRoleError";
288952
- delete node3.children;
288953
- validationError2 = true;
288954
- } else {
288955
- data.body = contentFromNode(bodyNode, body3, vfile2, `body of role: ${name3}`, RuleId.roleBodyCorrect);
288956
- if (body3.required && data.body == null) {
288957
- validationError2 = true;
288958
- }
288959
288733
  }
288960
- } else if (bodyNode) {
288961
- fileWarn(vfile2, `unexpected body provided for role: ${name3}`, {
288962
- node: bodyNode,
288963
- ruleId: RuleId.roleBodyCorrect
288734
+ delete optionNodeLookup[alias];
288735
+ });
288736
+ if (optionSpec.required && !optionNode) {
288737
+ fileError(vfile2, `required option "${optionName}" not provided (in ${name3})`, {
288738
+ node: node3,
288739
+ ruleId: RuleId.directiveOptionsCorrect
288964
288740
  });
288741
+ node3.type = "mystDirectiveError";
288742
+ delete node3.children;
288743
+ validationError2 = true;
288744
+ } else if (optionNode) {
288745
+ const content3 = contentFromNode(optionNode, optionSpec, vfile2, `option "${optionName}" (in ${name3})`, RuleId.directiveOptionsCorrect);
288746
+ if (content3 != null) {
288747
+ options[optionName] = content3;
288748
+ } else if (optionSpec.required) {
288749
+ validationError2 = true;
288750
+ }
288751
+ delete optionNodeLookup[optionName];
288965
288752
  }
288966
- if (validationError2)
288967
- return;
288968
- if (validate5) {
288969
- data = validate5(data, vfile2);
288970
- }
288971
- node3.children = run(data, vfile2);
288972
288753
  });
288754
+ Object.values(optionNodeLookup).forEach((optionNode) => {
288755
+ fileWarn(vfile2, `unexpected option "${optionNode.name}" provided (in ${name3})`, {
288756
+ node: optionNode,
288757
+ ruleId: RuleId.directiveOptionsCorrect
288758
+ });
288759
+ });
288760
+ return { valid: validationError2, options: Object.keys(options).length ? options : void 0 };
288973
288761
  }
288974
288762
 
288975
288763
  // ../myst-parser/dist/directives.js
@@ -288992,7 +288780,7 @@ function applyDirectives(tree, specs, vfile2, ctx) {
288992
288780
  });
288993
288781
  const nodes = selectAll("mystDirective[processed=false]", tree);
288994
288782
  nodes.forEach((node3) => {
288995
- var _a6, _b, _c, _d2;
288783
+ var _a6, _b;
288996
288784
  delete node3.processed;
288997
288785
  const { name: name3 } = node3;
288998
288786
  const spec = specLookup[name3];
@@ -289017,11 +288805,10 @@ ${node3.value}` : "";
289017
288805
  const argNode = (_a6 = node3.children) === null || _a6 === void 0 ? void 0 : _a6.filter((c) => c.type === "mystDirectiveArg")[0];
289018
288806
  if (argSpec) {
289019
288807
  if (argSpec.required && !argNode) {
289020
- fileError(vfile2, `required argument not provided for directive: ${name3}`, {
289021
- node: node3,
289022
- ruleId: RuleId.directiveArgumentCorrect
289023
- });
288808
+ const message = `required argument not provided for directive: ${name3}`;
288809
+ fileError(vfile2, message, { node: node3, ruleId: RuleId.directiveArgumentCorrect });
289024
288810
  node3.type = "mystDirectiveError";
288811
+ node3.message = message;
289025
288812
  delete node3.children;
289026
288813
  validationError2 = true;
289027
288814
  } else if (argNode) {
@@ -289031,76 +288818,19 @@ ${node3.value}` : "";
289031
288818
  }
289032
288819
  }
289033
288820
  } else if (argNode) {
289034
- fileWarn(vfile2, `unexpected argument provided for directive: ${name3}`, {
289035
- node: argNode,
289036
- ruleId: RuleId.directiveArgumentCorrect
289037
- });
288821
+ const message = `unexpected argument provided for directive: ${name3}`;
288822
+ fileWarn(vfile2, message, { node: argNode, ruleId: RuleId.directiveArgumentCorrect });
289038
288823
  }
289039
- const options = {};
289040
- const optionNodes = (_c = (_b = node3.children) === null || _b === void 0 ? void 0 : _b.filter((c) => c.type === "mystDirectiveOption")) !== null && _c !== void 0 ? _c : [];
289041
- const optionNodeLookup = {};
289042
- optionNodes.forEach((optionNode) => {
289043
- if (optionNodeLookup[optionNode.name]) {
289044
- fileWarn(vfile2, `duplicate option "${optionNode.name}" declared for directive: ${name3}`, {
289045
- node: optionNode,
289046
- ruleId: RuleId.directiveOptionsCorrect
289047
- });
289048
- } else {
289049
- optionNodeLookup[optionNode.name] = optionNode;
289050
- }
289051
- });
289052
- Object.entries(optionsSpec || {}).forEach(([optionName, optionSpec]) => {
289053
- var _a7;
289054
- let optionNameUsed = optionName;
289055
- let optionNode = optionNodeLookup[optionName];
289056
- (_a7 = optionSpec.alias) === null || _a7 === void 0 ? void 0 : _a7.forEach((alias) => {
289057
- const aliasNode = optionNodeLookup[alias];
289058
- if (!aliasNode)
289059
- return;
289060
- if (!optionNode && aliasNode) {
289061
- optionNode = aliasNode;
289062
- optionNameUsed = alias;
289063
- optionNodeLookup[optionName] = optionNode;
289064
- } else {
289065
- fileWarn(vfile2, `option "${optionNameUsed}" used instead of "${alias}" for directive: ${name3}`, { node: node3, ruleId: RuleId.directiveOptionsCorrect });
289066
- }
289067
- delete optionNodeLookup[alias];
289068
- });
289069
- if (optionSpec.required && !optionNode) {
289070
- fileError(vfile2, `required option "${optionName}" not provided for directive: ${name3}`, {
289071
- node: node3,
289072
- ruleId: RuleId.directiveOptionsCorrect
289073
- });
289074
- node3.type = "mystDirectiveError";
289075
- delete node3.children;
289076
- validationError2 = true;
289077
- } else if (optionNode) {
289078
- const content3 = contentFromNode(optionNode, optionSpec, vfile2, `option "${optionName}" of directive: ${name3}`, RuleId.directiveOptionsCorrect);
289079
- if (content3 != null) {
289080
- options[optionName] = content3;
289081
- } else if (optionSpec.required) {
289082
- validationError2 = true;
289083
- }
289084
- delete optionNodeLookup[optionName];
289085
- }
289086
- });
289087
- Object.values(optionNodeLookup).forEach((optionNode) => {
289088
- fileWarn(vfile2, `unexpected option "${optionNode.name}" provided for directive: ${name3}`, {
289089
- node: optionNode,
289090
- ruleId: RuleId.directiveOptionsCorrect
289091
- });
289092
- });
289093
- if (Object.keys(options).length) {
289094
- data.options = options;
289095
- }
289096
- const bodyNode = (_d2 = node3.children) === null || _d2 === void 0 ? void 0 : _d2.filter((c) => c.type === "mystDirectiveBody")[0];
288824
+ const { valid: validOptions, options } = parseOptions(name3, node3, vfile2, optionsSpec);
288825
+ data.options = options;
288826
+ validationError2 = validationError2 || validOptions;
288827
+ const bodyNode = (_b = node3.children) === null || _b === void 0 ? void 0 : _b.filter((c) => c.type === "mystDirectiveBody")[0];
289097
288828
  if (bodySpec) {
289098
288829
  if (bodySpec.required && !bodyNode) {
289099
- fileError(vfile2, `required body not provided for directive: ${name3}`, {
289100
- node: node3,
289101
- ruleId: RuleId.directiveBodyCorrect
289102
- });
288830
+ const message = `required body not provided for directive: ${name3}`;
288831
+ fileError(vfile2, message, { node: node3, ruleId: RuleId.directiveBodyCorrect });
289103
288832
  node3.type = "mystDirectiveError";
288833
+ node3.message = message;
289104
288834
  delete node3.children;
289105
288835
  validationError2 = true;
289106
288836
  } else if (bodyNode) {
@@ -289127,6 +288857,71 @@ ${node3.value}` : "";
289127
288857
  });
289128
288858
  }
289129
288859
 
288860
+ // ../myst-parser/dist/roles.js
288861
+ function applyRoles(tree, specs, vfile2) {
288862
+ const specLookup = {};
288863
+ specs.forEach((spec) => {
288864
+ const names = [spec.name];
288865
+ if (spec.alias) {
288866
+ names.push(...typeof spec.alias === "string" ? [spec.alias] : spec.alias);
288867
+ }
288868
+ names.forEach((name3) => {
288869
+ if (specLookup[name3]) {
288870
+ fileWarn(vfile2, `duplicate roles registered with name: ${name3}`, {
288871
+ ruleId: RuleId.roleRegistered
288872
+ });
288873
+ } else {
288874
+ specLookup[name3] = spec;
288875
+ }
288876
+ });
288877
+ });
288878
+ const nodes = selectAll("mystRole[processed=false]", tree);
288879
+ nodes.forEach((node3) => {
288880
+ var _a6;
288881
+ delete node3.processed;
288882
+ const { name: name3 } = node3;
288883
+ const spec = specLookup[name3];
288884
+ if (!spec) {
288885
+ fileError(vfile2, `unknown role: ${name3}`, { node: node3, ruleId: RuleId.roleKnown });
288886
+ delete node3.children;
288887
+ return;
288888
+ }
288889
+ const { body: body3, options: optionsSpec, validate: validate5, run } = spec;
288890
+ let data = { name: name3, node: node3, options: {} };
288891
+ const { valid: validOptions, options } = parseOptions(name3, node3, vfile2, optionsSpec);
288892
+ let validationError2 = validOptions;
288893
+ data.options = options;
288894
+ const bodyNode = (_a6 = node3.children) === null || _a6 === void 0 ? void 0 : _a6.find((n) => n.type === "mystRoleBody");
288895
+ if (body3) {
288896
+ if (body3.required && !bodyNode) {
288897
+ fileError(vfile2, `required body not provided for role: ${name3}`, {
288898
+ node: node3,
288899
+ ruleId: RuleId.roleBodyCorrect
288900
+ });
288901
+ node3.type = "mystRoleError";
288902
+ delete node3.children;
288903
+ validationError2 = true;
288904
+ } else {
288905
+ data.body = contentFromNode(bodyNode, body3, vfile2, `body of role: ${name3}`, RuleId.roleBodyCorrect);
288906
+ if (body3.required && data.body == null) {
288907
+ validationError2 = true;
288908
+ }
288909
+ }
288910
+ } else if (bodyNode) {
288911
+ fileWarn(vfile2, `unexpected body provided for role: ${name3}`, {
288912
+ node: bodyNode,
288913
+ ruleId: RuleId.roleBodyCorrect
288914
+ });
288915
+ }
288916
+ if (validationError2)
288917
+ return;
288918
+ if (validate5) {
288919
+ data = validate5(data, vfile2);
288920
+ }
288921
+ node3.children = run(data, vfile2);
288922
+ });
288923
+ }
288924
+
289130
288925
  // ../myst-parser/dist/myst.js
289131
288926
  var defaultOptions3 = {
289132
288927
  markdownit: {
@@ -289149,7 +288944,7 @@ var defaultOptions3 = {
289149
288944
  directives: defaultDirectives,
289150
288945
  roles: defaultRoles
289151
288946
  };
289152
- function parseOptions(opts) {
288947
+ function parseOptions2(opts) {
289153
288948
  var _a6, _b, _c;
289154
288949
  const parsedOpts = {
289155
288950
  vfile: (_a6 = opts === null || opts === void 0 ? void 0 : opts.vfile) !== null && _a6 !== void 0 ? _a6 : new VFile(),
@@ -289162,7 +288957,7 @@ function parseOptions(opts) {
289162
288957
  return parsedOpts;
289163
288958
  }
289164
288959
  function createTokenizer(opts) {
289165
- const parsedOpts = parseOptions(opts);
288960
+ const parsedOpts = parseOptions2(opts);
289166
288961
  const { extensions, markdownit } = parsedOpts;
289167
288962
  const tokenizer = (0, import_markdown_it.default)({
289168
288963
  ...MARKDOWN_IT_CONFIG,
@@ -289201,7 +288996,7 @@ function createTokenizer(opts) {
289201
288996
  }
289202
288997
  function mystParse(content3, opts) {
289203
288998
  const { vfile: vfile2 } = opts || {};
289204
- const parsedOpts = parseOptions(opts);
288999
+ const parsedOpts = parseOptions2(opts);
289205
289000
  const tokenizer = createTokenizer(parsedOpts);
289206
289001
  const tree = tokensToMyst(content3, tokenizer.parse(content3, { vfile: vfile2 }), parsedOpts.mdast);
289207
289002
  applyDirectives(tree, parsedOpts.directives, parsedOpts.vfile, {
@@ -289745,17 +289540,186 @@ function parseMyst(session, content3, file, opts) {
289745
289540
  return parsed;
289746
289541
  }
289747
289542
 
289748
- // ../myst-cli/dist/process/notebook.js
289749
- var import_nbtx2 = __toESM(require_cjs2(), 1);
289543
+ // ../../node_modules/nbtx/dist/minify/utils.js
289544
+ var MAX_CHARS = 25e3;
289545
+ var TRUNCATED_CHARS_COUNT = 64;
289546
+ function DEFAULT_HASH_WARNING(content3) {
289547
+ console.warn('nbtx is not using a hashing library to create the hash.\nThe IDs generated are random, please provide a `computeHash` function, for example using "crypto".\nSee nbtx README for more information.');
289548
+ return `not-a-hash-${Math.random().toString(36).slice(2)}${Math.random().toString(36).slice(2)}`;
289549
+ }
289550
+ function isNotNull(arg2) {
289551
+ return arg2 != null;
289552
+ }
289553
+ function walkOutputs(outputs, func) {
289554
+ outputs.forEach((output2) => {
289555
+ if ("data" in output2 && output2.data) {
289556
+ Object.entries(output2.data).forEach(([, bundle]) => {
289557
+ func(bundle);
289558
+ });
289559
+ } else {
289560
+ func(output2);
289561
+ }
289562
+ });
289563
+ }
289564
+ function ensureString(maybeString, joinWith = "") {
289565
+ if (!maybeString)
289566
+ return "";
289567
+ if (typeof maybeString === "string")
289568
+ return maybeString;
289569
+ if (maybeString.join)
289570
+ return maybeString.join(joinWith);
289571
+ return maybeString;
289572
+ }
289573
+
289574
+ // ../../node_modules/nbtx/dist/minify/mime.js
289575
+ function minifyContent(content3, contentType, isBase64Image, outputCache, opts) {
289576
+ if (content3.length === 0 || !isBase64Image && content3.length <= opts.maxCharacters) {
289577
+ return { content: content3, content_type: contentType };
289578
+ }
289579
+ let hash;
289580
+ if (isBase64Image) {
289581
+ const [data] = content3.split(";base64,").reverse();
289582
+ hash = opts.computeHash(data);
289583
+ outputCache[hash] = [data, { contentType, encoding: "base64" }];
289584
+ } else {
289585
+ hash = opts.computeHash(content3);
289586
+ outputCache[hash] = [content3, { contentType, encoding: "utf8" }];
289587
+ }
289588
+ return {
289589
+ content_type: contentType,
289590
+ hash
289591
+ };
289592
+ }
289593
+ async function minifyMimeOutput(output2, outputCache, opts) {
289594
+ const items = await Promise.all(Object.entries(output2.data).map(async ([mimetype, mimeContent]) => {
289595
+ let isBase64Image = false;
289596
+ let stringContent = "";
289597
+ if (mimetype !== "application/javascript" && (mimetype === "application/json" || mimetype.startsWith("application/") && typeof mimeContent === "object")) {
289598
+ stringContent = JSON.stringify(mimeContent);
289599
+ } else {
289600
+ stringContent = ensureString(mimeContent);
289601
+ }
289602
+ if (!mimetype.startsWith("image/svg") && mimetype.startsWith("image/")) {
289603
+ isBase64Image = true;
289604
+ }
289605
+ return minifyContent(stringContent, mimetype, isBase64Image, outputCache, opts);
289606
+ }));
289607
+ const data = items.reduce((bundle, item) => ({ ...bundle, [item.content_type]: item }), {});
289608
+ return {
289609
+ output_type: output2.output_type,
289610
+ execution_count: output2.execution_count,
289611
+ metadata: output2.metadata,
289612
+ data
289613
+ };
289614
+ }
289615
+
289616
+ // ../../node_modules/nbtx/dist/minify/text.js
289617
+ function ensureStringEnsureNewlines(maybeString) {
289618
+ return typeof maybeString === "string" ? maybeString : maybeString === null || maybeString === void 0 ? void 0 : maybeString.join("\n");
289619
+ }
289620
+ async function minifyStringOutput(output2, fieldName, outputCache, opts) {
289621
+ if (!output2[fieldName]) {
289622
+ throw Error(`Bad Field name ${fieldName} for output type ${output2.output_type}`);
289623
+ }
289624
+ const text7 = opts.ensureNewlines ? ensureStringEnsureNewlines(output2[fieldName]) : ensureString(output2[fieldName]);
289625
+ if (text7 && text7.length <= opts.maxCharacters) {
289626
+ return { ...output2, [fieldName]: text7 };
289627
+ }
289628
+ const hash = opts.computeHash(text7);
289629
+ outputCache[hash] = [text7, { contentType: "text/plain", encoding: "utf8" }];
289630
+ return {
289631
+ ...output2,
289632
+ hash,
289633
+ [fieldName]: `${text7.slice(0, opts.truncateTo - 3)}...`
289634
+ };
289635
+ }
289636
+ var minifyStreamOutput = async (output2, outputCache, opts) => minifyStringOutput(output2, "text", outputCache, opts);
289637
+ var minifyErrorOutput = async (output2, outputCache, opts) => minifyStringOutput(output2, "traceback", outputCache, {
289638
+ ensureNewlines: true,
289639
+ ...opts
289640
+ });
289641
+
289642
+ // ../../node_modules/nbtx/dist/minify/minify.js
289643
+ async function minifyOneOutputItem(output2, outputCache, opts) {
289644
+ if (!("output_type" in output2))
289645
+ return null;
289646
+ switch (output2.output_type) {
289647
+ case "stream":
289648
+ return minifyStreamOutput(output2, outputCache, opts);
289649
+ case "error":
289650
+ return minifyErrorOutput(output2, outputCache, opts);
289651
+ case "update_display_data":
289652
+ case "display_data":
289653
+ case "execute_result":
289654
+ return minifyMimeOutput(output2, outputCache, opts);
289655
+ default:
289656
+ return null;
289657
+ }
289658
+ }
289659
+ async function minifyCellOutput(outputs, outputCache, opts = {}) {
289660
+ var _a6, _b, _c;
289661
+ const options = {
289662
+ maxCharacters: (_a6 = opts.maxCharacters) !== null && _a6 !== void 0 ? _a6 : MAX_CHARS,
289663
+ truncateTo: (_b = opts.truncateTo) !== null && _b !== void 0 ? _b : TRUNCATED_CHARS_COUNT,
289664
+ computeHash: (_c = opts.computeHash) !== null && _c !== void 0 ? _c : DEFAULT_HASH_WARNING
289665
+ };
289666
+ const minifiedOrNull = await Promise.all(outputs.map(async (output2) => minifyOneOutputItem(output2, outputCache, options)));
289667
+ return minifiedOrNull.filter(isNotNull);
289668
+ }
289669
+
289670
+ // ../../node_modules/nbtx/dist/types.js
289671
+ var KnownCellOutputMimeTypes;
289672
+ (function(KnownCellOutputMimeTypes2) {
289673
+ KnownCellOutputMimeTypes2["TextPlain"] = "text/plain";
289674
+ KnownCellOutputMimeTypes2["TextHtml"] = "text/html";
289675
+ KnownCellOutputMimeTypes2["TextLatex"] = "text/latex";
289676
+ KnownCellOutputMimeTypes2["ImagePng"] = "image/png";
289677
+ KnownCellOutputMimeTypes2["ImageBmp"] = "image/bmp";
289678
+ KnownCellOutputMimeTypes2["ImageJpeg"] = "image/jpeg";
289679
+ KnownCellOutputMimeTypes2["ImageSvg"] = "image/svg+xml";
289680
+ KnownCellOutputMimeTypes2["ImageGif"] = "image/gif";
289681
+ KnownCellOutputMimeTypes2["AppJson"] = "application/json";
289682
+ KnownCellOutputMimeTypes2["AppGeoJson"] = "application/geo+json";
289683
+ KnownCellOutputMimeTypes2["AppPlotly"] = "application/vnd.plotly.v1+json";
289684
+ KnownCellOutputMimeTypes2["AppVega"] = "application/vnd.vega.v5+json";
289685
+ KnownCellOutputMimeTypes2["AppVegaLite"] = "application/vnd.vegalite.v3+json";
289686
+ KnownCellOutputMimeTypes2["AppVirtualDom"] = "application/vdom.v1+json";
289687
+ KnownCellOutputMimeTypes2["AppJavascript"] = "application/javascript";
289688
+ KnownCellOutputMimeTypes2["AppWidgetView"] = "application/vnd.jupyter.widget-view+json";
289689
+ KnownCellOutputMimeTypes2["AppWidgetState"] = "application/vnd.jupyter.widget-state+json";
289690
+ KnownCellOutputMimeTypes2["AppBokehLoad"] = "application/vnd.bokehjs_load.v0+json";
289691
+ KnownCellOutputMimeTypes2["AppBokehExec"] = "application/vnd.bokehjs_exec.v0+json";
289692
+ })(KnownCellOutputMimeTypes || (KnownCellOutputMimeTypes = {}));
289693
+ var CELL_TYPES;
289694
+ (function(CELL_TYPES2) {
289695
+ CELL_TYPES2["raw"] = "raw";
289696
+ CELL_TYPES2["markdown"] = "markdown";
289697
+ CELL_TYPES2["code"] = "code";
289698
+ })(CELL_TYPES || (CELL_TYPES = {}));
289699
+
289700
+ // ../../node_modules/nbtx/dist/utils.js
289701
+ function extFromMimeType(mimeType) {
289702
+ if (mimeType === KnownCellOutputMimeTypes.TextHtml)
289703
+ return ".html";
289704
+ if (mimeType === KnownCellOutputMimeTypes.TextLatex)
289705
+ return ".tex";
289706
+ if (mimeType.startsWith("text/"))
289707
+ return ".txt";
289708
+ if (mimeType.startsWith("image/")) {
289709
+ const suffix = mimeType.split("/")[1];
289710
+ const ext2 = suffix.split("+")[0];
289711
+ return `.${ext2}`;
289712
+ }
289713
+ return ".json";
289714
+ }
289750
289715
 
289751
289716
  // ../myst-cli/dist/transforms/images.js
289752
289717
  var import_node_fs11 = __toESM(require("fs"), 1);
289753
289718
  var import_mime_types = __toESM(require_mime_types(), 1);
289754
289719
  var import_node_path16 = __toESM(require("path"), 1);
289755
- var import_nbtx = __toESM(require_cjs2(), 1);
289756
289720
 
289757
289721
  // ../myst-cli/dist/version.js
289758
- var version2 = "1.3.25";
289722
+ var version2 = "1.3.26";
289759
289723
  var version_default2 = version2;
289760
289724
 
289761
289725
  // ../myst-cli/dist/utils/headers.js
@@ -290455,7 +290419,7 @@ function getGithubRawUrl(url) {
290455
290419
  async function writeBase64(session, writeFolder, data, contentType) {
290456
290420
  var _a6;
290457
290421
  const [justData, header] = data.split(BASE64_HEADER_SPLIT).reverse();
290458
- const ext2 = (0, import_nbtx.extFromMimeType)((_a6 = header === null || header === void 0 ? void 0 : header.replace("data:", "")) !== null && _a6 !== void 0 ? _a6 : contentType);
290422
+ const ext2 = extFromMimeType((_a6 = header === null || header === void 0 ? void 0 : header.replace("data:", "")) !== null && _a6 !== void 0 ? _a6 : contentType);
290459
290423
  const hash = computeHash(justData);
290460
290424
  const file = `${hash}${ext2}`;
290461
290425
  const filePath = import_node_path16.default.join(writeFolder, file);
@@ -290574,7 +290538,7 @@ function transformImagesWithoutExt(session, mdast2, file, opts) {
290574
290538
  const sortedExtensions = [
290575
290539
  // Valid extensions
290576
290540
  ...(_a6 = opts === null || opts === void 0 ? void 0 : opts.imageExtensions) !== null && _a6 !== void 0 ? _a6 : [],
290577
- // Convertable extensions
290541
+ // Convertible extensions
290578
290542
  ...Object.keys(conversionFnLookup),
290579
290543
  // All known extensions
290580
290544
  ...KNOWN_IMAGE_EXTENSIONS
@@ -290987,21 +290951,18 @@ function renderExpression(node3, file) {
290987
290951
  return [];
290988
290952
  }
290989
290953
  function transformRenderInlineExpressions(mdast2, file) {
290990
- let count2 = 0;
290991
290954
  const inlineNodes = selectAll("inlineExpression", mdast2);
290992
290955
  inlineNodes.forEach((inlineExpression3) => {
290993
- count2 += 1;
290994
290956
  if (!inlineExpression3.result) {
290995
290957
  return;
290996
290958
  }
290997
- inlineExpression3.identifier = `eval-${count2}`;
290998
290959
  inlineExpression3.children = renderExpression(inlineExpression3, file);
290999
290960
  });
291000
290961
  }
291001
290962
 
291002
290963
  // ../myst-cli/dist/process/notebook.js
291003
290964
  function blockParent(cell3, children) {
291004
- const kind = cell3.cell_type === import_nbtx2.CELL_TYPES.code ? NotebookCell.code : NotebookCell.content;
290965
+ const kind = cell3.cell_type === CELL_TYPES.code ? NotebookCell.code : NotebookCell.content;
291005
290966
  return { type: "block", kind, data: JSON.parse(JSON.stringify(cell3.metadata)), children };
291006
290967
  }
291007
290968
  function replaceAttachmentsTransform(session, mdast2, attachments, file) {
@@ -291018,7 +290979,7 @@ function replaceAttachmentsTransform(session, mdast2, attachments, file) {
291018
290979
  try {
291019
290980
  const attachment = Object.entries(attachments[attachmentKey])[0];
291020
290981
  const mimeType = attachment[0];
291021
- const attachmentVal = (0, import_nbtx2.ensureString)(attachment[1]);
290982
+ const attachmentVal = ensureString(attachment[1]);
291022
290983
  if (!attachmentVal) {
291023
290984
  fileWarn(vfile2, `Unrecognized attachment name in ${file}: ${attachmentKey}`, {
291024
290985
  ruleId: RuleId.notebookAttachmentsResolve
@@ -291058,8 +291019,8 @@ async function processNotebookFull(session, file, content3) {
291058
291019
  const items = await (cells2 === null || cells2 === void 0 ? void 0 : cells2.slice(0, end).reduce(async (P, cell3, index4) => {
291059
291020
  var _a7;
291060
291021
  const acc = await P;
291061
- if (cell3.cell_type === import_nbtx2.CELL_TYPES.markdown) {
291062
- const cellContent = (0, import_nbtx2.ensureString)(cell3.source);
291022
+ if (cell3.cell_type === CELL_TYPES.markdown) {
291023
+ const cellContent = ensureString(cell3.source);
291063
291024
  const omitBlockDivider = index4 === 0 && cellContent.startsWith("---\n");
291064
291025
  const cellMdast = parseMyst(session, cellContent, file, { ignoreFrontmatter: index4 > 0 });
291065
291026
  if (cell3.attachments) {
@@ -291079,20 +291040,20 @@ async function processNotebookFull(session, file, content3) {
291079
291040
  });
291080
291041
  return acc.concat(block5);
291081
291042
  }
291082
- if (cell3.cell_type === import_nbtx2.CELL_TYPES.raw) {
291043
+ if (cell3.cell_type === CELL_TYPES.raw) {
291083
291044
  const raw2 = {
291084
291045
  type: "code",
291085
291046
  lang: "",
291086
- value: (0, import_nbtx2.ensureString)(cell3.source)
291047
+ value: ensureString(cell3.source)
291087
291048
  };
291088
291049
  return acc.concat(blockParent(cell3, [raw2]));
291089
291050
  }
291090
- if (cell3.cell_type === import_nbtx2.CELL_TYPES.code) {
291051
+ if (cell3.cell_type === CELL_TYPES.code) {
291091
291052
  const code7 = {
291092
291053
  type: "code",
291093
291054
  lang: language,
291094
291055
  executable: true,
291095
- value: (0, import_nbtx2.ensureString)(cell3.source)
291056
+ value: ensureString(cell3.source)
291096
291057
  };
291097
291058
  const output2 = {
291098
291059
  type: "output",
@@ -300241,7 +300202,7 @@ var import_node_fs24 = __toESM(require("fs"), 1);
300241
300202
  var import_node_path29 = __toESM(require("path"), 1);
300242
300203
 
300243
300204
  // ../myst-cli/dist/spec-version.js
300244
- var SPEC_VERSION = 1;
300205
+ var SPEC_VERSION = 2;
300245
300206
 
300246
300207
  // ../myst-cli/dist/build/site/template.js
300247
300208
  var import_node_fs22 = __toESM(require("fs"), 1);
@@ -300932,6 +300893,7 @@ function validateTemplateStyle(input3, opts) {
300932
300893
  return output2;
300933
300894
  }
300934
300895
  function validateTemplateYml(session, input3, opts) {
300896
+ var _a6;
300935
300897
  const inputObj = validateObject(input3, opts);
300936
300898
  if (inputObj === void 0)
300937
300899
  return void 0;
@@ -301046,7 +301008,7 @@ function validateTemplateYml(session, input3, opts) {
301046
301008
  return validateString(val, incrementOptions(`packages.${ind}`, opts));
301047
301009
  });
301048
301010
  }
301049
- if (defined(value.files)) {
301011
+ if (defined(value.files) && ((_a6 = opts === null || opts === void 0 ? void 0 : opts.validateFiles) !== null && _a6 !== void 0 ? _a6 : true)) {
301050
301012
  output2.files = validateList(value.files, incrementOptions("files", opts), (val, ind) => {
301051
301013
  const fileOpts = incrementOptions(`files.${ind}`, opts);
301052
301014
  const file = validateString(val, fileOpts);
@@ -301100,7 +301062,7 @@ var MystTemplate = class {
301100
301062
  * local path where the downloaded template will be saved.
301101
301063
  */
301102
301064
  constructor(session, opts) {
301103
- var _a6, _b, _c;
301065
+ var _a6, _b, _c, _d2;
301104
301066
  this.session = session;
301105
301067
  const { templatePath, templateUrl } = resolveInputs(this.session, opts || {});
301106
301068
  this.templatePath = templatePath;
@@ -301109,6 +301071,7 @@ var MystTemplate = class {
301109
301071
  this.warningLogFn = (_b = opts === null || opts === void 0 ? void 0 : opts.warningLogFn) !== null && _b !== void 0 ? _b : warningLogger(this.session);
301110
301072
  this.debugLogFn = (_c = opts === null || opts === void 0 ? void 0 : opts.debugLogFn) !== null && _c !== void 0 ? _c : debugLogger(this.session);
301111
301073
  this.kind = opts.kind;
301074
+ this.validateFiles = (_d2 = opts === null || opts === void 0 ? void 0 : opts.validateFiles) !== null && _d2 !== void 0 ? _d2 : true;
301112
301075
  }
301113
301076
  getTemplateYmlPath() {
301114
301077
  return (0, import_node_path25.join)(this.templatePath, TEMPLATE_YML);
@@ -301133,7 +301096,8 @@ var MystTemplate = class {
301133
301096
  };
301134
301097
  const templateYml = validateTemplateYml(this.session, this.getTemplateYml(), {
301135
301098
  ...opts,
301136
- templateDir: this.templatePath
301099
+ templateDir: this.templatePath,
301100
+ validateFiles: this.validateFiles
301137
301101
  });
301138
301102
  if (((_a6 = opts.messages.errors) === null || _a6 === void 0 ? void 0 : _a6.length) || templateYml === void 0) {
301139
301103
  throw new Error(`Cannot use invalid ${TEMPLATE_YML}: ${this.getTemplateYmlPath()}`);
@@ -301267,7 +301231,7 @@ var dist_default2 = template_default;
301267
301231
  var DEFAULT_TEMPLATE = "book-theme";
301268
301232
  var DEFAULT_INSTALL_COMMAND = "npm install";
301269
301233
  async function getSiteTemplate(session, opts) {
301270
- var _a6, _b, _c;
301234
+ var _a6, _b, _c, _d2;
301271
301235
  const cache = castSession(session);
301272
301236
  const state = cache.store.getState();
301273
301237
  if (cache.$siteTemplate)
@@ -301276,7 +301240,7 @@ async function getSiteTemplate(session, opts) {
301276
301240
  const file = (_a6 = selectors_exports.selectCurrentSiteFile(state)) !== null && _a6 !== void 0 ? _a6 : session.configFiles[0];
301277
301241
  const mystTemplate = new dist_default2(session, {
301278
301242
  kind: TemplateKind.site,
301279
- template: (_c = (_b = siteConfig === null || siteConfig === void 0 ? void 0 : siteConfig.template) !== null && _b !== void 0 ? _b : opts === null || opts === void 0 ? void 0 : opts.defaultTemplate) !== null && _c !== void 0 ? _c : DEFAULT_TEMPLATE,
301243
+ template: (_d2 = (_c = (_b = opts === null || opts === void 0 ? void 0 : opts.template) !== null && _b !== void 0 ? _b : siteConfig === null || siteConfig === void 0 ? void 0 : siteConfig.template) !== null && _c !== void 0 ? _c : opts === null || opts === void 0 ? void 0 : opts.defaultTemplate) !== null && _d2 !== void 0 ? _d2 : DEFAULT_TEMPLATE,
301280
301244
  buildDir: session.buildPath(),
301281
301245
  errorLogFn: (message) => {
301282
301246
  addWarningForFile(session, file, message, "error", {
@@ -301287,7 +301251,8 @@ async function getSiteTemplate(session, opts) {
301287
301251
  addWarningForFile(session, file, message, "warn", {
301288
301252
  ruleId: RuleId.validSiteConfig
301289
301253
  });
301290
- }
301254
+ },
301255
+ validateFiles: (opts === null || opts === void 0 ? void 0 : opts.template) ? false : true
301291
301256
  });
301292
301257
  await mystTemplate.ensureTemplateExistsOnPath();
301293
301258
  cache.$siteTemplate = mystTemplate;
@@ -302046,6 +302011,9 @@ function makePortOption() {
302046
302011
  function makeServerPortOption() {
302047
302012
  return new Option("--server-port <server-port>", "Run the content server from the specified port number").argParser(parseInt2).env("SERVER_PORT").default(void 0);
302048
302013
  }
302014
+ function makeTemplateOption() {
302015
+ return new Option("--template <path-to-template>", "Use this template file, instead of the one specified in the myst.yml manifest").default(void 0);
302016
+ }
302049
302017
  function makeYesOption() {
302050
302018
  return new Option("-y, --yes", "Automatically respond yes to prompts").default(false);
302051
302019
  }
@@ -302082,32 +302050,33 @@ function mystDataFilename(dataUrl) {
302082
302050
  return `myst-${computeHash(dataUrl)}.json`;
302083
302051
  }
302084
302052
  async function fetchMystData(session, dataUrl, urlSource, vfile2) {
302085
- var _a6;
302086
- let note;
302087
- if (dataUrl) {
302088
- const filename = mystDataFilename(dataUrl);
302089
- const cacheData = loadFromCache(session, filename, { maxAge: XREF_MAX_AGE });
302090
- if (cacheData) {
302091
- return JSON.parse(cacheData);
302092
- }
302093
- try {
302094
- const resp = await session.fetch(dataUrl);
302095
- if (resp.ok) {
302096
- const data = await resp.json();
302097
- writeToCache(session, filename, JSON.stringify(data));
302098
- return data;
302099
- }
302100
- } catch {
302053
+ const onError = (note) => {
302054
+ var _a6;
302055
+ fileWarn(vfile2, `Unable to resolve link text from external MyST reference: ${(_a6 = urlSource !== null && urlSource !== void 0 ? urlSource : dataUrl) !== null && _a6 !== void 0 ? _a6 : ""}`, {
302056
+ ruleId: RuleId.mystLinkValid,
302057
+ note
302058
+ });
302059
+ };
302060
+ if (!dataUrl) {
302061
+ return onError("Data source URL unavailable");
302062
+ }
302063
+ const filename = mystDataFilename(dataUrl);
302064
+ const cacheData = loadFromCache(session, filename, { maxAge: XREF_MAX_AGE });
302065
+ if (cacheData) {
302066
+ return JSON.parse(cacheData);
302067
+ }
302068
+ let data;
302069
+ try {
302070
+ const resp = await session.fetch(dataUrl);
302071
+ if (!resp.ok) {
302072
+ return onError("Could not fetch data from URL");
302101
302073
  }
302102
- note = "Could not load data from external project";
302103
- } else {
302104
- note = "Data source URL unavailable";
302074
+ data = await resp.json();
302075
+ } catch {
302076
+ return onError("Could not load fetched data");
302105
302077
  }
302106
- fileWarn(vfile2, `Unable to resolve link text from external MyST reference: ${(_a6 = urlSource !== null && urlSource !== void 0 ? urlSource : dataUrl) !== null && _a6 !== void 0 ? _a6 : ""}`, {
302107
- ruleId: RuleId.mystLinkValid,
302108
- note
302109
- });
302110
- return;
302078
+ writeToCache(session, filename, JSON.stringify(data));
302079
+ return data;
302111
302080
  }
302112
302081
  async function fetchMystLinkData(session, node3, vfile2) {
302113
302082
  return fetchMystData(session, node3.dataUrl, node3.urlSource, vfile2);
@@ -303072,7 +303041,10 @@ async function checkLinksTransform(session, file, mdast2) {
303072
303041
  const toc = tic();
303073
303042
  session.log.info(`\u{1F517} Checking ${plural("%s link(s)", linkNodes)} in ${file}`);
303074
303043
  const linkResults = await Promise.all(linkNodes.map(async (link4) => limitOutgoingConnections(async () => {
303075
- const { position: position6, url } = link4;
303044
+ const { position: position6, url, type: type2 } = link4;
303045
+ if (type2 === "card" && !url) {
303046
+ return "";
303047
+ }
303076
303048
  const check2 = await checkLink(session, url);
303077
303049
  if (check2.ok || check2.skipped)
303078
303050
  return url;
@@ -303424,9 +303396,8 @@ function stripAnsi(string2) {
303424
303396
  }
303425
303397
 
303426
303398
  // ../myst-cli/dist/transforms/outputs.js
303427
- var import_nbtx3 = __toESM(require_cjs2(), 1);
303428
303399
  function getFilename(hash, contentType) {
303429
- return `${hash}${(0, import_nbtx3.extFromMimeType)(contentType)}`;
303400
+ return `${hash}${extFromMimeType(contentType)}`;
303430
303401
  }
303431
303402
  function getWriteDestination(hash, contentType, writeFolder) {
303432
303403
  return (0, import_node_path36.join)(writeFolder, getFilename(hash, contentType));
@@ -303437,7 +303408,7 @@ async function transformOutputsToCache(session, mdast2, kind, opts) {
303437
303408
  return;
303438
303409
  const cache = castSession(session);
303439
303410
  await Promise.all(outputs.filter((output2) => output2.visibility !== "remove").map(async (output2) => {
303440
- output2.data = await (0, import_nbtx3.minifyCellOutput)(output2.data, cache.$outputs, {
303411
+ output2.data = await minifyCellOutput(output2.data, cache.$outputs, {
303441
303412
  computeHash,
303442
303413
  maxCharacters: opts === null || opts === void 0 ? void 0 : opts.minifyMaxCharacters
303443
303414
  });
@@ -303466,7 +303437,7 @@ function transformFilterOutputStreams(mdast2, vfile2, { output_stdout: stdout =
303466
303437
  if (doWarn || doError) {
303467
303438
  (doError ? fileError : fileWarn)(vfile2, doRemove ? "Removing stderr from outputs" : "Output contains stderr", {
303468
303439
  node: output2,
303469
- note: (0, import_nbtx3.ensureString)(data.text)
303440
+ note: ensureString(data.text)
303470
303441
  });
303471
303442
  }
303472
303443
  return !doRemove;
@@ -303478,7 +303449,7 @@ function transformFilterOutputStreams(mdast2, vfile2, { output_stdout: stdout =
303478
303449
  if (doWarn || doError) {
303479
303450
  (doError ? fileError : fileWarn)(vfile2, doRemove ? "Removing stdout from outputs" : "Output contains stdout", {
303480
303451
  node: output2,
303481
- note: (0, import_nbtx3.ensureString)(data.text)
303452
+ note: ensureString(data.text)
303482
303453
  });
303483
303454
  }
303484
303455
  return !doRemove;
@@ -303532,7 +303503,7 @@ function transformOutputsToFile(session, mdast2, writeFolder, opts) {
303532
303503
  const outputs = selectAll("output", mdast2);
303533
303504
  const cache = castSession(session);
303534
303505
  outputs.forEach((node3) => {
303535
- (0, import_nbtx3.walkOutputs)(node3.data, (obj) => {
303506
+ walkOutputs(node3.data, (obj) => {
303536
303507
  const { hash } = obj;
303537
303508
  if (!hash || !cache.$outputs[hash])
303538
303509
  return void 0;
@@ -303573,7 +303544,7 @@ function reduceOutputs(session, mdast2, file, writeFolder, opts) {
303573
303544
  const selectedOutputs = [];
303574
303545
  node3.data.forEach((output2) => {
303575
303546
  let selectedOutput;
303576
- (0, import_nbtx3.walkOutputs)([output2], (obj) => {
303547
+ walkOutputs([output2], (obj) => {
303577
303548
  const { output_type, content_type, hash } = obj;
303578
303549
  if (!hash)
303579
303550
  return void 0;
@@ -304521,6 +304492,18 @@ async function transformMdast(session, opts) {
304521
304492
  await includeFilesTransform(session, file, mdast2, frontmatter, vfile2);
304522
304493
  rawDirectiveTransform(mdast2, vfile2);
304523
304494
  liftCodeMetadataToBlock(session, vfile2, mdast2);
304495
+ if (execute && !frontmatter.skip_execution) {
304496
+ const cachePath2 = import_node_path39.default.join(session.buildPath(), "execute");
304497
+ await kernelExecutionTransform(mdast2, vfile2, {
304498
+ basePath: session.sourcePath(),
304499
+ cache: new LocalDiskCache(cachePath2),
304500
+ sessionFactory: () => session.jupyterSessionManager(),
304501
+ frontmatter,
304502
+ ignoreCache: false,
304503
+ errorIsFatal: false,
304504
+ log: session.log
304505
+ });
304506
+ }
304524
304507
  const pipe = unified().use(reconstructHtmlPlugin).use(htmlPlugin, { htmlHandlers }).use(basicTransformationsPlugin, {
304525
304508
  parser: (content3) => parseMyst(session, content3, file),
304526
304509
  firstDepth: (titleDepth !== null && titleDepth !== void 0 ? titleDepth : 1) + (frontmatter.content_includes_title ? 0 : 1)
@@ -304542,18 +304525,6 @@ async function transformMdast(session, opts) {
304542
304525
  rendererFiles.push(...localFiles);
304543
304526
  }
304544
304527
  const fileCitationRenderer = combineCitationRenderers(cache, ...rendererFiles);
304545
- if (execute && !frontmatter.skip_execution) {
304546
- const cachePath2 = import_node_path39.default.join(session.buildPath(), "execute");
304547
- await kernelExecutionTransform(mdast2, vfile2, {
304548
- basePath: session.sourcePath(),
304549
- cache: new LocalDiskCache(cachePath2),
304550
- sessionFactory: () => session.jupyterSessionManager(),
304551
- frontmatter,
304552
- ignoreCache: false,
304553
- errorIsFatal: false,
304554
- log: session.log
304555
- });
304556
- }
304557
304528
  transformRenderInlineExpressions(mdast2, vfile2);
304558
304529
  await transformOutputsToCache(session, mdast2, kind, { minifyMaxCharacters });
304559
304530
  transformFilterOutputStreams(mdast2, vfile2, frontmatter.settings);
@@ -307481,7 +307452,8 @@ var hrefOnlyReplacements2 = {
307481
307452
  "[": "\\[",
307482
307453
  "]": "\\]",
307483
307454
  "^": "\\^",
307484
- "@": "\\@"
307455
+ "@": "\\@",
307456
+ ";": "\\;"
307485
307457
  };
307486
307458
  var textOnlyReplacements3 = {
307487
307459
  ...hrefOnlyReplacements2,
@@ -310091,6 +310063,7 @@ function defaultWordRenderer(session, data, doc, opts, staticPath, vfile2) {
310091
310063
  serializer.render(createReferenceTitle());
310092
310064
  const referencesRoot = htmlTransform({ type: "root", children: referencesDocStates });
310093
310065
  serializer.renderChildren(referencesRoot);
310066
+ serializer.closeBlock();
310094
310067
  }
310095
310068
  selectAll("footnoteDefinition", mdast2).forEach((footnote2) => {
310096
310069
  serializer.render(footnote2);
@@ -318379,7 +318352,7 @@ async function startServer(session, opts) {
318379
318352
  await session.reload();
318380
318353
  warnOnHostEnvironmentVariable(session, opts);
318381
318354
  const mystTemplate = await getSiteTemplate(session, opts);
318382
- if (!opts.headless)
318355
+ if (!opts.headless && !opts.template)
318383
318356
  await installSiteTemplate(session, mystTemplate);
318384
318357
  await buildSite(session, opts);
318385
318358
  const server = await startContentServer(session, opts);
@@ -318489,7 +318462,7 @@ function rewriteAssetsFolder(directory, baseurl) {
318489
318462
  if (![".html", ".js", ".json"].includes(import_node_path57.default.extname(file)))
318490
318463
  return;
318491
318464
  const data = import_fs_extra.default.readFileSync(file).toString();
318492
- const modified = data.replace(new RegExp(`\\/${ASSETS_FOLDER}\\/`, "g"), `${baseurl || ""}/build/`).replace('href="/favicon.ico"', `href="${baseurl || ""}/favicon.ico"`).replace('href="/myst-theme.css"', `href="${baseurl || ""}/myst-theme.css"`);
318465
+ const modified = data.replace(new RegExp(`\\/${ASSETS_FOLDER}\\/`, "g"), `${baseurl || ""}/build/`);
318493
318466
  import_fs_extra.default.writeFileSync(file, modified);
318494
318467
  });
318495
318468
  }
@@ -319247,10 +319220,10 @@ var source_default4 = chalk4;
319247
319220
  var import_figures3 = __toESM(require_figures(), 1);
319248
319221
  var import_cli_cursor = __toESM(require_cli_cursor(), 1);
319249
319222
  var import_run_async2 = __toESM(require_run_async(), 1);
319250
- var import_rxjs3 = __toESM(require_cjs4(), 1);
319223
+ var import_rxjs3 = __toESM(require_cjs3(), 1);
319251
319224
 
319252
319225
  // ../../node_modules/inquirer/lib/utils/events.js
319253
- var import_rxjs = __toESM(require_cjs4(), 1);
319226
+ var import_rxjs = __toESM(require_cjs3(), 1);
319254
319227
  function normalizeKeypressEvents(value, key2) {
319255
319228
  return { value, key: key2 || {} };
319256
319229
  }
@@ -319364,7 +319337,7 @@ function incrementListIndex(current2, dir, opt) {
319364
319337
  var import_defaults = __toESM(require_defaults(), 1);
319365
319338
  var import_clone = __toESM(require_clone2(), 1);
319366
319339
  var import_run_async = __toESM(require_run_async(), 1);
319367
- var import_rxjs2 = __toESM(require_cjs4(), 1);
319340
+ var import_rxjs2 = __toESM(require_cjs3(), 1);
319368
319341
 
319369
319342
  // ../../node_modules/inquirer/lib/objects/choices.js
319370
319343
  var import_node_assert2 = __toESM(require("assert"), 1);
@@ -319909,7 +319882,7 @@ function listRender(choices, pointer) {
319909
319882
  }
319910
319883
 
319911
319884
  // ../../node_modules/inquirer/lib/prompts/input.js
319912
- var import_rxjs4 = __toESM(require_cjs4(), 1);
319885
+ var import_rxjs4 = __toESM(require_cjs3(), 1);
319913
319886
  var InputPrompt = class extends Prompt {
319914
319887
  /**
319915
319888
  * Start the Inquiry session
@@ -319997,7 +319970,7 @@ var NumberPrompt = class extends InputPrompt {
319997
319970
  };
319998
319971
 
319999
319972
  // ../../node_modules/inquirer/lib/prompts/confirm.js
320000
- var import_rxjs5 = __toESM(require_cjs4(), 1);
319973
+ var import_rxjs5 = __toESM(require_cjs3(), 1);
320001
319974
  var ConfirmPrompt = class extends Prompt {
320002
319975
  constructor(questions, rl, answers) {
320003
319976
  super(questions, rl, answers);
@@ -320069,7 +320042,7 @@ var ConfirmPrompt = class extends Prompt {
320069
320042
  };
320070
320043
 
320071
320044
  // ../../node_modules/inquirer/lib/prompts/rawlist.js
320072
- var import_rxjs6 = __toESM(require_cjs4(), 1);
320045
+ var import_rxjs6 = __toESM(require_cjs3(), 1);
320073
320046
  var RawListPrompt = class extends Prompt {
320074
320047
  constructor(questions, rl, answers) {
320075
320048
  super(questions, rl, answers);
@@ -320225,7 +320198,7 @@ function renderChoices(choices, pointer) {
320225
320198
  }
320226
320199
 
320227
320200
  // ../../node_modules/inquirer/lib/prompts/expand.js
320228
- var import_rxjs7 = __toESM(require_cjs4(), 1);
320201
+ var import_rxjs7 = __toESM(require_cjs3(), 1);
320229
320202
  var ExpandPrompt = class extends Prompt {
320230
320203
  constructor(questions, rl, answers) {
320231
320204
  super(questions, rl, answers);
@@ -320421,7 +320394,7 @@ function renderChoices2(choices, pointer) {
320421
320394
  // ../../node_modules/inquirer/lib/prompts/checkbox.js
320422
320395
  var import_cli_cursor2 = __toESM(require_cli_cursor(), 1);
320423
320396
  var import_figures4 = __toESM(require_figures(), 1);
320424
- var import_rxjs8 = __toESM(require_cjs4(), 1);
320397
+ var import_rxjs8 = __toESM(require_cjs3(), 1);
320425
320398
  var CheckboxPrompt = class extends Prompt {
320426
320399
  constructor(questions, rl, answers) {
320427
320400
  super(questions, rl, answers);
@@ -320598,7 +320571,7 @@ function getCheckbox(checked2) {
320598
320571
  }
320599
320572
 
320600
320573
  // ../../node_modules/inquirer/lib/prompts/password.js
320601
- var import_rxjs9 = __toESM(require_cjs4(), 1);
320574
+ var import_rxjs9 = __toESM(require_cjs3(), 1);
320602
320575
  function mask(input3, maskChar) {
320603
320576
  input3 = String(input3);
320604
320577
  maskChar = typeof maskChar === "string" ? maskChar : "*";
@@ -320681,7 +320654,7 @@ var PasswordPrompt = class extends Prompt {
320681
320654
 
320682
320655
  // ../../node_modules/inquirer/lib/prompts/editor.js
320683
320656
  var import_external_editor = __toESM(require_main(), 1);
320684
- var import_rxjs10 = __toESM(require_cjs4(), 1);
320657
+ var import_rxjs10 = __toESM(require_cjs3(), 1);
320685
320658
  var EditorPrompt = class extends Prompt {
320686
320659
  /**
320687
320660
  * Start the Inquiry session
@@ -320886,11 +320859,11 @@ var BottomBar = class extends UI {
320886
320859
  var import_isPlainObject = __toESM(require_isPlainObject(), 1);
320887
320860
  var import_get = __toESM(require_get2(), 1);
320888
320861
  var import_set = __toESM(require_set2(), 1);
320889
- var import_rxjs12 = __toESM(require_cjs4(), 1);
320862
+ var import_rxjs12 = __toESM(require_cjs3(), 1);
320890
320863
  var import_run_async4 = __toESM(require_run_async(), 1);
320891
320864
 
320892
320865
  // ../../node_modules/inquirer/lib/utils/utils.js
320893
- var import_rxjs11 = __toESM(require_cjs4(), 1);
320866
+ var import_rxjs11 = __toESM(require_cjs3(), 1);
320894
320867
  var import_run_async3 = __toESM(require_run_async(), 1);
320895
320868
  var fetchAsyncQuestionProperty = function(question, prop, answers) {
320896
320869
  if (typeof question[prop] !== "function") {
@@ -321216,7 +321189,7 @@ function makeCleanCommand() {
321216
321189
 
321217
321190
  // ../myst-cli/dist/cli/start.js
321218
321191
  function makeStartCommand() {
321219
- const command = new Command("start").description("Start the current project as a website").addOption(makeExecuteOption("Execute Notebooks")).addOption(makeKeepHostOption()).addOption(makeHeadlessOption()).addOption(makePortOption()).addOption(makeServerPortOption()).addOption(makeMaxSizeWebpOption());
321192
+ const command = new Command("start").description("Start the current project as a website").addOption(makeExecuteOption("Execute Notebooks")).addOption(makeKeepHostOption()).addOption(makeHeadlessOption()).addOption(makePortOption()).addOption(makeServerPortOption()).addOption(makeTemplateOption()).addOption(makeMaxSizeWebpOption());
321220
321193
  return command;
321221
321194
  }
321222
321195
 
@@ -321323,8 +321296,9 @@ on:
321323
321296
  # Runs on pushes targeting the default branch
321324
321297
  branches: [${defaultBranch}]
321325
321298
  env:
321326
- # \`BASE_URL\` determines the website is served from, including CSS & JS assets
321327
- # You may need to change this to \`${isGithubIO ? "BASE_URL: /${{ github.event.repository.name }}" : "BASE_URL: ''"}\`
321299
+ # \`BASE_URL\` determines, relative to the root of the domain, the URL that your site is served from.
321300
+ # E.g., if your site lives at \`https://mydomain.org/myproject\`, set \`BASE_URL=/myproject\`.
321301
+ # If, instead, your site lives at the root of the domain, at \`https://mydomain.org\`, set \`BASE_URL=''\`.
321328
321302
  ${isGithubIO ? `BASE_URL: '' # Not required for '${username}.github.io' domain. Other repos will need to set this!` : "BASE_URL: /${{ github.event.repository.name }}"}
321329
321303
 
321330
321304
  # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
@@ -325956,15 +325930,15 @@ async function upgradeContent(documentLines) {
325956
325930
  }
325957
325931
  return didUpgrade ? documentLines : void 0;
325958
325932
  }
325959
- var admonitionPattern = /^(attention|caution|danger|error|important|hint|note|seealso|tip|warning|\.callout-note|\.callout-warning|\.callout-important|\.callout-tip|\.callout-caution)$/;
325933
+ var admonitionPattern = /^(attention|caution|danger|error|important|hint|note|seealso|tip|warning)$/;
325960
325934
  async function upgradeNotes(documentLines) {
325961
325935
  const data = documentLines.join("\n");
325962
325936
  const mdast2 = mystParse(data);
325963
- const caseInsenstivePattern = new RegExp(admonitionPattern.source, admonitionPattern.flags + "i");
325937
+ const caseInsensitivePattern = new RegExp(admonitionPattern.source, admonitionPattern.flags + "i");
325964
325938
  const directiveNodes = selectAll("mystDirective", mdast2);
325965
325939
  const mixedCaseAdmonitions = directiveNodes.filter((item) => {
325966
325940
  const name3 = item.name;
325967
- return name3.match(caseInsenstivePattern) && !name3.match(admonitionPattern);
325941
+ return name3.match(caseInsensitivePattern) && !name3.match(admonitionPattern);
325968
325942
  });
325969
325943
  mixedCaseAdmonitions.forEach((node3) => {
325970
325944
  const start = node3.position.start.line;