diff --git a/index.js b/index.js
index 4334de1..a49a278 100644
--- a/index.js
+++ b/index.js
@@ -1,47 +1,5 @@
-///
-///
-
-/**
- * @typedef {import('mdast').Root} Root
- * @typedef {import('mdast-util-gfm').Options} MdastOptions
- * @typedef {import('micromark-extension-gfm').Options} MicromarkOptions
- * @typedef {import('unified').Processor} Processor
- */
-
-/**
- * @typedef {MicromarkOptions & MdastOptions} Options
- * Configuration.
- */
-
-import {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'
-import {gfm} from 'micromark-extension-gfm'
-
-/** @type {Options} */
-const emptyOptions = {}
-
/**
- * Add support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).
- *
- * @param {Options | null | undefined} [options]
- * Configuration (optional).
- * @returns {undefined}
- * Nothing.
+ * @typedef {import('./lib/index.js').Options} Options
*/
-export default function remarkGfm(options) {
- // @ts-expect-error: TS is wrong about `this`.
- // eslint-disable-next-line unicorn/no-this-assignment
- const self = /** @type {Processor} */ (this)
- const settings = options || emptyOptions
- const data = self.data()
-
- const micromarkExtensions =
- data.micromarkExtensions || (data.micromarkExtensions = [])
- const fromMarkdownExtensions =
- data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])
- const toMarkdownExtensions =
- data.toMarkdownExtensions || (data.toMarkdownExtensions = [])
- micromarkExtensions.push(gfm(settings))
- fromMarkdownExtensions.push(gfmFromMarkdown())
- toMarkdownExtensions.push(gfmToMarkdown(settings))
-}
+export {default} from './lib/index.js'
diff --git a/lib/index.js b/lib/index.js
new file mode 100644
index 0000000..4334de1
--- /dev/null
+++ b/lib/index.js
@@ -0,0 +1,47 @@
+///
+///
+
+/**
+ * @typedef {import('mdast').Root} Root
+ * @typedef {import('mdast-util-gfm').Options} MdastOptions
+ * @typedef {import('micromark-extension-gfm').Options} MicromarkOptions
+ * @typedef {import('unified').Processor} Processor
+ */
+
+/**
+ * @typedef {MicromarkOptions & MdastOptions} Options
+ * Configuration.
+ */
+
+import {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'
+import {gfm} from 'micromark-extension-gfm'
+
+/** @type {Options} */
+const emptyOptions = {}
+
+/**
+ * Add support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).
+ *
+ * @param {Options | null | undefined} [options]
+ * Configuration (optional).
+ * @returns {undefined}
+ * Nothing.
+ */
+export default function remarkGfm(options) {
+ // @ts-expect-error: TS is wrong about `this`.
+ // eslint-disable-next-line unicorn/no-this-assignment
+ const self = /** @type {Processor} */ (this)
+ const settings = options || emptyOptions
+ const data = self.data()
+
+ const micromarkExtensions =
+ data.micromarkExtensions || (data.micromarkExtensions = [])
+ const fromMarkdownExtensions =
+ data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])
+ const toMarkdownExtensions =
+ data.toMarkdownExtensions || (data.toMarkdownExtensions = [])
+
+ micromarkExtensions.push(gfm(settings))
+ fromMarkdownExtensions.push(gfmFromMarkdown())
+ toMarkdownExtensions.push(gfmToMarkdown(settings))
+}
diff --git a/package.json b/package.json
index 695fed2..ecd4182 100644
--- a/package.json
+++ b/package.json
@@ -33,6 +33,7 @@
"main": "index.js",
"types": "index.d.ts",
"files": [
+ "lib/",
"index.d.ts",
"index.js"
],