@rodyssey/cli 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1776 -1742
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -2071,7 +2071,7 @@ var {
|
|
|
2071
2071
|
// package.json
|
|
2072
2072
|
var package_default = {
|
|
2073
2073
|
name: "@rodyssey/cli",
|
|
2074
|
-
version: "0.
|
|
2074
|
+
version: "0.6.0",
|
|
2075
2075
|
description: "Scaffold new projects from airconcepts templates",
|
|
2076
2076
|
repository: {
|
|
2077
2077
|
type: "git",
|
|
@@ -2474,7 +2474,7 @@ Server view:`);
|
|
|
2474
2474
|
|
|
2475
2475
|
// src/create.ts
|
|
2476
2476
|
import { execSync } from "node:child_process";
|
|
2477
|
-
import { existsSync as
|
|
2477
|
+
import { existsSync as existsSync5, rmSync, writeFileSync as writeFileSync5 } from "node:fs";
|
|
2478
2478
|
import path2 from "node:path";
|
|
2479
2479
|
|
|
2480
2480
|
// src/utils.ts
|
|
@@ -2548,1824 +2548,1858 @@ function loadEnv(envName, options = {}) {
|
|
|
2548
2548
|
}
|
|
2549
2549
|
}
|
|
2550
2550
|
|
|
2551
|
-
// src/
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2551
|
+
// src/config-file.ts
|
|
2552
|
+
import { existsSync as existsSync4, readFileSync as readFileSync4, writeFileSync as writeFileSync4 } from "node:fs";
|
|
2553
|
+
import { resolve as resolve2 } from "node:path";
|
|
2554
|
+
|
|
2555
|
+
// src/update-webapp-config.ts
|
|
2556
|
+
import { existsSync as existsSync3, readFileSync as readFileSync3, writeFileSync as writeFileSync3 } from "node:fs";
|
|
2557
|
+
import { resolve } from "node:path";
|
|
2558
|
+
var CONFIG_URLS = {
|
|
2559
|
+
local: "http://localhost:5176/api/webapps/config",
|
|
2560
|
+
development: "https://development-cms.rodyssey.ai/api/webapps/config",
|
|
2561
|
+
staging: "https://staging-cms.rodyssey.ai/api/webapps/config",
|
|
2562
|
+
production: "https://cms.rodyssey.ai/api/webapps/config"
|
|
2557
2563
|
};
|
|
2558
|
-
function
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2564
|
+
function parseJsonOption(value, optionName) {
|
|
2565
|
+
const maybePath = resolve(process.cwd(), value);
|
|
2566
|
+
const raw = existsSync3(maybePath) ? readFileSync3(maybePath, "utf-8") : value;
|
|
2567
|
+
try {
|
|
2568
|
+
const parsed = JSON.parse(raw);
|
|
2569
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
2570
|
+
throw new Error("value must be a JSON object");
|
|
2571
|
+
}
|
|
2572
|
+
return parsed;
|
|
2573
|
+
} catch (error) {
|
|
2574
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
2575
|
+
throw new Error(`Invalid ${optionName}: ${message}`);
|
|
2576
|
+
}
|
|
2563
2577
|
}
|
|
2564
|
-
function
|
|
2565
|
-
if (
|
|
2578
|
+
function coerceMaybeNull(value) {
|
|
2579
|
+
if (value === undefined)
|
|
2566
2580
|
return;
|
|
2567
|
-
|
|
2568
|
-
|
|
2581
|
+
if (value === "null")
|
|
2582
|
+
return null;
|
|
2583
|
+
return value;
|
|
2569
2584
|
}
|
|
2570
|
-
function
|
|
2571
|
-
const
|
|
2572
|
-
|
|
2585
|
+
function resolveConfigUrl(options, required = true) {
|
|
2586
|
+
const configUrl = options.url || process.env.WEBAPP_CONFIG_URL || CONFIG_URLS[options.env];
|
|
2587
|
+
if (!configUrl) {
|
|
2588
|
+
if (!required)
|
|
2589
|
+
return;
|
|
2590
|
+
console.error("❌ Error: no webapp config endpoint configured.");
|
|
2591
|
+
console.error(`\uD83D\uDCA1 Use one of these environments: ${Object.keys(CONFIG_URLS).join(", ")}, pass --url, or set WEBAPP_CONFIG_URL in your .env file.`);
|
|
2592
|
+
process.exit(1);
|
|
2593
|
+
}
|
|
2594
|
+
const url = new URL(configUrl);
|
|
2595
|
+
if (!options.host && !options.port) {
|
|
2596
|
+
return url.toString().replace(/\/$/, "");
|
|
2597
|
+
}
|
|
2598
|
+
if (options.host)
|
|
2599
|
+
url.hostname = options.host;
|
|
2600
|
+
if (options.port)
|
|
2601
|
+
url.port = String(options.port);
|
|
2602
|
+
return url.toString().replace(/\/$/, "");
|
|
2573
2603
|
}
|
|
2574
|
-
function
|
|
2575
|
-
const
|
|
2576
|
-
|
|
2604
|
+
function buildDetailsPayload(options) {
|
|
2605
|
+
const payload = options.details ? parseJsonOption(options.details, "--details") : {};
|
|
2606
|
+
const title = coerceMaybeNull(options.title);
|
|
2607
|
+
const description = coerceMaybeNull(options.description);
|
|
2608
|
+
const coverImg = coerceMaybeNull(options.coverImg);
|
|
2609
|
+
if (title !== undefined)
|
|
2610
|
+
payload.title = title;
|
|
2611
|
+
if (description !== undefined)
|
|
2612
|
+
payload.description = description;
|
|
2613
|
+
if (coverImg !== undefined)
|
|
2614
|
+
payload.coverImg = coverImg;
|
|
2615
|
+
if (options.localization !== undefined) {
|
|
2616
|
+
payload.localization = options.localization === "null" ? null : parseJsonOption(options.localization, "--localization");
|
|
2617
|
+
}
|
|
2618
|
+
return payload;
|
|
2577
2619
|
}
|
|
2578
|
-
function
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2620
|
+
function resolveWebappId(webappId) {
|
|
2621
|
+
const resolved = webappId || process.env.WEBAPP_ID;
|
|
2622
|
+
if (!resolved) {
|
|
2623
|
+
console.error("❌ Error: WEBAPP_ID is not set. Pass --webapp-id or set it in your .env file.");
|
|
2624
|
+
process.exit(1);
|
|
2625
|
+
}
|
|
2626
|
+
return resolved;
|
|
2583
2627
|
}
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2628
|
+
function ensureDeployToken(env) {
|
|
2629
|
+
if (process.env.DEPLOY_TOKEN)
|
|
2630
|
+
return;
|
|
2631
|
+
console.error("❌ Error: DEPLOY_TOKEN is not set in environment variables.");
|
|
2632
|
+
console.info(`\uD83D\uDCA1 Please check your .env or .env.${env} file.`);
|
|
2633
|
+
process.exit(1);
|
|
2634
|
+
}
|
|
2635
|
+
function getConfigUrl(options, required = true) {
|
|
2636
|
+
return resolveConfigUrl(options, required);
|
|
2637
|
+
}
|
|
2638
|
+
async function patchWebappConfig(options) {
|
|
2639
|
+
loadEnv(options.env);
|
|
2640
|
+
const webappId = resolveWebappId(options.webappId);
|
|
2641
|
+
const CONFIG_URL = getConfigUrl(options, false);
|
|
2642
|
+
if (!CONFIG_URL) {
|
|
2643
|
+
throw new Error("No webapp config endpoint configured.");
|
|
2644
|
+
}
|
|
2645
|
+
ensureDeployToken(options.env);
|
|
2646
|
+
const response = await fetch(CONFIG_URL, {
|
|
2647
|
+
method: "PATCH",
|
|
2590
2648
|
headers: {
|
|
2591
|
-
|
|
2592
|
-
Authorization: `Bearer ${token}`,
|
|
2649
|
+
Authorization: `Bearer ${process.env.DEPLOY_TOKEN}`,
|
|
2593
2650
|
"Content-Type": "application/json"
|
|
2594
2651
|
},
|
|
2595
|
-
body: JSON.stringify({
|
|
2652
|
+
body: JSON.stringify({ webappId, details: options.details })
|
|
2596
2653
|
});
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
throw new Error(`
|
|
2600
|
-
${
|
|
2654
|
+
if (!response.ok) {
|
|
2655
|
+
const errorText = await response.text();
|
|
2656
|
+
throw new Error(`Config update failed: ${response.status} ${response.statusText}
|
|
2657
|
+
${errorText}`);
|
|
2601
2658
|
}
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2659
|
+
return await response.json().catch(() => {
|
|
2660
|
+
return;
|
|
2661
|
+
});
|
|
2662
|
+
}
|
|
2663
|
+
async function fetchWebappConfig(options) {
|
|
2664
|
+
loadEnv(options.env);
|
|
2665
|
+
const webappId = resolveWebappId(options.webappId);
|
|
2666
|
+
const CONFIG_URL = getConfigUrl(options, false);
|
|
2667
|
+
if (!CONFIG_URL) {
|
|
2668
|
+
throw new Error("No webapp config endpoint configured.");
|
|
2606
2669
|
}
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2670
|
+
ensureDeployToken(options.env);
|
|
2671
|
+
const url = new URL(CONFIG_URL);
|
|
2672
|
+
url.searchParams.set("webappId", webappId);
|
|
2673
|
+
const response = await fetch(url, {
|
|
2674
|
+
method: "GET",
|
|
2675
|
+
headers: {
|
|
2676
|
+
Authorization: `Bearer ${process.env.DEPLOY_TOKEN}`,
|
|
2677
|
+
Accept: "application/json"
|
|
2678
|
+
}
|
|
2679
|
+
});
|
|
2680
|
+
if (!response.ok) {
|
|
2681
|
+
const errorText = await response.text();
|
|
2682
|
+
throw new Error(`Config fetch failed: ${response.status} ${response.statusText}
|
|
2683
|
+
${errorText}`);
|
|
2611
2684
|
}
|
|
2612
|
-
return
|
|
2613
|
-
webappId,
|
|
2614
|
-
deployToken
|
|
2615
|
-
};
|
|
2685
|
+
return await response.json();
|
|
2616
2686
|
}
|
|
2617
|
-
async function
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2687
|
+
async function getWebappConfig(options) {
|
|
2688
|
+
loadEnv(options.env);
|
|
2689
|
+
const webappId = resolveWebappId(options.webappId);
|
|
2690
|
+
const CONFIG_URL = getConfigUrl(options);
|
|
2691
|
+
if (!CONFIG_URL)
|
|
2692
|
+
return;
|
|
2693
|
+
const url = new URL(CONFIG_URL);
|
|
2694
|
+
url.searchParams.set("webappId", webappId);
|
|
2695
|
+
console.log(`⚙️ Pulling webapp config for [${options.env}] environment...`);
|
|
2696
|
+
console.log(`\uD83D\uDCCD Config URL: ${url.toString()}`);
|
|
2697
|
+
console.log(`\uD83D\uDCCD Webapp ID: ${webappId}
|
|
2622
2698
|
`);
|
|
2699
|
+
const config = await fetchWebappConfig(options);
|
|
2700
|
+
const output = JSON.stringify(config, null, 2);
|
|
2701
|
+
if (options.out) {
|
|
2702
|
+
writeFileSync3(options.out, `${output}
|
|
2703
|
+
`, "utf-8");
|
|
2704
|
+
console.log(`✅ Webapp config written to ${options.out}`);
|
|
2705
|
+
return;
|
|
2706
|
+
}
|
|
2707
|
+
console.log(output);
|
|
2708
|
+
}
|
|
2709
|
+
async function updateWebappConfig(options) {
|
|
2710
|
+
loadEnv(options.env);
|
|
2711
|
+
const webappId = resolveWebappId(options.webappId);
|
|
2712
|
+
const details = buildDetailsPayload(options);
|
|
2713
|
+
if (Object.keys(details).length === 0) {
|
|
2714
|
+
console.error("❌ Error: no detail fields provided. Use --title, --description, --cover-img, --localization, or --details.");
|
|
2623
2715
|
process.exit(1);
|
|
2624
2716
|
}
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2717
|
+
const payload = { webappId, details };
|
|
2718
|
+
const CONFIG_URL = getConfigUrl(options, !options.dryRun);
|
|
2719
|
+
if (!options.dryRun)
|
|
2720
|
+
ensureDeployToken(options.env);
|
|
2721
|
+
console.log(`⚙️ Updating webapp config for [${options.env}] environment...`);
|
|
2722
|
+
if (CONFIG_URL) {
|
|
2723
|
+
console.log(`\uD83D\uDCCD Config URL: ${CONFIG_URL}`);
|
|
2628
2724
|
}
|
|
2629
|
-
console.log(
|
|
2630
|
-
⏳ Cloning template "${templateName}"...
|
|
2631
|
-
`);
|
|
2632
|
-
try {
|
|
2633
|
-
execSync(`git clone --depth 1 ${repoUrl} ${projectName}`, {
|
|
2634
|
-
stdio: "inherit",
|
|
2635
|
-
cwd: process.cwd()
|
|
2636
|
-
});
|
|
2637
|
-
} catch {
|
|
2638
|
-
console.error(`
|
|
2639
|
-
✖ Failed to clone template. Make sure you have SSH access to the repo.
|
|
2725
|
+
console.log(`\uD83D\uDCCD Webapp ID: ${webappId}
|
|
2640
2726
|
`);
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
rmSync(gitDir, { recursive: true, force: true });
|
|
2727
|
+
if (options.dryRun) {
|
|
2728
|
+
console.log("\uD83E\uDDEA Dry run payload:");
|
|
2729
|
+
console.log(JSON.stringify(payload, null, 2));
|
|
2730
|
+
return;
|
|
2646
2731
|
}
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2732
|
+
if (!CONFIG_URL)
|
|
2733
|
+
return;
|
|
2734
|
+
const result = await patchWebappConfig({
|
|
2735
|
+
env: options.env,
|
|
2736
|
+
details,
|
|
2737
|
+
webappId,
|
|
2738
|
+
url: options.url,
|
|
2739
|
+
host: options.host,
|
|
2740
|
+
port: options.port
|
|
2741
|
+
});
|
|
2742
|
+
console.log("✅ Webapp config updated");
|
|
2743
|
+
if (result !== undefined) {
|
|
2744
|
+
console.log(`
|
|
2745
|
+
\uD83D\uDCCB Update result:`, result);
|
|
2652
2746
|
}
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2747
|
+
}
|
|
2748
|
+
|
|
2749
|
+
// src/cli-ui.ts
|
|
2750
|
+
function isPlainObject(value) {
|
|
2751
|
+
return !!value && typeof value === "object" && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
|
|
2752
|
+
}
|
|
2753
|
+
function compact(value) {
|
|
2754
|
+
return JSON.stringify(value);
|
|
2755
|
+
}
|
|
2756
|
+
function pretty(value) {
|
|
2757
|
+
return JSON.stringify(value, null, 2);
|
|
2758
|
+
}
|
|
2759
|
+
function useColor() {
|
|
2760
|
+
return !!process.stdout.isTTY && !process.env.NO_COLOR;
|
|
2761
|
+
}
|
|
2762
|
+
function paint(code, text) {
|
|
2763
|
+
return useColor() ? `\x1B[${code}m${text}\x1B[0m` : text;
|
|
2764
|
+
}
|
|
2765
|
+
var green = (s) => paint("32", s);
|
|
2766
|
+
var red = (s) => paint("31", s);
|
|
2767
|
+
var yellow = (s) => paint("33", s);
|
|
2768
|
+
var dim = (s) => paint("2", s);
|
|
2769
|
+
var strike = (s) => paint("9", s);
|
|
2770
|
+
async function prompt(question) {
|
|
2771
|
+
const readline = await import("node:readline");
|
|
2772
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
2773
|
+
return new Promise((resolveAnswer) => {
|
|
2774
|
+
rl.question(question, (answer) => {
|
|
2775
|
+
rl.close();
|
|
2776
|
+
resolveAnswer(answer);
|
|
2777
|
+
});
|
|
2778
|
+
});
|
|
2779
|
+
}
|
|
2780
|
+
function isExplicitYes(answer) {
|
|
2781
|
+
const trimmed = answer.trim().toLowerCase();
|
|
2782
|
+
return trimmed === "y" || trimmed === "yes";
|
|
2783
|
+
}
|
|
2784
|
+
function pathToDot(path2) {
|
|
2785
|
+
return path2.replace(/^\//, "").replaceAll("/", ".");
|
|
2786
|
+
}
|
|
2787
|
+
function deepEqual(a, b) {
|
|
2788
|
+
if (a === b)
|
|
2789
|
+
return true;
|
|
2790
|
+
if (typeof a !== typeof b)
|
|
2791
|
+
return false;
|
|
2792
|
+
if (a === null || b === null)
|
|
2793
|
+
return false;
|
|
2794
|
+
if (Array.isArray(a) || Array.isArray(b)) {
|
|
2795
|
+
if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length)
|
|
2796
|
+
return false;
|
|
2797
|
+
return a.every((v, i) => deepEqual(v, b[i]));
|
|
2660
2798
|
}
|
|
2661
|
-
|
|
2662
|
-
|
|
2799
|
+
if (typeof a === "object" && typeof b === "object") {
|
|
2800
|
+
const ak = Object.keys(a);
|
|
2801
|
+
const bk = Object.keys(b);
|
|
2802
|
+
if (ak.length !== bk.length)
|
|
2803
|
+
return false;
|
|
2804
|
+
return ak.every((k) => deepEqual(a[k], b[k]));
|
|
2805
|
+
}
|
|
2806
|
+
return false;
|
|
2807
|
+
}
|
|
2808
|
+
function diffJson(before, after, path2 = "") {
|
|
2809
|
+
if (deepEqual(before, after))
|
|
2810
|
+
return [];
|
|
2811
|
+
if (before === undefined)
|
|
2812
|
+
return [{ path: path2, kind: "add", after }];
|
|
2813
|
+
if (after === undefined)
|
|
2814
|
+
return [{ path: path2, kind: "remove", before }];
|
|
2815
|
+
if (!isPlainObject(before) || !isPlainObject(after)) {
|
|
2816
|
+
return [{ path: path2, kind: "change", before, after }];
|
|
2817
|
+
}
|
|
2818
|
+
const keys = new Set([...Object.keys(before), ...Object.keys(after)]);
|
|
2819
|
+
const out = [];
|
|
2820
|
+
for (const key of keys) {
|
|
2821
|
+
out.push(...diffJson(before[key], after[key], `${path2}/${key}`));
|
|
2822
|
+
}
|
|
2823
|
+
return out;
|
|
2824
|
+
}
|
|
2825
|
+
function deltaLine(d) {
|
|
2826
|
+
const path2 = pathToDot(d.path) || "(root)";
|
|
2827
|
+
if (d.kind === "add")
|
|
2828
|
+
return green(` ${path2}: ${compact(d.after)}`);
|
|
2829
|
+
if (d.kind === "change") {
|
|
2830
|
+
return yellow(` ${path2}: ${strike(compact(d.before))} → ${compact(d.after)}`);
|
|
2831
|
+
}
|
|
2832
|
+
return red(strike(` ${path2}: ${compact(d.before)}`));
|
|
2833
|
+
}
|
|
2834
|
+
function formatObjectDelta(deltas, header) {
|
|
2835
|
+
if (deltas.length === 0)
|
|
2836
|
+
return `${header}
|
|
2837
|
+
${dim(" (no changes)")}`;
|
|
2838
|
+
const adds = deltas.filter((d) => d.kind === "add");
|
|
2839
|
+
const changes = deltas.filter((d) => d.kind === "change");
|
|
2840
|
+
const removes = deltas.filter((d) => d.kind === "remove");
|
|
2841
|
+
const sections = [];
|
|
2842
|
+
if (adds.length)
|
|
2843
|
+
sections.push([green("New"), ...adds.map(deltaLine)].join(`
|
|
2844
|
+
`));
|
|
2845
|
+
if (changes.length)
|
|
2846
|
+
sections.push([yellow("Update"), ...changes.map(deltaLine)].join(`
|
|
2847
|
+
`));
|
|
2848
|
+
if (removes.length)
|
|
2849
|
+
sections.push([red("Delete"), ...removes.map(deltaLine)].join(`
|
|
2850
|
+
`));
|
|
2851
|
+
return `${header}
|
|
2663
2852
|
|
|
2664
|
-
|
|
2853
|
+
${sections.join(`
|
|
2665
2854
|
|
|
2666
|
-
|
|
2667
|
-
bun install
|
|
2668
|
-
bun run dev
|
|
2669
|
-
`);
|
|
2855
|
+
`)}`;
|
|
2670
2856
|
}
|
|
2671
2857
|
|
|
2672
|
-
// src/deploy.ts
|
|
2673
|
-
import { execSync as execSync2 } from "node:child_process";
|
|
2674
|
-
import { existsSync as existsSync7, readFileSync as readFileSync6, readdirSync, statSync, unlinkSync } from "node:fs";
|
|
2675
|
-
import { join as join2 } from "node:path";
|
|
2676
|
-
|
|
2677
|
-
// node_modules/mime/dist/types/other.js
|
|
2678
|
-
var types = {
|
|
2679
|
-
"application/prs.cww": ["cww"],
|
|
2680
|
-
"application/prs.xsf+xml": ["xsf"],
|
|
2681
|
-
"application/vnd.1000minds.decision-model+xml": ["1km"],
|
|
2682
|
-
"application/vnd.3gpp.pic-bw-large": ["plb"],
|
|
2683
|
-
"application/vnd.3gpp.pic-bw-small": ["psb"],
|
|
2684
|
-
"application/vnd.3gpp.pic-bw-var": ["pvb"],
|
|
2685
|
-
"application/vnd.3gpp2.tcap": ["tcap"],
|
|
2686
|
-
"application/vnd.3m.post-it-notes": ["pwn"],
|
|
2687
|
-
"application/vnd.accpac.simply.aso": ["aso"],
|
|
2688
|
-
"application/vnd.accpac.simply.imp": ["imp"],
|
|
2689
|
-
"application/vnd.acucobol": ["acu"],
|
|
2690
|
-
"application/vnd.acucorp": ["atc", "acutc"],
|
|
2691
|
-
"application/vnd.adobe.air-application-installer-package+zip": ["air"],
|
|
2692
|
-
"application/vnd.adobe.formscentral.fcdt": ["fcdt"],
|
|
2693
|
-
"application/vnd.adobe.fxp": ["fxp", "fxpl"],
|
|
2694
|
-
"application/vnd.adobe.xdp+xml": ["xdp"],
|
|
2695
|
-
"application/vnd.adobe.xfdf": ["*xfdf"],
|
|
2696
|
-
"application/vnd.age": ["age"],
|
|
2697
|
-
"application/vnd.ahead.space": ["ahead"],
|
|
2698
|
-
"application/vnd.airzip.filesecure.azf": ["azf"],
|
|
2699
|
-
"application/vnd.airzip.filesecure.azs": ["azs"],
|
|
2700
|
-
"application/vnd.amazon.ebook": ["azw"],
|
|
2701
|
-
"application/vnd.americandynamics.acc": ["acc"],
|
|
2702
|
-
"application/vnd.amiga.ami": ["ami"],
|
|
2703
|
-
"application/vnd.android.package-archive": ["apk"],
|
|
2704
|
-
"application/vnd.anser-web-certificate-issue-initiation": ["cii"],
|
|
2705
|
-
"application/vnd.anser-web-funds-transfer-initiation": ["fti"],
|
|
2706
|
-
"application/vnd.antix.game-component": ["atx"],
|
|
2707
|
-
"application/vnd.apple.installer+xml": ["mpkg"],
|
|
2708
|
-
"application/vnd.apple.keynote": ["key"],
|
|
2709
|
-
"application/vnd.apple.mpegurl": ["m3u8"],
|
|
2710
|
-
"application/vnd.apple.numbers": ["numbers"],
|
|
2711
|
-
"application/vnd.apple.pages": ["pages"],
|
|
2712
|
-
"application/vnd.apple.pkpass": ["pkpass"],
|
|
2713
|
-
"application/vnd.aristanetworks.swi": ["swi"],
|
|
2714
|
-
"application/vnd.astraea-software.iota": ["iota"],
|
|
2715
|
-
"application/vnd.audiograph": ["aep"],
|
|
2716
|
-
"application/vnd.autodesk.fbx": ["fbx"],
|
|
2717
|
-
"application/vnd.balsamiq.bmml+xml": ["bmml"],
|
|
2718
|
-
"application/vnd.blueice.multipass": ["mpm"],
|
|
2719
|
-
"application/vnd.bmi": ["bmi"],
|
|
2720
|
-
"application/vnd.businessobjects": ["rep"],
|
|
2721
|
-
"application/vnd.chemdraw+xml": ["cdxml"],
|
|
2722
|
-
"application/vnd.chipnuts.karaoke-mmd": ["mmd"],
|
|
2723
|
-
"application/vnd.cinderella": ["cdy"],
|
|
2724
|
-
"application/vnd.citationstyles.style+xml": ["csl"],
|
|
2725
|
-
"application/vnd.claymore": ["cla"],
|
|
2726
|
-
"application/vnd.cloanto.rp9": ["rp9"],
|
|
2727
|
-
"application/vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
|
|
2728
|
-
"application/vnd.cluetrust.cartomobile-config": ["c11amc"],
|
|
2729
|
-
"application/vnd.cluetrust.cartomobile-config-pkg": ["c11amz"],
|
|
2730
|
-
"application/vnd.commonspace": ["csp"],
|
|
2731
|
-
"application/vnd.contact.cmsg": ["cdbcmsg"],
|
|
2732
|
-
"application/vnd.cosmocaller": ["cmc"],
|
|
2733
|
-
"application/vnd.crick.clicker": ["clkx"],
|
|
2734
|
-
"application/vnd.crick.clicker.keyboard": ["clkk"],
|
|
2735
|
-
"application/vnd.crick.clicker.palette": ["clkp"],
|
|
2736
|
-
"application/vnd.crick.clicker.template": ["clkt"],
|
|
2737
|
-
"application/vnd.crick.clicker.wordbank": ["clkw"],
|
|
2738
|
-
"application/vnd.criticaltools.wbs+xml": ["wbs"],
|
|
2739
|
-
"application/vnd.ctc-posml": ["pml"],
|
|
2740
|
-
"application/vnd.cups-ppd": ["ppd"],
|
|
2741
|
-
"application/vnd.curl.car": ["car"],
|
|
2742
|
-
"application/vnd.curl.pcurl": ["pcurl"],
|
|
2743
|
-
"application/vnd.dart": ["dart"],
|
|
2744
|
-
"application/vnd.data-vision.rdz": ["rdz"],
|
|
2745
|
-
"application/vnd.dbf": ["dbf"],
|
|
2746
|
-
"application/vnd.dcmp+xml": ["dcmp"],
|
|
2747
|
-
"application/vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
|
|
2748
|
-
"application/vnd.dece.ttml+xml": ["uvt", "uvvt"],
|
|
2749
|
-
"application/vnd.dece.unspecified": ["uvx", "uvvx"],
|
|
2750
|
-
"application/vnd.dece.zip": ["uvz", "uvvz"],
|
|
2751
|
-
"application/vnd.denovo.fcselayout-link": ["fe_launch"],
|
|
2752
|
-
"application/vnd.dna": ["dna"],
|
|
2753
|
-
"application/vnd.dolby.mlp": ["mlp"],
|
|
2754
|
-
"application/vnd.dpgraph": ["dpg"],
|
|
2755
|
-
"application/vnd.dreamfactory": ["dfac"],
|
|
2756
|
-
"application/vnd.ds-keypoint": ["kpxx"],
|
|
2757
|
-
"application/vnd.dvb.ait": ["ait"],
|
|
2758
|
-
"application/vnd.dvb.service": ["svc"],
|
|
2759
|
-
"application/vnd.dynageo": ["geo"],
|
|
2760
|
-
"application/vnd.ecowin.chart": ["mag"],
|
|
2761
|
-
"application/vnd.enliven": ["nml"],
|
|
2762
|
-
"application/vnd.epson.esf": ["esf"],
|
|
2763
|
-
"application/vnd.epson.msf": ["msf"],
|
|
2764
|
-
"application/vnd.epson.quickanime": ["qam"],
|
|
2765
|
-
"application/vnd.epson.salt": ["slt"],
|
|
2766
|
-
"application/vnd.epson.ssf": ["ssf"],
|
|
2767
|
-
"application/vnd.eszigno3+xml": ["es3", "et3"],
|
|
2768
|
-
"application/vnd.ezpix-album": ["ez2"],
|
|
2769
|
-
"application/vnd.ezpix-package": ["ez3"],
|
|
2770
|
-
"application/vnd.fdf": ["*fdf"],
|
|
2771
|
-
"application/vnd.fdsn.mseed": ["mseed"],
|
|
2772
|
-
"application/vnd.fdsn.seed": ["seed", "dataless"],
|
|
2773
|
-
"application/vnd.flographit": ["gph"],
|
|
2774
|
-
"application/vnd.fluxtime.clip": ["ftc"],
|
|
2775
|
-
"application/vnd.framemaker": ["fm", "frame", "maker", "book"],
|
|
2776
|
-
"application/vnd.frogans.fnc": ["fnc"],
|
|
2777
|
-
"application/vnd.frogans.ltf": ["ltf"],
|
|
2778
|
-
"application/vnd.fsc.weblaunch": ["fsc"],
|
|
2779
|
-
"application/vnd.fujitsu.oasys": ["oas"],
|
|
2780
|
-
"application/vnd.fujitsu.oasys2": ["oa2"],
|
|
2781
|
-
"application/vnd.fujitsu.oasys3": ["oa3"],
|
|
2782
|
-
"application/vnd.fujitsu.oasysgp": ["fg5"],
|
|
2783
|
-
"application/vnd.fujitsu.oasysprs": ["bh2"],
|
|
2784
|
-
"application/vnd.fujixerox.ddd": ["ddd"],
|
|
2785
|
-
"application/vnd.fujixerox.docuworks": ["xdw"],
|
|
2786
|
-
"application/vnd.fujixerox.docuworks.binder": ["xbd"],
|
|
2787
|
-
"application/vnd.fuzzysheet": ["fzs"],
|
|
2788
|
-
"application/vnd.genomatix.tuxedo": ["txd"],
|
|
2789
|
-
"application/vnd.geogebra.file": ["ggb"],
|
|
2790
|
-
"application/vnd.geogebra.slides": ["ggs"],
|
|
2791
|
-
"application/vnd.geogebra.tool": ["ggt"],
|
|
2792
|
-
"application/vnd.geometry-explorer": ["gex", "gre"],
|
|
2793
|
-
"application/vnd.geonext": ["gxt"],
|
|
2794
|
-
"application/vnd.geoplan": ["g2w"],
|
|
2795
|
-
"application/vnd.geospace": ["g3w"],
|
|
2796
|
-
"application/vnd.gmx": ["gmx"],
|
|
2797
|
-
"application/vnd.google-apps.document": ["gdoc"],
|
|
2798
|
-
"application/vnd.google-apps.drawing": ["gdraw"],
|
|
2799
|
-
"application/vnd.google-apps.form": ["gform"],
|
|
2800
|
-
"application/vnd.google-apps.jam": ["gjam"],
|
|
2801
|
-
"application/vnd.google-apps.map": ["gmap"],
|
|
2802
|
-
"application/vnd.google-apps.presentation": ["gslides"],
|
|
2803
|
-
"application/vnd.google-apps.script": ["gscript"],
|
|
2804
|
-
"application/vnd.google-apps.site": ["gsite"],
|
|
2805
|
-
"application/vnd.google-apps.spreadsheet": ["gsheet"],
|
|
2806
|
-
"application/vnd.google-earth.kml+xml": ["kml"],
|
|
2807
|
-
"application/vnd.google-earth.kmz": ["kmz"],
|
|
2808
|
-
"application/vnd.gov.sk.xmldatacontainer+xml": ["xdcf"],
|
|
2809
|
-
"application/vnd.grafeq": ["gqf", "gqs"],
|
|
2810
|
-
"application/vnd.groove-account": ["gac"],
|
|
2811
|
-
"application/vnd.groove-help": ["ghf"],
|
|
2812
|
-
"application/vnd.groove-identity-message": ["gim"],
|
|
2813
|
-
"application/vnd.groove-injector": ["grv"],
|
|
2814
|
-
"application/vnd.groove-tool-message": ["gtm"],
|
|
2815
|
-
"application/vnd.groove-tool-template": ["tpl"],
|
|
2816
|
-
"application/vnd.groove-vcard": ["vcg"],
|
|
2817
|
-
"application/vnd.hal+xml": ["hal"],
|
|
2818
|
-
"application/vnd.handheld-entertainment+xml": ["zmm"],
|
|
2819
|
-
"application/vnd.hbci": ["hbci"],
|
|
2820
|
-
"application/vnd.hhe.lesson-player": ["les"],
|
|
2821
|
-
"application/vnd.hp-hpgl": ["hpgl"],
|
|
2822
|
-
"application/vnd.hp-hpid": ["hpid"],
|
|
2823
|
-
"application/vnd.hp-hps": ["hps"],
|
|
2824
|
-
"application/vnd.hp-jlyt": ["jlt"],
|
|
2825
|
-
"application/vnd.hp-pcl": ["pcl"],
|
|
2826
|
-
"application/vnd.hp-pclxl": ["pclxl"],
|
|
2827
|
-
"application/vnd.hydrostatix.sof-data": ["sfd-hdstx"],
|
|
2828
|
-
"application/vnd.ibm.minipay": ["mpy"],
|
|
2829
|
-
"application/vnd.ibm.modcap": ["afp", "listafp", "list3820"],
|
|
2830
|
-
"application/vnd.ibm.rights-management": ["irm"],
|
|
2831
|
-
"application/vnd.ibm.secure-container": ["sc"],
|
|
2832
|
-
"application/vnd.iccprofile": ["icc", "icm"],
|
|
2833
|
-
"application/vnd.igloader": ["igl"],
|
|
2834
|
-
"application/vnd.immervision-ivp": ["ivp"],
|
|
2835
|
-
"application/vnd.immervision-ivu": ["ivu"],
|
|
2836
|
-
"application/vnd.insors.igm": ["igm"],
|
|
2837
|
-
"application/vnd.intercon.formnet": ["xpw", "xpx"],
|
|
2838
|
-
"application/vnd.intergeo": ["i2g"],
|
|
2839
|
-
"application/vnd.intu.qbo": ["qbo"],
|
|
2840
|
-
"application/vnd.intu.qfx": ["qfx"],
|
|
2841
|
-
"application/vnd.ipunplugged.rcprofile": ["rcprofile"],
|
|
2842
|
-
"application/vnd.irepository.package+xml": ["irp"],
|
|
2843
|
-
"application/vnd.is-xpr": ["xpr"],
|
|
2844
|
-
"application/vnd.isac.fcs": ["fcs"],
|
|
2845
|
-
"application/vnd.jam": ["jam"],
|
|
2846
|
-
"application/vnd.jcp.javame.midlet-rms": ["rms"],
|
|
2847
|
-
"application/vnd.jisp": ["jisp"],
|
|
2848
|
-
"application/vnd.joost.joda-archive": ["joda"],
|
|
2849
|
-
"application/vnd.kahootz": ["ktz", "ktr"],
|
|
2850
|
-
"application/vnd.kde.karbon": ["karbon"],
|
|
2851
|
-
"application/vnd.kde.kchart": ["chrt"],
|
|
2852
|
-
"application/vnd.kde.kformula": ["kfo"],
|
|
2853
|
-
"application/vnd.kde.kivio": ["flw"],
|
|
2854
|
-
"application/vnd.kde.kontour": ["kon"],
|
|
2855
|
-
"application/vnd.kde.kpresenter": ["kpr", "kpt"],
|
|
2856
|
-
"application/vnd.kde.kspread": ["ksp"],
|
|
2857
|
-
"application/vnd.kde.kword": ["kwd", "kwt"],
|
|
2858
|
-
"application/vnd.kenameaapp": ["htke"],
|
|
2859
|
-
"application/vnd.kidspiration": ["kia"],
|
|
2860
|
-
"application/vnd.kinar": ["kne", "knp"],
|
|
2861
|
-
"application/vnd.koan": ["skp", "skd", "skt", "skm"],
|
|
2862
|
-
"application/vnd.kodak-descriptor": ["sse"],
|
|
2863
|
-
"application/vnd.las.las+xml": ["lasxml"],
|
|
2864
|
-
"application/vnd.llamagraphics.life-balance.desktop": ["lbd"],
|
|
2865
|
-
"application/vnd.llamagraphics.life-balance.exchange+xml": ["lbe"],
|
|
2866
|
-
"application/vnd.lotus-1-2-3": ["123"],
|
|
2867
|
-
"application/vnd.lotus-approach": ["apr"],
|
|
2868
|
-
"application/vnd.lotus-freelance": ["pre"],
|
|
2869
|
-
"application/vnd.lotus-notes": ["nsf"],
|
|
2870
|
-
"application/vnd.lotus-organizer": ["org"],
|
|
2871
|
-
"application/vnd.lotus-screencam": ["scm"],
|
|
2872
|
-
"application/vnd.lotus-wordpro": ["lwp"],
|
|
2873
|
-
"application/vnd.macports.portpkg": ["portpkg"],
|
|
2874
|
-
"application/vnd.mapbox-vector-tile": ["mvt"],
|
|
2875
|
-
"application/vnd.mcd": ["mcd"],
|
|
2876
|
-
"application/vnd.medcalcdata": ["mc1"],
|
|
2877
|
-
"application/vnd.mediastation.cdkey": ["cdkey"],
|
|
2878
|
-
"application/vnd.mfer": ["mwf"],
|
|
2879
|
-
"application/vnd.mfmp": ["mfm"],
|
|
2880
|
-
"application/vnd.micrografx.flo": ["flo"],
|
|
2881
|
-
"application/vnd.micrografx.igx": ["igx"],
|
|
2882
|
-
"application/vnd.mif": ["mif"],
|
|
2883
|
-
"application/vnd.mobius.daf": ["daf"],
|
|
2884
|
-
"application/vnd.mobius.dis": ["dis"],
|
|
2885
|
-
"application/vnd.mobius.mbk": ["mbk"],
|
|
2886
|
-
"application/vnd.mobius.mqy": ["mqy"],
|
|
2887
|
-
"application/vnd.mobius.msl": ["msl"],
|
|
2888
|
-
"application/vnd.mobius.plc": ["plc"],
|
|
2889
|
-
"application/vnd.mobius.txf": ["txf"],
|
|
2890
|
-
"application/vnd.mophun.application": ["mpn"],
|
|
2891
|
-
"application/vnd.mophun.certificate": ["mpc"],
|
|
2892
|
-
"application/vnd.mozilla.xul+xml": ["xul"],
|
|
2893
|
-
"application/vnd.ms-artgalry": ["cil"],
|
|
2894
|
-
"application/vnd.ms-cab-compressed": ["cab"],
|
|
2895
|
-
"application/vnd.ms-excel": ["xls", "xlm", "xla", "xlc", "xlt", "xlw"],
|
|
2896
|
-
"application/vnd.ms-excel.addin.macroenabled.12": ["xlam"],
|
|
2897
|
-
"application/vnd.ms-excel.sheet.binary.macroenabled.12": ["xlsb"],
|
|
2898
|
-
"application/vnd.ms-excel.sheet.macroenabled.12": ["xlsm"],
|
|
2899
|
-
"application/vnd.ms-excel.template.macroenabled.12": ["xltm"],
|
|
2900
|
-
"application/vnd.ms-fontobject": ["eot"],
|
|
2901
|
-
"application/vnd.ms-htmlhelp": ["chm"],
|
|
2902
|
-
"application/vnd.ms-ims": ["ims"],
|
|
2903
|
-
"application/vnd.ms-lrm": ["lrm"],
|
|
2904
|
-
"application/vnd.ms-officetheme": ["thmx"],
|
|
2905
|
-
"application/vnd.ms-outlook": ["msg"],
|
|
2906
|
-
"application/vnd.ms-pki.seccat": ["cat"],
|
|
2907
|
-
"application/vnd.ms-pki.stl": ["*stl"],
|
|
2908
|
-
"application/vnd.ms-powerpoint": ["ppt", "pps", "pot"],
|
|
2909
|
-
"application/vnd.ms-powerpoint.addin.macroenabled.12": ["ppam"],
|
|
2910
|
-
"application/vnd.ms-powerpoint.presentation.macroenabled.12": ["pptm"],
|
|
2911
|
-
"application/vnd.ms-powerpoint.slide.macroenabled.12": ["sldm"],
|
|
2912
|
-
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": ["ppsm"],
|
|
2913
|
-
"application/vnd.ms-powerpoint.template.macroenabled.12": ["potm"],
|
|
2914
|
-
"application/vnd.ms-project": ["*mpp", "mpt"],
|
|
2915
|
-
"application/vnd.ms-visio.viewer": ["vdx"],
|
|
2916
|
-
"application/vnd.ms-word.document.macroenabled.12": ["docm"],
|
|
2917
|
-
"application/vnd.ms-word.template.macroenabled.12": ["dotm"],
|
|
2918
|
-
"application/vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
|
|
2919
|
-
"application/vnd.ms-wpl": ["wpl"],
|
|
2920
|
-
"application/vnd.ms-xpsdocument": ["xps"],
|
|
2921
|
-
"application/vnd.mseq": ["mseq"],
|
|
2922
|
-
"application/vnd.musician": ["mus"],
|
|
2923
|
-
"application/vnd.muvee.style": ["msty"],
|
|
2924
|
-
"application/vnd.mynfc": ["taglet"],
|
|
2925
|
-
"application/vnd.nato.bindingdataobject+xml": ["bdo"],
|
|
2926
|
-
"application/vnd.neurolanguage.nlu": ["nlu"],
|
|
2927
|
-
"application/vnd.nitf": ["ntf", "nitf"],
|
|
2928
|
-
"application/vnd.noblenet-directory": ["nnd"],
|
|
2929
|
-
"application/vnd.noblenet-sealer": ["nns"],
|
|
2930
|
-
"application/vnd.noblenet-web": ["nnw"],
|
|
2931
|
-
"application/vnd.nokia.n-gage.ac+xml": ["*ac"],
|
|
2932
|
-
"application/vnd.nokia.n-gage.data": ["ngdat"],
|
|
2933
|
-
"application/vnd.nokia.n-gage.symbian.install": ["n-gage"],
|
|
2934
|
-
"application/vnd.nokia.radio-preset": ["rpst"],
|
|
2935
|
-
"application/vnd.nokia.radio-presets": ["rpss"],
|
|
2936
|
-
"application/vnd.novadigm.edm": ["edm"],
|
|
2937
|
-
"application/vnd.novadigm.edx": ["edx"],
|
|
2938
|
-
"application/vnd.novadigm.ext": ["ext"],
|
|
2939
|
-
"application/vnd.oasis.opendocument.chart": ["odc"],
|
|
2940
|
-
"application/vnd.oasis.opendocument.chart-template": ["otc"],
|
|
2941
|
-
"application/vnd.oasis.opendocument.database": ["odb"],
|
|
2942
|
-
"application/vnd.oasis.opendocument.formula": ["odf"],
|
|
2943
|
-
"application/vnd.oasis.opendocument.formula-template": ["odft"],
|
|
2944
|
-
"application/vnd.oasis.opendocument.graphics": ["odg"],
|
|
2945
|
-
"application/vnd.oasis.opendocument.graphics-template": ["otg"],
|
|
2946
|
-
"application/vnd.oasis.opendocument.image": ["odi"],
|
|
2947
|
-
"application/vnd.oasis.opendocument.image-template": ["oti"],
|
|
2948
|
-
"application/vnd.oasis.opendocument.presentation": ["odp"],
|
|
2949
|
-
"application/vnd.oasis.opendocument.presentation-template": ["otp"],
|
|
2950
|
-
"application/vnd.oasis.opendocument.spreadsheet": ["ods"],
|
|
2951
|
-
"application/vnd.oasis.opendocument.spreadsheet-template": ["ots"],
|
|
2952
|
-
"application/vnd.oasis.opendocument.text": ["odt"],
|
|
2953
|
-
"application/vnd.oasis.opendocument.text-master": ["odm"],
|
|
2954
|
-
"application/vnd.oasis.opendocument.text-template": ["ott"],
|
|
2955
|
-
"application/vnd.oasis.opendocument.text-web": ["oth"],
|
|
2956
|
-
"application/vnd.olpc-sugar": ["xo"],
|
|
2957
|
-
"application/vnd.oma.dd2+xml": ["dd2"],
|
|
2958
|
-
"application/vnd.openblox.game+xml": ["obgx"],
|
|
2959
|
-
"application/vnd.openofficeorg.extension": ["oxt"],
|
|
2960
|
-
"application/vnd.openstreetmap.data+xml": ["osm"],
|
|
2961
|
-
"application/vnd.openxmlformats-officedocument.presentationml.presentation": [
|
|
2962
|
-
"pptx"
|
|
2963
|
-
],
|
|
2964
|
-
"application/vnd.openxmlformats-officedocument.presentationml.slide": [
|
|
2965
|
-
"sldx"
|
|
2966
|
-
],
|
|
2967
|
-
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": [
|
|
2968
|
-
"ppsx"
|
|
2969
|
-
],
|
|
2970
|
-
"application/vnd.openxmlformats-officedocument.presentationml.template": [
|
|
2971
|
-
"potx"
|
|
2972
|
-
],
|
|
2973
|
-
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ["xlsx"],
|
|
2974
|
-
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": [
|
|
2975
|
-
"xltx"
|
|
2976
|
-
],
|
|
2977
|
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": [
|
|
2978
|
-
"docx"
|
|
2979
|
-
],
|
|
2980
|
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": [
|
|
2981
|
-
"dotx"
|
|
2982
|
-
],
|
|
2983
|
-
"application/vnd.osgeo.mapguide.package": ["mgp"],
|
|
2984
|
-
"application/vnd.osgi.dp": ["dp"],
|
|
2985
|
-
"application/vnd.osgi.subsystem": ["esa"],
|
|
2986
|
-
"application/vnd.palm": ["pdb", "pqa", "oprc"],
|
|
2987
|
-
"application/vnd.pawaafile": ["paw"],
|
|
2988
|
-
"application/vnd.pg.format": ["str"],
|
|
2989
|
-
"application/vnd.pg.osasli": ["ei6"],
|
|
2990
|
-
"application/vnd.picsel": ["efif"],
|
|
2991
|
-
"application/vnd.pmi.widget": ["wg"],
|
|
2992
|
-
"application/vnd.pocketlearn": ["plf"],
|
|
2993
|
-
"application/vnd.powerbuilder6": ["pbd"],
|
|
2994
|
-
"application/vnd.previewsystems.box": ["box"],
|
|
2995
|
-
"application/vnd.procrate.brushset": ["brushset"],
|
|
2996
|
-
"application/vnd.procreate.brush": ["brush"],
|
|
2997
|
-
"application/vnd.procreate.dream": ["drm"],
|
|
2998
|
-
"application/vnd.proteus.magazine": ["mgz"],
|
|
2999
|
-
"application/vnd.publishare-delta-tree": ["qps"],
|
|
3000
|
-
"application/vnd.pvi.ptid1": ["ptid"],
|
|
3001
|
-
"application/vnd.pwg-xhtml-print+xml": ["xhtm"],
|
|
3002
|
-
"application/vnd.quark.quarkxpress": [
|
|
3003
|
-
"qxd",
|
|
3004
|
-
"qxt",
|
|
3005
|
-
"qwd",
|
|
3006
|
-
"qwt",
|
|
3007
|
-
"qxl",
|
|
3008
|
-
"qxb"
|
|
3009
|
-
],
|
|
3010
|
-
"application/vnd.rar": ["rar"],
|
|
3011
|
-
"application/vnd.realvnc.bed": ["bed"],
|
|
3012
|
-
"application/vnd.recordare.musicxml": ["mxl"],
|
|
3013
|
-
"application/vnd.recordare.musicxml+xml": ["musicxml"],
|
|
3014
|
-
"application/vnd.rig.cryptonote": ["cryptonote"],
|
|
3015
|
-
"application/vnd.rim.cod": ["cod"],
|
|
3016
|
-
"application/vnd.rn-realmedia": ["rm"],
|
|
3017
|
-
"application/vnd.rn-realmedia-vbr": ["rmvb"],
|
|
3018
|
-
"application/vnd.route66.link66+xml": ["link66"],
|
|
3019
|
-
"application/vnd.sailingtracker.track": ["st"],
|
|
3020
|
-
"application/vnd.seemail": ["see"],
|
|
3021
|
-
"application/vnd.sema": ["sema"],
|
|
3022
|
-
"application/vnd.semd": ["semd"],
|
|
3023
|
-
"application/vnd.semf": ["semf"],
|
|
3024
|
-
"application/vnd.shana.informed.formdata": ["ifm"],
|
|
3025
|
-
"application/vnd.shana.informed.formtemplate": ["itp"],
|
|
3026
|
-
"application/vnd.shana.informed.interchange": ["iif"],
|
|
3027
|
-
"application/vnd.shana.informed.package": ["ipk"],
|
|
3028
|
-
"application/vnd.simtech-mindmapper": ["twd", "twds"],
|
|
3029
|
-
"application/vnd.smaf": ["mmf"],
|
|
3030
|
-
"application/vnd.smart.teacher": ["teacher"],
|
|
3031
|
-
"application/vnd.software602.filler.form+xml": ["fo"],
|
|
3032
|
-
"application/vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
|
|
3033
|
-
"application/vnd.spotfire.dxp": ["dxp"],
|
|
3034
|
-
"application/vnd.spotfire.sfs": ["sfs"],
|
|
3035
|
-
"application/vnd.stardivision.calc": ["sdc"],
|
|
3036
|
-
"application/vnd.stardivision.draw": ["sda"],
|
|
3037
|
-
"application/vnd.stardivision.impress": ["sdd"],
|
|
3038
|
-
"application/vnd.stardivision.math": ["smf"],
|
|
3039
|
-
"application/vnd.stardivision.writer": ["sdw", "vor"],
|
|
3040
|
-
"application/vnd.stardivision.writer-global": ["sgl"],
|
|
3041
|
-
"application/vnd.stepmania.package": ["smzip"],
|
|
3042
|
-
"application/vnd.stepmania.stepchart": ["sm"],
|
|
3043
|
-
"application/vnd.sun.wadl+xml": ["wadl"],
|
|
3044
|
-
"application/vnd.sun.xml.calc": ["sxc"],
|
|
3045
|
-
"application/vnd.sun.xml.calc.template": ["stc"],
|
|
3046
|
-
"application/vnd.sun.xml.draw": ["sxd"],
|
|
3047
|
-
"application/vnd.sun.xml.draw.template": ["std"],
|
|
3048
|
-
"application/vnd.sun.xml.impress": ["sxi"],
|
|
3049
|
-
"application/vnd.sun.xml.impress.template": ["sti"],
|
|
3050
|
-
"application/vnd.sun.xml.math": ["sxm"],
|
|
3051
|
-
"application/vnd.sun.xml.writer": ["sxw"],
|
|
3052
|
-
"application/vnd.sun.xml.writer.global": ["sxg"],
|
|
3053
|
-
"application/vnd.sun.xml.writer.template": ["stw"],
|
|
3054
|
-
"application/vnd.sus-calendar": ["sus", "susp"],
|
|
3055
|
-
"application/vnd.svd": ["svd"],
|
|
3056
|
-
"application/vnd.symbian.install": ["sis", "sisx"],
|
|
3057
|
-
"application/vnd.syncml+xml": ["xsm"],
|
|
3058
|
-
"application/vnd.syncml.dm+wbxml": ["bdm"],
|
|
3059
|
-
"application/vnd.syncml.dm+xml": ["xdm"],
|
|
3060
|
-
"application/vnd.syncml.dmddf+xml": ["ddf"],
|
|
3061
|
-
"application/vnd.tao.intent-module-archive": ["tao"],
|
|
3062
|
-
"application/vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
|
|
3063
|
-
"application/vnd.tmobile-livetv": ["tmo"],
|
|
3064
|
-
"application/vnd.trid.tpt": ["tpt"],
|
|
3065
|
-
"application/vnd.triscape.mxs": ["mxs"],
|
|
3066
|
-
"application/vnd.trueapp": ["tra"],
|
|
3067
|
-
"application/vnd.ufdl": ["ufd", "ufdl"],
|
|
3068
|
-
"application/vnd.uiq.theme": ["utz"],
|
|
3069
|
-
"application/vnd.umajin": ["umj"],
|
|
3070
|
-
"application/vnd.unity": ["unityweb"],
|
|
3071
|
-
"application/vnd.uoml+xml": ["uoml", "uo"],
|
|
3072
|
-
"application/vnd.vcx": ["vcx"],
|
|
3073
|
-
"application/vnd.visio": ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"],
|
|
3074
|
-
"application/vnd.visionary": ["vis"],
|
|
3075
|
-
"application/vnd.vsf": ["vsf"],
|
|
3076
|
-
"application/vnd.wap.wbxml": ["wbxml"],
|
|
3077
|
-
"application/vnd.wap.wmlc": ["wmlc"],
|
|
3078
|
-
"application/vnd.wap.wmlscriptc": ["wmlsc"],
|
|
3079
|
-
"application/vnd.webturbo": ["wtb"],
|
|
3080
|
-
"application/vnd.wolfram.player": ["nbp"],
|
|
3081
|
-
"application/vnd.wordperfect": ["wpd"],
|
|
3082
|
-
"application/vnd.wqd": ["wqd"],
|
|
3083
|
-
"application/vnd.wt.stf": ["stf"],
|
|
3084
|
-
"application/vnd.xara": ["xar"],
|
|
3085
|
-
"application/vnd.xfdl": ["xfdl"],
|
|
3086
|
-
"application/vnd.yamaha.hv-dic": ["hvd"],
|
|
3087
|
-
"application/vnd.yamaha.hv-script": ["hvs"],
|
|
3088
|
-
"application/vnd.yamaha.hv-voice": ["hvp"],
|
|
3089
|
-
"application/vnd.yamaha.openscoreformat": ["osf"],
|
|
3090
|
-
"application/vnd.yamaha.openscoreformat.osfpvg+xml": ["osfpvg"],
|
|
3091
|
-
"application/vnd.yamaha.smaf-audio": ["saf"],
|
|
3092
|
-
"application/vnd.yamaha.smaf-phrase": ["spf"],
|
|
3093
|
-
"application/vnd.yellowriver-custom-menu": ["cmp"],
|
|
3094
|
-
"application/vnd.zul": ["zir", "zirz"],
|
|
3095
|
-
"application/vnd.zzazz.deck+xml": ["zaz"],
|
|
3096
|
-
"application/x-7z-compressed": ["7z"],
|
|
3097
|
-
"application/x-abiword": ["abw"],
|
|
3098
|
-
"application/x-ace-compressed": ["ace"],
|
|
3099
|
-
"application/x-apple-diskimage": ["*dmg"],
|
|
3100
|
-
"application/x-arj": ["arj"],
|
|
3101
|
-
"application/x-authorware-bin": ["aab", "x32", "u32", "vox"],
|
|
3102
|
-
"application/x-authorware-map": ["aam"],
|
|
3103
|
-
"application/x-authorware-seg": ["aas"],
|
|
3104
|
-
"application/x-bcpio": ["bcpio"],
|
|
3105
|
-
"application/x-bdoc": ["*bdoc"],
|
|
3106
|
-
"application/x-bittorrent": ["torrent"],
|
|
3107
|
-
"application/x-blender": ["blend"],
|
|
3108
|
-
"application/x-blorb": ["blb", "blorb"],
|
|
3109
|
-
"application/x-bzip": ["bz"],
|
|
3110
|
-
"application/x-bzip2": ["bz2", "boz"],
|
|
3111
|
-
"application/x-cbr": ["cbr", "cba", "cbt", "cbz", "cb7"],
|
|
3112
|
-
"application/x-cdlink": ["vcd"],
|
|
3113
|
-
"application/x-cfs-compressed": ["cfs"],
|
|
3114
|
-
"application/x-chat": ["chat"],
|
|
3115
|
-
"application/x-chess-pgn": ["pgn"],
|
|
3116
|
-
"application/x-chrome-extension": ["crx"],
|
|
3117
|
-
"application/x-cocoa": ["cco"],
|
|
3118
|
-
"application/x-compressed": ["*rar"],
|
|
3119
|
-
"application/x-conference": ["nsc"],
|
|
3120
|
-
"application/x-cpio": ["cpio"],
|
|
3121
|
-
"application/x-csh": ["csh"],
|
|
3122
|
-
"application/x-debian-package": ["*deb", "udeb"],
|
|
3123
|
-
"application/x-dgc-compressed": ["dgc"],
|
|
3124
|
-
"application/x-director": [
|
|
3125
|
-
"dir",
|
|
3126
|
-
"dcr",
|
|
3127
|
-
"dxr",
|
|
3128
|
-
"cst",
|
|
3129
|
-
"cct",
|
|
3130
|
-
"cxt",
|
|
3131
|
-
"w3d",
|
|
3132
|
-
"fgd",
|
|
3133
|
-
"swa"
|
|
3134
|
-
],
|
|
3135
|
-
"application/x-doom": ["wad"],
|
|
3136
|
-
"application/x-dtbncx+xml": ["ncx"],
|
|
3137
|
-
"application/x-dtbook+xml": ["dtb"],
|
|
3138
|
-
"application/x-dtbresource+xml": ["res"],
|
|
3139
|
-
"application/x-dvi": ["dvi"],
|
|
3140
|
-
"application/x-envoy": ["evy"],
|
|
3141
|
-
"application/x-eva": ["eva"],
|
|
3142
|
-
"application/x-font-bdf": ["bdf"],
|
|
3143
|
-
"application/x-font-ghostscript": ["gsf"],
|
|
3144
|
-
"application/x-font-linux-psf": ["psf"],
|
|
3145
|
-
"application/x-font-pcf": ["pcf"],
|
|
3146
|
-
"application/x-font-snf": ["snf"],
|
|
3147
|
-
"application/x-font-type1": ["pfa", "pfb", "pfm", "afm"],
|
|
3148
|
-
"application/x-freearc": ["arc"],
|
|
3149
|
-
"application/x-futuresplash": ["spl"],
|
|
3150
|
-
"application/x-gca-compressed": ["gca"],
|
|
3151
|
-
"application/x-glulx": ["ulx"],
|
|
3152
|
-
"application/x-gnumeric": ["gnumeric"],
|
|
3153
|
-
"application/x-gramps-xml": ["gramps"],
|
|
3154
|
-
"application/x-gtar": ["gtar"],
|
|
3155
|
-
"application/x-hdf": ["hdf"],
|
|
3156
|
-
"application/x-httpd-php": ["php"],
|
|
3157
|
-
"application/x-install-instructions": ["install"],
|
|
3158
|
-
"application/x-ipynb+json": ["ipynb"],
|
|
3159
|
-
"application/x-iso9660-image": ["*iso"],
|
|
3160
|
-
"application/x-iwork-keynote-sffkey": ["*key"],
|
|
3161
|
-
"application/x-iwork-numbers-sffnumbers": ["*numbers"],
|
|
3162
|
-
"application/x-iwork-pages-sffpages": ["*pages"],
|
|
3163
|
-
"application/x-java-archive-diff": ["jardiff"],
|
|
3164
|
-
"application/x-java-jnlp-file": ["jnlp"],
|
|
3165
|
-
"application/x-keepass2": ["kdbx"],
|
|
3166
|
-
"application/x-latex": ["latex"],
|
|
3167
|
-
"application/x-lua-bytecode": ["luac"],
|
|
3168
|
-
"application/x-lzh-compressed": ["lzh", "lha"],
|
|
3169
|
-
"application/x-makeself": ["run"],
|
|
3170
|
-
"application/x-mie": ["mie"],
|
|
3171
|
-
"application/x-mobipocket-ebook": ["*prc", "mobi"],
|
|
3172
|
-
"application/x-ms-application": ["application"],
|
|
3173
|
-
"application/x-ms-shortcut": ["lnk"],
|
|
3174
|
-
"application/x-ms-wmd": ["wmd"],
|
|
3175
|
-
"application/x-ms-wmz": ["wmz"],
|
|
3176
|
-
"application/x-ms-xbap": ["xbap"],
|
|
3177
|
-
"application/x-msaccess": ["mdb"],
|
|
3178
|
-
"application/x-msbinder": ["obd"],
|
|
3179
|
-
"application/x-mscardfile": ["crd"],
|
|
3180
|
-
"application/x-msclip": ["clp"],
|
|
3181
|
-
"application/x-msdos-program": ["*exe"],
|
|
3182
|
-
"application/x-msdownload": ["*exe", "*dll", "com", "bat", "*msi"],
|
|
3183
|
-
"application/x-msmediaview": ["mvb", "m13", "m14"],
|
|
3184
|
-
"application/x-msmetafile": ["*wmf", "*wmz", "*emf", "emz"],
|
|
3185
|
-
"application/x-msmoney": ["mny"],
|
|
3186
|
-
"application/x-mspublisher": ["pub"],
|
|
3187
|
-
"application/x-msschedule": ["scd"],
|
|
3188
|
-
"application/x-msterminal": ["trm"],
|
|
3189
|
-
"application/x-mswrite": ["wri"],
|
|
3190
|
-
"application/x-netcdf": ["nc", "cdf"],
|
|
3191
|
-
"application/x-ns-proxy-autoconfig": ["pac"],
|
|
3192
|
-
"application/x-nzb": ["nzb"],
|
|
3193
|
-
"application/x-perl": ["pl", "pm"],
|
|
3194
|
-
"application/x-pilot": ["*prc", "*pdb"],
|
|
3195
|
-
"application/x-pkcs12": ["p12", "pfx"],
|
|
3196
|
-
"application/x-pkcs7-certificates": ["p7b", "spc"],
|
|
3197
|
-
"application/x-pkcs7-certreqresp": ["p7r"],
|
|
3198
|
-
"application/x-rar-compressed": ["*rar"],
|
|
3199
|
-
"application/x-redhat-package-manager": ["rpm"],
|
|
3200
|
-
"application/x-research-info-systems": ["ris"],
|
|
3201
|
-
"application/x-sea": ["sea"],
|
|
3202
|
-
"application/x-sh": ["sh"],
|
|
3203
|
-
"application/x-shar": ["shar"],
|
|
3204
|
-
"application/x-shockwave-flash": ["swf"],
|
|
3205
|
-
"application/x-silverlight-app": ["xap"],
|
|
3206
|
-
"application/x-sql": ["*sql"],
|
|
3207
|
-
"application/x-stuffit": ["sit"],
|
|
3208
|
-
"application/x-stuffitx": ["sitx"],
|
|
3209
|
-
"application/x-subrip": ["srt"],
|
|
3210
|
-
"application/x-sv4cpio": ["sv4cpio"],
|
|
3211
|
-
"application/x-sv4crc": ["sv4crc"],
|
|
3212
|
-
"application/x-t3vm-image": ["t3"],
|
|
3213
|
-
"application/x-tads": ["gam"],
|
|
3214
|
-
"application/x-tar": ["tar"],
|
|
3215
|
-
"application/x-tcl": ["tcl", "tk"],
|
|
3216
|
-
"application/x-tex": ["tex"],
|
|
3217
|
-
"application/x-tex-tfm": ["tfm"],
|
|
3218
|
-
"application/x-texinfo": ["texinfo", "texi"],
|
|
3219
|
-
"application/x-tgif": ["*obj"],
|
|
3220
|
-
"application/x-ustar": ["ustar"],
|
|
3221
|
-
"application/x-virtualbox-hdd": ["hdd"],
|
|
3222
|
-
"application/x-virtualbox-ova": ["ova"],
|
|
3223
|
-
"application/x-virtualbox-ovf": ["ovf"],
|
|
3224
|
-
"application/x-virtualbox-vbox": ["vbox"],
|
|
3225
|
-
"application/x-virtualbox-vbox-extpack": ["vbox-extpack"],
|
|
3226
|
-
"application/x-virtualbox-vdi": ["vdi"],
|
|
3227
|
-
"application/x-virtualbox-vhd": ["vhd"],
|
|
3228
|
-
"application/x-virtualbox-vmdk": ["vmdk"],
|
|
3229
|
-
"application/x-wais-source": ["src"],
|
|
3230
|
-
"application/x-web-app-manifest+json": ["webapp"],
|
|
3231
|
-
"application/x-x509-ca-cert": ["der", "crt", "pem"],
|
|
3232
|
-
"application/x-xfig": ["fig"],
|
|
3233
|
-
"application/x-xliff+xml": ["*xlf"],
|
|
3234
|
-
"application/x-xpinstall": ["xpi"],
|
|
3235
|
-
"application/x-xz": ["xz"],
|
|
3236
|
-
"application/x-zip-compressed": ["*zip"],
|
|
3237
|
-
"application/x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
|
|
3238
|
-
"audio/vnd.dece.audio": ["uva", "uvva"],
|
|
3239
|
-
"audio/vnd.digital-winds": ["eol"],
|
|
3240
|
-
"audio/vnd.dra": ["dra"],
|
|
3241
|
-
"audio/vnd.dts": ["dts"],
|
|
3242
|
-
"audio/vnd.dts.hd": ["dtshd"],
|
|
3243
|
-
"audio/vnd.lucent.voice": ["lvp"],
|
|
3244
|
-
"audio/vnd.ms-playready.media.pya": ["pya"],
|
|
3245
|
-
"audio/vnd.nuera.ecelp4800": ["ecelp4800"],
|
|
3246
|
-
"audio/vnd.nuera.ecelp7470": ["ecelp7470"],
|
|
3247
|
-
"audio/vnd.nuera.ecelp9600": ["ecelp9600"],
|
|
3248
|
-
"audio/vnd.rip": ["rip"],
|
|
3249
|
-
"audio/x-aac": ["*aac"],
|
|
3250
|
-
"audio/x-aiff": ["aif", "aiff", "aifc"],
|
|
3251
|
-
"audio/x-caf": ["caf"],
|
|
3252
|
-
"audio/x-flac": ["flac"],
|
|
3253
|
-
"audio/x-m4a": ["*m4a"],
|
|
3254
|
-
"audio/x-matroska": ["mka"],
|
|
3255
|
-
"audio/x-mpegurl": ["m3u"],
|
|
3256
|
-
"audio/x-ms-wax": ["wax"],
|
|
3257
|
-
"audio/x-ms-wma": ["wma"],
|
|
3258
|
-
"audio/x-pn-realaudio": ["ram", "ra"],
|
|
3259
|
-
"audio/x-pn-realaudio-plugin": ["rmp"],
|
|
3260
|
-
"audio/x-realaudio": ["*ra"],
|
|
3261
|
-
"audio/x-wav": ["*wav"],
|
|
3262
|
-
"chemical/x-cdx": ["cdx"],
|
|
3263
|
-
"chemical/x-cif": ["cif"],
|
|
3264
|
-
"chemical/x-cmdf": ["cmdf"],
|
|
3265
|
-
"chemical/x-cml": ["cml"],
|
|
3266
|
-
"chemical/x-csml": ["csml"],
|
|
3267
|
-
"chemical/x-xyz": ["xyz"],
|
|
3268
|
-
"image/prs.btif": ["btif", "btf"],
|
|
3269
|
-
"image/prs.pti": ["pti"],
|
|
3270
|
-
"image/vnd.adobe.photoshop": ["psd"],
|
|
3271
|
-
"image/vnd.airzip.accelerator.azv": ["azv"],
|
|
3272
|
-
"image/vnd.blockfact.facti": ["facti"],
|
|
3273
|
-
"image/vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
|
|
3274
|
-
"image/vnd.djvu": ["djvu", "djv"],
|
|
3275
|
-
"image/vnd.dvb.subtitle": ["*sub"],
|
|
3276
|
-
"image/vnd.dwg": ["dwg"],
|
|
3277
|
-
"image/vnd.dxf": ["dxf"],
|
|
3278
|
-
"image/vnd.fastbidsheet": ["fbs"],
|
|
3279
|
-
"image/vnd.fpx": ["fpx"],
|
|
3280
|
-
"image/vnd.fst": ["fst"],
|
|
3281
|
-
"image/vnd.fujixerox.edmics-mmr": ["mmr"],
|
|
3282
|
-
"image/vnd.fujixerox.edmics-rlc": ["rlc"],
|
|
3283
|
-
"image/vnd.microsoft.icon": ["ico"],
|
|
3284
|
-
"image/vnd.ms-dds": ["dds"],
|
|
3285
|
-
"image/vnd.ms-modi": ["mdi"],
|
|
3286
|
-
"image/vnd.ms-photo": ["wdp"],
|
|
3287
|
-
"image/vnd.net-fpx": ["npx"],
|
|
3288
|
-
"image/vnd.pco.b16": ["b16"],
|
|
3289
|
-
"image/vnd.tencent.tap": ["tap"],
|
|
3290
|
-
"image/vnd.valve.source.texture": ["vtf"],
|
|
3291
|
-
"image/vnd.wap.wbmp": ["wbmp"],
|
|
3292
|
-
"image/vnd.xiff": ["xif"],
|
|
3293
|
-
"image/vnd.zbrush.pcx": ["pcx"],
|
|
3294
|
-
"image/x-3ds": ["3ds"],
|
|
3295
|
-
"image/x-adobe-dng": ["dng"],
|
|
3296
|
-
"image/x-cmu-raster": ["ras"],
|
|
3297
|
-
"image/x-cmx": ["cmx"],
|
|
3298
|
-
"image/x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
|
|
3299
|
-
"image/x-icon": ["*ico"],
|
|
3300
|
-
"image/x-jng": ["jng"],
|
|
3301
|
-
"image/x-mrsid-image": ["sid"],
|
|
3302
|
-
"image/x-ms-bmp": ["*bmp"],
|
|
3303
|
-
"image/x-pcx": ["*pcx"],
|
|
3304
|
-
"image/x-pict": ["pic", "pct"],
|
|
3305
|
-
"image/x-portable-anymap": ["pnm"],
|
|
3306
|
-
"image/x-portable-bitmap": ["pbm"],
|
|
3307
|
-
"image/x-portable-graymap": ["pgm"],
|
|
3308
|
-
"image/x-portable-pixmap": ["ppm"],
|
|
3309
|
-
"image/x-rgb": ["rgb"],
|
|
3310
|
-
"image/x-tga": ["tga"],
|
|
3311
|
-
"image/x-xbitmap": ["xbm"],
|
|
3312
|
-
"image/x-xpixmap": ["xpm"],
|
|
3313
|
-
"image/x-xwindowdump": ["xwd"],
|
|
3314
|
-
"message/vnd.wfa.wsc": ["wsc"],
|
|
3315
|
-
"model/vnd.bary": ["bary"],
|
|
3316
|
-
"model/vnd.cld": ["cld"],
|
|
3317
|
-
"model/vnd.collada+xml": ["dae"],
|
|
3318
|
-
"model/vnd.dwf": ["dwf"],
|
|
3319
|
-
"model/vnd.gdl": ["gdl"],
|
|
3320
|
-
"model/vnd.gtw": ["gtw"],
|
|
3321
|
-
"model/vnd.mts": ["*mts"],
|
|
3322
|
-
"model/vnd.opengex": ["ogex"],
|
|
3323
|
-
"model/vnd.parasolid.transmit.binary": ["x_b"],
|
|
3324
|
-
"model/vnd.parasolid.transmit.text": ["x_t"],
|
|
3325
|
-
"model/vnd.pytha.pyox": ["pyo", "pyox"],
|
|
3326
|
-
"model/vnd.sap.vds": ["vds"],
|
|
3327
|
-
"model/vnd.usda": ["usda"],
|
|
3328
|
-
"model/vnd.usdz+zip": ["usdz"],
|
|
3329
|
-
"model/vnd.valve.source.compiled-map": ["bsp"],
|
|
3330
|
-
"model/vnd.vtu": ["vtu"],
|
|
3331
|
-
"text/prs.lines.tag": ["dsc"],
|
|
3332
|
-
"text/vnd.curl": ["curl"],
|
|
3333
|
-
"text/vnd.curl.dcurl": ["dcurl"],
|
|
3334
|
-
"text/vnd.curl.mcurl": ["mcurl"],
|
|
3335
|
-
"text/vnd.curl.scurl": ["scurl"],
|
|
3336
|
-
"text/vnd.dvb.subtitle": ["sub"],
|
|
3337
|
-
"text/vnd.familysearch.gedcom": ["ged"],
|
|
3338
|
-
"text/vnd.fly": ["fly"],
|
|
3339
|
-
"text/vnd.fmi.flexstor": ["flx"],
|
|
3340
|
-
"text/vnd.graphviz": ["gv"],
|
|
3341
|
-
"text/vnd.in3d.3dml": ["3dml"],
|
|
3342
|
-
"text/vnd.in3d.spot": ["spot"],
|
|
3343
|
-
"text/vnd.sun.j2me.app-descriptor": ["jad"],
|
|
3344
|
-
"text/vnd.wap.wml": ["wml"],
|
|
3345
|
-
"text/vnd.wap.wmlscript": ["wmls"],
|
|
3346
|
-
"text/x-asm": ["s", "asm"],
|
|
3347
|
-
"text/x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
|
|
3348
|
-
"text/x-component": ["htc"],
|
|
3349
|
-
"text/x-fortran": ["f", "for", "f77", "f90"],
|
|
3350
|
-
"text/x-handlebars-template": ["hbs"],
|
|
3351
|
-
"text/x-java-source": ["java"],
|
|
3352
|
-
"text/x-lua": ["lua"],
|
|
3353
|
-
"text/x-markdown": ["mkd"],
|
|
3354
|
-
"text/x-nfo": ["nfo"],
|
|
3355
|
-
"text/x-opml": ["opml"],
|
|
3356
|
-
"text/x-org": ["*org"],
|
|
3357
|
-
"text/x-pascal": ["p", "pas"],
|
|
3358
|
-
"text/x-processing": ["pde"],
|
|
3359
|
-
"text/x-sass": ["sass"],
|
|
3360
|
-
"text/x-scss": ["scss"],
|
|
3361
|
-
"text/x-setext": ["etx"],
|
|
3362
|
-
"text/x-sfv": ["sfv"],
|
|
3363
|
-
"text/x-suse-ymp": ["ymp"],
|
|
3364
|
-
"text/x-uuencode": ["uu"],
|
|
3365
|
-
"text/x-vcalendar": ["vcs"],
|
|
3366
|
-
"text/x-vcard": ["vcf"],
|
|
3367
|
-
"video/vnd.dece.hd": ["uvh", "uvvh"],
|
|
3368
|
-
"video/vnd.dece.mobile": ["uvm", "uvvm"],
|
|
3369
|
-
"video/vnd.dece.pd": ["uvp", "uvvp"],
|
|
3370
|
-
"video/vnd.dece.sd": ["uvs", "uvvs"],
|
|
3371
|
-
"video/vnd.dece.video": ["uvv", "uvvv"],
|
|
3372
|
-
"video/vnd.dvb.file": ["dvb"],
|
|
3373
|
-
"video/vnd.fvt": ["fvt"],
|
|
3374
|
-
"video/vnd.mpegurl": ["mxu", "m4u"],
|
|
3375
|
-
"video/vnd.ms-playready.media.pyv": ["pyv"],
|
|
3376
|
-
"video/vnd.uvvu.mp4": ["uvu", "uvvu"],
|
|
3377
|
-
"video/vnd.vivo": ["viv"],
|
|
3378
|
-
"video/x-f4v": ["f4v"],
|
|
3379
|
-
"video/x-fli": ["fli"],
|
|
3380
|
-
"video/x-flv": ["flv"],
|
|
3381
|
-
"video/x-m4v": ["m4v"],
|
|
3382
|
-
"video/x-matroska": ["mkv", "mk3d", "mks"],
|
|
3383
|
-
"video/x-mng": ["mng"],
|
|
3384
|
-
"video/x-ms-asf": ["asf", "asx"],
|
|
3385
|
-
"video/x-ms-vob": ["vob"],
|
|
3386
|
-
"video/x-ms-wm": ["wm"],
|
|
3387
|
-
"video/x-ms-wmv": ["wmv"],
|
|
3388
|
-
"video/x-ms-wmx": ["wmx"],
|
|
3389
|
-
"video/x-ms-wvx": ["wvx"],
|
|
3390
|
-
"video/x-msvideo": ["avi"],
|
|
3391
|
-
"video/x-sgi-movie": ["movie"],
|
|
3392
|
-
"video/x-smv": ["smv"],
|
|
3393
|
-
"x-conference/x-cooltalk": ["ice"]
|
|
3394
|
-
};
|
|
3395
|
-
Object.freeze(types);
|
|
3396
|
-
var other_default = types;
|
|
3397
|
-
|
|
3398
|
-
// node_modules/mime/dist/types/standard.js
|
|
3399
|
-
var types2 = {
|
|
3400
|
-
"application/andrew-inset": ["ez"],
|
|
3401
|
-
"application/appinstaller": ["appinstaller"],
|
|
3402
|
-
"application/applixware": ["aw"],
|
|
3403
|
-
"application/appx": ["appx"],
|
|
3404
|
-
"application/appxbundle": ["appxbundle"],
|
|
3405
|
-
"application/atom+xml": ["atom"],
|
|
3406
|
-
"application/atomcat+xml": ["atomcat"],
|
|
3407
|
-
"application/atomdeleted+xml": ["atomdeleted"],
|
|
3408
|
-
"application/atomsvc+xml": ["atomsvc"],
|
|
3409
|
-
"application/atsc-dwd+xml": ["dwd"],
|
|
3410
|
-
"application/atsc-held+xml": ["held"],
|
|
3411
|
-
"application/atsc-rsat+xml": ["rsat"],
|
|
3412
|
-
"application/automationml-aml+xml": ["aml"],
|
|
3413
|
-
"application/automationml-amlx+zip": ["amlx"],
|
|
3414
|
-
"application/bdoc": ["bdoc"],
|
|
3415
|
-
"application/calendar+xml": ["xcs"],
|
|
3416
|
-
"application/ccxml+xml": ["ccxml"],
|
|
3417
|
-
"application/cdfx+xml": ["cdfx"],
|
|
3418
|
-
"application/cdmi-capability": ["cdmia"],
|
|
3419
|
-
"application/cdmi-container": ["cdmic"],
|
|
3420
|
-
"application/cdmi-domain": ["cdmid"],
|
|
3421
|
-
"application/cdmi-object": ["cdmio"],
|
|
3422
|
-
"application/cdmi-queue": ["cdmiq"],
|
|
3423
|
-
"application/cpl+xml": ["cpl"],
|
|
3424
|
-
"application/cu-seeme": ["cu"],
|
|
3425
|
-
"application/cwl": ["cwl"],
|
|
3426
|
-
"application/dash+xml": ["mpd"],
|
|
3427
|
-
"application/dash-patch+xml": ["mpp"],
|
|
3428
|
-
"application/davmount+xml": ["davmount"],
|
|
3429
|
-
"application/dicom": ["dcm"],
|
|
3430
|
-
"application/docbook+xml": ["dbk"],
|
|
3431
|
-
"application/dssc+der": ["dssc"],
|
|
3432
|
-
"application/dssc+xml": ["xdssc"],
|
|
3433
|
-
"application/ecmascript": ["ecma"],
|
|
3434
|
-
"application/emma+xml": ["emma"],
|
|
3435
|
-
"application/emotionml+xml": ["emotionml"],
|
|
3436
|
-
"application/epub+zip": ["epub"],
|
|
3437
|
-
"application/exi": ["exi"],
|
|
3438
|
-
"application/express": ["exp"],
|
|
3439
|
-
"application/fdf": ["fdf"],
|
|
3440
|
-
"application/fdt+xml": ["fdt"],
|
|
3441
|
-
"application/font-tdpfr": ["pfr"],
|
|
3442
|
-
"application/geo+json": ["geojson"],
|
|
3443
|
-
"application/gml+xml": ["gml"],
|
|
3444
|
-
"application/gpx+xml": ["gpx"],
|
|
3445
|
-
"application/gxf": ["gxf"],
|
|
3446
|
-
"application/gzip": ["gz"],
|
|
3447
|
-
"application/hjson": ["hjson"],
|
|
3448
|
-
"application/hyperstudio": ["stk"],
|
|
3449
|
-
"application/inkml+xml": ["ink", "inkml"],
|
|
3450
|
-
"application/ipfix": ["ipfix"],
|
|
3451
|
-
"application/its+xml": ["its"],
|
|
3452
|
-
"application/java-archive": ["jar", "war", "ear"],
|
|
3453
|
-
"application/java-serialized-object": ["ser"],
|
|
3454
|
-
"application/java-vm": ["class"],
|
|
3455
|
-
"application/javascript": ["*js"],
|
|
3456
|
-
"application/json": ["json", "map"],
|
|
3457
|
-
"application/json5": ["json5"],
|
|
3458
|
-
"application/jsonml+json": ["jsonml"],
|
|
3459
|
-
"application/ld+json": ["jsonld"],
|
|
3460
|
-
"application/lgr+xml": ["lgr"],
|
|
3461
|
-
"application/lost+xml": ["lostxml"],
|
|
3462
|
-
"application/mac-binhex40": ["hqx"],
|
|
3463
|
-
"application/mac-compactpro": ["cpt"],
|
|
3464
|
-
"application/mads+xml": ["mads"],
|
|
3465
|
-
"application/manifest+json": ["webmanifest"],
|
|
3466
|
-
"application/marc": ["mrc"],
|
|
3467
|
-
"application/marcxml+xml": ["mrcx"],
|
|
3468
|
-
"application/mathematica": ["ma", "nb", "mb"],
|
|
3469
|
-
"application/mathml+xml": ["mathml"],
|
|
3470
|
-
"application/mbox": ["mbox"],
|
|
3471
|
-
"application/media-policy-dataset+xml": ["mpf"],
|
|
3472
|
-
"application/mediaservercontrol+xml": ["mscml"],
|
|
3473
|
-
"application/metalink+xml": ["metalink"],
|
|
3474
|
-
"application/metalink4+xml": ["meta4"],
|
|
3475
|
-
"application/mets+xml": ["mets"],
|
|
3476
|
-
"application/mmt-aei+xml": ["maei"],
|
|
3477
|
-
"application/mmt-usd+xml": ["musd"],
|
|
3478
|
-
"application/mods+xml": ["mods"],
|
|
3479
|
-
"application/mp21": ["m21", "mp21"],
|
|
3480
|
-
"application/mp4": ["*mp4", "*mpg4", "mp4s", "m4p"],
|
|
3481
|
-
"application/msix": ["msix"],
|
|
3482
|
-
"application/msixbundle": ["msixbundle"],
|
|
3483
|
-
"application/msword": ["doc", "dot"],
|
|
3484
|
-
"application/mxf": ["mxf"],
|
|
3485
|
-
"application/n-quads": ["nq"],
|
|
3486
|
-
"application/n-triples": ["nt"],
|
|
3487
|
-
"application/node": ["cjs"],
|
|
3488
|
-
"application/octet-stream": [
|
|
3489
|
-
"bin",
|
|
3490
|
-
"dms",
|
|
3491
|
-
"lrf",
|
|
3492
|
-
"mar",
|
|
3493
|
-
"so",
|
|
3494
|
-
"dist",
|
|
3495
|
-
"distz",
|
|
3496
|
-
"pkg",
|
|
3497
|
-
"bpk",
|
|
3498
|
-
"dump",
|
|
3499
|
-
"elc",
|
|
3500
|
-
"deploy",
|
|
3501
|
-
"exe",
|
|
3502
|
-
"dll",
|
|
3503
|
-
"deb",
|
|
3504
|
-
"dmg",
|
|
3505
|
-
"iso",
|
|
3506
|
-
"img",
|
|
3507
|
-
"msi",
|
|
3508
|
-
"msp",
|
|
3509
|
-
"msm",
|
|
3510
|
-
"buffer"
|
|
3511
|
-
],
|
|
3512
|
-
"application/oda": ["oda"],
|
|
3513
|
-
"application/oebps-package+xml": ["opf"],
|
|
3514
|
-
"application/ogg": ["ogx"],
|
|
3515
|
-
"application/omdoc+xml": ["omdoc"],
|
|
3516
|
-
"application/onenote": [
|
|
3517
|
-
"onetoc",
|
|
3518
|
-
"onetoc2",
|
|
3519
|
-
"onetmp",
|
|
3520
|
-
"onepkg",
|
|
3521
|
-
"one",
|
|
3522
|
-
"onea"
|
|
3523
|
-
],
|
|
3524
|
-
"application/oxps": ["oxps"],
|
|
3525
|
-
"application/p2p-overlay+xml": ["relo"],
|
|
3526
|
-
"application/patch-ops-error+xml": ["xer"],
|
|
3527
|
-
"application/pdf": ["pdf"],
|
|
3528
|
-
"application/pgp-encrypted": ["pgp"],
|
|
3529
|
-
"application/pgp-keys": ["asc"],
|
|
3530
|
-
"application/pgp-signature": ["sig", "*asc"],
|
|
3531
|
-
"application/pics-rules": ["prf"],
|
|
3532
|
-
"application/pkcs10": ["p10"],
|
|
3533
|
-
"application/pkcs7-mime": ["p7m", "p7c"],
|
|
3534
|
-
"application/pkcs7-signature": ["p7s"],
|
|
3535
|
-
"application/pkcs8": ["p8"],
|
|
3536
|
-
"application/pkix-attr-cert": ["ac"],
|
|
3537
|
-
"application/pkix-cert": ["cer"],
|
|
3538
|
-
"application/pkix-crl": ["crl"],
|
|
3539
|
-
"application/pkix-pkipath": ["pkipath"],
|
|
3540
|
-
"application/pkixcmp": ["pki"],
|
|
3541
|
-
"application/pls+xml": ["pls"],
|
|
3542
|
-
"application/postscript": ["ai", "eps", "ps"],
|
|
3543
|
-
"application/provenance+xml": ["provx"],
|
|
3544
|
-
"application/pskc+xml": ["pskcxml"],
|
|
3545
|
-
"application/raml+yaml": ["raml"],
|
|
3546
|
-
"application/rdf+xml": ["rdf", "owl"],
|
|
3547
|
-
"application/reginfo+xml": ["rif"],
|
|
3548
|
-
"application/relax-ng-compact-syntax": ["rnc"],
|
|
3549
|
-
"application/resource-lists+xml": ["rl"],
|
|
3550
|
-
"application/resource-lists-diff+xml": ["rld"],
|
|
3551
|
-
"application/rls-services+xml": ["rs"],
|
|
3552
|
-
"application/route-apd+xml": ["rapd"],
|
|
3553
|
-
"application/route-s-tsid+xml": ["sls"],
|
|
3554
|
-
"application/route-usd+xml": ["rusd"],
|
|
3555
|
-
"application/rpki-ghostbusters": ["gbr"],
|
|
3556
|
-
"application/rpki-manifest": ["mft"],
|
|
3557
|
-
"application/rpki-roa": ["roa"],
|
|
3558
|
-
"application/rsd+xml": ["rsd"],
|
|
3559
|
-
"application/rss+xml": ["rss"],
|
|
3560
|
-
"application/rtf": ["rtf"],
|
|
3561
|
-
"application/sbml+xml": ["sbml"],
|
|
3562
|
-
"application/scvp-cv-request": ["scq"],
|
|
3563
|
-
"application/scvp-cv-response": ["scs"],
|
|
3564
|
-
"application/scvp-vp-request": ["spq"],
|
|
3565
|
-
"application/scvp-vp-response": ["spp"],
|
|
3566
|
-
"application/sdp": ["sdp"],
|
|
3567
|
-
"application/senml+xml": ["senmlx"],
|
|
3568
|
-
"application/sensml+xml": ["sensmlx"],
|
|
3569
|
-
"application/set-payment-initiation": ["setpay"],
|
|
3570
|
-
"application/set-registration-initiation": ["setreg"],
|
|
3571
|
-
"application/shf+xml": ["shf"],
|
|
3572
|
-
"application/sieve": ["siv", "sieve"],
|
|
3573
|
-
"application/smil+xml": ["smi", "smil"],
|
|
3574
|
-
"application/sparql-query": ["rq"],
|
|
3575
|
-
"application/sparql-results+xml": ["srx"],
|
|
3576
|
-
"application/sql": ["sql"],
|
|
3577
|
-
"application/srgs": ["gram"],
|
|
3578
|
-
"application/srgs+xml": ["grxml"],
|
|
3579
|
-
"application/sru+xml": ["sru"],
|
|
3580
|
-
"application/ssdl+xml": ["ssdl"],
|
|
3581
|
-
"application/ssml+xml": ["ssml"],
|
|
3582
|
-
"application/swid+xml": ["swidtag"],
|
|
3583
|
-
"application/tei+xml": ["tei", "teicorpus"],
|
|
3584
|
-
"application/thraud+xml": ["tfi"],
|
|
3585
|
-
"application/timestamped-data": ["tsd"],
|
|
3586
|
-
"application/toml": ["toml"],
|
|
3587
|
-
"application/trig": ["trig"],
|
|
3588
|
-
"application/ttml+xml": ["ttml"],
|
|
3589
|
-
"application/ubjson": ["ubj"],
|
|
3590
|
-
"application/urc-ressheet+xml": ["rsheet"],
|
|
3591
|
-
"application/urc-targetdesc+xml": ["td"],
|
|
3592
|
-
"application/voicexml+xml": ["vxml"],
|
|
3593
|
-
"application/wasm": ["wasm"],
|
|
3594
|
-
"application/watcherinfo+xml": ["wif"],
|
|
3595
|
-
"application/widget": ["wgt"],
|
|
3596
|
-
"application/winhlp": ["hlp"],
|
|
3597
|
-
"application/wsdl+xml": ["wsdl"],
|
|
3598
|
-
"application/wspolicy+xml": ["wspolicy"],
|
|
3599
|
-
"application/xaml+xml": ["xaml"],
|
|
3600
|
-
"application/xcap-att+xml": ["xav"],
|
|
3601
|
-
"application/xcap-caps+xml": ["xca"],
|
|
3602
|
-
"application/xcap-diff+xml": ["xdf"],
|
|
3603
|
-
"application/xcap-el+xml": ["xel"],
|
|
3604
|
-
"application/xcap-ns+xml": ["xns"],
|
|
3605
|
-
"application/xenc+xml": ["xenc"],
|
|
3606
|
-
"application/xfdf": ["xfdf"],
|
|
3607
|
-
"application/xhtml+xml": ["xhtml", "xht"],
|
|
3608
|
-
"application/xliff+xml": ["xlf"],
|
|
3609
|
-
"application/xml": ["xml", "xsl", "xsd", "rng"],
|
|
3610
|
-
"application/xml-dtd": ["dtd"],
|
|
3611
|
-
"application/xop+xml": ["xop"],
|
|
3612
|
-
"application/xproc+xml": ["xpl"],
|
|
3613
|
-
"application/xslt+xml": ["*xsl", "xslt"],
|
|
3614
|
-
"application/xspf+xml": ["xspf"],
|
|
3615
|
-
"application/xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
|
|
3616
|
-
"application/yang": ["yang"],
|
|
3617
|
-
"application/yin+xml": ["yin"],
|
|
3618
|
-
"application/zip": ["zip"],
|
|
3619
|
-
"application/zip+dotlottie": ["lottie"],
|
|
3620
|
-
"audio/3gpp": ["*3gpp"],
|
|
3621
|
-
"audio/aac": ["adts", "aac"],
|
|
3622
|
-
"audio/adpcm": ["adp"],
|
|
3623
|
-
"audio/amr": ["amr"],
|
|
3624
|
-
"audio/basic": ["au", "snd"],
|
|
3625
|
-
"audio/midi": ["mid", "midi", "kar", "rmi"],
|
|
3626
|
-
"audio/mobile-xmf": ["mxmf"],
|
|
3627
|
-
"audio/mp3": ["*mp3"],
|
|
3628
|
-
"audio/mp4": ["m4a", "mp4a", "m4b"],
|
|
3629
|
-
"audio/mpeg": ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"],
|
|
3630
|
-
"audio/ogg": ["oga", "ogg", "spx", "opus"],
|
|
3631
|
-
"audio/s3m": ["s3m"],
|
|
3632
|
-
"audio/silk": ["sil"],
|
|
3633
|
-
"audio/wav": ["wav"],
|
|
3634
|
-
"audio/wave": ["*wav"],
|
|
3635
|
-
"audio/webm": ["weba"],
|
|
3636
|
-
"audio/xm": ["xm"],
|
|
3637
|
-
"font/collection": ["ttc"],
|
|
3638
|
-
"font/otf": ["otf"],
|
|
3639
|
-
"font/ttf": ["ttf"],
|
|
3640
|
-
"font/woff": ["woff"],
|
|
3641
|
-
"font/woff2": ["woff2"],
|
|
3642
|
-
"image/aces": ["exr"],
|
|
3643
|
-
"image/apng": ["apng"],
|
|
3644
|
-
"image/avci": ["avci"],
|
|
3645
|
-
"image/avcs": ["avcs"],
|
|
3646
|
-
"image/avif": ["avif"],
|
|
3647
|
-
"image/bmp": ["bmp", "dib"],
|
|
3648
|
-
"image/cgm": ["cgm"],
|
|
3649
|
-
"image/dicom-rle": ["drle"],
|
|
3650
|
-
"image/dpx": ["dpx"],
|
|
3651
|
-
"image/emf": ["emf"],
|
|
3652
|
-
"image/fits": ["fits"],
|
|
3653
|
-
"image/g3fax": ["g3"],
|
|
3654
|
-
"image/gif": ["gif"],
|
|
3655
|
-
"image/heic": ["heic"],
|
|
3656
|
-
"image/heic-sequence": ["heics"],
|
|
3657
|
-
"image/heif": ["heif"],
|
|
3658
|
-
"image/heif-sequence": ["heifs"],
|
|
3659
|
-
"image/hej2k": ["hej2"],
|
|
3660
|
-
"image/ief": ["ief"],
|
|
3661
|
-
"image/jaii": ["jaii"],
|
|
3662
|
-
"image/jais": ["jais"],
|
|
3663
|
-
"image/jls": ["jls"],
|
|
3664
|
-
"image/jp2": ["jp2", "jpg2"],
|
|
3665
|
-
"image/jpeg": ["jpg", "jpeg", "jpe"],
|
|
3666
|
-
"image/jph": ["jph"],
|
|
3667
|
-
"image/jphc": ["jhc"],
|
|
3668
|
-
"image/jpm": ["jpm", "jpgm"],
|
|
3669
|
-
"image/jpx": ["jpx", "jpf"],
|
|
3670
|
-
"image/jxl": ["jxl"],
|
|
3671
|
-
"image/jxr": ["jxr"],
|
|
3672
|
-
"image/jxra": ["jxra"],
|
|
3673
|
-
"image/jxrs": ["jxrs"],
|
|
3674
|
-
"image/jxs": ["jxs"],
|
|
3675
|
-
"image/jxsc": ["jxsc"],
|
|
3676
|
-
"image/jxsi": ["jxsi"],
|
|
3677
|
-
"image/jxss": ["jxss"],
|
|
3678
|
-
"image/ktx": ["ktx"],
|
|
3679
|
-
"image/ktx2": ["ktx2"],
|
|
3680
|
-
"image/pjpeg": ["jfif"],
|
|
3681
|
-
"image/png": ["png"],
|
|
3682
|
-
"image/sgi": ["sgi"],
|
|
3683
|
-
"image/svg+xml": ["svg", "svgz"],
|
|
3684
|
-
"image/t38": ["t38"],
|
|
3685
|
-
"image/tiff": ["tif", "tiff"],
|
|
3686
|
-
"image/tiff-fx": ["tfx"],
|
|
3687
|
-
"image/webp": ["webp"],
|
|
3688
|
-
"image/wmf": ["wmf"],
|
|
3689
|
-
"message/disposition-notification": ["disposition-notification"],
|
|
3690
|
-
"message/global": ["u8msg"],
|
|
3691
|
-
"message/global-delivery-status": ["u8dsn"],
|
|
3692
|
-
"message/global-disposition-notification": ["u8mdn"],
|
|
3693
|
-
"message/global-headers": ["u8hdr"],
|
|
3694
|
-
"message/rfc822": ["eml", "mime", "mht", "mhtml"],
|
|
3695
|
-
"model/3mf": ["3mf"],
|
|
3696
|
-
"model/gltf+json": ["gltf"],
|
|
3697
|
-
"model/gltf-binary": ["glb"],
|
|
3698
|
-
"model/iges": ["igs", "iges"],
|
|
3699
|
-
"model/jt": ["jt"],
|
|
3700
|
-
"model/mesh": ["msh", "mesh", "silo"],
|
|
3701
|
-
"model/mtl": ["mtl"],
|
|
3702
|
-
"model/obj": ["obj"],
|
|
3703
|
-
"model/prc": ["prc"],
|
|
3704
|
-
"model/step": ["step", "stp", "stpnc", "p21", "210"],
|
|
3705
|
-
"model/step+xml": ["stpx"],
|
|
3706
|
-
"model/step+zip": ["stpz"],
|
|
3707
|
-
"model/step-xml+zip": ["stpxz"],
|
|
3708
|
-
"model/stl": ["stl"],
|
|
3709
|
-
"model/u3d": ["u3d"],
|
|
3710
|
-
"model/vrml": ["wrl", "vrml"],
|
|
3711
|
-
"model/x3d+binary": ["*x3db", "x3dbz"],
|
|
3712
|
-
"model/x3d+fastinfoset": ["x3db"],
|
|
3713
|
-
"model/x3d+vrml": ["*x3dv", "x3dvz"],
|
|
3714
|
-
"model/x3d+xml": ["x3d", "x3dz"],
|
|
3715
|
-
"model/x3d-vrml": ["x3dv"],
|
|
3716
|
-
"text/cache-manifest": ["appcache", "manifest"],
|
|
3717
|
-
"text/calendar": ["ics", "ifb"],
|
|
3718
|
-
"text/coffeescript": ["coffee", "litcoffee"],
|
|
3719
|
-
"text/css": ["css"],
|
|
3720
|
-
"text/csv": ["csv"],
|
|
3721
|
-
"text/html": ["html", "htm", "shtml"],
|
|
3722
|
-
"text/jade": ["jade"],
|
|
3723
|
-
"text/javascript": ["js", "mjs"],
|
|
3724
|
-
"text/jsx": ["jsx"],
|
|
3725
|
-
"text/less": ["less"],
|
|
3726
|
-
"text/markdown": ["md", "markdown"],
|
|
3727
|
-
"text/mathml": ["mml"],
|
|
3728
|
-
"text/mdx": ["mdx"],
|
|
3729
|
-
"text/n3": ["n3"],
|
|
3730
|
-
"text/plain": ["txt", "text", "conf", "def", "list", "log", "in", "ini"],
|
|
3731
|
-
"text/richtext": ["rtx"],
|
|
3732
|
-
"text/rtf": ["*rtf"],
|
|
3733
|
-
"text/sgml": ["sgml", "sgm"],
|
|
3734
|
-
"text/shex": ["shex"],
|
|
3735
|
-
"text/slim": ["slim", "slm"],
|
|
3736
|
-
"text/spdx": ["spdx"],
|
|
3737
|
-
"text/stylus": ["stylus", "styl"],
|
|
3738
|
-
"text/tab-separated-values": ["tsv"],
|
|
3739
|
-
"text/troff": ["t", "tr", "roff", "man", "me", "ms"],
|
|
3740
|
-
"text/turtle": ["ttl"],
|
|
3741
|
-
"text/uri-list": ["uri", "uris", "urls"],
|
|
3742
|
-
"text/vcard": ["vcard"],
|
|
3743
|
-
"text/vtt": ["vtt"],
|
|
3744
|
-
"text/wgsl": ["wgsl"],
|
|
3745
|
-
"text/xml": ["*xml"],
|
|
3746
|
-
"text/yaml": ["yaml", "yml"],
|
|
3747
|
-
"video/3gpp": ["3gp", "3gpp"],
|
|
3748
|
-
"video/3gpp2": ["3g2"],
|
|
3749
|
-
"video/h261": ["h261"],
|
|
3750
|
-
"video/h263": ["h263"],
|
|
3751
|
-
"video/h264": ["h264"],
|
|
3752
|
-
"video/iso.segment": ["m4s"],
|
|
3753
|
-
"video/jpeg": ["jpgv"],
|
|
3754
|
-
"video/jpm": ["*jpm", "*jpgm"],
|
|
3755
|
-
"video/mj2": ["mj2", "mjp2"],
|
|
3756
|
-
"video/mp2t": ["ts", "m2t", "m2ts", "mts"],
|
|
3757
|
-
"video/mp4": ["mp4", "mp4v", "mpg4"],
|
|
3758
|
-
"video/mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v"],
|
|
3759
|
-
"video/ogg": ["ogv"],
|
|
3760
|
-
"video/quicktime": ["qt", "mov"],
|
|
3761
|
-
"video/webm": ["webm"]
|
|
3762
|
-
};
|
|
3763
|
-
Object.freeze(types2);
|
|
3764
|
-
var standard_default = types2;
|
|
3765
|
-
|
|
3766
|
-
// node_modules/mime/dist/src/Mime.js
|
|
3767
|
-
var __classPrivateFieldGet = function(receiver, state, kind, f) {
|
|
3768
|
-
if (kind === "a" && !f)
|
|
3769
|
-
throw new TypeError("Private accessor was defined without a getter");
|
|
3770
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
3771
|
-
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
3772
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
3773
|
-
};
|
|
3774
|
-
var _Mime_extensionToType;
|
|
3775
|
-
var _Mime_typeToExtension;
|
|
3776
|
-
var _Mime_typeToExtensions;
|
|
3777
|
-
|
|
3778
|
-
class Mime {
|
|
3779
|
-
constructor(...args) {
|
|
3780
|
-
_Mime_extensionToType.set(this, new Map);
|
|
3781
|
-
_Mime_typeToExtension.set(this, new Map);
|
|
3782
|
-
_Mime_typeToExtensions.set(this, new Map);
|
|
3783
|
-
for (const arg of args) {
|
|
3784
|
-
this.define(arg);
|
|
3785
|
-
}
|
|
3786
|
-
}
|
|
3787
|
-
define(typeMap, force = false) {
|
|
3788
|
-
for (let [type, extensions] of Object.entries(typeMap)) {
|
|
3789
|
-
type = type.toLowerCase();
|
|
3790
|
-
extensions = extensions.map((ext) => ext.toLowerCase());
|
|
3791
|
-
if (!__classPrivateFieldGet(this, _Mime_typeToExtensions, "f").has(type)) {
|
|
3792
|
-
__classPrivateFieldGet(this, _Mime_typeToExtensions, "f").set(type, new Set);
|
|
3793
|
-
}
|
|
3794
|
-
const allExtensions = __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").get(type);
|
|
3795
|
-
let first = true;
|
|
3796
|
-
for (let extension of extensions) {
|
|
3797
|
-
const starred = extension.startsWith("*");
|
|
3798
|
-
extension = starred ? extension.slice(1) : extension;
|
|
3799
|
-
allExtensions?.add(extension);
|
|
3800
|
-
if (first) {
|
|
3801
|
-
__classPrivateFieldGet(this, _Mime_typeToExtension, "f").set(type, extension);
|
|
3802
|
-
}
|
|
3803
|
-
first = false;
|
|
3804
|
-
if (starred)
|
|
3805
|
-
continue;
|
|
3806
|
-
const currentType = __classPrivateFieldGet(this, _Mime_extensionToType, "f").get(extension);
|
|
3807
|
-
if (currentType && currentType != type && !force) {
|
|
3808
|
-
throw new Error(`"${type} -> ${extension}" conflicts with "${currentType} -> ${extension}". Pass \`force=true\` to override this definition.`);
|
|
3809
|
-
}
|
|
3810
|
-
__classPrivateFieldGet(this, _Mime_extensionToType, "f").set(extension, type);
|
|
3811
|
-
}
|
|
3812
|
-
}
|
|
3813
|
-
return this;
|
|
3814
|
-
}
|
|
3815
|
-
getType(path3) {
|
|
3816
|
-
if (typeof path3 !== "string")
|
|
3817
|
-
return null;
|
|
3818
|
-
const last = path3.replace(/^.*[/\\]/s, "").toLowerCase();
|
|
3819
|
-
const ext = last.replace(/^.*\./s, "").toLowerCase();
|
|
3820
|
-
const hasPath = last.length < path3.length;
|
|
3821
|
-
const hasDot = ext.length < last.length - 1;
|
|
3822
|
-
if (!hasDot && hasPath)
|
|
3823
|
-
return null;
|
|
3824
|
-
return __classPrivateFieldGet(this, _Mime_extensionToType, "f").get(ext) ?? null;
|
|
3825
|
-
}
|
|
3826
|
-
getExtension(type) {
|
|
3827
|
-
if (typeof type !== "string")
|
|
3828
|
-
return null;
|
|
3829
|
-
type = type?.split?.(";")[0];
|
|
3830
|
-
return (type && __classPrivateFieldGet(this, _Mime_typeToExtension, "f").get(type.trim().toLowerCase())) ?? null;
|
|
3831
|
-
}
|
|
3832
|
-
getAllExtensions(type) {
|
|
3833
|
-
if (typeof type !== "string")
|
|
3834
|
-
return null;
|
|
3835
|
-
return __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").get(type.toLowerCase()) ?? null;
|
|
3836
|
-
}
|
|
3837
|
-
_freeze() {
|
|
3838
|
-
this.define = () => {
|
|
3839
|
-
throw new Error("define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances");
|
|
3840
|
-
};
|
|
3841
|
-
Object.freeze(this);
|
|
3842
|
-
for (const extensions of __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").values()) {
|
|
3843
|
-
Object.freeze(extensions);
|
|
3844
|
-
}
|
|
3845
|
-
return this;
|
|
3846
|
-
}
|
|
3847
|
-
_getTestState() {
|
|
3848
|
-
return {
|
|
3849
|
-
types: __classPrivateFieldGet(this, _Mime_extensionToType, "f"),
|
|
3850
|
-
extensions: __classPrivateFieldGet(this, _Mime_typeToExtension, "f")
|
|
3851
|
-
};
|
|
3852
|
-
}
|
|
3853
|
-
}
|
|
3854
|
-
_Mime_extensionToType = new WeakMap, _Mime_typeToExtension = new WeakMap, _Mime_typeToExtensions = new WeakMap;
|
|
3855
|
-
var Mime_default = Mime;
|
|
3856
|
-
|
|
3857
|
-
// node_modules/mime/dist/src/index.js
|
|
3858
|
-
var src_default = new Mime_default(standard_default, other_default)._freeze();
|
|
3859
|
-
|
|
3860
2858
|
// src/config-file.ts
|
|
3861
|
-
|
|
3862
|
-
|
|
3863
|
-
|
|
3864
|
-
|
|
3865
|
-
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
staging: "https://staging-cms.rodyssey.ai/api/webapps/config",
|
|
3871
|
-
production: "https://cms.rodyssey.ai/api/webapps/config"
|
|
3872
|
-
};
|
|
3873
|
-
function parseJsonOption(value, optionName) {
|
|
3874
|
-
const maybePath = resolve(process.cwd(), value);
|
|
3875
|
-
const raw = existsSync4(maybePath) ? readFileSync3(maybePath, "utf-8") : value;
|
|
3876
|
-
try {
|
|
3877
|
-
const parsed = JSON.parse(raw);
|
|
3878
|
-
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
3879
|
-
throw new Error("value must be a JSON object");
|
|
3880
|
-
}
|
|
3881
|
-
return parsed;
|
|
3882
|
-
} catch (error) {
|
|
3883
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
3884
|
-
throw new Error(`Invalid ${optionName}: ${message}`);
|
|
3885
|
-
}
|
|
3886
|
-
}
|
|
3887
|
-
function coerceMaybeNull(value) {
|
|
3888
|
-
if (value === undefined)
|
|
3889
|
-
return;
|
|
3890
|
-
if (value === "null")
|
|
3891
|
-
return null;
|
|
3892
|
-
return value;
|
|
2859
|
+
var DEFAULT_CONFIG_FILE = "webapp.config.json";
|
|
2860
|
+
function isClearSignalEmpty(value) {
|
|
2861
|
+
if (value === null)
|
|
2862
|
+
return true;
|
|
2863
|
+
if (Array.isArray(value) && value.length === 0)
|
|
2864
|
+
return true;
|
|
2865
|
+
if (isPlainObject(value) && Object.keys(value).length === 0)
|
|
2866
|
+
return true;
|
|
2867
|
+
return false;
|
|
3893
2868
|
}
|
|
3894
|
-
function
|
|
3895
|
-
const
|
|
3896
|
-
|
|
3897
|
-
if (
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
console.error(`\uD83D\uDCA1 Use one of these environments: ${Object.keys(CONFIG_URLS).join(", ")}, pass --url, or set WEBAPP_CONFIG_URL in your .env file.`);
|
|
3901
|
-
process.exit(1);
|
|
3902
|
-
}
|
|
3903
|
-
const url = new URL(configUrl);
|
|
3904
|
-
if (!options.host && !options.port) {
|
|
3905
|
-
return url.toString().replace(/\/$/, "");
|
|
2869
|
+
function sanitizeDetails(details) {
|
|
2870
|
+
const out = {};
|
|
2871
|
+
for (const [key, value] of Object.entries(details)) {
|
|
2872
|
+
if (isClearSignalEmpty(value))
|
|
2873
|
+
continue;
|
|
2874
|
+
out[key] = value;
|
|
3906
2875
|
}
|
|
3907
|
-
|
|
3908
|
-
url.hostname = options.host;
|
|
3909
|
-
if (options.port)
|
|
3910
|
-
url.port = String(options.port);
|
|
3911
|
-
return url.toString().replace(/\/$/, "");
|
|
2876
|
+
return out;
|
|
3912
2877
|
}
|
|
3913
|
-
function
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
const description = coerceMaybeNull(options.description);
|
|
3917
|
-
const coverImg = coerceMaybeNull(options.coverImg);
|
|
3918
|
-
if (title !== undefined)
|
|
3919
|
-
payload.title = title;
|
|
3920
|
-
if (description !== undefined)
|
|
3921
|
-
payload.description = description;
|
|
3922
|
-
if (coverImg !== undefined)
|
|
3923
|
-
payload.coverImg = coverImg;
|
|
3924
|
-
if (options.localization !== undefined) {
|
|
3925
|
-
payload.localization = options.localization === "null" ? null : parseJsonOption(options.localization, "--localization");
|
|
2878
|
+
function unwrapDetails(payload) {
|
|
2879
|
+
if (isPlainObject(payload) && isPlainObject(payload.details)) {
|
|
2880
|
+
return payload.details;
|
|
3926
2881
|
}
|
|
3927
|
-
|
|
2882
|
+
if (isPlainObject(payload) && "details" in payload)
|
|
2883
|
+
return {};
|
|
2884
|
+
if (isPlainObject(payload))
|
|
2885
|
+
return payload;
|
|
2886
|
+
return {};
|
|
3928
2887
|
}
|
|
3929
|
-
function
|
|
3930
|
-
const
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
2888
|
+
function projectDetailsPatch(current, patch) {
|
|
2889
|
+
const next = { ...current };
|
|
2890
|
+
for (const [key, value] of Object.entries(patch)) {
|
|
2891
|
+
if (isClearSignalEmpty(value)) {
|
|
2892
|
+
delete next[key];
|
|
2893
|
+
} else {
|
|
2894
|
+
next[key] = value;
|
|
2895
|
+
}
|
|
3934
2896
|
}
|
|
3935
|
-
return
|
|
3936
|
-
}
|
|
3937
|
-
function ensureDeployToken(env) {
|
|
3938
|
-
if (process.env.DEPLOY_TOKEN)
|
|
3939
|
-
return;
|
|
3940
|
-
console.error("❌ Error: DEPLOY_TOKEN is not set in environment variables.");
|
|
3941
|
-
console.info(`\uD83D\uDCA1 Please check your .env or .env.${env} file.`);
|
|
3942
|
-
process.exit(1);
|
|
2897
|
+
return next;
|
|
3943
2898
|
}
|
|
3944
|
-
function
|
|
3945
|
-
return
|
|
2899
|
+
function computeDetailsDelta(current, fileDetails) {
|
|
2900
|
+
return diffJson(current, projectDetailsPatch(current, fileDetails));
|
|
3946
2901
|
}
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
const CONFIG_URL = getConfigUrl(options, false);
|
|
3951
|
-
if (!CONFIG_URL) {
|
|
3952
|
-
throw new Error("No webapp config endpoint configured.");
|
|
2902
|
+
function readConfigFile(filePath) {
|
|
2903
|
+
if (!existsSync4(filePath)) {
|
|
2904
|
+
throw new Error(`Config file not found: ${filePath}. Run \`ro app config pull\` first.`);
|
|
3953
2905
|
}
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
},
|
|
3961
|
-
body: JSON.stringify({ webappId, details: options.details })
|
|
3962
|
-
});
|
|
3963
|
-
if (!response.ok) {
|
|
3964
|
-
const errorText = await response.text();
|
|
3965
|
-
throw new Error(`Config update failed: ${response.status} ${response.statusText}
|
|
3966
|
-
${errorText}`);
|
|
2906
|
+
let raw;
|
|
2907
|
+
try {
|
|
2908
|
+
raw = readFileSync4(filePath, "utf-8");
|
|
2909
|
+
} catch (error) {
|
|
2910
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
2911
|
+
throw new Error(`Could not read ${filePath}: ${message}`);
|
|
3967
2912
|
}
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
}
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
const webappId = resolveWebappId(options.webappId);
|
|
3975
|
-
const CONFIG_URL = getConfigUrl(options, false);
|
|
3976
|
-
if (!CONFIG_URL) {
|
|
3977
|
-
throw new Error("No webapp config endpoint configured.");
|
|
2913
|
+
let parsed;
|
|
2914
|
+
try {
|
|
2915
|
+
parsed = JSON.parse(raw);
|
|
2916
|
+
} catch (error) {
|
|
2917
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
2918
|
+
throw new Error(`Invalid JSON in ${filePath}: ${message}`);
|
|
3978
2919
|
}
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
url.searchParams.set("webappId", webappId);
|
|
3982
|
-
const response = await fetch(url, {
|
|
3983
|
-
method: "GET",
|
|
3984
|
-
headers: {
|
|
3985
|
-
Authorization: `Bearer ${process.env.DEPLOY_TOKEN}`,
|
|
3986
|
-
Accept: "application/json"
|
|
3987
|
-
}
|
|
3988
|
-
});
|
|
3989
|
-
if (!response.ok) {
|
|
3990
|
-
const errorText = await response.text();
|
|
3991
|
-
throw new Error(`Config fetch failed: ${response.status} ${response.statusText}
|
|
3992
|
-
${errorText}`);
|
|
2920
|
+
if (!isPlainObject(parsed)) {
|
|
2921
|
+
throw new Error(`${filePath} must contain a JSON object.`);
|
|
3993
2922
|
}
|
|
3994
|
-
return
|
|
2923
|
+
return parsed;
|
|
3995
2924
|
}
|
|
3996
|
-
async function
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
const
|
|
4009
|
-
|
|
4010
|
-
if (options.out) {
|
|
4011
|
-
writeFileSync3(options.out, `${output}
|
|
2925
|
+
async function pullWebappConfig(options) {
|
|
2926
|
+
const raw = await fetchWebappConfig({
|
|
2927
|
+
env: options.env,
|
|
2928
|
+
webappId: options.webappId,
|
|
2929
|
+
url: options.url,
|
|
2930
|
+
host: options.host,
|
|
2931
|
+
port: options.port
|
|
2932
|
+
});
|
|
2933
|
+
const details = unwrapDetails(raw);
|
|
2934
|
+
const cleaned = sanitizeDetails(details);
|
|
2935
|
+
const stripped = Object.keys(details).length - Object.keys(cleaned).length;
|
|
2936
|
+
const fileName = options.out || DEFAULT_CONFIG_FILE;
|
|
2937
|
+
const outPath = resolve2(process.cwd(), fileName);
|
|
2938
|
+
writeFileSync4(outPath, `${JSON.stringify(cleaned, null, 2)}
|
|
4012
2939
|
`, "utf-8");
|
|
4013
|
-
|
|
4014
|
-
return;
|
|
4015
|
-
}
|
|
4016
|
-
console.log(output);
|
|
2940
|
+
console.log(`✅ Wrote ${fileName} (${Object.keys(cleaned).length} fields, ${stripped} empty default${stripped === 1 ? "" : "s"} stripped)`);
|
|
4017
2941
|
}
|
|
4018
|
-
async function
|
|
4019
|
-
|
|
4020
|
-
const
|
|
4021
|
-
const
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
2942
|
+
async function pushWebappConfig(options) {
|
|
2943
|
+
const fileName = options.file || DEFAULT_CONFIG_FILE;
|
|
2944
|
+
const filePath = resolve2(process.cwd(), fileName);
|
|
2945
|
+
const fileDetails = readConfigFile(filePath);
|
|
2946
|
+
const raw = await fetchWebappConfig({
|
|
2947
|
+
env: options.env,
|
|
2948
|
+
webappId: options.webappId,
|
|
2949
|
+
url: options.url,
|
|
2950
|
+
host: options.host,
|
|
2951
|
+
port: options.port
|
|
2952
|
+
});
|
|
2953
|
+
const current = unwrapDetails(raw);
|
|
2954
|
+
const deltas = computeDetailsDelta(current, fileDetails);
|
|
2955
|
+
console.log(formatObjectDelta(deltas, `Pushing ${fileName} → [${options.env}]`));
|
|
2956
|
+
if (deltas.length === 0) {
|
|
2957
|
+
console.log(`
|
|
2958
|
+
✓ Already in sync — nothing to push.`);
|
|
2959
|
+
return;
|
|
4033
2960
|
}
|
|
4034
|
-
console.log(`\uD83D\uDCCD Webapp ID: ${webappId}
|
|
4035
|
-
`);
|
|
4036
2961
|
if (options.dryRun) {
|
|
4037
|
-
console.log(
|
|
4038
|
-
|
|
2962
|
+
console.log(`
|
|
2963
|
+
↷ Dry run — no request sent.`);
|
|
4039
2964
|
return;
|
|
4040
2965
|
}
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
2966
|
+
const tty = !!process.stdin.isTTY && !!process.stdout.isTTY;
|
|
2967
|
+
if (!options.yes) {
|
|
2968
|
+
if (!tty) {
|
|
2969
|
+
throw new Error("Refusing to push in non-interactive mode. Pass --yes to confirm or --dry-run to preview.");
|
|
2970
|
+
}
|
|
2971
|
+
const answer = await prompt(`
|
|
2972
|
+
Proceed with push on [${options.env}]? (y/N): `);
|
|
2973
|
+
if (!isExplicitYes(answer)) {
|
|
2974
|
+
console.log("✋ Aborted.");
|
|
2975
|
+
return;
|
|
2976
|
+
}
|
|
2977
|
+
}
|
|
2978
|
+
await patchWebappConfig({
|
|
4044
2979
|
env: options.env,
|
|
4045
|
-
details,
|
|
4046
|
-
webappId,
|
|
2980
|
+
details: fileDetails,
|
|
2981
|
+
webappId: options.webappId,
|
|
4047
2982
|
url: options.url,
|
|
4048
2983
|
host: options.host,
|
|
4049
2984
|
port: options.port
|
|
4050
2985
|
});
|
|
4051
|
-
console.log(
|
|
4052
|
-
|
|
2986
|
+
console.log(`
|
|
2987
|
+
✅ Webapp config pushed.`);
|
|
2988
|
+
}
|
|
2989
|
+
async function checkConfigDriftOnDeploy(options) {
|
|
2990
|
+
const fileName = options.file || DEFAULT_CONFIG_FILE;
|
|
2991
|
+
const filePath = resolve2(process.cwd(), fileName);
|
|
2992
|
+
if (!existsSync4(filePath))
|
|
2993
|
+
return;
|
|
2994
|
+
if (!process.env.WEBAPP_ID) {
|
|
2995
|
+
console.warn(`
|
|
2996
|
+
⚠️ Skipping config drift check: WEBAPP_ID is not set.`);
|
|
2997
|
+
return;
|
|
2998
|
+
}
|
|
2999
|
+
let fileDetails;
|
|
3000
|
+
try {
|
|
3001
|
+
fileDetails = readConfigFile(filePath);
|
|
3002
|
+
} catch (error) {
|
|
3003
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
3004
|
+
console.warn(`
|
|
3005
|
+
⚠️ Skipping config drift check: ${message}`);
|
|
3006
|
+
return;
|
|
3007
|
+
}
|
|
3008
|
+
let current;
|
|
3009
|
+
try {
|
|
3010
|
+
const raw = await fetchWebappConfig({
|
|
3011
|
+
env: options.env,
|
|
3012
|
+
host: options.host,
|
|
3013
|
+
port: options.port
|
|
3014
|
+
});
|
|
3015
|
+
current = unwrapDetails(raw);
|
|
3016
|
+
} catch (error) {
|
|
3017
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
3018
|
+
console.warn(`
|
|
3019
|
+
⚠️ Could not check config drift: ${message}`);
|
|
3020
|
+
return;
|
|
3021
|
+
}
|
|
3022
|
+
const deltas = computeDetailsDelta(current, fileDetails);
|
|
3023
|
+
if (deltas.length === 0)
|
|
3024
|
+
return;
|
|
3025
|
+
console.log(`
|
|
3026
|
+
\uD83D\uDCDD ${fileName} differs from the CMS:`);
|
|
3027
|
+
console.log(formatObjectDelta(deltas, `Config drift on [${options.env}]`));
|
|
3028
|
+
const tty = !!process.stdin.isTTY && !!process.stdout.isTTY;
|
|
3029
|
+
let shouldPush = options.pushConfig === true;
|
|
3030
|
+
if (!shouldPush) {
|
|
3031
|
+
if (!tty) {
|
|
3032
|
+
console.log(`
|
|
3033
|
+
ℹ️ ${fileName} differs from CMS — run 'ro app config push' to sync, or deploy with --push-config.`);
|
|
3034
|
+
return;
|
|
3035
|
+
}
|
|
3036
|
+
const answer = await prompt(`
|
|
3037
|
+
Push ${fileName} to the CMS now? (y/N): `);
|
|
3038
|
+
shouldPush = isExplicitYes(answer);
|
|
3039
|
+
}
|
|
3040
|
+
if (!shouldPush) {
|
|
4053
3041
|
console.log(`
|
|
4054
|
-
|
|
3042
|
+
↷ Skipped. Run 'ro app config push' later to sync.`);
|
|
3043
|
+
return;
|
|
3044
|
+
}
|
|
3045
|
+
try {
|
|
3046
|
+
await patchWebappConfig({
|
|
3047
|
+
env: options.env,
|
|
3048
|
+
details: fileDetails,
|
|
3049
|
+
host: options.host,
|
|
3050
|
+
port: options.port
|
|
3051
|
+
});
|
|
3052
|
+
console.log("✅ Webapp config pushed.");
|
|
3053
|
+
} catch (error) {
|
|
3054
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
3055
|
+
console.warn(`
|
|
3056
|
+
⚠️ Config push failed (deploy still succeeded): ${message}`);
|
|
3057
|
+
console.warn(" Retry with: ro app config push");
|
|
4055
3058
|
}
|
|
4056
3059
|
}
|
|
4057
3060
|
|
|
4058
|
-
// src/
|
|
4059
|
-
|
|
4060
|
-
|
|
3061
|
+
// src/create.ts
|
|
3062
|
+
var PLACEHOLDER = "__PROJECT_NAME__";
|
|
3063
|
+
var PLACEHOLDER_LOWER = "__project_name__";
|
|
3064
|
+
var REPLACEMENT_FILES = {
|
|
3065
|
+
webapp: ["package.json", "index.html"],
|
|
3066
|
+
"webapp-fullstack": ["package.json", "wrangler.jsonc"]
|
|
3067
|
+
};
|
|
3068
|
+
function isObject2(value) {
|
|
3069
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
4061
3070
|
}
|
|
4062
|
-
function
|
|
4063
|
-
return
|
|
3071
|
+
function pickString(...values) {
|
|
3072
|
+
return values.find((value) => typeof value === "string" && value.length > 0);
|
|
4064
3073
|
}
|
|
4065
|
-
function
|
|
4066
|
-
|
|
3074
|
+
function nestedObject(value, key) {
|
|
3075
|
+
if (!isObject2(value))
|
|
3076
|
+
return;
|
|
3077
|
+
const nested = value[key];
|
|
3078
|
+
return isObject2(nested) ? nested : undefined;
|
|
4067
3079
|
}
|
|
4068
|
-
function
|
|
4069
|
-
|
|
3080
|
+
function extractWebappId(payload) {
|
|
3081
|
+
const webapp = nestedObject(payload, "webapp");
|
|
3082
|
+
return pickString(webapp?.id, webapp?.webappId);
|
|
4070
3083
|
}
|
|
4071
|
-
function
|
|
4072
|
-
|
|
3084
|
+
function extractDeployToken(payload) {
|
|
3085
|
+
const webapp = nestedObject(payload, "webapp");
|
|
3086
|
+
return pickString(webapp?.deployToken, webapp?.deploymentToken);
|
|
4073
3087
|
}
|
|
4074
|
-
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
var strike = (s) => paint("9", s);
|
|
4079
|
-
async function prompt(question) {
|
|
4080
|
-
const readline = await import("node:readline");
|
|
4081
|
-
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
4082
|
-
return new Promise((resolveAnswer) => {
|
|
4083
|
-
rl.question(question, (answer) => {
|
|
4084
|
-
rl.close();
|
|
4085
|
-
resolveAnswer(answer);
|
|
4086
|
-
});
|
|
3088
|
+
function writeProjectEnv(projectDir, provisioned) {
|
|
3089
|
+
upsertEnvFile(path2.join(projectDir, ".env"), {
|
|
3090
|
+
WEBAPP_ID: provisioned.webappId,
|
|
3091
|
+
DEPLOY_TOKEN: provisioned.deployToken
|
|
4087
3092
|
});
|
|
4088
3093
|
}
|
|
4089
|
-
function
|
|
4090
|
-
const
|
|
4091
|
-
|
|
3094
|
+
async function provisionWebapp(projectName, options) {
|
|
3095
|
+
const cmsUrl = resolveCmsUrl(options.env, options.cmsUrl);
|
|
3096
|
+
const token = resolveSessionToken(options.env);
|
|
3097
|
+
const createUrl = options.createUrl || `${cmsUrl}/api/cli/webapps/create`;
|
|
3098
|
+
const createResponse = await fetch(createUrl, {
|
|
3099
|
+
method: "POST",
|
|
3100
|
+
headers: {
|
|
3101
|
+
Accept: "application/json",
|
|
3102
|
+
Authorization: `Bearer ${token}`,
|
|
3103
|
+
"Content-Type": "application/json"
|
|
3104
|
+
},
|
|
3105
|
+
body: JSON.stringify({ title: projectName })
|
|
3106
|
+
});
|
|
3107
|
+
const createPayload = await readResponsePayload(createResponse);
|
|
3108
|
+
if (!createResponse.ok) {
|
|
3109
|
+
throw new Error(`CMS webapp creation failed: ${createResponse.status} ${createResponse.statusText}
|
|
3110
|
+
${JSON.stringify(createPayload, null, 2)}`);
|
|
3111
|
+
}
|
|
3112
|
+
const webappId = extractWebappId(createPayload);
|
|
3113
|
+
if (!webappId) {
|
|
3114
|
+
throw new Error(`CMS create response did not include webapp.id:
|
|
3115
|
+
${JSON.stringify(createPayload, null, 2)}`);
|
|
3116
|
+
}
|
|
3117
|
+
const deployToken = extractDeployToken(createPayload);
|
|
3118
|
+
if (!deployToken) {
|
|
3119
|
+
throw new Error(`CMS create response did not include webapp.deployToken:
|
|
3120
|
+
${JSON.stringify(createPayload, null, 2)}`);
|
|
3121
|
+
}
|
|
3122
|
+
return {
|
|
3123
|
+
webappId,
|
|
3124
|
+
deployToken
|
|
3125
|
+
};
|
|
3126
|
+
}
|
|
3127
|
+
async function fetchCmsConfig(cmsUrl, webappId, deployToken) {
|
|
3128
|
+
const url = new URL(`${cmsUrl}/api/webapps/config`);
|
|
3129
|
+
url.searchParams.set("webappId", webappId);
|
|
3130
|
+
const response = await fetch(url, {
|
|
3131
|
+
method: "GET",
|
|
3132
|
+
headers: {
|
|
3133
|
+
Authorization: `Bearer ${deployToken}`,
|
|
3134
|
+
Accept: "application/json"
|
|
3135
|
+
}
|
|
3136
|
+
});
|
|
3137
|
+
if (!response.ok) {
|
|
3138
|
+
const errorText = await response.text();
|
|
3139
|
+
throw new Error(`Config fetch failed: ${response.status} ${response.statusText}
|
|
3140
|
+
${errorText}`);
|
|
3141
|
+
}
|
|
3142
|
+
return response.json();
|
|
4092
3143
|
}
|
|
4093
|
-
function
|
|
4094
|
-
|
|
3144
|
+
function writeProjectConfig(projectDir, details) {
|
|
3145
|
+
writeFileSync5(path2.join(projectDir, DEFAULT_CONFIG_FILE), `${JSON.stringify(details, null, 2)}
|
|
3146
|
+
`, "utf-8");
|
|
4095
3147
|
}
|
|
4096
|
-
function
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
if (Array.isArray(a) || Array.isArray(b)) {
|
|
4104
|
-
if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length)
|
|
4105
|
-
return false;
|
|
4106
|
-
return a.every((v, i) => deepEqual(v, b[i]));
|
|
3148
|
+
async function create(projectName, repoUrl, templateName, autoCreate) {
|
|
3149
|
+
const targetDir = path2.resolve(process.cwd(), projectName);
|
|
3150
|
+
if (existsSync5(targetDir)) {
|
|
3151
|
+
console.error(`
|
|
3152
|
+
✖ Directory "${projectName}" already exists.
|
|
3153
|
+
`);
|
|
3154
|
+
process.exit(1);
|
|
4107
3155
|
}
|
|
4108
|
-
if (
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
if (ak.length !== bk.length)
|
|
4112
|
-
return false;
|
|
4113
|
-
return ak.every((k) => deepEqual(a[k], b[k]));
|
|
3156
|
+
if (autoCreate?.enabled) {
|
|
3157
|
+
resolveCmsUrl(autoCreate.env, autoCreate.cmsUrl);
|
|
3158
|
+
resolveSessionToken(autoCreate.env);
|
|
4114
3159
|
}
|
|
4115
|
-
|
|
4116
|
-
}
|
|
4117
|
-
|
|
4118
|
-
|
|
4119
|
-
|
|
4120
|
-
|
|
4121
|
-
|
|
4122
|
-
|
|
4123
|
-
|
|
4124
|
-
|
|
4125
|
-
|
|
3160
|
+
console.log(`
|
|
3161
|
+
⏳ Cloning template "${templateName}"...
|
|
3162
|
+
`);
|
|
3163
|
+
try {
|
|
3164
|
+
execSync(`git clone --depth 1 ${repoUrl} ${projectName}`, {
|
|
3165
|
+
stdio: "inherit",
|
|
3166
|
+
cwd: process.cwd()
|
|
3167
|
+
});
|
|
3168
|
+
} catch {
|
|
3169
|
+
console.error(`
|
|
3170
|
+
✖ Failed to clone template. Make sure you have SSH access to the repo.
|
|
3171
|
+
`);
|
|
3172
|
+
process.exit(1);
|
|
4126
3173
|
}
|
|
4127
|
-
const
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
out.push(...diffJson(before[key], after[key], `${path3}/${key}`));
|
|
3174
|
+
const gitDir = path2.join(targetDir, ".git");
|
|
3175
|
+
if (existsSync5(gitDir)) {
|
|
3176
|
+
rmSync(gitDir, { recursive: true, force: true });
|
|
4131
3177
|
}
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
return green(` ${path3}: ${compact(d.after)}`);
|
|
4138
|
-
if (d.kind === "change") {
|
|
4139
|
-
return yellow(` ${path3}: ${strike(compact(d.before))} → ${compact(d.after)}`);
|
|
3178
|
+
const filesToReplace = REPLACEMENT_FILES[templateName] ?? [];
|
|
3179
|
+
if (filesToReplace.length > 0) {
|
|
3180
|
+
console.log(` \uD83D\uDCDD Replacing project name...`);
|
|
3181
|
+
replaceInFiles(targetDir, filesToReplace, PLACEHOLDER, projectName);
|
|
3182
|
+
replaceInFiles(targetDir, filesToReplace, PLACEHOLDER_LOWER, projectName.toLowerCase());
|
|
4140
3183
|
}
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
3184
|
+
execSync("git init", { stdio: "ignore", cwd: targetDir });
|
|
3185
|
+
if (autoCreate?.enabled) {
|
|
3186
|
+
console.log(` \uD83C\uDF10 Creating CMS webapp in [${autoCreate.env}]...`);
|
|
3187
|
+
const provisioned = await provisionWebapp(projectName, autoCreate);
|
|
3188
|
+
writeProjectEnv(targetDir, provisioned);
|
|
3189
|
+
console.log(` \uD83D\uDD10 Wrote WEBAPP_ID and DEPLOY_TOKEN to .env`);
|
|
3190
|
+
console.log(` \uD83D\uDCCD Webapp ID: ${provisioned.webappId}`);
|
|
3191
|
+
try {
|
|
3192
|
+
const cmsUrl = resolveCmsUrl(autoCreate.env, autoCreate.cmsUrl);
|
|
3193
|
+
const raw = await fetchCmsConfig(cmsUrl, provisioned.webappId, provisioned.deployToken);
|
|
3194
|
+
writeProjectConfig(targetDir, sanitizeDetails(unwrapDetails(raw)));
|
|
3195
|
+
console.log(` \uD83D\uDCC4 Wrote webapp.config.json (pulled from CMS)`);
|
|
3196
|
+
} catch (err) {
|
|
3197
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
3198
|
+
console.warn(` ⚠️ Could not pull config from CMS (${msg}) — wrote empty webapp.config.json`);
|
|
3199
|
+
writeProjectConfig(targetDir, {});
|
|
3200
|
+
}
|
|
3201
|
+
} else {
|
|
3202
|
+
writeProjectConfig(targetDir, {});
|
|
3203
|
+
console.log(` \uD83D\uDCC4 Wrote webapp.config.json`);
|
|
3204
|
+
}
|
|
3205
|
+
console.log(`
|
|
3206
|
+
✅ Project "${projectName}" created successfully!
|
|
4161
3207
|
|
|
4162
|
-
|
|
3208
|
+
Next steps:
|
|
4163
3209
|
|
|
4164
|
-
|
|
3210
|
+
cd ${projectName}
|
|
3211
|
+
bun install
|
|
3212
|
+
bun run dev
|
|
3213
|
+
`);
|
|
4165
3214
|
}
|
|
4166
3215
|
|
|
4167
|
-
// src/
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
|
|
3216
|
+
// src/deploy.ts
|
|
3217
|
+
import { execSync as execSync2 } from "node:child_process";
|
|
3218
|
+
import { existsSync as existsSync7, readFileSync as readFileSync6, readdirSync, statSync, unlinkSync } from "node:fs";
|
|
3219
|
+
import { join as join2 } from "node:path";
|
|
3220
|
+
|
|
3221
|
+
// node_modules/mime/dist/types/other.js
|
|
3222
|
+
var types = {
|
|
3223
|
+
"application/prs.cww": ["cww"],
|
|
3224
|
+
"application/prs.xsf+xml": ["xsf"],
|
|
3225
|
+
"application/vnd.1000minds.decision-model+xml": ["1km"],
|
|
3226
|
+
"application/vnd.3gpp.pic-bw-large": ["plb"],
|
|
3227
|
+
"application/vnd.3gpp.pic-bw-small": ["psb"],
|
|
3228
|
+
"application/vnd.3gpp.pic-bw-var": ["pvb"],
|
|
3229
|
+
"application/vnd.3gpp2.tcap": ["tcap"],
|
|
3230
|
+
"application/vnd.3m.post-it-notes": ["pwn"],
|
|
3231
|
+
"application/vnd.accpac.simply.aso": ["aso"],
|
|
3232
|
+
"application/vnd.accpac.simply.imp": ["imp"],
|
|
3233
|
+
"application/vnd.acucobol": ["acu"],
|
|
3234
|
+
"application/vnd.acucorp": ["atc", "acutc"],
|
|
3235
|
+
"application/vnd.adobe.air-application-installer-package+zip": ["air"],
|
|
3236
|
+
"application/vnd.adobe.formscentral.fcdt": ["fcdt"],
|
|
3237
|
+
"application/vnd.adobe.fxp": ["fxp", "fxpl"],
|
|
3238
|
+
"application/vnd.adobe.xdp+xml": ["xdp"],
|
|
3239
|
+
"application/vnd.adobe.xfdf": ["*xfdf"],
|
|
3240
|
+
"application/vnd.age": ["age"],
|
|
3241
|
+
"application/vnd.ahead.space": ["ahead"],
|
|
3242
|
+
"application/vnd.airzip.filesecure.azf": ["azf"],
|
|
3243
|
+
"application/vnd.airzip.filesecure.azs": ["azs"],
|
|
3244
|
+
"application/vnd.amazon.ebook": ["azw"],
|
|
3245
|
+
"application/vnd.americandynamics.acc": ["acc"],
|
|
3246
|
+
"application/vnd.amiga.ami": ["ami"],
|
|
3247
|
+
"application/vnd.android.package-archive": ["apk"],
|
|
3248
|
+
"application/vnd.anser-web-certificate-issue-initiation": ["cii"],
|
|
3249
|
+
"application/vnd.anser-web-funds-transfer-initiation": ["fti"],
|
|
3250
|
+
"application/vnd.antix.game-component": ["atx"],
|
|
3251
|
+
"application/vnd.apple.installer+xml": ["mpkg"],
|
|
3252
|
+
"application/vnd.apple.keynote": ["key"],
|
|
3253
|
+
"application/vnd.apple.mpegurl": ["m3u8"],
|
|
3254
|
+
"application/vnd.apple.numbers": ["numbers"],
|
|
3255
|
+
"application/vnd.apple.pages": ["pages"],
|
|
3256
|
+
"application/vnd.apple.pkpass": ["pkpass"],
|
|
3257
|
+
"application/vnd.aristanetworks.swi": ["swi"],
|
|
3258
|
+
"application/vnd.astraea-software.iota": ["iota"],
|
|
3259
|
+
"application/vnd.audiograph": ["aep"],
|
|
3260
|
+
"application/vnd.autodesk.fbx": ["fbx"],
|
|
3261
|
+
"application/vnd.balsamiq.bmml+xml": ["bmml"],
|
|
3262
|
+
"application/vnd.blueice.multipass": ["mpm"],
|
|
3263
|
+
"application/vnd.bmi": ["bmi"],
|
|
3264
|
+
"application/vnd.businessobjects": ["rep"],
|
|
3265
|
+
"application/vnd.chemdraw+xml": ["cdxml"],
|
|
3266
|
+
"application/vnd.chipnuts.karaoke-mmd": ["mmd"],
|
|
3267
|
+
"application/vnd.cinderella": ["cdy"],
|
|
3268
|
+
"application/vnd.citationstyles.style+xml": ["csl"],
|
|
3269
|
+
"application/vnd.claymore": ["cla"],
|
|
3270
|
+
"application/vnd.cloanto.rp9": ["rp9"],
|
|
3271
|
+
"application/vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
|
|
3272
|
+
"application/vnd.cluetrust.cartomobile-config": ["c11amc"],
|
|
3273
|
+
"application/vnd.cluetrust.cartomobile-config-pkg": ["c11amz"],
|
|
3274
|
+
"application/vnd.commonspace": ["csp"],
|
|
3275
|
+
"application/vnd.contact.cmsg": ["cdbcmsg"],
|
|
3276
|
+
"application/vnd.cosmocaller": ["cmc"],
|
|
3277
|
+
"application/vnd.crick.clicker": ["clkx"],
|
|
3278
|
+
"application/vnd.crick.clicker.keyboard": ["clkk"],
|
|
3279
|
+
"application/vnd.crick.clicker.palette": ["clkp"],
|
|
3280
|
+
"application/vnd.crick.clicker.template": ["clkt"],
|
|
3281
|
+
"application/vnd.crick.clicker.wordbank": ["clkw"],
|
|
3282
|
+
"application/vnd.criticaltools.wbs+xml": ["wbs"],
|
|
3283
|
+
"application/vnd.ctc-posml": ["pml"],
|
|
3284
|
+
"application/vnd.cups-ppd": ["ppd"],
|
|
3285
|
+
"application/vnd.curl.car": ["car"],
|
|
3286
|
+
"application/vnd.curl.pcurl": ["pcurl"],
|
|
3287
|
+
"application/vnd.dart": ["dart"],
|
|
3288
|
+
"application/vnd.data-vision.rdz": ["rdz"],
|
|
3289
|
+
"application/vnd.dbf": ["dbf"],
|
|
3290
|
+
"application/vnd.dcmp+xml": ["dcmp"],
|
|
3291
|
+
"application/vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
|
|
3292
|
+
"application/vnd.dece.ttml+xml": ["uvt", "uvvt"],
|
|
3293
|
+
"application/vnd.dece.unspecified": ["uvx", "uvvx"],
|
|
3294
|
+
"application/vnd.dece.zip": ["uvz", "uvvz"],
|
|
3295
|
+
"application/vnd.denovo.fcselayout-link": ["fe_launch"],
|
|
3296
|
+
"application/vnd.dna": ["dna"],
|
|
3297
|
+
"application/vnd.dolby.mlp": ["mlp"],
|
|
3298
|
+
"application/vnd.dpgraph": ["dpg"],
|
|
3299
|
+
"application/vnd.dreamfactory": ["dfac"],
|
|
3300
|
+
"application/vnd.ds-keypoint": ["kpxx"],
|
|
3301
|
+
"application/vnd.dvb.ait": ["ait"],
|
|
3302
|
+
"application/vnd.dvb.service": ["svc"],
|
|
3303
|
+
"application/vnd.dynageo": ["geo"],
|
|
3304
|
+
"application/vnd.ecowin.chart": ["mag"],
|
|
3305
|
+
"application/vnd.enliven": ["nml"],
|
|
3306
|
+
"application/vnd.epson.esf": ["esf"],
|
|
3307
|
+
"application/vnd.epson.msf": ["msf"],
|
|
3308
|
+
"application/vnd.epson.quickanime": ["qam"],
|
|
3309
|
+
"application/vnd.epson.salt": ["slt"],
|
|
3310
|
+
"application/vnd.epson.ssf": ["ssf"],
|
|
3311
|
+
"application/vnd.eszigno3+xml": ["es3", "et3"],
|
|
3312
|
+
"application/vnd.ezpix-album": ["ez2"],
|
|
3313
|
+
"application/vnd.ezpix-package": ["ez3"],
|
|
3314
|
+
"application/vnd.fdf": ["*fdf"],
|
|
3315
|
+
"application/vnd.fdsn.mseed": ["mseed"],
|
|
3316
|
+
"application/vnd.fdsn.seed": ["seed", "dataless"],
|
|
3317
|
+
"application/vnd.flographit": ["gph"],
|
|
3318
|
+
"application/vnd.fluxtime.clip": ["ftc"],
|
|
3319
|
+
"application/vnd.framemaker": ["fm", "frame", "maker", "book"],
|
|
3320
|
+
"application/vnd.frogans.fnc": ["fnc"],
|
|
3321
|
+
"application/vnd.frogans.ltf": ["ltf"],
|
|
3322
|
+
"application/vnd.fsc.weblaunch": ["fsc"],
|
|
3323
|
+
"application/vnd.fujitsu.oasys": ["oas"],
|
|
3324
|
+
"application/vnd.fujitsu.oasys2": ["oa2"],
|
|
3325
|
+
"application/vnd.fujitsu.oasys3": ["oa3"],
|
|
3326
|
+
"application/vnd.fujitsu.oasysgp": ["fg5"],
|
|
3327
|
+
"application/vnd.fujitsu.oasysprs": ["bh2"],
|
|
3328
|
+
"application/vnd.fujixerox.ddd": ["ddd"],
|
|
3329
|
+
"application/vnd.fujixerox.docuworks": ["xdw"],
|
|
3330
|
+
"application/vnd.fujixerox.docuworks.binder": ["xbd"],
|
|
3331
|
+
"application/vnd.fuzzysheet": ["fzs"],
|
|
3332
|
+
"application/vnd.genomatix.tuxedo": ["txd"],
|
|
3333
|
+
"application/vnd.geogebra.file": ["ggb"],
|
|
3334
|
+
"application/vnd.geogebra.slides": ["ggs"],
|
|
3335
|
+
"application/vnd.geogebra.tool": ["ggt"],
|
|
3336
|
+
"application/vnd.geometry-explorer": ["gex", "gre"],
|
|
3337
|
+
"application/vnd.geonext": ["gxt"],
|
|
3338
|
+
"application/vnd.geoplan": ["g2w"],
|
|
3339
|
+
"application/vnd.geospace": ["g3w"],
|
|
3340
|
+
"application/vnd.gmx": ["gmx"],
|
|
3341
|
+
"application/vnd.google-apps.document": ["gdoc"],
|
|
3342
|
+
"application/vnd.google-apps.drawing": ["gdraw"],
|
|
3343
|
+
"application/vnd.google-apps.form": ["gform"],
|
|
3344
|
+
"application/vnd.google-apps.jam": ["gjam"],
|
|
3345
|
+
"application/vnd.google-apps.map": ["gmap"],
|
|
3346
|
+
"application/vnd.google-apps.presentation": ["gslides"],
|
|
3347
|
+
"application/vnd.google-apps.script": ["gscript"],
|
|
3348
|
+
"application/vnd.google-apps.site": ["gsite"],
|
|
3349
|
+
"application/vnd.google-apps.spreadsheet": ["gsheet"],
|
|
3350
|
+
"application/vnd.google-earth.kml+xml": ["kml"],
|
|
3351
|
+
"application/vnd.google-earth.kmz": ["kmz"],
|
|
3352
|
+
"application/vnd.gov.sk.xmldatacontainer+xml": ["xdcf"],
|
|
3353
|
+
"application/vnd.grafeq": ["gqf", "gqs"],
|
|
3354
|
+
"application/vnd.groove-account": ["gac"],
|
|
3355
|
+
"application/vnd.groove-help": ["ghf"],
|
|
3356
|
+
"application/vnd.groove-identity-message": ["gim"],
|
|
3357
|
+
"application/vnd.groove-injector": ["grv"],
|
|
3358
|
+
"application/vnd.groove-tool-message": ["gtm"],
|
|
3359
|
+
"application/vnd.groove-tool-template": ["tpl"],
|
|
3360
|
+
"application/vnd.groove-vcard": ["vcg"],
|
|
3361
|
+
"application/vnd.hal+xml": ["hal"],
|
|
3362
|
+
"application/vnd.handheld-entertainment+xml": ["zmm"],
|
|
3363
|
+
"application/vnd.hbci": ["hbci"],
|
|
3364
|
+
"application/vnd.hhe.lesson-player": ["les"],
|
|
3365
|
+
"application/vnd.hp-hpgl": ["hpgl"],
|
|
3366
|
+
"application/vnd.hp-hpid": ["hpid"],
|
|
3367
|
+
"application/vnd.hp-hps": ["hps"],
|
|
3368
|
+
"application/vnd.hp-jlyt": ["jlt"],
|
|
3369
|
+
"application/vnd.hp-pcl": ["pcl"],
|
|
3370
|
+
"application/vnd.hp-pclxl": ["pclxl"],
|
|
3371
|
+
"application/vnd.hydrostatix.sof-data": ["sfd-hdstx"],
|
|
3372
|
+
"application/vnd.ibm.minipay": ["mpy"],
|
|
3373
|
+
"application/vnd.ibm.modcap": ["afp", "listafp", "list3820"],
|
|
3374
|
+
"application/vnd.ibm.rights-management": ["irm"],
|
|
3375
|
+
"application/vnd.ibm.secure-container": ["sc"],
|
|
3376
|
+
"application/vnd.iccprofile": ["icc", "icm"],
|
|
3377
|
+
"application/vnd.igloader": ["igl"],
|
|
3378
|
+
"application/vnd.immervision-ivp": ["ivp"],
|
|
3379
|
+
"application/vnd.immervision-ivu": ["ivu"],
|
|
3380
|
+
"application/vnd.insors.igm": ["igm"],
|
|
3381
|
+
"application/vnd.intercon.formnet": ["xpw", "xpx"],
|
|
3382
|
+
"application/vnd.intergeo": ["i2g"],
|
|
3383
|
+
"application/vnd.intu.qbo": ["qbo"],
|
|
3384
|
+
"application/vnd.intu.qfx": ["qfx"],
|
|
3385
|
+
"application/vnd.ipunplugged.rcprofile": ["rcprofile"],
|
|
3386
|
+
"application/vnd.irepository.package+xml": ["irp"],
|
|
3387
|
+
"application/vnd.is-xpr": ["xpr"],
|
|
3388
|
+
"application/vnd.isac.fcs": ["fcs"],
|
|
3389
|
+
"application/vnd.jam": ["jam"],
|
|
3390
|
+
"application/vnd.jcp.javame.midlet-rms": ["rms"],
|
|
3391
|
+
"application/vnd.jisp": ["jisp"],
|
|
3392
|
+
"application/vnd.joost.joda-archive": ["joda"],
|
|
3393
|
+
"application/vnd.kahootz": ["ktz", "ktr"],
|
|
3394
|
+
"application/vnd.kde.karbon": ["karbon"],
|
|
3395
|
+
"application/vnd.kde.kchart": ["chrt"],
|
|
3396
|
+
"application/vnd.kde.kformula": ["kfo"],
|
|
3397
|
+
"application/vnd.kde.kivio": ["flw"],
|
|
3398
|
+
"application/vnd.kde.kontour": ["kon"],
|
|
3399
|
+
"application/vnd.kde.kpresenter": ["kpr", "kpt"],
|
|
3400
|
+
"application/vnd.kde.kspread": ["ksp"],
|
|
3401
|
+
"application/vnd.kde.kword": ["kwd", "kwt"],
|
|
3402
|
+
"application/vnd.kenameaapp": ["htke"],
|
|
3403
|
+
"application/vnd.kidspiration": ["kia"],
|
|
3404
|
+
"application/vnd.kinar": ["kne", "knp"],
|
|
3405
|
+
"application/vnd.koan": ["skp", "skd", "skt", "skm"],
|
|
3406
|
+
"application/vnd.kodak-descriptor": ["sse"],
|
|
3407
|
+
"application/vnd.las.las+xml": ["lasxml"],
|
|
3408
|
+
"application/vnd.llamagraphics.life-balance.desktop": ["lbd"],
|
|
3409
|
+
"application/vnd.llamagraphics.life-balance.exchange+xml": ["lbe"],
|
|
3410
|
+
"application/vnd.lotus-1-2-3": ["123"],
|
|
3411
|
+
"application/vnd.lotus-approach": ["apr"],
|
|
3412
|
+
"application/vnd.lotus-freelance": ["pre"],
|
|
3413
|
+
"application/vnd.lotus-notes": ["nsf"],
|
|
3414
|
+
"application/vnd.lotus-organizer": ["org"],
|
|
3415
|
+
"application/vnd.lotus-screencam": ["scm"],
|
|
3416
|
+
"application/vnd.lotus-wordpro": ["lwp"],
|
|
3417
|
+
"application/vnd.macports.portpkg": ["portpkg"],
|
|
3418
|
+
"application/vnd.mapbox-vector-tile": ["mvt"],
|
|
3419
|
+
"application/vnd.mcd": ["mcd"],
|
|
3420
|
+
"application/vnd.medcalcdata": ["mc1"],
|
|
3421
|
+
"application/vnd.mediastation.cdkey": ["cdkey"],
|
|
3422
|
+
"application/vnd.mfer": ["mwf"],
|
|
3423
|
+
"application/vnd.mfmp": ["mfm"],
|
|
3424
|
+
"application/vnd.micrografx.flo": ["flo"],
|
|
3425
|
+
"application/vnd.micrografx.igx": ["igx"],
|
|
3426
|
+
"application/vnd.mif": ["mif"],
|
|
3427
|
+
"application/vnd.mobius.daf": ["daf"],
|
|
3428
|
+
"application/vnd.mobius.dis": ["dis"],
|
|
3429
|
+
"application/vnd.mobius.mbk": ["mbk"],
|
|
3430
|
+
"application/vnd.mobius.mqy": ["mqy"],
|
|
3431
|
+
"application/vnd.mobius.msl": ["msl"],
|
|
3432
|
+
"application/vnd.mobius.plc": ["plc"],
|
|
3433
|
+
"application/vnd.mobius.txf": ["txf"],
|
|
3434
|
+
"application/vnd.mophun.application": ["mpn"],
|
|
3435
|
+
"application/vnd.mophun.certificate": ["mpc"],
|
|
3436
|
+
"application/vnd.mozilla.xul+xml": ["xul"],
|
|
3437
|
+
"application/vnd.ms-artgalry": ["cil"],
|
|
3438
|
+
"application/vnd.ms-cab-compressed": ["cab"],
|
|
3439
|
+
"application/vnd.ms-excel": ["xls", "xlm", "xla", "xlc", "xlt", "xlw"],
|
|
3440
|
+
"application/vnd.ms-excel.addin.macroenabled.12": ["xlam"],
|
|
3441
|
+
"application/vnd.ms-excel.sheet.binary.macroenabled.12": ["xlsb"],
|
|
3442
|
+
"application/vnd.ms-excel.sheet.macroenabled.12": ["xlsm"],
|
|
3443
|
+
"application/vnd.ms-excel.template.macroenabled.12": ["xltm"],
|
|
3444
|
+
"application/vnd.ms-fontobject": ["eot"],
|
|
3445
|
+
"application/vnd.ms-htmlhelp": ["chm"],
|
|
3446
|
+
"application/vnd.ms-ims": ["ims"],
|
|
3447
|
+
"application/vnd.ms-lrm": ["lrm"],
|
|
3448
|
+
"application/vnd.ms-officetheme": ["thmx"],
|
|
3449
|
+
"application/vnd.ms-outlook": ["msg"],
|
|
3450
|
+
"application/vnd.ms-pki.seccat": ["cat"],
|
|
3451
|
+
"application/vnd.ms-pki.stl": ["*stl"],
|
|
3452
|
+
"application/vnd.ms-powerpoint": ["ppt", "pps", "pot"],
|
|
3453
|
+
"application/vnd.ms-powerpoint.addin.macroenabled.12": ["ppam"],
|
|
3454
|
+
"application/vnd.ms-powerpoint.presentation.macroenabled.12": ["pptm"],
|
|
3455
|
+
"application/vnd.ms-powerpoint.slide.macroenabled.12": ["sldm"],
|
|
3456
|
+
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": ["ppsm"],
|
|
3457
|
+
"application/vnd.ms-powerpoint.template.macroenabled.12": ["potm"],
|
|
3458
|
+
"application/vnd.ms-project": ["*mpp", "mpt"],
|
|
3459
|
+
"application/vnd.ms-visio.viewer": ["vdx"],
|
|
3460
|
+
"application/vnd.ms-word.document.macroenabled.12": ["docm"],
|
|
3461
|
+
"application/vnd.ms-word.template.macroenabled.12": ["dotm"],
|
|
3462
|
+
"application/vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
|
|
3463
|
+
"application/vnd.ms-wpl": ["wpl"],
|
|
3464
|
+
"application/vnd.ms-xpsdocument": ["xps"],
|
|
3465
|
+
"application/vnd.mseq": ["mseq"],
|
|
3466
|
+
"application/vnd.musician": ["mus"],
|
|
3467
|
+
"application/vnd.muvee.style": ["msty"],
|
|
3468
|
+
"application/vnd.mynfc": ["taglet"],
|
|
3469
|
+
"application/vnd.nato.bindingdataobject+xml": ["bdo"],
|
|
3470
|
+
"application/vnd.neurolanguage.nlu": ["nlu"],
|
|
3471
|
+
"application/vnd.nitf": ["ntf", "nitf"],
|
|
3472
|
+
"application/vnd.noblenet-directory": ["nnd"],
|
|
3473
|
+
"application/vnd.noblenet-sealer": ["nns"],
|
|
3474
|
+
"application/vnd.noblenet-web": ["nnw"],
|
|
3475
|
+
"application/vnd.nokia.n-gage.ac+xml": ["*ac"],
|
|
3476
|
+
"application/vnd.nokia.n-gage.data": ["ngdat"],
|
|
3477
|
+
"application/vnd.nokia.n-gage.symbian.install": ["n-gage"],
|
|
3478
|
+
"application/vnd.nokia.radio-preset": ["rpst"],
|
|
3479
|
+
"application/vnd.nokia.radio-presets": ["rpss"],
|
|
3480
|
+
"application/vnd.novadigm.edm": ["edm"],
|
|
3481
|
+
"application/vnd.novadigm.edx": ["edx"],
|
|
3482
|
+
"application/vnd.novadigm.ext": ["ext"],
|
|
3483
|
+
"application/vnd.oasis.opendocument.chart": ["odc"],
|
|
3484
|
+
"application/vnd.oasis.opendocument.chart-template": ["otc"],
|
|
3485
|
+
"application/vnd.oasis.opendocument.database": ["odb"],
|
|
3486
|
+
"application/vnd.oasis.opendocument.formula": ["odf"],
|
|
3487
|
+
"application/vnd.oasis.opendocument.formula-template": ["odft"],
|
|
3488
|
+
"application/vnd.oasis.opendocument.graphics": ["odg"],
|
|
3489
|
+
"application/vnd.oasis.opendocument.graphics-template": ["otg"],
|
|
3490
|
+
"application/vnd.oasis.opendocument.image": ["odi"],
|
|
3491
|
+
"application/vnd.oasis.opendocument.image-template": ["oti"],
|
|
3492
|
+
"application/vnd.oasis.opendocument.presentation": ["odp"],
|
|
3493
|
+
"application/vnd.oasis.opendocument.presentation-template": ["otp"],
|
|
3494
|
+
"application/vnd.oasis.opendocument.spreadsheet": ["ods"],
|
|
3495
|
+
"application/vnd.oasis.opendocument.spreadsheet-template": ["ots"],
|
|
3496
|
+
"application/vnd.oasis.opendocument.text": ["odt"],
|
|
3497
|
+
"application/vnd.oasis.opendocument.text-master": ["odm"],
|
|
3498
|
+
"application/vnd.oasis.opendocument.text-template": ["ott"],
|
|
3499
|
+
"application/vnd.oasis.opendocument.text-web": ["oth"],
|
|
3500
|
+
"application/vnd.olpc-sugar": ["xo"],
|
|
3501
|
+
"application/vnd.oma.dd2+xml": ["dd2"],
|
|
3502
|
+
"application/vnd.openblox.game+xml": ["obgx"],
|
|
3503
|
+
"application/vnd.openofficeorg.extension": ["oxt"],
|
|
3504
|
+
"application/vnd.openstreetmap.data+xml": ["osm"],
|
|
3505
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation": [
|
|
3506
|
+
"pptx"
|
|
3507
|
+
],
|
|
3508
|
+
"application/vnd.openxmlformats-officedocument.presentationml.slide": [
|
|
3509
|
+
"sldx"
|
|
3510
|
+
],
|
|
3511
|
+
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": [
|
|
3512
|
+
"ppsx"
|
|
3513
|
+
],
|
|
3514
|
+
"application/vnd.openxmlformats-officedocument.presentationml.template": [
|
|
3515
|
+
"potx"
|
|
3516
|
+
],
|
|
3517
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ["xlsx"],
|
|
3518
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": [
|
|
3519
|
+
"xltx"
|
|
3520
|
+
],
|
|
3521
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": [
|
|
3522
|
+
"docx"
|
|
3523
|
+
],
|
|
3524
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": [
|
|
3525
|
+
"dotx"
|
|
3526
|
+
],
|
|
3527
|
+
"application/vnd.osgeo.mapguide.package": ["mgp"],
|
|
3528
|
+
"application/vnd.osgi.dp": ["dp"],
|
|
3529
|
+
"application/vnd.osgi.subsystem": ["esa"],
|
|
3530
|
+
"application/vnd.palm": ["pdb", "pqa", "oprc"],
|
|
3531
|
+
"application/vnd.pawaafile": ["paw"],
|
|
3532
|
+
"application/vnd.pg.format": ["str"],
|
|
3533
|
+
"application/vnd.pg.osasli": ["ei6"],
|
|
3534
|
+
"application/vnd.picsel": ["efif"],
|
|
3535
|
+
"application/vnd.pmi.widget": ["wg"],
|
|
3536
|
+
"application/vnd.pocketlearn": ["plf"],
|
|
3537
|
+
"application/vnd.powerbuilder6": ["pbd"],
|
|
3538
|
+
"application/vnd.previewsystems.box": ["box"],
|
|
3539
|
+
"application/vnd.procrate.brushset": ["brushset"],
|
|
3540
|
+
"application/vnd.procreate.brush": ["brush"],
|
|
3541
|
+
"application/vnd.procreate.dream": ["drm"],
|
|
3542
|
+
"application/vnd.proteus.magazine": ["mgz"],
|
|
3543
|
+
"application/vnd.publishare-delta-tree": ["qps"],
|
|
3544
|
+
"application/vnd.pvi.ptid1": ["ptid"],
|
|
3545
|
+
"application/vnd.pwg-xhtml-print+xml": ["xhtm"],
|
|
3546
|
+
"application/vnd.quark.quarkxpress": [
|
|
3547
|
+
"qxd",
|
|
3548
|
+
"qxt",
|
|
3549
|
+
"qwd",
|
|
3550
|
+
"qwt",
|
|
3551
|
+
"qxl",
|
|
3552
|
+
"qxb"
|
|
3553
|
+
],
|
|
3554
|
+
"application/vnd.rar": ["rar"],
|
|
3555
|
+
"application/vnd.realvnc.bed": ["bed"],
|
|
3556
|
+
"application/vnd.recordare.musicxml": ["mxl"],
|
|
3557
|
+
"application/vnd.recordare.musicxml+xml": ["musicxml"],
|
|
3558
|
+
"application/vnd.rig.cryptonote": ["cryptonote"],
|
|
3559
|
+
"application/vnd.rim.cod": ["cod"],
|
|
3560
|
+
"application/vnd.rn-realmedia": ["rm"],
|
|
3561
|
+
"application/vnd.rn-realmedia-vbr": ["rmvb"],
|
|
3562
|
+
"application/vnd.route66.link66+xml": ["link66"],
|
|
3563
|
+
"application/vnd.sailingtracker.track": ["st"],
|
|
3564
|
+
"application/vnd.seemail": ["see"],
|
|
3565
|
+
"application/vnd.sema": ["sema"],
|
|
3566
|
+
"application/vnd.semd": ["semd"],
|
|
3567
|
+
"application/vnd.semf": ["semf"],
|
|
3568
|
+
"application/vnd.shana.informed.formdata": ["ifm"],
|
|
3569
|
+
"application/vnd.shana.informed.formtemplate": ["itp"],
|
|
3570
|
+
"application/vnd.shana.informed.interchange": ["iif"],
|
|
3571
|
+
"application/vnd.shana.informed.package": ["ipk"],
|
|
3572
|
+
"application/vnd.simtech-mindmapper": ["twd", "twds"],
|
|
3573
|
+
"application/vnd.smaf": ["mmf"],
|
|
3574
|
+
"application/vnd.smart.teacher": ["teacher"],
|
|
3575
|
+
"application/vnd.software602.filler.form+xml": ["fo"],
|
|
3576
|
+
"application/vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
|
|
3577
|
+
"application/vnd.spotfire.dxp": ["dxp"],
|
|
3578
|
+
"application/vnd.spotfire.sfs": ["sfs"],
|
|
3579
|
+
"application/vnd.stardivision.calc": ["sdc"],
|
|
3580
|
+
"application/vnd.stardivision.draw": ["sda"],
|
|
3581
|
+
"application/vnd.stardivision.impress": ["sdd"],
|
|
3582
|
+
"application/vnd.stardivision.math": ["smf"],
|
|
3583
|
+
"application/vnd.stardivision.writer": ["sdw", "vor"],
|
|
3584
|
+
"application/vnd.stardivision.writer-global": ["sgl"],
|
|
3585
|
+
"application/vnd.stepmania.package": ["smzip"],
|
|
3586
|
+
"application/vnd.stepmania.stepchart": ["sm"],
|
|
3587
|
+
"application/vnd.sun.wadl+xml": ["wadl"],
|
|
3588
|
+
"application/vnd.sun.xml.calc": ["sxc"],
|
|
3589
|
+
"application/vnd.sun.xml.calc.template": ["stc"],
|
|
3590
|
+
"application/vnd.sun.xml.draw": ["sxd"],
|
|
3591
|
+
"application/vnd.sun.xml.draw.template": ["std"],
|
|
3592
|
+
"application/vnd.sun.xml.impress": ["sxi"],
|
|
3593
|
+
"application/vnd.sun.xml.impress.template": ["sti"],
|
|
3594
|
+
"application/vnd.sun.xml.math": ["sxm"],
|
|
3595
|
+
"application/vnd.sun.xml.writer": ["sxw"],
|
|
3596
|
+
"application/vnd.sun.xml.writer.global": ["sxg"],
|
|
3597
|
+
"application/vnd.sun.xml.writer.template": ["stw"],
|
|
3598
|
+
"application/vnd.sus-calendar": ["sus", "susp"],
|
|
3599
|
+
"application/vnd.svd": ["svd"],
|
|
3600
|
+
"application/vnd.symbian.install": ["sis", "sisx"],
|
|
3601
|
+
"application/vnd.syncml+xml": ["xsm"],
|
|
3602
|
+
"application/vnd.syncml.dm+wbxml": ["bdm"],
|
|
3603
|
+
"application/vnd.syncml.dm+xml": ["xdm"],
|
|
3604
|
+
"application/vnd.syncml.dmddf+xml": ["ddf"],
|
|
3605
|
+
"application/vnd.tao.intent-module-archive": ["tao"],
|
|
3606
|
+
"application/vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
|
|
3607
|
+
"application/vnd.tmobile-livetv": ["tmo"],
|
|
3608
|
+
"application/vnd.trid.tpt": ["tpt"],
|
|
3609
|
+
"application/vnd.triscape.mxs": ["mxs"],
|
|
3610
|
+
"application/vnd.trueapp": ["tra"],
|
|
3611
|
+
"application/vnd.ufdl": ["ufd", "ufdl"],
|
|
3612
|
+
"application/vnd.uiq.theme": ["utz"],
|
|
3613
|
+
"application/vnd.umajin": ["umj"],
|
|
3614
|
+
"application/vnd.unity": ["unityweb"],
|
|
3615
|
+
"application/vnd.uoml+xml": ["uoml", "uo"],
|
|
3616
|
+
"application/vnd.vcx": ["vcx"],
|
|
3617
|
+
"application/vnd.visio": ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"],
|
|
3618
|
+
"application/vnd.visionary": ["vis"],
|
|
3619
|
+
"application/vnd.vsf": ["vsf"],
|
|
3620
|
+
"application/vnd.wap.wbxml": ["wbxml"],
|
|
3621
|
+
"application/vnd.wap.wmlc": ["wmlc"],
|
|
3622
|
+
"application/vnd.wap.wmlscriptc": ["wmlsc"],
|
|
3623
|
+
"application/vnd.webturbo": ["wtb"],
|
|
3624
|
+
"application/vnd.wolfram.player": ["nbp"],
|
|
3625
|
+
"application/vnd.wordperfect": ["wpd"],
|
|
3626
|
+
"application/vnd.wqd": ["wqd"],
|
|
3627
|
+
"application/vnd.wt.stf": ["stf"],
|
|
3628
|
+
"application/vnd.xara": ["xar"],
|
|
3629
|
+
"application/vnd.xfdl": ["xfdl"],
|
|
3630
|
+
"application/vnd.yamaha.hv-dic": ["hvd"],
|
|
3631
|
+
"application/vnd.yamaha.hv-script": ["hvs"],
|
|
3632
|
+
"application/vnd.yamaha.hv-voice": ["hvp"],
|
|
3633
|
+
"application/vnd.yamaha.openscoreformat": ["osf"],
|
|
3634
|
+
"application/vnd.yamaha.openscoreformat.osfpvg+xml": ["osfpvg"],
|
|
3635
|
+
"application/vnd.yamaha.smaf-audio": ["saf"],
|
|
3636
|
+
"application/vnd.yamaha.smaf-phrase": ["spf"],
|
|
3637
|
+
"application/vnd.yellowriver-custom-menu": ["cmp"],
|
|
3638
|
+
"application/vnd.zul": ["zir", "zirz"],
|
|
3639
|
+
"application/vnd.zzazz.deck+xml": ["zaz"],
|
|
3640
|
+
"application/x-7z-compressed": ["7z"],
|
|
3641
|
+
"application/x-abiword": ["abw"],
|
|
3642
|
+
"application/x-ace-compressed": ["ace"],
|
|
3643
|
+
"application/x-apple-diskimage": ["*dmg"],
|
|
3644
|
+
"application/x-arj": ["arj"],
|
|
3645
|
+
"application/x-authorware-bin": ["aab", "x32", "u32", "vox"],
|
|
3646
|
+
"application/x-authorware-map": ["aam"],
|
|
3647
|
+
"application/x-authorware-seg": ["aas"],
|
|
3648
|
+
"application/x-bcpio": ["bcpio"],
|
|
3649
|
+
"application/x-bdoc": ["*bdoc"],
|
|
3650
|
+
"application/x-bittorrent": ["torrent"],
|
|
3651
|
+
"application/x-blender": ["blend"],
|
|
3652
|
+
"application/x-blorb": ["blb", "blorb"],
|
|
3653
|
+
"application/x-bzip": ["bz"],
|
|
3654
|
+
"application/x-bzip2": ["bz2", "boz"],
|
|
3655
|
+
"application/x-cbr": ["cbr", "cba", "cbt", "cbz", "cb7"],
|
|
3656
|
+
"application/x-cdlink": ["vcd"],
|
|
3657
|
+
"application/x-cfs-compressed": ["cfs"],
|
|
3658
|
+
"application/x-chat": ["chat"],
|
|
3659
|
+
"application/x-chess-pgn": ["pgn"],
|
|
3660
|
+
"application/x-chrome-extension": ["crx"],
|
|
3661
|
+
"application/x-cocoa": ["cco"],
|
|
3662
|
+
"application/x-compressed": ["*rar"],
|
|
3663
|
+
"application/x-conference": ["nsc"],
|
|
3664
|
+
"application/x-cpio": ["cpio"],
|
|
3665
|
+
"application/x-csh": ["csh"],
|
|
3666
|
+
"application/x-debian-package": ["*deb", "udeb"],
|
|
3667
|
+
"application/x-dgc-compressed": ["dgc"],
|
|
3668
|
+
"application/x-director": [
|
|
3669
|
+
"dir",
|
|
3670
|
+
"dcr",
|
|
3671
|
+
"dxr",
|
|
3672
|
+
"cst",
|
|
3673
|
+
"cct",
|
|
3674
|
+
"cxt",
|
|
3675
|
+
"w3d",
|
|
3676
|
+
"fgd",
|
|
3677
|
+
"swa"
|
|
3678
|
+
],
|
|
3679
|
+
"application/x-doom": ["wad"],
|
|
3680
|
+
"application/x-dtbncx+xml": ["ncx"],
|
|
3681
|
+
"application/x-dtbook+xml": ["dtb"],
|
|
3682
|
+
"application/x-dtbresource+xml": ["res"],
|
|
3683
|
+
"application/x-dvi": ["dvi"],
|
|
3684
|
+
"application/x-envoy": ["evy"],
|
|
3685
|
+
"application/x-eva": ["eva"],
|
|
3686
|
+
"application/x-font-bdf": ["bdf"],
|
|
3687
|
+
"application/x-font-ghostscript": ["gsf"],
|
|
3688
|
+
"application/x-font-linux-psf": ["psf"],
|
|
3689
|
+
"application/x-font-pcf": ["pcf"],
|
|
3690
|
+
"application/x-font-snf": ["snf"],
|
|
3691
|
+
"application/x-font-type1": ["pfa", "pfb", "pfm", "afm"],
|
|
3692
|
+
"application/x-freearc": ["arc"],
|
|
3693
|
+
"application/x-futuresplash": ["spl"],
|
|
3694
|
+
"application/x-gca-compressed": ["gca"],
|
|
3695
|
+
"application/x-glulx": ["ulx"],
|
|
3696
|
+
"application/x-gnumeric": ["gnumeric"],
|
|
3697
|
+
"application/x-gramps-xml": ["gramps"],
|
|
3698
|
+
"application/x-gtar": ["gtar"],
|
|
3699
|
+
"application/x-hdf": ["hdf"],
|
|
3700
|
+
"application/x-httpd-php": ["php"],
|
|
3701
|
+
"application/x-install-instructions": ["install"],
|
|
3702
|
+
"application/x-ipynb+json": ["ipynb"],
|
|
3703
|
+
"application/x-iso9660-image": ["*iso"],
|
|
3704
|
+
"application/x-iwork-keynote-sffkey": ["*key"],
|
|
3705
|
+
"application/x-iwork-numbers-sffnumbers": ["*numbers"],
|
|
3706
|
+
"application/x-iwork-pages-sffpages": ["*pages"],
|
|
3707
|
+
"application/x-java-archive-diff": ["jardiff"],
|
|
3708
|
+
"application/x-java-jnlp-file": ["jnlp"],
|
|
3709
|
+
"application/x-keepass2": ["kdbx"],
|
|
3710
|
+
"application/x-latex": ["latex"],
|
|
3711
|
+
"application/x-lua-bytecode": ["luac"],
|
|
3712
|
+
"application/x-lzh-compressed": ["lzh", "lha"],
|
|
3713
|
+
"application/x-makeself": ["run"],
|
|
3714
|
+
"application/x-mie": ["mie"],
|
|
3715
|
+
"application/x-mobipocket-ebook": ["*prc", "mobi"],
|
|
3716
|
+
"application/x-ms-application": ["application"],
|
|
3717
|
+
"application/x-ms-shortcut": ["lnk"],
|
|
3718
|
+
"application/x-ms-wmd": ["wmd"],
|
|
3719
|
+
"application/x-ms-wmz": ["wmz"],
|
|
3720
|
+
"application/x-ms-xbap": ["xbap"],
|
|
3721
|
+
"application/x-msaccess": ["mdb"],
|
|
3722
|
+
"application/x-msbinder": ["obd"],
|
|
3723
|
+
"application/x-mscardfile": ["crd"],
|
|
3724
|
+
"application/x-msclip": ["clp"],
|
|
3725
|
+
"application/x-msdos-program": ["*exe"],
|
|
3726
|
+
"application/x-msdownload": ["*exe", "*dll", "com", "bat", "*msi"],
|
|
3727
|
+
"application/x-msmediaview": ["mvb", "m13", "m14"],
|
|
3728
|
+
"application/x-msmetafile": ["*wmf", "*wmz", "*emf", "emz"],
|
|
3729
|
+
"application/x-msmoney": ["mny"],
|
|
3730
|
+
"application/x-mspublisher": ["pub"],
|
|
3731
|
+
"application/x-msschedule": ["scd"],
|
|
3732
|
+
"application/x-msterminal": ["trm"],
|
|
3733
|
+
"application/x-mswrite": ["wri"],
|
|
3734
|
+
"application/x-netcdf": ["nc", "cdf"],
|
|
3735
|
+
"application/x-ns-proxy-autoconfig": ["pac"],
|
|
3736
|
+
"application/x-nzb": ["nzb"],
|
|
3737
|
+
"application/x-perl": ["pl", "pm"],
|
|
3738
|
+
"application/x-pilot": ["*prc", "*pdb"],
|
|
3739
|
+
"application/x-pkcs12": ["p12", "pfx"],
|
|
3740
|
+
"application/x-pkcs7-certificates": ["p7b", "spc"],
|
|
3741
|
+
"application/x-pkcs7-certreqresp": ["p7r"],
|
|
3742
|
+
"application/x-rar-compressed": ["*rar"],
|
|
3743
|
+
"application/x-redhat-package-manager": ["rpm"],
|
|
3744
|
+
"application/x-research-info-systems": ["ris"],
|
|
3745
|
+
"application/x-sea": ["sea"],
|
|
3746
|
+
"application/x-sh": ["sh"],
|
|
3747
|
+
"application/x-shar": ["shar"],
|
|
3748
|
+
"application/x-shockwave-flash": ["swf"],
|
|
3749
|
+
"application/x-silverlight-app": ["xap"],
|
|
3750
|
+
"application/x-sql": ["*sql"],
|
|
3751
|
+
"application/x-stuffit": ["sit"],
|
|
3752
|
+
"application/x-stuffitx": ["sitx"],
|
|
3753
|
+
"application/x-subrip": ["srt"],
|
|
3754
|
+
"application/x-sv4cpio": ["sv4cpio"],
|
|
3755
|
+
"application/x-sv4crc": ["sv4crc"],
|
|
3756
|
+
"application/x-t3vm-image": ["t3"],
|
|
3757
|
+
"application/x-tads": ["gam"],
|
|
3758
|
+
"application/x-tar": ["tar"],
|
|
3759
|
+
"application/x-tcl": ["tcl", "tk"],
|
|
3760
|
+
"application/x-tex": ["tex"],
|
|
3761
|
+
"application/x-tex-tfm": ["tfm"],
|
|
3762
|
+
"application/x-texinfo": ["texinfo", "texi"],
|
|
3763
|
+
"application/x-tgif": ["*obj"],
|
|
3764
|
+
"application/x-ustar": ["ustar"],
|
|
3765
|
+
"application/x-virtualbox-hdd": ["hdd"],
|
|
3766
|
+
"application/x-virtualbox-ova": ["ova"],
|
|
3767
|
+
"application/x-virtualbox-ovf": ["ovf"],
|
|
3768
|
+
"application/x-virtualbox-vbox": ["vbox"],
|
|
3769
|
+
"application/x-virtualbox-vbox-extpack": ["vbox-extpack"],
|
|
3770
|
+
"application/x-virtualbox-vdi": ["vdi"],
|
|
3771
|
+
"application/x-virtualbox-vhd": ["vhd"],
|
|
3772
|
+
"application/x-virtualbox-vmdk": ["vmdk"],
|
|
3773
|
+
"application/x-wais-source": ["src"],
|
|
3774
|
+
"application/x-web-app-manifest+json": ["webapp"],
|
|
3775
|
+
"application/x-x509-ca-cert": ["der", "crt", "pem"],
|
|
3776
|
+
"application/x-xfig": ["fig"],
|
|
3777
|
+
"application/x-xliff+xml": ["*xlf"],
|
|
3778
|
+
"application/x-xpinstall": ["xpi"],
|
|
3779
|
+
"application/x-xz": ["xz"],
|
|
3780
|
+
"application/x-zip-compressed": ["*zip"],
|
|
3781
|
+
"application/x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
|
|
3782
|
+
"audio/vnd.dece.audio": ["uva", "uvva"],
|
|
3783
|
+
"audio/vnd.digital-winds": ["eol"],
|
|
3784
|
+
"audio/vnd.dra": ["dra"],
|
|
3785
|
+
"audio/vnd.dts": ["dts"],
|
|
3786
|
+
"audio/vnd.dts.hd": ["dtshd"],
|
|
3787
|
+
"audio/vnd.lucent.voice": ["lvp"],
|
|
3788
|
+
"audio/vnd.ms-playready.media.pya": ["pya"],
|
|
3789
|
+
"audio/vnd.nuera.ecelp4800": ["ecelp4800"],
|
|
3790
|
+
"audio/vnd.nuera.ecelp7470": ["ecelp7470"],
|
|
3791
|
+
"audio/vnd.nuera.ecelp9600": ["ecelp9600"],
|
|
3792
|
+
"audio/vnd.rip": ["rip"],
|
|
3793
|
+
"audio/x-aac": ["*aac"],
|
|
3794
|
+
"audio/x-aiff": ["aif", "aiff", "aifc"],
|
|
3795
|
+
"audio/x-caf": ["caf"],
|
|
3796
|
+
"audio/x-flac": ["flac"],
|
|
3797
|
+
"audio/x-m4a": ["*m4a"],
|
|
3798
|
+
"audio/x-matroska": ["mka"],
|
|
3799
|
+
"audio/x-mpegurl": ["m3u"],
|
|
3800
|
+
"audio/x-ms-wax": ["wax"],
|
|
3801
|
+
"audio/x-ms-wma": ["wma"],
|
|
3802
|
+
"audio/x-pn-realaudio": ["ram", "ra"],
|
|
3803
|
+
"audio/x-pn-realaudio-plugin": ["rmp"],
|
|
3804
|
+
"audio/x-realaudio": ["*ra"],
|
|
3805
|
+
"audio/x-wav": ["*wav"],
|
|
3806
|
+
"chemical/x-cdx": ["cdx"],
|
|
3807
|
+
"chemical/x-cif": ["cif"],
|
|
3808
|
+
"chemical/x-cmdf": ["cmdf"],
|
|
3809
|
+
"chemical/x-cml": ["cml"],
|
|
3810
|
+
"chemical/x-csml": ["csml"],
|
|
3811
|
+
"chemical/x-xyz": ["xyz"],
|
|
3812
|
+
"image/prs.btif": ["btif", "btf"],
|
|
3813
|
+
"image/prs.pti": ["pti"],
|
|
3814
|
+
"image/vnd.adobe.photoshop": ["psd"],
|
|
3815
|
+
"image/vnd.airzip.accelerator.azv": ["azv"],
|
|
3816
|
+
"image/vnd.blockfact.facti": ["facti"],
|
|
3817
|
+
"image/vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
|
|
3818
|
+
"image/vnd.djvu": ["djvu", "djv"],
|
|
3819
|
+
"image/vnd.dvb.subtitle": ["*sub"],
|
|
3820
|
+
"image/vnd.dwg": ["dwg"],
|
|
3821
|
+
"image/vnd.dxf": ["dxf"],
|
|
3822
|
+
"image/vnd.fastbidsheet": ["fbs"],
|
|
3823
|
+
"image/vnd.fpx": ["fpx"],
|
|
3824
|
+
"image/vnd.fst": ["fst"],
|
|
3825
|
+
"image/vnd.fujixerox.edmics-mmr": ["mmr"],
|
|
3826
|
+
"image/vnd.fujixerox.edmics-rlc": ["rlc"],
|
|
3827
|
+
"image/vnd.microsoft.icon": ["ico"],
|
|
3828
|
+
"image/vnd.ms-dds": ["dds"],
|
|
3829
|
+
"image/vnd.ms-modi": ["mdi"],
|
|
3830
|
+
"image/vnd.ms-photo": ["wdp"],
|
|
3831
|
+
"image/vnd.net-fpx": ["npx"],
|
|
3832
|
+
"image/vnd.pco.b16": ["b16"],
|
|
3833
|
+
"image/vnd.tencent.tap": ["tap"],
|
|
3834
|
+
"image/vnd.valve.source.texture": ["vtf"],
|
|
3835
|
+
"image/vnd.wap.wbmp": ["wbmp"],
|
|
3836
|
+
"image/vnd.xiff": ["xif"],
|
|
3837
|
+
"image/vnd.zbrush.pcx": ["pcx"],
|
|
3838
|
+
"image/x-3ds": ["3ds"],
|
|
3839
|
+
"image/x-adobe-dng": ["dng"],
|
|
3840
|
+
"image/x-cmu-raster": ["ras"],
|
|
3841
|
+
"image/x-cmx": ["cmx"],
|
|
3842
|
+
"image/x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
|
|
3843
|
+
"image/x-icon": ["*ico"],
|
|
3844
|
+
"image/x-jng": ["jng"],
|
|
3845
|
+
"image/x-mrsid-image": ["sid"],
|
|
3846
|
+
"image/x-ms-bmp": ["*bmp"],
|
|
3847
|
+
"image/x-pcx": ["*pcx"],
|
|
3848
|
+
"image/x-pict": ["pic", "pct"],
|
|
3849
|
+
"image/x-portable-anymap": ["pnm"],
|
|
3850
|
+
"image/x-portable-bitmap": ["pbm"],
|
|
3851
|
+
"image/x-portable-graymap": ["pgm"],
|
|
3852
|
+
"image/x-portable-pixmap": ["ppm"],
|
|
3853
|
+
"image/x-rgb": ["rgb"],
|
|
3854
|
+
"image/x-tga": ["tga"],
|
|
3855
|
+
"image/x-xbitmap": ["xbm"],
|
|
3856
|
+
"image/x-xpixmap": ["xpm"],
|
|
3857
|
+
"image/x-xwindowdump": ["xwd"],
|
|
3858
|
+
"message/vnd.wfa.wsc": ["wsc"],
|
|
3859
|
+
"model/vnd.bary": ["bary"],
|
|
3860
|
+
"model/vnd.cld": ["cld"],
|
|
3861
|
+
"model/vnd.collada+xml": ["dae"],
|
|
3862
|
+
"model/vnd.dwf": ["dwf"],
|
|
3863
|
+
"model/vnd.gdl": ["gdl"],
|
|
3864
|
+
"model/vnd.gtw": ["gtw"],
|
|
3865
|
+
"model/vnd.mts": ["*mts"],
|
|
3866
|
+
"model/vnd.opengex": ["ogex"],
|
|
3867
|
+
"model/vnd.parasolid.transmit.binary": ["x_b"],
|
|
3868
|
+
"model/vnd.parasolid.transmit.text": ["x_t"],
|
|
3869
|
+
"model/vnd.pytha.pyox": ["pyo", "pyox"],
|
|
3870
|
+
"model/vnd.sap.vds": ["vds"],
|
|
3871
|
+
"model/vnd.usda": ["usda"],
|
|
3872
|
+
"model/vnd.usdz+zip": ["usdz"],
|
|
3873
|
+
"model/vnd.valve.source.compiled-map": ["bsp"],
|
|
3874
|
+
"model/vnd.vtu": ["vtu"],
|
|
3875
|
+
"text/prs.lines.tag": ["dsc"],
|
|
3876
|
+
"text/vnd.curl": ["curl"],
|
|
3877
|
+
"text/vnd.curl.dcurl": ["dcurl"],
|
|
3878
|
+
"text/vnd.curl.mcurl": ["mcurl"],
|
|
3879
|
+
"text/vnd.curl.scurl": ["scurl"],
|
|
3880
|
+
"text/vnd.dvb.subtitle": ["sub"],
|
|
3881
|
+
"text/vnd.familysearch.gedcom": ["ged"],
|
|
3882
|
+
"text/vnd.fly": ["fly"],
|
|
3883
|
+
"text/vnd.fmi.flexstor": ["flx"],
|
|
3884
|
+
"text/vnd.graphviz": ["gv"],
|
|
3885
|
+
"text/vnd.in3d.3dml": ["3dml"],
|
|
3886
|
+
"text/vnd.in3d.spot": ["spot"],
|
|
3887
|
+
"text/vnd.sun.j2me.app-descriptor": ["jad"],
|
|
3888
|
+
"text/vnd.wap.wml": ["wml"],
|
|
3889
|
+
"text/vnd.wap.wmlscript": ["wmls"],
|
|
3890
|
+
"text/x-asm": ["s", "asm"],
|
|
3891
|
+
"text/x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
|
|
3892
|
+
"text/x-component": ["htc"],
|
|
3893
|
+
"text/x-fortran": ["f", "for", "f77", "f90"],
|
|
3894
|
+
"text/x-handlebars-template": ["hbs"],
|
|
3895
|
+
"text/x-java-source": ["java"],
|
|
3896
|
+
"text/x-lua": ["lua"],
|
|
3897
|
+
"text/x-markdown": ["mkd"],
|
|
3898
|
+
"text/x-nfo": ["nfo"],
|
|
3899
|
+
"text/x-opml": ["opml"],
|
|
3900
|
+
"text/x-org": ["*org"],
|
|
3901
|
+
"text/x-pascal": ["p", "pas"],
|
|
3902
|
+
"text/x-processing": ["pde"],
|
|
3903
|
+
"text/x-sass": ["sass"],
|
|
3904
|
+
"text/x-scss": ["scss"],
|
|
3905
|
+
"text/x-setext": ["etx"],
|
|
3906
|
+
"text/x-sfv": ["sfv"],
|
|
3907
|
+
"text/x-suse-ymp": ["ymp"],
|
|
3908
|
+
"text/x-uuencode": ["uu"],
|
|
3909
|
+
"text/x-vcalendar": ["vcs"],
|
|
3910
|
+
"text/x-vcard": ["vcf"],
|
|
3911
|
+
"video/vnd.dece.hd": ["uvh", "uvvh"],
|
|
3912
|
+
"video/vnd.dece.mobile": ["uvm", "uvvm"],
|
|
3913
|
+
"video/vnd.dece.pd": ["uvp", "uvvp"],
|
|
3914
|
+
"video/vnd.dece.sd": ["uvs", "uvvs"],
|
|
3915
|
+
"video/vnd.dece.video": ["uvv", "uvvv"],
|
|
3916
|
+
"video/vnd.dvb.file": ["dvb"],
|
|
3917
|
+
"video/vnd.fvt": ["fvt"],
|
|
3918
|
+
"video/vnd.mpegurl": ["mxu", "m4u"],
|
|
3919
|
+
"video/vnd.ms-playready.media.pyv": ["pyv"],
|
|
3920
|
+
"video/vnd.uvvu.mp4": ["uvu", "uvvu"],
|
|
3921
|
+
"video/vnd.vivo": ["viv"],
|
|
3922
|
+
"video/x-f4v": ["f4v"],
|
|
3923
|
+
"video/x-fli": ["fli"],
|
|
3924
|
+
"video/x-flv": ["flv"],
|
|
3925
|
+
"video/x-m4v": ["m4v"],
|
|
3926
|
+
"video/x-matroska": ["mkv", "mk3d", "mks"],
|
|
3927
|
+
"video/x-mng": ["mng"],
|
|
3928
|
+
"video/x-ms-asf": ["asf", "asx"],
|
|
3929
|
+
"video/x-ms-vob": ["vob"],
|
|
3930
|
+
"video/x-ms-wm": ["wm"],
|
|
3931
|
+
"video/x-ms-wmv": ["wmv"],
|
|
3932
|
+
"video/x-ms-wmx": ["wmx"],
|
|
3933
|
+
"video/x-ms-wvx": ["wvx"],
|
|
3934
|
+
"video/x-msvideo": ["avi"],
|
|
3935
|
+
"video/x-sgi-movie": ["movie"],
|
|
3936
|
+
"video/x-smv": ["smv"],
|
|
3937
|
+
"x-conference/x-cooltalk": ["ice"]
|
|
3938
|
+
};
|
|
3939
|
+
Object.freeze(types);
|
|
3940
|
+
var other_default = types;
|
|
3941
|
+
|
|
3942
|
+
// node_modules/mime/dist/types/standard.js
|
|
3943
|
+
var types2 = {
|
|
3944
|
+
"application/andrew-inset": ["ez"],
|
|
3945
|
+
"application/appinstaller": ["appinstaller"],
|
|
3946
|
+
"application/applixware": ["aw"],
|
|
3947
|
+
"application/appx": ["appx"],
|
|
3948
|
+
"application/appxbundle": ["appxbundle"],
|
|
3949
|
+
"application/atom+xml": ["atom"],
|
|
3950
|
+
"application/atomcat+xml": ["atomcat"],
|
|
3951
|
+
"application/atomdeleted+xml": ["atomdeleted"],
|
|
3952
|
+
"application/atomsvc+xml": ["atomsvc"],
|
|
3953
|
+
"application/atsc-dwd+xml": ["dwd"],
|
|
3954
|
+
"application/atsc-held+xml": ["held"],
|
|
3955
|
+
"application/atsc-rsat+xml": ["rsat"],
|
|
3956
|
+
"application/automationml-aml+xml": ["aml"],
|
|
3957
|
+
"application/automationml-amlx+zip": ["amlx"],
|
|
3958
|
+
"application/bdoc": ["bdoc"],
|
|
3959
|
+
"application/calendar+xml": ["xcs"],
|
|
3960
|
+
"application/ccxml+xml": ["ccxml"],
|
|
3961
|
+
"application/cdfx+xml": ["cdfx"],
|
|
3962
|
+
"application/cdmi-capability": ["cdmia"],
|
|
3963
|
+
"application/cdmi-container": ["cdmic"],
|
|
3964
|
+
"application/cdmi-domain": ["cdmid"],
|
|
3965
|
+
"application/cdmi-object": ["cdmio"],
|
|
3966
|
+
"application/cdmi-queue": ["cdmiq"],
|
|
3967
|
+
"application/cpl+xml": ["cpl"],
|
|
3968
|
+
"application/cu-seeme": ["cu"],
|
|
3969
|
+
"application/cwl": ["cwl"],
|
|
3970
|
+
"application/dash+xml": ["mpd"],
|
|
3971
|
+
"application/dash-patch+xml": ["mpp"],
|
|
3972
|
+
"application/davmount+xml": ["davmount"],
|
|
3973
|
+
"application/dicom": ["dcm"],
|
|
3974
|
+
"application/docbook+xml": ["dbk"],
|
|
3975
|
+
"application/dssc+der": ["dssc"],
|
|
3976
|
+
"application/dssc+xml": ["xdssc"],
|
|
3977
|
+
"application/ecmascript": ["ecma"],
|
|
3978
|
+
"application/emma+xml": ["emma"],
|
|
3979
|
+
"application/emotionml+xml": ["emotionml"],
|
|
3980
|
+
"application/epub+zip": ["epub"],
|
|
3981
|
+
"application/exi": ["exi"],
|
|
3982
|
+
"application/express": ["exp"],
|
|
3983
|
+
"application/fdf": ["fdf"],
|
|
3984
|
+
"application/fdt+xml": ["fdt"],
|
|
3985
|
+
"application/font-tdpfr": ["pfr"],
|
|
3986
|
+
"application/geo+json": ["geojson"],
|
|
3987
|
+
"application/gml+xml": ["gml"],
|
|
3988
|
+
"application/gpx+xml": ["gpx"],
|
|
3989
|
+
"application/gxf": ["gxf"],
|
|
3990
|
+
"application/gzip": ["gz"],
|
|
3991
|
+
"application/hjson": ["hjson"],
|
|
3992
|
+
"application/hyperstudio": ["stk"],
|
|
3993
|
+
"application/inkml+xml": ["ink", "inkml"],
|
|
3994
|
+
"application/ipfix": ["ipfix"],
|
|
3995
|
+
"application/its+xml": ["its"],
|
|
3996
|
+
"application/java-archive": ["jar", "war", "ear"],
|
|
3997
|
+
"application/java-serialized-object": ["ser"],
|
|
3998
|
+
"application/java-vm": ["class"],
|
|
3999
|
+
"application/javascript": ["*js"],
|
|
4000
|
+
"application/json": ["json", "map"],
|
|
4001
|
+
"application/json5": ["json5"],
|
|
4002
|
+
"application/jsonml+json": ["jsonml"],
|
|
4003
|
+
"application/ld+json": ["jsonld"],
|
|
4004
|
+
"application/lgr+xml": ["lgr"],
|
|
4005
|
+
"application/lost+xml": ["lostxml"],
|
|
4006
|
+
"application/mac-binhex40": ["hqx"],
|
|
4007
|
+
"application/mac-compactpro": ["cpt"],
|
|
4008
|
+
"application/mads+xml": ["mads"],
|
|
4009
|
+
"application/manifest+json": ["webmanifest"],
|
|
4010
|
+
"application/marc": ["mrc"],
|
|
4011
|
+
"application/marcxml+xml": ["mrcx"],
|
|
4012
|
+
"application/mathematica": ["ma", "nb", "mb"],
|
|
4013
|
+
"application/mathml+xml": ["mathml"],
|
|
4014
|
+
"application/mbox": ["mbox"],
|
|
4015
|
+
"application/media-policy-dataset+xml": ["mpf"],
|
|
4016
|
+
"application/mediaservercontrol+xml": ["mscml"],
|
|
4017
|
+
"application/metalink+xml": ["metalink"],
|
|
4018
|
+
"application/metalink4+xml": ["meta4"],
|
|
4019
|
+
"application/mets+xml": ["mets"],
|
|
4020
|
+
"application/mmt-aei+xml": ["maei"],
|
|
4021
|
+
"application/mmt-usd+xml": ["musd"],
|
|
4022
|
+
"application/mods+xml": ["mods"],
|
|
4023
|
+
"application/mp21": ["m21", "mp21"],
|
|
4024
|
+
"application/mp4": ["*mp4", "*mpg4", "mp4s", "m4p"],
|
|
4025
|
+
"application/msix": ["msix"],
|
|
4026
|
+
"application/msixbundle": ["msixbundle"],
|
|
4027
|
+
"application/msword": ["doc", "dot"],
|
|
4028
|
+
"application/mxf": ["mxf"],
|
|
4029
|
+
"application/n-quads": ["nq"],
|
|
4030
|
+
"application/n-triples": ["nt"],
|
|
4031
|
+
"application/node": ["cjs"],
|
|
4032
|
+
"application/octet-stream": [
|
|
4033
|
+
"bin",
|
|
4034
|
+
"dms",
|
|
4035
|
+
"lrf",
|
|
4036
|
+
"mar",
|
|
4037
|
+
"so",
|
|
4038
|
+
"dist",
|
|
4039
|
+
"distz",
|
|
4040
|
+
"pkg",
|
|
4041
|
+
"bpk",
|
|
4042
|
+
"dump",
|
|
4043
|
+
"elc",
|
|
4044
|
+
"deploy",
|
|
4045
|
+
"exe",
|
|
4046
|
+
"dll",
|
|
4047
|
+
"deb",
|
|
4048
|
+
"dmg",
|
|
4049
|
+
"iso",
|
|
4050
|
+
"img",
|
|
4051
|
+
"msi",
|
|
4052
|
+
"msp",
|
|
4053
|
+
"msm",
|
|
4054
|
+
"buffer"
|
|
4055
|
+
],
|
|
4056
|
+
"application/oda": ["oda"],
|
|
4057
|
+
"application/oebps-package+xml": ["opf"],
|
|
4058
|
+
"application/ogg": ["ogx"],
|
|
4059
|
+
"application/omdoc+xml": ["omdoc"],
|
|
4060
|
+
"application/onenote": [
|
|
4061
|
+
"onetoc",
|
|
4062
|
+
"onetoc2",
|
|
4063
|
+
"onetmp",
|
|
4064
|
+
"onepkg",
|
|
4065
|
+
"one",
|
|
4066
|
+
"onea"
|
|
4067
|
+
],
|
|
4068
|
+
"application/oxps": ["oxps"],
|
|
4069
|
+
"application/p2p-overlay+xml": ["relo"],
|
|
4070
|
+
"application/patch-ops-error+xml": ["xer"],
|
|
4071
|
+
"application/pdf": ["pdf"],
|
|
4072
|
+
"application/pgp-encrypted": ["pgp"],
|
|
4073
|
+
"application/pgp-keys": ["asc"],
|
|
4074
|
+
"application/pgp-signature": ["sig", "*asc"],
|
|
4075
|
+
"application/pics-rules": ["prf"],
|
|
4076
|
+
"application/pkcs10": ["p10"],
|
|
4077
|
+
"application/pkcs7-mime": ["p7m", "p7c"],
|
|
4078
|
+
"application/pkcs7-signature": ["p7s"],
|
|
4079
|
+
"application/pkcs8": ["p8"],
|
|
4080
|
+
"application/pkix-attr-cert": ["ac"],
|
|
4081
|
+
"application/pkix-cert": ["cer"],
|
|
4082
|
+
"application/pkix-crl": ["crl"],
|
|
4083
|
+
"application/pkix-pkipath": ["pkipath"],
|
|
4084
|
+
"application/pkixcmp": ["pki"],
|
|
4085
|
+
"application/pls+xml": ["pls"],
|
|
4086
|
+
"application/postscript": ["ai", "eps", "ps"],
|
|
4087
|
+
"application/provenance+xml": ["provx"],
|
|
4088
|
+
"application/pskc+xml": ["pskcxml"],
|
|
4089
|
+
"application/raml+yaml": ["raml"],
|
|
4090
|
+
"application/rdf+xml": ["rdf", "owl"],
|
|
4091
|
+
"application/reginfo+xml": ["rif"],
|
|
4092
|
+
"application/relax-ng-compact-syntax": ["rnc"],
|
|
4093
|
+
"application/resource-lists+xml": ["rl"],
|
|
4094
|
+
"application/resource-lists-diff+xml": ["rld"],
|
|
4095
|
+
"application/rls-services+xml": ["rs"],
|
|
4096
|
+
"application/route-apd+xml": ["rapd"],
|
|
4097
|
+
"application/route-s-tsid+xml": ["sls"],
|
|
4098
|
+
"application/route-usd+xml": ["rusd"],
|
|
4099
|
+
"application/rpki-ghostbusters": ["gbr"],
|
|
4100
|
+
"application/rpki-manifest": ["mft"],
|
|
4101
|
+
"application/rpki-roa": ["roa"],
|
|
4102
|
+
"application/rsd+xml": ["rsd"],
|
|
4103
|
+
"application/rss+xml": ["rss"],
|
|
4104
|
+
"application/rtf": ["rtf"],
|
|
4105
|
+
"application/sbml+xml": ["sbml"],
|
|
4106
|
+
"application/scvp-cv-request": ["scq"],
|
|
4107
|
+
"application/scvp-cv-response": ["scs"],
|
|
4108
|
+
"application/scvp-vp-request": ["spq"],
|
|
4109
|
+
"application/scvp-vp-response": ["spp"],
|
|
4110
|
+
"application/sdp": ["sdp"],
|
|
4111
|
+
"application/senml+xml": ["senmlx"],
|
|
4112
|
+
"application/sensml+xml": ["sensmlx"],
|
|
4113
|
+
"application/set-payment-initiation": ["setpay"],
|
|
4114
|
+
"application/set-registration-initiation": ["setreg"],
|
|
4115
|
+
"application/shf+xml": ["shf"],
|
|
4116
|
+
"application/sieve": ["siv", "sieve"],
|
|
4117
|
+
"application/smil+xml": ["smi", "smil"],
|
|
4118
|
+
"application/sparql-query": ["rq"],
|
|
4119
|
+
"application/sparql-results+xml": ["srx"],
|
|
4120
|
+
"application/sql": ["sql"],
|
|
4121
|
+
"application/srgs": ["gram"],
|
|
4122
|
+
"application/srgs+xml": ["grxml"],
|
|
4123
|
+
"application/sru+xml": ["sru"],
|
|
4124
|
+
"application/ssdl+xml": ["ssdl"],
|
|
4125
|
+
"application/ssml+xml": ["ssml"],
|
|
4126
|
+
"application/swid+xml": ["swidtag"],
|
|
4127
|
+
"application/tei+xml": ["tei", "teicorpus"],
|
|
4128
|
+
"application/thraud+xml": ["tfi"],
|
|
4129
|
+
"application/timestamped-data": ["tsd"],
|
|
4130
|
+
"application/toml": ["toml"],
|
|
4131
|
+
"application/trig": ["trig"],
|
|
4132
|
+
"application/ttml+xml": ["ttml"],
|
|
4133
|
+
"application/ubjson": ["ubj"],
|
|
4134
|
+
"application/urc-ressheet+xml": ["rsheet"],
|
|
4135
|
+
"application/urc-targetdesc+xml": ["td"],
|
|
4136
|
+
"application/voicexml+xml": ["vxml"],
|
|
4137
|
+
"application/wasm": ["wasm"],
|
|
4138
|
+
"application/watcherinfo+xml": ["wif"],
|
|
4139
|
+
"application/widget": ["wgt"],
|
|
4140
|
+
"application/winhlp": ["hlp"],
|
|
4141
|
+
"application/wsdl+xml": ["wsdl"],
|
|
4142
|
+
"application/wspolicy+xml": ["wspolicy"],
|
|
4143
|
+
"application/xaml+xml": ["xaml"],
|
|
4144
|
+
"application/xcap-att+xml": ["xav"],
|
|
4145
|
+
"application/xcap-caps+xml": ["xca"],
|
|
4146
|
+
"application/xcap-diff+xml": ["xdf"],
|
|
4147
|
+
"application/xcap-el+xml": ["xel"],
|
|
4148
|
+
"application/xcap-ns+xml": ["xns"],
|
|
4149
|
+
"application/xenc+xml": ["xenc"],
|
|
4150
|
+
"application/xfdf": ["xfdf"],
|
|
4151
|
+
"application/xhtml+xml": ["xhtml", "xht"],
|
|
4152
|
+
"application/xliff+xml": ["xlf"],
|
|
4153
|
+
"application/xml": ["xml", "xsl", "xsd", "rng"],
|
|
4154
|
+
"application/xml-dtd": ["dtd"],
|
|
4155
|
+
"application/xop+xml": ["xop"],
|
|
4156
|
+
"application/xproc+xml": ["xpl"],
|
|
4157
|
+
"application/xslt+xml": ["*xsl", "xslt"],
|
|
4158
|
+
"application/xspf+xml": ["xspf"],
|
|
4159
|
+
"application/xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
|
|
4160
|
+
"application/yang": ["yang"],
|
|
4161
|
+
"application/yin+xml": ["yin"],
|
|
4162
|
+
"application/zip": ["zip"],
|
|
4163
|
+
"application/zip+dotlottie": ["lottie"],
|
|
4164
|
+
"audio/3gpp": ["*3gpp"],
|
|
4165
|
+
"audio/aac": ["adts", "aac"],
|
|
4166
|
+
"audio/adpcm": ["adp"],
|
|
4167
|
+
"audio/amr": ["amr"],
|
|
4168
|
+
"audio/basic": ["au", "snd"],
|
|
4169
|
+
"audio/midi": ["mid", "midi", "kar", "rmi"],
|
|
4170
|
+
"audio/mobile-xmf": ["mxmf"],
|
|
4171
|
+
"audio/mp3": ["*mp3"],
|
|
4172
|
+
"audio/mp4": ["m4a", "mp4a", "m4b"],
|
|
4173
|
+
"audio/mpeg": ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"],
|
|
4174
|
+
"audio/ogg": ["oga", "ogg", "spx", "opus"],
|
|
4175
|
+
"audio/s3m": ["s3m"],
|
|
4176
|
+
"audio/silk": ["sil"],
|
|
4177
|
+
"audio/wav": ["wav"],
|
|
4178
|
+
"audio/wave": ["*wav"],
|
|
4179
|
+
"audio/webm": ["weba"],
|
|
4180
|
+
"audio/xm": ["xm"],
|
|
4181
|
+
"font/collection": ["ttc"],
|
|
4182
|
+
"font/otf": ["otf"],
|
|
4183
|
+
"font/ttf": ["ttf"],
|
|
4184
|
+
"font/woff": ["woff"],
|
|
4185
|
+
"font/woff2": ["woff2"],
|
|
4186
|
+
"image/aces": ["exr"],
|
|
4187
|
+
"image/apng": ["apng"],
|
|
4188
|
+
"image/avci": ["avci"],
|
|
4189
|
+
"image/avcs": ["avcs"],
|
|
4190
|
+
"image/avif": ["avif"],
|
|
4191
|
+
"image/bmp": ["bmp", "dib"],
|
|
4192
|
+
"image/cgm": ["cgm"],
|
|
4193
|
+
"image/dicom-rle": ["drle"],
|
|
4194
|
+
"image/dpx": ["dpx"],
|
|
4195
|
+
"image/emf": ["emf"],
|
|
4196
|
+
"image/fits": ["fits"],
|
|
4197
|
+
"image/g3fax": ["g3"],
|
|
4198
|
+
"image/gif": ["gif"],
|
|
4199
|
+
"image/heic": ["heic"],
|
|
4200
|
+
"image/heic-sequence": ["heics"],
|
|
4201
|
+
"image/heif": ["heif"],
|
|
4202
|
+
"image/heif-sequence": ["heifs"],
|
|
4203
|
+
"image/hej2k": ["hej2"],
|
|
4204
|
+
"image/ief": ["ief"],
|
|
4205
|
+
"image/jaii": ["jaii"],
|
|
4206
|
+
"image/jais": ["jais"],
|
|
4207
|
+
"image/jls": ["jls"],
|
|
4208
|
+
"image/jp2": ["jp2", "jpg2"],
|
|
4209
|
+
"image/jpeg": ["jpg", "jpeg", "jpe"],
|
|
4210
|
+
"image/jph": ["jph"],
|
|
4211
|
+
"image/jphc": ["jhc"],
|
|
4212
|
+
"image/jpm": ["jpm", "jpgm"],
|
|
4213
|
+
"image/jpx": ["jpx", "jpf"],
|
|
4214
|
+
"image/jxl": ["jxl"],
|
|
4215
|
+
"image/jxr": ["jxr"],
|
|
4216
|
+
"image/jxra": ["jxra"],
|
|
4217
|
+
"image/jxrs": ["jxrs"],
|
|
4218
|
+
"image/jxs": ["jxs"],
|
|
4219
|
+
"image/jxsc": ["jxsc"],
|
|
4220
|
+
"image/jxsi": ["jxsi"],
|
|
4221
|
+
"image/jxss": ["jxss"],
|
|
4222
|
+
"image/ktx": ["ktx"],
|
|
4223
|
+
"image/ktx2": ["ktx2"],
|
|
4224
|
+
"image/pjpeg": ["jfif"],
|
|
4225
|
+
"image/png": ["png"],
|
|
4226
|
+
"image/sgi": ["sgi"],
|
|
4227
|
+
"image/svg+xml": ["svg", "svgz"],
|
|
4228
|
+
"image/t38": ["t38"],
|
|
4229
|
+
"image/tiff": ["tif", "tiff"],
|
|
4230
|
+
"image/tiff-fx": ["tfx"],
|
|
4231
|
+
"image/webp": ["webp"],
|
|
4232
|
+
"image/wmf": ["wmf"],
|
|
4233
|
+
"message/disposition-notification": ["disposition-notification"],
|
|
4234
|
+
"message/global": ["u8msg"],
|
|
4235
|
+
"message/global-delivery-status": ["u8dsn"],
|
|
4236
|
+
"message/global-disposition-notification": ["u8mdn"],
|
|
4237
|
+
"message/global-headers": ["u8hdr"],
|
|
4238
|
+
"message/rfc822": ["eml", "mime", "mht", "mhtml"],
|
|
4239
|
+
"model/3mf": ["3mf"],
|
|
4240
|
+
"model/gltf+json": ["gltf"],
|
|
4241
|
+
"model/gltf-binary": ["glb"],
|
|
4242
|
+
"model/iges": ["igs", "iges"],
|
|
4243
|
+
"model/jt": ["jt"],
|
|
4244
|
+
"model/mesh": ["msh", "mesh", "silo"],
|
|
4245
|
+
"model/mtl": ["mtl"],
|
|
4246
|
+
"model/obj": ["obj"],
|
|
4247
|
+
"model/prc": ["prc"],
|
|
4248
|
+
"model/step": ["step", "stp", "stpnc", "p21", "210"],
|
|
4249
|
+
"model/step+xml": ["stpx"],
|
|
4250
|
+
"model/step+zip": ["stpz"],
|
|
4251
|
+
"model/step-xml+zip": ["stpxz"],
|
|
4252
|
+
"model/stl": ["stl"],
|
|
4253
|
+
"model/u3d": ["u3d"],
|
|
4254
|
+
"model/vrml": ["wrl", "vrml"],
|
|
4255
|
+
"model/x3d+binary": ["*x3db", "x3dbz"],
|
|
4256
|
+
"model/x3d+fastinfoset": ["x3db"],
|
|
4257
|
+
"model/x3d+vrml": ["*x3dv", "x3dvz"],
|
|
4258
|
+
"model/x3d+xml": ["x3d", "x3dz"],
|
|
4259
|
+
"model/x3d-vrml": ["x3dv"],
|
|
4260
|
+
"text/cache-manifest": ["appcache", "manifest"],
|
|
4261
|
+
"text/calendar": ["ics", "ifb"],
|
|
4262
|
+
"text/coffeescript": ["coffee", "litcoffee"],
|
|
4263
|
+
"text/css": ["css"],
|
|
4264
|
+
"text/csv": ["csv"],
|
|
4265
|
+
"text/html": ["html", "htm", "shtml"],
|
|
4266
|
+
"text/jade": ["jade"],
|
|
4267
|
+
"text/javascript": ["js", "mjs"],
|
|
4268
|
+
"text/jsx": ["jsx"],
|
|
4269
|
+
"text/less": ["less"],
|
|
4270
|
+
"text/markdown": ["md", "markdown"],
|
|
4271
|
+
"text/mathml": ["mml"],
|
|
4272
|
+
"text/mdx": ["mdx"],
|
|
4273
|
+
"text/n3": ["n3"],
|
|
4274
|
+
"text/plain": ["txt", "text", "conf", "def", "list", "log", "in", "ini"],
|
|
4275
|
+
"text/richtext": ["rtx"],
|
|
4276
|
+
"text/rtf": ["*rtf"],
|
|
4277
|
+
"text/sgml": ["sgml", "sgm"],
|
|
4278
|
+
"text/shex": ["shex"],
|
|
4279
|
+
"text/slim": ["slim", "slm"],
|
|
4280
|
+
"text/spdx": ["spdx"],
|
|
4281
|
+
"text/stylus": ["stylus", "styl"],
|
|
4282
|
+
"text/tab-separated-values": ["tsv"],
|
|
4283
|
+
"text/troff": ["t", "tr", "roff", "man", "me", "ms"],
|
|
4284
|
+
"text/turtle": ["ttl"],
|
|
4285
|
+
"text/uri-list": ["uri", "uris", "urls"],
|
|
4286
|
+
"text/vcard": ["vcard"],
|
|
4287
|
+
"text/vtt": ["vtt"],
|
|
4288
|
+
"text/wgsl": ["wgsl"],
|
|
4289
|
+
"text/xml": ["*xml"],
|
|
4290
|
+
"text/yaml": ["yaml", "yml"],
|
|
4291
|
+
"video/3gpp": ["3gp", "3gpp"],
|
|
4292
|
+
"video/3gpp2": ["3g2"],
|
|
4293
|
+
"video/h261": ["h261"],
|
|
4294
|
+
"video/h263": ["h263"],
|
|
4295
|
+
"video/h264": ["h264"],
|
|
4296
|
+
"video/iso.segment": ["m4s"],
|
|
4297
|
+
"video/jpeg": ["jpgv"],
|
|
4298
|
+
"video/jpm": ["*jpm", "*jpgm"],
|
|
4299
|
+
"video/mj2": ["mj2", "mjp2"],
|
|
4300
|
+
"video/mp2t": ["ts", "m2t", "m2ts", "mts"],
|
|
4301
|
+
"video/mp4": ["mp4", "mp4v", "mpg4"],
|
|
4302
|
+
"video/mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v"],
|
|
4303
|
+
"video/ogg": ["ogv"],
|
|
4304
|
+
"video/quicktime": ["qt", "mov"],
|
|
4305
|
+
"video/webm": ["webm"]
|
|
4306
|
+
};
|
|
4307
|
+
Object.freeze(types2);
|
|
4308
|
+
var standard_default = types2;
|
|
4309
|
+
|
|
4310
|
+
// node_modules/mime/dist/src/Mime.js
|
|
4311
|
+
var __classPrivateFieldGet = function(receiver, state, kind, f) {
|
|
4312
|
+
if (kind === "a" && !f)
|
|
4313
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
4314
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
4315
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4316
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
4317
|
+
};
|
|
4318
|
+
var _Mime_extensionToType;
|
|
4319
|
+
var _Mime_typeToExtension;
|
|
4320
|
+
var _Mime_typeToExtensions;
|
|
4321
|
+
|
|
4322
|
+
class Mime {
|
|
4323
|
+
constructor(...args) {
|
|
4324
|
+
_Mime_extensionToType.set(this, new Map);
|
|
4325
|
+
_Mime_typeToExtension.set(this, new Map);
|
|
4326
|
+
_Mime_typeToExtensions.set(this, new Map);
|
|
4327
|
+
for (const arg of args) {
|
|
4328
|
+
this.define(arg);
|
|
4204
4329
|
}
|
|
4205
4330
|
}
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
}
|
|
4232
|
-
return parsed;
|
|
4233
|
-
}
|
|
4234
|
-
async function pullWebappConfig(options) {
|
|
4235
|
-
const raw = await fetchWebappConfig({
|
|
4236
|
-
env: options.env,
|
|
4237
|
-
webappId: options.webappId,
|
|
4238
|
-
url: options.url,
|
|
4239
|
-
host: options.host,
|
|
4240
|
-
port: options.port
|
|
4241
|
-
});
|
|
4242
|
-
const details = unwrapDetails(raw);
|
|
4243
|
-
const cleaned = sanitizeDetails(details);
|
|
4244
|
-
const stripped = Object.keys(details).length - Object.keys(cleaned).length;
|
|
4245
|
-
const fileName = options.out || DEFAULT_CONFIG_FILE;
|
|
4246
|
-
const outPath = resolve2(process.cwd(), fileName);
|
|
4247
|
-
writeFileSync4(outPath, `${JSON.stringify(cleaned, null, 2)}
|
|
4248
|
-
`, "utf-8");
|
|
4249
|
-
console.log(`✅ Wrote ${fileName} (${Object.keys(cleaned).length} fields, ${stripped} empty default${stripped === 1 ? "" : "s"} stripped)`);
|
|
4250
|
-
}
|
|
4251
|
-
async function pushWebappConfig(options) {
|
|
4252
|
-
const fileName = options.file || DEFAULT_CONFIG_FILE;
|
|
4253
|
-
const filePath = resolve2(process.cwd(), fileName);
|
|
4254
|
-
const fileDetails = readConfigFile(filePath);
|
|
4255
|
-
const raw = await fetchWebappConfig({
|
|
4256
|
-
env: options.env,
|
|
4257
|
-
webappId: options.webappId,
|
|
4258
|
-
url: options.url,
|
|
4259
|
-
host: options.host,
|
|
4260
|
-
port: options.port
|
|
4261
|
-
});
|
|
4262
|
-
const current = unwrapDetails(raw);
|
|
4263
|
-
const deltas = computeDetailsDelta(current, fileDetails);
|
|
4264
|
-
console.log(formatObjectDelta(deltas, `Pushing ${fileName} → [${options.env}]`));
|
|
4265
|
-
if (deltas.length === 0) {
|
|
4266
|
-
console.log(`
|
|
4267
|
-
✓ Already in sync — nothing to push.`);
|
|
4268
|
-
return;
|
|
4269
|
-
}
|
|
4270
|
-
if (options.dryRun) {
|
|
4271
|
-
console.log(`
|
|
4272
|
-
↷ Dry run — no request sent.`);
|
|
4273
|
-
return;
|
|
4274
|
-
}
|
|
4275
|
-
const tty = !!process.stdin.isTTY && !!process.stdout.isTTY;
|
|
4276
|
-
if (!options.yes) {
|
|
4277
|
-
if (!tty) {
|
|
4278
|
-
throw new Error("Refusing to push in non-interactive mode. Pass --yes to confirm or --dry-run to preview.");
|
|
4279
|
-
}
|
|
4280
|
-
const answer = await prompt(`
|
|
4281
|
-
Proceed with push on [${options.env}]? (y/N): `);
|
|
4282
|
-
if (!isExplicitYes(answer)) {
|
|
4283
|
-
console.log("✋ Aborted.");
|
|
4284
|
-
return;
|
|
4331
|
+
define(typeMap, force = false) {
|
|
4332
|
+
for (let [type, extensions] of Object.entries(typeMap)) {
|
|
4333
|
+
type = type.toLowerCase();
|
|
4334
|
+
extensions = extensions.map((ext) => ext.toLowerCase());
|
|
4335
|
+
if (!__classPrivateFieldGet(this, _Mime_typeToExtensions, "f").has(type)) {
|
|
4336
|
+
__classPrivateFieldGet(this, _Mime_typeToExtensions, "f").set(type, new Set);
|
|
4337
|
+
}
|
|
4338
|
+
const allExtensions = __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").get(type);
|
|
4339
|
+
let first = true;
|
|
4340
|
+
for (let extension of extensions) {
|
|
4341
|
+
const starred = extension.startsWith("*");
|
|
4342
|
+
extension = starred ? extension.slice(1) : extension;
|
|
4343
|
+
allExtensions?.add(extension);
|
|
4344
|
+
if (first) {
|
|
4345
|
+
__classPrivateFieldGet(this, _Mime_typeToExtension, "f").set(type, extension);
|
|
4346
|
+
}
|
|
4347
|
+
first = false;
|
|
4348
|
+
if (starred)
|
|
4349
|
+
continue;
|
|
4350
|
+
const currentType = __classPrivateFieldGet(this, _Mime_extensionToType, "f").get(extension);
|
|
4351
|
+
if (currentType && currentType != type && !force) {
|
|
4352
|
+
throw new Error(`"${type} -> ${extension}" conflicts with "${currentType} -> ${extension}". Pass \`force=true\` to override this definition.`);
|
|
4353
|
+
}
|
|
4354
|
+
__classPrivateFieldGet(this, _Mime_extensionToType, "f").set(extension, type);
|
|
4355
|
+
}
|
|
4285
4356
|
}
|
|
4357
|
+
return this;
|
|
4286
4358
|
}
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
}
|
|
4298
|
-
async function checkConfigDriftOnDeploy(options) {
|
|
4299
|
-
const fileName = options.file || DEFAULT_CONFIG_FILE;
|
|
4300
|
-
const filePath = resolve2(process.cwd(), fileName);
|
|
4301
|
-
if (!existsSync5(filePath))
|
|
4302
|
-
return;
|
|
4303
|
-
if (!process.env.WEBAPP_ID) {
|
|
4304
|
-
console.warn(`
|
|
4305
|
-
⚠️ Skipping config drift check: WEBAPP_ID is not set.`);
|
|
4306
|
-
return;
|
|
4359
|
+
getType(path3) {
|
|
4360
|
+
if (typeof path3 !== "string")
|
|
4361
|
+
return null;
|
|
4362
|
+
const last = path3.replace(/^.*[/\\]/s, "").toLowerCase();
|
|
4363
|
+
const ext = last.replace(/^.*\./s, "").toLowerCase();
|
|
4364
|
+
const hasPath = last.length < path3.length;
|
|
4365
|
+
const hasDot = ext.length < last.length - 1;
|
|
4366
|
+
if (!hasDot && hasPath)
|
|
4367
|
+
return null;
|
|
4368
|
+
return __classPrivateFieldGet(this, _Mime_extensionToType, "f").get(ext) ?? null;
|
|
4307
4369
|
}
|
|
4308
|
-
|
|
4309
|
-
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
console.warn(`
|
|
4314
|
-
⚠️ Skipping config drift check: ${message}`);
|
|
4315
|
-
return;
|
|
4370
|
+
getExtension(type) {
|
|
4371
|
+
if (typeof type !== "string")
|
|
4372
|
+
return null;
|
|
4373
|
+
type = type?.split?.(";")[0];
|
|
4374
|
+
return (type && __classPrivateFieldGet(this, _Mime_typeToExtension, "f").get(type.trim().toLowerCase())) ?? null;
|
|
4316
4375
|
}
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
host: options.host,
|
|
4322
|
-
port: options.port
|
|
4323
|
-
});
|
|
4324
|
-
current = unwrapDetails(raw);
|
|
4325
|
-
} catch (error) {
|
|
4326
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
4327
|
-
console.warn(`
|
|
4328
|
-
⚠️ Could not check config drift: ${message}`);
|
|
4329
|
-
return;
|
|
4376
|
+
getAllExtensions(type) {
|
|
4377
|
+
if (typeof type !== "string")
|
|
4378
|
+
return null;
|
|
4379
|
+
return __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").get(type.toLowerCase()) ?? null;
|
|
4330
4380
|
}
|
|
4331
|
-
|
|
4332
|
-
|
|
4333
|
-
|
|
4334
|
-
|
|
4335
|
-
|
|
4336
|
-
|
|
4337
|
-
|
|
4338
|
-
let shouldPush = options.pushConfig === true;
|
|
4339
|
-
if (!shouldPush) {
|
|
4340
|
-
if (!tty) {
|
|
4341
|
-
console.log(`
|
|
4342
|
-
ℹ️ ${fileName} differs from CMS — run 'ro app config push' to sync, or deploy with --push-config.`);
|
|
4343
|
-
return;
|
|
4381
|
+
_freeze() {
|
|
4382
|
+
this.define = () => {
|
|
4383
|
+
throw new Error("define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances");
|
|
4384
|
+
};
|
|
4385
|
+
Object.freeze(this);
|
|
4386
|
+
for (const extensions of __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").values()) {
|
|
4387
|
+
Object.freeze(extensions);
|
|
4344
4388
|
}
|
|
4345
|
-
|
|
4346
|
-
Push ${fileName} to the CMS now? (y/N): `);
|
|
4347
|
-
shouldPush = isExplicitYes(answer);
|
|
4348
|
-
}
|
|
4349
|
-
if (!shouldPush) {
|
|
4350
|
-
console.log(`
|
|
4351
|
-
↷ Skipped. Run 'ro app config push' later to sync.`);
|
|
4352
|
-
return;
|
|
4389
|
+
return this;
|
|
4353
4390
|
}
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
port: options.port
|
|
4360
|
-
});
|
|
4361
|
-
console.log("✅ Webapp config pushed.");
|
|
4362
|
-
} catch (error) {
|
|
4363
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
4364
|
-
console.warn(`
|
|
4365
|
-
⚠️ Config push failed (deploy still succeeded): ${message}`);
|
|
4366
|
-
console.warn(" Retry with: ro app config push");
|
|
4391
|
+
_getTestState() {
|
|
4392
|
+
return {
|
|
4393
|
+
types: __classPrivateFieldGet(this, _Mime_extensionToType, "f"),
|
|
4394
|
+
extensions: __classPrivateFieldGet(this, _Mime_typeToExtension, "f")
|
|
4395
|
+
};
|
|
4367
4396
|
}
|
|
4368
4397
|
}
|
|
4398
|
+
_Mime_extensionToType = new WeakMap, _Mime_typeToExtension = new WeakMap, _Mime_typeToExtensions = new WeakMap;
|
|
4399
|
+
var Mime_default = Mime;
|
|
4400
|
+
|
|
4401
|
+
// node_modules/mime/dist/src/index.js
|
|
4402
|
+
var src_default = new Mime_default(standard_default, other_default)._freeze();
|
|
4369
4403
|
|
|
4370
4404
|
// src/sync-widget-manifest.ts
|
|
4371
4405
|
import { existsSync as existsSync6, readFileSync as readFileSync5 } from "node:fs";
|
|
@@ -4877,7 +4911,7 @@ async function deploy(env = "development", overrides = {}) {
|
|
|
4877
4911
|
}
|
|
4878
4912
|
|
|
4879
4913
|
// src/global-config.ts
|
|
4880
|
-
import { existsSync as existsSync8, readFileSync as readFileSync7, writeFileSync as
|
|
4914
|
+
import { existsSync as existsSync8, readFileSync as readFileSync7, writeFileSync as writeFileSync6 } from "node:fs";
|
|
4881
4915
|
import { resolve as resolve4 } from "node:path";
|
|
4882
4916
|
var PROD_ENV = "production";
|
|
4883
4917
|
function applyMergePatch(target, patch) {
|
|
@@ -5018,7 +5052,7 @@ ${pretty(payload)}`);
|
|
|
5018
5052
|
const text = pretty(payload);
|
|
5019
5053
|
if (options.out) {
|
|
5020
5054
|
const outPath = resolve4(process.cwd(), options.out);
|
|
5021
|
-
|
|
5055
|
+
writeFileSync6(outPath, `${text}
|
|
5022
5056
|
`, "utf-8");
|
|
5023
5057
|
console.log(`✅ Wrote global config to ${outPath}`);
|
|
5024
5058
|
} else {
|
|
@@ -5113,7 +5147,7 @@ async function patchGlobalConfig(options) {
|
|
|
5113
5147
|
}
|
|
5114
5148
|
|
|
5115
5149
|
// src/group.ts
|
|
5116
|
-
import { writeFileSync as
|
|
5150
|
+
import { writeFileSync as writeFileSync7 } from "node:fs";
|
|
5117
5151
|
import { resolve as resolve5 } from "node:path";
|
|
5118
5152
|
var PROD_ENV2 = "production";
|
|
5119
5153
|
var ENTITY_TYPES = ["webapp", "character", "scene", "story"];
|
|
@@ -5204,7 +5238,7 @@ ${pretty(payload)}`);
|
|
|
5204
5238
|
function emitRead(payload, human, options) {
|
|
5205
5239
|
if (options.out) {
|
|
5206
5240
|
const outPath = resolve5(process.cwd(), options.out);
|
|
5207
|
-
|
|
5241
|
+
writeFileSync7(outPath, `${pretty(payload)}
|
|
5208
5242
|
`, "utf-8");
|
|
5209
5243
|
console.log(`✅ Wrote response to ${outPath}`);
|
|
5210
5244
|
return;
|
|
@@ -5475,7 +5509,7 @@ ${JSON.stringify(payload, null, 2)}`);
|
|
|
5475
5509
|
|
|
5476
5510
|
// src/upgrade-template.ts
|
|
5477
5511
|
import { execSync as execSync3 } from "node:child_process";
|
|
5478
|
-
import { existsSync as existsSync10, readFileSync as readFileSync9, writeFileSync as
|
|
5512
|
+
import { existsSync as existsSync10, readFileSync as readFileSync9, writeFileSync as writeFileSync8, mkdirSync as mkdirSync2, copyFileSync, rmSync as rmSync2 } from "node:fs";
|
|
5479
5513
|
import path3 from "node:path";
|
|
5480
5514
|
var TEMPLATES = {
|
|
5481
5515
|
webapp: {
|
|
@@ -5621,7 +5655,7 @@ function updatePackageJsonScripts(template) {
|
|
|
5621
5655
|
console.log(` \uD83D\uDCDD ${change.action} script: "${change.name}"`);
|
|
5622
5656
|
}
|
|
5623
5657
|
if (result.updated) {
|
|
5624
|
-
|
|
5658
|
+
writeFileSync8(pkgPath, JSON.stringify(pkg, null, 2) + `
|
|
5625
5659
|
`, "utf-8");
|
|
5626
5660
|
console.log(`✅ package.json scripts updated
|
|
5627
5661
|
`);
|
|
@@ -5677,7 +5711,7 @@ function ensureBuildScript() {
|
|
|
5677
5711
|
return;
|
|
5678
5712
|
}
|
|
5679
5713
|
pkg.scripts.build = result.script;
|
|
5680
|
-
|
|
5714
|
+
writeFileSync8(pkgPath, JSON.stringify(pkg, null, 2) + `
|
|
5681
5715
|
`, "utf-8");
|
|
5682
5716
|
console.log(` \uD83D\uDCDD Added "vite build --mode server-scripts" to the build script`);
|
|
5683
5717
|
}
|