From 962d465946f0b067a73fbb38a58db2ef0f4331f5 Mon Sep 17 00:00:00 2001 From: stephansama Date: Fri, 15 May 2026 19:18:37 -0400 Subject: [PATCH 01/15] docs(config): add badges to readme files --- .config/.cspell.json | 2 + .config/www/README.md | 0 README.md | 16 +++- core/ai-commit-msg/README.md | 9 +++ core/astro-iconify-svgmap/README.md | 9 +++ core/auto-readme/README.md | 56 +++++++++----- .../__snapshots__/tsnapi/schema.snapshot.d.ts | 25 +++++- .../__snapshots__/tsnapi/schema.snapshot.js | 1 + core/auto-readme/package.json | 6 +- core/auto-readme/src/color.ts | 10 +++ core/auto-readme/src/data.ts | 1 + core/auto-readme/src/icon.ts | 46 +++++++++++ core/auto-readme/src/plugin.ts | 69 +++++++++++++++++ core/auto-readme/src/schema.ts | 32 +++++++- core/catppuccin-xsl/README.md | 7 ++ core/eslint-config/README.md | 7 ++ core/example/README.md | 4 + core/prettier-plugin-handlebars/README.md | 46 +++++++++++ core/remark-asciinema/README.md | 76 +++++++++++++++++++ core/single-file/README.md | 7 ++ core/svelte-social-share-links/README.md | 9 +++ core/typed-env/README.md | 8 ++ core/typed-events/README.md | 10 ++- core/typed-nocodb-api/README.md | 6 ++ core/typed-templates/README.md | 8 ++ core/typed-templates/src/map.ts | 2 +- core/types-github-action-env/README.md | 4 + core/types-lhci/README.md | 6 ++ pnpm-lock.yaml | 43 +++++++++-- pnpm-workspace.yaml | 10 ++- 30 files changed, 493 insertions(+), 42 deletions(-) create mode 100644 .config/www/README.md create mode 100644 core/auto-readme/src/color.ts create mode 100644 core/auto-readme/src/icon.ts diff --git a/.config/.cspell.json b/.config/.cspell.json index 349bba46..db7e4a88 100644 --- a/.config/.cspell.json +++ b/.config/.cspell.json @@ -42,12 +42,14 @@ "obug", "ollama", "packagejson", + "picospinner", "pkgs", "pnpx", "pomodoro", "randle", "rollup", "slidev", + "smol", "stackblitz", "stephan", "stephanrandle", diff --git a/.config/www/README.md b/.config/www/README.md new file mode 100644 index 00000000..e69de29b diff --git a/README.md b/README.md index b479cce6..17693e14 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,19 @@ # [`@stephansama`](https://github.com/stephansama/packages) packages -[![PNPM](https://img.shields.io/badge/PNPM-10.9-F69220.svg?logo=pnpm&logoColor=white&labelColor=F69220)](https://github.com/search?q=repo%3Astephansama%2Fnvim%20language%3Alua&type=code) -[![TypeScript](https://img.shields.io/badge/TypeScript-5.8.3-3178C6.svg?logo=typescript&logoColor=white&labelColor=3178C6)](https://github.com/search?q=repo%3Astephansama%2Fnvim%20language%3ATypeScript&type=code) -[![Turborepo](https://img.shields.io/badge/Turborepo-2.5.4-FF1E56.svg?logo=turborepo&logoColor=white&labelColor=FF1E56)](https://turborepo.com/) + + +[![@commitlint/cli](https://img.shields.io/badge/@commitlint/cli-catalog:commitlint-000000.svg?logo=commitlint&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@commitlint/cli) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) +[![eslint](https://img.shields.io/badge/eslint-catalog:eslint-4B32C3.svg?logo=eslint&logoColor=ffffff&labelColor=4B32C3)](https://npmx.dev/package/eslint) +[![knip](https://img.shields.io/badge/knip-catalog:-F56E0F.svg?logo=knip&logoColor=ffffff&labelColor=F56E0F)](https://npmx.dev/package/knip) +[![prettier](https://img.shields.io/badge/prettier-catalog:prettier-F7B93E.svg?logo=prettier&logoColor=ffffff&labelColor=F7B93E)](https://npmx.dev/package/prettier) +[![turbo](https://img.shields.io/badge/turbo-catalog:turbo-FF1E56.svg?logo=turborepo&logoColor=ffffff&labelColor=FF1E56)](https://npmx.dev/package/turbo) +[![typescript](https://img.shields.io/badge/typescript-catalog:-3178C6.svg?logo=typescript&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/typescript) +[![vitest](https://img.shields.io/badge/vitest-catalog:vitest-00FF74.svg?logo=vitest&logoColor=ffffff&labelColor=00FF74)](https://npmx.dev/package/vitest) +[![lefthook](https://img.shields.io/badge/lefthook-catalog:-FF1E1E.svg?logo=lefthook&logoColor=ffffff&labelColor=FF1E1E)](https://npmx.dev/package/lefthook) + + [![codecov](https://codecov.io/github/stephansama/packages/graph/badge.svg)](https://codecov.io/github/stephansama/packages) [![🦋 Changesets Release](https://github.com/stephansama/packages/actions/workflows/release.yml/badge.svg)](https://github.com/stephansama/packages/actions/workflows/release.yml) diff --git a/core/ai-commit-msg/README.md b/core/ai-commit-msg/README.md index a4cfea64..58b2f1f4 100644 --- a/core/ai-commit-msg/README.md +++ b/core/ai-commit-msg/README.md @@ -2,6 +2,15 @@ # [`@stephansama`](https://github.com/stephansama) / ai-commit-msg + + +[![@dotenvx/dotenvx](https://img.shields.io/badge/@dotenvx/dotenvx-catalog:-ECD53F.svg?logo=dotenv&logoColor=ffffff&labelColor=ECD53F)](https://npmx.dev/package/@dotenvx/dotenvx) +[![ai](https://img.shields.io/badge/ai-catalog:ai-000000.svg?logo=vercel&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/ai) +[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/ai-commit-msg) diff --git a/core/astro-iconify-svgmap/README.md b/core/astro-iconify-svgmap/README.md index 4d50ad54..f69abf5d 100644 --- a/core/astro-iconify-svgmap/README.md +++ b/core/astro-iconify-svgmap/README.md @@ -2,6 +2,15 @@ # [`@stephansama`](https://github.com/stephansama) / astro-iconify-svgmap + + +[![@iconify/types](https://img.shields.io/badge/@iconify/types-catalog:-026C9C.svg?logo=iconify&logoColor=ffffff&labelColor=026C9C)](https://npmx.dev/package/@iconify/types) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) +[![astro](https://img.shields.io/badge/astro-catalog:-BC52EE.svg?logo=astro&logoColor=ffffff&labelColor=BC52EE)](https://npmx.dev/package/astro) +[![vite](https://img.shields.io/badge/vite-catalog:-9135FF.svg?logo=vite&logoColor=ffffff&labelColor=9135FF)](https://npmx.dev/package/vite) + + + [![Source code](https://img.shields.io/badge/Source%20code-211F1F?style=flat&logo=github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/astro-iconify-svgmap) diff --git a/core/auto-readme/README.md b/core/auto-readme/README.md index ac75e281..d63a61c3 100644 --- a/core/auto-readme/README.md +++ b/core/auto-readme/README.md @@ -2,6 +2,16 @@ # [`@stephansama`](https://github.com/stephansama) / auto-readme + + +[![handlebars](https://img.shields.io/badge/handlebars-catalog:handlebars-000000.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/handlebars) +[![remark](https://img.shields.io/badge/remark-catalog:remark-000000.svg?logo=remark&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/remark) +[![yaml](https://img.shields.io/badge/yaml-catalog:-CB171E.svg?logo=yaml&logoColor=ffffff&labelColor=CB171E)](https://npmx.dev/package/yaml) +[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/auto-readme) @@ -181,30 +191,38 @@ _Enum, one of the following possible values:_ - `'USAGE'` - `'WORKSPACE'` - `'ZOD'` +- `'BADGE'` + +## BadgeDependencyTypeOptions + +_Array of `'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies'` items._ + +_Default value:_ `["dependencies","devDependencies"]` ## Config _Object containing the following properties:_ -| Property | Description | Type | Default | -| :-------------------------- | :---------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **`affectedRegexes`** (\*) | | `Array` | | -| **`collapseHeadings`** (\*) | | `Array` | | -| `defaultLanguage` | Default language to infer projects from | [Language](#language) | | -| `disableEmojis` | Whether or not to use emojis in markdown table headings | `boolean` | `false` | -| `disableMarkdownHeadings` | Whether or not to display markdown headings | `boolean` | `false` | -| `enablePrettier` | Whether or not to use prettier to format the files | `boolean` | `true` | -| `enableToc` | generate table of contents for readmes | `boolean` | `false` | -| `enableUsage` | Whether or not to enable usage plugin | `boolean` | `false` | -| `headings` | List of headings for different table outputs | _Object with dynamic keys of type_ [Actions](#actions) _and values of type_ `Array<'default' \| 'description' \| 'devDependency' \| 'downloads' \| 'name' \| 'private' \| 'required' \| 'version'>` (_optional_) | `{"ACTION":["name","required","default","description"],"PKG":["name","version","devDependency"],"USAGE":[],"WORKSPACE":["name","version","downloads","description"],"ZOD":[]}` | -| `onlyReadmes` | Whether or not to only traverse readmes | `boolean` | `true` | -| `onlyShowPublicPackages` | Only show public packages in workspaces | `boolean` | `false` | -| `removeScope` | Remove common workspace scope | `string` | `''` | -| `templates` | Handlebars templates used to fuel list and table generation | _Object with properties:_
  • `downloadImage`: `string`
  • `emojis`: `Record<'default' \| 'description' \| 'devDependency' \| 'downloads' \| 'name' \| 'private' \| 'required' \| 'version', string>` - Table heading emojis used when enabled
  • `registryUrl`: `string`
  • `versionImage`: `string`
| `{"downloadImage":"https://img.shields.io/npm/dw/{{name}}?labelColor=211F1F","emojis":{"default":"⚙️","description":"📝","devDependency":"💻","downloads":"📥","name":"🏷️","private":"🔒","required":"","version":""},"registryUrl":"https://www.npmjs.com/package/{{name}}","versionImage":"https://img.shields.io/npm/v/{{uri_name}}?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F"}` | -| `tocHeading` | Markdown heading used to generate table of contents | `string` | `'Table of contents'` | -| `usageFile` | Workspace level usage file | `string` | `''` | -| `usageHeading` | Markdown heading used to generate usage example | `string` | `'Usage'` | -| `verbose` | whether or not to display verbose logging | `boolean` | `false` | +| Property | Description | Type | Default | +| :-------------------------- | :---------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **`affectedRegexes`** (\*) | | `Array` | | +| `badgeOptions` | | _Object with properties:_
  • `dependencyTypes`: [BadgeDependencyTypeOptions](#badgedependencytypeoptions)
  • `templates`: `Array` - handlebar template strings where {{name}} / {{key}} and {{version}} / {{value}} represent the package
| `{"dependencyTypes":["dependencies","devDependencies"],"templates":[]}` | +| **`collapseHeadings`** (\*) | | `Array` | | +| `defaultLanguage` | Default language to infer projects from | [Language](#language) | | +| `disableEmojis` | Whether or not to use emojis in markdown table headings | `boolean` | `false` | +| `disableMarkdownHeadings` | Whether or not to display markdown headings | `boolean` | `false` | +| `enablePrettier` | Whether or not to use prettier to format the files | `boolean` | `true` | +| `enableToc` | generate table of contents for readmes | `boolean` | `false` | +| `enableUsage` | Whether or not to enable usage plugin | `boolean` | `false` | +| `headings` | List of headings for different table outputs | _Object with dynamic keys of type_ [Actions](#actions) _and values of type_ `Array<'default' \| 'description' \| 'devDependency' \| 'downloads' \| 'name' \| 'private' \| 'required' \| 'version'>` (_optional_) | `{"ACTION":["name","required","default","description"],"BADGE":[],"PKG":["name","version","devDependency"],"USAGE":[],"WORKSPACE":["name","version","downloads","description"],"ZOD":[]}` | +| `onlyReadmes` | Whether or not to only traverse readmes | `boolean` | `true` | +| `onlyShowPublicPackages` | Only show public packages in workspaces | `boolean` | `false` | +| `removeScope` | Remove common workspace scope | `string` | `''` | +| `templates` | Handlebars templates used to fuel list and table generation | _Object with properties:_
  • `downloadImage`: `string`
  • `emojis`: `Record<'default' \| 'description' \| 'devDependency' \| 'downloads' \| 'name' \| 'private' \| 'required' \| 'version', string>` - Table heading emojis used when enabled
  • `registryUrl`: `string`
  • `versionImage`: `string`
| `{"downloadImage":"https://img.shields.io/npm/dw/{{name}}?labelColor=211F1F","emojis":{"default":"⚙️","description":"📝","devDependency":"💻","downloads":"📥","name":"🏷️","private":"🔒","required":"","version":""},"registryUrl":"https://www.npmx.dev/package/{{name}}","versionImage":"https://img.shields.io/npm/v/{{uri_name}}?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F"}` | +| `tocHeading` | Markdown heading used to generate table of contents | `string` | `'Table of contents'` | +| `usageFile` | Workspace level usage file | `string` | `''` | +| `usageHeading` | Markdown heading used to generate usage example | `string` | `'Usage'` | +| `verbose` | whether or not to display verbose logging | `boolean` | `false` | _(\*) Required._ (_optional_) diff --git a/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts b/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts index a43534c7..e5a7d861 100644 --- a/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts +++ b/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts @@ -12,9 +12,25 @@ export declare const actionsSchema: z.ZodEnum<{ USAGE: "USAGE"; WORKSPACE: "WORKSPACE"; ZOD: "ZOD"; + BADGE: "BADGE"; }>; +export declare const badgeDependencyTypeOptionsSchema: z.ZodDefault>>; export declare const configSchema: z.ZodOptional; + badgeOptions: z.ZodDefault>>; + templates: z.ZodDefault>; + }, z.core.$strip>>; collapseHeadings: z.ZodArray; defaultLanguage: z.ZodDefault, z.ZodOptional; emojis: z.ZodDefault; verbose: z.ZodDefault; }, z.core.$strip>>; -export declare const defaultTableHeadings: Record<"ACTION" | "PKG" | "USAGE" | "WORKSPACE" | "ZOD", ("description" | "default" | "devDependency" | "downloads" | "name" | "private" | "required" | "version")[] | undefined>; +export declare const defaultTableHeadings: Record<"ACTION" | "PKG" | "USAGE" | "WORKSPACE" | "ZOD" | "BADGE", ("default" | "description" | "devDependency" | "downloads" | "name" | "private" | "required" | "version")[] | undefined>; export declare const defaultTemplates: { downloadImage: string; - emojis: Record<"description" | "default" | "devDependency" | "downloads" | "name" | "private" | "required" | "version", string>; + emojis: Record<"default" | "description" | "devDependency" | "downloads" | "name" | "private" | "required" | "version", string>; registryUrl: string; versionImage: string; }; diff --git a/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.js b/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.js index 0ef1e414..1bb7e604 100644 --- a/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.js +++ b/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.js @@ -3,6 +3,7 @@ */ // #region Variables export var actionsSchema /* const */ +export var badgeDependencyTypeOptionsSchema /* const */ export var configSchema /* const */ export var defaultTableHeadings /* const */ export var defaultTemplates /* const */ diff --git a/core/auto-readme/package.json b/core/auto-readme/package.json index 2ce222a1..ecabf7bc 100644 --- a/core/auto-readme/package.json +++ b/core/auto-readme/package.json @@ -53,22 +53,27 @@ "lint:fix": "eslint ./src/ --pass-on-no-patterns --no-error-on-unmatched-pattern --fix" }, "dependencies": { + "@manypkg/find-root": "catalog:manypkg", "@manypkg/get-packages": "catalog:manypkg", + "colord": "catalog:", "cosmiconfig": "catalog:cli", "deepmerge": "catalog:", "handlebars": "catalog:handlebars", + "local-pkg": "catalog:", "markdown-table": "catalog:", "mdast": "catalog:", "mdast-comment-marker": "catalog:", "mdast-util-from-markdown": "catalog:", "mdast-zone": "catalog:", "obug": "catalog:cli", + "picospinner": "catalog:cli", "pkg-types": "catalog:", "remark": "catalog:remark", "remark-code-import": "catalog:remark", "remark-collapse": "catalog:remark", "remark-toc": "catalog:remark", "remark-usage": "catalog:remark", + "simple-icons": "catalog:", "smol-toml": "catalog:", "tinyglobby": "catalog:", "vfile": "catalog:", @@ -82,7 +87,6 @@ "@types/mdast": "catalog:", "@types/vfile": "catalog:", "@types/yargs": "catalog:", - "picospinner": "catalog:cli", "tsdown": "catalog:", "unified": "catalog:" }, diff --git a/core/auto-readme/src/color.ts b/core/auto-readme/src/color.ts new file mode 100644 index 00000000..2c77cddc --- /dev/null +++ b/core/auto-readme/src/color.ts @@ -0,0 +1,10 @@ +import { colord, extend } from "colord"; +import a11yPlugin from "colord/plugins/a11y"; + +extend([a11yPlugin]); + +export function getContrastText(color: string) { + return colord(color).contrast("#ffffff") > colord(color).contrast("#000000") + ? "ffffff" + : "000000"; +} diff --git a/core/auto-readme/src/data.ts b/core/auto-readme/src/data.ts index e172d9cf..34293e7b 100644 --- a/core/auto-readme/src/data.ts +++ b/core/auto-readme/src/data.ts @@ -50,6 +50,7 @@ export async function loadActionData( }; } + case "BADGE": case "PKG": { const inputPath = find("path"); const filename = inputPath diff --git a/core/auto-readme/src/icon.ts b/core/auto-readme/src/icon.ts new file mode 100644 index 00000000..f4299507 --- /dev/null +++ b/core/auto-readme/src/icon.ts @@ -0,0 +1,46 @@ +import * as icons from "simple-icons"; + +import { INFO } from "./log"; + +const alternateNames = { + "@commitlint/cli": "commitlint", + "@dotenvx/dotenvx": "dotenv", + "@iconify/types": "iconify", + "@tanstack/intent": "tanstack", + "ai": "vercel", + "c#": "sharp", + "dockerfile": "docker", + "handlebars": "handlebarsdotjs", + "html": "html5", + "java": "oracle", + "jupyter notebook": "jupyter", + "liquid": "shopify", + "makefile": "cmake", + /* cspell:disable-next-line */ + "next": "nextdotjs", + /* cspell:disable-next-line */ + "nuxt": "nuxtdotjs", + "oxc-parser": "oxc", + "scss": "sass", + "turbo": "turborepo", + /* cspell:disable-next-line */ + "vue": "vuedotjs", +} as const; + +export function createSlugName(iconName: string) { + iconName = iconName.toLowerCase(); + if (isAlternateName(iconName)) return alternateNames[iconName]; + return iconName.replaceAll("+", "plus").replaceAll("#", "sharp"); +} + +export function getSimpleIconColor(slug: string) { + INFO(`checking ${slug} for simple icon color`); + + return icons[ + `si${slug.at(0)?.toUpperCase()}${slug.slice(1)}` as keyof typeof icons + ]?.hex.replace("#", ""); +} + +function isAlternateName(name: unknown): name is keyof typeof alternateNames { + return Object.keys(alternateNames).includes(name as string); +} diff --git a/core/auto-readme/src/plugin.ts b/core/auto-readme/src/plugin.ts index 1079fa54..3755bf6f 100644 --- a/core/auto-readme/src/plugin.ts +++ b/core/auto-readme/src/plugin.ts @@ -10,7 +10,10 @@ import path from "node:path"; import type { ActionData } from "./data"; import type { Config } from "./schema"; +import { getContrastText } from "./color"; import { parseComment } from "./comment"; +import { createSlugName, getSimpleIconColor } from "./icon"; +import { INFO } from "./log"; import { defaultTableHeadings, defaultTemplates } from "./schema"; type TemplateContext = { @@ -46,6 +49,72 @@ export const autoReadmeRemarkPlugin: Plugin<[Config, ActionData], Root> = return [start, ast, end]; }); + zone(tree, /.*BADGE.*/gi, function (start, _, end) { + const value = start.type === "html" && start.value; + const options = value && parseComment(value); + if (!options) throw new Error("not able to parse comment"); + + INFO("found badge zone"); + + const first = data.find((d) => d?.action === "BADGE"); + console.log(first, config.badgeOptions?.dependencyTypes); + const dependencyTypes = config.badgeOptions?.dependencyTypes || [ + "dependencies", + "devDependencies", + ]; + + const allDependencies = Object.assign< + Record, + Record + >( + {}, + // @ts-expect-error no error + ...dependencyTypes.map( + (dependencyType) => first?.pkgJson?.[dependencyType] || {}, + ), + ); + + const templateBadges = + config.badgeOptions?.templates.map((template) => { + const compiled = + Handlebars.compile< + Partial< + Record< + "key" | "name" | "value" | "version", + string + > + > + >(template); + return compiled({ + name: first?.pkgJson?.name, + version: first?.pkgJson?.version, + }); + }) || []; + + const packageBadges = new Array(); + const md = String.raw; + + INFO(JSON.stringify(allDependencies, undefined, 2)); + + for (const [key, value] of Object.entries(allDependencies)) { + const slug = createSlugName(key); + const color = getSimpleIconColor(slug); + if (!color) continue; + const contrastText = getContrastText(color); + const linkUrl = `https://npmx.dev/package/${key}`; + const imageUrl = `https://img.shields.io/badge/${key}-${value}-${color}.svg?logo=${slug}&logoColor=${contrastText}&labelColor=${color}`; + packageBadges.push(md`[![${key}](${imageUrl})](${linkUrl})`); + } + + const ast = fromMarkdown( + [templateBadges.join("\n"), packageBadges.join("\n")].join( + "\n\n", + ), + ); + + return [start, ast, end]; + }); + zone(tree, /.*ACTION.*/gi, function (start, _, end) { const value = start.type === "html" && start.value; const options = value && parseComment(value); diff --git a/core/auto-readme/src/schema.ts b/core/auto-readme/src/schema.ts index 278e0fba..3f40d1d4 100644 --- a/core/auto-readme/src/schema.ts +++ b/core/auto-readme/src/schema.ts @@ -1,7 +1,7 @@ import * as z from "zod"; export const actionsSchema = z - .enum(["ACTION", "PKG", "USAGE", "WORKSPACE", "ZOD"]) + .enum(["ACTION", "PKG", "USAGE", "WORKSPACE", "ZOD", "BADGE"]) .meta({ description: "Comment action options", }); @@ -29,6 +29,7 @@ const tableHeadingsSchema = z .record(actionsSchema, headingsSchema.array().optional()) .default({ ACTION: ["name", "required", "default", "description"], + BADGE: [], PKG: ["name", "version", "devDependency"], USAGE: [], WORKSPACE: ["name", "version", "downloads", "description"], @@ -57,7 +58,7 @@ const templatesSchema = z.object({ registryUrl: z .string() .trim() - .default("https://www.npmjs.com/package/{{name}}"), + .default("https://www.npmx.dev/package/{{name}}"), versionImage: z .string() .trim() @@ -72,8 +73,35 @@ export const defaultTemplates = templatesSchema.parse({}); // eslint-disable-next-line unicorn/no-useless-undefined export const defaultTableHeadings = tableHeadingsSchema.parse(undefined); +export const badgeDependencyTypeOptionsSchema = z + .array( + z.enum([ + "dependencies", + "devDependencies", + "peerDependencies", + "optionalDependencies", + ]), + ) + .default(["dependencies", "devDependencies"]); + +const badgeTemplateSchema = z.array(z.string().trim()).default([]).meta({ + description: + "handlebar template strings where {{name}} / {{key}} and {{version}} / {{value}} represent the package", +}); + const _configSchema = z.object({ affectedRegexes: z.array(z.string().trim()), + badgeOptions: z + .object({ + dependencyTypes: badgeDependencyTypeOptionsSchema, + templates: badgeTemplateSchema, + }) + .default({ + /* eslint-disable-next-line unicorn/no-useless-undefined */ + dependencyTypes: badgeDependencyTypeOptionsSchema.parse(undefined), + /* eslint-disable-next-line unicorn/no-useless-undefined */ + templates: badgeTemplateSchema.parse(undefined), + }), collapseHeadings: z.array(z.string().trim()), defaultLanguage: languageSchema.meta({ alias: "l", diff --git a/core/catppuccin-xsl/README.md b/core/catppuccin-xsl/README.md index 2bd24c8b..cb487e20 100644 --- a/core/catppuccin-xsl/README.md +++ b/core/catppuccin-xsl/README.md @@ -2,6 +2,13 @@ # [`@stephansama`](https://github.com/stephansama) / catppuccin-xsl + + +[![handlebars](https://img.shields.io/badge/handlebars-catalog:handlebars-000000.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/handlebars) +[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-xsl) diff --git a/core/eslint-config/README.md b/core/eslint-config/README.md index ecabc045..ee093d62 100644 --- a/core/eslint-config/README.md +++ b/core/eslint-config/README.md @@ -2,6 +2,13 @@ # [`@stephansama`](https://github.com/stephansama) / eslint-config + + +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) +[![eslint](https://img.shields.io/badge/eslint-catalog:eslint-4B32C3.svg?logo=eslint&logoColor=ffffff&labelColor=4B32C3)](https://npmx.dev/package/eslint) + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/eslint-config) diff --git a/core/example/README.md b/core/example/README.md index ca34f4dc..e9578010 100644 --- a/core/example/README.md +++ b/core/example/README.md @@ -2,6 +2,10 @@ # [`@stephansama`](https://github.com/stephansama) / example cli + + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/example) diff --git a/core/prettier-plugin-handlebars/README.md b/core/prettier-plugin-handlebars/README.md index e69de29b..e3cd63dc 100644 --- a/core/prettier-plugin-handlebars/README.md +++ b/core/prettier-plugin-handlebars/README.md @@ -0,0 +1,46 @@ +
+ +# @stephansama/prettier-plugin-handlebars + + + +[![prettier](https://img.shields.io/badge/prettier-catalog:prettier-F7B93E.svg?logo=prettier&logoColor=ffffff&labelColor=F7B93E)](https://npmx.dev/package/prettier) + + + +
+ +[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/prettier-plugin-handlebars) +[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/prettier-plugin-handlebars) +[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fprettier-plugin-handlebars?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/prettier-plugin-handlebars) +[![JSR](https://jsr.io/badges/@stephansama/prettier-plugin-handlebars)](https://jsr.io/@stephansama/prettier-plugin-handlebars) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/prettier-plugin-handlebars)](https://socket.dev/npm/package/@stephansama/prettier-plugin-handlebars/overview) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/prettier-plugin-handlebars?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/prettier-plugin-handlebars) + +Prettier plugin that automatically assigns the default parser for various handlebars files + +##### Table of contents + +
Open Table of contents + +- [Installation](#installation) +- [Usage](#usage) + +
+ +## Installation + +```sh +pnpm install @stephansama/prettier-plugin-handlebars +``` + +## Usage + +```javascript +import prettierPluginHandlebars from "../dist/index.mjs"; + +/** @type {import("prettier").Config} */ +export default { + plugins: [prettierPluginHandlebars], +}; +``` diff --git a/core/remark-asciinema/README.md b/core/remark-asciinema/README.md index e69de29b..f951a241 100644 --- a/core/remark-asciinema/README.md +++ b/core/remark-asciinema/README.md @@ -0,0 +1,76 @@ +
+ +# [`@stephansama`](https://github.com/stephansama) remark-asciinema + + + +[![remark](https://img.shields.io/badge/remark-catalog:remark-000000.svg?logo=remark&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/remark) + + + +
+ +[![Source code](https://img.shields.io/badge/Source%20code-211F1F?style=flat&logo=github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/remark-asciinema) +[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/remark-asciinema) +[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fremark-asciinema?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/remark-asciinema) +[![JSR](https://jsr.io/badges/@stephansama/remark-asciinema)](https://jsr.io/@stephansama/remark-asciinema) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/remark-asciinema)](https://socket.dev/npm/package/@stephansama/remark-asciinema/overview) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/remark-asciinema?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/remark-asciinema) + +A [remark](https://github.com/remarkjs/remark) plugin that transforms asciinema links into either an embedded [asciinema](https://docs.asciinema.org/manual/player/) player or screenshot that links to the recording. + +## Features + +- 🪄 Automatically converts asciinema links into: + - ` +``` + +## Installation + +```bash +pnpm install @stephansama/remark-asciinema +``` + +## Usage + +```javascript +import { remark } from "remark"; + +import asciinema from "../dist/index.mjs"; + +export async function pipeline() { + const file = await remark() + .use(asciinema, { embedType: "script" }) + .process("Check out: https://asciinema.org/a/abc123"); + + console.info(String(file)); +} +``` + +## Additional notes + +**Note**: After integrating the Remark plugin, ensure you include the necessary asciinema JavaScript and CSS files to enable proper playback and styling. You can load them via [UNPKG](https://unpkg.com/): + +- +- diff --git a/core/single-file/README.md b/core/single-file/README.md index 4aafa045..92b56fb1 100644 --- a/core/single-file/README.md +++ b/core/single-file/README.md @@ -2,6 +2,13 @@ # [`@stephansama`](https://github.com/stephansama) / single-file + + +[![cheerio](https://img.shields.io/badge/cheerio-catalog:-E88C1F.svg?logo=cheerio&logoColor=ffffff&labelColor=E88C1F)](https://npmx.dev/package/cheerio) +[![oxc-parser](https://img.shields.io/badge/oxc-parser-catalog:-00F7F1.svg?logo=oxc&logoColor=ffffff&labelColor=00F7F1)](https://npmx.dev/package/oxc-parser) + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/single-file) diff --git a/core/svelte-social-share-links/README.md b/core/svelte-social-share-links/README.md index 66c85ff4..5ca45cb7 100644 --- a/core/svelte-social-share-links/README.md +++ b/core/svelte-social-share-links/README.md @@ -2,6 +2,15 @@ # [`@stephansama`](https://github.com/stephansama) / svelte-social-share-links + + +[![storybook](https://img.shields.io/badge/storybook-catalog:storybook-FF4785.svg?logo=storybook&logoColor=ffffff&labelColor=FF4785)](https://npmx.dev/package/storybook) +[![svelte](https://img.shields.io/badge/svelte-catalog:svelte-FF3E00.svg?logo=svelte&logoColor=ffffff&labelColor=FF3E00)](https://npmx.dev/package/svelte) +[![typescript](https://img.shields.io/badge/typescript-catalog:-3178C6.svg?logo=typescript&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/typescript) +[![vite](https://img.shields.io/badge/vite-catalog:-9135FF.svg?logo=vite&logoColor=ffffff&labelColor=9135FF)](https://npmx.dev/package/vite) + + + [![Source code](https://img.shields.io/badge/Source%20code-211F1F?style=flat&logo=github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/svelte-social-share-links) diff --git a/core/typed-env/README.md b/core/typed-env/README.md index 915b04a0..5a340ab7 100644 --- a/core/typed-env/README.md +++ b/core/typed-env/README.md @@ -2,6 +2,14 @@ # [`@stephansama`](https://github.com/stephansama) / typed-env + + +[![@dotenvx/dotenvx](https://img.shields.io/badge/@dotenvx/dotenvx-catalog:-ECD53F.svg?logo=dotenv&logoColor=ffffff&labelColor=ECD53F)](https://npmx.dev/package/@dotenvx/dotenvx) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) +[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-env) diff --git a/core/typed-events/README.md b/core/typed-events/README.md index 10519a0b..0ac1acc4 100644 --- a/core/typed-events/README.md +++ b/core/typed-events/README.md @@ -2,7 +2,13 @@ # [`@stephansama`](https://github.com/stephansama) / typed-events - + + +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) +[![react](https://img.shields.io/badge/react-catalog:-61DAFB.svg?logo=react&logoColor=ffffff&labelColor=61DAFB)](https://npmx.dev/package/react) +[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-events) [![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-events) @@ -11,6 +17,8 @@ [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-events)](https://socket.dev/npm/package/@stephansama/typed-events/overview) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/typed-events?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-events) + + Typed events store using standard schema ##### Table of contents diff --git a/core/typed-nocodb-api/README.md b/core/typed-nocodb-api/README.md index e496352e..580b7b83 100644 --- a/core/typed-nocodb-api/README.md +++ b/core/typed-nocodb-api/README.md @@ -2,6 +2,12 @@ # [`@stephansama`](https://github.com/stephansama) / typed-nocodb-api + + +[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-nocodb-api) diff --git a/core/typed-templates/README.md b/core/typed-templates/README.md index ac67affd..8acd8529 100644 --- a/core/typed-templates/README.md +++ b/core/typed-templates/README.md @@ -2,6 +2,14 @@ # [`@stephansama`](https://github.com/stephansama) / typed-templates + + +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) +[![handlebars](https://img.shields.io/badge/handlebars-catalog:handlebars-000000.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/handlebars) +[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-templates) diff --git a/core/typed-templates/src/map.ts b/core/typed-templates/src/map.ts index 29c88abe..0c37001d 100644 --- a/core/typed-templates/src/map.ts +++ b/core/typed-templates/src/map.ts @@ -51,7 +51,7 @@ export function createHandlebarSchemaMap< path.resolve(options.templateDirectory, map[template].path), "utf8", ); - const compiled = Handlebars.compile(file); + const compiled = Handlebars.compile(file); const schema = map[template].schema; diff --git a/core/types-github-action-env/README.md b/core/types-github-action-env/README.md index 96497310..4f96dd16 100644 --- a/core/types-github-action-env/README.md +++ b/core/types-github-action-env/README.md @@ -2,6 +2,10 @@ # [`@stephansama`](https://github.com/stephansama) / types-github-action-env + + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/github-env) diff --git a/core/types-lhci/README.md b/core/types-lhci/README.md index 897c35d6..2d461b37 100644 --- a/core/types-lhci/README.md +++ b/core/types-lhci/README.md @@ -2,6 +2,12 @@ # [`@stephansama`](https://github.com/stephansama) / types-lhci + + +[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) + + + [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/types-lhci) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf9e5889..14ba433a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,7 +49,7 @@ catalogs: specifier: 1.1.0 version: 1.1.0 '@arethetypeswrong/core': - specifier: ^0.18.2 + specifier: 0.18.2 version: 0.18.2 '@bluwy/giget-core': specifier: 0.1.6 @@ -123,6 +123,9 @@ catalogs: cheerio: specifier: 1.2.0 version: 1.2.0 + colord: + specifier: 2.9.3 + version: 2.9.3 dedent: specifier: 1.7.2 version: 1.7.2 @@ -207,6 +210,9 @@ catalogs: react: specifier: 19.2.0 version: 19.2.0 + simple-icons: + specifier: 16.19.0 + version: 16.19.0 smol-toml: specifier: 1.6.1 version: 1.6.1 @@ -393,13 +399,13 @@ catalogs: version: 2.1.1 pnpm: '@pnpm/hooks.pnpmfile': - specifier: ^1100.0.8 + specifier: 1100.0.8 version: 1100.0.8 '@pnpm/lockfile.types': - specifier: ^1100.0.5 + specifier: 1100.0.5 version: 1100.0.5 '@pnpm/types': - specifier: ^1101.1.0 + specifier: 1101.1.0 version: 1101.1.0 prettier: prettier: @@ -800,9 +806,15 @@ importers: core/auto-readme: dependencies: + '@manypkg/find-root': + specifier: catalog:manypkg + version: 3.1.0 '@manypkg/get-packages': specifier: catalog:manypkg version: 3.1.0 + colord: + specifier: 'catalog:' + version: 2.9.3 cosmiconfig: specifier: catalog:cli version: 9.0.0(typescript@5.9.3) @@ -812,6 +824,9 @@ importers: handlebars: specifier: catalog:handlebars version: 4.7.9 + local-pkg: + specifier: 'catalog:' + version: 1.1.2 markdown-table: specifier: 'catalog:' version: 3.0.4 @@ -830,6 +845,9 @@ importers: obug: specifier: catalog:cli version: 2.1.1 + picospinner: + specifier: catalog:cli + version: 3.0.0 pkg-types: specifier: 'catalog:' version: 2.3.0 @@ -848,6 +866,9 @@ importers: remark-usage: specifier: catalog:remark version: 11.0.1 + simple-icons: + specifier: 'catalog:' + version: 16.19.0 smol-toml: specifier: 'catalog:' version: 1.6.1 @@ -882,9 +903,6 @@ importers: '@types/yargs': specifier: 'catalog:' version: 17.0.35 - picospinner: - specifier: catalog:cli - version: 3.0.0 tsdown: specifier: 'catalog:' version: 0.21.10(@arethetypeswrong/core@0.18.2)(oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0))(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3) @@ -6198,6 +6216,9 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -10575,6 +10596,10 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-icons@16.19.0: + resolution: {integrity: sha512-muxcz/FDvWFPrKJdsjaz79qsBjtZeVKUVIFl7wLVOwb+yqAag8FPe8+hFlMVRnmAXYQIm4eUDDm2+dhOj0cFgQ==} + engines: {node: '>=0.12.18'} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -17139,6 +17164,8 @@ snapshots: color-string: 1.9.1 optional: true + colord@2.9.3: {} + comma-separated-tokens@2.0.3: {} commander@10.0.1: {} @@ -22534,6 +22561,8 @@ snapshots: signal-exit@4.1.0: {} + simple-icons@16.19.0: {} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d480a662..5ba24629 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -15,7 +15,7 @@ autoInstallPeers: true catalog: '@antfu/install-pkg': 1.1.0 - '@arethetypeswrong/core': ^0.18.2 + '@arethetypeswrong/core': 0.18.2 '@bluwy/giget-core': 0.1.6 '@catppuccin/palette': 1.7.1 '@catppuccin/tailwindcss': 1.0.0 @@ -40,6 +40,7 @@ catalog: alfy: 2.1.0 astro: 5.9.3 cheerio: 1.2.0 + colord: 2.9.3 dedent: 1.7.2 deepmerge: 4.3.1 es-toolkit: 1.43.0 @@ -68,6 +69,7 @@ catalog: pkg-types: 2.3.0 publint: 0.3.17 react: 19.2.0 + simple-icons: 16.19.0 smol-toml: 1.6.1 tailwind-scrollbar: 4.0.2 tailwindcss: 4.1.18 @@ -152,9 +154,9 @@ catalogs: '@manypkg/get-packages': *manypkg '@manypkg/tools': 2.1.1 pnpm: - '@pnpm/hooks.pnpmfile': ^1100.0.8 - '@pnpm/lockfile.types': ^1100.0.5 - '@pnpm/types': ^1101.1.0 + '@pnpm/hooks.pnpmfile': 1100.0.8 + '@pnpm/lockfile.types': 1100.0.5 + '@pnpm/types': 1101.1.0 prettier: prettier: 3.8.1 prettier-plugin-astro: 0.14.1 From a601345ebbef2e0ee61758ffef25d54708ec6b58 Mon Sep 17 00:00:00 2001 From: stephansama Date: Fri, 15 May 2026 19:32:35 -0400 Subject: [PATCH 02/15] fix(core): update badge key formatting in image url --- .../__snapshots__/tsnapi/schema.snapshot.d.ts | 8 ++++---- core/auto-readme/src/icon.ts | 11 ++++++++++- core/auto-readme/src/plugin.ts | 4 ++-- core/single-file/README.md | 2 +- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts b/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts index e5a7d861..31868ab5 100644 --- a/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts +++ b/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts @@ -49,8 +49,8 @@ export declare const configSchema: z.ZodOptional, z.ZodOptional; emojis: z.ZodDefault; verbose: z.ZodDefault; }, z.core.$strip>>; -export declare const defaultTableHeadings: Record<"ACTION" | "PKG" | "USAGE" | "WORKSPACE" | "ZOD" | "BADGE", ("default" | "description" | "devDependency" | "downloads" | "name" | "private" | "required" | "version")[] | undefined>; +export declare const defaultTableHeadings: Record<"ACTION" | "PKG" | "USAGE" | "WORKSPACE" | "ZOD" | "BADGE", ("description" | "default" | "devDependency" | "downloads" | "name" | "private" | "required" | "version")[] | undefined>; export declare const defaultTemplates: { downloadImage: string; - emojis: Record<"default" | "description" | "devDependency" | "downloads" | "name" | "private" | "required" | "version", string>; + emojis: Record<"description" | "default" | "devDependency" | "downloads" | "name" | "private" | "required" | "version", string>; registryUrl: string; versionImage: string; }; diff --git a/core/auto-readme/src/icon.ts b/core/auto-readme/src/icon.ts index f4299507..e1a26f92 100644 --- a/core/auto-readme/src/icon.ts +++ b/core/auto-readme/src/icon.ts @@ -36,11 +36,20 @@ export function createSlugName(iconName: string) { export function getSimpleIconColor(slug: string) { INFO(`checking ${slug} for simple icon color`); + const capitalizedSlug = slug + .split("-") + .map((word) => capitalize(word)) + .join(""); + return icons[ - `si${slug.at(0)?.toUpperCase()}${slug.slice(1)}` as keyof typeof icons + `si${capitalize(capitalizedSlug)}` as keyof typeof icons ]?.hex.replace("#", ""); } +function capitalize(word: string) { + return word.at(0)?.toUpperCase() + word.slice(1); +} + function isAlternateName(name: unknown): name is keyof typeof alternateNames { return Object.keys(alternateNames).includes(name as string); } diff --git a/core/auto-readme/src/plugin.ts b/core/auto-readme/src/plugin.ts index 3755bf6f..977ecb4a 100644 --- a/core/auto-readme/src/plugin.ts +++ b/core/auto-readme/src/plugin.ts @@ -57,7 +57,6 @@ export const autoReadmeRemarkPlugin: Plugin<[Config, ActionData], Root> = INFO("found badge zone"); const first = data.find((d) => d?.action === "BADGE"); - console.log(first, config.badgeOptions?.dependencyTypes); const dependencyTypes = config.badgeOptions?.dependencyTypes || [ "dependencies", "devDependencies", @@ -102,7 +101,8 @@ export const autoReadmeRemarkPlugin: Plugin<[Config, ActionData], Root> = if (!color) continue; const contrastText = getContrastText(color); const linkUrl = `https://npmx.dev/package/${key}`; - const imageUrl = `https://img.shields.io/badge/${key}-${value}-${color}.svg?logo=${slug}&logoColor=${contrastText}&labelColor=${color}`; + const badgeKey = key.replaceAll("-", "--").replace("_", "__"); + const imageUrl = `https://img.shields.io/badge/${badgeKey}-${value}-${color}.svg?logo=${slug}&logoColor=${contrastText}&labelColor=${color}`; packageBadges.push(md`[![${key}](${imageUrl})](${linkUrl})`); } diff --git a/core/single-file/README.md b/core/single-file/README.md index 92b56fb1..4d096461 100644 --- a/core/single-file/README.md +++ b/core/single-file/README.md @@ -5,7 +5,7 @@ [![cheerio](https://img.shields.io/badge/cheerio-catalog:-E88C1F.svg?logo=cheerio&logoColor=ffffff&labelColor=E88C1F)](https://npmx.dev/package/cheerio) -[![oxc-parser](https://img.shields.io/badge/oxc-parser-catalog:-00F7F1.svg?logo=oxc&logoColor=ffffff&labelColor=00F7F1)](https://npmx.dev/package/oxc-parser) +[![oxc-parser](https://img.shields.io/badge/oxc--parser-catalog:-00F7F1.svg?logo=oxc&logoColor=ffffff&labelColor=00F7F1)](https://npmx.dev/package/oxc-parser) From 4d32988e34646854ad2f05fd10c273595272a862 Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 10:12:08 -0400 Subject: [PATCH 03/15] docs(badge): update package versions in readme --- README.md | 18 +++---- core/ai-commit-msg/README.md | 9 ++-- core/astro-iconify-svgmap/README.md | 9 ++-- core/auto-readme/README.md | 13 ++--- core/auto-readme/src/data.ts | 5 +- core/auto-readme/src/icon.ts | 38 ++++++++++++-- core/auto-readme/src/plugin.ts | 17 +++++-- core/auto-readme/src/schema.ts | 2 +- core/auto-readme/src/utilities.ts | 61 +++++++++++++++++++++++ core/catppuccin-xsl/README.md | 4 +- core/eslint-config/README.md | 5 +- core/example/README.md | 2 + core/prettier-plugin-handlebars/README.md | 3 +- core/remark-asciinema/README.md | 3 +- core/single-file/README.md | 5 +- core/svelte-social-share-links/README.md | 8 +-- core/typed-env/README.md | 7 +-- core/typed-events/README.md | 7 +-- core/typed-nocodb-api/README.md | 3 +- core/typed-templates/README.md | 7 +-- core/types-lhci/README.md | 3 +- 21 files changed, 171 insertions(+), 58 deletions(-) diff --git a/README.md b/README.md index 17693e14..35bb3efc 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,15 @@ -[![@commitlint/cli](https://img.shields.io/badge/@commitlint/cli-catalog:commitlint-000000.svg?logo=commitlint&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@commitlint/cli) -[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) -[![eslint](https://img.shields.io/badge/eslint-catalog:eslint-4B32C3.svg?logo=eslint&logoColor=ffffff&labelColor=4B32C3)](https://npmx.dev/package/eslint) -[![knip](https://img.shields.io/badge/knip-catalog:-F56E0F.svg?logo=knip&logoColor=ffffff&labelColor=F56E0F)](https://npmx.dev/package/knip) -[![prettier](https://img.shields.io/badge/prettier-catalog:prettier-F7B93E.svg?logo=prettier&logoColor=ffffff&labelColor=F7B93E)](https://npmx.dev/package/prettier) -[![turbo](https://img.shields.io/badge/turbo-catalog:turbo-FF1E56.svg?logo=turborepo&logoColor=ffffff&labelColor=FF1E56)](https://npmx.dev/package/turbo) -[![typescript](https://img.shields.io/badge/typescript-catalog:-3178C6.svg?logo=typescript&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/typescript) -[![vitest](https://img.shields.io/badge/vitest-catalog:vitest-00FF74.svg?logo=vitest&logoColor=ffffff&labelColor=00FF74)](https://npmx.dev/package/vitest) -[![lefthook](https://img.shields.io/badge/lefthook-catalog:-FF1E1E.svg?logo=lefthook&logoColor=ffffff&labelColor=FF1E1E)](https://npmx.dev/package/lefthook) +[![@commitlint/cli](https://img.shields.io/badge/@commitlint/cli-19.8.1-000000.svg?logo=commitlint&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@commitlint/cli) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) +[![eslint](https://img.shields.io/badge/eslint-10.2.1-4B32C3.svg?logo=eslint&logoColor=ffffff&labelColor=4B32C3)](https://npmx.dev/package/eslint) +[![knip](https://img.shields.io/badge/knip-5.88.1-F56E0F.svg?logo=knip&logoColor=ffffff&labelColor=F56E0F)](https://npmx.dev/package/knip) +[![prettier](https://img.shields.io/badge/prettier-3.8.1-F7B93E.svg?logo=prettier&logoColor=ffffff&labelColor=F7B93E)](https://npmx.dev/package/prettier) +[![turbo](https://img.shields.io/badge/turbo-2.8.20-FF1E56.svg?logo=turborepo&logoColor=ffffff&labelColor=FF1E56)](https://npmx.dev/package/turbo) +[![typescript](https://img.shields.io/badge/typescript-5.9.3-3178C6.svg?logo=typescript&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/typescript) +[![vitest](https://img.shields.io/badge/vitest-4.0.18-00FF74.svg?logo=vitest&logoColor=ffffff&labelColor=00FF74)](https://npmx.dev/package/vitest) +[![lefthook](https://img.shields.io/badge/lefthook-2.1.6-FF1E1E.svg?logo=lefthook&logoColor=ffffff&labelColor=FF1E1E)](https://npmx.dev/package/lefthook) diff --git a/core/ai-commit-msg/README.md b/core/ai-commit-msg/README.md index 58b2f1f4..300443cc 100644 --- a/core/ai-commit-msg/README.md +++ b/core/ai-commit-msg/README.md @@ -4,10 +4,11 @@ -[![@dotenvx/dotenvx](https://img.shields.io/badge/@dotenvx/dotenvx-catalog:-ECD53F.svg?logo=dotenv&logoColor=ffffff&labelColor=ECD53F)](https://npmx.dev/package/@dotenvx/dotenvx) -[![ai](https://img.shields.io/badge/ai-catalog:ai-000000.svg?logo=vercel&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/ai) -[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) -[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) +[![@dotenvx/dotenvx](https://img.shields.io/badge/@dotenvx/dotenvx-1.52.0-ECD53F.svg?logo=dotenv&logoColor=ffffff&labelColor=ECD53F)](https://npmx.dev/package/@dotenvx/dotenvx) +[![ai](https://img.shields.io/badge/ai-6.0.86-000000.svg?logo=vercel&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/ai) +[![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) diff --git a/core/astro-iconify-svgmap/README.md b/core/astro-iconify-svgmap/README.md index f69abf5d..73dc8dc3 100644 --- a/core/astro-iconify-svgmap/README.md +++ b/core/astro-iconify-svgmap/README.md @@ -4,10 +4,11 @@ -[![@iconify/types](https://img.shields.io/badge/@iconify/types-catalog:-026C9C.svg?logo=iconify&logoColor=ffffff&labelColor=026C9C)](https://npmx.dev/package/@iconify/types) -[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) -[![astro](https://img.shields.io/badge/astro-catalog:-BC52EE.svg?logo=astro&logoColor=ffffff&labelColor=BC52EE)](https://npmx.dev/package/astro) -[![vite](https://img.shields.io/badge/vite-catalog:-9135FF.svg?logo=vite&logoColor=ffffff&labelColor=9135FF)](https://npmx.dev/package/vite) +[![@iconify/types](https://img.shields.io/badge/@iconify/types-2.0.0-026C9C.svg?logo=iconify&logoColor=ffffff&labelColor=026C9C)](https://npmx.dev/package/@iconify/types) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) +[![astro](https://img.shields.io/badge/astro-5.9.3-BC52EE.svg?logo=astro&logoColor=ffffff&labelColor=BC52EE)](https://npmx.dev/package/astro) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) +[![vite](https://img.shields.io/badge/vite-6.3.5-9135FF.svg?logo=vite&logoColor=ffffff&labelColor=9135FF)](https://npmx.dev/package/vite) diff --git a/core/auto-readme/README.md b/core/auto-readme/README.md index d63a61c3..10777b34 100644 --- a/core/auto-readme/README.md +++ b/core/auto-readme/README.md @@ -4,11 +4,12 @@ -[![handlebars](https://img.shields.io/badge/handlebars-catalog:handlebars-000000.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/handlebars) -[![remark](https://img.shields.io/badge/remark-catalog:remark-000000.svg?logo=remark&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/remark) -[![yaml](https://img.shields.io/badge/yaml-catalog:-CB171E.svg?logo=yaml&logoColor=ffffff&labelColor=CB171E)](https://npmx.dev/package/yaml) -[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) -[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) +[![handlebars](https://img.shields.io/badge/handlebars-4.7.9-d46926.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=d46926)](https://npmx.dev/package/handlebars) +[![remark](https://img.shields.io/badge/remark-15.0.1-000000.svg?logo=remark&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/remark) +[![yaml](https://img.shields.io/badge/yaml-2.8.2-CB171E.svg?logo=yaml&logoColor=ffffff&labelColor=CB171E)](https://npmx.dev/package/yaml) +[![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) @@ -206,7 +207,7 @@ _Object containing the following properties:_ | Property | Description | Type | Default | | :-------------------------- | :---------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **`affectedRegexes`** (\*) | | `Array` | | -| `badgeOptions` | | _Object with properties:_
  • `dependencyTypes`: [BadgeDependencyTypeOptions](#badgedependencytypeoptions)
  • `templates`: `Array` - handlebar template strings where {{name}} / {{key}} and {{version}} / {{value}} represent the package
| `{"dependencyTypes":["dependencies","devDependencies"],"templates":[]}` | +| `badgeOptions` | | _Object with properties:_
  • `dependencyTypes`: [BadgeDependencyTypeOptions](#badgedependencytypeoptions)
  • `templates`: `Array` - handlebar template strings where {{scope}}, {{name}} / {{key}} and {{version}} / {{value}} represent the package
| `{"dependencyTypes":["dependencies","devDependencies"],"templates":[]}` | | **`collapseHeadings`** (\*) | | `Array` | | | `defaultLanguage` | Default language to infer projects from | [Language](#language) | | | `disableEmojis` | Whether or not to use emojis in markdown table headings | `boolean` | `false` | diff --git a/core/auto-readme/src/data.ts b/core/auto-readme/src/data.ts index 34293e7b..1dcfd803 100644 --- a/core/auto-readme/src/data.ts +++ b/core/auto-readme/src/data.ts @@ -8,7 +8,7 @@ import { zod2md } from "zod2md"; import type { AstComments } from "./comment"; -import { fileExists } from "./utilities"; +import { fileExists, loadCatalogs } from "./utilities"; export type ActionData = Awaited>; @@ -57,8 +57,11 @@ export async function loadActionData( ? path.resolve(path.dirname(file), inputPath) : path.dirname(file); const pkgJson = await readPackageJSON(filename); + const catalogs = await loadCatalogs(); + console.log(catalogs); return { action: action.action, + catalogs: catalogs, parameters: action.parameters, pkgJson, }; diff --git a/core/auto-readme/src/icon.ts b/core/auto-readme/src/icon.ts index e1a26f92..e752ebc8 100644 --- a/core/auto-readme/src/icon.ts +++ b/core/auto-readme/src/icon.ts @@ -2,6 +2,20 @@ import * as icons from "simple-icons"; import { INFO } from "./log"; +const colorMapOverride = { + "@tanstack/ai": "#f6339a", + "@tanstack/devtools": "#62748e", + "@tanstack/hotkeys": "#ec003f", + "@tanstack/intent": "#00a6f4", + "@tanstack/start": "#00b8db", + "@tanstack/table-core": "#2b7fff", + "@tanstack/virtual": "#ad46ff", + "handlebars": "#d46926", + "tsdown": "#3178C6", +} as const satisfies Partial< + Record +>; + const alternateNames = { "@commitlint/cli": "commitlint", "@dotenvx/dotenvx": "dotenv", @@ -22,6 +36,7 @@ const alternateNames = { "nuxt": "nuxtdotjs", "oxc-parser": "oxc", "scss": "sass", + "tsdown": "rolldown", "turbo": "turborepo", /* cspell:disable-next-line */ "vue": "vuedotjs", @@ -33,17 +48,30 @@ export function createSlugName(iconName: string) { return iconName.replaceAll("+", "plus").replaceAll("#", "sharp"); } -export function getSimpleIconColor(slug: string) { - INFO(`checking ${slug} for simple icon color`); +export function getSimpleIconColor(name: string) { + INFO(`checking ${name} for simple icon color`); + + const slug = createSlugName(name); + + const colorOverride = colorMapOverride[ + name as keyof typeof colorMapOverride + ]?.replace("#", ""); + + if (colorOverride) { + return [colorOverride, slug]; + } const capitalizedSlug = slug .split("-") .map((word) => capitalize(word)) .join(""); - return icons[ - `si${capitalize(capitalizedSlug)}` as keyof typeof icons - ]?.hex.replace("#", ""); + return [ + icons[ + `si${capitalize(capitalizedSlug)}` as keyof typeof icons + ]?.hex.replace("#", ""), + slug, + ]; } function capitalize(word: string) { diff --git a/core/auto-readme/src/plugin.ts b/core/auto-readme/src/plugin.ts index 977ecb4a..7bea9d68 100644 --- a/core/auto-readme/src/plugin.ts +++ b/core/auto-readme/src/plugin.ts @@ -12,9 +12,10 @@ import type { Config } from "./schema"; import { getContrastText } from "./color"; import { parseComment } from "./comment"; -import { createSlugName, getSimpleIconColor } from "./icon"; +import { getSimpleIconColor } from "./icon"; import { INFO } from "./log"; import { defaultTableHeadings, defaultTemplates } from "./schema"; +import { resolveVersion } from "./utilities"; type TemplateContext = { name: string; @@ -95,14 +96,20 @@ export const autoReadmeRemarkPlugin: Plugin<[Config, ActionData], Root> = INFO(JSON.stringify(allDependencies, undefined, 2)); - for (const [key, value] of Object.entries(allDependencies)) { - const slug = createSlugName(key); - const color = getSimpleIconColor(slug); + for (const [key, version] of Object.entries(allDependencies)) { + const [color, slug] = getSimpleIconColor(key); if (!color) continue; + const contrastText = getContrastText(color); const linkUrl = `https://npmx.dev/package/${key}`; const badgeKey = key.replaceAll("-", "--").replace("_", "__"); - const imageUrl = `https://img.shields.io/badge/${badgeKey}-${value}-${color}.svg?logo=${slug}&logoColor=${contrastText}&labelColor=${color}`; + const imageUrl = `https://img.shields.io/badge/${badgeKey}-${resolveVersion( + { + catalogs: first?.catalogs, + name: key, + version, + }, + )}-${color}.svg?logo=${slug}&logoColor=${contrastText}&labelColor=${color}`; packageBadges.push(md`[![${key}](${imageUrl})](${linkUrl})`); } diff --git a/core/auto-readme/src/schema.ts b/core/auto-readme/src/schema.ts index 3f40d1d4..d6983ab4 100644 --- a/core/auto-readme/src/schema.ts +++ b/core/auto-readme/src/schema.ts @@ -86,7 +86,7 @@ export const badgeDependencyTypeOptionsSchema = z const badgeTemplateSchema = z.array(z.string().trim()).default([]).meta({ description: - "handlebar template strings where {{name}} / {{key}} and {{version}} / {{value}} represent the package", + "handlebar template strings where {{scope}}, {{name}} / {{key}} and {{version}} / {{value}} represent the package", }); const _configSchema = z.object({ diff --git a/core/auto-readme/src/utilities.ts b/core/auto-readme/src/utilities.ts index 69e99c4a..60ec66ec 100644 --- a/core/auto-readme/src/utilities.ts +++ b/core/auto-readme/src/utilities.ts @@ -1,8 +1,10 @@ +import { findRoot } from "@manypkg/find-root"; import * as cp from "node:child_process"; import * as fs from "node:fs"; import * as fsp from "node:fs/promises"; import path from "node:path"; import { glob } from "tinyglobby"; +import * as yaml from "yaml"; import type { Config } from "./schema"; @@ -22,6 +24,15 @@ const matches = [ /.*pnpm-workspace\.yaml$/gi, ]; +type BunWorkspace = { workspaces?: Workspace }; +type Catalog = Record; +type LoadedCatalogs = Awaited>; + +type Workspace = { + catalog: Catalog; + catalogs: Record; +}; + export async function fileExists(file: string) { return await fsp .access(file) @@ -99,6 +110,56 @@ export async function getPrettierPaths(paths: string[]) { ); } +export async function loadCatalogs() { + const { rootDir } = await findRoot(process.cwd()); + const pnpmWorkspacePath = path.join(rootDir, "pnpm-workspace.yaml"); + + if (fs.existsSync(pnpmWorkspacePath)) { + const file = await fs.promises.readFile(pnpmWorkspacePath, "utf8"); + const parsed = yaml.parse(file) as Workspace; + + return { + catalogs: parsed.catalogs, + default: parsed.catalog, + }; + } + + const rootJsonPath = path.join(rootDir, "package.json"); + const rootJsonFile = await fs.promises.readFile(rootJsonPath, "utf8"); + const rootPackageJson = JSON.parse(rootJsonFile) as BunWorkspace; + + return { + catalogs: rootPackageJson?.workspaces?.catalogs, + default: rootPackageJson?.workspaces?.catalog, + }; +} + +export function resolveVersion({ + catalogs, + name, + version, +}: { + catalogs?: LoadedCatalogs; + name: string; + version: string; +}) { + if (!version.startsWith("catalog:")) return version; + + if (!version.endsWith(":")) { + const catalogName = version.split(":").at(-1); + const pulled = + catalogs?.catalogs?.[ + catalogName as keyof typeof catalogs.catalogs + ]?.[name]; + if (pulled) return pulled; + } + + const defaultVersion = catalogs?.default?.[name]; + if (defaultVersion) return defaultVersion; + + return version; +} + function findNearestReadme( gitRoot: string, inputFile: string, diff --git a/core/catppuccin-xsl/README.md b/core/catppuccin-xsl/README.md index cb487e20..3d58aa5e 100644 --- a/core/catppuccin-xsl/README.md +++ b/core/catppuccin-xsl/README.md @@ -4,8 +4,8 @@ -[![handlebars](https://img.shields.io/badge/handlebars-catalog:handlebars-000000.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/handlebars) -[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![handlebars](https://img.shields.io/badge/handlebars-4.7.9-d46926.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=d46926)](https://npmx.dev/package/handlebars) +[![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) diff --git a/core/eslint-config/README.md b/core/eslint-config/README.md index ee093d62..f8542854 100644 --- a/core/eslint-config/README.md +++ b/core/eslint-config/README.md @@ -4,8 +4,9 @@ -[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) -[![eslint](https://img.shields.io/badge/eslint-catalog:eslint-4B32C3.svg?logo=eslint&logoColor=ffffff&labelColor=4B32C3)](https://npmx.dev/package/eslint) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) +[![eslint](https://img.shields.io/badge/eslint-10.2.1-4B32C3.svg?logo=eslint&logoColor=ffffff&labelColor=4B32C3)](https://npmx.dev/package/eslint) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) diff --git a/core/example/README.md b/core/example/README.md index e9578010..9e7488d5 100644 --- a/core/example/README.md +++ b/core/example/README.md @@ -4,6 +4,8 @@ +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) + diff --git a/core/prettier-plugin-handlebars/README.md b/core/prettier-plugin-handlebars/README.md index e3cd63dc..ffd6e82a 100644 --- a/core/prettier-plugin-handlebars/README.md +++ b/core/prettier-plugin-handlebars/README.md @@ -4,7 +4,8 @@ -[![prettier](https://img.shields.io/badge/prettier-catalog:prettier-F7B93E.svg?logo=prettier&logoColor=ffffff&labelColor=F7B93E)](https://npmx.dev/package/prettier) +[![prettier](https://img.shields.io/badge/prettier-3.8.1-F7B93E.svg?logo=prettier&logoColor=ffffff&labelColor=F7B93E)](https://npmx.dev/package/prettier) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) diff --git a/core/remark-asciinema/README.md b/core/remark-asciinema/README.md index f951a241..9aa14d26 100644 --- a/core/remark-asciinema/README.md +++ b/core/remark-asciinema/README.md @@ -4,7 +4,8 @@ -[![remark](https://img.shields.io/badge/remark-catalog:remark-000000.svg?logo=remark&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/remark) +[![remark](https://img.shields.io/badge/remark-15.0.1-000000.svg?logo=remark&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/remark) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) diff --git a/core/single-file/README.md b/core/single-file/README.md index 4d096461..c6e1f5dc 100644 --- a/core/single-file/README.md +++ b/core/single-file/README.md @@ -4,8 +4,9 @@ -[![cheerio](https://img.shields.io/badge/cheerio-catalog:-E88C1F.svg?logo=cheerio&logoColor=ffffff&labelColor=E88C1F)](https://npmx.dev/package/cheerio) -[![oxc-parser](https://img.shields.io/badge/oxc--parser-catalog:-00F7F1.svg?logo=oxc&logoColor=ffffff&labelColor=00F7F1)](https://npmx.dev/package/oxc-parser) +[![cheerio](https://img.shields.io/badge/cheerio-1.2.0-E88C1F.svg?logo=cheerio&logoColor=ffffff&labelColor=E88C1F)](https://npmx.dev/package/cheerio) +[![oxc-parser](https://img.shields.io/badge/oxc--parser-0.127.0-00F7F1.svg?logo=oxc&logoColor=ffffff&labelColor=00F7F1)](https://npmx.dev/package/oxc-parser) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) diff --git a/core/svelte-social-share-links/README.md b/core/svelte-social-share-links/README.md index 5ca45cb7..08699830 100644 --- a/core/svelte-social-share-links/README.md +++ b/core/svelte-social-share-links/README.md @@ -4,10 +4,10 @@ -[![storybook](https://img.shields.io/badge/storybook-catalog:storybook-FF4785.svg?logo=storybook&logoColor=ffffff&labelColor=FF4785)](https://npmx.dev/package/storybook) -[![svelte](https://img.shields.io/badge/svelte-catalog:svelte-FF3E00.svg?logo=svelte&logoColor=ffffff&labelColor=FF3E00)](https://npmx.dev/package/svelte) -[![typescript](https://img.shields.io/badge/typescript-catalog:-3178C6.svg?logo=typescript&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/typescript) -[![vite](https://img.shields.io/badge/vite-catalog:-9135FF.svg?logo=vite&logoColor=ffffff&labelColor=9135FF)](https://npmx.dev/package/vite) +[![storybook](https://img.shields.io/badge/storybook-10.2.8-FF4785.svg?logo=storybook&logoColor=ffffff&labelColor=FF4785)](https://npmx.dev/package/storybook) +[![svelte](https://img.shields.io/badge/svelte-5.51.2-FF3E00.svg?logo=svelte&logoColor=ffffff&labelColor=FF3E00)](https://npmx.dev/package/svelte) +[![typescript](https://img.shields.io/badge/typescript-5.9.3-3178C6.svg?logo=typescript&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/typescript) +[![vite](https://img.shields.io/badge/vite-6.3.5-9135FF.svg?logo=vite&logoColor=ffffff&labelColor=9135FF)](https://npmx.dev/package/vite) diff --git a/core/typed-env/README.md b/core/typed-env/README.md index 5a340ab7..713dbd98 100644 --- a/core/typed-env/README.md +++ b/core/typed-env/README.md @@ -4,9 +4,10 @@ -[![@dotenvx/dotenvx](https://img.shields.io/badge/@dotenvx/dotenvx-catalog:-ECD53F.svg?logo=dotenv&logoColor=ffffff&labelColor=ECD53F)](https://npmx.dev/package/@dotenvx/dotenvx) -[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) -[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![@dotenvx/dotenvx](https://img.shields.io/badge/@dotenvx/dotenvx-1.52.0-ECD53F.svg?logo=dotenv&logoColor=ffffff&labelColor=ECD53F)](https://npmx.dev/package/@dotenvx/dotenvx) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) +[![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) diff --git a/core/typed-events/README.md b/core/typed-events/README.md index 0ac1acc4..0d4334c3 100644 --- a/core/typed-events/README.md +++ b/core/typed-events/README.md @@ -4,9 +4,10 @@ -[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) -[![react](https://img.shields.io/badge/react-catalog:-61DAFB.svg?logo=react&logoColor=ffffff&labelColor=61DAFB)](https://npmx.dev/package/react) -[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) +[![react](https://img.shields.io/badge/react-19.2.0-61DAFB.svg?logo=react&logoColor=ffffff&labelColor=61DAFB)](https://npmx.dev/package/react) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) +[![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) diff --git a/core/typed-nocodb-api/README.md b/core/typed-nocodb-api/README.md index 580b7b83..1cdbfe09 100644 --- a/core/typed-nocodb-api/README.md +++ b/core/typed-nocodb-api/README.md @@ -4,7 +4,8 @@ -[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) +[![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) diff --git a/core/typed-templates/README.md b/core/typed-templates/README.md index 8acd8529..29a24496 100644 --- a/core/typed-templates/README.md +++ b/core/typed-templates/README.md @@ -4,9 +4,10 @@ -[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-catalog:tanstack-000000.svg?logo=tanstack&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@tanstack/intent) -[![handlebars](https://img.shields.io/badge/handlebars-catalog:handlebars-000000.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/handlebars) -[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) +[![handlebars](https://img.shields.io/badge/handlebars-4.7.9-d46926.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=d46926)](https://npmx.dev/package/handlebars) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) +[![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) diff --git a/core/types-lhci/README.md b/core/types-lhci/README.md index 2d461b37..1834b1e9 100644 --- a/core/types-lhci/README.md +++ b/core/types-lhci/README.md @@ -4,7 +4,8 @@ -[![zod](https://img.shields.io/badge/zod-catalog:schema-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) +[![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) From 9046f13ee901739ce476ec56938cd4edbce6417f Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 10:18:38 -0400 Subject: [PATCH 04/15] docs(icon): add simple-icons badge and remove hyphen from slug name --- core/auto-readme/README.md | 1 + core/auto-readme/src/icon.ts | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/auto-readme/README.md b/core/auto-readme/README.md index 10777b34..b3768607 100644 --- a/core/auto-readme/README.md +++ b/core/auto-readme/README.md @@ -6,6 +6,7 @@ [![handlebars](https://img.shields.io/badge/handlebars-4.7.9-d46926.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=d46926)](https://npmx.dev/package/handlebars) [![remark](https://img.shields.io/badge/remark-15.0.1-000000.svg?logo=remark&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/remark) +[![simple-icons](https://img.shields.io/badge/simple--icons-16.19.0-111111.svg?logo=simpleicons&logoColor=ffffff&labelColor=111111)](https://npmx.dev/package/simple-icons) [![yaml](https://img.shields.io/badge/yaml-2.8.2-CB171E.svg?logo=yaml&logoColor=ffffff&labelColor=CB171E)](https://npmx.dev/package/yaml) [![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) [![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) diff --git a/core/auto-readme/src/icon.ts b/core/auto-readme/src/icon.ts index e752ebc8..2a345a51 100644 --- a/core/auto-readme/src/icon.ts +++ b/core/auto-readme/src/icon.ts @@ -45,7 +45,10 @@ const alternateNames = { export function createSlugName(iconName: string) { iconName = iconName.toLowerCase(); if (isAlternateName(iconName)) return alternateNames[iconName]; - return iconName.replaceAll("+", "plus").replaceAll("#", "sharp"); + return iconName + .replaceAll("+", "plus") + .replaceAll("#", "sharp") + .replaceAll("-", ""); } export function getSimpleIconColor(name: string) { From 55dd57f4441866cdffc34514c6466348b0e6dd8c Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 10:57:15 -0400 Subject: [PATCH 05/15] feat(config): add badge options and badges to readme files --- .config/autoreadmerc.json | 34 ++++++++++++ README.md | 7 +++ core/ai-commit-msg/README.md | 7 +++ core/alfred-kaomoji/README.md | 15 ++++-- core/astro-iconify-svgmap/README.md | 14 ++--- core/auto-readme/README.md | 54 +++++++++---------- .../__snapshots__/tsnapi/schema.snapshot.d.ts | 6 ++- core/auto-readme/src/data.ts | 1 - core/auto-readme/src/icon.ts | 1 + core/auto-readme/src/plugin.ts | 54 ++++++++++++++----- core/auto-readme/src/schema.ts | 17 ++++-- core/catppuccin-jsonresume-theme/README.md | 18 +++++-- core/catppuccin-opml/README.md | 14 +++-- core/catppuccin-rss/README.md | 12 +++-- core/catppuccin-typedoc/README.md | 14 +++-- core/catppuccin-xsl/README.md | 14 ++--- core/eslint-config/README.md | 14 ++--- ...ark-usage-example-f53juete64xnd32naai-5.js | 5 ++ core/example/README.md | 13 ++--- core/find-makefile-targets/README.md | 16 ++++-- core/github-env/README.md | 14 +++-- core/multipublish/README.md | 20 +++++-- core/pnpm-hooks/README.md | 14 +++-- core/prettier-plugin-handlebars/README.md | 14 ++--- core/remark-asciinema/README.md | 14 ++--- core/single-file/README.md | 14 ++--- core/svelte-social-share-links/README.md | 15 +++--- core/typed-env/README.md | 14 ++--- core/typed-events/README.md | 14 ++--- core/typed-nocodb-api/README.md | 14 ++--- core/typed-templates/README.md | 14 ++--- core/types-github-action-env/README.md | 14 ++--- core/types-lhci/README.md | 14 ++--- 33 files changed, 333 insertions(+), 186 deletions(-) create mode 100644 core/eslint-config/example/remark-usage-example-f53juete64xnd32naai-5.js diff --git a/.config/autoreadmerc.json b/.config/autoreadmerc.json index 5bd0a37d..1cb250ef 100644 --- a/.config/autoreadmerc.json +++ b/.config/autoreadmerc.json @@ -2,6 +2,40 @@ "$schema": "../node_modules/@stephansama/auto-readme/dist/schema.json", "usageFile": "./example/index.js", "collapseHeadings": ["Configuration File", "Schema"], + "badgeOptions": { + "templates": [ + { + "url": "https://github.com/stephansama/packages/tree/main/core/{{unscoped_name}}", + "image": "https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F", + "label": "source code" + }, + { + "url": "https://packages.stephansama.info/api/{{name}}", + "image": "https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F", + "label": "documentation" + }, + { + "url": "https://www.npmx.dev/package/{{name}}", + "image": "https://img.shields.io/npm/v/{{escaped_name}}?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F", + "label": "npm" + }, + { + "url": "https://socket.dev/npm/package/{{name}}/overview", + "image": "https://badge.socket.dev/npm/package/{{name}}", + "label": "socket.dev" + }, + { + "url": "https://jsr.io/{{name}}", + "image": "https://jsr.io/badges/{{name}}", + "label": "jsr" + }, + { + "url": "https://www.npmx.dev/package/{{name}}", + "image": "https://img.shields.io/npm/dw/{{name}}?labelColor=211F1F", + "label": "npm downloads" + } + ] + }, "enablePrettier": false, "enableToc": true, "enableUsage": true, diff --git a/README.md b/README.md index 35bb3efc..b4c5d8b1 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/root) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/root) +[![npm](https://img.shields.io/npm/v/root?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/root) +[![socket.dev](https://badge.socket.dev/npm/package/root)](https://socket.dev/npm/package/root/overview) +[![jsr](https://jsr.io/badges/root)](https://jsr.io/root) +[![npm downloads](https://img.shields.io/npm/dw/root?labelColor=211F1F)](https://www.npmx.dev/package/root) + [![@commitlint/cli](https://img.shields.io/badge/@commitlint/cli-19.8.1-000000.svg?logo=commitlint&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@commitlint/cli) [![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) [![eslint](https://img.shields.io/badge/eslint-10.2.1-4B32C3.svg?logo=eslint&logoColor=ffffff&labelColor=4B32C3)](https://npmx.dev/package/eslint) diff --git a/core/ai-commit-msg/README.md b/core/ai-commit-msg/README.md index 300443cc..ba7a29ae 100644 --- a/core/ai-commit-msg/README.md +++ b/core/ai-commit-msg/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//ai-commit-msg) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/ai-commit-msg) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fai-commit-msg?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/ai-commit-msg) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/ai-commit-msg)](https://socket.dev/npm/package/@stephansama/ai-commit-msg/overview) +[![jsr](https://jsr.io/badges/@stephansama/ai-commit-msg)](https://jsr.io/@stephansama/ai-commit-msg) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/ai-commit-msg?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/ai-commit-msg) + [![@dotenvx/dotenvx](https://img.shields.io/badge/@dotenvx/dotenvx-1.52.0-ECD53F.svg?logo=dotenv&logoColor=ffffff&labelColor=ECD53F)](https://npmx.dev/package/@dotenvx/dotenvx) [![ai](https://img.shields.io/badge/ai-6.0.86-000000.svg?logo=vercel&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/ai) [![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) diff --git a/core/alfred-kaomoji/README.md b/core/alfred-kaomoji/README.md index f8f10df4..22f0a8a1 100644 --- a/core/alfred-kaomoji/README.md +++ b/core/alfred-kaomoji/README.md @@ -2,14 +2,21 @@ # [`@stephansama`](https://github.com/stephansama) / alfred-kaomoji - + -[![Source code](https://img.shields.io/badge/Source%20code-211F1F?style=flat&logo=github)](https://github.com/stephansama/packages/tree/main/core/alfred-kaomoji) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/alfred-kaomoji) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Falfred-kaomoji?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/alfred-kaomoji) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//alfred-kaomoji) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/alfred-kaomoji) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Falfred-kaomoji?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/alfred-kaomoji) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/alfred-kaomoji)](https://socket.dev/npm/package/@stephansama/alfred-kaomoji/overview) +[![jsr](https://jsr.io/badges/@stephansama/alfred-kaomoji)](https://jsr.io/@stephansama/alfred-kaomoji) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/alfred-kaomoji?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/alfred-kaomoji) +[![alfy](https://img.shields.io/badge/alfy-2.1.0-5C1F87.svg?logo=alfred&logoColor=ffffff&labelColor=5C1F87)](https://npmx.dev/package/alfy) + + + + + An Alfred workflow for macOS, allowing you to quickly browse and select kaomojis right from your keyboard. ٩(◕‿◕。)۶ diff --git a/core/astro-iconify-svgmap/README.md b/core/astro-iconify-svgmap/README.md index 73dc8dc3..98be100d 100644 --- a/core/astro-iconify-svgmap/README.md +++ b/core/astro-iconify-svgmap/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//astro-iconify-svgmap) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/astro-iconify-svgmap) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fastro-iconify-svgmap?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/astro-iconify-svgmap) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/astro-iconify-svgmap)](https://socket.dev/npm/package/@stephansama/astro-iconify-svgmap/overview) +[![jsr](https://jsr.io/badges/@stephansama/astro-iconify-svgmap)](https://jsr.io/@stephansama/astro-iconify-svgmap) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/astro-iconify-svgmap?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/astro-iconify-svgmap) + [![@iconify/types](https://img.shields.io/badge/@iconify/types-2.0.0-026C9C.svg?logo=iconify&logoColor=ffffff&labelColor=026C9C)](https://npmx.dev/package/@iconify/types) [![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) [![astro](https://img.shields.io/badge/astro-5.9.3-BC52EE.svg?logo=astro&logoColor=ffffff&labelColor=BC52EE)](https://npmx.dev/package/astro) @@ -14,13 +21,6 @@ -[![Source code](https://img.shields.io/badge/Source%20code-211F1F?style=flat&logo=github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/astro-iconify-svgmap) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/astro-iconify-svgmap) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fastro-iconify-svgmap?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/astro-iconify-svgmap) -[![JSR](https://jsr.io/badges/@stephansama/astro-iconify-svgmap)](https://jsr.io/@stephansama/astro-iconify-svgmap) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/astro-iconify-svgmap)](https://socket.dev/npm/package/@stephansama/astro-iconify-svgmap/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/astro-iconify-svgmap?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/astro-iconify-svgmap) - ## This project is a work in progress > \[!NOTE] diff --git a/core/auto-readme/README.md b/core/auto-readme/README.md index b3768607..30f7da2a 100644 --- a/core/auto-readme/README.md +++ b/core/auto-readme/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//auto-readme) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/auto-readme) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fauto-readme?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/auto-readme) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/auto-readme)](https://socket.dev/npm/package/@stephansama/auto-readme/overview) +[![jsr](https://jsr.io/badges/@stephansama/auto-readme)](https://jsr.io/@stephansama/auto-readme) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/auto-readme?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/auto-readme) + [![handlebars](https://img.shields.io/badge/handlebars-4.7.9-d46926.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=d46926)](https://npmx.dev/package/handlebars) [![remark](https://img.shields.io/badge/remark-15.0.1-000000.svg?logo=remark&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/remark) [![simple-icons](https://img.shields.io/badge/simple--icons-16.19.0-111111.svg?logo=simpleicons&logoColor=ffffff&labelColor=111111)](https://npmx.dev/package/simple-icons) @@ -16,13 +23,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/auto-readme) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/auto-readme) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fauto-readme?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/auto-readme) -[![JSR](https://jsr.io/badges/@stephansama/auto-readme)](https://jsr.io/@stephansama/auto-readme) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/auto-readme)](https://socket.dev/npm/package/@stephansama/auto-readme/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/auto-readme?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/auto-readme) - Generate lists and tables for your README automagically based on your repository ##### Table of contents @@ -205,26 +205,26 @@ _Default value:_ `["dependencies","devDependencies"]` _Object containing the following properties:_ -| Property | Description | Type | Default | -| :-------------------------- | :---------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **`affectedRegexes`** (\*) | | `Array` | | -| `badgeOptions` | | _Object with properties:_
  • `dependencyTypes`: [BadgeDependencyTypeOptions](#badgedependencytypeoptions)
  • `templates`: `Array` - handlebar template strings where {{scope}}, {{name}} / {{key}} and {{version}} / {{value}} represent the package
| `{"dependencyTypes":["dependencies","devDependencies"],"templates":[]}` | -| **`collapseHeadings`** (\*) | | `Array` | | -| `defaultLanguage` | Default language to infer projects from | [Language](#language) | | -| `disableEmojis` | Whether or not to use emojis in markdown table headings | `boolean` | `false` | -| `disableMarkdownHeadings` | Whether or not to display markdown headings | `boolean` | `false` | -| `enablePrettier` | Whether or not to use prettier to format the files | `boolean` | `true` | -| `enableToc` | generate table of contents for readmes | `boolean` | `false` | -| `enableUsage` | Whether or not to enable usage plugin | `boolean` | `false` | -| `headings` | List of headings for different table outputs | _Object with dynamic keys of type_ [Actions](#actions) _and values of type_ `Array<'default' \| 'description' \| 'devDependency' \| 'downloads' \| 'name' \| 'private' \| 'required' \| 'version'>` (_optional_) | `{"ACTION":["name","required","default","description"],"BADGE":[],"PKG":["name","version","devDependency"],"USAGE":[],"WORKSPACE":["name","version","downloads","description"],"ZOD":[]}` | -| `onlyReadmes` | Whether or not to only traverse readmes | `boolean` | `true` | -| `onlyShowPublicPackages` | Only show public packages in workspaces | `boolean` | `false` | -| `removeScope` | Remove common workspace scope | `string` | `''` | -| `templates` | Handlebars templates used to fuel list and table generation | _Object with properties:_
  • `downloadImage`: `string`
  • `emojis`: `Record<'default' \| 'description' \| 'devDependency' \| 'downloads' \| 'name' \| 'private' \| 'required' \| 'version', string>` - Table heading emojis used when enabled
  • `registryUrl`: `string`
  • `versionImage`: `string`
| `{"downloadImage":"https://img.shields.io/npm/dw/{{name}}?labelColor=211F1F","emojis":{"default":"⚙️","description":"📝","devDependency":"💻","downloads":"📥","name":"🏷️","private":"🔒","required":"","version":""},"registryUrl":"https://www.npmx.dev/package/{{name}}","versionImage":"https://img.shields.io/npm/v/{{uri_name}}?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F"}` | -| `tocHeading` | Markdown heading used to generate table of contents | `string` | `'Table of contents'` | -| `usageFile` | Workspace level usage file | `string` | `''` | -| `usageHeading` | Markdown heading used to generate usage example | `string` | `'Usage'` | -| `verbose` | whether or not to display verbose logging | `boolean` | `false` | +| Property | Description | Type | Default | +| :-------------------------- | :---------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **`affectedRegexes`** (\*) | | `Array` | | +| `badgeOptions` | | _Object with properties:_
  • `dependencyTypes`: [BadgeDependencyTypeOptions](#badgedependencytypeoptions)
  • `templates`: _Array of objects:_
    • **`image`** (\*): `string`
    • **`label`** (\*): `string`
    • **`url`** (\*): `string`
    - handlebar template strings where {{scope}}, {{name}} / {{key}} and {{version}} / {{value}} represent the package
| `{"dependencyTypes":["dependencies","devDependencies"],"templates":[]}` | +| **`collapseHeadings`** (\*) | | `Array` | | +| `defaultLanguage` | Default language to infer projects from | [Language](#language) | | +| `disableEmojis` | Whether or not to use emojis in markdown table headings | `boolean` | `false` | +| `disableMarkdownHeadings` | Whether or not to display markdown headings | `boolean` | `false` | +| `enablePrettier` | Whether or not to use prettier to format the files | `boolean` | `true` | +| `enableToc` | generate table of contents for readmes | `boolean` | `false` | +| `enableUsage` | Whether or not to enable usage plugin | `boolean` | `false` | +| `headings` | List of headings for different table outputs | _Object with dynamic keys of type_ [Actions](#actions) _and values of type_ `Array<'default' \| 'description' \| 'devDependency' \| 'downloads' \| 'name' \| 'private' \| 'required' \| 'version'>` (_optional_) | `{"ACTION":["name","required","default","description"],"BADGE":[],"PKG":["name","version","devDependency"],"USAGE":[],"WORKSPACE":["name","version","downloads","description"],"ZOD":[]}` | +| `onlyReadmes` | Whether or not to only traverse readmes | `boolean` | `true` | +| `onlyShowPublicPackages` | Only show public packages in workspaces | `boolean` | `false` | +| `removeScope` | Remove common workspace scope | `string` | `''` | +| `templates` | Handlebars templates used to fuel list and table generation | _Object with properties:_
  • `downloadImage`: `string`
  • `emojis`: `Record<'default' \| 'description' \| 'devDependency' \| 'downloads' \| 'name' \| 'private' \| 'required' \| 'version', string>` - Table heading emojis used when enabled
  • `registryUrl`: `string`
  • `versionImage`: `string`
| `{"downloadImage":"https://img.shields.io/npm/dw/{{name}}?labelColor=211F1F","emojis":{"default":"⚙️","description":"📝","devDependency":"💻","downloads":"📥","name":"🏷️","private":"🔒","required":"","version":""},"registryUrl":"https://www.npmx.dev/package/{{name}}","versionImage":"https://img.shields.io/npm/v/{{uri_name}}?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F"}` | +| `tocHeading` | Markdown heading used to generate table of contents | `string` | `'Table of contents'` | +| `usageFile` | Workspace level usage file | `string` | `''` | +| `usageHeading` | Markdown heading used to generate usage example | `string` | `'Usage'` | +| `verbose` | whether or not to display verbose logging | `boolean` | `false` | _(\*) Required._ (_optional_) diff --git a/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts b/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts index 31868ab5..1c7b67c6 100644 --- a/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts +++ b/core/auto-readme/__snapshots__/tsnapi/schema.snapshot.d.ts @@ -29,7 +29,11 @@ export declare const configSchema: z.ZodOptional>>; - templates: z.ZodDefault>; + templates: z.ZodDefault>>; }, z.core.$strip>>; collapseHeadings: z.ZodArray; defaultLanguage: z.ZodDefault = const templateBadges = config.badgeOptions?.templates.map((template) => { - const compiled = - Handlebars.compile< - Partial< - Record< - "key" | "name" | "value" | "version", - string - > - > - >(template); - return compiled({ - name: first?.pkgJson?.name, - version: first?.pkgJson?.version, - }); + type TemplateType = Partial< + Record< + | "escaped_name" + | "key" + | "name" + | "unscoped_name" + | "value" + | "version", + string + > + >; + + const compiledImage = Handlebars.compile( + template.image, + ); + + const compiledUrl = Handlebars.compile( + template.url, + ); + + const name = first?.pkgJson?.name || ""; + const version = first?.pkgJson?.version; + const scope = + (first?.pkgJson?.name?.includes("@") && + first.pkgJson.name.split("/").at(0)) || + ""; + + const context = { + escaped_name: encodeURIComponent(name), + key: name, + name, + scope, + unscoped_name: name?.replace(scope, ""), + value: version, + version, + }; + + const image = compiledImage(context); + const url = compiledUrl(context); + + return `[![${template.label}](${image})](${url})`; }) || []; const packageBadges = new Array(); diff --git a/core/auto-readme/src/schema.ts b/core/auto-readme/src/schema.ts index d6983ab4..339fd7db 100644 --- a/core/auto-readme/src/schema.ts +++ b/core/auto-readme/src/schema.ts @@ -84,10 +84,19 @@ export const badgeDependencyTypeOptionsSchema = z ) .default(["dependencies", "devDependencies"]); -const badgeTemplateSchema = z.array(z.string().trim()).default([]).meta({ - description: - "handlebar template strings where {{scope}}, {{name}} / {{key}} and {{version}} / {{value}} represent the package", -}); +const badgeTemplateSchema = z + .array( + z.object({ + image: z.string().trim(), + label: z.string().trim(), + url: z.string().trim(), + }), + ) + .default([]) + .meta({ + description: + "handlebar template strings where {{scope}}, {{name}} / {{key}} and {{version}} / {{value}} represent the package", + }); const _configSchema = z.object({ affectedRegexes: z.array(z.string().trim()), diff --git a/core/catppuccin-jsonresume-theme/README.md b/core/catppuccin-jsonresume-theme/README.md index 9eb89411..393a1b26 100644 --- a/core/catppuccin-jsonresume-theme/README.md +++ b/core/catppuccin-jsonresume-theme/README.md @@ -2,15 +2,23 @@ # [`@stephansama`](https://github.com/stephansama) / catppuccin-jsonresume-theme - + -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-jsonresume-theme) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-jsonresume-theme) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-jsonresume-theme?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-jsonresume-theme) -[![JSR](https://jsr.io/badges/@stephansama/catppuccin-jsonresume-theme)](https://jsr.io/@stephansama/catppuccin-jsonresume-theme) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-jsonresume-theme) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-jsonresume-theme) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-jsonresume-theme?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-jsonresume-theme) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-jsonresume-theme)](https://socket.dev/npm/package/@stephansama/catppuccin-jsonresume-theme/overview) +[![jsr](https://jsr.io/badges/@stephansama/catppuccin-jsonresume-theme)](https://jsr.io/@stephansama/catppuccin-jsonresume-theme) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/catppuccin-jsonresume-theme?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-jsonresume-theme) +[![handlebars](https://img.shields.io/badge/handlebars-4.7.9-d46926.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=d46926)](https://npmx.dev/package/handlebars) +[![tailwindcss](https://img.shields.io/badge/tailwindcss-4.1.18-06B6D4.svg?logo=tailwindcss&logoColor=ffffff&labelColor=06B6D4)](https://npmx.dev/package/tailwindcss) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) + + + + + theme for [resume cli](https://github.com/jsonresume/resume-cli) website ##### Table of contents diff --git a/core/catppuccin-opml/README.md b/core/catppuccin-opml/README.md index dfa8a4d9..2d0a2d57 100644 --- a/core/catppuccin-opml/README.md +++ b/core/catppuccin-opml/README.md @@ -2,15 +2,19 @@ # [`@stephansama`](https://github.com/stephansama) / catppuccin-opml - + -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-opml) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-opml) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-opml?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-opml) -[![JSR](https://jsr.io/badges/@stephansama/catppuccin-opml)](https://jsr.io/@stephansama/catppuccin-opml) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-opml) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-opml) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-opml?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-opml) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-opml)](https://socket.dev/npm/package/@stephansama/catppuccin-opml/overview) +[![jsr](https://jsr.io/badges/@stephansama/catppuccin-opml)](https://jsr.io/@stephansama/catppuccin-opml) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/catppuccin-opml?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-opml) + + + + > \[!CAUTION] > this package is deprecated please use `@stephansama/catppuccin-xsl` instead diff --git a/core/catppuccin-rss/README.md b/core/catppuccin-rss/README.md index 7d27cbd9..3a9ee175 100644 --- a/core/catppuccin-rss/README.md +++ b/core/catppuccin-rss/README.md @@ -1,12 +1,16 @@ # [Catppuccin](https://github.com/catppuccin/catppuccin) x [Pretty-feed-v3](https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl) -[![Source code](https://img.shields.io/badge/Source%20code-211F1F?style=flat&logo=github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-rss) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-rss) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-rss?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-rss) -[![JSR](https://jsr.io/badges/@stephansama/catppuccin-rss)](https://jsr.io/@stephansama/catppuccin-rss) + + +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-rss) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-rss) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-rss?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-rss) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-rss)](https://socket.dev/npm/package/@stephansama/catppuccin-rss/overview) +[![jsr](https://jsr.io/badges/@stephansama/catppuccin-rss)](https://jsr.io/@stephansama/catppuccin-rss) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/catppuccin-rss?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-rss) + + > \[!CAUTION] > this package is deprecated please use `@stephansama/catppuccin-xsl` instead diff --git a/core/catppuccin-typedoc/README.md b/core/catppuccin-typedoc/README.md index feb35afd..883b90b4 100644 --- a/core/catppuccin-typedoc/README.md +++ b/core/catppuccin-typedoc/README.md @@ -2,15 +2,19 @@ # [`@stephansama`](https://github.com/stephansama) / catppuccin-typedoc - + -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-typedoc) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-typedoc) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-typedoc) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-typedoc) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-typedoc?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-typedoc) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-typedoc)](https://socket.dev/npm/package/@stephansama/catppuccin-typedoc/overview) -[![JSR](https://jsr.io/badges/@stephansama/catppuccin-typedoc)](https://jsr.io/@stephansama/catppuccin-typedoc) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-typedoc?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-typedoc) +[![jsr](https://jsr.io/badges/@stephansama/catppuccin-typedoc)](https://jsr.io/@stephansama/catppuccin-typedoc) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/catppuccin-typedoc?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-typedoc) + + + + Catppuccin theme for typedoc ## Installation diff --git a/core/catppuccin-xsl/README.md b/core/catppuccin-xsl/README.md index 3d58aa5e..c17dd26d 100644 --- a/core/catppuccin-xsl/README.md +++ b/core/catppuccin-xsl/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-xsl) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-xsl) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-xsl?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-xsl) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-xsl)](https://socket.dev/npm/package/@stephansama/catppuccin-xsl/overview) +[![jsr](https://jsr.io/badges/@stephansama/catppuccin-xsl)](https://jsr.io/@stephansama/catppuccin-xsl) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/catppuccin-xsl?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-xsl) + [![handlebars](https://img.shields.io/badge/handlebars-4.7.9-d46926.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=d46926)](https://npmx.dev/package/handlebars) [![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) @@ -11,13 +18,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-xsl) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-xsl) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-xsl)](https://socket.dev/npm/package/@stephansama/catppuccin-xsl/overview) -[![JSR](https://jsr.io/badges/@stephansama/catppuccin-xsl)](https://jsr.io/@stephansama/catppuccin-xsl) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-xsl?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-xsl) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/catppuccin-xsl?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-xsl) - Catppuccin styles for various xsl formats ##### Table of contents diff --git a/core/eslint-config/README.md b/core/eslint-config/README.md index f8542854..423916fb 100644 --- a/core/eslint-config/README.md +++ b/core/eslint-config/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//eslint-config) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/eslint-config) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Feslint-config?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/eslint-config) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/eslint-config)](https://socket.dev/npm/package/@stephansama/eslint-config/overview) +[![jsr](https://jsr.io/badges/@stephansama/eslint-config)](https://jsr.io/@stephansama/eslint-config) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/eslint-config?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/eslint-config) + [![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) [![eslint](https://img.shields.io/badge/eslint-10.2.1-4B32C3.svg?logo=eslint&logoColor=ffffff&labelColor=4B32C3)](https://npmx.dev/package/eslint) [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) @@ -12,13 +19,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/eslint-config) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/eslint-config) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Feslint-config?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/eslint-config) -[![JSR](https://jsr.io/badges/@stephansama/eslint-config)](https://jsr.io/@stephansama/eslint-config) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/eslint-config)](https://socket.dev/npm/package/@stephansama/eslint-config/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/eslint-config?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/eslint-config) - A modular, composable ESLint flat config package with 25+ configs covering JavaScript, TypeScript, frameworks, testing, and file formats. Supports auto-detection of installed packages and ships with a CLI for interactive setup. ##### Table of contents diff --git a/core/eslint-config/example/remark-usage-example-f53juete64xnd32naai-5.js b/core/eslint-config/example/remark-usage-example-f53juete64xnd32naai-5.js new file mode 100644 index 00000000..294778e3 --- /dev/null +++ b/core/eslint-config/example/remark-usage-example-f53juete64xnd32naai-5.js @@ -0,0 +1,5 @@ +import { config, presets } from "../dist/index.mjs"; +const loadConfig = async () => await config({ + ...presets.base +}); +export default loadConfig; \ No newline at end of file diff --git a/core/example/README.md b/core/example/README.md index 9e7488d5..e1ef243d 100644 --- a/core/example/README.md +++ b/core/example/README.md @@ -4,18 +4,19 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/create-stephansama-example) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/create-stephansama-example) +[![npm](https://img.shields.io/npm/v/create-stephansama-example?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/create-stephansama-example) +[![socket.dev](https://badge.socket.dev/npm/package/create-stephansama-example)](https://socket.dev/npm/package/create-stephansama-example/overview) +[![jsr](https://jsr.io/badges/create-stephansama-example)](https://jsr.io/create-stephansama-example) +[![npm downloads](https://img.shields.io/npm/dw/create-stephansama-example?labelColor=211F1F)](https://www.npmx.dev/package/create-stephansama-example) + [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/example) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/create-stephansama-example) -[![NPM Version](https://img.shields.io/npm/v/create-stephansama-example?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/create-stephansama-example) -[![socket.dev](https://badge.socket.dev/npm/package/create-stephansama-example)](https://socket.dev/npm/package/create-stephansama-example/overview) -[![npm downloads](https://img.shields.io/npm/dw/create-stephansama-example?labelColor=211F1F)](https://www.npmx.dev/package/create-stephansama-example) - Download an example from the @stephansama/packages examples ## Installation diff --git a/core/find-makefile-targets/README.md b/core/find-makefile-targets/README.md index 2a3ab72f..a5b64ea4 100644 --- a/core/find-makefile-targets/README.md +++ b/core/find-makefile-targets/README.md @@ -2,15 +2,21 @@ # [`@stephansama`](https://github.com/stephansama) / find-makefile-targets - + -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/find-makefile-targets) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/find-makefile-targets) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Ffind-makefile-targets?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/find-makefile-targets) -[![JSR](https://jsr.io/badges/@stephansama/find-makefile-targets)](https://jsr.io/@stephansama/find-makefile-targets) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//find-makefile-targets) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/find-makefile-targets) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Ffind-makefile-targets?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/find-makefile-targets) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/find-makefile-targets)](https://socket.dev/npm/package/@stephansama/find-makefile-targets/overview) +[![jsr](https://jsr.io/badges/@stephansama/find-makefile-targets)](https://jsr.io/@stephansama/find-makefile-targets) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/find-makefile-targets?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/find-makefile-targets) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) + + + + + Finds targets in a Makefile. The output is formatted to be easily piped into other tools like `fzf` ##### Table of contents diff --git a/core/github-env/README.md b/core/github-env/README.md index 4071a84a..5aa0b77e 100644 --- a/core/github-env/README.md +++ b/core/github-env/README.md @@ -2,15 +2,19 @@ # [`@stephansama`](https://github.com/stephansama) / github-env - + -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/github-env) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/github-env) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fgithub-env?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/github-env) -[![JSR](https://jsr.io/badges/@stephansama/github-env)](https://jsr.io/@stephansama/github-env) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//github-env) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/github-env) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fgithub-env?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/github-env) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/github-env)](https://socket.dev/npm/package/@stephansama/github-env/overview) +[![jsr](https://jsr.io/badges/@stephansama/github-env)](https://jsr.io/@stephansama/github-env) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/github-env?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/github-env) + + + + > \[!CAUTION] > > please use `@stephansama/types-github-action-env` instead diff --git a/core/multipublish/README.md b/core/multipublish/README.md index 8562c195..f3f5eb92 100644 --- a/core/multipublish/README.md +++ b/core/multipublish/README.md @@ -2,15 +2,25 @@ # [`@stephansama`](https://github.com/stephansama) / multipublish - + -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/multipublish) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/multipublish) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fmultipublish?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/multipublish) -[![JSR](https://jsr.io/badges/@stephansama/multipublish)](https://jsr.io/@stephansama/multipublish) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//multipublish) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/multipublish) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fmultipublish?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/multipublish) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/multipublish)](https://socket.dev/npm/package/@stephansama/multipublish/overview) +[![jsr](https://jsr.io/badges/@stephansama/multipublish)](https://jsr.io/@stephansama/multipublish) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/multipublish?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/multipublish) +[![yaml](https://img.shields.io/badge/yaml-2.8.2-CB171E.svg?logo=yaml&logoColor=ffffff&labelColor=CB171E)](https://npmx.dev/package/yaml) +[![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) +[![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) +[![jsr](https://img.shields.io/badge/jsr-0.13.5-F7DF1E.svg?logo=jsr&logoColor=ffffff&labelColor=F7DF1E)](https://npmx.dev/package/jsr) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) + + + + + Publish packages to multiple providers easily ##### Table of contents diff --git a/core/pnpm-hooks/README.md b/core/pnpm-hooks/README.md index 2686826a..2a7e1877 100644 --- a/core/pnpm-hooks/README.md +++ b/core/pnpm-hooks/README.md @@ -1,12 +1,18 @@ # @stephansama/pnpm-hooks -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/pnpm-hooks) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/pnpm-hooks) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fpnpm-hooks?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/pnpm-hooks) -[![JSR](https://jsr.io/badges/@stephansama/pnpm-hooks)](https://jsr.io/@stephansama/pnpm-hooks) + + +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//pnpm-hooks) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/pnpm-hooks) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fpnpm-hooks?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/pnpm-hooks) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/pnpm-hooks)](https://socket.dev/npm/package/@stephansama/pnpm-hooks/overview) +[![jsr](https://jsr.io/badges/@stephansama/pnpm-hooks)](https://jsr.io/@stephansama/pnpm-hooks) [![npm downloads](https://img.shields.io/npm/dw/@stephansama/pnpm-hooks?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/pnpm-hooks) +[![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) + + + preconfigured pnpm hooks and types for pnpmfile ##### Table of contents diff --git a/core/prettier-plugin-handlebars/README.md b/core/prettier-plugin-handlebars/README.md index ffd6e82a..2311b4b5 100644 --- a/core/prettier-plugin-handlebars/README.md +++ b/core/prettier-plugin-handlebars/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//prettier-plugin-handlebars) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/prettier-plugin-handlebars) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fprettier-plugin-handlebars?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/prettier-plugin-handlebars) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/prettier-plugin-handlebars)](https://socket.dev/npm/package/@stephansama/prettier-plugin-handlebars/overview) +[![jsr](https://jsr.io/badges/@stephansama/prettier-plugin-handlebars)](https://jsr.io/@stephansama/prettier-plugin-handlebars) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/prettier-plugin-handlebars?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/prettier-plugin-handlebars) + [![prettier](https://img.shields.io/badge/prettier-3.8.1-F7B93E.svg?logo=prettier&logoColor=ffffff&labelColor=F7B93E)](https://npmx.dev/package/prettier) [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) @@ -11,13 +18,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/prettier-plugin-handlebars) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/prettier-plugin-handlebars) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fprettier-plugin-handlebars?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/prettier-plugin-handlebars) -[![JSR](https://jsr.io/badges/@stephansama/prettier-plugin-handlebars)](https://jsr.io/@stephansama/prettier-plugin-handlebars) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/prettier-plugin-handlebars)](https://socket.dev/npm/package/@stephansama/prettier-plugin-handlebars/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/prettier-plugin-handlebars?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/prettier-plugin-handlebars) - Prettier plugin that automatically assigns the default parser for various handlebars files ##### Table of contents diff --git a/core/remark-asciinema/README.md b/core/remark-asciinema/README.md index 9aa14d26..1180a5fe 100644 --- a/core/remark-asciinema/README.md +++ b/core/remark-asciinema/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//remark-asciinema) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/remark-asciinema) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fremark-asciinema?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/remark-asciinema) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/remark-asciinema)](https://socket.dev/npm/package/@stephansama/remark-asciinema/overview) +[![jsr](https://jsr.io/badges/@stephansama/remark-asciinema)](https://jsr.io/@stephansama/remark-asciinema) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/remark-asciinema?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/remark-asciinema) + [![remark](https://img.shields.io/badge/remark-15.0.1-000000.svg?logo=remark&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/remark) [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) @@ -11,13 +18,6 @@ -[![Source code](https://img.shields.io/badge/Source%20code-211F1F?style=flat&logo=github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/remark-asciinema) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/remark-asciinema) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fremark-asciinema?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/remark-asciinema) -[![JSR](https://jsr.io/badges/@stephansama/remark-asciinema)](https://jsr.io/@stephansama/remark-asciinema) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/remark-asciinema)](https://socket.dev/npm/package/@stephansama/remark-asciinema/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/remark-asciinema?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/remark-asciinema) - A [remark](https://github.com/remarkjs/remark) plugin that transforms asciinema links into either an embedded [asciinema](https://docs.asciinema.org/manual/player/) player or screenshot that links to the recording. ## Features diff --git a/core/single-file/README.md b/core/single-file/README.md index c6e1f5dc..36572723 100644 --- a/core/single-file/README.md +++ b/core/single-file/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//single-file) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/single-file) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fsingle-file?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/single-file) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/single-file)](https://socket.dev/npm/package/@stephansama/single-file/overview) +[![jsr](https://jsr.io/badges/@stephansama/single-file)](https://jsr.io/@stephansama/single-file) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/single-file?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/single-file) + [![cheerio](https://img.shields.io/badge/cheerio-1.2.0-E88C1F.svg?logo=cheerio&logoColor=ffffff&labelColor=E88C1F)](https://npmx.dev/package/cheerio) [![oxc-parser](https://img.shields.io/badge/oxc--parser-0.127.0-00F7F1.svg?logo=oxc&logoColor=ffffff&labelColor=00F7F1)](https://npmx.dev/package/oxc-parser) [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) @@ -12,13 +19,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/single-file) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/single-file) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fsingle-file?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/single-file) -[![JSR](https://jsr.io/badges/@stephansama/single-file)](https://jsr.io/@stephansama/single-file) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/single-file)](https://socket.dev/npm/package/@stephansama/single-file/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/single-file?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/single-file) - Fetch any webpage and produce a fully self-contained HTML file with all external resources — images, stylesheets, scripts, and SVGs — inlined directly into the document. ##### Table of contents diff --git a/core/svelte-social-share-links/README.md b/core/svelte-social-share-links/README.md index 08699830..c65e5662 100644 --- a/core/svelte-social-share-links/README.md +++ b/core/svelte-social-share-links/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//svelte-social-share-links) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/svelte-social-share-links) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Fsvelte-social-share-links?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/svelte-social-share-links) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/svelte-social-share-links)](https://socket.dev/npm/package/@stephansama/svelte-social-share-links/overview) +[![jsr](https://jsr.io/badges/@stephansama/svelte-social-share-links)](https://jsr.io/@stephansama/svelte-social-share-links) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/svelte-social-share-links?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/svelte-social-share-links) + [![storybook](https://img.shields.io/badge/storybook-10.2.8-FF4785.svg?logo=storybook&logoColor=ffffff&labelColor=FF4785)](https://npmx.dev/package/storybook) [![svelte](https://img.shields.io/badge/svelte-5.51.2-FF3E00.svg?logo=svelte&logoColor=ffffff&labelColor=FF3E00)](https://npmx.dev/package/svelte) [![typescript](https://img.shields.io/badge/typescript-5.9.3-3178C6.svg?logo=typescript&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/typescript) @@ -13,14 +20,6 @@ -[![Source code](https://img.shields.io/badge/Source%20code-211F1F?style=flat&logo=github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/svelte-social-share-links) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/svelte-social-share-links) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fsvelte-social-share-links?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/svelte-social-share-links) -[![JSR](https://jsr.io/badges/@stephansama/svelte-social-share-links)](https://jsr.io/@stephansama/svelte-social-share-links) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/svelte-social-share-links)](https://socket.dev/npm/package/@stephansama/svelte-social-share-links/overview) -[![storybook](https://img.shields.io/badge/storybook-211F1F?logo=storybook)](https://packages.stephansama.info/api/@stephansama/svelte-social-share-links/storybook) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/svelte-social-share-links?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/svelte-social-share-links) - Simple social sharing for the web Web component built using svelte that allows end users to share the current url to social media diff --git a/core/typed-env/README.md b/core/typed-env/README.md index 713dbd98..ed0b7740 100644 --- a/core/typed-env/README.md +++ b/core/typed-env/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//typed-env) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-env) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Ftyped-env?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-env) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-env)](https://socket.dev/npm/package/@stephansama/typed-env/overview) +[![jsr](https://jsr.io/badges/@stephansama/typed-env)](https://jsr.io/@stephansama/typed-env) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/typed-env?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-env) + [![@dotenvx/dotenvx](https://img.shields.io/badge/@dotenvx/dotenvx-1.52.0-ECD53F.svg?logo=dotenv&logoColor=ffffff&labelColor=ECD53F)](https://npmx.dev/package/@dotenvx/dotenvx) [![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) @@ -13,13 +20,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-env) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-env) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Ftyped-env?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-env) -[![JSR](https://jsr.io/badges/@stephansama/typed-env)](https://jsr.io/@stephansama/typed-env) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-env)](https://socket.dev/npm/package/@stephansama/typed-env/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/typed-env?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-env) - standard schema compatible environment validator ##### Table of contents diff --git a/core/typed-events/README.md b/core/typed-events/README.md index 0d4334c3..874c1db8 100644 --- a/core/typed-events/README.md +++ b/core/typed-events/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//typed-events) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-events) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Ftyped-events?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-events) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-events)](https://socket.dev/npm/package/@stephansama/typed-events/overview) +[![jsr](https://jsr.io/badges/@stephansama/typed-events)](https://jsr.io/@stephansama/typed-events) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/typed-events?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-events) + [![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) [![react](https://img.shields.io/badge/react-19.2.0-61DAFB.svg?logo=react&logoColor=ffffff&labelColor=61DAFB)](https://npmx.dev/package/react) [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) @@ -11,13 +18,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-events) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-events) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Ftyped-events?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-events) -[![JSR](https://jsr.io/badges/@stephansama/typed-events)](https://jsr.io/@stephansama/typed-events) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-events)](https://socket.dev/npm/package/@stephansama/typed-events/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/typed-events?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-events) - Typed events store using standard schema diff --git a/core/typed-nocodb-api/README.md b/core/typed-nocodb-api/README.md index 1cdbfe09..63608144 100644 --- a/core/typed-nocodb-api/README.md +++ b/core/typed-nocodb-api/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//typed-nocodb-api) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-nocodb-api) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Ftyped-nocodb-api?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-nocodb-api) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-nocodb-api)](https://socket.dev/npm/package/@stephansama/typed-nocodb-api/overview) +[![jsr](https://jsr.io/badges/@stephansama/typed-nocodb-api)](https://jsr.io/@stephansama/typed-nocodb-api) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/typed-nocodb-api?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-nocodb-api) + [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) [![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) @@ -11,13 +18,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-nocodb-api) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-nocodb-api) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Ftyped-nocodb-api?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-nocodb-api) -[![JSR](https://jsr.io/badges/@stephansama/typed-nocodb-api)](https://jsr.io/@stephansama/typed-nocodb-api) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-nocodb-api)](https://socket.dev/npm/package/@stephansama/typed-nocodb-api/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/typed-nocodb-api?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-nocodb-api) - standard schema compatible nocodb api ##### Table of contents diff --git a/core/typed-templates/README.md b/core/typed-templates/README.md index 29a24496..d16a7d12 100644 --- a/core/typed-templates/README.md +++ b/core/typed-templates/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//typed-templates) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-templates) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Ftyped-templates?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-templates) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-templates)](https://socket.dev/npm/package/@stephansama/typed-templates/overview) +[![jsr](https://jsr.io/badges/@stephansama/typed-templates)](https://jsr.io/@stephansama/typed-templates) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/typed-templates?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-templates) + [![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) [![handlebars](https://img.shields.io/badge/handlebars-4.7.9-d46926.svg?logo=handlebarsdotjs&logoColor=ffffff&labelColor=d46926)](https://npmx.dev/package/handlebars) [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) @@ -13,13 +20,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-templates) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-templates) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Ftyped-templates?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-templates) -[![JSR](https://jsr.io/badges/@stephansama/typed-templates)](https://jsr.io/@stephansama/typed-templates) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-templates)](https://socket.dev/npm/package/@stephansama/typed-templates/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/typed-templates?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-templates) - Use standard schema to validate and use handlebar template directories ##### Table of contents diff --git a/core/types-github-action-env/README.md b/core/types-github-action-env/README.md index 4f96dd16..e3cce78c 100644 --- a/core/types-github-action-env/README.md +++ b/core/types-github-action-env/README.md @@ -4,17 +4,17 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//types-github-action-env) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/types-github-action-env) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Ftypes-github-action-env?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/types-github-action-env) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/types-github-action-env)](https://socket.dev/npm/package/@stephansama/types-github-action-env/overview) +[![jsr](https://jsr.io/badges/@stephansama/types-github-action-env)](https://jsr.io/@stephansama/types-github-action-env) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/types-github-action-env?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/types-github-action-env) + -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/github-env) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/github-env) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fgithub-env?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/github-env) -[![JSR](https://jsr.io/badges/@stephansama/types-github-action-env)](https://jsr.io/@stephansama/types-github-action-env) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/types-github-action-env)](https://socket.dev/npm/package/@stephansama/types-github-action-env/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/github-env?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/github-env) - Additional environment variable types for GitHub CI ## Installation diff --git a/core/types-lhci/README.md b/core/types-lhci/README.md index 1834b1e9..93008829 100644 --- a/core/types-lhci/README.md +++ b/core/types-lhci/README.md @@ -4,6 +4,13 @@ +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//types-lhci) +[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/types-lhci) +[![npm](https://img.shields.io/npm/v/%40stephansama%2Ftypes-lhci?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/types-lhci) +[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/types-lhci)](https://socket.dev/npm/package/@stephansama/types-lhci/overview) +[![jsr](https://jsr.io/badges/@stephansama/types-lhci)](https://jsr.io/@stephansama/types-lhci) +[![npm downloads](https://img.shields.io/npm/dw/@stephansama/types-lhci?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/types-lhci) + [![tsdown](https://img.shields.io/badge/tsdown-0.21.10-3178C6.svg?logo=rolldown&logoColor=ffffff&labelColor=3178C6)](https://npmx.dev/package/tsdown) [![zod](https://img.shields.io/badge/zod-4.2.1-408AFF.svg?logo=zod&logoColor=ffffff&labelColor=408AFF)](https://npmx.dev/package/zod) @@ -11,13 +18,6 @@ -[![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/types-lhci) -[![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/types-lhci) -[![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Ftypes-lhci?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/types-lhci) -[![JSR](https://jsr.io/badges/@stephansama/types-lhci)](https://jsr.io/@stephansama/types-lhci) -[![socket.dev](https://badge.socket.dev/npm/package/@stephansama/types-lhci)](https://socket.dev/npm/package/@stephansama/types-lhci/overview) -[![npm downloads](https://img.shields.io/npm/dw/@stephansama/types-lhci?labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/types-lhci) - types for lhci configuration ##### Table of contents From b110e0b059c6f27d913ca874f950445f8168f7d2 Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 11:08:54 -0400 Subject: [PATCH 06/15] docs(core): remove badge templates and add skip-templates logic --- README.md | 9 +--- core/auto-readme/src/plugin.ts | 91 ++++++++++++++++++---------------- 2 files changed, 49 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index b4c5d8b1..8d59946c 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,7 @@ # [`@stephansama`](https://github.com/stephansama/packages) packages - - -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/root) -[![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/root) -[![npm](https://img.shields.io/npm/v/root?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/root) -[![socket.dev](https://badge.socket.dev/npm/package/root)](https://socket.dev/npm/package/root/overview) -[![jsr](https://jsr.io/badges/root)](https://jsr.io/root) -[![npm downloads](https://img.shields.io/npm/dw/root?labelColor=211F1F)](https://www.npmx.dev/package/root) + [![@commitlint/cli](https://img.shields.io/badge/@commitlint/cli-19.8.1-000000.svg?logo=commitlint&logoColor=ffffff&labelColor=000000)](https://npmx.dev/package/@commitlint/cli) [![@tanstack/intent](https://img.shields.io/badge/@tanstack/intent-0.0.41-00a6f4.svg?logo=tanstack&logoColor=ffffff&labelColor=00a6f4)](https://npmx.dev/package/@tanstack/intent) diff --git a/core/auto-readme/src/plugin.ts b/core/auto-readme/src/plugin.ts index 8387722b..70ddaa1c 100644 --- a/core/auto-readme/src/plugin.ts +++ b/core/auto-readme/src/plugin.ts @@ -74,50 +74,55 @@ export const autoReadmeRemarkPlugin: Plugin<[Config, ActionData], Root> = ), ); - const templateBadges = - config.badgeOptions?.templates.map((template) => { - type TemplateType = Partial< - Record< - | "escaped_name" - | "key" - | "name" - | "unscoped_name" - | "value" - | "version", - string - > - >; - - const compiledImage = Handlebars.compile( - template.image, - ); - - const compiledUrl = Handlebars.compile( - template.url, - ); - - const name = first?.pkgJson?.name || ""; - const version = first?.pkgJson?.version; - const scope = - (first?.pkgJson?.name?.includes("@") && - first.pkgJson.name.split("/").at(0)) || - ""; - - const context = { - escaped_name: encodeURIComponent(name), - key: name, - name, - scope, - unscoped_name: name?.replace(scope, ""), - value: version, - version, - }; + const skipTemplates = + first?.parameters.includes(`--skip-templates`); - const image = compiledImage(context); - const url = compiledUrl(context); - - return `[![${template.label}](${image})](${url})`; - }) || []; + const templateBadges = + (!skipTemplates && + config.badgeOptions?.templates.map((template) => { + type TemplateType = Partial< + Record< + | "escaped_name" + | "key" + | "name" + | "unscoped_name" + | "value" + | "version", + string + > + >; + + const compiledImage = Handlebars.compile( + template.image, + ); + + const compiledUrl = Handlebars.compile( + template.url, + ); + + const name = first?.pkgJson?.name || ""; + const version = first?.pkgJson?.version; + const scope = + (first?.pkgJson?.name?.includes("@") && + first.pkgJson.name.split("/").at(0)) || + ""; + + const context = { + escaped_name: encodeURIComponent(name), + key: name, + name, + scope, + unscoped_name: name?.replace(scope, ""), + value: version, + version, + }; + + const image = compiledImage(context); + const url = compiledUrl(context); + + return `[![${template.label}](${image})](${url})`; + })) || + []; const packageBadges = new Array(); const md = String.raw; From f02d4b59efbce89761933947426188c6e38275ed Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 11:22:03 -0400 Subject: [PATCH 07/15] docs(auto-readme): fix badge key formatting --- core/ai-commit-msg/README.md | 2 +- core/alfred-kaomoji/README.md | 2 +- core/astro-iconify-svgmap/README.md | 2 +- core/auto-readme/README.md | 2 +- core/auto-readme/src/icon.ts | 2 +- core/auto-readme/src/plugin.ts | 13 ++++++++----- core/catppuccin-jsonresume-theme/README.md | 2 +- core/catppuccin-opml/README.md | 2 +- core/catppuccin-rss/README.md | 2 +- core/catppuccin-typedoc/README.md | 2 +- core/catppuccin-xsl/README.md | 2 +- core/eslint-config/README.md | 2 +- core/find-makefile-targets/README.md | 2 +- core/github-env/README.md | 2 +- core/multipublish/README.md | 2 +- core/pnpm-hooks/README.md | 2 +- core/prettier-plugin-handlebars/README.md | 2 +- core/remark-asciinema/README.md | 2 +- core/single-file/README.md | 2 +- core/svelte-social-share-links/README.md | 2 +- core/typed-env/README.md | 2 +- core/typed-events/README.md | 2 +- core/typed-nocodb-api/README.md | 2 +- core/typed-templates/README.md | 2 +- core/types-github-action-env/README.md | 2 +- core/types-lhci/README.md | 2 +- 26 files changed, 33 insertions(+), 30 deletions(-) diff --git a/core/ai-commit-msg/README.md b/core/ai-commit-msg/README.md index ba7a29ae..0eda318b 100644 --- a/core/ai-commit-msg/README.md +++ b/core/ai-commit-msg/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//ai-commit-msg) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/ai-commit-msg) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/ai-commit-msg) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fai-commit-msg?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/ai-commit-msg) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/ai-commit-msg)](https://socket.dev/npm/package/@stephansama/ai-commit-msg/overview) diff --git a/core/alfred-kaomoji/README.md b/core/alfred-kaomoji/README.md index 22f0a8a1..14694309 100644 --- a/core/alfred-kaomoji/README.md +++ b/core/alfred-kaomoji/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//alfred-kaomoji) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/alfred-kaomoji) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/alfred-kaomoji) [![npm](https://img.shields.io/npm/v/%40stephansama%2Falfred-kaomoji?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/alfred-kaomoji) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/alfred-kaomoji)](https://socket.dev/npm/package/@stephansama/alfred-kaomoji/overview) diff --git a/core/astro-iconify-svgmap/README.md b/core/astro-iconify-svgmap/README.md index 98be100d..0407466e 100644 --- a/core/astro-iconify-svgmap/README.md +++ b/core/astro-iconify-svgmap/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//astro-iconify-svgmap) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/astro-iconify-svgmap) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/astro-iconify-svgmap) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fastro-iconify-svgmap?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/astro-iconify-svgmap) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/astro-iconify-svgmap)](https://socket.dev/npm/package/@stephansama/astro-iconify-svgmap/overview) diff --git a/core/auto-readme/README.md b/core/auto-readme/README.md index 30f7da2a..8330ee67 100644 --- a/core/auto-readme/README.md +++ b/core/auto-readme/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//auto-readme) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/auto-readme) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/auto-readme) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fauto-readme?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/auto-readme) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/auto-readme)](https://socket.dev/npm/package/@stephansama/auto-readme/overview) diff --git a/core/auto-readme/src/icon.ts b/core/auto-readme/src/icon.ts index b29cb1fd..fad4a50a 100644 --- a/core/auto-readme/src/icon.ts +++ b/core/auto-readme/src/icon.ts @@ -83,5 +83,5 @@ function capitalize(word: string) { } function isAlternateName(name: unknown): name is keyof typeof alternateNames { - return Object.keys(alternateNames).includes(name as string); + return typeof name === "string" && name in alternateNames; } diff --git a/core/auto-readme/src/plugin.ts b/core/auto-readme/src/plugin.ts index 70ddaa1c..95f3d29c 100644 --- a/core/auto-readme/src/plugin.ts +++ b/core/auto-readme/src/plugin.ts @@ -112,7 +112,7 @@ export const autoReadmeRemarkPlugin: Plugin<[Config, ActionData], Root> = key: name, name, scope, - unscoped_name: name?.replace(scope, ""), + unscoped_name: name?.replace(`${scope}/`, ""), value: version, version, }; @@ -135,7 +135,9 @@ export const autoReadmeRemarkPlugin: Plugin<[Config, ActionData], Root> = const contrastText = getContrastText(color); const linkUrl = `https://npmx.dev/package/${key}`; - const badgeKey = key.replaceAll("-", "--").replace("_", "__"); + const badgeKey = key + .replaceAll("-", "--") + .replaceAll("_", "__"); const imageUrl = `https://img.shields.io/badge/${badgeKey}-${resolveVersion( { catalogs: first?.catalogs, @@ -147,9 +149,10 @@ export const autoReadmeRemarkPlugin: Plugin<[Config, ActionData], Root> = } const ast = fromMarkdown( - [templateBadges.join("\n"), packageBadges.join("\n")].join( - "\n\n", - ), + [ + templateBadges.filter(Boolean).join("\n"), + packageBadges.filter(Boolean).join("\n"), + ].join("\n\n"), ); return [start, ast, end]; diff --git a/core/catppuccin-jsonresume-theme/README.md b/core/catppuccin-jsonresume-theme/README.md index 393a1b26..4446a5c0 100644 --- a/core/catppuccin-jsonresume-theme/README.md +++ b/core/catppuccin-jsonresume-theme/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-jsonresume-theme) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-jsonresume-theme) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-jsonresume-theme) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-jsonresume-theme?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-jsonresume-theme) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-jsonresume-theme)](https://socket.dev/npm/package/@stephansama/catppuccin-jsonresume-theme/overview) diff --git a/core/catppuccin-opml/README.md b/core/catppuccin-opml/README.md index 2d0a2d57..38ffbf86 100644 --- a/core/catppuccin-opml/README.md +++ b/core/catppuccin-opml/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-opml) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-opml) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-opml) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-opml?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-opml) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-opml)](https://socket.dev/npm/package/@stephansama/catppuccin-opml/overview) diff --git a/core/catppuccin-rss/README.md b/core/catppuccin-rss/README.md index 3a9ee175..2d1b2466 100644 --- a/core/catppuccin-rss/README.md +++ b/core/catppuccin-rss/README.md @@ -2,7 +2,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-rss) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-rss) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-rss) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-rss?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-rss) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-rss)](https://socket.dev/npm/package/@stephansama/catppuccin-rss/overview) diff --git a/core/catppuccin-typedoc/README.md b/core/catppuccin-typedoc/README.md index 883b90b4..03dbaf93 100644 --- a/core/catppuccin-typedoc/README.md +++ b/core/catppuccin-typedoc/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-typedoc) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-typedoc) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-typedoc) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-typedoc?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-typedoc) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-typedoc)](https://socket.dev/npm/package/@stephansama/catppuccin-typedoc/overview) diff --git a/core/catppuccin-xsl/README.md b/core/catppuccin-xsl/README.md index c17dd26d..d0019a35 100644 --- a/core/catppuccin-xsl/README.md +++ b/core/catppuccin-xsl/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//catppuccin-xsl) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-xsl) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-xsl) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-xsl?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/catppuccin-xsl) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/catppuccin-xsl)](https://socket.dev/npm/package/@stephansama/catppuccin-xsl/overview) diff --git a/core/eslint-config/README.md b/core/eslint-config/README.md index 423916fb..6d15d76c 100644 --- a/core/eslint-config/README.md +++ b/core/eslint-config/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//eslint-config) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/eslint-config) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/eslint-config) [![npm](https://img.shields.io/npm/v/%40stephansama%2Feslint-config?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/eslint-config) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/eslint-config)](https://socket.dev/npm/package/@stephansama/eslint-config/overview) diff --git a/core/find-makefile-targets/README.md b/core/find-makefile-targets/README.md index a5b64ea4..e7521627 100644 --- a/core/find-makefile-targets/README.md +++ b/core/find-makefile-targets/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//find-makefile-targets) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/find-makefile-targets) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/find-makefile-targets) [![npm](https://img.shields.io/npm/v/%40stephansama%2Ffind-makefile-targets?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/find-makefile-targets) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/find-makefile-targets)](https://socket.dev/npm/package/@stephansama/find-makefile-targets/overview) diff --git a/core/github-env/README.md b/core/github-env/README.md index 5aa0b77e..9febc29e 100644 --- a/core/github-env/README.md +++ b/core/github-env/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//github-env) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/github-env) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/github-env) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fgithub-env?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/github-env) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/github-env)](https://socket.dev/npm/package/@stephansama/github-env/overview) diff --git a/core/multipublish/README.md b/core/multipublish/README.md index f3f5eb92..1ebb95bf 100644 --- a/core/multipublish/README.md +++ b/core/multipublish/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//multipublish) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/multipublish) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/multipublish) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fmultipublish?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/multipublish) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/multipublish)](https://socket.dev/npm/package/@stephansama/multipublish/overview) diff --git a/core/pnpm-hooks/README.md b/core/pnpm-hooks/README.md index 2a7e1877..4fc94661 100644 --- a/core/pnpm-hooks/README.md +++ b/core/pnpm-hooks/README.md @@ -2,7 +2,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//pnpm-hooks) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/pnpm-hooks) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/pnpm-hooks) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fpnpm-hooks?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/pnpm-hooks) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/pnpm-hooks)](https://socket.dev/npm/package/@stephansama/pnpm-hooks/overview) diff --git a/core/prettier-plugin-handlebars/README.md b/core/prettier-plugin-handlebars/README.md index 2311b4b5..1fc6d60d 100644 --- a/core/prettier-plugin-handlebars/README.md +++ b/core/prettier-plugin-handlebars/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//prettier-plugin-handlebars) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/prettier-plugin-handlebars) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/prettier-plugin-handlebars) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fprettier-plugin-handlebars?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/prettier-plugin-handlebars) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/prettier-plugin-handlebars)](https://socket.dev/npm/package/@stephansama/prettier-plugin-handlebars/overview) diff --git a/core/remark-asciinema/README.md b/core/remark-asciinema/README.md index 1180a5fe..a48959f4 100644 --- a/core/remark-asciinema/README.md +++ b/core/remark-asciinema/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//remark-asciinema) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/remark-asciinema) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/remark-asciinema) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fremark-asciinema?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/remark-asciinema) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/remark-asciinema)](https://socket.dev/npm/package/@stephansama/remark-asciinema/overview) diff --git a/core/single-file/README.md b/core/single-file/README.md index 36572723..19d8e9fd 100644 --- a/core/single-file/README.md +++ b/core/single-file/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//single-file) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/single-file) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/single-file) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fsingle-file?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/single-file) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/single-file)](https://socket.dev/npm/package/@stephansama/single-file/overview) diff --git a/core/svelte-social-share-links/README.md b/core/svelte-social-share-links/README.md index c65e5662..cbb3511f 100644 --- a/core/svelte-social-share-links/README.md +++ b/core/svelte-social-share-links/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//svelte-social-share-links) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/svelte-social-share-links) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/svelte-social-share-links) [![npm](https://img.shields.io/npm/v/%40stephansama%2Fsvelte-social-share-links?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/svelte-social-share-links) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/svelte-social-share-links)](https://socket.dev/npm/package/@stephansama/svelte-social-share-links/overview) diff --git a/core/typed-env/README.md b/core/typed-env/README.md index ed0b7740..9f0e7673 100644 --- a/core/typed-env/README.md +++ b/core/typed-env/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//typed-env) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-env) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-env) [![npm](https://img.shields.io/npm/v/%40stephansama%2Ftyped-env?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-env) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-env)](https://socket.dev/npm/package/@stephansama/typed-env/overview) diff --git a/core/typed-events/README.md b/core/typed-events/README.md index 874c1db8..a506f4d0 100644 --- a/core/typed-events/README.md +++ b/core/typed-events/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//typed-events) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-events) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-events) [![npm](https://img.shields.io/npm/v/%40stephansama%2Ftyped-events?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-events) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-events)](https://socket.dev/npm/package/@stephansama/typed-events/overview) diff --git a/core/typed-nocodb-api/README.md b/core/typed-nocodb-api/README.md index 63608144..6e0321b5 100644 --- a/core/typed-nocodb-api/README.md +++ b/core/typed-nocodb-api/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//typed-nocodb-api) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-nocodb-api) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-nocodb-api) [![npm](https://img.shields.io/npm/v/%40stephansama%2Ftyped-nocodb-api?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-nocodb-api) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-nocodb-api)](https://socket.dev/npm/package/@stephansama/typed-nocodb-api/overview) diff --git a/core/typed-templates/README.md b/core/typed-templates/README.md index d16a7d12..e6949fb0 100644 --- a/core/typed-templates/README.md +++ b/core/typed-templates/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//typed-templates) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/typed-templates) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/typed-templates) [![npm](https://img.shields.io/npm/v/%40stephansama%2Ftyped-templates?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/typed-templates) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/typed-templates)](https://socket.dev/npm/package/@stephansama/typed-templates/overview) diff --git a/core/types-github-action-env/README.md b/core/types-github-action-env/README.md index e3cce78c..adc5c4da 100644 --- a/core/types-github-action-env/README.md +++ b/core/types-github-action-env/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//types-github-action-env) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/types-github-action-env) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/types-github-action-env) [![npm](https://img.shields.io/npm/v/%40stephansama%2Ftypes-github-action-env?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/types-github-action-env) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/types-github-action-env)](https://socket.dev/npm/package/@stephansama/types-github-action-env/overview) diff --git a/core/types-lhci/README.md b/core/types-lhci/README.md index 93008829..665e7c6c 100644 --- a/core/types-lhci/README.md +++ b/core/types-lhci/README.md @@ -4,7 +4,7 @@ -[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core//types-lhci) +[![source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/types-lhci) [![documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/types-lhci) [![npm](https://img.shields.io/npm/v/%40stephansama%2Ftypes-lhci?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmx.dev/package/@stephansama/types-lhci) [![socket.dev](https://badge.socket.dev/npm/package/@stephansama/types-lhci)](https://socket.dev/npm/package/@stephansama/types-lhci/overview) From b4634e89980005bcceb2fd25a25811ff9cc204cc Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 11:30:10 -0400 Subject: [PATCH 08/15] perf(core): update import paths to use package names --- core/auto-readme/src/plugin.ts | 6 ------ core/prettier-plugin-handlebars/README.md | 2 +- core/prettier-plugin-handlebars/example/index.js | 2 +- core/remark-asciinema/README.md | 2 +- core/remark-asciinema/example/index.js | 2 +- 5 files changed, 4 insertions(+), 10 deletions(-) diff --git a/core/auto-readme/src/plugin.ts b/core/auto-readme/src/plugin.ts index 95f3d29c..2e6fb52a 100644 --- a/core/auto-readme/src/plugin.ts +++ b/core/auto-readme/src/plugin.ts @@ -51,12 +51,6 @@ export const autoReadmeRemarkPlugin: Plugin<[Config, ActionData], Root> = }); zone(tree, /.*BADGE.*/gi, function (start, _, end) { - const value = start.type === "html" && start.value; - const options = value && parseComment(value); - if (!options) throw new Error("not able to parse comment"); - - INFO("found badge zone"); - const first = data.find((d) => d?.action === "BADGE"); const dependencyTypes = config.badgeOptions?.dependencyTypes || [ "dependencies", diff --git a/core/prettier-plugin-handlebars/README.md b/core/prettier-plugin-handlebars/README.md index 1fc6d60d..72f3f137 100644 --- a/core/prettier-plugin-handlebars/README.md +++ b/core/prettier-plugin-handlebars/README.md @@ -38,7 +38,7 @@ pnpm install @stephansama/prettier-plugin-handlebars ## Usage ```javascript -import prettierPluginHandlebars from "../dist/index.mjs"; +import prettierPluginHandlebars from "@stephansama/prettier-plugin-handlebars"; /** @type {import("prettier").Config} */ export default { diff --git a/core/prettier-plugin-handlebars/example/index.js b/core/prettier-plugin-handlebars/example/index.js index 0dab8c2f..2f8844e1 100644 --- a/core/prettier-plugin-handlebars/example/index.js +++ b/core/prettier-plugin-handlebars/example/index.js @@ -1,4 +1,4 @@ -import prettierPluginHandlebars from "../dist/index.mjs"; +import prettierPluginHandlebars from "../dist/index.cjs"; /** @type {import("prettier").Config} */ export default { diff --git a/core/remark-asciinema/README.md b/core/remark-asciinema/README.md index a48959f4..801016f8 100644 --- a/core/remark-asciinema/README.md +++ b/core/remark-asciinema/README.md @@ -58,7 +58,7 @@ pnpm install @stephansama/remark-asciinema ```javascript import { remark } from "remark"; -import asciinema from "../dist/index.mjs"; +import asciinema from "@stephansama/remark-asciinema"; export async function pipeline() { const file = await remark() diff --git a/core/remark-asciinema/example/index.js b/core/remark-asciinema/example/index.js index ed01ba79..fe98d9bb 100644 --- a/core/remark-asciinema/example/index.js +++ b/core/remark-asciinema/example/index.js @@ -1,6 +1,6 @@ import { remark } from "remark"; -import asciinema from "../dist/index.mjs"; +import asciinema from "../dist/index.cjs"; export async function pipeline() { const file = await remark() From 516ec3d2656ec6142d0bb3df05d4455fb7beb629 Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 11:37:08 -0400 Subject: [PATCH 09/15] docs(core/typed-env): update import to package name and adjust exports --- core/typed-env/README.md | 2 +- .../__snapshots__/tsnapi/index.snapshot.d.ts | 15 +++++++++++++++ .../__snapshots__/tsnapi/index.snapshot.js | 6 ++++++ core/typed-env/package.json | 8 +------- core/typed-env/tsdown.config.ts | 7 +++---- 5 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 core/typed-env/__snapshots__/tsnapi/index.snapshot.d.ts create mode 100644 core/typed-env/__snapshots__/tsnapi/index.snapshot.js diff --git a/core/typed-env/README.md b/core/typed-env/README.md index 9f0e7673..a66a1172 100644 --- a/core/typed-env/README.md +++ b/core/typed-env/README.md @@ -44,7 +44,7 @@ is already a namespace import ```javascript import * as z from "zod"; -import { createEnvironment } from "../dist/index.mjs"; +import { createEnvironment } from "@stephansama/typed-env"; export const config = createEnvironment( z.object({ diff --git a/core/typed-env/__snapshots__/tsnapi/index.snapshot.d.ts b/core/typed-env/__snapshots__/tsnapi/index.snapshot.d.ts new file mode 100644 index 00000000..d23dfb34 --- /dev/null +++ b/core/typed-env/__snapshots__/tsnapi/index.snapshot.d.ts @@ -0,0 +1,15 @@ +/** + * Generated by tsnapi — public API snapshot of `@stephansama/typed-env` + */ +// #region Functions +export declare function createEnvironment(_: Schema, _?: dotenvx.DotenvConfigOptions | true): { + generateExample(_: string): Promise; + loadEnv: (_?: dotenvx.DotenvConfigOptions) => dotenvx.DotenvConfigOutput; + schema: Schema; + validate({ + env: environment + }?: { + env?: Record; + }): Promise>; +}; +// #endregion \ No newline at end of file diff --git a/core/typed-env/__snapshots__/tsnapi/index.snapshot.js b/core/typed-env/__snapshots__/tsnapi/index.snapshot.js new file mode 100644 index 00000000..f9b46e26 --- /dev/null +++ b/core/typed-env/__snapshots__/tsnapi/index.snapshot.js @@ -0,0 +1,6 @@ +/** + * Generated by tsnapi — public API snapshot of `@stephansama/typed-env` + */ +// #region Functions +export function createEnvironment(_, _) {} +// #endregion \ No newline at end of file diff --git a/core/typed-env/package.json b/core/typed-env/package.json index 8f048fc7..193af87d 100644 --- a/core/typed-env/package.json +++ b/core/typed-env/package.json @@ -21,15 +21,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.mjs", - "require": "./dist/index.cjs" - }, + ".": "./dist/index.mjs", "./package.json": "./package.json" }, - "main": "./dist/index.cjs", - "module": "./dist/index.mjs", - "types": "./dist/index.d.cts", "files": [ "dist", "skills" diff --git a/core/typed-env/tsdown.config.ts b/core/typed-env/tsdown.config.ts index 26817da2..ca5a3504 100644 --- a/core/typed-env/tsdown.config.ts +++ b/core/typed-env/tsdown.config.ts @@ -1,13 +1,12 @@ import { defineConfig } from "tsdown"; -// import ApiSnapshot from "tsnapi/rolldown"; +import ApiSnapshot from "tsnapi/rolldown"; export default defineConfig({ - attw: true, + attw: { profile: "esm-only" }, dts: true, entry: ["src/index.ts"], exports: true, - format: ["esm", "cjs"], - // plugins: [ApiSnapshot()], + plugins: [ApiSnapshot()], publint: true, target: "esnext", }); From b71ecd7e2da42d41ec68627b07b3758e85b5bea7 Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 11:39:32 -0400 Subject: [PATCH 10/15] chore(package): update dependencies --- .changeset/hip-lemons-join.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .changeset/hip-lemons-join.md diff --git a/.changeset/hip-lemons-join.md b/.changeset/hip-lemons-join.md new file mode 100644 index 00000000..de5cbfb2 --- /dev/null +++ b/.changeset/hip-lemons-join.md @@ -0,0 +1,29 @@ +--- +"@stephansama/auto-readme": minor +"@stephansama/catppuccin-jsonresume-theme": patch +"@stephansama/prettier-plugin-handlebars": patch +"@stephansama/svelte-social-share-links": patch +"@stephansama/types-github-action-env": patch +"@stephansama/find-makefile-targets": patch +"@stephansama/astro-iconify-svgmap": patch +"@stephansama/catppuccin-typedoc": patch +"@stephansama/remark-asciinema": patch +"@stephansama/typed-nocodb-api": patch +"@stephansama/catppuccin-opml": patch +"@stephansama/typed-templates": patch +"@stephansama/alfred-kaomoji": patch +"@stephansama/catppuccin-rss": patch +"@stephansama/catppuccin-xsl": patch +"@stephansama/ai-commit-msg": patch +"@stephansama/eslint-config": patch +"@stephansama/multipublish": patch +"@stephansama/typed-events": patch +"@stephansama/single-file": patch +"@stephansama/github-env": patch +"@stephansama/pnpm-hooks": patch +"@stephansama/types-lhci": patch +"@stephansama/typed-env": patch +"create-stephansama-example": patch +--- + +updated auto-readme badge implementation From b3b7353e48831c73591586baa05d6295f3f8ff88 Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 11:43:40 -0400 Subject: [PATCH 11/15] docs(remark): remove example config file --- .../example/remark-usage-example-f53juete64xnd32naai-5.js | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 core/eslint-config/example/remark-usage-example-f53juete64xnd32naai-5.js diff --git a/core/eslint-config/example/remark-usage-example-f53juete64xnd32naai-5.js b/core/eslint-config/example/remark-usage-example-f53juete64xnd32naai-5.js deleted file mode 100644 index 294778e3..00000000 --- a/core/eslint-config/example/remark-usage-example-f53juete64xnd32naai-5.js +++ /dev/null @@ -1,5 +0,0 @@ -import { config, presets } from "../dist/index.mjs"; -const loadConfig = async () => await config({ - ...presets.base -}); -export default loadConfig; \ No newline at end of file From 1b402e0d5807c73bd7635c5620ed1601124bc946 Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 13:11:50 -0400 Subject: [PATCH 12/15] test(plugin): add test cases for plugin functionality --- core/auto-readme/src/icon.test.ts | 53 ++++ core/auto-readme/src/pipeline.test.ts | 141 +++++++++++ core/auto-readme/src/plugin.test.ts | 341 ++++++++++++++++++++++++++ 3 files changed, 535 insertions(+) create mode 100644 core/auto-readme/src/icon.test.ts create mode 100644 core/auto-readme/src/pipeline.test.ts create mode 100644 core/auto-readme/src/plugin.test.ts diff --git a/core/auto-readme/src/icon.test.ts b/core/auto-readme/src/icon.test.ts new file mode 100644 index 00000000..78d2b02c --- /dev/null +++ b/core/auto-readme/src/icon.test.ts @@ -0,0 +1,53 @@ +import * as icons from "simple-icons"; +import { afterEach, expect, it, vi } from "vitest"; + +import * as logger from "./log"; +import * as module from "./icon"; + +afterEach(vi.clearAllMocks); + +it.each([ + ["handlebars", "handlebarsdotjs"], + ["@commitlint/cli", "commitlint"], + ["vue", "vuedotjs"], + ["c#", "sharp"], + ["f#", "fsharp"], + ["c++", "cplusplus"], + ["react-router", "reactrouter"], + ["REACT", "react"], +] as [string, string][])( + "createSlugName(%s) returns %s", + (input, expected) => { + expect(module.createSlugName(input)).toBe(expected); + }, +); + +it("returns colorMapOverride color for @tanstack/ai", () => { + const [color, slug] = module.getSimpleIconColor("@tanstack/ai"); + expect(color).toBe("f6339a"); + expect(slug).toBe("@tanstack/ai"); +}); + +it("returns colorMapOverride color for handlebars", () => { + const [color, slug] = module.getSimpleIconColor("handlebars"); + expect(color).toBe("d46926"); + expect(slug).toBe("handlebarsdotjs"); +}); + +it("returns hex from simple-icons for react", () => { + const [color, slug] = module.getSimpleIconColor("react"); + expect(color).toBe(icons.siReact.hex); + expect(slug).toBe("react"); +}); + +it("returns undefined color for unknown package", () => { + const [color, slug] = module.getSimpleIconColor("nonexistent-xyz-package"); + expect(color).toBeUndefined(); + expect(slug).toBe("nonexistentxyzpackage"); +}); + +it("calls INFO logger when getting icon color", () => { + const infoSpy = vi.spyOn(logger, "INFO"); + module.getSimpleIconColor("react"); + expect(infoSpy).toHaveBeenCalledWith(expect.stringContaining("react")); +}); diff --git a/core/auto-readme/src/pipeline.test.ts b/core/auto-readme/src/pipeline.test.ts new file mode 100644 index 00000000..c6239846 --- /dev/null +++ b/core/auto-readme/src/pipeline.test.ts @@ -0,0 +1,141 @@ +import remarkCodeImport from "remark-code-import"; +import remarkCollapse from "remark-collapse"; +import remarkToc from "remark-toc"; +import remarkUsage from "remark-usage"; +import { afterEach, beforeEach, expect, it, vi } from "vitest"; + +import type { ActionData } from "./data"; +import type { Config } from "./schema"; + +import { autoReadmeRemarkPlugin } from "./plugin"; +import * as module from "./pipeline"; + +const mocks = vi.hoisted(() => { + const pipeline = { + process: vi.fn().mockResolvedValue({ toString: vi.fn().mockReturnValue("# out") }), + use: vi.fn(), + }; + pipeline.use.mockReturnValue(pipeline); + return { + createFindParameter: vi.fn().mockReturnValue(vi.fn().mockReturnValue(undefined)), + fileExists: vi.fn().mockResolvedValue(true), + pipeline, + remark: vi.fn().mockReturnValue(pipeline), + warn: vi.fn(), + }; +}); + +vi.mock("remark", () => ({ remark: mocks.remark })); +vi.mock("remark-code-import", () => ({ default: vi.fn() })); +vi.mock("remark-collapse", () => ({ default: vi.fn() })); +vi.mock("remark-toc", () => ({ default: vi.fn() })); +vi.mock("remark-usage", () => ({ default: vi.fn() })); +vi.mock("vfile", () => ({ VFile: vi.fn() })); +vi.mock("./plugin", () => ({ autoReadmeRemarkPlugin: vi.fn() })); +vi.mock("./data", () => ({ createFindParameter: mocks.createFindParameter })); +vi.mock("./utilities", () => ({ fileExists: mocks.fileExists })); +vi.mock("./log", () => ({ INFO: vi.fn(), WARN: mocks.warn })); + +afterEach(vi.clearAllMocks); + +beforeEach(() => { + mocks.pipeline.use.mockReturnValue(mocks.pipeline); + mocks.pipeline.process.mockResolvedValue({ toString: vi.fn().mockReturnValue("# out") }); + mocks.fileExists.mockResolvedValue(true); + mocks.createFindParameter.mockReturnValue(vi.fn().mockReturnValue(undefined)); +}); + +const baseConfig: Config = { + collapseHeadings: [], + enableToc: false, + enableUsage: false, + tocHeading: "Table of contents", + usageFile: "", + usageHeading: "Usage", +}; + +const noData: ActionData = []; + +async function parse(config: Config = baseConfig, data: ActionData = noData) { + return module.parse("# content", "/test/README.md", "/test", config, data); +} + +it("always registers autoReadmeRemarkPlugin and remarkCodeImport", async () => { + await parse(); + + expect(mocks.pipeline.use).toHaveBeenCalledWith(autoReadmeRemarkPlugin, baseConfig, noData); + expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkCodeImport, {}); +}); + +it("registers remarkUsage when USAGE action exists and example file exists", async () => { + const mockFind = vi.fn().mockReturnValue("./example.js"); + mocks.createFindParameter.mockReturnValue(mockFind); + mocks.fileExists.mockResolvedValue(true); + + const data = [{ action: "USAGE", parameters: [] }] as unknown as ActionData; + await parse(baseConfig, data); + + expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkUsage, expect.any(Object)); +}); + +it("does not register remarkUsage when example file does not exist and warns", async () => { + const mockFind = vi.fn().mockReturnValue("./example.js"); + mocks.createFindParameter.mockReturnValue(mockFind); + mocks.fileExists.mockResolvedValue(false); + + const data = [{ action: "USAGE", parameters: [] }] as unknown as ActionData; + await parse(baseConfig, data); + + expect(mocks.pipeline.use).not.toHaveBeenCalledWith(remarkUsage, expect.anything()); + expect(mocks.warn).toHaveBeenCalled(); +}); + +it("registers remarkUsage when config.enableUsage is true and usageFile resolves", async () => { + const mockFind = vi.fn().mockReturnValue(undefined); + mocks.createFindParameter.mockReturnValue(mockFind); + mocks.fileExists.mockResolvedValue(true); + + const config: Config = { ...baseConfig, enableUsage: true, usageFile: "example.js" }; + await parse(config, noData); + + expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkUsage, expect.any(Object)); +}); + +it("registers remarkToc when config.enableToc is true", async () => { + const config: Config = { ...baseConfig, enableToc: true }; + await parse(config); + + expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkToc, expect.objectContaining({ heading: "Table of contents" })); +}); + +it("does not register remarkToc when config.enableToc is false", async () => { + await parse({ ...baseConfig, enableToc: false }); + + expect(mocks.pipeline.use).not.toHaveBeenCalledWith(remarkToc, expect.anything()); +}); + +it("registers remarkCollapse when config.enableToc is true", async () => { + await parse({ ...baseConfig, enableToc: true }); + + expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkCollapse, expect.any(Object)); +}); + +it("registers remarkCollapse when config.collapseHeadings has entries", async () => { + await parse({ ...baseConfig, enableToc: false, collapseHeadings: ["## Installation"] }); + + expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkCollapse, expect.any(Object)); +}); + +it("does not register remarkCollapse when neither enableToc nor collapseHeadings", async () => { + await parse({ ...baseConfig, collapseHeadings: [], enableToc: false }); + + expect(mocks.pipeline.use).not.toHaveBeenCalledWith(remarkCollapse, expect.anything()); +}); + +it("returns the processed markdown string", async () => { + mocks.pipeline.process.mockResolvedValue({ toString: () => "# result" }); + + const result = await parse(); + + expect(result).toBe("# result"); +}); diff --git a/core/auto-readme/src/plugin.test.ts b/core/auto-readme/src/plugin.test.ts new file mode 100644 index 00000000..bfb90717 --- /dev/null +++ b/core/auto-readme/src/plugin.test.ts @@ -0,0 +1,341 @@ +import { remark } from "remark"; +import { afterEach, expect, it, vi } from "vitest"; + +import type { ActionData } from "./data"; +import type { Config } from "./schema"; + +import { autoReadmeRemarkPlugin } from "./plugin"; +import { defaultTableHeadings, defaultTemplates } from "./schema"; + +const mocks = vi.hoisted(() => ({ + getContrastText: vi.fn().mockReturnValue("ffffff"), + getSimpleIconColor: vi.fn().mockReturnValue(["61DAFB", "react"]), + resolveVersion: vi.fn().mockImplementation(({ version }: { version: string }) => version), +})); + +vi.mock("./color", () => ({ getContrastText: mocks.getContrastText })); +vi.mock("./icon", () => ({ getSimpleIconColor: mocks.getSimpleIconColor })); +vi.mock("./log", () => ({ INFO: vi.fn() })); +vi.mock("./utilities", () => ({ resolveVersion: mocks.resolveVersion })); + +afterEach(vi.clearAllMocks); + +const defaultConfig: Config = { + badgeOptions: { dependencyTypes: ["dependencies", "devDependencies"], templates: [] }, + disableEmojis: false, + headings: defaultTableHeadings, + onlyShowPublicPackages: false, + removeScope: "", + templates: defaultTemplates, +}; + +async function processMarkdown( + md: string, + config: Config = defaultConfig, + data: ActionData = [], +) { + return ( + await remark() + .use(autoReadmeRemarkPlugin, config, data) + .process(md) + ).toString(); +} + +function withZone(name: string) { + return `\n\n`; +} + +// BADGE zone + +it("BADGE: generates shield badge for dependency with known icon color", async () => { + mocks.getSimpleIconColor.mockReturnValue(["61DAFB", "react"]); + mocks.getContrastText.mockReturnValue("000000"); + + const data = [ + { + action: "BADGE", + catalogs: undefined, + parameters: [], + pkgJson: { dependencies: { react: "^18.0.0" }, devDependencies: {}, name: "my-package", version: "1.0.0" }, + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("BADGE"), defaultConfig, data); + + expect(result).toContain("img.shields.io/badge"); + expect(result).toContain("61DAFB"); + expect(result).toContain("react"); +}); + +it("BADGE: skips badge when getSimpleIconColor returns no color", async () => { + mocks.getSimpleIconColor.mockReturnValue([undefined, "unknownslug"]); + + const data = [ + { + action: "BADGE", + catalogs: undefined, + parameters: [], + pkgJson: { dependencies: { "unknown-lib": "^1.0.0" }, devDependencies: {}, name: "my-package", version: "1.0.0" }, + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("BADGE"), defaultConfig, data); + + expect(result).not.toContain("img.shields.io/badge"); +}); + +it("BADGE: includes template badges when configured", async () => { + const config: Config = { + ...defaultConfig, + badgeOptions: { + dependencyTypes: ["dependencies"], + templates: [ + { + image: "https://img.shields.io/npm/v/{{name}}", + label: "npm", + url: "https://npmjs.com/package/{{name}}", + }, + ], + }, + }; + + const data = [ + { + action: "BADGE", + catalogs: undefined, + parameters: [], + pkgJson: { dependencies: {}, devDependencies: {}, name: "my-package", version: "1.0.0" }, + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("BADGE"), config, data); + + expect(result).toContain("npmjs.com/package/my-package"); + expect(result).toContain("npm"); +}); + +it("BADGE: skips template badges when --skip-templates is present", async () => { + const config: Config = { + ...defaultConfig, + badgeOptions: { + dependencyTypes: ["dependencies"], + templates: [ + { + image: "https://img.shields.io/npm/v/{{name}}", + label: "npm", + url: "https://npmjs.com/package/{{name}}", + }, + ], + }, + }; + + const data = [ + { + action: "BADGE", + catalogs: undefined, + parameters: ["--skip-templates"], + pkgJson: { dependencies: {}, devDependencies: {}, name: "my-package", version: "1.0.0" }, + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("BADGE"), config, data); + + expect(result).not.toContain("npmjs.com/package"); +}); + +// ACTION zone + +it("ACTION: generates markdown table for TABLE format", async () => { + const data = [ + { + action: "ACTION", + actionYaml: { + inputs: { + "dry-run": { default: "false", description: "Skip changes", required: false }, + token: { default: "github_token", description: "GitHub token", required: true }, + }, + }, + parameters: [], + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("ACTION"), defaultConfig, data); + + expect(result).toContain("token"); + expect(result).toContain("dry-run"); + expect(result).toMatch(/\|.*\|/); +}); + +it("ACTION: generates list for LIST format", async () => { + const data = [ + { + action: "ACTION", + actionYaml: { + inputs: { + token: { default: "github_token", description: "GitHub token", required: true }, + }, + }, + parameters: [], + }, + ] as unknown as ActionData; + + const result = await processMarkdown( + "\n\n", + defaultConfig, + data, + ); + + expect(result).toContain("- "); + expect(result).toContain("token"); + expect(result).not.toMatch(/\|.*\|/); +}); + +// PKG zone + +it("PKG: generates table with dependencies and devDependencies", async () => { + const data = [ + { + action: "PKG", + catalogs: undefined, + parameters: [], + pkgJson: { + dependencies: { react: "^18.0.0" }, + devDependencies: { typescript: "^5.0.0" }, + }, + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("PKG"), defaultConfig, data); + + expect(result).toContain("react"); + expect(result).toContain("typescript"); + expect(result).toMatch(/\|.*\|/); +}); + +it("PKG: returns empty content for LIST format", async () => { + const data = [ + { + action: "PKG", + catalogs: undefined, + parameters: [], + pkgJson: { dependencies: { react: "^18.0.0" }, devDependencies: {} }, + }, + ] as unknown as ActionData; + + const result = await processMarkdown( + "\n\n", + defaultConfig, + data, + ); + + expect(result.trim()).not.toContain("|"); +}); + +it("PKG: renders workspace: version as inline code", async () => { + const data = [ + { + action: "PKG", + catalogs: undefined, + parameters: [], + pkgJson: { + dependencies: { react: "workspace:*" }, + devDependencies: {}, + }, + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("PKG"), defaultConfig, data); + + expect(result).toContain("`workspace:*`"); +}); + +// WORKSPACE zone + +it("WORKSPACE: generates table with package names", async () => { + const data = [ + { + action: "WORKSPACE", + isPnpm: false, + parameters: [], + root: "/root", + workspaces: { + packages: [ + { + dir: "/root/packages/my-pkg", + packageJson: { description: "A test package", name: "@scope/my-pkg", version: "1.0.0" }, + }, + ], + root: { dir: "/root", packageJson: {} }, + rootPackageJson: {}, + }, + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("WORKSPACE"), defaultConfig, data); + + expect(result).toContain("my-pkg"); + expect(result).toMatch(/\|.*\|/); +}); + +it("WORKSPACE: excludes private packages when onlyShowPublicPackages is true", async () => { + const config: Config = { ...defaultConfig, onlyShowPublicPackages: true }; + + const data = [ + { + action: "WORKSPACE", + isPnpm: false, + parameters: [], + root: "/root", + workspaces: { + packages: [ + { + dir: "/root/packages/public-pkg", + packageJson: { name: "public-pkg", version: "1.0.0" }, + }, + { + dir: "/root/packages/private-pkg", + packageJson: { name: "private-pkg", private: true, version: "1.0.0" }, + }, + ], + root: { dir: "/root", packageJson: {} }, + rootPackageJson: {}, + }, + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("WORKSPACE"), config, data); + + expect(result).toContain("public-pkg"); + expect(result).not.toContain("private-pkg"); +}); + +// ZOD zone + +it("ZOD: inserts pre-rendered markdown body into zone", async () => { + const data = [ + { + action: "ZOD", + body: "| Name | Type |\n| --- | --- |\n| field | string |", + parameters: [], + }, + ] as unknown as ActionData; + + const result = await processMarkdown(withZone("ZOD"), defaultConfig, data); + + expect(result).toContain("Name"); + expect(result).toContain("field"); +}); + +it("ZOD: throws when body is missing", async () => { + const data = [ + { + action: "ZOD", + body: undefined, + parameters: [], + }, + ] as unknown as ActionData; + + await expect( + processMarkdown(withZone("ZOD"), defaultConfig, data), + ).rejects.toThrow("unable to load zod body"); +}); From 1da7edd0808fe5fb2bc2a83d202c8b5b85d39aa4 Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 13:17:15 -0400 Subject: [PATCH 13/15] perf(icon.test): fix test formatting and alignment --- core/auto-readme/src/icon.test.ts | 11 ++- core/auto-readme/src/pipeline.test.ts | 76 +++++++++++++++----- core/auto-readme/src/plugin.test.ts | 100 +++++++++++++++++++++----- 3 files changed, 143 insertions(+), 44 deletions(-) diff --git a/core/auto-readme/src/icon.test.ts b/core/auto-readme/src/icon.test.ts index 78d2b02c..e86ae3cd 100644 --- a/core/auto-readme/src/icon.test.ts +++ b/core/auto-readme/src/icon.test.ts @@ -1,8 +1,8 @@ import * as icons from "simple-icons"; import { afterEach, expect, it, vi } from "vitest"; -import * as logger from "./log"; import * as module from "./icon"; +import * as logger from "./log"; afterEach(vi.clearAllMocks); @@ -15,12 +15,9 @@ it.each([ ["c++", "cplusplus"], ["react-router", "reactrouter"], ["REACT", "react"], -] as [string, string][])( - "createSlugName(%s) returns %s", - (input, expected) => { - expect(module.createSlugName(input)).toBe(expected); - }, -); +] as [string, string][])("createSlugName(%s) returns %s", (input, expected) => { + expect(module.createSlugName(input)).toBe(expected); +}); it("returns colorMapOverride color for @tanstack/ai", () => { const [color, slug] = module.getSimpleIconColor("@tanstack/ai"); diff --git a/core/auto-readme/src/pipeline.test.ts b/core/auto-readme/src/pipeline.test.ts index c6239846..7edd2088 100644 --- a/core/auto-readme/src/pipeline.test.ts +++ b/core/auto-readme/src/pipeline.test.ts @@ -7,17 +7,19 @@ import { afterEach, beforeEach, expect, it, vi } from "vitest"; import type { ActionData } from "./data"; import type { Config } from "./schema"; -import { autoReadmeRemarkPlugin } from "./plugin"; import * as module from "./pipeline"; +import { autoReadmeRemarkPlugin } from "./plugin"; const mocks = vi.hoisted(() => { const pipeline = { - process: vi.fn().mockResolvedValue({ toString: vi.fn().mockReturnValue("# out") }), + process: vi + .fn() + .mockResolvedValue({ toString: vi.fn().mockReturnValue("# out") }), use: vi.fn(), }; pipeline.use.mockReturnValue(pipeline); return { - createFindParameter: vi.fn().mockReturnValue(vi.fn().mockReturnValue(undefined)), + createFindParameter: vi.fn().mockReturnValue(vi.fn().mockReturnValue()), fileExists: vi.fn().mockResolvedValue(true), pipeline, remark: vi.fn().mockReturnValue(pipeline), @@ -40,9 +42,11 @@ afterEach(vi.clearAllMocks); beforeEach(() => { mocks.pipeline.use.mockReturnValue(mocks.pipeline); - mocks.pipeline.process.mockResolvedValue({ toString: vi.fn().mockReturnValue("# out") }); + mocks.pipeline.process.mockResolvedValue({ + toString: vi.fn().mockReturnValue("# out"), + }); mocks.fileExists.mockResolvedValue(true); - mocks.createFindParameter.mockReturnValue(vi.fn().mockReturnValue(undefined)); + mocks.createFindParameter.mockReturnValue(vi.fn().mockReturnValue()); }); const baseConfig: Config = { @@ -63,7 +67,11 @@ async function parse(config: Config = baseConfig, data: ActionData = noData) { it("always registers autoReadmeRemarkPlugin and remarkCodeImport", async () => { await parse(); - expect(mocks.pipeline.use).toHaveBeenCalledWith(autoReadmeRemarkPlugin, baseConfig, noData); + expect(mocks.pipeline.use).toHaveBeenCalledWith( + autoReadmeRemarkPlugin, + baseConfig, + noData, + ); expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkCodeImport, {}); }); @@ -75,7 +83,10 @@ it("registers remarkUsage when USAGE action exists and example file exists", asy const data = [{ action: "USAGE", parameters: [] }] as unknown as ActionData; await parse(baseConfig, data); - expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkUsage, expect.any(Object)); + expect(mocks.pipeline.use).toHaveBeenCalledWith( + remarkUsage, + expect.any(Object), + ); }); it("does not register remarkUsage when example file does not exist and warns", async () => { @@ -86,50 +97,79 @@ it("does not register remarkUsage when example file does not exist and warns", a const data = [{ action: "USAGE", parameters: [] }] as unknown as ActionData; await parse(baseConfig, data); - expect(mocks.pipeline.use).not.toHaveBeenCalledWith(remarkUsage, expect.anything()); + expect(mocks.pipeline.use).not.toHaveBeenCalledWith( + remarkUsage, + expect.anything(), + ); expect(mocks.warn).toHaveBeenCalled(); }); it("registers remarkUsage when config.enableUsage is true and usageFile resolves", async () => { - const mockFind = vi.fn().mockReturnValue(undefined); + const mockFind = vi.fn().mockReturnValue(); mocks.createFindParameter.mockReturnValue(mockFind); mocks.fileExists.mockResolvedValue(true); - const config: Config = { ...baseConfig, enableUsage: true, usageFile: "example.js" }; + const config: Config = { + ...baseConfig, + enableUsage: true, + usageFile: "example.js", + }; await parse(config, noData); - expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkUsage, expect.any(Object)); + expect(mocks.pipeline.use).toHaveBeenCalledWith( + remarkUsage, + expect.any(Object), + ); }); it("registers remarkToc when config.enableToc is true", async () => { const config: Config = { ...baseConfig, enableToc: true }; await parse(config); - expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkToc, expect.objectContaining({ heading: "Table of contents" })); + expect(mocks.pipeline.use).toHaveBeenCalledWith( + remarkToc, + expect.objectContaining({ heading: "Table of contents" }), + ); }); it("does not register remarkToc when config.enableToc is false", async () => { await parse({ ...baseConfig, enableToc: false }); - expect(mocks.pipeline.use).not.toHaveBeenCalledWith(remarkToc, expect.anything()); + expect(mocks.pipeline.use).not.toHaveBeenCalledWith( + remarkToc, + expect.anything(), + ); }); it("registers remarkCollapse when config.enableToc is true", async () => { await parse({ ...baseConfig, enableToc: true }); - expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkCollapse, expect.any(Object)); + expect(mocks.pipeline.use).toHaveBeenCalledWith( + remarkCollapse, + expect.any(Object), + ); }); it("registers remarkCollapse when config.collapseHeadings has entries", async () => { - await parse({ ...baseConfig, enableToc: false, collapseHeadings: ["## Installation"] }); - - expect(mocks.pipeline.use).toHaveBeenCalledWith(remarkCollapse, expect.any(Object)); + await parse({ + ...baseConfig, + collapseHeadings: ["## Installation"], + enableToc: false, + }); + + expect(mocks.pipeline.use).toHaveBeenCalledWith( + remarkCollapse, + expect.any(Object), + ); }); it("does not register remarkCollapse when neither enableToc nor collapseHeadings", async () => { await parse({ ...baseConfig, collapseHeadings: [], enableToc: false }); - expect(mocks.pipeline.use).not.toHaveBeenCalledWith(remarkCollapse, expect.anything()); + expect(mocks.pipeline.use).not.toHaveBeenCalledWith( + remarkCollapse, + expect.anything(), + ); }); it("returns the processed markdown string", async () => { diff --git a/core/auto-readme/src/plugin.test.ts b/core/auto-readme/src/plugin.test.ts index bfb90717..17ba1f7d 100644 --- a/core/auto-readme/src/plugin.test.ts +++ b/core/auto-readme/src/plugin.test.ts @@ -10,7 +10,9 @@ import { defaultTableHeadings, defaultTemplates } from "./schema"; const mocks = vi.hoisted(() => ({ getContrastText: vi.fn().mockReturnValue("ffffff"), getSimpleIconColor: vi.fn().mockReturnValue(["61DAFB", "react"]), - resolveVersion: vi.fn().mockImplementation(({ version }: { version: string }) => version), + resolveVersion: vi + .fn() + .mockImplementation(({ version }: { version: string }) => version), })); vi.mock("./color", () => ({ getContrastText: mocks.getContrastText })); @@ -21,7 +23,10 @@ vi.mock("./utilities", () => ({ resolveVersion: mocks.resolveVersion })); afterEach(vi.clearAllMocks); const defaultConfig: Config = { - badgeOptions: { dependencyTypes: ["dependencies", "devDependencies"], templates: [] }, + badgeOptions: { + dependencyTypes: ["dependencies", "devDependencies"], + templates: [], + }, disableEmojis: false, headings: defaultTableHeadings, onlyShowPublicPackages: false, @@ -35,9 +40,7 @@ async function processMarkdown( data: ActionData = [], ) { return ( - await remark() - .use(autoReadmeRemarkPlugin, config, data) - .process(md) + await remark().use(autoReadmeRemarkPlugin, config, data).process(md) ).toString(); } @@ -56,11 +59,20 @@ it("BADGE: generates shield badge for dependency with known icon color", async ( action: "BADGE", catalogs: undefined, parameters: [], - pkgJson: { dependencies: { react: "^18.0.0" }, devDependencies: {}, name: "my-package", version: "1.0.0" }, + pkgJson: { + dependencies: { react: "^18.0.0" }, + devDependencies: {}, + name: "my-package", + version: "1.0.0", + }, }, ] as unknown as ActionData; - const result = await processMarkdown(withZone("BADGE"), defaultConfig, data); + const result = await processMarkdown( + withZone("BADGE"), + defaultConfig, + data, + ); expect(result).toContain("img.shields.io/badge"); expect(result).toContain("61DAFB"); @@ -75,11 +87,20 @@ it("BADGE: skips badge when getSimpleIconColor returns no color", async () => { action: "BADGE", catalogs: undefined, parameters: [], - pkgJson: { dependencies: { "unknown-lib": "^1.0.0" }, devDependencies: {}, name: "my-package", version: "1.0.0" }, + pkgJson: { + dependencies: { "unknown-lib": "^1.0.0" }, + devDependencies: {}, + name: "my-package", + version: "1.0.0", + }, }, ] as unknown as ActionData; - const result = await processMarkdown(withZone("BADGE"), defaultConfig, data); + const result = await processMarkdown( + withZone("BADGE"), + defaultConfig, + data, + ); expect(result).not.toContain("img.shields.io/badge"); }); @@ -104,7 +125,12 @@ it("BADGE: includes template badges when configured", async () => { action: "BADGE", catalogs: undefined, parameters: [], - pkgJson: { dependencies: {}, devDependencies: {}, name: "my-package", version: "1.0.0" }, + pkgJson: { + dependencies: {}, + devDependencies: {}, + name: "my-package", + version: "1.0.0", + }, }, ] as unknown as ActionData; @@ -134,7 +160,12 @@ it("BADGE: skips template badges when --skip-templates is present", async () => action: "BADGE", catalogs: undefined, parameters: ["--skip-templates"], - pkgJson: { dependencies: {}, devDependencies: {}, name: "my-package", version: "1.0.0" }, + pkgJson: { + dependencies: {}, + devDependencies: {}, + name: "my-package", + version: "1.0.0", + }, }, ] as unknown as ActionData; @@ -151,15 +182,27 @@ it("ACTION: generates markdown table for TABLE format", async () => { action: "ACTION", actionYaml: { inputs: { - "dry-run": { default: "false", description: "Skip changes", required: false }, - token: { default: "github_token", description: "GitHub token", required: true }, + "dry-run": { + default: "false", + description: "Skip changes", + required: false, + }, + "token": { + default: "github_token", + description: "GitHub token", + required: true, + }, }, }, parameters: [], }, ] as unknown as ActionData; - const result = await processMarkdown(withZone("ACTION"), defaultConfig, data); + const result = await processMarkdown( + withZone("ACTION"), + defaultConfig, + data, + ); expect(result).toContain("token"); expect(result).toContain("dry-run"); @@ -172,7 +215,11 @@ it("ACTION: generates list for LIST format", async () => { action: "ACTION", actionYaml: { inputs: { - token: { default: "github_token", description: "GitHub token", required: true }, + token: { + default: "github_token", + description: "GitHub token", + required: true, + }, }, }, parameters: [], @@ -218,7 +265,10 @@ it("PKG: returns empty content for LIST format", async () => { action: "PKG", catalogs: undefined, parameters: [], - pkgJson: { dependencies: { react: "^18.0.0" }, devDependencies: {} }, + pkgJson: { + dependencies: { react: "^18.0.0" }, + devDependencies: {}, + }, }, ] as unknown as ActionData; @@ -262,7 +312,11 @@ it("WORKSPACE: generates table with package names", async () => { packages: [ { dir: "/root/packages/my-pkg", - packageJson: { description: "A test package", name: "@scope/my-pkg", version: "1.0.0" }, + packageJson: { + description: "A test package", + name: "@scope/my-pkg", + version: "1.0.0", + }, }, ], root: { dir: "/root", packageJson: {} }, @@ -271,7 +325,11 @@ it("WORKSPACE: generates table with package names", async () => { }, ] as unknown as ActionData; - const result = await processMarkdown(withZone("WORKSPACE"), defaultConfig, data); + const result = await processMarkdown( + withZone("WORKSPACE"), + defaultConfig, + data, + ); expect(result).toContain("my-pkg"); expect(result).toMatch(/\|.*\|/); @@ -294,7 +352,11 @@ it("WORKSPACE: excludes private packages when onlyShowPublicPackages is true", a }, { dir: "/root/packages/private-pkg", - packageJson: { name: "private-pkg", private: true, version: "1.0.0" }, + packageJson: { + name: "private-pkg", + private: true, + version: "1.0.0", + }, }, ], root: { dir: "/root", packageJson: {} }, From c6acc6b7b81040ffdb70aa87dd26192672d94f6f Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 13:24:15 -0400 Subject: [PATCH 14/15] perf(core): optimize remark processing in plugin test --- core/auto-readme/src/plugin.test.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/auto-readme/src/plugin.test.ts b/core/auto-readme/src/plugin.test.ts index 17ba1f7d..5e1cae96 100644 --- a/core/auto-readme/src/plugin.test.ts +++ b/core/auto-readme/src/plugin.test.ts @@ -1,3 +1,4 @@ +/* eslint-disable e18e/prefer-static-regex */ import { remark } from "remark"; import { afterEach, expect, it, vi } from "vitest"; @@ -39,9 +40,10 @@ async function processMarkdown( config: Config = defaultConfig, data: ActionData = [], ) { - return ( - await remark().use(autoReadmeRemarkPlugin, config, data).process(md) - ).toString(); + const result = await remark() + .use(autoReadmeRemarkPlugin, config, data) + .process(md); + return result.toString(); } function withZone(name: string) { From b6f0a141b86c9a4db119d6c97a268be1237bf768 Mon Sep 17 00:00:00 2001 From: stephansama Date: Sat, 16 May 2026 13:39:12 -0400 Subject: [PATCH 15/15] ci(build): add pnpm rebuild to package build process --- .github/workflows/release.yml | 1 + scripts/src/prepare-local.ts | 18 +----------------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 96af44a9..9a2cabb9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -66,6 +66,7 @@ jobs: - name: 📦 Installing dependencies run: pnpm install - run: pnpm run build:packages + - run: pnpm rebuild - if: github.ref_name == 'main' name: 🦋 Create Changeset Release Pull Request uses: changesets/action@6a0a831ff30acef54f2c6aa1cbbc1096b066edaf # v1.7.0 diff --git a/scripts/src/prepare-local.ts b/scripts/src/prepare-local.ts index 93b18a3e..a4a85bf6 100644 --- a/scripts/src/prepare-local.ts +++ b/scripts/src/prepare-local.ts @@ -4,7 +4,6 @@ import { getPackages } from "@manypkg/get-packages"; import * as cp from "node:child_process"; import * as fs from "node:fs"; import path from "node:path"; -import * as url from "node:url"; if (process.env.CI) process.exit(0); @@ -23,8 +22,6 @@ const stephansamaPackages = packages.filter((pkg) => { return stephansamaPackageNames.has(pkg.packageJson.name); }); -const packageBins = new Array(); - for (const pkg of stephansamaPackages) { const hasAllOutputs = pkg.packageJson.files.every((file) => { return fs.existsSync(path.resolve(pkg.dir, file)); @@ -34,22 +31,9 @@ for (const pkg of stephansamaPackages) { console.info(`running build for ${pkg.packageJson.name}`); - if (pkg.packageJson.bin) { - const { bin } = pkg.packageJson; - const binName = pkg.packageJson.name.replace("@stephansama/", ""); - const entries = typeof bin === "string" ? [binName] : Object.keys(bin); - packageBins.push(...entries); - } - const buildPackageCommand = sh`pnpm --filter='${pkg.packageJson.name}' run build`; cp.execSync(buildPackageCommand, { encoding: "utf8", stdio: "inherit" }); } -const dirname = path.dirname(url.fileURLToPath(import.meta.url)); -const nodeBinDirectory = path.resolve(dirname, "../../node_modules/.bin/"); -const nodeBins = await fs.promises.readdir(nodeBinDirectory); - -if (packageBins.some((bin) => !nodeBins.includes(bin))) { - cp.execSync(sh`pnpm install`, { stdio: "inherit" }); -} +cp.execSync(sh`pnpm rebuild`);