feat: support for comments on application/json request body (#4335)
This commit is contained in:
@@ -41,6 +41,7 @@
|
|||||||
"@hoppscotch/ui": "0.2.0",
|
"@hoppscotch/ui": "0.2.0",
|
||||||
"@hoppscotch/vue-toasted": "0.1.0",
|
"@hoppscotch/vue-toasted": "0.1.0",
|
||||||
"@lezer/highlight": "1.2.0",
|
"@lezer/highlight": "1.2.0",
|
||||||
|
"@shopify/lang-jsonc": "1.0.0",
|
||||||
"@unhead/vue": "1.8.8",
|
"@unhead/vue": "1.8.8",
|
||||||
"@urql/core": "4.2.0",
|
"@urql/core": "4.2.0",
|
||||||
"@urql/devtools": "2.0.3",
|
"@urql/devtools": "2.0.3",
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ import { pluckRef } from "@composables/ref"
|
|||||||
import { useI18n } from "@composables/i18n"
|
import { useI18n } from "@composables/i18n"
|
||||||
import { useToast } from "@composables/toast"
|
import { useToast } from "@composables/toast"
|
||||||
import { isJSONContentType } from "~/helpers/utils/contenttypes"
|
import { isJSONContentType } from "~/helpers/utils/contenttypes"
|
||||||
import jsonLinter from "~/helpers/editor/linting/json"
|
import jsoncLinter from "~/helpers/editor/linting/jsonc"
|
||||||
import { readFileAsText } from "~/helpers/functional/files"
|
import { readFileAsText } from "~/helpers/functional/files"
|
||||||
import xmlFormat from "xml-formatter"
|
import xmlFormat from "xml-formatter"
|
||||||
import { useNestedSetting } from "~/composables/settings"
|
import { useNestedSetting } from "~/composables/settings"
|
||||||
@@ -140,7 +140,7 @@ const rawInputEditorLang = computed(() =>
|
|||||||
getEditorLangForMimeType(body.value.contentType)
|
getEditorLangForMimeType(body.value.contentType)
|
||||||
)
|
)
|
||||||
const langLinter = computed(() =>
|
const langLinter = computed(() =>
|
||||||
isJSONContentType(body.value.contentType) ? jsonLinter : null
|
isJSONContentType(body.value.contentType) ? jsoncLinter : null
|
||||||
)
|
)
|
||||||
|
|
||||||
const WRAP_LINES = useNestedSetting("WRAP_LINES", "httpRequestBody")
|
const WRAP_LINES = useNestedSetting("WRAP_LINES", "httpRequestBody")
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import { linter } from "@codemirror/lint"
|
|||||||
import { watch, ref, Ref, onMounted, onBeforeUnmount } from "vue"
|
import { watch, ref, Ref, onMounted, onBeforeUnmount } from "vue"
|
||||||
import { javascriptLanguage } from "@codemirror/lang-javascript"
|
import { javascriptLanguage } from "@codemirror/lang-javascript"
|
||||||
import { xmlLanguage } from "@codemirror/lang-xml"
|
import { xmlLanguage } from "@codemirror/lang-xml"
|
||||||
import { jsonLanguage } from "@codemirror/lang-json"
|
import { jsoncLanguage } from "@shopify/lang-jsonc"
|
||||||
import { GQLLanguage } from "@hoppscotch/codemirror-lang-graphql"
|
import { GQLLanguage } from "@hoppscotch/codemirror-lang-graphql"
|
||||||
import { html } from "@codemirror/legacy-modes/mode/xml"
|
import { html } from "@codemirror/legacy-modes/mode/xml"
|
||||||
import { shell } from "@codemirror/legacy-modes/mode/shell"
|
import { shell } from "@codemirror/legacy-modes/mode/shell"
|
||||||
@@ -51,6 +51,7 @@ import { HoppPredefinedVariablesPlugin } from "~/helpers/editor/extensions/HoppP
|
|||||||
|
|
||||||
type ExtendedEditorConfig = {
|
type ExtendedEditorConfig = {
|
||||||
mode: string
|
mode: string
|
||||||
|
useLang: boolean
|
||||||
placeholder: string
|
placeholder: string
|
||||||
readOnly: boolean
|
readOnly: boolean
|
||||||
lineWrapping: boolean
|
lineWrapping: boolean
|
||||||
@@ -158,7 +159,7 @@ const hoppLang = (
|
|||||||
|
|
||||||
const getLanguage = (langMime: string): Language | null => {
|
const getLanguage = (langMime: string): Language | null => {
|
||||||
if (isJSONContentType(langMime)) {
|
if (isJSONContentType(langMime)) {
|
||||||
return jsonLanguage
|
return jsoncLanguage
|
||||||
} else if (langMime === "application/javascript") {
|
} else if (langMime === "application/javascript") {
|
||||||
return javascriptLanguage
|
return javascriptLanguage
|
||||||
} else if (langMime === "graphql") {
|
} else if (langMime === "graphql") {
|
||||||
@@ -227,6 +228,8 @@ export function useCodemirror(
|
|||||||
|
|
||||||
// Set default value for contextMenuEnabled if not provided
|
// Set default value for contextMenuEnabled if not provided
|
||||||
options.contextMenuEnabled = options.contextMenuEnabled ?? true
|
options.contextMenuEnabled = options.contextMenuEnabled ?? true
|
||||||
|
options.extendedEditorConfig.useLang =
|
||||||
|
options.extendedEditorConfig.useLang ?? true
|
||||||
|
|
||||||
const additionalExts = new Compartment()
|
const additionalExts = new Compartment()
|
||||||
const language = new Compartment()
|
const language = new Compartment()
|
||||||
@@ -371,7 +374,9 @@ export function useCodemirror(
|
|||||||
),
|
),
|
||||||
language.of(
|
language.of(
|
||||||
getEditorLanguage(
|
getEditorLanguage(
|
||||||
options.extendedEditorConfig.mode ?? "",
|
options.extendedEditorConfig.useLang
|
||||||
|
? (options.extendedEditorConfig.mode as any) ?? ""
|
||||||
|
: "",
|
||||||
options.linter ?? undefined,
|
options.linter ?? undefined,
|
||||||
options.completer ?? undefined
|
options.completer ?? undefined
|
||||||
)
|
)
|
||||||
@@ -480,7 +485,9 @@ export function useCodemirror(
|
|||||||
view.value?.dispatch({
|
view.value?.dispatch({
|
||||||
effects: language.reconfigure(
|
effects: language.reconfigure(
|
||||||
getEditorLanguage(
|
getEditorLanguage(
|
||||||
(options.extendedEditorConfig.mode as any) ?? "",
|
options.extendedEditorConfig.useLang
|
||||||
|
? (options.extendedEditorConfig.mode as any) ?? ""
|
||||||
|
: "",
|
||||||
options.linter ?? undefined,
|
options.linter ?? undefined,
|
||||||
options.completer ?? undefined
|
options.completer ?? undefined
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
import { convertIndexToLineCh } from "../utils"
|
||||||
|
import { LinterDefinition, LinterResult } from "./linter"
|
||||||
|
import jsoncParse from "~/helpers/jsoncParse"
|
||||||
|
|
||||||
|
const linter: LinterDefinition = (text) => {
|
||||||
|
try {
|
||||||
|
jsoncParse(text)
|
||||||
|
return Promise.resolve([])
|
||||||
|
} catch (e: any) {
|
||||||
|
return Promise.resolve([
|
||||||
|
<LinterResult>{
|
||||||
|
from: convertIndexToLineCh(text, e.start),
|
||||||
|
to: convertIndexToLineCh(text, e.end),
|
||||||
|
message: e.message,
|
||||||
|
severity: "error",
|
||||||
|
},
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes comments from a JSON string.
|
||||||
|
* @param jsonString The JSON string with comments.
|
||||||
|
* @returns The JSON string without comments.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const singleLineCommentPattern = /\/\/.*$/gm
|
||||||
|
const multiLineCommentPattern = /\/\*[\s\S]*?\*\//gm
|
||||||
|
|
||||||
|
export function removeComments(jsonString: string): string {
|
||||||
|
// Remove single-line comments
|
||||||
|
jsonString = jsonString.replace(singleLineCommentPattern, "")
|
||||||
|
// Remove multi-line comments
|
||||||
|
jsonString = jsonString.replace(multiLineCommentPattern, "")
|
||||||
|
|
||||||
|
jsonString = removeTrailingCommas(jsonString)
|
||||||
|
|
||||||
|
return jsonString
|
||||||
|
}
|
||||||
|
|
||||||
|
export function removeTrailingCommas(jsonString: string): string {
|
||||||
|
return jsonString.replace(/,(?=\s*?[\]}])/g, "")
|
||||||
|
}
|
||||||
|
|
||||||
|
export default linter
|
||||||
425
packages/hoppscotch-common/src/helpers/jsoncParse.ts
Normal file
425
packages/hoppscotch-common/src/helpers/jsoncParse.ts
Normal file
@@ -0,0 +1,425 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2019 GraphQL Contributors
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the BSD-style license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||||||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This JSON parser simply walks the input, generating an AST. Use this in lieu
|
||||||
|
* of JSON.parse if you need character offset parse errors and an AST parse tree
|
||||||
|
* with location information.
|
||||||
|
*
|
||||||
|
* If an error is encountered, a SyntaxError will be thrown, with properties:
|
||||||
|
*
|
||||||
|
* - message: string
|
||||||
|
* - start: int - the start inclusive offset of the syntax error
|
||||||
|
* - end: int - the end exclusive offset of the syntax error
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
type JSONEOFValue = {
|
||||||
|
kind: "EOF"
|
||||||
|
start: number
|
||||||
|
end: number
|
||||||
|
}
|
||||||
|
|
||||||
|
type JSONNullValue = {
|
||||||
|
kind: "Null"
|
||||||
|
start: number
|
||||||
|
end: number
|
||||||
|
}
|
||||||
|
|
||||||
|
type JSONNumberValue = {
|
||||||
|
kind: "Number"
|
||||||
|
start: number
|
||||||
|
end: number
|
||||||
|
value: number
|
||||||
|
}
|
||||||
|
|
||||||
|
type JSONStringValue = {
|
||||||
|
kind: "String"
|
||||||
|
start: number
|
||||||
|
end: number
|
||||||
|
value: string
|
||||||
|
}
|
||||||
|
|
||||||
|
type JSONBooleanValue = {
|
||||||
|
kind: "Boolean"
|
||||||
|
start: number
|
||||||
|
end: number
|
||||||
|
value: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
type JSONPrimitiveValue =
|
||||||
|
| JSONNullValue
|
||||||
|
| JSONEOFValue
|
||||||
|
| JSONStringValue
|
||||||
|
| JSONNumberValue
|
||||||
|
| JSONBooleanValue
|
||||||
|
|
||||||
|
export type JSONObjectValue = {
|
||||||
|
kind: "Object"
|
||||||
|
start: number
|
||||||
|
end: number
|
||||||
|
// eslint-disable-next-line no-use-before-define
|
||||||
|
members: JSONObjectMember[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type JSONArrayValue = {
|
||||||
|
kind: "Array"
|
||||||
|
start: number
|
||||||
|
end: number
|
||||||
|
// eslint-disable-next-line no-use-before-define
|
||||||
|
values: JSONValue[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type JSONValue = JSONObjectValue | JSONArrayValue | JSONPrimitiveValue
|
||||||
|
|
||||||
|
export type JSONObjectMember = {
|
||||||
|
kind: "Member"
|
||||||
|
start: number
|
||||||
|
end: number
|
||||||
|
key: JSONStringValue
|
||||||
|
value: JSONValue
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function jsonParse(
|
||||||
|
str: string
|
||||||
|
): JSONObjectValue | JSONArrayValue {
|
||||||
|
string = str
|
||||||
|
strLen = str.length
|
||||||
|
start = end = lastEnd = -1
|
||||||
|
ch()
|
||||||
|
lex() // Pass the allowComments flag to lex()
|
||||||
|
try {
|
||||||
|
const ast = parseObj()
|
||||||
|
expect("EOF")
|
||||||
|
return ast
|
||||||
|
} catch (e) {
|
||||||
|
// Try parsing expecting a root array
|
||||||
|
const ast = parseArr()
|
||||||
|
expect("EOF")
|
||||||
|
return ast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let string: string
|
||||||
|
let strLen: number
|
||||||
|
let start: number
|
||||||
|
let end: number
|
||||||
|
let lastEnd: number
|
||||||
|
let code: number
|
||||||
|
let kind: string
|
||||||
|
|
||||||
|
function parseObj(): JSONObjectValue {
|
||||||
|
const nodeStart = start
|
||||||
|
const members = []
|
||||||
|
expect("{")
|
||||||
|
while (!skip("}")) {
|
||||||
|
members.push(parseMember())
|
||||||
|
if (!skip(",")) {
|
||||||
|
expect("}")
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
kind: "Object",
|
||||||
|
start: nodeStart,
|
||||||
|
end: lastEnd,
|
||||||
|
members,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseMember(): JSONObjectMember {
|
||||||
|
const nodeStart = start
|
||||||
|
const key = kind === "String" ? (curToken() as JSONStringValue) : null
|
||||||
|
expect("String")
|
||||||
|
expect(":")
|
||||||
|
const value = parseVal()
|
||||||
|
return {
|
||||||
|
kind: "Member",
|
||||||
|
start: nodeStart,
|
||||||
|
end: lastEnd,
|
||||||
|
key: key!,
|
||||||
|
value,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseArr(): JSONArrayValue {
|
||||||
|
const nodeStart = start
|
||||||
|
const values: JSONValue[] = []
|
||||||
|
expect("[")
|
||||||
|
while (!skip("]")) {
|
||||||
|
values.push(parseVal())
|
||||||
|
if (!skip(",")) {
|
||||||
|
expect("]")
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
kind: "Array",
|
||||||
|
start: nodeStart,
|
||||||
|
end: lastEnd,
|
||||||
|
values,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseVal(): JSONValue {
|
||||||
|
switch (kind) {
|
||||||
|
case "[":
|
||||||
|
return parseArr()
|
||||||
|
case "{":
|
||||||
|
return parseObj()
|
||||||
|
case "String":
|
||||||
|
case "Number":
|
||||||
|
case "Boolean":
|
||||||
|
case "Null":
|
||||||
|
// eslint-disable-next-line no-case-declarations
|
||||||
|
const token = curToken()
|
||||||
|
lex()
|
||||||
|
return token
|
||||||
|
}
|
||||||
|
return expect("Value") as never
|
||||||
|
}
|
||||||
|
|
||||||
|
function curToken(): JSONPrimitiveValue {
|
||||||
|
return {
|
||||||
|
kind: kind as any,
|
||||||
|
start,
|
||||||
|
end,
|
||||||
|
value: JSON.parse(string.slice(start, end)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function expect(str: string) {
|
||||||
|
if (kind === str) {
|
||||||
|
lex()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let found
|
||||||
|
if (kind === "EOF") {
|
||||||
|
found = "[end of file]"
|
||||||
|
} else if (end - start > 1) {
|
||||||
|
found = `\`${string.slice(start, end)}\``
|
||||||
|
} else {
|
||||||
|
const match = string.slice(start).match(/^.+?\b/)
|
||||||
|
found = `\`${match ? match[0] : string[start]}\``
|
||||||
|
}
|
||||||
|
|
||||||
|
throw syntaxError(`Expected ${str} but found ${found}.`)
|
||||||
|
}
|
||||||
|
|
||||||
|
type SyntaxError = {
|
||||||
|
message: string
|
||||||
|
start: number
|
||||||
|
end: number
|
||||||
|
}
|
||||||
|
|
||||||
|
function syntaxError(message: string): SyntaxError {
|
||||||
|
return { message, start, end }
|
||||||
|
}
|
||||||
|
|
||||||
|
function skip(k: string) {
|
||||||
|
if (kind === k) {
|
||||||
|
lex()
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ch() {
|
||||||
|
if (end < strLen) {
|
||||||
|
end++
|
||||||
|
code = end === strLen ? 0 : string.charCodeAt(end)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function lex() {
|
||||||
|
lastEnd = end
|
||||||
|
|
||||||
|
// Skip whitespace and comments
|
||||||
|
while (true) {
|
||||||
|
// Skip whitespace (space, tab, newline, etc.)
|
||||||
|
while (code === 9 || code === 10 || code === 13 || code === 32) {
|
||||||
|
ch()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for single-line comment (//)
|
||||||
|
if (code === 47 && string.charCodeAt(end + 1) === 47) {
|
||||||
|
// 47 is '/'
|
||||||
|
while (code !== 10 && code !== 13 && code !== 0) {
|
||||||
|
// Skip until newline or EOF
|
||||||
|
ch()
|
||||||
|
}
|
||||||
|
continue // After skipping the comment, recheck for more whitespace/comments
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for multi-line comment (/* */)
|
||||||
|
if (code === 47 && string.charCodeAt(end + 1) === 42) {
|
||||||
|
// 42 is '*'
|
||||||
|
ch() // Skip the '*'
|
||||||
|
ch() // Move past the opening '/*'
|
||||||
|
while (
|
||||||
|
code !== 0 &&
|
||||||
|
!(code === 42 && string.charCodeAt(end + 1) === 47)
|
||||||
|
) {
|
||||||
|
// Look for '*/'
|
||||||
|
ch()
|
||||||
|
}
|
||||||
|
ch() // Skip the '*'
|
||||||
|
ch() // Move past the closing '*/'
|
||||||
|
continue // After skipping the comment, recheck for more whitespace/comments
|
||||||
|
}
|
||||||
|
|
||||||
|
break // Exit loop when no more comments or whitespace
|
||||||
|
}
|
||||||
|
|
||||||
|
if (code === 0) {
|
||||||
|
kind = "EOF"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
start = end
|
||||||
|
|
||||||
|
switch (code) {
|
||||||
|
// Handle strings, numbers, booleans, null, etc.
|
||||||
|
case 34: // "
|
||||||
|
kind = "String"
|
||||||
|
return readString()
|
||||||
|
case 45: // -
|
||||||
|
case 48: // 0
|
||||||
|
case 49: // 1
|
||||||
|
case 50: // 2
|
||||||
|
case 51: // 3
|
||||||
|
case 52: // 4
|
||||||
|
case 53: // 5
|
||||||
|
case 54: // 6
|
||||||
|
case 55: // 7
|
||||||
|
case 56: // 8
|
||||||
|
case 57: // 9
|
||||||
|
kind = "Number"
|
||||||
|
return readNumber()
|
||||||
|
case 102: // 'f' for "false"
|
||||||
|
if (string.slice(start, start + 5) === "false") {
|
||||||
|
end += 4
|
||||||
|
ch()
|
||||||
|
kind = "Boolean"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 110: // 'n' for "null"
|
||||||
|
if (string.slice(start, start + 4) === "null") {
|
||||||
|
end += 3
|
||||||
|
ch()
|
||||||
|
kind = "Null"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 116: // 't' for "true"
|
||||||
|
if (string.slice(start, start + 4) === "true") {
|
||||||
|
end += 3
|
||||||
|
ch()
|
||||||
|
kind = "Boolean"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
kind = string[start]
|
||||||
|
ch()
|
||||||
|
}
|
||||||
|
|
||||||
|
function readString() {
|
||||||
|
ch()
|
||||||
|
while (code !== 34 && code > 31) {
|
||||||
|
if (code === (92 as any)) {
|
||||||
|
// \
|
||||||
|
ch()
|
||||||
|
switch (code) {
|
||||||
|
case 34: // "
|
||||||
|
case 47: // /
|
||||||
|
case 92: // \
|
||||||
|
case 98: // b
|
||||||
|
case 102: // f
|
||||||
|
case 110: // n
|
||||||
|
case 114: // r
|
||||||
|
case 116: // t
|
||||||
|
ch()
|
||||||
|
break
|
||||||
|
case 117: // u
|
||||||
|
ch()
|
||||||
|
readHex()
|
||||||
|
readHex()
|
||||||
|
readHex()
|
||||||
|
readHex()
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
throw syntaxError("Bad character escape sequence.")
|
||||||
|
}
|
||||||
|
} else if (end === strLen) {
|
||||||
|
throw syntaxError("Unterminated string.")
|
||||||
|
} else {
|
||||||
|
ch()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (code === 34) {
|
||||||
|
ch()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
throw syntaxError("Unterminated string.")
|
||||||
|
}
|
||||||
|
|
||||||
|
function readHex() {
|
||||||
|
if (
|
||||||
|
(code >= 48 && code <= 57) || // 0-9
|
||||||
|
(code >= 65 && code <= 70) || // A-F
|
||||||
|
(code >= 97 && code <= 102) // a-f
|
||||||
|
) {
|
||||||
|
return ch()
|
||||||
|
}
|
||||||
|
throw syntaxError("Expected hexadecimal digit.")
|
||||||
|
}
|
||||||
|
|
||||||
|
function readNumber() {
|
||||||
|
if (code === 45) {
|
||||||
|
// -
|
||||||
|
ch()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (code === 48) {
|
||||||
|
// 0
|
||||||
|
ch()
|
||||||
|
} else {
|
||||||
|
readDigits()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (code === 46) {
|
||||||
|
// .
|
||||||
|
ch()
|
||||||
|
readDigits()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (code === 69 || code === 101) {
|
||||||
|
// E e
|
||||||
|
ch()
|
||||||
|
if (code === (43 as any) || code === (45 as any)) {
|
||||||
|
// + -
|
||||||
|
ch()
|
||||||
|
}
|
||||||
|
readDigits()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function readDigits() {
|
||||||
|
if (code < 48 || code > 57) {
|
||||||
|
// 0 - 9
|
||||||
|
throw syntaxError("Expected decimal digit.")
|
||||||
|
}
|
||||||
|
do {
|
||||||
|
ch()
|
||||||
|
} while (code >= 48 && code <= 57) // 0 - 9
|
||||||
|
}
|
||||||
@@ -27,6 +27,8 @@ import { map } from "rxjs/operators"
|
|||||||
import { arrayFlatMap, arraySort } from "../functional/array"
|
import { arrayFlatMap, arraySort } from "../functional/array"
|
||||||
import { toFormData } from "../functional/formData"
|
import { toFormData } from "../functional/formData"
|
||||||
import { tupleWithSameKeysToRecord } from "../functional/record"
|
import { tupleWithSameKeysToRecord } from "../functional/record"
|
||||||
|
import { isJSONContentType } from "./contenttypes"
|
||||||
|
import { removeComments } from "../editor/linting/jsonc"
|
||||||
|
|
||||||
export interface EffectiveHoppRESTRequest extends HoppRESTRequest {
|
export interface EffectiveHoppRESTRequest extends HoppRESTRequest {
|
||||||
/**
|
/**
|
||||||
@@ -379,9 +381,14 @@ export const resolvesEnvsInBody = (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let bodyContent = ""
|
||||||
|
|
||||||
|
if (isJSONContentType(body.contentType))
|
||||||
|
bodyContent = removeComments(body.body)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
contentType: body.contentType,
|
contentType: body.contentType,
|
||||||
body: parseTemplateString(body.body ?? "", env.variables, false, true),
|
body: parseTemplateString(bodyContent, env.variables, false, true),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -466,8 +473,13 @@ function getFinalBodyFromRequest(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let bodyContent = request.body.body ?? ""
|
||||||
|
|
||||||
|
if (isJSONContentType(request.body.contentType))
|
||||||
|
bodyContent = removeComments(request.body.body)
|
||||||
|
|
||||||
// body can be null if the content-type is not set
|
// body can be null if the content-type is not set
|
||||||
return parseBodyEnvVariables(request.body.body ?? "", envVariables)
|
return parseBodyEnvVariables(bodyContent, envVariables)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
103
pnpm-lock.yaml
generated
103
pnpm-lock.yaml
generated
@@ -380,7 +380,7 @@ importers:
|
|||||||
version: 3.2.5
|
version: 3.2.5
|
||||||
tsup:
|
tsup:
|
||||||
specifier: 8.0.2
|
specifier: 8.0.2
|
||||||
version: 8.0.2(@swc/core@1.4.2)(postcss@8.4.32)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3))(typescript@5.3.3)
|
version: 8.0.2(@swc/core@1.4.2)(postcss@8.4.40)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3))(typescript@5.3.3)
|
||||||
typescript:
|
typescript:
|
||||||
specifier: 5.3.3
|
specifier: 5.3.3
|
||||||
version: 5.3.3
|
version: 5.3.3
|
||||||
@@ -450,6 +450,9 @@ importers:
|
|||||||
'@lezer/highlight':
|
'@lezer/highlight':
|
||||||
specifier: 1.2.0
|
specifier: 1.2.0
|
||||||
version: 1.2.0
|
version: 1.2.0
|
||||||
|
'@shopify/lang-jsonc':
|
||||||
|
specifier: 1.0.0
|
||||||
|
version: 1.0.0
|
||||||
'@unhead/vue':
|
'@unhead/vue':
|
||||||
specifier: 1.8.8
|
specifier: 1.8.8
|
||||||
version: 1.8.8(vue@3.3.9(typescript@5.3.2))
|
version: 1.8.8(vue@3.3.9(typescript@5.3.2))
|
||||||
@@ -792,7 +795,7 @@ importers:
|
|||||||
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
||||||
vite-plugin-checker:
|
vite-plugin-checker:
|
||||||
specifier: 0.6.2
|
specifier: 0.6.2
|
||||||
version: 0.6.2(eslint@8.57.0)(meow@8.1.2)(optionator@0.9.4)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(vue-tsc@1.8.24(typescript@5.3.2))
|
version: 0.6.2(eslint@8.57.0)(optionator@0.9.4)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(vue-tsc@1.8.24(typescript@5.3.2))
|
||||||
vite-plugin-fonts:
|
vite-plugin-fonts:
|
||||||
specifier: 0.7.0
|
specifier: 0.7.0
|
||||||
version: 0.7.0(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
version: 0.7.0(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
||||||
@@ -911,7 +914,7 @@ importers:
|
|||||||
version: 2.8.4
|
version: 2.8.4
|
||||||
ts-jest:
|
ts-jest:
|
||||||
specifier: 27.1.5
|
specifier: 27.1.5
|
||||||
version: 27.1.5(@babel/core@7.24.5)(@types/jest@27.5.2)(babel-jest@29.7.0(@babel/core@7.24.5))(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5)
|
version: 27.1.5(@babel/core@7.24.5)(@types/jest@27.5.2)(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5)
|
||||||
typescript:
|
typescript:
|
||||||
specifier: 4.9.5
|
specifier: 4.9.5
|
||||||
version: 4.9.5
|
version: 4.9.5
|
||||||
@@ -1095,7 +1098,7 @@ importers:
|
|||||||
version: 0.14.9(@vue/compiler-sfc@3.3.10)(vue-template-compiler@2.7.16)
|
version: 0.14.9(@vue/compiler-sfc@3.3.10)(vue-template-compiler@2.7.16)
|
||||||
unplugin-vue-components:
|
unplugin-vue-components:
|
||||||
specifier: 0.21.0
|
specifier: 0.21.0
|
||||||
version: 0.21.0(@babel/parser@7.24.5)(esbuild@0.20.2)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2))
|
version: 0.21.0(@babel/parser@7.24.5)(esbuild@0.20.2)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2))
|
||||||
vite:
|
vite:
|
||||||
specifier: 4.5.0
|
specifier: 4.5.0
|
||||||
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
||||||
@@ -1104,7 +1107,7 @@ importers:
|
|||||||
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
||||||
vite-plugin-inspect:
|
vite-plugin-inspect:
|
||||||
specifier: 0.7.38
|
specifier: 0.7.38
|
||||||
version: 0.7.38(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
version: 0.7.38(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
||||||
vite-plugin-pages:
|
vite-plugin-pages:
|
||||||
specifier: 0.26.0
|
specifier: 0.26.0
|
||||||
version: 0.26.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
version: 0.26.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
||||||
@@ -1267,7 +1270,7 @@ importers:
|
|||||||
version: 0.17.4(@vue/compiler-sfc@3.3.10)(vue-template-compiler@2.7.16)
|
version: 0.17.4(@vue/compiler-sfc@3.3.10)(vue-template-compiler@2.7.16)
|
||||||
unplugin-vue-components:
|
unplugin-vue-components:
|
||||||
specifier: 0.25.2
|
specifier: 0.25.2
|
||||||
version: 0.25.2(@babel/parser@7.24.5)(rollup@3.29.4)(vue@3.3.9(typescript@5.3.2))
|
version: 0.25.2(@babel/parser@7.24.5)(rollup@4.17.2)(vue@3.3.9(typescript@5.3.2))
|
||||||
vite:
|
vite:
|
||||||
specifier: 4.5.0
|
specifier: 4.5.0
|
||||||
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
||||||
@@ -1279,7 +1282,7 @@ importers:
|
|||||||
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
||||||
vite-plugin-inspect:
|
vite-plugin-inspect:
|
||||||
specifier: 0.7.42
|
specifier: 0.7.42
|
||||||
version: 0.7.42(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
version: 0.7.42(rollup@4.17.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
||||||
vite-plugin-pages:
|
vite-plugin-pages:
|
||||||
specifier: 0.31.0
|
specifier: 0.31.0
|
||||||
version: 0.31.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
version: 0.31.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))
|
||||||
@@ -1321,7 +1324,7 @@ importers:
|
|||||||
version: 0.1.0(vue@3.3.9(typescript@4.9.3))
|
version: 0.1.0(vue@3.3.9(typescript@4.9.3))
|
||||||
'@intlify/unplugin-vue-i18n':
|
'@intlify/unplugin-vue-i18n':
|
||||||
specifier: 1.2.0
|
specifier: 1.2.0
|
||||||
version: 1.2.0(rollup@3.29.4)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
|
version: 1.2.0(rollup@2.79.1)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
|
||||||
'@types/cors':
|
'@types/cors':
|
||||||
specifier: 2.8.13
|
specifier: 2.8.13
|
||||||
version: 2.8.13
|
version: 2.8.13
|
||||||
@@ -1387,7 +1390,7 @@ importers:
|
|||||||
version: 0.14.9(@vue/compiler-sfc@3.2.45)(vue-template-compiler@2.7.16)
|
version: 0.14.9(@vue/compiler-sfc@3.2.45)(vue-template-compiler@2.7.16)
|
||||||
unplugin-vue-components:
|
unplugin-vue-components:
|
||||||
specifier: 0.21.0
|
specifier: 0.21.0
|
||||||
version: 0.21.0(@babel/parser@7.24.5)(esbuild@0.20.2)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2))
|
version: 0.21.0(@babel/parser@7.24.5)(esbuild@0.20.2)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2))
|
||||||
vue:
|
vue:
|
||||||
specifier: 3.3.9
|
specifier: 3.3.9
|
||||||
version: 3.3.9(typescript@4.9.3)
|
version: 3.3.9(typescript@4.9.3)
|
||||||
@@ -4348,6 +4351,9 @@ packages:
|
|||||||
'@selderee/plugin-htmlparser2@0.11.0':
|
'@selderee/plugin-htmlparser2@0.11.0':
|
||||||
resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==}
|
resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==}
|
||||||
|
|
||||||
|
'@shopify/lang-jsonc@1.0.0':
|
||||||
|
resolution: {integrity: sha512-Zvj0eerl0pKoY41no0DBayDT44PVkTx0hGuD98t3v2JSzqOcyvuP3HtW/NVi8StTbKPLWObX+gqZ+u+rUR2H3g==}
|
||||||
|
|
||||||
'@sinclair/typebox@0.24.51':
|
'@sinclair/typebox@0.24.51':
|
||||||
resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
|
resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
|
||||||
|
|
||||||
@@ -15988,11 +15994,11 @@ snapshots:
|
|||||||
|
|
||||||
'@intlify/shared@9.8.0': {}
|
'@intlify/shared@9.8.0': {}
|
||||||
|
|
||||||
'@intlify/unplugin-vue-i18n@1.2.0(rollup@3.29.4)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))':
|
'@intlify/unplugin-vue-i18n@1.2.0(rollup@2.79.1)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/bundle-utils': 7.5.1(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
|
'@intlify/bundle-utils': 7.5.1(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
|
||||||
'@intlify/shared': 9.13.1
|
'@intlify/shared': 9.13.1
|
||||||
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
|
'@rollup/pluginutils': 5.1.0(rollup@2.79.1)
|
||||||
'@vue/compiler-sfc': 3.3.10
|
'@vue/compiler-sfc': 3.3.10
|
||||||
debug: 4.3.4(supports-color@9.4.0)
|
debug: 4.3.4(supports-color@9.4.0)
|
||||||
fast-glob: 3.3.2
|
fast-glob: 3.3.2
|
||||||
@@ -16918,6 +16924,11 @@ snapshots:
|
|||||||
domhandler: 5.0.3
|
domhandler: 5.0.3
|
||||||
selderee: 0.11.0
|
selderee: 0.11.0
|
||||||
|
|
||||||
|
'@shopify/lang-jsonc@1.0.0':
|
||||||
|
dependencies:
|
||||||
|
'@lezer/highlight': 1.2.0
|
||||||
|
'@lezer/lr': 1.3.14
|
||||||
|
|
||||||
'@sinclair/typebox@0.24.51': {}
|
'@sinclair/typebox@0.24.51': {}
|
||||||
|
|
||||||
'@sinclair/typebox@0.27.8': {}
|
'@sinclair/typebox@0.27.8': {}
|
||||||
@@ -24529,12 +24540,12 @@ snapshots:
|
|||||||
postcss: 8.4.32
|
postcss: 8.4.32
|
||||||
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2)
|
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2)
|
||||||
|
|
||||||
postcss-load-config@4.0.2(postcss@8.4.32)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3)):
|
postcss-load-config@4.0.2(postcss@8.4.40)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3)):
|
||||||
dependencies:
|
dependencies:
|
||||||
lilconfig: 3.1.1
|
lilconfig: 3.1.1
|
||||||
yaml: 2.4.2
|
yaml: 2.4.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
postcss: 8.4.32
|
postcss: 8.4.40
|
||||||
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3)
|
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3)
|
||||||
|
|
||||||
postcss-merge-longhand@7.0.2(postcss@8.4.40):
|
postcss-merge-longhand@7.0.2(postcss@8.4.40):
|
||||||
@@ -26159,7 +26170,7 @@ snapshots:
|
|||||||
|
|
||||||
ts-interface-checker@0.1.13: {}
|
ts-interface-checker@0.1.13: {}
|
||||||
|
|
||||||
ts-jest@27.1.5(@babel/core@7.24.5)(@types/jest@27.5.2)(babel-jest@29.7.0(@babel/core@7.24.5))(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5):
|
ts-jest@27.1.5(@babel/core@7.24.5)(@types/jest@27.5.2)(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5):
|
||||||
dependencies:
|
dependencies:
|
||||||
bs-logger: 0.2.6
|
bs-logger: 0.2.6
|
||||||
fast-json-stable-stringify: 2.1.0
|
fast-json-stable-stringify: 2.1.0
|
||||||
@@ -26174,7 +26185,6 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@babel/core': 7.24.5
|
'@babel/core': 7.24.5
|
||||||
'@types/jest': 27.5.2
|
'@types/jest': 27.5.2
|
||||||
babel-jest: 29.7.0(@babel/core@7.24.5)
|
|
||||||
|
|
||||||
ts-jest@29.0.5(@babel/core@7.24.5)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.5))(jest@29.4.1(@types/node@18.11.10)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.11.10)(typescript@4.9.3)))(typescript@4.9.3):
|
ts-jest@29.0.5(@babel/core@7.24.5)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.5))(jest@29.4.1(@types/node@18.11.10)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.11.10)(typescript@4.9.3)))(typescript@4.9.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -26380,7 +26390,7 @@ snapshots:
|
|||||||
|
|
||||||
tslib@2.6.2: {}
|
tslib@2.6.2: {}
|
||||||
|
|
||||||
tsup@8.0.2(@swc/core@1.4.2)(postcss@8.4.32)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3))(typescript@5.3.3):
|
tsup@8.0.2(@swc/core@1.4.2)(postcss@8.4.40)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3))(typescript@5.3.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
bundle-require: 4.1.0(esbuild@0.19.12)
|
bundle-require: 4.1.0(esbuild@0.19.12)
|
||||||
cac: 6.7.14
|
cac: 6.7.14
|
||||||
@@ -26390,7 +26400,7 @@ snapshots:
|
|||||||
execa: 5.1.1
|
execa: 5.1.1
|
||||||
globby: 11.1.0
|
globby: 11.1.0
|
||||||
joycon: 3.1.1
|
joycon: 3.1.1
|
||||||
postcss-load-config: 4.0.2(postcss@8.4.32)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3))
|
postcss-load-config: 4.0.2(postcss@8.4.40)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.3))
|
||||||
resolve-from: 5.0.0
|
resolve-from: 5.0.0
|
||||||
rollup: 4.17.2
|
rollup: 4.17.2
|
||||||
source-map: 0.8.0-beta.0
|
source-map: 0.8.0-beta.0
|
||||||
@@ -26398,7 +26408,7 @@ snapshots:
|
|||||||
tree-kill: 1.2.2
|
tree-kill: 1.2.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@swc/core': 1.4.2
|
'@swc/core': 1.4.2
|
||||||
postcss: 8.4.32
|
postcss: 8.4.40
|
||||||
typescript: 5.3.3
|
typescript: 5.3.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -26619,7 +26629,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
unplugin-vue-components@0.21.0(@babel/parser@7.24.5)(esbuild@0.20.2)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)):
|
unplugin-vue-components@0.21.0(@babel/parser@7.24.5)(esbuild@0.20.2)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.5.2
|
'@antfu/utils': 0.5.2
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
@@ -26630,7 +26640,7 @@ snapshots:
|
|||||||
magic-string: 0.26.7
|
magic-string: 0.26.7
|
||||||
minimatch: 5.1.6
|
minimatch: 5.1.6
|
||||||
resolve: 1.22.8
|
resolve: 1.22.8
|
||||||
unplugin: 0.7.2(esbuild@0.20.2)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2))
|
unplugin: 0.7.2(esbuild@0.20.2)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2))
|
||||||
vue: 3.3.9(typescript@4.9.3)
|
vue: 3.3.9(typescript@4.9.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@babel/parser': 7.24.5
|
'@babel/parser': 7.24.5
|
||||||
@@ -26641,7 +26651,7 @@ snapshots:
|
|||||||
- vite
|
- vite
|
||||||
- webpack
|
- webpack
|
||||||
|
|
||||||
unplugin-vue-components@0.21.0(@babel/parser@7.24.5)(esbuild@0.20.2)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)):
|
unplugin-vue-components@0.21.0(@babel/parser@7.24.5)(esbuild@0.20.2)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.5.2
|
'@antfu/utils': 0.5.2
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
@@ -26652,7 +26662,7 @@ snapshots:
|
|||||||
magic-string: 0.26.7
|
magic-string: 0.26.7
|
||||||
minimatch: 5.1.6
|
minimatch: 5.1.6
|
||||||
resolve: 1.22.8
|
resolve: 1.22.8
|
||||||
unplugin: 0.7.2(esbuild@0.20.2)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2))
|
unplugin: 0.7.2(esbuild@0.20.2)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2))
|
||||||
vue: 3.3.9(typescript@4.9.5)
|
vue: 3.3.9(typescript@4.9.5)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@babel/parser': 7.24.5
|
'@babel/parser': 7.24.5
|
||||||
@@ -26663,25 +26673,6 @@ snapshots:
|
|||||||
- vite
|
- vite
|
||||||
- webpack
|
- webpack
|
||||||
|
|
||||||
unplugin-vue-components@0.25.2(@babel/parser@7.24.5)(rollup@3.29.4)(vue@3.3.9(typescript@5.3.2)):
|
|
||||||
dependencies:
|
|
||||||
'@antfu/utils': 0.7.7
|
|
||||||
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
|
|
||||||
chokidar: 3.6.0
|
|
||||||
debug: 4.3.4(supports-color@9.4.0)
|
|
||||||
fast-glob: 3.3.2
|
|
||||||
local-pkg: 0.4.3
|
|
||||||
magic-string: 0.30.10
|
|
||||||
minimatch: 9.0.4
|
|
||||||
resolve: 1.22.8
|
|
||||||
unplugin: 1.10.1
|
|
||||||
vue: 3.3.9(typescript@5.3.2)
|
|
||||||
optionalDependencies:
|
|
||||||
'@babel/parser': 7.24.5
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- rollup
|
|
||||||
- supports-color
|
|
||||||
|
|
||||||
unplugin-vue-components@0.25.2(@babel/parser@7.24.5)(rollup@4.17.2)(vue@3.3.9(typescript@5.3.2)):
|
unplugin-vue-components@0.25.2(@babel/parser@7.24.5)(rollup@4.17.2)(vue@3.3.9(typescript@5.3.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.7.7
|
'@antfu/utils': 0.7.7
|
||||||
@@ -26701,7 +26692,7 @@ snapshots:
|
|||||||
- rollup
|
- rollup
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
unplugin@0.7.2(esbuild@0.20.2)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)):
|
unplugin@0.7.2(esbuild@0.20.2)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.11.3
|
acorn: 8.11.3
|
||||||
chokidar: 3.6.0
|
chokidar: 3.6.0
|
||||||
@@ -26709,11 +26700,11 @@ snapshots:
|
|||||||
webpack-virtual-modules: 0.4.6
|
webpack-virtual-modules: 0.4.6
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
esbuild: 0.20.2
|
esbuild: 0.20.2
|
||||||
rollup: 3.29.4
|
rollup: 2.79.1
|
||||||
vite: 3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0)
|
vite: 3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.31.0)
|
||||||
webpack: 5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)
|
webpack: 5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)
|
||||||
|
|
||||||
unplugin@0.7.2(esbuild@0.20.2)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)):
|
unplugin@0.7.2(esbuild@0.20.2)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(webpack@5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.11.3
|
acorn: 8.11.3
|
||||||
chokidar: 3.6.0
|
chokidar: 3.6.0
|
||||||
@@ -26721,7 +26712,7 @@ snapshots:
|
|||||||
webpack-virtual-modules: 0.4.6
|
webpack-virtual-modules: 0.4.6
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
esbuild: 0.20.2
|
esbuild: 0.20.2
|
||||||
rollup: 3.29.4
|
rollup: 2.79.1
|
||||||
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
||||||
webpack: 5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)
|
webpack: 5.91.0(@swc/core@1.4.2)(esbuild@0.20.2)
|
||||||
|
|
||||||
@@ -26866,7 +26857,7 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- terser
|
- terser
|
||||||
|
|
||||||
vite-plugin-checker@0.6.2(eslint@8.57.0)(meow@8.1.2)(optionator@0.9.4)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(vue-tsc@1.8.24(typescript@5.3.2)):
|
vite-plugin-checker@0.6.2(eslint@8.57.0)(optionator@0.9.4)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0))(vue-tsc@1.8.24(typescript@5.3.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/code-frame': 7.24.2
|
'@babel/code-frame': 7.24.2
|
||||||
ansi-escapes: 4.3.2
|
ansi-escapes: 4.3.2
|
||||||
@@ -26888,7 +26879,6 @@ snapshots:
|
|||||||
vscode-uri: 3.0.8
|
vscode-uri: 3.0.8
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
meow: 8.1.2
|
|
||||||
optionator: 0.9.4
|
optionator: 0.9.4
|
||||||
typescript: 5.3.2
|
typescript: 5.3.2
|
||||||
vue-tsc: 1.8.24(typescript@5.3.2)
|
vue-tsc: 1.8.24(typescript@5.3.2)
|
||||||
@@ -26934,25 +26924,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
||||||
|
|
||||||
vite-plugin-inspect@0.7.38(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)):
|
vite-plugin-inspect@0.7.38(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.7.7
|
'@antfu/utils': 0.7.7
|
||||||
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
|
'@rollup/pluginutils': 5.1.0(rollup@2.79.1)
|
||||||
debug: 4.3.4(supports-color@9.4.0)
|
|
||||||
error-stack-parser-es: 0.1.1
|
|
||||||
fs-extra: 11.2.0
|
|
||||||
open: 9.1.0
|
|
||||||
picocolors: 1.0.0
|
|
||||||
sirv: 2.0.4
|
|
||||||
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- rollup
|
|
||||||
- supports-color
|
|
||||||
|
|
||||||
vite-plugin-inspect@0.7.42(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.31.0)):
|
|
||||||
dependencies:
|
|
||||||
'@antfu/utils': 0.7.7
|
|
||||||
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
|
|
||||||
debug: 4.3.4(supports-color@9.4.0)
|
debug: 4.3.4(supports-color@9.4.0)
|
||||||
error-stack-parser-es: 0.1.1
|
error-stack-parser-es: 0.1.1
|
||||||
fs-extra: 11.2.0
|
fs-extra: 11.2.0
|
||||||
|
|||||||
Reference in New Issue
Block a user