UNPKG

synopkg

Version:

Consistent dependency versions in large JavaScript Monorepos

265 lines (255 loc) 10.5 kB
import starlight from '@astrojs/starlight'; import { defineConfig } from 'astro/config'; import { visit } from 'unist-util-visit'; export default defineConfig({ site: 'https://synopkg.github.io/synopkg', base: '/synopkg', redirects: { // Hoisted docs '/config/semver-groups/ignored/': '/synopkg/semver-groups/ignored/', '/config/semver-groups/with-range/': '/synopkg/semver-groups/with-range/', '/config/version-groups/banned/': '/synopkg/version-groups/banned/', '/config/version-groups/ignored/': '/synopkg/version-groups/ignored/', '/config/version-groups/lowest-version/': '/synopkg/version-groups/lowest-semver/', '/config/version-groups/pinned/': '/synopkg/version-groups/pinned/', '/config/version-groups/same-range/': '/synopkg/version-groups/same-range/', '/config/version-groups/snapped-to/': '/synopkg/version-groups/snapped-to/', '/config/version-groups/standard/': '/synopkg/version-groups/highest-semver/', '/guide/status-codes/': '/synopkg/status/', '/guide/getting-started/': '/synopkg/', // Moved docs '/guide/semver-groups/': '/semver-groups/', '/guide/version-groups/': '/version-groups/', // Removed docs '/integrations/github-actions': '/synopkg/', '/integrations/intellisense': '/synopkg/', '/integrations/json-schema': '/synopkg/', '/integrations/lerna': '/synopkg/', '/integrations/npm': '/synopkg/', '/integrations/pnpm': '/synopkg/', '/integrations/yarn': '/synopkg/', // Merged docs '/guide/local-package-versions/': '/synopkg/dependency-types', // Deprecated Feature: Removed // @TODO: change to /synopkg/guide/upgrading/ once written '/config/dependency-types/': '/synopkg/', '/config/lint-formatting/': '/synopkg/', '/config/lint-semver-ranges/': '/synopkg/', '/config/lint-versions/': '/synopkg/', '/config/specifier-types/': '/synopkg/', // Deprecated Feature: Moved '/command/fix-mismatches/': '/command/fix', '/command/set-semver-ranges/': '/command/fix', '/command/lint-semver-ranges/': '/command/lint', '/command/list-mismatches/': '/command/lint', }, markdown: { smartypants: false, remarkPlugins: [ function globalReferenceLinks() { const linksById = { COMMAND_FIX: '/synopkg/command/fix/', COMMAND_FORMAT: '/synopkg/command/format/', COMMAND_JSON: '/synopkg/command/json/', COMMAND_LINT: '/synopkg/command/lint/', COMMAND_LIST: '/synopkg/command/list/', COMMAND_UPDATE: '/synopkg/command/update/', CONFIG_CUSTOM_TYPES: '/synopkg/config/custom-types/', CONFIG_DEPENDENCY_GROUPS: '/synopkg/config/dependency-groups/', CONFIG_FORMAT_BUGS: '/synopkg/config/format-bugs/', CONFIG_FORMAT_REPOSITORY: '/synopkg/config/format-repository/', CONFIG_INDENT: '/synopkg/config/indent/', CONFIG_SEMVER_GROUPS: '/synopkg/semver-groups/', CONFIG_SORT_AZ: '/synopkg/config/sort-az/', CONFIG_SORT_EXPORTS: '/synopkg/config/sort-exports/', CONFIG_SORT_FIRST: '/synopkg/config/sort-first/', CONFIG_SORT_PACKAGES: '/synopkg/config/sort-packages/', CONFIG_SOURCE: '/synopkg/config/source/', CONFIG_SYNOPKGRC: '/synopkg/config/synopkgrc/', CONFIG_VERSION_GROUPS: '/synopkg/version-groups/', GUIDE_PEER_DEPENDENCIES: '/synopkg/guide/peer-dependencies/', REF_DEPENDENCY_TYPES: '/synopkg/dependency-types/', REF_GLOSSARY: '/synopkg/glossary/', REF_SPECIFIER_TYPES: '/synopkg/specifier-types/', REF_STATUS_CODES: '/synopkg/status/', TERM_CUSTOM_TYPE: '/synopkg/glossary/#custom-type', TERM_DEPENDENCY: '/synopkg/glossary/#dependency', TERM_DEPENDENCY_GROUP: '/synopkg/glossary/#dependency-group', TERM_DEPENDENCY_TYPE: '/synopkg/glossary/#dependency-type', TERM_INSTANCE: '/synopkg/glossary/#instance', TERM_PACKAGE: '/synopkg/glossary/#package', TERM_RCFILE: '/synopkg/glossary/#rcfile', TERM_SEMVER: '/synopkg/glossary/#semver', TERM_SEMVER_GROUP: '/synopkg/glossary/#semver-group', TERM_SEMVER_RANGE: '/synopkg/glossary/#semver-range', TERM_SPECIFIER: '/synopkg/glossary/#specifier', TERM_SPECIFIER_TYPE: '/synopkg/glossary/#specifier-type', TERM_STATUS_CODE: '/synopkg/glossary/#status-code', TERM_VERSION_GROUP: '/synopkg/glossary/#version-group', TERM_WORKSPACE: '/synopkg/glossary/#workspace', HREF_ANSI: 'https://en.wikipedia.org/wiki/ANSI_escape_code', HREF_AWS_SDK: 'https://aws.amazon.com/sdk-for-javascript/', HREF_CATEGORIZE_YOUR_DEPENDENCIES: 'https://antfu.me/posts/categorize-deps', HREF_CONDITIONAL_EXPORTS: 'https://nodejs.org/api/packages.html#conditional-exports', HREF_COSMICONFIG: 'https://github.com/cosmiconfig/cosmiconfig', HREF_DEPENDENCIES: 'https://docs.npmjs.com/cli/v11/configuring-npm/package-json#dependencies', HREF_DEV_DEPENDENCIES: 'https://docs.npmjs.com/cli/v11/configuring-npm/package-json#devDependencies', HREF_ENGINES: 'https://docs.npmjs.com/cli/v11/configuring-npm/package-json#engines', HREF_GLOB: 'https://github.com/rust-lang/glob', HREF_LERNA: 'https://lerna.js.org/', HREF_NEW_ISSUE: 'https://github.com/Synopkg/synopkg-github-action/issues/new', HREF_NPM_EXEC: 'https://docs.npmjs.com/cli/v11/commands/npm-exec', HREF_NPM_WORKSPACES: 'https://docs.npmjs.com/cli/v11/using-npm/workspaces', HREF_NPX: 'https://docs.npmjs.com/cli/v11/commands/npx', HREF_OVERRIDES: 'https://docs.npmjs.com/cli/v11/configuring-npm/package-json#overrides', HREF_PACKAGE_MANAGER: 'https://nodejs.org/api/packages.html#packagemanager', HREF_PEER_DEPENDENCIES: 'https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerDependencies', HREF_PNPM: 'https://pnpm.js.org/', HREF_PNPM_OVERRIDES: 'https://pnpm.io/package_json#pnpmoverrides', HREF_RESOLUTIONS: 'https://docs.npmjs.com/cli/v11/configuring-npm/package-json#resolutions', HREF_SYNOPKG_GITHUB_ACTION: 'https://github.com/marketplace/actions/synopkg-synchronise-monorepo-dependency-versions', HREF_TYPES: 'https://github.com/DefinitelyTyped/DefinitelyTyped', HREF_VERSION: 'https://docs.npmjs.com/cli/v11/configuring-npm/package-json#version', HREF_WORKSPACE_PROTOCOL: 'https://pnpm.io/workspaces#workspace-protocol-workspace', HREF_YARN_WORKSPACES: 'https://yarnpkg.com/lang/en/docs/workspaces/', SEMVER_GROUP_IGNORED: '/synopkg/semver-groups/ignored/', SEMVER_GROUP_WITH_RANGE: '/synopkg/semver-groups/with-range/', VERSION_GROUP_BANNED: '/synopkg/version-groups/banned/', VERSION_GROUP_HIGHEST_SEMVER: '/synopkg/version-groups/highest-semver/', VERSION_GROUP_IGNORED: '/synopkg/version-groups/ignored/', VERSION_GROUP_LOWEST_SEMVER: '/synopkg/version-groups/lowest-semver/', VERSION_GROUP_PINNED: '/synopkg/version-groups/pinned/', VERSION_GROUP_SAME_RANGE: '/synopkg/version-groups/same-range/', VERSION_GROUP_SNAPPED_TO: '/synopkg/version-groups/snapped-to/', }; return function transformer(tree) { visit(tree, 'link', node => { if (linksById[node.url]) { node.url = linksById[node.url]; } }); return tree; }; }, ], }, integrations: [ starlight({ title: 'Synopkg', routeMiddleware: './src/route-data.ts', social: [ { icon: 'github', label: 'GitHub', href: 'https://github.com/Synopkg/synopkg', }, { icon: 'blueSky', label: 'Bluesky', href: 'https://bsky.app/profile/foldleft.bsky.social', }, { icon: 'x.com', label: 'X', href: 'https://x.com/fold_left', }, ], editLink: { baseUrl: 'https://github.com/Synopkg/synopkg/edit/main/site/', }, favicon: '/favicon.ico', logo: { src: './src/assets/logo.svg', }, expressiveCode: { themes: ['github-light-default', 'github-dark-default'], removeUnusedThemes: false, }, customCss: ['./src/styles/custom.css'], pagination: false, sidebar: [ { label: 'Github', link: 'https://github.com/Synopkg/synopkg', }, { label: 'Guides', autogenerate: { directory: 'guide' }, }, { label: 'Commands', autogenerate: { directory: 'command' }, }, { label: 'Version Groups', autogenerate: { directory: 'version-groups' }, }, { label: 'Semver Groups', autogenerate: { directory: 'semver-groups' }, }, { label: 'Configuration File', autogenerate: { directory: 'config' }, }, { label: 'Reference', autogenerate: { directory: 'reference' }, }, ], head: [ { tag: 'meta', attrs: { name: 'twitter:image', content: '/synopkg/social-card.jpg', }, }, { tag: 'meta', attrs: { property: 'og:image', content: '/synopkg/social-card.jpg', }, }, { tag: 'meta', attrs: { property: 'og:image:width', content: '1200', }, }, { tag: 'meta', attrs: { property: 'og:image:height', content: '675', }, }, { tag: 'meta', attrs: { name: 'twitter:creator', content: '@fold_left', }, }, { tag: 'meta', attrs: { name: 'twitter:site', content: '@fold_left', }, }, { tag: 'script', attrs: { src: 'https://app.rybbit.io/api/script.js', 'data-site-id': '619', defer: true, }, }, ], }), ], });