Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/release/1.1' into HEAD
Browse files Browse the repository at this point in the history
  • Loading branch information
wparad committed Aug 29, 2023
2 parents 6ed4f53 + e7038ae commit 545d7d2
Show file tree
Hide file tree
Showing 24 changed files with 134 additions and 140 deletions.
16 changes: 8 additions & 8 deletions src/components/api-request.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import { LitElement, html } from 'lit';
import { marked } from 'marked';
import mimeTypeResolver from './mime-types';
import mimeTypeResolver from './mime-types.js';

import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { keyed } from 'lit/directives/keyed.js';
import formatXml from 'xml-but-prettier';

import { getI18nText } from '../languages';
import { schemaInObjectNotation, getTypeInfo, generateExample, isPatternProperty } from '../utils/schema-utils';
import './schema-tree';
import getRequestFormTable from './request-form-table';
import './tag-input';
import './syntax-highlighter';
import { getI18nText } from '../languages/index.js';
import { schemaInObjectNotation, getTypeInfo, generateExample, isPatternProperty } from '../utils/schema-utils.js';
import './schema-tree.js';
import getRequestFormTable from './request-form-table.js';
import './tag-input.js';
import './syntax-highlighter.js';

const textFileRegex = RegExp('^font/|tar$|zip$|7z$|rtf$|msword$|excel$|/pdf$|/octet-stream$|^application/vnd.');
const mediaFileRegex = RegExp('^audio/|^image/|^video/');
Expand Down Expand Up @@ -999,7 +999,7 @@ export default class ApiRequest extends LitElement {
const contentDisposition = fetchResponse.headers.get('content-disposition');
const filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
const filename = filenameRegex.exec(contentDisposition);
this.respContentDisposition = filename && filename[1] && filename[1].replace(/['"]/g, '') || `download.${mimeTypeResolver(contentType) || 'file'}`;
this.respContentDisposition = filename && filename[1] && filename[1].replace(/['"]/g, '') || `download.${await mimeTypeResolver(contentType) || 'file'}`;
respBlob = await fetchResponse.blob();
this.responseBlobUrl = URL.createObjectURL(respBlob);
}
Expand Down
24 changes: 12 additions & 12 deletions src/components/api-response.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
import { LitElement, html, css } from 'lit';
import { marked } from 'marked';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { schemaInObjectNotation, generateExample, getTypeInfo } from '../utils/schema-utils';
import { getI18nText } from '../languages';
import { schemaInObjectNotation, generateExample, getTypeInfo } from '../utils/schema-utils.js';
import { getI18nText } from '../languages/index.js';
import FontStyles from '../styles/font-styles.js';
import FlexStyles from '../styles/flex-styles';
import TableStyles from '../styles/table-styles';
import InputStyles from '../styles/input-styles';
import TabStyles from '../styles/tab-styles';
import BorderStyles from '../styles/border-styles';
import SchemaStyles from '../styles/schema-styles';
import PrismStyles from '../styles/prism-styles';
import './schema-tree';
import './schema-table';
import './syntax-highlighter';
import FlexStyles from '../styles/flex-styles.js';
import TableStyles from '../styles/table-styles.js';
import InputStyles from '../styles/input-styles.js';
import TabStyles from '../styles/tab-styles.js';
import BorderStyles from '../styles/border-styles.js';
import SchemaStyles from '../styles/schema-styles.js';
import PrismStyles from '../styles/prism-styles.js';
import './schema-tree.js';
import './schema-table.js';
import './syntax-highlighter.js';

export default class ApiResponse extends LitElement {
constructor() {
Expand Down
4 changes: 2 additions & 2 deletions src/components/json-tree.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { LitElement, html, css } from 'lit';
import FontStyles from '../styles/font-styles.js';
import BorderStyles from '../styles/border-styles';
import InputStyles from '../styles/input-styles';
import BorderStyles from '../styles/border-styles.js';
import InputStyles from '../styles/input-styles.js';
import KeyFrameStyles from '../styles/key-frame-styles.js';

export default class JsonTree extends LitElement {
Expand Down
38 changes: 10 additions & 28 deletions src/components/mime-types.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import db from 'mime-db/db.json';

const EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;

const extensions = {};
const types = {};
populateMaps();

/**
* Get the default extension for a MIME type.
Expand All @@ -13,7 +9,7 @@ populateMaps();
* @return {boolean|string}
*/

export default function extension(type) {
export default async function extension(type) {
if (!type || typeof type !== 'string') {
return false;
}
Expand All @@ -22,6 +18,7 @@ export default function extension(type) {
const match = EXTRACT_TYPE_REGEXP.exec(type);

// get extensions
await populateMaps();
const exts = match && extensions[match[1].toLowerCase()];

if (!exts || !exts.length) {
Expand All @@ -31,11 +28,14 @@ export default function extension(type) {
return exts[0];
}

function populateMaps() {
// source preference (least -> most)
const preference = ['nginx', 'apache', undefined, 'iana'];
let initialized = false;
async function populateMaps() {
if (initialized) {
return;
}

Object.keys(db).forEach(function forEachMimeType(type) {
const db = await import('mime-db/db.json');
Object.keys(db.default).forEach(function forEachMimeType(type) {
const mime = db[type];
const exts = mime.extensions;

Expand All @@ -45,24 +45,6 @@ function populateMaps() {

// mime -> extensions
extensions[type] = exts;

// extension -> mime
for (let i = 0; i < exts.length; i++) {
const extensionToTest = exts[i];

if (types[extensionToTest]) {
const from = preference.indexOf(db[types[extensionToTest]].source);
const to = preference.indexOf(mime.source);

if (types[extensionToTest] !== 'application/octet-stream'
&& (from > to || (from === to && types[extensionToTest].substr(0, 12) === 'application/'))) {
// skip the remapping
continue;
}
}

// set the extension -> mime
types[extensionToTest] = type;
}
});
initialized = true;
}
2 changes: 1 addition & 1 deletion src/components/request-form-table.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { html } from 'lit';
import { marked } from 'marked';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { isPatternProperty } from '../utils/schema-utils';
import { isPatternProperty } from '../utils/schema-utils.js';
import { map } from 'lit/directives/map.js';
import { range } from 'lit/directives/range.js';

Expand Down
2 changes: 1 addition & 1 deletion src/components/schema-table.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { LitElement, html, css } from 'lit';
import { marked } from 'marked';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import FontStyles from '../styles/font-styles.js';
import SchemaStyles from '../styles/schema-styles';
import SchemaStyles from '../styles/schema-styles.js';
import KeyFrameStyles from '../styles/key-frame-styles.js';

const tablePadding = 16;
Expand Down
6 changes: 3 additions & 3 deletions src/components/schema-tree.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { LitElement, html, css } from 'lit';
import { marked } from 'marked';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { getI18nText } from '../languages';
import { getI18nText } from '../languages/index.js';
import FontStyles from '../styles/font-styles.js';
import SchemaStyles from '../styles/schema-styles';
import BorderStyles from '../styles/border-styles';
import SchemaStyles from '../styles/schema-styles.js';
import BorderStyles from '../styles/border-styles.js';
import KeyFrameStyles from '../styles/key-frame-styles.js';

export default class SchemaTree extends LitElement {
Expand Down
34 changes: 17 additions & 17 deletions src/components/syntax-highlighter.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,25 @@ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { marked } from 'marked';

import Prism from 'prismjs';
import './json-tree';
import './json-tree.js';

// It's possible none of these imports are actually necessary and should just be removed
import 'prismjs/components/prism-css';
import 'prismjs/components/prism-yaml';
import 'prismjs/components/prism-go';
import 'prismjs/components/prism-ruby';
import 'prismjs/components/prism-java';
import 'prismjs/components/prism-json';
import 'prismjs/components/prism-bash';
import 'prismjs/components/prism-python';
import 'prismjs/components/prism-http';
import 'prismjs/components/prism-csharp';

import PrismStyles from '../styles/prism-styles';
import FontStyle from '../styles/font-styles';
import InputStyle from '../styles/input-styles';
import { getI18nText } from '../languages';
import { copyToClipboard } from '../utils/common-utils';
import 'prismjs/components/prism-css.js';
import 'prismjs/components/prism-yaml.js';
import 'prismjs/components/prism-go.js';
import 'prismjs/components/prism-ruby.js';
import 'prismjs/components/prism-java.js';
import 'prismjs/components/prism-json.js';
import 'prismjs/components/prism-bash.js';
import 'prismjs/components/prism-python.js';
import 'prismjs/components/prism-http.js';
import 'prismjs/components/prism-csharp.js';

import PrismStyles from '../styles/prism-styles.js';
import FontStyle from '../styles/font-styles.js';
import InputStyle from '../styles/input-styles.js';
import { getI18nText } from '../languages/index.js';
import { copyToClipboard } from '../utils/common-utils.js';

/**
* Mapping mime-type => prism language
Expand Down
4 changes: 2 additions & 2 deletions src/languages/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import i18next from 'i18next';
import en from './en';
import fr from './fr';
import en from './en.js';
import fr from './fr.js';

export async function initI18n() {
const initLang = window.navigator.language.substring(0, 2);
Expand Down
2 changes: 1 addition & 1 deletion src/openapi-explorer-oauth-handler.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { checkForAuthToken } from './templates/security-scheme-template';
import { checkForAuthToken } from './templates/security-scheme-template.js';

export default class OpenapiExplorerOauthHandler extends HTMLElement {
connectedCallback() {
Expand Down
42 changes: 21 additions & 21 deletions src/openapi-explorer.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,26 @@ import { LitElement, css } from 'lit';

// Styles
import FontStyles from './styles/font-styles.js';
import InputStyles from './styles/input-styles';
import SchemaStyles from './styles/schema-styles';
import FlexStyles from './styles/flex-styles';
import TableStyles from './styles/table-styles';
import KeyFrameStyles from './styles/key-frame-styles';
import EndpointStyles from './styles/endpoint-styles';
import PrismStyles from './styles/prism-styles';
import TagInputStyles from './styles/tag-input-styles';
import TabStyles from './styles/tab-styles';
import NavStyles from './styles/nav-styles';
import InfoStyles from './styles/info-styles';
import advancedSearchStyles from './styles/advanced-search-styles';

import { advancedSearch, getCurrentElement, replaceState, sleep } from './utils/common-utils';
import { initI18n } from './languages';
import ProcessSpec from './utils/spec-parser';
import mainBodyTemplate from './templates/mainBodyTemplate';
import apiRequestStyles from './styles/api-request-styles';
import { checkForAuthToken } from './templates/security-scheme-template';
import './components/syntax-highlighter';
import InputStyles from './styles/input-styles.js';
import SchemaStyles from './styles/schema-styles.js';
import FlexStyles from './styles/flex-styles.js';
import TableStyles from './styles/table-styles.js';
import KeyFrameStyles from './styles/key-frame-styles.js';
import EndpointStyles from './styles/endpoint-styles.js';
import PrismStyles from './styles/prism-styles.js';
import TagInputStyles from './styles/tag-input-styles.js';
import TabStyles from './styles/tab-styles.js';
import NavStyles from './styles/nav-styles.js';
import InfoStyles from './styles/info-styles.js';
import advancedSearchStyles from './styles/advanced-search-styles.js';

import { advancedSearch, getCurrentElement, replaceState, sleep } from './utils/common-utils.js';
import { initI18n } from './languages/index.js';
import ProcessSpec from './utils/spec-parser.js';
import mainBodyTemplate from './templates/mainBodyTemplate.js';
import apiRequestStyles from './styles/api-request-styles.js';
import { checkForAuthToken } from './templates/security-scheme-template.js';
import './components/syntax-highlighter.js';
export default class OpenApiExplorer extends LitElement {
constructor() {
super();
Expand Down Expand Up @@ -828,5 +828,5 @@ export default class OpenApiExplorer extends LitElement {
if (!customElements.get('openapi-explorer')) {
customElements.define('openapi-explorer', OpenApiExplorer);
}
import './openapi-explorer-oauth-handler';
import './openapi-explorer-oauth-handler.js';

4 changes: 2 additions & 2 deletions src/templates/components-template.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/* eslint-disable no-console */
import { schemaInObjectNotation } from '../utils/schema-utils';
import { schemaInObjectNotation } from '../utils/schema-utils.js';
import { html } from 'lit';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { marked } from 'marked';
import '../components/schema-tree';
import '../components/schema-tree.js';

function componentBodyTemplate(sComponent) {
const formdataPartSchema = schemaInObjectNotation(sComponent.component, { includeNulls: this.includeNulls });
Expand Down
12 changes: 6 additions & 6 deletions src/templates/endpoint-template.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { html } from 'lit';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { marked } from 'marked';
import '../components/api-request';
import '../components/api-response';
import codeSamplesTemplate from './code-samples-template';
import callbackTemplate from './callback-template';
import { pathSecurityTemplate } from './security-scheme-template';
import { getCurrentElement, pathIsInSearch, replaceState } from '../utils/common-utils';
import '../components/api-request.js';
import '../components/api-response.js';
import codeSamplesTemplate from './code-samples-template.js';
import callbackTemplate from './callback-template.js';
import { pathSecurityTemplate } from './security-scheme-template.js';
import { getCurrentElement, pathIsInSearch, replaceState } from '../utils/common-utils.js';

function toggleExpand(path) {
if (path.expanded) {
Expand Down
10 changes: 5 additions & 5 deletions src/templates/expanded-endpoint-template.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { html } from 'lit';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { marked } from 'marked';
import { pathSecurityTemplate } from './security-scheme-template';
import codeSamplesTemplate from './code-samples-template';
import callbackTemplate from './callback-template';
import '../components/api-request';
import '../components/api-response';
import { pathSecurityTemplate } from './security-scheme-template.js';
import codeSamplesTemplate from './code-samples-template.js';
import callbackTemplate from './callback-template.js';
import '../components/api-request.js';
import '../components/api-response.js';

/* eslint-disable indent */
export function expandedEndpointBodyTemplate(path, tagName = '') {
Expand Down
14 changes: 7 additions & 7 deletions src/templates/focused-endpoint-template.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { html } from 'lit';
import { expandedEndpointBodyTemplate, expandedTagTemplate } from './expanded-endpoint-template';
import '../components/api-request';
import '../components/api-response';
import componentsTemplate from './components-template';
import overviewTemplate from './overview-template';
import serverTemplate from './server-template';
import securitySchemeTemplate from './security-scheme-template';
import { expandedEndpointBodyTemplate, expandedTagTemplate } from './expanded-endpoint-template.js';
import '../components/api-request.js';
import '../components/api-response.js';
import componentsTemplate from './components-template.js';
import overviewTemplate from './overview-template.js';
import serverTemplate from './server-template.js';
import securitySchemeTemplate from './security-scheme-template.js';

function wrapFocusedTemplate(templateToWrap) {
return html`
Expand Down
18 changes: 9 additions & 9 deletions src/templates/mainBodyTemplate.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { html } from 'lit';

// Templates
import focusedEndpointTemplate from './focused-endpoint-template';
import overviewTemplate from './overview-template';
import endpointTemplate from './endpoint-template';
import serverTemplate from './server-template';
import securitySchemeTemplate from './security-scheme-template';
import navbarTemplate from './navbar-template';
import advancedSearchTemplate from './advance-search-template';
import SetTheme from '../utils/theme';
import ColorUtils from '../utils/color-utils';
import focusedEndpointTemplate from './focused-endpoint-template.js';
import overviewTemplate from './overview-template.js';
import endpointTemplate from './endpoint-template.js';
import serverTemplate from './server-template.js';
import securitySchemeTemplate from './security-scheme-template.js';
import navbarTemplate from './navbar-template.js';
import advancedSearchTemplate from './advance-search-template.js';
import SetTheme from '../utils/theme.js';
import ColorUtils from '../utils/color-utils.js';

export default function mainBodyTemplate() {
const newTheme = {
Expand Down
4 changes: 2 additions & 2 deletions src/templates/navbar-template.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { html } from 'lit';
import { marked } from 'marked';
import { componentIsInSearch, pathIsInSearch } from '../utils/common-utils';
import { getI18nText } from '../languages';
import { componentIsInSearch, pathIsInSearch } from '../utils/common-utils.js';
import { getI18nText } from '../languages/index.js';

function onExpandCollapse(tagId) {
const tag = this.resolvedSpec.tags.find(t => t.elementId === tagId);
Expand Down
Loading

0 comments on commit 545d7d2

Please sign in to comment.