Socket
Socket
Sign inDemoInstall

mdast-util-mdx-jsx

Package Overview
Dependencies
Maintainers
2
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mdast-util-mdx-jsx - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

complex-types.d.ts

41

index.d.ts

@@ -12,21 +12,13 @@ /** @type {FromMarkdownExtension} */

export type ToMarkdownHandle = import('mdast-util-to-markdown').Handle
export type Estree = import('estree-jsx').Program
export type MDXJsxAttributeValueExpression = Literal & {
type: 'mdxJsxAttributeValueExpression'
data?: {
estree?: Estree
}
}
export type MDXJsxAttribute = Omit<Literal, 'value'> & {
type: 'mdxJsxAttribute'
name: string
value: MDXJsxAttributeValueExpression | string | null
}
export type MDXJsxExpressionAttribute = Literal & {
type: 'mdxJsxExpressionAttribute'
}
export type Attribute = MDXJsxAttribute | MDXJsxExpressionAttribute
export type Program = import('estree-jsx').Program
export type MDXJsxAttributeValueExpression =
import('./complex-types').MDXJsxAttributeValueExpression
export type MDXJsxAttribute = import('./complex-types').MDXJsxAttribute
export type MDXJsxExpressionAttribute =
import('./complex-types').MDXJsxExpressionAttribute
export type MDXJsxFlowElement = import('./complex-types').MDXJsxFlowElement
export type MDXJsxTextElement = import('./complex-types').MDXJsxTextElement
export type Tag = {
name: string | null
attributes: Attribute[]
attributes: (MDXJsxAttribute | MDXJsxExpressionAttribute)[]
close?: boolean

@@ -37,16 +29,1 @@ selfClosing?: boolean

}
export type MDXJsxElement = {
name: string | null
attributes: Attribute[]
}
export type MDXJsxFlowElement = Parent &
MDXJsxElement & {
type: 'mdxJsxFlowElement'
}
export type MDXJsxTextElement = Parent &
MDXJsxElement & {
type: 'mdxJsxTextElement'
}
/** @type {FromMarkdownHandle} */
declare function data(token: import('micromark-util-types').Token): void
export {}

@@ -9,13 +9,9 @@ /**

* @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle
* @typedef {import('estree-jsx').Program} Estree
*
* @typedef {Literal & {type: 'mdxJsxAttributeValueExpression', data?: {estree?: Estree}}} MDXJsxAttributeValueExpression
* @typedef {Omit<Literal, 'value'> & {type: 'mdxJsxAttribute', name: string, value: MDXJsxAttributeValueExpression|string|null}} MDXJsxAttribute
* @typedef {Literal & {type: 'mdxJsxExpressionAttribute'}} MDXJsxExpressionAttribute
* @typedef {MDXJsxAttribute|MDXJsxExpressionAttribute} Attribute
* @typedef {{name: string|null, attributes: Attribute[], close?: boolean, selfClosing?: boolean, start: Token['start'], end: Token['start']}} Tag
*
* @typedef {{name: string|null, attributes: Attribute[]}} MDXJsxElement
* @typedef {Parent & MDXJsxElement & {type: 'mdxJsxFlowElement'}} MDXJsxFlowElement
* @typedef {Parent & MDXJsxElement & {type: 'mdxJsxTextElement'}} MDXJsxTextElement
* @typedef {import('estree-jsx').Program} Program
* @typedef {import('./complex-types').MDXJsxAttributeValueExpression} MDXJsxAttributeValueExpression
* @typedef {import('./complex-types').MDXJsxAttribute} MDXJsxAttribute
* @typedef {import('./complex-types').MDXJsxExpressionAttribute} MDXJsxExpressionAttribute
* @typedef {import('./complex-types').MDXJsxFlowElement} MDXJsxFlowElement
* @typedef {import('./complex-types').MDXJsxTextElement} MDXJsxTextElement
* @typedef {{name: string|null, attributes: (MDXJsxAttribute|MDXJsxExpressionAttribute)[], close?: boolean, selfClosing?: boolean, start: Token['start'], end: Token['start']}} Tag
*/

@@ -126,5 +122,3 @@

function enterMdxJsxTagClosingMarker(token) {
/** @type {Tag[]} */
// @ts-expect-error: hush
const stack = this.getData('mdxJsxTagStack')
const stack = /** @type {Tag[]} */ (this.getData('mdxJsxTagStack'))

@@ -142,5 +136,3 @@ if (stack.length === 0) {

function enterMdxJsxTagAnyAttribute(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))

@@ -158,5 +150,3 @@ if (tag.close) {

function enterMdxJsxTagSelfClosingMarker(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))

@@ -174,5 +164,3 @@ if (tag.close) {

function exitMdxJsxTagClosingMarker() {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
tag.close = true

@@ -183,5 +171,3 @@ }

function exitMdxJsxTagNamePrimary(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
tag.name = this.sliceSerialize(token)

@@ -192,5 +178,3 @@ }

function exitMdxJsxTagNameMember(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
tag.name += '.' + this.sliceSerialize(token)

@@ -201,5 +185,3 @@ }

function exitMdxJsxTagNameLocal(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
tag.name += ':' + this.sliceSerialize(token)

@@ -210,5 +192,3 @@ }

function enterMdxJsxTagAttribute(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
enterMdxJsxTagAnyAttribute.call(this, token)

@@ -220,5 +200,3 @@ tag.attributes.push({type: 'mdxJsxAttribute', name: '', value: null})

function enterMdxJsxTagExpressionAttribute(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
enterMdxJsxTagAnyAttribute.call(this, token)

@@ -231,9 +209,7 @@ tag.attributes.push({type: 'mdxJsxExpressionAttribute', value: ''})

function exitMdxJsxTagExpressionAttribute(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
/** @type {MDXJsxExpressionAttribute} */
// @ts-expect-error: hush
const tail = tag.attributes[tag.attributes.length - 1]
/** @type {Estree?} */
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
const tail = /** @type {MDXJsxExpressionAttribute} */ (
tag.attributes[tag.attributes.length - 1]
)
/** @type {Program|undefined} */
// @ts-expect-error: custom.

@@ -251,6 +227,7 @@ const estree = token.estree

function exitMdxJsxTagAttributeNamePrimary(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
tag.attributes[tag.attributes.length - 1].name = this.sliceSerialize(token)
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
const node = /** @type {MDXJsxAttribute} */ (
tag.attributes[tag.attributes.length - 1]
)
node.name = this.sliceSerialize(token)
}

@@ -260,7 +237,7 @@

function exitMdxJsxTagAttributeNameLocal(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
tag.attributes[tag.attributes.length - 1].name +=
':' + this.sliceSerialize(token)
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
const node = /** @type {MDXJsxAttribute} */ (
tag.attributes[tag.attributes.length - 1]
)
node.name += ':' + this.sliceSerialize(token)
}

@@ -270,5 +247,3 @@

function exitMdxJsxTagAttributeValueLiteral() {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
tag.attributes[tag.attributes.length - 1].value = parseEntities(

@@ -282,11 +257,9 @@ this.resume(),

function exitMdxJsxTagAttributeValueExpression(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
/** @type {MDXJsxAttribute} */
// @ts-expect-error: hush
const tail = tag.attributes[tag.attributes.length - 1]
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
const tail = /** @type {MDXJsxAttribute} */ (
tag.attributes[tag.attributes.length - 1]
)
/** @type {MDXJsxAttributeValueExpression} */
const node = {type: 'mdxJsxAttributeValueExpression', value: this.resume()}
/** @type {Estree?} */
/** @type {Program|undefined} */
// @ts-expect-error: custom.

@@ -304,5 +277,3 @@ const estree = token.estree

function exitMdxJsxTagSelfClosingMarker() {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))

@@ -314,8 +285,4 @@ tag.selfClosing = true

function exitMdxJsxTag(token) {
/** @type {Tag} */
// @ts-expect-error: hush
const tag = this.getData('mdxJsxTag')
/** @type {Tag[]} */
// @ts-expect-error: hush
const stack = this.getData('mdxJsxTagStack')
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag'))
const stack = /** @type {Tag[]} */ (this.getData('mdxJsxTagStack'))
const tail = stack[stack.length - 1]

@@ -343,15 +310,14 @@

} else {
/** @type {MDXJsxFlowElement|MDXJsxTextElement} */
const node = {
type:
token.type === 'mdxJsxTextTag'
? 'mdxJsxTextElement'
: 'mdxJsxFlowElement',
name: tag.name,
attributes: tag.attributes,
children: []
}
// @ts-expect-error: custom
this.enter(node, token)
this.enter(
{
type:
token.type === 'mdxJsxTextTag'
? 'mdxJsxTextElement'
: 'mdxJsxFlowElement',
name: tag.name,
attributes: tag.attributes,
children: []
},
token
)
}

@@ -358,0 +324,0 @@

{
"name": "mdast-util-mdx-jsx",
"version": "1.0.0",
"version": "1.1.0",
"description": "mdast extension to parse and serialize MDX or MDX.js JSX",

@@ -34,2 +34,3 @@ "license": "MIT",

"files": [
"complex-types.d.ts",
"index.d.ts",

@@ -40,3 +41,3 @@ "index.js"

"@types/estree-jsx": "^0.0.1",
"@types/mdast": "^3.0.3",
"@types/mdast": "^3.0.0",
"mdast-util-to-markdown": "^1.0.0",

@@ -62,6 +63,6 @@ "parse-entities": "^3.0.0",

"typescript": "^4.0.0",
"xo": "^0.39.0"
"xo": "^0.42.0"
},
"scripts": {
"build": "rimraf \"*.d.ts\" && tsc && type-coverage",
"build": "rimraf \"{index,test}.d.ts\" && tsc && type-coverage",
"format": "remark . -qfo && prettier . -w --loglevel warn && xo --fix",

@@ -68,0 +69,0 @@ "test-api": "node --conditions development test.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc