Socket
Socket
Sign inDemoInstall

mdast-util-mdx-expression

Package Overview
Dependencies
44
Maintainers
2
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.3.2 to 2.0.0

111

index.d.ts
import type {Program} from 'estree-jsx'
import type {Literal as HastLiteral} from 'hast'
import type {Literal as MdastLiteral} from 'mdast'
import type {Data as HastData, Literal as HastLiteral} from 'hast'
import type {Data as MdastData, Literal as MdastLiteral} from 'mdast'

@@ -13,3 +13,2 @@ export {

*/
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
export interface MdxFlowExpression extends MdastLiteral {

@@ -22,17 +21,20 @@ /**

/**
* Data.
* Data associated with the mdast MDX expression (flow).
*/
data?: {
/**
* Program node from estree.
*/
// eslint-disable-next-line @typescript-eslint/ban-types
estree?: Program | null | undefined
} & MdastLiteral['data']
data?: MdxFlowExpressionData | undefined
}
/**
* Info associated with mdast MDX expression (flow) nodes by the ecosystem.
*/
export interface MdxFlowExpressionData extends MdastData {
/**
* Program node from estree.
*/
estree?: Program | null | undefined
}
/**
* MDX expression node, occurring in text (phrasing).
*/
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
export interface MdxTextExpression extends MdastLiteral {

@@ -45,29 +47,20 @@ /**

/**
* Data.
* Data associated with the mdast MDX expression (text).
*/
data?: {
/**
* Program node from estree.
*/
// eslint-disable-next-line @typescript-eslint/ban-types
estree?: Program | null | undefined
} & MdastLiteral['data']
data?: MdxTextExpressionData | undefined
}
/**
* Deprecated: use `MdxFlowExpression`.
* Info associated with mdast MDX expression (text) nodes by the ecosystem.
*/
// eslint-disable-next-line @typescript-eslint/naming-convention
export type MDXFlowExpression = MdxFlowExpression
export interface MdxTextExpressionData extends MdastData {
/**
* Program node from estree.
*/
estree?: Program | null | undefined
}
/**
* Deprecated: use `MdxTextExpression`.
*/
// eslint-disable-next-line @typescript-eslint/naming-convention
export type MDXTextExpression = MdxTextExpression
/**
* MDX expression node, occurring in flow (block), for hast.
*/
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
export interface MdxFlowExpressionHast extends HastLiteral {

@@ -80,17 +73,20 @@ /**

/**
* Data.
* Data associated with the hast MDX expression (flow).
*/
data?: {
/**
* Program node from estree.
*/
// eslint-disable-next-line @typescript-eslint/ban-types
estree?: Program | null | undefined
} & HastLiteral['data']
data?: MdxFlowExpressionHastData | undefined
}
/**
* Info associated with hast MDX expression (flow) nodes by the ecosystem.
*/
export interface MdxFlowExpressionHastData extends HastData {
/**
* Program node from estree.
*/
estree?: Program | null | undefined
}
/**
* MDX expression node, occurring in text (phrasing), for hast.
*/
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
export interface MdxTextExpressionHast extends HastLiteral {

@@ -103,17 +99,20 @@ /**

/**
* Data.
* Data associated with the hast MDX expression (text).
*/
data?: {
/**
* Program node from estree.
*/
// eslint-disable-next-line @typescript-eslint/ban-types
estree?: Program | null | undefined
} & HastLiteral['data']
data?: MdxTextExpressionHastData | undefined
}
/**
* Info associated with hast MDX expression (text) nodes by the ecosystem.
*/
export interface MdxTextExpressionHastData extends HastData {
/**
* Program node from estree.
*/
estree?: Program | null | undefined
}
// Add nodes to mdast content.
declare module 'mdast' {
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
interface StaticPhrasingContentMap {
interface RootContentMap {
/**

@@ -123,5 +122,15 @@ * MDX expression node, occurring in text (phrasing).

mdxTextExpression: MdxTextExpression
/**
* MDX expression node, occurring in flow (block).
*/
mdxFlowExpression: MdxFlowExpression
}
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
interface PhrasingContentMap {
/**
* MDX expression node, occurring in text (phrasing).
*/
mdxTextExpression: MdxTextExpression
}
interface BlockContentMap {

@@ -137,3 +146,2 @@ /**

declare module 'hast' {
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
interface RootContentMap {

@@ -150,3 +158,2 @@ /**

// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
interface ElementContentMap {

@@ -153,0 +160,0 @@ /**

/**
* @typedef {import('estree-jsx').Program} Program
* Create an extension for `mdast-util-from-markdown` to enable MDX expressions
* in markdown.
*
* @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext
* @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension
* @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle
* When using the micromark syntax extension with `addResult`, nodes will have
* a `data.estree` field set to an ESTree `Program` node.
*
* @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension
* @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle
*
* @typedef {import('../index.js').MdxFlowExpression} MdxFlowExpression
* @typedef {import('../index.js').MdxTextExpression} MdxTextExpression
* @returns {FromMarkdownExtension}
* Extension for `mdast-util-from-markdown` to enable MDX expressions.
*/
export function mdxExpressionFromMarkdown(): FromMarkdownExtension
/**
* Extension for `mdast-util-from-markdown` to enable MDX expressions.
* Create an extension for `mdast-util-to-markdown` to enable MDX expressions
* in markdown.
*
* When using the syntax extension with `addResult`, nodes will have a
* `data.estree` field set to an ESTree `Program` node.
*
* @type {FromMarkdownExtension}
* @returns {ToMarkdownExtension}
* Extension for `mdast-util-to-markdown` to enable MDX expressions.
*/
export const mdxExpressionFromMarkdown: FromMarkdownExtension
/**
* Extension for `mdast-util-to-markdown` to enable MDX ESM.
*
* @type {ToMarkdownExtension}
*/
export const mdxExpressionToMarkdown: ToMarkdownExtension
export type Program = import('estree-jsx').Program
export function mdxExpressionToMarkdown(): ToMarkdownExtension
export type CompileContext = import('mdast-util-from-markdown').CompileContext
export type FromMarkdownExtension = import('mdast-util-from-markdown').Extension
export type FromMarkdownHandle = import('mdast-util-from-markdown').Handle
export type ToMarkdownHandle = import('mdast-util-to-markdown').Handle
export type ToMarkdownExtension = import('mdast-util-to-markdown').Options
export type ToMarkdownHandle = import('mdast-util-to-markdown').Handle
export type MdxFlowExpression = import('../index.js').MdxFlowExpression
export type MdxTextExpression = import('../index.js').MdxTextExpression
/**
* @typedef {import('estree-jsx').Program} Program
*
* @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext

@@ -8,4 +6,4 @@ * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension

*
* @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle
* @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension
* @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle
*

@@ -16,20 +14,26 @@ * @typedef {import('../index.js').MdxFlowExpression} MdxFlowExpression

import {ok as assert} from 'devlop'
/**
* Extension for `mdast-util-from-markdown` to enable MDX expressions.
* Create an extension for `mdast-util-from-markdown` to enable MDX expressions
* in markdown.
*
* When using the syntax extension with `addResult`, nodes will have a
* `data.estree` field set to an ESTree `Program` node.
* When using the micromark syntax extension with `addResult`, nodes will have
* a `data.estree` field set to an ESTree `Program` node.
*
* @type {FromMarkdownExtension}
* @returns {FromMarkdownExtension}
* Extension for `mdast-util-from-markdown` to enable MDX expressions.
*/
export const mdxExpressionFromMarkdown = {
enter: {
mdxFlowExpression: enterMdxFlowExpression,
mdxTextExpression: enterMdxTextExpression
},
exit: {
mdxFlowExpression: exitMdxExpression,
mdxFlowExpressionChunk: exitMdxExpressionData,
mdxTextExpression: exitMdxExpression,
mdxTextExpressionChunk: exitMdxExpressionData
export function mdxExpressionFromMarkdown() {
return {
enter: {
mdxFlowExpression: enterMdxFlowExpression,
mdxTextExpression: enterMdxTextExpression
},
exit: {
mdxFlowExpression: exitMdxExpression,
mdxFlowExpressionChunk: exitMdxExpressionData,
mdxTextExpression: exitMdxExpression,
mdxTextExpressionChunk: exitMdxExpressionData
}
}

@@ -39,15 +43,19 @@ }

/**
* Extension for `mdast-util-to-markdown` to enable MDX ESM.
* Create an extension for `mdast-util-to-markdown` to enable MDX expressions
* in markdown.
*
* @type {ToMarkdownExtension}
* @returns {ToMarkdownExtension}
* Extension for `mdast-util-to-markdown` to enable MDX expressions.
*/
export const mdxExpressionToMarkdown = {
handlers: {
mdxFlowExpression: handleMdxExpression,
mdxTextExpression: handleMdxExpression
},
unsafe: [
{character: '{', inConstruct: ['phrasing']},
{atBreak: true, character: '{'}
]
export function mdxExpressionToMarkdown() {
return {
handlers: {
mdxFlowExpression: handleMdxExpression,
mdxTextExpression: handleMdxExpression
},
unsafe: [
{character: '{', inConstruct: ['phrasing']},
{atBreak: true, character: '{'}
]
}
}

@@ -79,8 +87,6 @@

const value = this.resume()
/** @type {Program | undefined} */
// @ts-expect-error: estree.
const estree = token.estree
const node = /** @type {MdxFlowExpression | MdxTextExpression} */ (
this.exit(token)
)
const node = this.stack[this.stack.length - 1]
assert(node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression')
this.exit(token)
node.value = value

@@ -87,0 +93,0 @@

{
"name": "mdast-util-mdx-expression",
"version": "1.3.2",
"version": "2.0.0",
"description": "mdast extension to parse and serialize MDX (or MDX.js) expressions",

@@ -31,4 +31,3 @@ "license": "MIT",

"type": "module",
"main": "index.js",
"types": "index.d.ts",
"exports": "./index.js",
"files": [

@@ -42,13 +41,14 @@ "lib/",

"@types/estree-jsx": "^1.0.0",
"@types/hast": "^2.0.0",
"@types/mdast": "^3.0.0",
"mdast-util-from-markdown": "^1.0.0",
"mdast-util-to-markdown": "^1.0.0"
"@types/hast": "^3.0.0",
"@types/mdast": "^4.0.0",
"devlop": "^1.0.0",
"mdast-util-from-markdown": "^2.0.0",
"mdast-util-to-markdown": "^2.0.0"
},
"devDependencies": {
"@types/acorn": "^4.0.0",
"@types/node": "^18.0.0",
"@types/node": "^20.0.0",
"acorn": "^8.0.0",
"c8": "^7.0.0",
"micromark-extension-mdx-expression": "^1.0.0",
"c8": "^8.0.0",
"micromark-extension-mdx-expression": "^2.0.0",
"prettier": "^2.0.0",

@@ -58,5 +58,5 @@ "remark-cli": "^11.0.0",

"type-coverage": "^2.0.0",
"typescript": "^4.0.0",
"unist-util-remove-position": "^4.0.0",
"xo": "^0.53.0"
"typescript": "^5.0.0",
"unist-util-remove-position": "^5.0.0",
"xo": "^0.54.0"
},

@@ -67,20 +67,19 @@ "scripts": {

"format": "remark . -qfo && prettier . -w --loglevel warn && xo --fix",
"test-api": "node --conditions development test.js",
"test-coverage": "c8 --check-coverage --100 --reporter lcov npm run test-api",
"test-api-prod": "node --conditions production test.js",
"test-api-dev": "node --conditions development test.js",
"test-api": "npm run test-api-dev && npm run test-api-prod",
"test-coverage": "c8 --100 --reporter lcov npm run test-api",
"test": "npm run build && npm run format && npm run test-coverage"
},
"prettier": {
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"bracketSpacing": false,
"semi": false,
"trailingComma": "none"
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "none",
"useTabs": false
},
"xo": {
"prettier": true
},
"remarkConfig": {
"plugins": [
"preset-wooorm"
"remark-preset-wooorm"
]

@@ -91,5 +90,19 @@ },

"detail": true,
"strict": true,
"ignoreCatch": true
"ignoreCatch": true,
"strict": true
},
"xo": {
"overrides": [
{
"files": [
"**/*.ts"
],
"rules": {
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/consistent-type-definitions": "off"
}
}
],
"prettier": true
}
}

@@ -20,4 +20,4 @@ # mdast-util-mdx-expression

* [API](#api)
* [`mdxExpressionFromMarkdown`](#mdxexpressionfrommarkdown)
* [`mdxExpressionToMarkdown`](#mdxexpressiontomarkdown)
* [`mdxExpressionFromMarkdown()`](#mdxexpressionfrommarkdown)
* [`mdxExpressionToMarkdown()`](#mdxexpressiontomarkdown)
* [`MdxFlowExpression`](#mdxflowexpression)

@@ -66,3 +66,3 @@ * [`MdxTextExpression`](#mdxtextexpression)

This package is [ESM only][esm].
In Node.js (version 14.14+ and 16.0+), install with [npm][]:
In Node.js (version 16+), install with [npm][]:

@@ -76,3 +76,3 @@ ```sh

```js
import {mdxExpressionFromMarkdown, mdxExpressionToMarkdown} from 'https://esm.sh/mdast-util-mdx-expression@1'
import {mdxExpressionFromMarkdown, mdxExpressionToMarkdown} from 'https://esm.sh/mdast-util-mdx-expression@2'
```

@@ -84,3 +84,3 @@

<script type="module">
import {mdxExpressionFromMarkdown, mdxExpressionToMarkdown} from 'https://esm.sh/mdast-util-mdx-expression@1?bundle'
import {mdxExpressionFromMarkdown, mdxExpressionToMarkdown} from 'https://esm.sh/mdast-util-mdx-expression@2?bundle'
</script>

@@ -106,6 +106,6 @@ ```

import * as acorn from 'acorn'
import {mdxExpression} from 'micromark-extension-mdx-expression'
import {fromMarkdown} from 'mdast-util-from-markdown'
import {mdxExpressionFromMarkdown, mdxExpressionToMarkdown} from 'mdast-util-mdx-expression'
import {toMarkdown} from 'mdast-util-to-markdown'
import {mdxExpression} from 'micromark-extension-mdx-expression'
import {mdxExpressionFromMarkdown, mdxExpressionToMarkdown} from 'mdast-util-mdx-expression'

@@ -116,3 +116,3 @@ const doc = await fs.readFile('example.mdx')

extensions: [mdxExpression({acorn, addResult: true})],
mdastExtensions: [mdxExpressionFromMarkdown]
mdastExtensions: [mdxExpressionFromMarkdown()]
})

@@ -122,3 +122,3 @@

const out = toMarkdown(tree, {extensions: [mdxExpressionToMarkdown]})
const out = toMarkdown(tree, {extensions: [mdxExpressionToMarkdown()]})

@@ -197,6 +197,6 @@ console.log(out)

### `mdxExpressionFromMarkdown`
### `mdxExpressionFromMarkdown()`
Extension for [`mdast-util-from-markdown`][mdast-util-from-markdown] to enable
MDX expressions.
Create an extension for [`mdast-util-from-markdown`][mdast-util-from-markdown]
to enable MDX expressions in markdown.

@@ -206,7 +206,17 @@ When using the [micromark syntax extension][extension] with `addResult`, nodes

### `mdxExpressionToMarkdown`
###### Returns
Extension for [`mdast-util-to-markdown`][mdast-util-to-markdown] to enable MDX
expressions.
Extension for `mdast-util-from-markdown` to enable MDX expressions
([`FromMarkdownExtension`][from-markdown-extension]).
### `mdxExpressionToMarkdown()`
Create an extension for [`mdast-util-to-markdown`][mdast-util-to-markdown]
to enable MDX expressions in markdown.
###### Returns
Extension for `mdast-util-to-markdown` to enable MDX expressions
([`ToMarkdownExtension`][to-markdown-extension]).
### `MdxFlowExpression`

@@ -220,8 +230,12 @@

import type {Program} from 'estree-jsx'
import type {Literal} from 'mdast'
import type {Data, Literal} from 'mdast'
interface MdxFlowExpression extends Literal {
type: 'mdxFlowExpression'
data?: {estree?: Program | null | undefined} & Literal['data']
data?: MdxFlowExpressionData | undefined
}
interface MdxFlowExpressionData extends Data {
estree?: Program | null | undefined
}
```

@@ -237,8 +251,12 @@

import type {Program} from 'estree-jsx'
import type {Literal} from 'mdast'
import type {Data, Literal} from 'mdast'
interface MdxTextExpression extends Literal {
type: 'mdxTextExpression'
data?: {estree?: Program | null | undefined} & Literal['data']
data?: MdxTextExpressionData | undefined
}
interface MdxTextExpressionData extends Data {
estree?: Program | null | undefined
}
```

@@ -255,8 +273,12 @@

import type {Program} from 'estree-jsx'
import type {Literal} from 'hast'
import type {Data, Literal} from 'hast'
interface MdxFlowExpressionHast extends Literal {
type: 'mdxFlowExpression'
data?: {estree?: Program | null | undefined} & Literal['data']
data?: MdxFlowExpressionData | undefined
}
interface MdxFlowExpressionData extends Data {
estree?: Program | null | undefined
}
```

@@ -273,8 +295,12 @@

import type {Program} from 'estree-jsx'
import type {Literal} from 'hast'
import type {Data, Literal} from 'hast'
interface MdxTextExpressionHast extends Literal {
type: 'mdxTextExpression'
data?: {estree?: Program | null | undefined} & Literal['data']
data?: MdxTextExpressionData | undefined
}
interface MdxTextExpressionData extends Data {
estree?: Program | null | undefined
}
```

@@ -304,3 +330,3 @@

interface MdxFlowExpression <: Literal {
type: "mdxFlowExpression"
type: 'mdxFlowExpression'
}

@@ -332,3 +358,3 @@ ```

interface MdxTextExpression <: Literal {
type: "mdxTextExpression"
type: 'mdxTextExpression"
}

@@ -390,3 +416,3 @@ ```

visit(tree, (node) => {
visit(tree, function (node) {
// `node` can now be an expression node.

@@ -398,10 +424,13 @@ })

Projects maintained by the unified collective are compatible with all maintained
Projects maintained by the unified collective are compatible with maintained
versions of Node.js.
As of now, that is Node.js 14.14+ and 16.0+.
Our projects sometimes work with older versions, but this is not guaranteed.
This plugin works with `mdast-util-from-markdown` version 1+ and
`mdast-util-to-markdown` version 1+.
When we cut a new major release, we drop support for unmaintained versions of
Node.
This means we try to keep the current release line,
`mdast-util-mdx-expression@^2`, compatible with Node.js 16.
This utility works with `mdast-util-from-markdown` version 2+ and
`mdast-util-to-markdown` version 2+.
## Related

@@ -444,5 +473,5 @@

[size-badge]: https://img.shields.io/bundlephobia/minzip/mdast-util-mdx-expression.svg
[size-badge]: https://img.shields.io/badge/dynamic/json?label=minzipped%20size&query=$.size.compressedSize&url=https://deno.bundlejs.com/?q=mdast-util-mdx-expression
[size]: https://bundlephobia.com/result?p=mdast-util-mdx-expression
[size]: https://bundlejs.com/?q=mdast-util-mdx-expression

@@ -501,2 +530,6 @@ [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg

[from-markdown-extension]: https://github.com/syntax-tree/mdast-util-from-markdown#extension
[to-markdown-extension]: https://github.com/syntax-tree/mdast-util-to-markdown#options
[api-mdx-expression-from-markdown]: #mdxexpressionfrommarkdown

@@ -503,0 +536,0 @@

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc