mystmd 1.3.25__py3-none-any.whl → 1.3.27__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();
@@ -181320,50 +180855,64 @@ var require_common = __commonJS({
181320
180855
  createDebug.namespaces = namespaces;
181321
180856
  createDebug.names = [];
181322
180857
  createDebug.skips = [];
181323
- let i2;
181324
- const split2 = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
181325
- const len = split2.length;
181326
- for (i2 = 0; i2 < len; i2++) {
181327
- if (!split2[i2]) {
181328
- continue;
180858
+ const split2 = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
180859
+ for (const ns of split2) {
180860
+ if (ns[0] === "-") {
180861
+ createDebug.skips.push(ns.slice(1));
180862
+ } else {
180863
+ createDebug.names.push(ns);
181329
180864
  }
181330
- namespaces = split2[i2].replace(/\*/g, ".*?");
181331
- if (namespaces[0] === "-") {
181332
- createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
180865
+ }
180866
+ }
180867
+ function matchesTemplate(search4, template) {
180868
+ let searchIndex = 0;
180869
+ let templateIndex = 0;
180870
+ let starIndex = -1;
180871
+ let matchIndex = 0;
180872
+ while (searchIndex < search4.length) {
180873
+ if (templateIndex < template.length && (template[templateIndex] === search4[searchIndex] || template[templateIndex] === "*")) {
180874
+ if (template[templateIndex] === "*") {
180875
+ starIndex = templateIndex;
180876
+ matchIndex = searchIndex;
180877
+ templateIndex++;
180878
+ } else {
180879
+ searchIndex++;
180880
+ templateIndex++;
180881
+ }
180882
+ } else if (starIndex !== -1) {
180883
+ templateIndex = starIndex + 1;
180884
+ matchIndex++;
180885
+ searchIndex = matchIndex;
181333
180886
  } else {
181334
- createDebug.names.push(new RegExp("^" + namespaces + "$"));
180887
+ return false;
181335
180888
  }
181336
180889
  }
180890
+ while (templateIndex < template.length && template[templateIndex] === "*") {
180891
+ templateIndex++;
180892
+ }
180893
+ return templateIndex === template.length;
181337
180894
  }
181338
180895
  function disable() {
181339
180896
  const namespaces = [
181340
- ...createDebug.names.map(toNamespace),
181341
- ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
180897
+ ...createDebug.names,
180898
+ ...createDebug.skips.map((namespace) => "-" + namespace)
181342
180899
  ].join(",");
181343
180900
  createDebug.enable("");
181344
180901
  return namespaces;
181345
180902
  }
181346
180903
  function enabled(name3) {
181347
- if (name3[name3.length - 1] === "*") {
181348
- return true;
181349
- }
181350
- let i2;
181351
- let len;
181352
- for (i2 = 0, len = createDebug.skips.length; i2 < len; i2++) {
181353
- if (createDebug.skips[i2].test(name3)) {
180904
+ for (const skip of createDebug.skips) {
180905
+ if (matchesTemplate(name3, skip)) {
181354
180906
  return false;
181355
180907
  }
181356
180908
  }
181357
- for (i2 = 0, len = createDebug.names.length; i2 < len; i2++) {
181358
- if (createDebug.names[i2].test(name3)) {
180909
+ for (const ns of createDebug.names) {
180910
+ if (matchesTemplate(name3, ns)) {
181359
180911
  return true;
181360
180912
  }
181361
180913
  }
181362
180914
  return false;
181363
180915
  }
181364
- function toNamespace(regexp) {
181365
- return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
181366
- }
181367
180916
  function coerce2(val) {
181368
180917
  if (val instanceof Error) {
181369
180918
  return val.stack || val.message;
@@ -181524,7 +181073,7 @@ var require_browser5 = __commonJS({
181524
181073
  function load2() {
181525
181074
  let r2;
181526
181075
  try {
181527
- r2 = exports2.storage.getItem("debug");
181076
+ r2 = exports2.storage.getItem("debug") || exports2.storage.getItem("DEBUG");
181528
181077
  } catch (error) {
181529
181078
  }
181530
181079
  if (!r2 && typeof process !== "undefined" && "env" in process) {
@@ -184934,7 +184483,7 @@ var require_signal = __commonJS({
184934
184483
  });
184935
184484
 
184936
184485
  // ../../node_modules/@jupyterlab/coreutils/lib/text.js
184937
- var require_text4 = __commonJS({
184486
+ var require_text3 = __commonJS({
184938
184487
  "../../node_modules/@jupyterlab/coreutils/lib/text.js"(exports2) {
184939
184488
  "use strict";
184940
184489
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -185071,7 +184620,7 @@ var require_lib25 = __commonJS({
185071
184620
  __exportStar(require_pageconfig(), exports2);
185072
184621
  __exportStar(require_path2(), exports2);
185073
184622
  __exportStar(require_signal(), exports2);
185074
- __exportStar(require_text4(), exports2);
184623
+ __exportStar(require_text3(), exports2);
185075
184624
  __exportStar(require_time(), exports2);
185076
184625
  __exportStar(require_url(), exports2);
185077
184626
  }
@@ -193891,7 +193440,7 @@ var {
193891
193440
  } = import_index.default;
193892
193441
 
193893
193442
  // src/version.ts
193894
- var version = "1.3.25";
193443
+ var version = "1.3.27";
193895
193444
  var version_default = version;
193896
193445
 
193897
193446
  // ../myst-cli/dist/build/build.js
@@ -194906,6 +194455,51 @@ function validateStringOrNumber(input3, opts) {
194906
194455
  return validationError("must be string or number", opts);
194907
194456
  }
194908
194457
 
194458
+ // ../myst-frontmatter/dist/utils/socialLinks.js
194459
+ var SOCIAL_LINKS_KEYS = [
194460
+ "url",
194461
+ "github",
194462
+ "bluesky",
194463
+ "mastodon",
194464
+ "linkedin",
194465
+ "threads",
194466
+ "twitter"
194467
+ // Change to 'x' in future
194468
+ ];
194469
+ var SOCIAL_LINKS_ALIASES = {
194470
+ website: "url",
194471
+ x: "twitter",
194472
+ // Can change this in a future release to be the other way
194473
+ bsky: "bluesky",
194474
+ instagram: "threads"
194475
+ // This is the same username
194476
+ };
194477
+ function validateSocialLinks(input3, opts, output2 = {}) {
194478
+ const value = output2 ? input3 : validateObjectKeys(input3, { optional: SOCIAL_LINKS_KEYS, alias: SOCIAL_LINKS_ALIASES }, opts);
194479
+ if (defined(value.url)) {
194480
+ output2.url = validateUrl(value.url, incrementOptions("url", opts));
194481
+ }
194482
+ if (defined(value.github)) {
194483
+ output2.github = validateString(value.github, incrementOptions("github", opts));
194484
+ }
194485
+ if (defined(value.bluesky)) {
194486
+ output2.bluesky = validateString(value.bluesky, incrementOptions("bluesky", opts));
194487
+ }
194488
+ if (defined(value.mastodon)) {
194489
+ output2.mastodon = validateString(value.mastodon, incrementOptions("mastodon", opts));
194490
+ }
194491
+ if (defined(value.linkedin)) {
194492
+ output2.linkedin = validateUrl(value.linkedin, incrementOptions("linkedin", opts));
194493
+ }
194494
+ if (defined(value.threads)) {
194495
+ output2.threads = validateString(value.threads, incrementOptions("threads", opts));
194496
+ }
194497
+ if (defined(value.twitter)) {
194498
+ output2.twitter = validateString(value.twitter, incrementOptions("twitter", opts));
194499
+ }
194500
+ return output2;
194501
+ }
194502
+
194909
194503
  // ../myst-frontmatter/dist/affiliations/validators.js
194910
194504
  var AFFILIATION_KEYS = [
194911
194505
  "id",
@@ -194921,10 +194515,10 @@ var AFFILIATION_KEYS = [
194921
194515
  "ringgold",
194922
194516
  "ror",
194923
194517
  "doi",
194924
- "url",
194925
194518
  "email",
194926
194519
  "phone",
194927
- "fax"
194520
+ "fax",
194521
+ ...SOCIAL_LINKS_KEYS
194928
194522
  ];
194929
194523
  var AFFILIATION_ALIASES = {
194930
194524
  ref: "id",
@@ -194933,8 +194527,8 @@ var AFFILIATION_ALIASES = {
194933
194527
  province: "state",
194934
194528
  zipcode: "postal_code",
194935
194529
  zip_code: "postal_code",
194936
- website: "url",
194937
- institution: "name"
194530
+ institution: "name",
194531
+ ...SOCIAL_LINKS_ALIASES
194938
194532
  };
194939
194533
  function validateAffiliation(input3, opts) {
194940
194534
  if (typeof input3 === "string") {
@@ -194998,9 +194592,7 @@ function validateAffiliation(input3, opts) {
194998
194592
  if (defined(value.email)) {
194999
194593
  output2.email = validateEmail(value.email, incrementOptions("email", opts));
195000
194594
  }
195001
- if (defined(value.url)) {
195002
- output2.url = validateUrl(value.url, incrementOptions("url", opts));
195003
- }
194595
+ validateSocialLinks(value, opts, output2);
195004
194596
  if (defined(value.phone)) {
195005
194597
  output2.phone = validateString(value.phone, incrementOptions("phone", opts));
195006
194598
  }
@@ -195270,12 +194862,10 @@ var PERSON_KEYS = [
195270
194862
  "roles",
195271
194863
  "affiliations",
195272
194864
  "collaborations",
195273
- "twitter",
195274
- "github",
195275
- "url",
195276
194865
  "note",
195277
194866
  "phone",
195278
- "fax"
194867
+ "fax",
194868
+ ...SOCIAL_LINKS_KEYS
195279
194869
  ];
195280
194870
  var PERSON_ALIASES = {
195281
194871
  ref: "id",
@@ -195283,7 +194873,7 @@ var PERSON_ALIASES = {
195283
194873
  role: "roles",
195284
194874
  "equal-contributor": "equal_contributor",
195285
194875
  affiliation: "affiliations",
195286
- website: "url"
194876
+ ...SOCIAL_LINKS_ALIASES
195287
194877
  };
195288
194878
  var NAME_KEYS = [
195289
194879
  "literal",
@@ -195456,15 +195046,7 @@ function validateContributor(input3, stash, opts) {
195456
195046
  return validateAndStashObject(aff, stash, "affiliations", validateAffiliation, affiliationsOpts);
195457
195047
  });
195458
195048
  }
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
- }
195049
+ validateSocialLinks(value, opts, output2);
195468
195050
  if (defined(value.phone)) {
195469
195051
  output2.phone = validateString(value.phone, incrementOptions("phone", opts));
195470
195052
  }
@@ -195621,12 +195203,15 @@ var ExportFormats;
195621
195203
  })(ExportFormats || (ExportFormats = {}));
195622
195204
 
195623
195205
  // ../myst-toc/dist/toc.js
195624
- var COMMON_ENTRY_KEYS = ["title"];
195206
+ var COMMON_ENTRY_KEYS = ["title", "hidden"];
195625
195207
  function validateCommonEntry(entry, opts) {
195626
195208
  const output2 = {};
195627
195209
  if (defined(entry.title)) {
195628
195210
  output2.title = validateString(entry.title, incrementOptions("title", opts));
195629
195211
  }
195212
+ if (defined(entry.hidden)) {
195213
+ output2.hidden = validateBoolean(entry.hidden, incrementOptions("hidden", opts));
195214
+ }
195630
195215
  return output2;
195631
195216
  }
195632
195217
  function validateFileEntry(entry, opts) {
@@ -205520,6 +205105,30 @@ function transformGitHubBracketedAdmonition(node3) {
205520
205105
  ];
205521
205106
  return true;
205522
205107
  }
205108
+ var QmdCallouts = [
205109
+ "callout-note",
205110
+ "callout-warning",
205111
+ "callout-important",
205112
+ "callout-tip",
205113
+ "callout-caution"
205114
+ ];
205115
+ function admonitionQmdTransform(tree) {
205116
+ const divs = selectAll("div", tree);
205117
+ divs.forEach((node3) => {
205118
+ var _a6;
205119
+ const classNames3 = (_a6 = node3.class) === null || _a6 === void 0 ? void 0 : _a6.split(/\s/).map((c) => c.trim());
205120
+ if (!classNames3)
205121
+ return;
205122
+ const match3 = classNames3 === null || classNames3 === void 0 ? void 0 : classNames3.find((s5) => QmdCallouts.find((c) => c === s5));
205123
+ if (!match3)
205124
+ return;
205125
+ node3.type = "admonition";
205126
+ node3.kind = match3.replace("callout-", "");
205127
+ node3.class = classNames3.filter((c) => c && c !== match3).join(" ");
205128
+ if (!node3.class)
205129
+ delete node3.class;
205130
+ });
205131
+ }
205523
205132
  function admonitionBlockquoteTransform(tree) {
205524
205133
  const blockquote5 = selectAll("blockquote", tree);
205525
205134
  blockquote5.forEach((node3) => {
@@ -237358,7 +236967,7 @@ var TRANSFORM_SOURCE2 = "BlockTransform:BlockMetadata";
237358
236967
  function blockMetadataTransform(mdast2, file) {
237359
236968
  const blocks2 = selectAll("block", mdast2);
237360
236969
  blocks2.forEach((block5) => {
237361
- var _a6, _b, _c, _d2, _e;
236970
+ var _a6, _b, _c, _d2, _e, _f;
237362
236971
  if (block5.meta) {
237363
236972
  try {
237364
236973
  const data = JSON.parse(block5.meta);
@@ -237377,12 +236986,13 @@ function blockMetadataTransform(mdast2, file) {
237377
236986
  block5.kind = kind;
237378
236987
  delete block5.data.kind;
237379
236988
  }
237380
- const className = (_b = block5.data) === null || _b === void 0 ? void 0 : _b.class;
237381
- if (className) {
237382
- block5.class = className;
236989
+ if (typeof ((_b = block5.data) === null || _b === void 0 ? void 0 : _b.class) === "string") {
236990
+ block5.class = `${(_c = block5.class) !== null && _c !== void 0 ? _c : ""} ${block5.data.class}`.trim();
237383
236991
  delete block5.data.class;
237384
236992
  }
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;
236993
+ if (block5.data && Object.keys(block5.data).length === 0)
236994
+ delete block5.data;
236995
+ 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
236996
  if (typeof label === "string") {
237387
236997
  const normalized = normalizeLabel(label);
237388
236998
  if (normalized) {
@@ -239675,6 +239285,7 @@ function basicTransformations(tree, file, opts) {
239675
239285
  mathLabelTransform(tree, file);
239676
239286
  subequationTransform(tree, file);
239677
239287
  headingLabelTransform(tree);
239288
+ admonitionQmdTransform(tree);
239678
239289
  admonitionBlockquoteTransform(tree);
239679
239290
  admonitionHeadersTransform(tree);
239680
239291
  joinGatesTransform(tree, file);
@@ -280926,6 +280537,81 @@ function nestedPartToTokens(partName, part, lineNumber, state, pluginRuleName, i
280926
280537
  return [openToken, ...nestedTokens, closeToken];
280927
280538
  }
280928
280539
 
280540
+ // ../markdown-it-myst/dist/inlineAttributes.js
280541
+ function tokenizeInlineAttributes(header) {
280542
+ 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;
280543
+ const results = [];
280544
+ let match3;
280545
+ while ((match3 = pattern.exec(header)) !== null) {
280546
+ const [, classGroup, idGroup, attrKeyQuoted, attrValQuoted, attrKeyUnquoted, attrValUnquoted, bareGroup, unknownGroup] = match3;
280547
+ if (classGroup) {
280548
+ results.push({ kind: "class", value: classGroup.slice(1).trim() });
280549
+ } else if (idGroup) {
280550
+ results.push({ kind: "id", value: idGroup.slice(1).trim() });
280551
+ } else if (attrKeyQuoted && attrValQuoted !== void 0) {
280552
+ const unescaped = attrValQuoted.replace(/\\"/g, '"').trim();
280553
+ results.push({ kind: "attr", key: attrKeyQuoted, value: unescaped });
280554
+ } else if (attrKeyUnquoted && attrValUnquoted !== void 0) {
280555
+ results.push({ kind: "attr", key: attrKeyUnquoted, value: attrValUnquoted.trim() });
280556
+ } else if (bareGroup) {
280557
+ results.push({ kind: "bare", value: bareGroup.trim() });
280558
+ } else if (unknownGroup) {
280559
+ results.push({ kind: "unknown", value: unknownGroup.trim() });
280560
+ }
280561
+ }
280562
+ return results;
280563
+ }
280564
+ function inlineOptionsToTokens(header, lineNumber, state) {
280565
+ const tokens = tokenizeInlineAttributes(header);
280566
+ if (tokens.length === 0) {
280567
+ throw new Error("No inline tokens found");
280568
+ }
280569
+ let name3 = void 0;
280570
+ if (tokens[0].kind === "bare") {
280571
+ name3 = tokens[0].value;
280572
+ tokens.shift();
280573
+ }
280574
+ if (tokens.filter(({ kind }) => kind === "id").length > 1) {
280575
+ throw new Error("Cannot have more than one ID defined");
280576
+ }
280577
+ if (tokens.some(({ kind }) => kind === "bare")) {
280578
+ throw new Error("No additional bare tokens allowed after the first token");
280579
+ }
280580
+ const markdownItTokens = tokens.map((opt) => {
280581
+ if (opt.kind === "id" && /^[0-9]/.test(opt.value)) {
280582
+ throw new Error(`ID cannot start with a number: "${opt.value}"`);
280583
+ }
280584
+ if (opt.kind === "unknown") {
280585
+ if (opt.value.match(/\.[A-Za-z0-9_\-.]+/)) {
280586
+ throw new Error(`Unknown token "${opt.value}". Classes must be separated by spaces, try "${opt.value.replace(/\./g, " .").trim()}"`);
280587
+ }
280588
+ throw new Error(`Unknown token "${opt.value}"`);
280589
+ }
280590
+ if (opt.kind === "class" || opt.kind === "id" || opt.kind === "bare") {
280591
+ const classTokens = [
280592
+ new state.Token("myst_option_open", "", 1),
280593
+ new state.Token("myst_option_close", "", -1)
280594
+ ];
280595
+ classTokens[0].info = opt.kind;
280596
+ classTokens[0].content = opt.kind === "class" ? `.${opt.value}` : opt.kind === "id" ? `#${opt.value}` : opt.value;
280597
+ classTokens[0].meta = { location: "inline", ...opt };
280598
+ return classTokens;
280599
+ }
280600
+ const optTokens = nestedPartToTokens("myst_option", opt.value, lineNumber, state, "run_roles", true);
280601
+ if (optTokens.length) {
280602
+ optTokens[0].info = opt.key;
280603
+ optTokens[0].content = opt.value;
280604
+ optTokens[0].meta = { location: "inline", ...opt };
280605
+ }
280606
+ return optTokens;
280607
+ });
280608
+ const options = tokens.map((t2) => [
280609
+ t2.kind === "attr" ? t2.key : t2.kind === "id" ? "label" : t2.kind,
280610
+ t2.value
280611
+ ]);
280612
+ return { name: name3, tokens: markdownItTokens.flat(), options };
280613
+ }
280614
+
280929
280615
  // ../markdown-it-myst/dist/roles.js
280930
280616
  function rolePlugin(md) {
280931
280617
  md.inline.ruler.before("backticks", "parse_roles", roleRule);
@@ -280950,6 +280636,13 @@ ${content3}</pre></aside>
280950
280636
  `;
280951
280637
  };
280952
280638
  }
280639
+ var _x;
280640
+ try {
280641
+ _x = new RegExp("^\\{\\s*([^}]+?)\\s*\\}(`+)(?!`)(.+?)(?<!`)\\2(?!`)");
280642
+ } catch (err) {
280643
+ _x = /^\{\s*([^}]+?)\s*\}(`+)(?!`)(.+?)\2(?!`)/;
280644
+ }
280645
+ var ROLE_PATTERN = _x;
280953
280646
  function roleRule(state, silent) {
280954
280647
  if (state.src.charCodeAt(state.pos - 1) === 92) {
280955
280648
  return false;
@@ -280957,24 +280650,18 @@ function roleRule(state, silent) {
280957
280650
  const match3 = ROLE_PATTERN.exec(state.src.slice(state.pos));
280958
280651
  if (match3 == null)
280959
280652
  return false;
280960
- const [str2, name3, , content3] = match3;
280653
+ const [str2, header, , content3] = match3;
280961
280654
  if (!silent) {
280962
280655
  const token = state.push("role", "", 0);
280963
- token.meta = { name: name3 };
280656
+ token.info = header;
280964
280657
  token.content = content3;
280965
280658
  token.col = [state.pos, state.pos + str2.length];
280966
280659
  }
280967
280660
  state.pos += str2.length;
280968
280661
  return true;
280969
280662
  }
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
280663
  function runRoles(state) {
280664
+ var _a6, _b, _c;
280978
280665
  for (const token of state.tokens) {
280979
280666
  if (token.type === "inline" && token.children) {
280980
280667
  const childTokens = [];
@@ -280983,25 +280670,30 @@ function runRoles(state) {
280983
280670
  try {
280984
280671
  const { map: map14 } = token;
280985
280672
  const { content: content3, col } = child;
280673
+ 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);
280674
+ if (!name3) {
280675
+ throw new Error('A role name is required, for example, "{sub}`2`"');
280676
+ }
280986
280677
  const roleOpen = new state.Token("parsed_role_open", "", 1);
280987
280678
  roleOpen.content = content3;
280988
280679
  roleOpen.hidden = true;
280989
- roleOpen.info = child.meta.name;
280680
+ roleOpen.info = name3;
280681
+ roleOpen.meta = { header: child.info };
280990
280682
  roleOpen.block = false;
280991
280683
  roleOpen.map = map14;
280992
280684
  roleOpen.col = col;
280993
- const contentTokens = roleContentToTokens(content3, map14 ? map14[0] : 0, state);
280685
+ const contentTokens = roleContentToTokens(content3, (_b = map14 === null || map14 === void 0 ? void 0 : map14[0]) !== null && _b !== void 0 ? _b : 0, state);
280994
280686
  const roleClose = new state.Token("parsed_role_close", "", -1);
280995
280687
  roleClose.block = false;
280996
280688
  roleClose.hidden = true;
280997
- roleOpen.info = child.meta.name;
280998
- const newTokens = [roleOpen, ...contentTokens, roleClose];
280689
+ roleOpen.info = name3;
280690
+ const newTokens = [roleOpen, ...optTokens, ...contentTokens, roleClose];
280999
280691
  childTokens.push(...newTokens);
281000
280692
  } catch (err) {
281001
280693
  const errorToken = new state.Token("role_error", "", 0);
281002
280694
  errorToken.content = child.content;
281003
280695
  errorToken.info = child.info;
281004
- errorToken.meta = child.meta;
280696
+ errorToken.meta = (_c = child.meta) !== null && _c !== void 0 ? _c : {};
281005
280697
  errorToken.map = child.map;
281006
280698
  errorToken.meta.error_message = err.message;
281007
280699
  errorToken.meta.error_name = err.name;
@@ -281046,7 +280738,7 @@ function computeBlockTightness(src, map14) {
281046
280738
  function replaceFences(state) {
281047
280739
  for (const token of state.tokens) {
281048
280740
  if (token.type === "fence" || token.type === "colon_fence") {
281049
- const match3 = token.info.match(/^\s*\{\s*([^}\s]+)\s*\}\s*(.*)$/);
280741
+ const match3 = token.info.match(/^\s*\{\s*([^}]+)\s*\}\s*(.*)$/);
281050
280742
  if (match3) {
281051
280743
  token.type = "directive";
281052
280744
  token.info = match3[1].trim();
@@ -281057,15 +280749,16 @@ function replaceFences(state) {
281057
280749
  return true;
281058
280750
  }
281059
280751
  function runDirectives(state) {
281060
- var _a6;
280752
+ var _a6, _b;
281061
280753
  const finalTokens = [];
281062
280754
  for (const token of state.tokens) {
281063
280755
  if (token.type === "directive") {
281064
280756
  try {
281065
280757
  const { info, map: map14 } = token;
281066
280758
  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;
280759
+ 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);
280760
+ const content3 = parseDirectiveContent(token.content.trim() ? token.content.split(/\r?\n/) : [], name3, state);
280761
+ const { body: body3, options, optionsLocation } = content3;
281069
280762
  let { bodyOffset } = content3;
281070
280763
  while (body3.length && !body3[0].trim()) {
281071
280764
  body3.shift();
@@ -281073,25 +280766,26 @@ function runDirectives(state) {
281073
280766
  }
281074
280767
  const bodyString = body3.join("\n").trimEnd();
281075
280768
  const directiveOpen = new state.Token("parsed_directive_open", "", 1);
281076
- directiveOpen.info = info;
280769
+ directiveOpen.info = name3;
281077
280770
  directiveOpen.hidden = true;
281078
280771
  directiveOpen.content = bodyString;
281079
280772
  directiveOpen.map = map14;
281080
280773
  directiveOpen.meta = {
281081
280774
  arg: arg2,
281082
- options: getDirectiveOptions(options),
280775
+ options: getDirectiveOptions([...inlineOptions, ...options !== null && options !== void 0 ? options : []]),
281083
280776
  // Tightness is computed for all directives (are they separated by a newline before/after)
281084
280777
  tight: computeBlockTightness(state.src, token.map)
281085
280778
  };
281086
280779
  const startLineNumber = map14 ? map14[0] : 0;
281087
280780
  const argTokens = directiveArgToTokens(arg2, startLineNumber, state);
281088
- const optsTokens = directiveOptionsToTokens(options || [], startLineNumber + 1, state);
280781
+ const optsTokens = directiveOptionsToTokens(options || [], startLineNumber + 1, state, optionsLocation);
281089
280782
  const bodyTokens = directiveBodyToTokens(bodyString, startLineNumber + bodyOffset, state);
281090
280783
  const directiveClose = new state.Token("parsed_directive_close", "", -1);
281091
280784
  directiveClose.info = info;
281092
280785
  directiveClose.hidden = true;
281093
280786
  const newTokens = [
281094
280787
  directiveOpen,
280788
+ ...inlineOptTokens,
281095
280789
  ...argTokens,
281096
280790
  ...optsTokens,
281097
280791
  ...bodyTokens,
@@ -281141,7 +280835,12 @@ function parseDirectiveContent(content3, info, state) {
281141
280835
  try {
281142
280836
  const options = js_yaml_default.load(yamlBlock.join("\n"));
281143
280837
  if (options && typeof options === "object") {
281144
- return { body: newContent, options: Object.entries(options), bodyOffset };
280838
+ return {
280839
+ body: newContent,
280840
+ options: Object.entries(options),
280841
+ bodyOffset,
280842
+ optionsLocation: "yaml"
280843
+ };
281145
280844
  }
281146
280845
  } catch (err) {
281147
280846
  stateWarn(state, `Invalid YAML options in "${info}" directive: ${err.reason}`);
@@ -281165,7 +280864,7 @@ function parseDirectiveContent(content3, info, state) {
281165
280864
  bodyOffset++;
281166
280865
  }
281167
280866
  }
281168
- return { body: newContent, options, bodyOffset };
280867
+ return { body: newContent, options, bodyOffset, optionsLocation: "colon" };
281169
280868
  }
281170
280869
  return { body: content3, bodyOffset: 1 };
281171
280870
  }
@@ -281173,10 +280872,14 @@ function directiveArgToTokens(arg2, lineNumber, state) {
281173
280872
  return nestedPartToTokens("directive_arg", arg2, lineNumber, state, "run_directives", true);
281174
280873
  }
281175
280874
  function getDirectiveOptions(options) {
281176
- if (!options)
280875
+ if (!options || options.length === 0)
281177
280876
  return void 0;
281178
280877
  const simplified = {};
281179
280878
  options.forEach(([key2, val]) => {
280879
+ if (key2 === "class" && simplified.class) {
280880
+ simplified.class += ` ${val}`;
280881
+ return;
280882
+ }
281180
280883
  if (simplified[key2] !== void 0) {
281181
280884
  return;
281182
280885
  }
@@ -281184,16 +280887,16 @@ function getDirectiveOptions(options) {
281184
280887
  });
281185
280888
  return simplified;
281186
280889
  }
281187
- function directiveOptionsToTokens(options, lineNumber, state) {
280890
+ function directiveOptionsToTokens(options, lineNumber, state, optionsLocation) {
281188
280891
  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)
280892
+ const optTokens = typeof value === "string" ? nestedPartToTokens("myst_option", value, lineNumber + index4, state, "run_directives", true) : [
280893
+ new state.Token("myst_option_open", "", 1),
280894
+ new state.Token("myst_option_close", "", -1)
281192
280895
  ];
281193
280896
  if (optTokens.length) {
281194
280897
  optTokens[0].info = key2;
281195
280898
  optTokens[0].content = typeof value === "string" ? value : "";
281196
- optTokens[0].meta = { value };
280899
+ optTokens[0].meta = { location: optionsLocation, value };
281197
280900
  }
281198
280901
  return optTokens;
281199
280902
  });
@@ -281946,12 +281649,7 @@ var admonitionDirective = {
281946
281649
  "note",
281947
281650
  "seealso",
281948
281651
  "tip",
281949
- "warning",
281950
- ".callout-note",
281951
- ".callout-warning",
281952
- ".callout-important",
281953
- ".callout-tip",
281954
- ".callout-caution"
281652
+ "warning"
281955
281653
  ],
281956
281654
  arg: {
281957
281655
  type: "myst",
@@ -281995,7 +281693,7 @@ var admonitionDirective = {
281995
281693
  }
281996
281694
  const admonition5 = {
281997
281695
  type: "admonition",
281998
- kind: data.name !== "admonition" ? data.name.replace(".callout-", "") : void 0,
281696
+ kind: data.name !== "admonition" ? data.name : void 0,
281999
281697
  children
282000
281698
  };
282001
281699
  if (((_a6 = data.options) === null || _a6 === void 0 ? void 0 : _a6.icon) === false) {
@@ -282045,7 +281743,7 @@ function getCodeBlockOptions(data, vfile2, defaultFilename) {
282045
281743
  const { options, node: node3 } = data;
282046
281744
  if ((options === null || options === void 0 ? void 0 : options["lineno-start"]) != null && (options === null || options === void 0 ? void 0 : options["number-lines"]) != null) {
282047
281745
  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,
281746
+ node: (_a6 = select('mystOption[name="number-lines"]', node3)) !== null && _a6 !== void 0 ? _a6 : node3,
282049
281747
  source: "code-block:options",
282050
281748
  ruleId: RuleId.directiveOptionsCorrect
282051
281749
  });
@@ -282115,7 +281813,7 @@ function parseTags(input3, vfile2, node3) {
282115
281813
  return parseTags(js_yaml_default.load(input3), vfile2, node3);
282116
281814
  } catch (error) {
282117
281815
  fileError(vfile2, "Could not load tags for code-cell directive", {
282118
- node: (_a6 = select('mystDirectiveOption[name="tags"]', node3)) !== null && _a6 !== void 0 ? _a6 : node3,
281816
+ node: (_a6 = select('mystOption[name="tags"]', node3)) !== null && _a6 !== void 0 ? _a6 : node3,
282119
281817
  source: "code-cell:tags",
282120
281818
  ruleId: RuleId.directiveOptionsCorrect
282121
281819
  });
@@ -282135,7 +281833,7 @@ function parseTags(input3, vfile2, node3) {
282135
281833
  }
282136
281834
  } else if (tags) {
282137
281835
  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,
281836
+ node: (_b = select('mystOption[name="tags"]', node3)) !== null && _b !== void 0 ? _b : node3,
282139
281837
  source: "code-cell:tags",
282140
281838
  ruleId: RuleId.directiveOptionsCorrect
282141
281839
  });
@@ -282628,7 +282326,7 @@ var includeDirective = {
282628
282326
  filter7.endAt = (_h = data.options) === null || _h === void 0 ? void 0 : _h["end-at"];
282629
282327
  filter7.endBefore = (_j = data.options) === null || _j === void 0 ? void 0 : _j["end-before"];
282630
282328
  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);
282329
+ 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
282330
  } else {
282633
282331
  const startLine = (_o = data.options) === null || _o === void 0 ? void 0 : _o["start-line"];
282634
282332
  const endLine = (_p = data.options) === null || _p === void 0 ? void 0 : _p["end-line"];
@@ -285954,7 +285652,7 @@ var csvTableDirective = {
285954
285652
  headerCells = parseCSV(data.options.header, ctx, data.options);
285955
285653
  } catch (error) {
285956
285654
  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,
285655
+ node: (_b = select('mystOption[name="header"]', data.node)) !== null && _b !== void 0 ? _b : data.node,
285958
285656
  ruleId: RuleId.directiveOptionsCorrect
285959
285657
  });
285960
285658
  }
@@ -286289,14 +285987,13 @@ var divDirective = {
286289
285987
  ...commonDirectiveOptions("div")
286290
285988
  },
286291
285989
  body: {
286292
- type: "myst",
286293
- required: true
285990
+ type: "myst"
286294
285991
  },
286295
285992
  run(data) {
286296
- const div2 = {
286297
- type: "div",
286298
- children: data.body
286299
- };
285993
+ const div2 = { type: "div" };
285994
+ if (data.body) {
285995
+ div2.children = data.body;
285996
+ }
286300
285997
  addCommonDirectiveOptions(data, div2);
286301
285998
  return [div2];
286302
285999
  }
@@ -286388,11 +286085,75 @@ var defaultDirectives = [
286388
286085
  tocDirective
286389
286086
  ];
286390
286087
 
286088
+ // ../myst-roles/dist/utils.js
286089
+ function classRoleOption(nodeType = "node") {
286090
+ return {
286091
+ class: {
286092
+ type: String,
286093
+ doc: `Annotate the ${nodeType} with a set of space-delimited class names.`
286094
+ }
286095
+ };
286096
+ }
286097
+ function labelRoleOption(nodeType = "node") {
286098
+ return {
286099
+ label: {
286100
+ type: String,
286101
+ alias: ["name"],
286102
+ doc: `Label the ${nodeType} to be cross-referenced or explicitly linked to.`
286103
+ }
286104
+ };
286105
+ }
286106
+ function commonRoleOptions(nodeType = "node") {
286107
+ return {
286108
+ ...classRoleOption(nodeType),
286109
+ ...labelRoleOption(nodeType)
286110
+ };
286111
+ }
286112
+ function addClassOptions2(data, node3) {
286113
+ var _a6;
286114
+ if (typeof ((_a6 = data.options) === null || _a6 === void 0 ? void 0 : _a6.class) === "string") {
286115
+ node3.class = data.options.class;
286116
+ }
286117
+ return node3;
286118
+ }
286119
+ function addLabelOptions2(data, node3) {
286120
+ var _a6;
286121
+ const { label, identifier } = normalizeLabel((_a6 = data.options) === null || _a6 === void 0 ? void 0 : _a6.label) || {};
286122
+ if (label)
286123
+ node3.label = label;
286124
+ if (identifier)
286125
+ node3.identifier = identifier;
286126
+ return node3;
286127
+ }
286128
+ function addCommonRoleOptions(data, node3) {
286129
+ addClassOptions2(data, node3);
286130
+ addLabelOptions2(data, node3);
286131
+ return node3;
286132
+ }
286133
+
286134
+ // ../myst-roles/dist/span.js
286135
+ var spanRole = {
286136
+ name: "span",
286137
+ options: { ...commonRoleOptions("span") },
286138
+ body: {
286139
+ type: "myst"
286140
+ },
286141
+ run(data) {
286142
+ const node3 = { type: "span" };
286143
+ if (data.body) {
286144
+ node3.children = data.body;
286145
+ }
286146
+ addCommonRoleOptions(data, node3);
286147
+ return [node3];
286148
+ }
286149
+ };
286150
+
286391
286151
  // ../myst-roles/dist/abbreviation.js
286392
286152
  var ABBR_PATTERN = /^(.+?)\(([^()]+)\)$/;
286393
286153
  var abbreviationRole = {
286394
286154
  name: "abbreviation",
286395
286155
  alias: ["abbr"],
286156
+ options: { ...commonRoleOptions("abbreviation") },
286396
286157
  body: {
286397
286158
  type: String,
286398
286159
  required: true
@@ -286403,7 +286164,9 @@ var abbreviationRole = {
286403
286164
  const match3 = ABBR_PATTERN.exec(body3);
286404
286165
  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
286166
  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 }] }];
286167
+ const abbr = { type: "abbreviation", title, children: [{ type: "text", value }] };
286168
+ addCommonRoleOptions(data, abbr);
286169
+ return [abbr];
286407
286170
  }
286408
286171
  };
286409
286172
 
@@ -286411,12 +286174,15 @@ var abbreviationRole = {
286411
286174
  var chemRole = {
286412
286175
  name: "chemicalFormula",
286413
286176
  alias: ["chem"],
286177
+ options: { ...commonRoleOptions("chemicalFormula") },
286414
286178
  body: {
286415
286179
  type: String,
286416
286180
  required: true
286417
286181
  },
286418
286182
  run(data) {
286419
- return [{ type: "chemicalFormula", value: data.body }];
286183
+ const chem = { type: "chemicalFormula", value: data.body };
286184
+ addCommonRoleOptions(data, chem);
286185
+ return [chem];
286420
286186
  }
286421
286187
  };
286422
286188
 
@@ -286445,6 +286211,7 @@ var citeRole = {
286445
286211
  "cite:cauthors"
286446
286212
  // 'cite:empty',
286447
286213
  ],
286214
+ options: { ...commonRoleOptions("cite") },
286448
286215
  body: {
286449
286216
  type: String,
286450
286217
  required: true
@@ -286477,18 +286244,15 @@ var citeRole = {
286477
286244
  return cite3;
286478
286245
  });
286479
286246
  if (data.name === "cite" && children.length === 1) {
286247
+ addCommonRoleOptions(data, children[0]);
286480
286248
  return children;
286481
286249
  }
286482
286250
  if (data.name.includes("cite:alp")) {
286483
286251
  return children;
286484
286252
  }
286485
- return [
286486
- {
286487
- type: "citeGroup",
286488
- kind,
286489
- children
286490
- }
286491
- ];
286253
+ const citeGroup3 = { type: "citeGroup", kind, children };
286254
+ addCommonRoleOptions(data, citeGroup3);
286255
+ return [citeGroup3];
286492
286256
  }
286493
286257
  };
286494
286258
 
@@ -286496,24 +286260,30 @@ var citeRole = {
286496
286260
  var deleteRole = {
286497
286261
  name: "delete",
286498
286262
  alias: ["del", "strike"],
286263
+ options: { ...commonRoleOptions("delete") },
286499
286264
  body: {
286500
286265
  type: "myst",
286501
286266
  required: true
286502
286267
  },
286503
286268
  run(data) {
286504
- return [{ type: "delete", children: data.body }];
286269
+ const del2 = { type: "delete", children: data.body };
286270
+ addCommonRoleOptions(data, del2);
286271
+ return [del2];
286505
286272
  }
286506
286273
  };
286507
286274
 
286508
286275
  // ../myst-roles/dist/math.js
286509
286276
  var mathRole = {
286510
286277
  name: "math",
286278
+ options: { ...commonRoleOptions("math") },
286511
286279
  body: {
286512
286280
  type: String,
286513
286281
  required: true
286514
286282
  },
286515
286283
  run(data) {
286516
- return [{ type: "inlineMath", value: data.body }];
286284
+ const node3 = { type: "inlineMath", value: data.body };
286285
+ addCommonRoleOptions(data, node3);
286286
+ return [node3];
286517
286287
  }
286518
286288
  };
286519
286289
 
@@ -286783,16 +286553,14 @@ var UNITS2 = {
286783
286553
  // ../myst-roles/dist/inlineExpression.js
286784
286554
  var evalRole = {
286785
286555
  name: "eval",
286556
+ options: { ...commonRoleOptions("eval") },
286786
286557
  body: {
286787
286558
  type: String,
286788
286559
  required: true
286789
286560
  },
286790
286561
  run(data) {
286791
- const value = data.body;
286792
- const node3 = {
286793
- type: "inlineExpression",
286794
- value
286795
- };
286562
+ const node3 = { type: "inlineExpression", value: data.body };
286563
+ addCommonRoleOptions(data, node3);
286796
286564
  return [node3];
286797
286565
  }
286798
286566
  };
@@ -286801,12 +286569,15 @@ var evalRole = {
286801
286569
  var smallcapsRole = {
286802
286570
  name: "smallcaps",
286803
286571
  alias: ["sc"],
286572
+ options: { ...commonRoleOptions("smallcaps") },
286804
286573
  body: {
286805
286574
  type: "myst",
286806
286575
  required: true
286807
286576
  },
286808
286577
  run(data) {
286809
- return [{ type: "smallcaps", children: data.body }];
286578
+ const node3 = { type: "smallcaps", children: data.body };
286579
+ addCommonRoleOptions(data, node3);
286580
+ return [node3];
286810
286581
  }
286811
286582
  };
286812
286583
 
@@ -286814,12 +286585,15 @@ var smallcapsRole = {
286814
286585
  var subscriptRole = {
286815
286586
  name: "subscript",
286816
286587
  alias: ["sub"],
286588
+ options: { ...commonRoleOptions("subscript") },
286817
286589
  body: {
286818
286590
  type: "myst",
286819
286591
  required: true
286820
286592
  },
286821
286593
  run(data) {
286822
- return [{ type: "subscript", children: data.body }];
286594
+ const node3 = { type: "subscript", children: data.body };
286595
+ addCommonRoleOptions(data, node3);
286596
+ return [node3];
286823
286597
  }
286824
286598
  };
286825
286599
 
@@ -286827,12 +286601,15 @@ var subscriptRole = {
286827
286601
  var superscriptRole = {
286828
286602
  name: "superscript",
286829
286603
  alias: ["sup"],
286604
+ options: { ...commonRoleOptions("superscript") },
286830
286605
  body: {
286831
286606
  type: "myst",
286832
286607
  required: true
286833
286608
  },
286834
286609
  run(data) {
286835
- return [{ type: "superscript", children: data.body }];
286610
+ const node3 = { type: "superscript", children: data.body };
286611
+ addCommonRoleOptions(data, node3);
286612
+ return [node3];
286836
286613
  }
286837
286614
  };
286838
286615
 
@@ -286840,12 +286617,15 @@ var superscriptRole = {
286840
286617
  var underlineRole = {
286841
286618
  name: "underline",
286842
286619
  alias: ["u"],
286620
+ options: { ...commonRoleOptions("underline") },
286843
286621
  body: {
286844
286622
  type: "myst",
286845
286623
  required: true
286846
286624
  },
286847
286625
  run(data) {
286848
- return [{ type: "underline", children: data.body }];
286626
+ const node3 = { type: "underline", children: data.body };
286627
+ addCommonRoleOptions(data, node3);
286628
+ return [node3];
286849
286629
  }
286850
286630
  };
286851
286631
 
@@ -286854,16 +286634,17 @@ var keyboardRole = {
286854
286634
  name: "keyboard",
286855
286635
  doc: 'The keyboard role denote textual user input from a keyboard, such as "Ctrl" + "Space".',
286856
286636
  alias: ["kbd"],
286637
+ options: { ...commonRoleOptions("keyboard") },
286857
286638
  body: {
286858
286639
  type: String,
286859
286640
  required: true
286860
286641
  },
286861
286642
  run(data) {
286862
- const body3 = data.body;
286863
286643
  const node3 = {
286864
286644
  type: "keyboard",
286865
- children: [{ type: "text", value: body3 }]
286645
+ children: [{ type: "text", value: data.body }]
286866
286646
  };
286647
+ addCommonRoleOptions(data, node3);
286867
286648
  return [node3];
286868
286649
  }
286869
286650
  };
@@ -286914,6 +286695,7 @@ var rawTypstRole = {
286914
286695
 
286915
286696
  // ../myst-roles/dist/index.js
286916
286697
  var defaultRoles = [
286698
+ spanRole,
286917
286699
  abbreviationRole,
286918
286700
  chemRole,
286919
286701
  citeRole,
@@ -288176,10 +287958,10 @@ var UNHIDDEN_TOKENS = /* @__PURE__ */ new Set([
288176
287958
  "parsed_directive_close",
288177
287959
  "directive_arg_open",
288178
287960
  "directive_arg_close",
288179
- "directive_option_open",
288180
- "directive_option_close",
288181
287961
  "directive_body_open",
288182
287962
  "directive_body_close",
287963
+ "myst_option_open",
287964
+ "myst_option_close",
288183
287965
  "parsed_role_open",
288184
287966
  "parsed_role_close",
288185
287967
  "role_body_open",
@@ -288676,15 +288458,6 @@ var defaultMdast = {
288676
288458
  };
288677
288459
  }
288678
288460
  },
288679
- directive_option: {
288680
- type: "mystDirectiveOption",
288681
- getAttrs(t2) {
288682
- return {
288683
- name: t2.info,
288684
- value: t2.meta.value
288685
- };
288686
- }
288687
- },
288688
288461
  directive_body: {
288689
288462
  type: "mystDirectiveBody",
288690
288463
  getAttrs(t2) {
@@ -288695,7 +288468,23 @@ var defaultMdast = {
288695
288468
  },
288696
288469
  directive_error: {
288697
288470
  type: "mystDirectiveError",
288698
- noCloseToken: true
288471
+ noCloseToken: true,
288472
+ getAttrs(t2) {
288473
+ var _a6;
288474
+ return {
288475
+ message: (_a6 = t2.meta) === null || _a6 === void 0 ? void 0 : _a6.error_message
288476
+ };
288477
+ }
288478
+ },
288479
+ myst_option: {
288480
+ type: "mystOption",
288481
+ getAttrs(t2) {
288482
+ return {
288483
+ name: t2.info,
288484
+ location: t2.meta.location,
288485
+ value: t2.meta.value
288486
+ };
288487
+ }
288699
288488
  },
288700
288489
  parsed_role: {
288701
288490
  type: "mystRole",
@@ -288857,7 +288646,7 @@ function tokensToMyst(src, tokens, options = defaultOptions2) {
288857
288646
  return tree;
288858
288647
  }
288859
288648
 
288860
- // ../myst-parser/dist/roles.js
288649
+ // ../myst-parser/dist/utils.js
288861
288650
  function contentFromNode(node3, spec, vfile2, description, ruleId) {
288862
288651
  const { children, value } = node3;
288863
288652
  if (spec.type === ParseTypesEnum.parsed || spec.type === "myst") {
@@ -288911,65 +288700,81 @@ function contentFromNode(node3, spec, vfile2, description, ruleId) {
288911
288700
  return !!value;
288912
288701
  }
288913
288702
  }
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);
288703
+
288704
+ // ../myst-parser/dist/inlineAttributes.js
288705
+ function parseOptions(name3, node3, vfile2, optionsSpec) {
288706
+ var _a6, _b;
288707
+ let validationError2 = false;
288708
+ const options = {};
288709
+ const optionNodes = (_b = (_a6 = node3.children) === null || _a6 === void 0 ? void 0 : _a6.filter((c) => c.type === "mystOption")) !== null && _b !== void 0 ? _b : [];
288710
+ const optionNodeLookup = {};
288711
+ optionNodes.forEach((optionNode) => {
288712
+ if (optionNode.name === "id" && optionNode.location === "inline") {
288713
+ optionNodeLookup.label = optionNode;
288714
+ return;
288920
288715
  }
288921
- names.forEach((name3) => {
288922
- if (specLookup[name3]) {
288923
- fileWarn(vfile2, `duplicate roles registered with name: ${name3}`, {
288924
- ruleId: RuleId.roleRegistered
288925
- });
288716
+ if (optionNode.name === "class") {
288717
+ if (optionNodeLookup.class) {
288718
+ optionNodeLookup.class.value += ` ${optionNode.value}`;
288926
288719
  } else {
288927
- specLookup[name3] = spec;
288720
+ optionNodeLookup.class = optionNode;
288928
288721
  }
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
288722
  return;
288940
288723
  }
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}`, {
288724
+ if (optionNodeLookup[optionNode.name]) {
288725
+ fileWarn(vfile2, `duplicate option "${optionNode.name}" declared (in ${name3})`, {
288726
+ node: optionNode,
288727
+ ruleId: RuleId.directiveOptionsCorrect
288728
+ });
288729
+ } else {
288730
+ optionNodeLookup[optionNode.name] = optionNode;
288731
+ }
288732
+ });
288733
+ Object.entries(optionsSpec || {}).forEach(([optionName, optionSpec]) => {
288734
+ var _a7;
288735
+ let optionNameUsed = optionName;
288736
+ let optionNode = optionNodeLookup[optionName];
288737
+ (_a7 = optionSpec.alias) === null || _a7 === void 0 ? void 0 : _a7.forEach((alias) => {
288738
+ const aliasNode = optionNodeLookup[alias];
288739
+ if (!aliasNode)
288740
+ return;
288741
+ if (!optionNode && aliasNode) {
288742
+ optionNode = aliasNode;
288743
+ optionNameUsed = alias;
288744
+ optionNodeLookup[optionName] = optionNode;
288745
+ } else {
288746
+ fileWarn(vfile2, `option "${optionNameUsed}" used instead of "${alias}" (in ${name3})`, {
288948
288747
  node: node3,
288949
- ruleId: RuleId.roleBodyCorrect
288748
+ ruleId: RuleId.directiveOptionsCorrect
288950
288749
  });
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
288750
  }
288960
- } else if (bodyNode) {
288961
- fileWarn(vfile2, `unexpected body provided for role: ${name3}`, {
288962
- node: bodyNode,
288963
- ruleId: RuleId.roleBodyCorrect
288751
+ delete optionNodeLookup[alias];
288752
+ });
288753
+ if (optionSpec.required && !optionNode) {
288754
+ fileError(vfile2, `required option "${optionName}" not provided (in ${name3})`, {
288755
+ node: node3,
288756
+ ruleId: RuleId.directiveOptionsCorrect
288964
288757
  });
288758
+ node3.type = "mystDirectiveError";
288759
+ delete node3.children;
288760
+ validationError2 = true;
288761
+ } else if (optionNode) {
288762
+ const content3 = contentFromNode(optionNode, optionSpec, vfile2, `option "${optionName}" (in ${name3})`, RuleId.directiveOptionsCorrect);
288763
+ if (content3 != null) {
288764
+ options[optionName] = content3;
288765
+ } else if (optionSpec.required) {
288766
+ validationError2 = true;
288767
+ }
288768
+ delete optionNodeLookup[optionName];
288965
288769
  }
288966
- if (validationError2)
288967
- return;
288968
- if (validate5) {
288969
- data = validate5(data, vfile2);
288970
- }
288971
- node3.children = run(data, vfile2);
288972
288770
  });
288771
+ Object.values(optionNodeLookup).forEach((optionNode) => {
288772
+ fileWarn(vfile2, `unexpected option "${optionNode.name}" provided (in ${name3})`, {
288773
+ node: optionNode,
288774
+ ruleId: RuleId.directiveOptionsCorrect
288775
+ });
288776
+ });
288777
+ return { valid: validationError2, options: Object.keys(options).length ? options : void 0 };
288973
288778
  }
288974
288779
 
288975
288780
  // ../myst-parser/dist/directives.js
@@ -288992,7 +288797,7 @@ function applyDirectives(tree, specs, vfile2, ctx) {
288992
288797
  });
288993
288798
  const nodes = selectAll("mystDirective[processed=false]", tree);
288994
288799
  nodes.forEach((node3) => {
288995
- var _a6, _b, _c, _d2;
288800
+ var _a6, _b;
288996
288801
  delete node3.processed;
288997
288802
  const { name: name3 } = node3;
288998
288803
  const spec = specLookup[name3];
@@ -289017,11 +288822,10 @@ ${node3.value}` : "";
289017
288822
  const argNode = (_a6 = node3.children) === null || _a6 === void 0 ? void 0 : _a6.filter((c) => c.type === "mystDirectiveArg")[0];
289018
288823
  if (argSpec) {
289019
288824
  if (argSpec.required && !argNode) {
289020
- fileError(vfile2, `required argument not provided for directive: ${name3}`, {
289021
- node: node3,
289022
- ruleId: RuleId.directiveArgumentCorrect
289023
- });
288825
+ const message = `required argument not provided for directive: ${name3}`;
288826
+ fileError(vfile2, message, { node: node3, ruleId: RuleId.directiveArgumentCorrect });
289024
288827
  node3.type = "mystDirectiveError";
288828
+ node3.message = message;
289025
288829
  delete node3.children;
289026
288830
  validationError2 = true;
289027
288831
  } else if (argNode) {
@@ -289031,76 +288835,19 @@ ${node3.value}` : "";
289031
288835
  }
289032
288836
  }
289033
288837
  } else if (argNode) {
289034
- fileWarn(vfile2, `unexpected argument provided for directive: ${name3}`, {
289035
- node: argNode,
289036
- ruleId: RuleId.directiveArgumentCorrect
289037
- });
288838
+ const message = `unexpected argument provided for directive: ${name3}`;
288839
+ fileWarn(vfile2, message, { node: argNode, ruleId: RuleId.directiveArgumentCorrect });
289038
288840
  }
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];
288841
+ const { valid: validOptions, options } = parseOptions(name3, node3, vfile2, optionsSpec);
288842
+ data.options = options;
288843
+ validationError2 = validationError2 || validOptions;
288844
+ const bodyNode = (_b = node3.children) === null || _b === void 0 ? void 0 : _b.filter((c) => c.type === "mystDirectiveBody")[0];
289097
288845
  if (bodySpec) {
289098
288846
  if (bodySpec.required && !bodyNode) {
289099
- fileError(vfile2, `required body not provided for directive: ${name3}`, {
289100
- node: node3,
289101
- ruleId: RuleId.directiveBodyCorrect
289102
- });
288847
+ const message = `required body not provided for directive: ${name3}`;
288848
+ fileError(vfile2, message, { node: node3, ruleId: RuleId.directiveBodyCorrect });
289103
288849
  node3.type = "mystDirectiveError";
288850
+ node3.message = message;
289104
288851
  delete node3.children;
289105
288852
  validationError2 = true;
289106
288853
  } else if (bodyNode) {
@@ -289127,6 +288874,71 @@ ${node3.value}` : "";
289127
288874
  });
289128
288875
  }
289129
288876
 
288877
+ // ../myst-parser/dist/roles.js
288878
+ function applyRoles(tree, specs, vfile2) {
288879
+ const specLookup = {};
288880
+ specs.forEach((spec) => {
288881
+ const names = [spec.name];
288882
+ if (spec.alias) {
288883
+ names.push(...typeof spec.alias === "string" ? [spec.alias] : spec.alias);
288884
+ }
288885
+ names.forEach((name3) => {
288886
+ if (specLookup[name3]) {
288887
+ fileWarn(vfile2, `duplicate roles registered with name: ${name3}`, {
288888
+ ruleId: RuleId.roleRegistered
288889
+ });
288890
+ } else {
288891
+ specLookup[name3] = spec;
288892
+ }
288893
+ });
288894
+ });
288895
+ const nodes = selectAll("mystRole[processed=false]", tree);
288896
+ nodes.forEach((node3) => {
288897
+ var _a6;
288898
+ delete node3.processed;
288899
+ const { name: name3 } = node3;
288900
+ const spec = specLookup[name3];
288901
+ if (!spec) {
288902
+ fileError(vfile2, `unknown role: ${name3}`, { node: node3, ruleId: RuleId.roleKnown });
288903
+ delete node3.children;
288904
+ return;
288905
+ }
288906
+ const { body: body3, options: optionsSpec, validate: validate5, run } = spec;
288907
+ let data = { name: name3, node: node3, options: {} };
288908
+ const { valid: validOptions, options } = parseOptions(name3, node3, vfile2, optionsSpec);
288909
+ let validationError2 = validOptions;
288910
+ data.options = options;
288911
+ const bodyNode = (_a6 = node3.children) === null || _a6 === void 0 ? void 0 : _a6.find((n) => n.type === "mystRoleBody");
288912
+ if (body3) {
288913
+ if (body3.required && !bodyNode) {
288914
+ fileError(vfile2, `required body not provided for role: ${name3}`, {
288915
+ node: node3,
288916
+ ruleId: RuleId.roleBodyCorrect
288917
+ });
288918
+ node3.type = "mystRoleError";
288919
+ delete node3.children;
288920
+ validationError2 = true;
288921
+ } else {
288922
+ data.body = contentFromNode(bodyNode, body3, vfile2, `body of role: ${name3}`, RuleId.roleBodyCorrect);
288923
+ if (body3.required && data.body == null) {
288924
+ validationError2 = true;
288925
+ }
288926
+ }
288927
+ } else if (bodyNode) {
288928
+ fileWarn(vfile2, `unexpected body provided for role: ${name3}`, {
288929
+ node: bodyNode,
288930
+ ruleId: RuleId.roleBodyCorrect
288931
+ });
288932
+ }
288933
+ if (validationError2)
288934
+ return;
288935
+ if (validate5) {
288936
+ data = validate5(data, vfile2);
288937
+ }
288938
+ node3.children = run(data, vfile2);
288939
+ });
288940
+ }
288941
+
289130
288942
  // ../myst-parser/dist/myst.js
289131
288943
  var defaultOptions3 = {
289132
288944
  markdownit: {
@@ -289149,7 +288961,7 @@ var defaultOptions3 = {
289149
288961
  directives: defaultDirectives,
289150
288962
  roles: defaultRoles
289151
288963
  };
289152
- function parseOptions(opts) {
288964
+ function parseOptions2(opts) {
289153
288965
  var _a6, _b, _c;
289154
288966
  const parsedOpts = {
289155
288967
  vfile: (_a6 = opts === null || opts === void 0 ? void 0 : opts.vfile) !== null && _a6 !== void 0 ? _a6 : new VFile(),
@@ -289162,7 +288974,7 @@ function parseOptions(opts) {
289162
288974
  return parsedOpts;
289163
288975
  }
289164
288976
  function createTokenizer(opts) {
289165
- const parsedOpts = parseOptions(opts);
288977
+ const parsedOpts = parseOptions2(opts);
289166
288978
  const { extensions, markdownit } = parsedOpts;
289167
288979
  const tokenizer = (0, import_markdown_it.default)({
289168
288980
  ...MARKDOWN_IT_CONFIG,
@@ -289201,7 +289013,7 @@ function createTokenizer(opts) {
289201
289013
  }
289202
289014
  function mystParse(content3, opts) {
289203
289015
  const { vfile: vfile2 } = opts || {};
289204
- const parsedOpts = parseOptions(opts);
289016
+ const parsedOpts = parseOptions2(opts);
289205
289017
  const tokenizer = createTokenizer(parsedOpts);
289206
289018
  const tree = tokensToMyst(content3, tokenizer.parse(content3, { vfile: vfile2 }), parsedOpts.mdast);
289207
289019
  applyDirectives(tree, parsedOpts.directives, parsedOpts.vfile, {
@@ -289745,17 +289557,186 @@ function parseMyst(session, content3, file, opts) {
289745
289557
  return parsed;
289746
289558
  }
289747
289559
 
289748
- // ../myst-cli/dist/process/notebook.js
289749
- var import_nbtx2 = __toESM(require_cjs2(), 1);
289560
+ // ../../node_modules/nbtx/dist/minify/utils.js
289561
+ var MAX_CHARS = 25e3;
289562
+ var TRUNCATED_CHARS_COUNT = 64;
289563
+ function DEFAULT_HASH_WARNING(content3) {
289564
+ 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.');
289565
+ return `not-a-hash-${Math.random().toString(36).slice(2)}${Math.random().toString(36).slice(2)}`;
289566
+ }
289567
+ function isNotNull(arg2) {
289568
+ return arg2 != null;
289569
+ }
289570
+ function walkOutputs(outputs, func) {
289571
+ outputs.forEach((output2) => {
289572
+ if ("data" in output2 && output2.data) {
289573
+ Object.entries(output2.data).forEach(([, bundle]) => {
289574
+ func(bundle);
289575
+ });
289576
+ } else {
289577
+ func(output2);
289578
+ }
289579
+ });
289580
+ }
289581
+ function ensureString(maybeString, joinWith = "") {
289582
+ if (!maybeString)
289583
+ return "";
289584
+ if (typeof maybeString === "string")
289585
+ return maybeString;
289586
+ if (maybeString.join)
289587
+ return maybeString.join(joinWith);
289588
+ return maybeString;
289589
+ }
289590
+
289591
+ // ../../node_modules/nbtx/dist/minify/mime.js
289592
+ function minifyContent(content3, contentType, isBase64Image, outputCache, opts) {
289593
+ if (content3.length === 0 || !isBase64Image && content3.length <= opts.maxCharacters) {
289594
+ return { content: content3, content_type: contentType };
289595
+ }
289596
+ let hash;
289597
+ if (isBase64Image) {
289598
+ const [data] = content3.split(";base64,").reverse();
289599
+ hash = opts.computeHash(data);
289600
+ outputCache[hash] = [data, { contentType, encoding: "base64" }];
289601
+ } else {
289602
+ hash = opts.computeHash(content3);
289603
+ outputCache[hash] = [content3, { contentType, encoding: "utf8" }];
289604
+ }
289605
+ return {
289606
+ content_type: contentType,
289607
+ hash
289608
+ };
289609
+ }
289610
+ async function minifyMimeOutput(output2, outputCache, opts) {
289611
+ const items = await Promise.all(Object.entries(output2.data).map(async ([mimetype, mimeContent]) => {
289612
+ let isBase64Image = false;
289613
+ let stringContent = "";
289614
+ if (mimetype !== "application/javascript" && (mimetype === "application/json" || mimetype.startsWith("application/") && typeof mimeContent === "object")) {
289615
+ stringContent = JSON.stringify(mimeContent);
289616
+ } else {
289617
+ stringContent = ensureString(mimeContent);
289618
+ }
289619
+ if (!mimetype.startsWith("image/svg") && mimetype.startsWith("image/")) {
289620
+ isBase64Image = true;
289621
+ }
289622
+ return minifyContent(stringContent, mimetype, isBase64Image, outputCache, opts);
289623
+ }));
289624
+ const data = items.reduce((bundle, item) => ({ ...bundle, [item.content_type]: item }), {});
289625
+ return {
289626
+ output_type: output2.output_type,
289627
+ execution_count: output2.execution_count,
289628
+ metadata: output2.metadata,
289629
+ data
289630
+ };
289631
+ }
289632
+
289633
+ // ../../node_modules/nbtx/dist/minify/text.js
289634
+ function ensureStringEnsureNewlines(maybeString) {
289635
+ return typeof maybeString === "string" ? maybeString : maybeString === null || maybeString === void 0 ? void 0 : maybeString.join("\n");
289636
+ }
289637
+ async function minifyStringOutput(output2, fieldName, outputCache, opts) {
289638
+ if (!output2[fieldName]) {
289639
+ throw Error(`Bad Field name ${fieldName} for output type ${output2.output_type}`);
289640
+ }
289641
+ const text7 = opts.ensureNewlines ? ensureStringEnsureNewlines(output2[fieldName]) : ensureString(output2[fieldName]);
289642
+ if (text7 && text7.length <= opts.maxCharacters) {
289643
+ return { ...output2, [fieldName]: text7 };
289644
+ }
289645
+ const hash = opts.computeHash(text7);
289646
+ outputCache[hash] = [text7, { contentType: "text/plain", encoding: "utf8" }];
289647
+ return {
289648
+ ...output2,
289649
+ hash,
289650
+ [fieldName]: `${text7.slice(0, opts.truncateTo - 3)}...`
289651
+ };
289652
+ }
289653
+ var minifyStreamOutput = async (output2, outputCache, opts) => minifyStringOutput(output2, "text", outputCache, opts);
289654
+ var minifyErrorOutput = async (output2, outputCache, opts) => minifyStringOutput(output2, "traceback", outputCache, {
289655
+ ensureNewlines: true,
289656
+ ...opts
289657
+ });
289658
+
289659
+ // ../../node_modules/nbtx/dist/minify/minify.js
289660
+ async function minifyOneOutputItem(output2, outputCache, opts) {
289661
+ if (!("output_type" in output2))
289662
+ return null;
289663
+ switch (output2.output_type) {
289664
+ case "stream":
289665
+ return minifyStreamOutput(output2, outputCache, opts);
289666
+ case "error":
289667
+ return minifyErrorOutput(output2, outputCache, opts);
289668
+ case "update_display_data":
289669
+ case "display_data":
289670
+ case "execute_result":
289671
+ return minifyMimeOutput(output2, outputCache, opts);
289672
+ default:
289673
+ return null;
289674
+ }
289675
+ }
289676
+ async function minifyCellOutput(outputs, outputCache, opts = {}) {
289677
+ var _a6, _b, _c;
289678
+ const options = {
289679
+ maxCharacters: (_a6 = opts.maxCharacters) !== null && _a6 !== void 0 ? _a6 : MAX_CHARS,
289680
+ truncateTo: (_b = opts.truncateTo) !== null && _b !== void 0 ? _b : TRUNCATED_CHARS_COUNT,
289681
+ computeHash: (_c = opts.computeHash) !== null && _c !== void 0 ? _c : DEFAULT_HASH_WARNING
289682
+ };
289683
+ const minifiedOrNull = await Promise.all(outputs.map(async (output2) => minifyOneOutputItem(output2, outputCache, options)));
289684
+ return minifiedOrNull.filter(isNotNull);
289685
+ }
289686
+
289687
+ // ../../node_modules/nbtx/dist/types.js
289688
+ var KnownCellOutputMimeTypes;
289689
+ (function(KnownCellOutputMimeTypes2) {
289690
+ KnownCellOutputMimeTypes2["TextPlain"] = "text/plain";
289691
+ KnownCellOutputMimeTypes2["TextHtml"] = "text/html";
289692
+ KnownCellOutputMimeTypes2["TextLatex"] = "text/latex";
289693
+ KnownCellOutputMimeTypes2["ImagePng"] = "image/png";
289694
+ KnownCellOutputMimeTypes2["ImageBmp"] = "image/bmp";
289695
+ KnownCellOutputMimeTypes2["ImageJpeg"] = "image/jpeg";
289696
+ KnownCellOutputMimeTypes2["ImageSvg"] = "image/svg+xml";
289697
+ KnownCellOutputMimeTypes2["ImageGif"] = "image/gif";
289698
+ KnownCellOutputMimeTypes2["AppJson"] = "application/json";
289699
+ KnownCellOutputMimeTypes2["AppGeoJson"] = "application/geo+json";
289700
+ KnownCellOutputMimeTypes2["AppPlotly"] = "application/vnd.plotly.v1+json";
289701
+ KnownCellOutputMimeTypes2["AppVega"] = "application/vnd.vega.v5+json";
289702
+ KnownCellOutputMimeTypes2["AppVegaLite"] = "application/vnd.vegalite.v3+json";
289703
+ KnownCellOutputMimeTypes2["AppVirtualDom"] = "application/vdom.v1+json";
289704
+ KnownCellOutputMimeTypes2["AppJavascript"] = "application/javascript";
289705
+ KnownCellOutputMimeTypes2["AppWidgetView"] = "application/vnd.jupyter.widget-view+json";
289706
+ KnownCellOutputMimeTypes2["AppWidgetState"] = "application/vnd.jupyter.widget-state+json";
289707
+ KnownCellOutputMimeTypes2["AppBokehLoad"] = "application/vnd.bokehjs_load.v0+json";
289708
+ KnownCellOutputMimeTypes2["AppBokehExec"] = "application/vnd.bokehjs_exec.v0+json";
289709
+ })(KnownCellOutputMimeTypes || (KnownCellOutputMimeTypes = {}));
289710
+ var CELL_TYPES;
289711
+ (function(CELL_TYPES2) {
289712
+ CELL_TYPES2["raw"] = "raw";
289713
+ CELL_TYPES2["markdown"] = "markdown";
289714
+ CELL_TYPES2["code"] = "code";
289715
+ })(CELL_TYPES || (CELL_TYPES = {}));
289716
+
289717
+ // ../../node_modules/nbtx/dist/utils.js
289718
+ function extFromMimeType(mimeType) {
289719
+ if (mimeType === KnownCellOutputMimeTypes.TextHtml)
289720
+ return ".html";
289721
+ if (mimeType === KnownCellOutputMimeTypes.TextLatex)
289722
+ return ".tex";
289723
+ if (mimeType.startsWith("text/"))
289724
+ return ".txt";
289725
+ if (mimeType.startsWith("image/")) {
289726
+ const suffix = mimeType.split("/")[1];
289727
+ const ext2 = suffix.split("+")[0];
289728
+ return `.${ext2}`;
289729
+ }
289730
+ return ".json";
289731
+ }
289750
289732
 
289751
289733
  // ../myst-cli/dist/transforms/images.js
289752
289734
  var import_node_fs11 = __toESM(require("fs"), 1);
289753
289735
  var import_mime_types = __toESM(require_mime_types(), 1);
289754
289736
  var import_node_path16 = __toESM(require("path"), 1);
289755
- var import_nbtx = __toESM(require_cjs2(), 1);
289756
289737
 
289757
289738
  // ../myst-cli/dist/version.js
289758
- var version2 = "1.3.25";
289739
+ var version2 = "1.3.27";
289759
289740
  var version_default2 = version2;
289760
289741
 
289761
289742
  // ../myst-cli/dist/utils/headers.js
@@ -290455,7 +290436,7 @@ function getGithubRawUrl(url) {
290455
290436
  async function writeBase64(session, writeFolder, data, contentType) {
290456
290437
  var _a6;
290457
290438
  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);
290439
+ const ext2 = extFromMimeType((_a6 = header === null || header === void 0 ? void 0 : header.replace("data:", "")) !== null && _a6 !== void 0 ? _a6 : contentType);
290459
290440
  const hash = computeHash(justData);
290460
290441
  const file = `${hash}${ext2}`;
290461
290442
  const filePath = import_node_path16.default.join(writeFolder, file);
@@ -290574,7 +290555,7 @@ function transformImagesWithoutExt(session, mdast2, file, opts) {
290574
290555
  const sortedExtensions = [
290575
290556
  // Valid extensions
290576
290557
  ...(_a6 = opts === null || opts === void 0 ? void 0 : opts.imageExtensions) !== null && _a6 !== void 0 ? _a6 : [],
290577
- // Convertable extensions
290558
+ // Convertible extensions
290578
290559
  ...Object.keys(conversionFnLookup),
290579
290560
  // All known extensions
290580
290561
  ...KNOWN_IMAGE_EXTENSIONS
@@ -290987,21 +290968,18 @@ function renderExpression(node3, file) {
290987
290968
  return [];
290988
290969
  }
290989
290970
  function transformRenderInlineExpressions(mdast2, file) {
290990
- let count2 = 0;
290991
290971
  const inlineNodes = selectAll("inlineExpression", mdast2);
290992
290972
  inlineNodes.forEach((inlineExpression3) => {
290993
- count2 += 1;
290994
290973
  if (!inlineExpression3.result) {
290995
290974
  return;
290996
290975
  }
290997
- inlineExpression3.identifier = `eval-${count2}`;
290998
290976
  inlineExpression3.children = renderExpression(inlineExpression3, file);
290999
290977
  });
291000
290978
  }
291001
290979
 
291002
290980
  // ../myst-cli/dist/process/notebook.js
291003
290981
  function blockParent(cell3, children) {
291004
- const kind = cell3.cell_type === import_nbtx2.CELL_TYPES.code ? NotebookCell.code : NotebookCell.content;
290982
+ const kind = cell3.cell_type === CELL_TYPES.code ? NotebookCell.code : NotebookCell.content;
291005
290983
  return { type: "block", kind, data: JSON.parse(JSON.stringify(cell3.metadata)), children };
291006
290984
  }
291007
290985
  function replaceAttachmentsTransform(session, mdast2, attachments, file) {
@@ -291018,7 +290996,7 @@ function replaceAttachmentsTransform(session, mdast2, attachments, file) {
291018
290996
  try {
291019
290997
  const attachment = Object.entries(attachments[attachmentKey])[0];
291020
290998
  const mimeType = attachment[0];
291021
- const attachmentVal = (0, import_nbtx2.ensureString)(attachment[1]);
290999
+ const attachmentVal = ensureString(attachment[1]);
291022
291000
  if (!attachmentVal) {
291023
291001
  fileWarn(vfile2, `Unrecognized attachment name in ${file}: ${attachmentKey}`, {
291024
291002
  ruleId: RuleId.notebookAttachmentsResolve
@@ -291058,8 +291036,8 @@ async function processNotebookFull(session, file, content3) {
291058
291036
  const items = await (cells2 === null || cells2 === void 0 ? void 0 : cells2.slice(0, end).reduce(async (P, cell3, index4) => {
291059
291037
  var _a7;
291060
291038
  const acc = await P;
291061
- if (cell3.cell_type === import_nbtx2.CELL_TYPES.markdown) {
291062
- const cellContent = (0, import_nbtx2.ensureString)(cell3.source);
291039
+ if (cell3.cell_type === CELL_TYPES.markdown) {
291040
+ const cellContent = ensureString(cell3.source);
291063
291041
  const omitBlockDivider = index4 === 0 && cellContent.startsWith("---\n");
291064
291042
  const cellMdast = parseMyst(session, cellContent, file, { ignoreFrontmatter: index4 > 0 });
291065
291043
  if (cell3.attachments) {
@@ -291079,20 +291057,20 @@ async function processNotebookFull(session, file, content3) {
291079
291057
  });
291080
291058
  return acc.concat(block5);
291081
291059
  }
291082
- if (cell3.cell_type === import_nbtx2.CELL_TYPES.raw) {
291060
+ if (cell3.cell_type === CELL_TYPES.raw) {
291083
291061
  const raw2 = {
291084
291062
  type: "code",
291085
291063
  lang: "",
291086
- value: (0, import_nbtx2.ensureString)(cell3.source)
291064
+ value: ensureString(cell3.source)
291087
291065
  };
291088
291066
  return acc.concat(blockParent(cell3, [raw2]));
291089
291067
  }
291090
- if (cell3.cell_type === import_nbtx2.CELL_TYPES.code) {
291068
+ if (cell3.cell_type === CELL_TYPES.code) {
291091
291069
  const code7 = {
291092
291070
  type: "code",
291093
291071
  lang: language,
291094
291072
  executable: true,
291095
- value: (0, import_nbtx2.ensureString)(cell3.source)
291073
+ value: ensureString(cell3.source)
291096
291074
  };
291097
291075
  const output2 = {
291098
291076
  type: "output",
@@ -298245,12 +298223,13 @@ function listExplicitFiles(entries2, path44) {
298245
298223
  function patternsToFileEntries(session, entries2, path44, ignore3, file, opts) {
298246
298224
  return entries2.map((entry) => {
298247
298225
  if (isPattern(entry)) {
298248
- const { pattern } = entry;
298226
+ const { pattern, ...leftover } = entry;
298249
298227
  const matches4 = globSync(pattern, { cwd: path44, nodir: true, ...opts }).filter((item) => !ignore3 || !ignore3.includes(item)).sort(comparePaths);
298250
298228
  const newEntries = matches4.map((item) => {
298251
298229
  return {
298252
298230
  file: item,
298253
- implicit: true
298231
+ implicit: true,
298232
+ ...leftover
298254
298233
  };
298255
298234
  });
298256
298235
  if (newEntries.length === 0) {
@@ -298277,15 +298256,16 @@ function pagesFromEntries(session, path44, entries2, pages = [], level = 1, page
298277
298256
  let entryLevel = level;
298278
298257
  if (isFile(entry)) {
298279
298258
  entryLevel = level < 0 ? 0 : level;
298280
- const file = resolveExtension((0, import_node_path19.resolve)(path44, entry.file), (message, errorLevel, note) => {
298259
+ const { file, ...leftover } = entry;
298260
+ const resolvedFile = resolveExtension((0, import_node_path19.resolve)(path44, file), (message, errorLevel, note) => {
298281
298261
  addWarningForFile(session, configFile, message, errorLevel, {
298282
298262
  ruleId: RuleId.tocContentsExist,
298283
298263
  note
298284
298264
  });
298285
298265
  });
298286
- if (file && import_node_fs14.default.existsSync(file) && !isDirectory(file)) {
298287
- const { slug } = fileInfo2(file, pageSlugs, { ...opts, session });
298288
- pages.push({ file, level: entryLevel, slug, implicit: entry.implicit });
298266
+ if (resolvedFile && import_node_fs14.default.existsSync(resolvedFile) && !isDirectory(resolvedFile)) {
298267
+ const { slug } = fileInfo2(resolvedFile, pageSlugs, { ...opts, session });
298268
+ pages.push({ file: resolvedFile, level: entryLevel, slug, ...leftover });
298289
298269
  }
298290
298270
  } else if (isURL(entry)) {
298291
298271
  addWarningForFile(session, configFile, `URLs in table of contents are not yet supported: ${entry.url}`, "warn", {
@@ -300241,7 +300221,7 @@ var import_node_fs24 = __toESM(require("fs"), 1);
300241
300221
  var import_node_path29 = __toESM(require("path"), 1);
300242
300222
 
300243
300223
  // ../myst-cli/dist/spec-version.js
300244
- var SPEC_VERSION = 1;
300224
+ var SPEC_VERSION = 2;
300245
300225
 
300246
300226
  // ../myst-cli/dist/build/site/template.js
300247
300227
  var import_node_fs22 = __toESM(require("fs"), 1);
@@ -300932,6 +300912,7 @@ function validateTemplateStyle(input3, opts) {
300932
300912
  return output2;
300933
300913
  }
300934
300914
  function validateTemplateYml(session, input3, opts) {
300915
+ var _a6;
300935
300916
  const inputObj = validateObject(input3, opts);
300936
300917
  if (inputObj === void 0)
300937
300918
  return void 0;
@@ -301046,7 +301027,7 @@ function validateTemplateYml(session, input3, opts) {
301046
301027
  return validateString(val, incrementOptions(`packages.${ind}`, opts));
301047
301028
  });
301048
301029
  }
301049
- if (defined(value.files)) {
301030
+ if (defined(value.files) && ((_a6 = opts === null || opts === void 0 ? void 0 : opts.validateFiles) !== null && _a6 !== void 0 ? _a6 : true)) {
301050
301031
  output2.files = validateList(value.files, incrementOptions("files", opts), (val, ind) => {
301051
301032
  const fileOpts = incrementOptions(`files.${ind}`, opts);
301052
301033
  const file = validateString(val, fileOpts);
@@ -301100,7 +301081,7 @@ var MystTemplate = class {
301100
301081
  * local path where the downloaded template will be saved.
301101
301082
  */
301102
301083
  constructor(session, opts) {
301103
- var _a6, _b, _c;
301084
+ var _a6, _b, _c, _d2;
301104
301085
  this.session = session;
301105
301086
  const { templatePath, templateUrl } = resolveInputs(this.session, opts || {});
301106
301087
  this.templatePath = templatePath;
@@ -301109,6 +301090,7 @@ var MystTemplate = class {
301109
301090
  this.warningLogFn = (_b = opts === null || opts === void 0 ? void 0 : opts.warningLogFn) !== null && _b !== void 0 ? _b : warningLogger(this.session);
301110
301091
  this.debugLogFn = (_c = opts === null || opts === void 0 ? void 0 : opts.debugLogFn) !== null && _c !== void 0 ? _c : debugLogger(this.session);
301111
301092
  this.kind = opts.kind;
301093
+ this.validateFiles = (_d2 = opts === null || opts === void 0 ? void 0 : opts.validateFiles) !== null && _d2 !== void 0 ? _d2 : true;
301112
301094
  }
301113
301095
  getTemplateYmlPath() {
301114
301096
  return (0, import_node_path25.join)(this.templatePath, TEMPLATE_YML);
@@ -301133,7 +301115,8 @@ var MystTemplate = class {
301133
301115
  };
301134
301116
  const templateYml = validateTemplateYml(this.session, this.getTemplateYml(), {
301135
301117
  ...opts,
301136
- templateDir: this.templatePath
301118
+ templateDir: this.templatePath,
301119
+ validateFiles: this.validateFiles
301137
301120
  });
301138
301121
  if (((_a6 = opts.messages.errors) === null || _a6 === void 0 ? void 0 : _a6.length) || templateYml === void 0) {
301139
301122
  throw new Error(`Cannot use invalid ${TEMPLATE_YML}: ${this.getTemplateYmlPath()}`);
@@ -301267,7 +301250,7 @@ var dist_default2 = template_default;
301267
301250
  var DEFAULT_TEMPLATE = "book-theme";
301268
301251
  var DEFAULT_INSTALL_COMMAND = "npm install";
301269
301252
  async function getSiteTemplate(session, opts) {
301270
- var _a6, _b, _c;
301253
+ var _a6, _b, _c, _d2;
301271
301254
  const cache = castSession(session);
301272
301255
  const state = cache.store.getState();
301273
301256
  if (cache.$siteTemplate)
@@ -301276,7 +301259,7 @@ async function getSiteTemplate(session, opts) {
301276
301259
  const file = (_a6 = selectors_exports.selectCurrentSiteFile(state)) !== null && _a6 !== void 0 ? _a6 : session.configFiles[0];
301277
301260
  const mystTemplate = new dist_default2(session, {
301278
301261
  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,
301262
+ 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
301263
  buildDir: session.buildPath(),
301281
301264
  errorLogFn: (message) => {
301282
301265
  addWarningForFile(session, file, message, "error", {
@@ -301287,7 +301270,8 @@ async function getSiteTemplate(session, opts) {
301287
301270
  addWarningForFile(session, file, message, "warn", {
301288
301271
  ruleId: RuleId.validSiteConfig
301289
301272
  });
301290
- }
301273
+ },
301274
+ validateFiles: (opts === null || opts === void 0 ? void 0 : opts.template) ? false : true
301291
301275
  });
301292
301276
  await mystTemplate.ensureTemplateExistsOnPath();
301293
301277
  cache.$siteTemplate = mystTemplate;
@@ -302046,6 +302030,9 @@ function makePortOption() {
302046
302030
  function makeServerPortOption() {
302047
302031
  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
302032
  }
302033
+ function makeTemplateOption() {
302034
+ return new Option("--template <path-to-template>", "Use this template file, instead of the one specified in the myst.yml manifest").default(void 0);
302035
+ }
302049
302036
  function makeYesOption() {
302050
302037
  return new Option("-y, --yes", "Automatically respond yes to prompts").default(false);
302051
302038
  }
@@ -302082,32 +302069,33 @@ function mystDataFilename(dataUrl) {
302082
302069
  return `myst-${computeHash(dataUrl)}.json`;
302083
302070
  }
302084
302071
  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 {
302072
+ const onError = (note) => {
302073
+ var _a6;
302074
+ fileWarn(vfile2, `Unable to resolve link text from external MyST reference: ${(_a6 = urlSource !== null && urlSource !== void 0 ? urlSource : dataUrl) !== null && _a6 !== void 0 ? _a6 : ""}`, {
302075
+ ruleId: RuleId.mystLinkValid,
302076
+ note
302077
+ });
302078
+ };
302079
+ if (!dataUrl) {
302080
+ return onError("Data source URL unavailable");
302081
+ }
302082
+ const filename = mystDataFilename(dataUrl);
302083
+ const cacheData = loadFromCache(session, filename, { maxAge: XREF_MAX_AGE });
302084
+ if (cacheData) {
302085
+ return JSON.parse(cacheData);
302086
+ }
302087
+ let data;
302088
+ try {
302089
+ const resp = await session.fetch(dataUrl);
302090
+ if (!resp.ok) {
302091
+ return onError("Could not fetch data from URL");
302101
302092
  }
302102
- note = "Could not load data from external project";
302103
- } else {
302104
- note = "Data source URL unavailable";
302093
+ data = await resp.json();
302094
+ } catch {
302095
+ return onError("Could not load fetched data");
302105
302096
  }
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;
302097
+ writeToCache(session, filename, JSON.stringify(data));
302098
+ return data;
302111
302099
  }
302112
302100
  async function fetchMystLinkData(session, node3, vfile2) {
302113
302101
  return fetchMystData(session, node3.dataUrl, node3.urlSource, vfile2);
@@ -303072,7 +303060,10 @@ async function checkLinksTransform(session, file, mdast2) {
303072
303060
  const toc = tic();
303073
303061
  session.log.info(`\u{1F517} Checking ${plural("%s link(s)", linkNodes)} in ${file}`);
303074
303062
  const linkResults = await Promise.all(linkNodes.map(async (link4) => limitOutgoingConnections(async () => {
303075
- const { position: position6, url } = link4;
303063
+ const { position: position6, url, type: type2 } = link4;
303064
+ if (type2 === "card" && !url) {
303065
+ return "";
303066
+ }
303076
303067
  const check2 = await checkLink(session, url);
303077
303068
  if (check2.ok || check2.skipped)
303078
303069
  return url;
@@ -303424,9 +303415,8 @@ function stripAnsi(string2) {
303424
303415
  }
303425
303416
 
303426
303417
  // ../myst-cli/dist/transforms/outputs.js
303427
- var import_nbtx3 = __toESM(require_cjs2(), 1);
303428
303418
  function getFilename(hash, contentType) {
303429
- return `${hash}${(0, import_nbtx3.extFromMimeType)(contentType)}`;
303419
+ return `${hash}${extFromMimeType(contentType)}`;
303430
303420
  }
303431
303421
  function getWriteDestination(hash, contentType, writeFolder) {
303432
303422
  return (0, import_node_path36.join)(writeFolder, getFilename(hash, contentType));
@@ -303437,7 +303427,7 @@ async function transformOutputsToCache(session, mdast2, kind, opts) {
303437
303427
  return;
303438
303428
  const cache = castSession(session);
303439
303429
  await Promise.all(outputs.filter((output2) => output2.visibility !== "remove").map(async (output2) => {
303440
- output2.data = await (0, import_nbtx3.minifyCellOutput)(output2.data, cache.$outputs, {
303430
+ output2.data = await minifyCellOutput(output2.data, cache.$outputs, {
303441
303431
  computeHash,
303442
303432
  maxCharacters: opts === null || opts === void 0 ? void 0 : opts.minifyMaxCharacters
303443
303433
  });
@@ -303466,7 +303456,7 @@ function transformFilterOutputStreams(mdast2, vfile2, { output_stdout: stdout =
303466
303456
  if (doWarn || doError) {
303467
303457
  (doError ? fileError : fileWarn)(vfile2, doRemove ? "Removing stderr from outputs" : "Output contains stderr", {
303468
303458
  node: output2,
303469
- note: (0, import_nbtx3.ensureString)(data.text)
303459
+ note: ensureString(data.text)
303470
303460
  });
303471
303461
  }
303472
303462
  return !doRemove;
@@ -303478,7 +303468,7 @@ function transformFilterOutputStreams(mdast2, vfile2, { output_stdout: stdout =
303478
303468
  if (doWarn || doError) {
303479
303469
  (doError ? fileError : fileWarn)(vfile2, doRemove ? "Removing stdout from outputs" : "Output contains stdout", {
303480
303470
  node: output2,
303481
- note: (0, import_nbtx3.ensureString)(data.text)
303471
+ note: ensureString(data.text)
303482
303472
  });
303483
303473
  }
303484
303474
  return !doRemove;
@@ -303532,7 +303522,7 @@ function transformOutputsToFile(session, mdast2, writeFolder, opts) {
303532
303522
  const outputs = selectAll("output", mdast2);
303533
303523
  const cache = castSession(session);
303534
303524
  outputs.forEach((node3) => {
303535
- (0, import_nbtx3.walkOutputs)(node3.data, (obj) => {
303525
+ walkOutputs(node3.data, (obj) => {
303536
303526
  const { hash } = obj;
303537
303527
  if (!hash || !cache.$outputs[hash])
303538
303528
  return void 0;
@@ -303573,7 +303563,7 @@ function reduceOutputs(session, mdast2, file, writeFolder, opts) {
303573
303563
  const selectedOutputs = [];
303574
303564
  node3.data.forEach((output2) => {
303575
303565
  let selectedOutput;
303576
- (0, import_nbtx3.walkOutputs)([output2], (obj) => {
303566
+ walkOutputs([output2], (obj) => {
303577
303567
  const { output_type, content_type, hash } = obj;
303578
303568
  if (!hash)
303579
303569
  return void 0;
@@ -304521,6 +304511,18 @@ async function transformMdast(session, opts) {
304521
304511
  await includeFilesTransform(session, file, mdast2, frontmatter, vfile2);
304522
304512
  rawDirectiveTransform(mdast2, vfile2);
304523
304513
  liftCodeMetadataToBlock(session, vfile2, mdast2);
304514
+ if (execute && !frontmatter.skip_execution) {
304515
+ const cachePath2 = import_node_path39.default.join(session.buildPath(), "execute");
304516
+ await kernelExecutionTransform(mdast2, vfile2, {
304517
+ basePath: session.sourcePath(),
304518
+ cache: new LocalDiskCache(cachePath2),
304519
+ sessionFactory: () => session.jupyterSessionManager(),
304520
+ frontmatter,
304521
+ ignoreCache: false,
304522
+ errorIsFatal: false,
304523
+ log: session.log
304524
+ });
304525
+ }
304524
304526
  const pipe = unified().use(reconstructHtmlPlugin).use(htmlPlugin, { htmlHandlers }).use(basicTransformationsPlugin, {
304525
304527
  parser: (content3) => parseMyst(session, content3, file),
304526
304528
  firstDepth: (titleDepth !== null && titleDepth !== void 0 ? titleDepth : 1) + (frontmatter.content_includes_title ? 0 : 1)
@@ -304542,18 +304544,6 @@ async function transformMdast(session, opts) {
304542
304544
  rendererFiles.push(...localFiles);
304543
304545
  }
304544
304546
  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
304547
  transformRenderInlineExpressions(mdast2, vfile2);
304558
304548
  await transformOutputsToCache(session, mdast2, kind, { minifyMaxCharacters });
304559
304549
  transformFilterOutputStreams(mdast2, vfile2, frontmatter.settings);
@@ -307481,7 +307471,8 @@ var hrefOnlyReplacements2 = {
307481
307471
  "[": "\\[",
307482
307472
  "]": "\\]",
307483
307473
  "^": "\\^",
307484
- "@": "\\@"
307474
+ "@": "\\@",
307475
+ ";": "\\;"
307485
307476
  };
307486
307477
  var textOnlyReplacements3 = {
307487
307478
  ...hrefOnlyReplacements2,
@@ -307776,8 +307767,10 @@ var typstMacros = {
307776
307767
  gets: "arrow.l",
307777
307768
  rightharpoonup: "harpoon.rt",
307778
307769
  rightharpoondown: "harpoon.rb",
307770
+ rightleftharpoons: "harpoons.rtlb",
307779
307771
  leftharpoonup: "harpoon.lt",
307780
307772
  leftharpoondown: "harpoon.lb",
307773
+ leftrightharpoons: "harpoons.ltrb",
307781
307774
  infin: "infinity",
307782
307775
  // This is a mathjax only thing, https://docs.mathjax.org/en/v2.7-latest/tex.html#i
307783
307776
  infty: "infinity",
@@ -310091,6 +310084,7 @@ function defaultWordRenderer(session, data, doc, opts, staticPath, vfile2) {
310091
310084
  serializer.render(createReferenceTitle());
310092
310085
  const referencesRoot = htmlTransform({ type: "root", children: referencesDocStates });
310093
310086
  serializer.renderChildren(referencesRoot);
310087
+ serializer.closeBlock();
310094
310088
  }
310095
310089
  selectAll("footnoteDefinition", mdast2).forEach((footnote2) => {
310096
310090
  serializer.render(footnote2);
@@ -318379,7 +318373,7 @@ async function startServer(session, opts) {
318379
318373
  await session.reload();
318380
318374
  warnOnHostEnvironmentVariable(session, opts);
318381
318375
  const mystTemplate = await getSiteTemplate(session, opts);
318382
- if (!opts.headless)
318376
+ if (!opts.headless && !opts.template)
318383
318377
  await installSiteTemplate(session, mystTemplate);
318384
318378
  await buildSite(session, opts);
318385
318379
  const server = await startContentServer(session, opts);
@@ -318489,7 +318483,7 @@ function rewriteAssetsFolder(directory, baseurl) {
318489
318483
  if (![".html", ".js", ".json"].includes(import_node_path57.default.extname(file)))
318490
318484
  return;
318491
318485
  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"`);
318486
+ const modified = data.replace(new RegExp(`\\/${ASSETS_FOLDER}\\/`, "g"), `${baseurl || ""}/build/`);
318493
318487
  import_fs_extra.default.writeFileSync(file, modified);
318494
318488
  });
318495
318489
  }
@@ -319247,10 +319241,10 @@ var source_default4 = chalk4;
319247
319241
  var import_figures3 = __toESM(require_figures(), 1);
319248
319242
  var import_cli_cursor = __toESM(require_cli_cursor(), 1);
319249
319243
  var import_run_async2 = __toESM(require_run_async(), 1);
319250
- var import_rxjs3 = __toESM(require_cjs4(), 1);
319244
+ var import_rxjs3 = __toESM(require_cjs3(), 1);
319251
319245
 
319252
319246
  // ../../node_modules/inquirer/lib/utils/events.js
319253
- var import_rxjs = __toESM(require_cjs4(), 1);
319247
+ var import_rxjs = __toESM(require_cjs3(), 1);
319254
319248
  function normalizeKeypressEvents(value, key2) {
319255
319249
  return { value, key: key2 || {} };
319256
319250
  }
@@ -319364,7 +319358,7 @@ function incrementListIndex(current2, dir, opt) {
319364
319358
  var import_defaults = __toESM(require_defaults(), 1);
319365
319359
  var import_clone = __toESM(require_clone2(), 1);
319366
319360
  var import_run_async = __toESM(require_run_async(), 1);
319367
- var import_rxjs2 = __toESM(require_cjs4(), 1);
319361
+ var import_rxjs2 = __toESM(require_cjs3(), 1);
319368
319362
 
319369
319363
  // ../../node_modules/inquirer/lib/objects/choices.js
319370
319364
  var import_node_assert2 = __toESM(require("assert"), 1);
@@ -319909,7 +319903,7 @@ function listRender(choices, pointer) {
319909
319903
  }
319910
319904
 
319911
319905
  // ../../node_modules/inquirer/lib/prompts/input.js
319912
- var import_rxjs4 = __toESM(require_cjs4(), 1);
319906
+ var import_rxjs4 = __toESM(require_cjs3(), 1);
319913
319907
  var InputPrompt = class extends Prompt {
319914
319908
  /**
319915
319909
  * Start the Inquiry session
@@ -319997,7 +319991,7 @@ var NumberPrompt = class extends InputPrompt {
319997
319991
  };
319998
319992
 
319999
319993
  // ../../node_modules/inquirer/lib/prompts/confirm.js
320000
- var import_rxjs5 = __toESM(require_cjs4(), 1);
319994
+ var import_rxjs5 = __toESM(require_cjs3(), 1);
320001
319995
  var ConfirmPrompt = class extends Prompt {
320002
319996
  constructor(questions, rl, answers) {
320003
319997
  super(questions, rl, answers);
@@ -320069,7 +320063,7 @@ var ConfirmPrompt = class extends Prompt {
320069
320063
  };
320070
320064
 
320071
320065
  // ../../node_modules/inquirer/lib/prompts/rawlist.js
320072
- var import_rxjs6 = __toESM(require_cjs4(), 1);
320066
+ var import_rxjs6 = __toESM(require_cjs3(), 1);
320073
320067
  var RawListPrompt = class extends Prompt {
320074
320068
  constructor(questions, rl, answers) {
320075
320069
  super(questions, rl, answers);
@@ -320225,7 +320219,7 @@ function renderChoices(choices, pointer) {
320225
320219
  }
320226
320220
 
320227
320221
  // ../../node_modules/inquirer/lib/prompts/expand.js
320228
- var import_rxjs7 = __toESM(require_cjs4(), 1);
320222
+ var import_rxjs7 = __toESM(require_cjs3(), 1);
320229
320223
  var ExpandPrompt = class extends Prompt {
320230
320224
  constructor(questions, rl, answers) {
320231
320225
  super(questions, rl, answers);
@@ -320421,7 +320415,7 @@ function renderChoices2(choices, pointer) {
320421
320415
  // ../../node_modules/inquirer/lib/prompts/checkbox.js
320422
320416
  var import_cli_cursor2 = __toESM(require_cli_cursor(), 1);
320423
320417
  var import_figures4 = __toESM(require_figures(), 1);
320424
- var import_rxjs8 = __toESM(require_cjs4(), 1);
320418
+ var import_rxjs8 = __toESM(require_cjs3(), 1);
320425
320419
  var CheckboxPrompt = class extends Prompt {
320426
320420
  constructor(questions, rl, answers) {
320427
320421
  super(questions, rl, answers);
@@ -320598,7 +320592,7 @@ function getCheckbox(checked2) {
320598
320592
  }
320599
320593
 
320600
320594
  // ../../node_modules/inquirer/lib/prompts/password.js
320601
- var import_rxjs9 = __toESM(require_cjs4(), 1);
320595
+ var import_rxjs9 = __toESM(require_cjs3(), 1);
320602
320596
  function mask(input3, maskChar) {
320603
320597
  input3 = String(input3);
320604
320598
  maskChar = typeof maskChar === "string" ? maskChar : "*";
@@ -320681,7 +320675,7 @@ var PasswordPrompt = class extends Prompt {
320681
320675
 
320682
320676
  // ../../node_modules/inquirer/lib/prompts/editor.js
320683
320677
  var import_external_editor = __toESM(require_main(), 1);
320684
- var import_rxjs10 = __toESM(require_cjs4(), 1);
320678
+ var import_rxjs10 = __toESM(require_cjs3(), 1);
320685
320679
  var EditorPrompt = class extends Prompt {
320686
320680
  /**
320687
320681
  * Start the Inquiry session
@@ -320886,11 +320880,11 @@ var BottomBar = class extends UI {
320886
320880
  var import_isPlainObject = __toESM(require_isPlainObject(), 1);
320887
320881
  var import_get = __toESM(require_get2(), 1);
320888
320882
  var import_set = __toESM(require_set2(), 1);
320889
- var import_rxjs12 = __toESM(require_cjs4(), 1);
320883
+ var import_rxjs12 = __toESM(require_cjs3(), 1);
320890
320884
  var import_run_async4 = __toESM(require_run_async(), 1);
320891
320885
 
320892
320886
  // ../../node_modules/inquirer/lib/utils/utils.js
320893
- var import_rxjs11 = __toESM(require_cjs4(), 1);
320887
+ var import_rxjs11 = __toESM(require_cjs3(), 1);
320894
320888
  var import_run_async3 = __toESM(require_run_async(), 1);
320895
320889
  var fetchAsyncQuestionProperty = function(question, prop, answers) {
320896
320890
  if (typeof question[prop] !== "function") {
@@ -321216,7 +321210,7 @@ function makeCleanCommand() {
321216
321210
 
321217
321211
  // ../myst-cli/dist/cli/start.js
321218
321212
  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());
321213
+ 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
321214
  return command;
321221
321215
  }
321222
321216
 
@@ -321323,8 +321317,9 @@ on:
321323
321317
  # Runs on pushes targeting the default branch
321324
321318
  branches: [${defaultBranch}]
321325
321319
  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: ''"}\`
321320
+ # \`BASE_URL\` determines, relative to the root of the domain, the URL that your site is served from.
321321
+ # E.g., if your site lives at \`https://mydomain.org/myproject\`, set \`BASE_URL=/myproject\`.
321322
+ # If, instead, your site lives at the root of the domain, at \`https://mydomain.org\`, set \`BASE_URL=''\`.
321328
321323
  ${isGithubIO ? `BASE_URL: '' # Not required for '${username}.github.io' domain. Other repos will need to set this!` : "BASE_URL: /${{ github.event.repository.name }}"}
321329
321324
 
321330
321325
  # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
@@ -325956,15 +325951,15 @@ async function upgradeContent(documentLines) {
325956
325951
  }
325957
325952
  return didUpgrade ? documentLines : void 0;
325958
325953
  }
325959
- var admonitionPattern = /^(attention|caution|danger|error|important|hint|note|seealso|tip|warning|\.callout-note|\.callout-warning|\.callout-important|\.callout-tip|\.callout-caution)$/;
325954
+ var admonitionPattern = /^(attention|caution|danger|error|important|hint|note|seealso|tip|warning)$/;
325960
325955
  async function upgradeNotes(documentLines) {
325961
325956
  const data = documentLines.join("\n");
325962
325957
  const mdast2 = mystParse(data);
325963
- const caseInsenstivePattern = new RegExp(admonitionPattern.source, admonitionPattern.flags + "i");
325958
+ const caseInsensitivePattern = new RegExp(admonitionPattern.source, admonitionPattern.flags + "i");
325964
325959
  const directiveNodes = selectAll("mystDirective", mdast2);
325965
325960
  const mixedCaseAdmonitions = directiveNodes.filter((item) => {
325966
325961
  const name3 = item.name;
325967
- return name3.match(caseInsenstivePattern) && !name3.match(admonitionPattern);
325962
+ return name3.match(caseInsensitivePattern) && !name3.match(admonitionPattern);
325968
325963
  });
325969
325964
  mixedCaseAdmonitions.forEach((node3) => {
325970
325965
  const start = node3.position.start.line;