├── .editorconfig ├── .env ├── .env.darwin-arm64 ├── .env.darwin-x64 ├── .env.linux-arm64-glibc ├── .env.linux-x64-glibc ├── .env.win32-arm64-msvc ├── .env.win32-x64-msvc ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yaml │ ├── feature_request.yaml │ └── question.yaml ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── ci.yaml │ ├── deploy-site.yaml │ ├── matrix.json │ ├── release.yaml │ └── test-site.yaml ├── .gitignore ├── .mailmap ├── .npmrc ├── .release-it.json ├── .syncpackrc.json ├── .zed └── settings.json ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── biome.json ├── fixtures ├── fluid-framework │ ├── azure │ │ └── packages │ │ │ ├── azure-local-service │ │ │ └── package.json │ │ │ ├── azure-service-utils │ │ │ └── package.json │ │ │ └── test │ │ │ └── scenario-runner │ │ │ └── package.json │ ├── build-tools │ │ ├── lerna.json │ │ ├── package.json │ │ ├── packages │ │ │ ├── build-cli │ │ │ │ └── package.json │ │ │ ├── build-infrastructure │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── data │ │ │ │ │ └── testRepo │ │ │ │ │ ├── package.json │ │ │ │ │ ├── packages │ │ │ │ │ ├── group2 │ │ │ │ │ │ ├── pkg-d │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ └── pkg-e │ │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── group3 │ │ │ │ │ │ ├── pkg-f │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ └── pkg-g │ │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── pkg-a │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── pkg-b │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── pkg-c │ │ │ │ │ │ └── package.json │ │ │ │ │ └── shared │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── pnpm-workspace.yaml │ │ │ │ │ └── second │ │ │ │ │ ├── package.json │ │ │ │ │ ├── packages │ │ │ │ │ ├── other-pkg-a │ │ │ │ │ │ └── package.json │ │ │ │ │ └── other-pkg-b │ │ │ │ │ │ └── package.json │ │ │ │ │ └── pnpm-workspace.yaml │ │ │ ├── build-tools │ │ │ │ └── package.json │ │ │ ├── bundle-size-tools │ │ │ │ └── package.json │ │ │ └── version-tools │ │ │ │ └── package.json │ │ ├── pnpm-workspace.yaml │ │ └── syncpack.config.cjs │ ├── common │ │ ├── build │ │ │ ├── build-common │ │ │ │ ├── package.json │ │ │ │ ├── pnpm-workspace.yaml │ │ │ │ └── src │ │ │ │ │ ├── cjs │ │ │ │ │ └── package.json │ │ │ │ │ └── esm │ │ │ │ │ └── package.json │ │ │ ├── eslint-config-fluid │ │ │ │ ├── package.json │ │ │ │ └── pnpm-workspace.yaml │ │ │ └── eslint-plugin-fluid │ │ │ │ ├── package.json │ │ │ │ └── pnpm-workspace.yaml │ │ └── lib │ │ │ ├── common-utils │ │ │ ├── package.json │ │ │ └── pnpm-workspace.yaml │ │ │ └── protocol-definitions │ │ │ ├── package.json │ │ │ └── pnpm-workspace.yaml │ ├── docs │ │ ├── package.json │ │ ├── pnpm-workspace.yaml │ │ └── themes │ │ │ └── thxvscode │ │ │ └── assets │ │ │ └── js │ │ │ └── package.json │ ├── examples │ │ ├── apps │ │ │ ├── ai-collab │ │ │ │ └── package.json │ │ │ ├── attributable-map │ │ │ │ └── package.json │ │ │ ├── collaborative-textarea │ │ │ │ └── package.json │ │ │ ├── contact-collection │ │ │ │ └── package.json │ │ │ ├── data-object-grid │ │ │ │ └── package.json │ │ │ ├── presence-tracker │ │ │ │ └── package.json │ │ │ ├── task-selection │ │ │ │ └── package.json │ │ │ └── tree-comparison │ │ │ │ └── package.json │ │ ├── benchmarks │ │ │ ├── bubblebench │ │ │ │ ├── baseline │ │ │ │ │ └── package.json │ │ │ │ ├── common │ │ │ │ │ └── package.json │ │ │ │ ├── experimental-tree │ │ │ │ │ └── package.json │ │ │ │ ├── ot │ │ │ │ │ └── package.json │ │ │ │ └── shared-tree │ │ │ │ │ └── package.json │ │ │ ├── odspsnapshotfetch-perftestapp │ │ │ │ └── package.json │ │ │ └── tablebench │ │ │ │ └── package.json │ │ ├── client-logger │ │ │ └── app-insights-logger │ │ │ │ └── package.json │ │ ├── data-objects │ │ │ ├── canvas │ │ │ │ └── package.json │ │ │ ├── clicker │ │ │ │ └── package.json │ │ │ ├── codemirror │ │ │ │ └── package.json │ │ │ ├── diceroller │ │ │ │ └── package.json │ │ │ ├── inventory-app │ │ │ │ └── package.json │ │ │ ├── monaco │ │ │ │ └── package.json │ │ │ ├── multiview │ │ │ │ ├── constellation-model │ │ │ │ │ └── package.json │ │ │ │ ├── constellation-view │ │ │ │ │ └── package.json │ │ │ │ ├── container │ │ │ │ │ └── package.json │ │ │ │ ├── coordinate-model │ │ │ │ │ └── package.json │ │ │ │ ├── interface │ │ │ │ │ └── package.json │ │ │ │ ├── plot-coordinate-view │ │ │ │ │ └── package.json │ │ │ │ ├── slider-coordinate-view │ │ │ │ │ └── package.json │ │ │ │ └── triangle-view │ │ │ │ │ └── package.json │ │ │ ├── prosemirror │ │ │ │ └── package.json │ │ │ ├── smde │ │ │ │ └── package.json │ │ │ ├── table-document │ │ │ │ └── package.json │ │ │ ├── todo │ │ │ │ └── package.json │ │ │ └── webflow │ │ │ │ └── package.json │ │ ├── external-data │ │ │ └── package.json │ │ ├── service-clients │ │ │ ├── azure-client │ │ │ │ └── external-controller │ │ │ │ │ └── package.json │ │ │ └── odsp-client │ │ │ │ └── shared-tree-demo │ │ │ │ └── package.json │ │ ├── utils │ │ │ ├── bundle-size-tests │ │ │ │ └── package.json │ │ │ ├── example-utils │ │ │ │ └── package.json │ │ │ ├── migration-tools │ │ │ │ └── package.json │ │ │ └── webpack-fluid-loader │ │ │ │ └── package.json │ │ ├── version-migration │ │ │ ├── live-schema-upgrade │ │ │ │ └── package.json │ │ │ ├── same-container │ │ │ │ └── package.json │ │ │ ├── separate-container │ │ │ │ └── package.json │ │ │ └── tree-shim │ │ │ │ └── package.json │ │ └── view-integration │ │ │ ├── container-views │ │ │ └── package.json │ │ │ ├── external-views │ │ │ └── package.json │ │ │ └── view-framework-sampler │ │ │ └── package.json │ ├── experimental │ │ ├── PropertyDDS │ │ │ └── packages │ │ │ │ ├── property-changeset │ │ │ │ └── package.json │ │ │ │ ├── property-common │ │ │ │ ├── package.json │ │ │ │ └── platform-dependent │ │ │ │ │ └── package.json │ │ │ │ ├── property-dds │ │ │ │ └── package.json │ │ │ │ └── property-properties │ │ │ │ └── package.json │ │ ├── dds │ │ │ ├── attributable-map │ │ │ │ └── package.json │ │ │ ├── ot │ │ │ │ ├── ot │ │ │ │ │ └── package.json │ │ │ │ └── sharejs │ │ │ │ │ └── json1 │ │ │ │ │ └── package.json │ │ │ ├── sequence-deprecated │ │ │ │ └── package.json │ │ │ └── tree │ │ │ │ └── package.json │ │ └── framework │ │ │ ├── data-objects │ │ │ └── package.json │ │ │ ├── last-edited │ │ │ └── package.json │ │ │ └── tree-react-api │ │ │ └── package.json │ ├── lerna.json │ ├── package.json │ ├── packages │ │ ├── common │ │ │ ├── client-utils │ │ │ │ └── package.json │ │ │ ├── container-definitions │ │ │ │ └── package.json │ │ │ ├── core-interfaces │ │ │ │ └── package.json │ │ │ ├── core-utils │ │ │ │ └── package.json │ │ │ └── driver-definitions │ │ │ │ └── package.json │ │ ├── dds │ │ │ ├── cell │ │ │ │ └── package.json │ │ │ ├── counter │ │ │ │ └── package.json │ │ │ ├── ink │ │ │ │ └── package.json │ │ │ ├── map │ │ │ │ └── package.json │ │ │ ├── matrix │ │ │ │ └── package.json │ │ │ ├── merge-tree │ │ │ │ └── package.json │ │ │ ├── ordered-collection │ │ │ │ └── package.json │ │ │ ├── pact-map │ │ │ │ └── package.json │ │ │ ├── register-collection │ │ │ │ └── package.json │ │ │ ├── sequence │ │ │ │ └── package.json │ │ │ ├── shared-object-base │ │ │ │ └── package.json │ │ │ ├── shared-summary-block │ │ │ │ └── package.json │ │ │ ├── task-manager │ │ │ │ └── package.json │ │ │ ├── test-dds-utils │ │ │ │ └── package.json │ │ │ └── tree │ │ │ │ └── package.json │ │ ├── drivers │ │ │ ├── debugger │ │ │ │ └── package.json │ │ │ ├── driver-base │ │ │ │ └── package.json │ │ │ ├── driver-web-cache │ │ │ │ └── package.json │ │ │ ├── file-driver │ │ │ │ └── package.json │ │ │ ├── local-driver │ │ │ │ └── package.json │ │ │ ├── odsp-driver-definitions │ │ │ │ └── package.json │ │ │ ├── odsp-driver │ │ │ │ └── package.json │ │ │ ├── odsp-urlResolver │ │ │ │ └── package.json │ │ │ ├── replay-driver │ │ │ │ └── package.json │ │ │ ├── routerlicious-driver │ │ │ │ └── package.json │ │ │ ├── routerlicious-urlResolver │ │ │ │ └── package.json │ │ │ └── tinylicious-driver │ │ │ │ └── package.json │ │ ├── framework │ │ │ ├── agent-scheduler │ │ │ │ └── package.json │ │ │ ├── ai-collab │ │ │ │ └── package.json │ │ │ ├── aqueduct │ │ │ │ └── package.json │ │ │ ├── attributor │ │ │ │ └── package.json │ │ │ ├── client-logger │ │ │ │ ├── app-insights-logger │ │ │ │ │ └── package.json │ │ │ │ └── fluid-telemetry │ │ │ │ │ └── package.json │ │ │ ├── data-object-base │ │ │ │ └── package.json │ │ │ ├── dds-interceptions │ │ │ │ └── package.json │ │ │ ├── fluid-framework │ │ │ │ └── package.json │ │ │ ├── fluid-static │ │ │ │ └── package.json │ │ │ ├── oldest-client-observer │ │ │ │ └── package.json │ │ │ ├── presence │ │ │ │ ├── package.json │ │ │ │ └── src │ │ │ │ │ └── cjs │ │ │ │ │ └── package.json │ │ │ ├── request-handler │ │ │ │ └── package.json │ │ │ ├── synthesize │ │ │ │ └── package.json │ │ │ └── undo-redo │ │ │ │ └── package.json │ │ ├── loader │ │ │ ├── container-loader │ │ │ │ └── package.json │ │ │ ├── driver-utils │ │ │ │ └── package.json │ │ │ └── test-loader-utils │ │ │ │ └── package.json │ │ ├── runtime │ │ │ ├── container-runtime-definitions │ │ │ │ └── package.json │ │ │ ├── container-runtime │ │ │ │ └── package.json │ │ │ ├── datastore-definitions │ │ │ │ └── package.json │ │ │ ├── datastore │ │ │ │ └── package.json │ │ │ ├── id-compressor │ │ │ │ └── package.json │ │ │ ├── runtime-definitions │ │ │ │ └── package.json │ │ │ ├── runtime-utils │ │ │ │ └── package.json │ │ │ └── test-runtime-utils │ │ │ │ └── package.json │ │ ├── service-clients │ │ │ ├── azure-client │ │ │ │ └── package.json │ │ │ ├── end-to-end-tests │ │ │ │ ├── azure-client │ │ │ │ │ └── package.json │ │ │ │ └── odsp-client │ │ │ │ │ └── package.json │ │ │ ├── odsp-client │ │ │ │ └── package.json │ │ │ └── tinylicious-client │ │ │ │ └── package.json │ │ ├── test │ │ │ ├── functional-tests │ │ │ │ └── package.json │ │ │ ├── local-server-tests │ │ │ │ └── package.json │ │ │ ├── mocha-test-setup │ │ │ │ └── package.json │ │ │ ├── snapshots │ │ │ │ └── package.json │ │ │ ├── stochastic-test-utils │ │ │ │ └── package.json │ │ │ ├── test-driver-definitions │ │ │ │ └── package.json │ │ │ ├── test-drivers │ │ │ │ └── package.json │ │ │ ├── test-end-to-end-tests │ │ │ │ └── package.json │ │ │ ├── test-pairwise-generator │ │ │ │ └── package.json │ │ │ ├── test-service-load │ │ │ │ └── package.json │ │ │ ├── test-utils │ │ │ │ └── package.json │ │ │ ├── test-version-utils │ │ │ │ └── package.json │ │ │ └── types_jest-environment-puppeteer │ │ │ │ └── package.json │ │ ├── tools │ │ │ ├── changelog-generator-wrapper │ │ │ │ └── package.json │ │ │ ├── devtools │ │ │ │ ├── devtools-browser-extension │ │ │ │ │ └── package.json │ │ │ │ ├── devtools-core │ │ │ │ │ └── package.json │ │ │ │ ├── devtools-example │ │ │ │ │ └── package.json │ │ │ │ ├── devtools-view │ │ │ │ │ └── package.json │ │ │ │ └── devtools │ │ │ │ │ └── package.json │ │ │ ├── fetch-tool │ │ │ │ └── package.json │ │ │ ├── fluid-runner │ │ │ │ └── package.json │ │ │ └── replay-tool │ │ │ │ └── package.json │ │ └── utils │ │ │ ├── odsp-doclib-utils │ │ │ └── package.json │ │ │ ├── telemetry-utils │ │ │ └── package.json │ │ │ └── tool-utils │ │ │ └── package.json │ ├── pnpm-workspace.yaml │ ├── server │ │ ├── gitrest │ │ │ ├── lerna.json │ │ │ ├── package.json │ │ │ ├── packages │ │ │ │ ├── gitrest-base │ │ │ │ │ └── package.json │ │ │ │ └── gitrest │ │ │ │ │ └── package.json │ │ │ └── pnpm-workspace.yaml │ │ ├── historian │ │ │ ├── lerna.json │ │ │ ├── package.json │ │ │ ├── packages │ │ │ │ ├── historian-base │ │ │ │ │ └── package.json │ │ │ │ └── historian │ │ │ │ │ └── package.json │ │ │ └── pnpm-workspace.yaml │ │ └── routerlicious │ │ │ ├── lerna.json │ │ │ ├── package.json │ │ │ ├── packages │ │ │ ├── gitresources │ │ │ │ └── package.json │ │ │ ├── kafka-orderer │ │ │ │ └── package.json │ │ │ ├── lambdas-driver │ │ │ │ └── package.json │ │ │ ├── lambdas │ │ │ │ └── package.json │ │ │ ├── local-server │ │ │ │ └── package.json │ │ │ ├── memory-orderer │ │ │ │ └── package.json │ │ │ ├── protocol-base │ │ │ │ └── package.json │ │ │ ├── routerlicious-base │ │ │ │ └── package.json │ │ │ ├── routerlicious │ │ │ │ └── package.json │ │ │ ├── services-client │ │ │ │ └── package.json │ │ │ ├── services-core │ │ │ │ └── package.json │ │ │ ├── services-ordering-kafkanode │ │ │ │ └── package.json │ │ │ ├── services-ordering-rdkafka │ │ │ │ └── package.json │ │ │ ├── services-ordering-zookeeper │ │ │ │ └── package.json │ │ │ ├── services-shared │ │ │ │ └── package.json │ │ │ ├── services-telemetry │ │ │ │ └── package.json │ │ │ ├── services-utils │ │ │ │ └── package.json │ │ │ ├── services │ │ │ │ └── package.json │ │ │ ├── test-utils │ │ │ │ └── package.json │ │ │ └── tinylicious │ │ │ │ └── package.json │ │ │ └── pnpm-workspace.yaml │ ├── syncpack.config.cjs │ └── tools │ │ ├── api-markdown-documenter │ │ ├── package.json │ │ └── pnpm-workspace.yaml │ │ ├── benchmark │ │ ├── package.json │ │ └── pnpm-workspace.yaml │ │ ├── getkeys │ │ ├── package.json │ │ └── pnpm-workspace.yaml │ │ ├── markdown-magic │ │ ├── package.json │ │ └── test │ │ │ └── package.json │ │ ├── telemetry-generator │ │ └── package.json │ │ └── test-tools │ │ ├── package.json │ │ └── pnpm-workspace.yaml └── misc │ └── package.json ├── justfile ├── npm ├── index.cjs └── syncpack.ts ├── package-lock.json ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── rustfmt.toml ├── site ├── .vscode │ ├── extensions.json │ └── launch.json ├── astro.config.mjs ├── package.json ├── public │ ├── favicon.ico │ ├── googlebfe2dd5c46c76281.html │ ├── logo.svg │ ├── robots.txt │ └── social-card.jpg ├── scripts │ └── patch-sitemap.sh ├── src │ ├── _partials │ │ ├── default-dependency-types.mdx │ │ ├── group-config │ │ │ ├── dependencies.mdx │ │ │ ├── dependency-types.mdx │ │ │ ├── label.mdx │ │ │ ├── packages.mdx │ │ │ └── specifier-types.mdx │ │ ├── how-packages-are-resolved.mdx │ │ ├── option │ │ │ ├── check.mdx │ │ │ ├── config.mdx │ │ │ ├── dependencies.mdx │ │ │ ├── dependency-types.mdx │ │ │ ├── dry-run.mdx │ │ │ ├── help.mdx │ │ │ ├── log-levels.mdx │ │ │ ├── no-ansi.mdx │ │ │ ├── show-list.mdx │ │ │ ├── show-versions.mdx │ │ │ ├── sort.mdx │ │ │ ├── source.mdx │ │ │ ├── specifier-types.mdx │ │ │ └── target.mdx │ │ └── tips │ │ │ ├── custom-types.mdx │ │ │ ├── monorepo-not-essential.mdx │ │ │ └── quote-filters.mdx │ ├── assets │ │ ├── houston.webp │ │ └── logo.svg │ ├── components │ │ ├── details.astro │ │ └── question.astro │ ├── content │ │ ├── config.ts │ │ └── docs │ │ │ ├── command │ │ │ ├── fix.mdx │ │ │ ├── format.mdx │ │ │ ├── lint.mdx │ │ │ ├── list.mdx │ │ │ └── update.mdx │ │ │ ├── config │ │ │ ├── custom-types.mdx │ │ │ ├── dependency-groups.mdx │ │ │ ├── format-bugs.mdx │ │ │ ├── format-repository.mdx │ │ │ ├── indent.mdx │ │ │ ├── max-concurrent-requests.mdx │ │ │ ├── semver-groups.mdx │ │ │ ├── sort-az.mdx │ │ │ ├── sort-exports.mdx │ │ │ ├── sort-first.mdx │ │ │ ├── sort-packages.mdx │ │ │ ├── source.mdx │ │ │ ├── strict.mdx │ │ │ ├── syncpackrc.mdx │ │ │ └── version-groups.mdx │ │ │ ├── guide │ │ │ ├── getting-started.mdx │ │ │ └── peer-dependencies.mdx │ │ │ ├── reference │ │ │ ├── dependency-types.mdx │ │ │ ├── glossary.mdx │ │ │ ├── specifier-types.mdx │ │ │ └── status-codes.mdx │ │ │ ├── semver-groups │ │ │ ├── ignored.mdx │ │ │ └── with-range.mdx │ │ │ ├── status │ │ │ ├── depends-on-invalid-local-package.mdx │ │ │ ├── depends-on-missing-snap-target.mdx │ │ │ ├── differs-to-highest-or-lowest-semver.mdx │ │ │ ├── differs-to-local.mdx │ │ │ ├── differs-to-npm-registry.mdx │ │ │ ├── differs-to-pin.mdx │ │ │ ├── differs-to-snap-target.mdx │ │ │ ├── invalid-local-version.mdx │ │ │ ├── is-banned.mdx │ │ │ ├── is-highest-or-lowest-semver.mdx │ │ │ ├── is-identical-to-local.mdx │ │ │ ├── is-identical-to-pin.mdx │ │ │ ├── is-identical-to-snap-target.mdx │ │ │ ├── is-ignored.mdx │ │ │ ├── is-local-and-valid.mdx │ │ │ ├── is-non-semver-but-identical.mdx │ │ │ ├── match-conflicts-with-highest-or-lowest-semver.mdx │ │ │ ├── match-conflicts-with-local.mdx │ │ │ ├── match-conflicts-with-snap-target.mdx │ │ │ ├── mismatch-conflicts-with-highest-or-lowest-semver.mdx │ │ │ ├── mismatch-conflicts-with-local.mdx │ │ │ ├── mismatch-conflicts-with-snap-target.mdx │ │ │ ├── non-semver-mismatch.mdx │ │ │ ├── pin-overrides-semver-range-mismatch.mdx │ │ │ ├── pin-overrides-semver-range.mdx │ │ │ ├── refuse-to-ban-local.mdx │ │ │ ├── refuse-to-pin-local.mdx │ │ │ ├── refuse-to-snap-local.mdx │ │ │ ├── same-range-mismatch.mdx │ │ │ ├── satisfies-highest-or-lowest-semver.mdx │ │ │ ├── satisfies-local.mdx │ │ │ ├── satisfies-same-range-group.mdx │ │ │ ├── satisfies-snap-target.mdx │ │ │ └── semver-range-mismatch.mdx │ │ │ └── version-groups │ │ │ ├── banned.mdx │ │ │ ├── highest-semver.mdx │ │ │ ├── ignored.mdx │ │ │ ├── lowest-semver.mdx │ │ │ ├── pinned.mdx │ │ │ ├── same-range.mdx │ │ │ └── snapped-to.mdx │ ├── env.d.ts │ ├── faq │ │ ├── ban-dependency-from-monorepo.mdx │ │ ├── ensure-versions-satisfy-same-range.mdx │ │ ├── fix-aws-sdk-version-mismatch.mdx │ │ ├── fix-react-native-version-mismatch.mdx │ │ ├── ignore-dependencies-in-syncpack.mdx │ │ ├── only-allow-types-in-dev-dependencies.mdx │ │ ├── pnpm-workspace-protocol.mdx │ │ ├── sync-engines-in-monorepo.mdx │ │ ├── sync-nodejs-version-in-monorepo.mdx │ │ └── sync-package-manager-version.mdx │ ├── pages │ │ ├── faq.astro │ │ └── faq │ │ │ └── [id].astro │ ├── route-data.ts │ └── styles │ │ └── custom.css └── tsconfig.json └── src ├── cli.rs ├── config.rs ├── context.rs ├── dependency.rs ├── dependency_test.rs ├── dependency_type.rs ├── effects.rs ├── effects ├── fix.rs ├── format.rs ├── lint.rs ├── list.rs ├── ui.rs ├── ui │ ├── dependency.rs │ ├── group.rs │ ├── icon.rs │ ├── instance.rs │ ├── package.rs │ └── util.rs └── update.rs ├── group_selector.rs ├── instance.rs ├── instance_state.rs ├── logger.rs ├── main.rs ├── package_json.rs ├── packages.rs ├── rcfile.rs ├── registry_client.rs ├── semver_group.rs ├── specifier.rs ├── specifier ├── alias.rs ├── basic_semver.rs ├── complex_semver.rs ├── git.rs ├── parser.rs ├── raw.rs ├── regexes.rs ├── semver_range.rs ├── semver_range_test.rs └── workspace_protocol.rs ├── specifier_test.rs ├── test ├── expect.rs ├── mock.rs ├── registry_client.rs └── test.rs ├── version_group.rs ├── visit_formatting.rs ├── visit_formatting ├── format.rs └── format_test.rs ├── visit_packages.rs └── visit_packages ├── banned.rs ├── banned_test.rs ├── ignored.rs ├── ignored_test.rs ├── indent.rs ├── pinned.rs ├── pinned_test.rs ├── preferred_semver.rs ├── preferred_semver_test.rs ├── same_range.rs ├── same_range_test.rs ├── snapped_to.rs └── snapped_to_test.rs /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | charset = utf-8 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | indent_style = space 9 | indent_size = 2 10 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamieMason/syncpack/5febac2c78a967b2d9ff47e742775ba92acc222f/.env -------------------------------------------------------------------------------- /.env.darwin-arm64: -------------------------------------------------------------------------------- 1 | NAME=darwin-arm64 2 | NODE_ARCH=arm64 3 | NODE_OS=darwin 4 | NODE_PKG_NAME=syncpack-darwin-arm64 5 | OS=macos-13 6 | TARGET=aarch64-apple-darwin 7 | RUST_BINARY_PATH="target/${TARGET}/release/syncpack" 8 | NODE_PKG_DIR_PATH="npm/packages/${NODE_PKG_NAME}" 9 | NODE_PKG_RUST_BINARY_PATH="${NODE_PKG_DIR_PATH}/bin/syncpack" 10 | NODE_ROOT_PKG_DIR_PATH=npm/packages/syncpack 11 | -------------------------------------------------------------------------------- /.env.darwin-x64: -------------------------------------------------------------------------------- 1 | NAME=darwin-x64 2 | NODE_ARCH=x64 3 | NODE_OS=darwin 4 | NODE_PKG_NAME=syncpack-darwin-x64 5 | OS=macos-13 6 | TARGET=x86_64-apple-darwin 7 | RUST_BINARY_PATH="target/${TARGET}/release/syncpack" 8 | NODE_PKG_DIR_PATH="npm/packages/${NODE_PKG_NAME}" 9 | NODE_PKG_RUST_BINARY_PATH="${NODE_PKG_DIR_PATH}/bin/syncpack" 10 | NODE_ROOT_PKG_DIR_PATH=npm/packages/syncpack 11 | -------------------------------------------------------------------------------- /.env.linux-arm64-glibc: -------------------------------------------------------------------------------- 1 | NAME=linux-arm64-glibc 2 | NODE_ARCH=arm64 3 | NODE_OS=linux 4 | NODE_PKG_NAME=syncpack-linux-arm64 5 | OS=ubuntu-22.04 6 | TARGET=aarch64-unknown-linux-gnu 7 | RUST_BINARY_PATH="target/${TARGET}/release/syncpack" 8 | NODE_PKG_DIR_PATH="npm/packages/${NODE_PKG_NAME}" 9 | NODE_PKG_RUST_BINARY_PATH="${NODE_PKG_DIR_PATH}/bin/syncpack" 10 | NODE_ROOT_PKG_DIR_PATH=npm/packages/syncpack 11 | -------------------------------------------------------------------------------- /.env.linux-x64-glibc: -------------------------------------------------------------------------------- 1 | NAME=linux-x64-glibc 2 | NODE_ARCH=x64 3 | NODE_OS=linux 4 | NODE_PKG_NAME=syncpack-linux-x64 5 | OS=ubuntu-22.04 6 | TARGET=x86_64-unknown-linux-gnu 7 | RUST_BINARY_PATH="target/${TARGET}/release/syncpack" 8 | NODE_PKG_DIR_PATH="npm/packages/${NODE_PKG_NAME}" 9 | NODE_PKG_RUST_BINARY_PATH="${NODE_PKG_DIR_PATH}/bin/syncpack" 10 | NODE_ROOT_PKG_DIR_PATH=npm/packages/syncpack 11 | -------------------------------------------------------------------------------- /.env.win32-arm64-msvc: -------------------------------------------------------------------------------- 1 | NAME=win32-arm64-msvc 2 | NODE_ARCH=arm64 3 | NODE_OS=win32 4 | NODE_PKG_NAME=syncpack-windows-arm64 5 | OS=windows-2022 6 | TARGET=aarch64-pc-windows-msvc 7 | RUST_BINARY_PATH="target/${TARGET}/release/syncpack" 8 | NODE_PKG_DIR_PATH="npm/packages/${NODE_PKG_NAME}" 9 | NODE_PKG_RUST_BINARY_PATH="${NODE_PKG_DIR_PATH}/bin/syncpack" 10 | NODE_ROOT_PKG_DIR_PATH=npm/packages/syncpack 11 | -------------------------------------------------------------------------------- /.env.win32-x64-msvc: -------------------------------------------------------------------------------- 1 | NAME=win32-x64-msvc 2 | NODE_ARCH=x64 3 | NODE_OS=win32 4 | NODE_PKG_NAME=syncpack-windows-x64 5 | OS=windows-2022 6 | TARGET=x86_64-pc-windows-msvc 7 | RUST_BINARY_PATH="target/${TARGET}/release/syncpack" 8 | NODE_PKG_DIR_PATH="npm/packages/${NODE_PKG_NAME}" 9 | NODE_PKG_RUST_BINARY_PATH="${NODE_PKG_DIR_PATH}/bin/syncpack" 10 | NODE_ROOT_PKG_DIR_PATH=npm/packages/syncpack 11 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: JamieMason 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.yaml: -------------------------------------------------------------------------------- 1 | name: ❓ Question 2 | description: Get help with something 3 | title: "question: " 4 | labels: ["Type: Question"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | ### Useful links 10 | You're welcome to ask questions, but have a look at these resources as it's possible your question has already been answered: 11 | - [Most upvoted questions](https://github.com/JamieMason/syncpack/issues?q=label%3A%22Type%3A+Question%22+sort%3Areactions-%2B1-desc) 12 | - [Getting started](https://jamiemason.github.io/syncpack/guide/getting-started/) 13 | - [Examples](https://jamiemason.github.io/syncpack/examples/) 14 | - [Documentation](https://jamiemason.github.io/syncpack/config/syncpackrc/) 15 | - type: textarea 16 | validations: 17 | required: true 18 | attributes: 19 | label: Question 20 | description: Ask your question 21 | - type: markdown 22 | attributes: 23 | value: | 24 | ### Community health 25 | A healthy community is built on fairness, mutual respect, support and collaboration. By giving back — whether through code contributions, documentation, testing, or simply spreading the word — you help maintain a vibrant and sustainable project. 26 | | Contribution | Cost | 27 | | :----------------------------------------------------------------------------------------- | :--------- | 28 | | [Sponsor](https://github.com/sponsors/JamieMason?frequency=one-time) | 🔴 Money | 29 | | [Contribute Rust code](https://github.com/JamieMason/syncpack/tree/rust/main) | 🟠 Time | 30 | | [Improve the docs](https://github.com/JamieMason/syncpack/tree/main/site/src/content/docs) | 🟡 Time | 31 | | [Star syncpack](https://github.com/JamieMason/syncpack) | 🟢 Nothing | 32 | | **Recommend syncpack** to others | 🟢 Nothing | 33 | - type: checkboxes 34 | attributes: 35 | label: Code of Conduct 36 | options: 37 | - label: I agree to follow the [Code of Conduct](https://github.com/JamieMason/syncpack/blob/main/CODE_OF_CONDUCT.md) 38 | required: true 39 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description (What) 2 | 3 | 9 | 10 | ## Justification (Why) 11 | 12 | 18 | 19 | ## How Can This Be Tested? 20 | 21 | 24 | -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | name: Verify v14-alpha 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - main 7 | - v14-alpha 8 | push: 9 | branches: 10 | - main 11 | - v14-alpha 12 | 13 | jobs: 14 | lint-and-test: 15 | name: Lint and test 16 | runs-on: ubuntu-22.04 17 | steps: 18 | - name: Checkout 19 | uses: actions/checkout@v4 20 | - name: Install rust toolchain 21 | uses: actions-rs/toolchain@v1 22 | with: 23 | profile: minimal 24 | toolchain: stable 25 | override: true 26 | components: rustfmt, clippy 27 | - name: Set up cargo cache 28 | uses: Swatinem/rust-cache@v2 29 | - name: Install just 30 | uses: extractions/setup-just@v1 31 | with: 32 | just-version: 1.35.0 33 | - name: Check cargo 34 | run: just check-cargo 35 | - name: Lint formatting 36 | run: just check-formatting 37 | - name: Lint clippy 38 | run: just check-clippy 39 | - name: Cargo test 40 | run: just test 41 | -------------------------------------------------------------------------------- /.github/workflows/deploy-site.yaml: -------------------------------------------------------------------------------- 1 | name: Deploy to GitHub Pages 2 | 3 | defaults: 4 | run: 5 | shell: bash 6 | working-directory: site 7 | 8 | on: 9 | push: 10 | branches: 11 | - main 12 | # Review gh actions docs if you want to further define triggers, paths, etc 13 | # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on 14 | 15 | jobs: 16 | deploy: 17 | name: Deploy to GitHub Pages 18 | runs-on: ubuntu-latest 19 | steps: 20 | - uses: actions/checkout@v4 21 | - uses: pnpm/action-setup@v4 22 | with: 23 | version: 10 24 | - uses: actions/setup-node@v4 25 | with: 26 | node-version: 20 27 | cache: "pnpm" 28 | - name: Install dependencies 29 | run: pnpm install 30 | - name: Build website 31 | run: pnpm run build 32 | 33 | # Popular action to deploy to GitHub Pages: 34 | # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus 35 | - name: Deploy to GitHub Pages 36 | uses: peaceiris/actions-gh-pages@v4 37 | with: 38 | github_token: ${{ secrets.GITHUB_TOKEN }} 39 | # Build output to publish to the `gh-pages` branch: 40 | publish_dir: ./site/dist 41 | # The following lines assign commit authorship to the official 42 | # GH-Actions bot for deploys to `gh-pages` branch: 43 | # https://github.com/actions/checkout/issues/13#issuecomment-724415212 44 | # The GH actions bot is used by default if you didn't specify the two fields. 45 | # You can swap them out with your own user credentials. 46 | user_name: github-actions[bot] 47 | user_email: 41898282+github-actions[bot]@users.noreply.github.com 48 | -------------------------------------------------------------------------------- /.github/workflows/matrix.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "NAME": "linux-x64-glibc", 4 | "OS": "ubuntu-22.04", 5 | "RUN_LOCALLY": true, 6 | "TARGET": "x86_64-unknown-linux-gnu" 7 | }, 8 | { 9 | "NAME": "linux-arm64-glibc", 10 | "OS": "ubuntu-22.04", 11 | "RUN_LOCALLY": false, 12 | "TARGET": "aarch64-unknown-linux-gnu" 13 | }, 14 | { 15 | "NAME": "win32-x64-msvc", 16 | "OS": "windows-2022", 17 | "RUN_LOCALLY": false, 18 | "TARGET": "x86_64-pc-windows-msvc" 19 | }, 20 | { 21 | "NAME": "win32-arm64-msvc", 22 | "OS": "windows-2022", 23 | "RUN_LOCALLY": false, 24 | "TARGET": "aarch64-pc-windows-msvc" 25 | }, 26 | { 27 | "NAME": "darwin-x64", 28 | "OS": "macos-13", 29 | "RUN_LOCALLY": false, 30 | "TARGET": "x86_64-apple-darwin" 31 | }, 32 | { 33 | "NAME": "darwin-arm64", 34 | "OS": "macos-13", 35 | "RUN_LOCALLY": false, 36 | "TARGET": "aarch64-apple-darwin" 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /.github/workflows/test-site.yaml: -------------------------------------------------------------------------------- 1 | name: Test deployment 2 | 3 | defaults: 4 | run: 5 | shell: bash 6 | working-directory: site 7 | 8 | on: 9 | push: 10 | branches: 11 | - main 12 | 13 | jobs: 14 | test-deploy: 15 | name: Test deployment 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: actions/checkout@v4 19 | - uses: pnpm/action-setup@v4 20 | with: 21 | version: 10 22 | - uses: actions/setup-node@v4 23 | with: 24 | node-version: 20 25 | cache: "pnpm" 26 | - name: Install dependencies 27 | run: pnpm install 28 | - name: Test build website 29 | run: pnpm run build 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | **/*.rs.bk 2 | *.log 3 | *.log.* 4 | .astro/ 5 | .DS_Store 6 | .idea 7 | coverage/ 8 | dist/ 9 | node_modules/ 10 | target/ 11 | 12 | # Generated packages published to npm 13 | npm/packages 14 | -------------------------------------------------------------------------------- /.mailmap: -------------------------------------------------------------------------------- 1 | Jamie Mason 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | # https://pnpm.io/next/npmrc#auto-install-peers 2 | auto-install-peers=false 3 | # https://pnpm.io/next/npmrc#strict-peer-dependencies 4 | strict-peer-dependencies=true 5 | # https://docs.npmjs.com/cli/v10/using-npm/config#strict-peer-deps 6 | strict-peer-deps=true 7 | # https://docs.npmjs.com/cli/v10/using-npm/config#engine-strict 8 | engine-strict=true 9 | -------------------------------------------------------------------------------- /.release-it.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "node_modules/release-it/schema/release-it.json", 3 | "git": { 4 | "changelog": "npm exec auto-changelog -- --stdout --commit-limit false --unreleased --breaking-pattern 'BREAKING CHANGE:' --template https://raw.githubusercontent.com/release-it/release-it/main/templates/changelog-compact.hbs", 5 | "commitMessage": "chore(release): ${version}", 6 | "push": false, 7 | "requireBranch": "main", 8 | "tag": true 9 | }, 10 | "github": { 11 | "release": true, 12 | "releaseName": "${version}" 13 | }, 14 | "hooks": { 15 | "after:bump": "cargo set-version '${version}' && npm exec auto-changelog -- -p --breaking-pattern 'BREAKING CHANGE:' && git add Cargo.* CHANGELOG.md" 16 | }, 17 | "npm": { 18 | "publish": false 19 | }, 20 | "plugins": { 21 | "@release-it/conventional-changelog": { 22 | "preset": { 23 | "name": "conventionalcommits" 24 | }, 25 | "strictSemver": true 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /.syncpackrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "dist/schema.json", 3 | "semverGroups": [ 4 | { 5 | "dependencyTypes": ["prod", "dev"], 6 | "range": "^" 7 | } 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /.zed/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "lsp": { 3 | "rust-analyzer": { 4 | "initialization_options": { 5 | "check": { 6 | "command": "clippy" 7 | } 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "syncpack" 3 | version = "14.0.0-alpha.12" 4 | authors = ["Jamie Mason "] 5 | edition = "2021" 6 | homepage = "https://jamiemason.github.io/syncpack" 7 | repository = "https://github.com/JamieMason/syncpack/tree/rust/main" 8 | description = "Consistent dependency versions in large JavaScript Monorepos" 9 | license = "MIT" 10 | keywords = [ 11 | "npm", 12 | "yarn", 13 | "linter", 14 | "monorepo", 15 | "semver", 16 | "version-manager", 17 | "pnpm", 18 | "nx", 19 | "version-management", 20 | "turborepo", 21 | ] 22 | readme = "./README.md" 23 | publish = false 24 | 25 | [dependencies] 26 | async-trait = "0.1.88" 27 | clap = { version = "4.5.37", features = ["cargo"] } 28 | color-print = "0.3.7" 29 | colored = "3.0.0" 30 | ctor = "0.4.2" 31 | env_logger = "0.11.8" 32 | glob = "0.3.2" 33 | globset = "0.4.16" 34 | icu = "1.5.0" 35 | indicatif = "0.17.11" 36 | itertools = "0.14.0" 37 | lazy_static = "1.5.0" 38 | log = "0.4.27" 39 | node-semver = "2.2.0" 40 | openssl = { version = "0.10", features = ["vendored"] } 41 | regex = "1.11.1" 42 | reqwest = { version = "0.12", features = ["json"] } 43 | serde = { version = "1.0.219", features = ["derive", "rc"] } 44 | serde_json = { version = "1.0.140", features = ["preserve_order"] } 45 | serde_yaml = "0.9" 46 | tokio = { version = "1", features = ["full"] } 47 | thiserror = "2.0.12" 48 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017-2023 Jamie Mason 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", 3 | "formatter": { 4 | "enabled": true, 5 | "formatWithErrors": false, 6 | "indentStyle": "space", 7 | "indentWidth": 2, 8 | "lineEnding": "lf", 9 | "lineWidth": 120, 10 | "attributePosition": "auto", 11 | "ignore": [ 12 | "**/CHANGELOG.md", 13 | "**/DEPENDENCIES.md", 14 | "dist", 15 | "fixtures", 16 | "site/.astro", 17 | "npm/packages" 18 | ] 19 | }, 20 | "organizeImports": { 21 | "enabled": true 22 | }, 23 | "linter": { 24 | "enabled": true 25 | }, 26 | "javascript": { 27 | "formatter": { 28 | "jsxQuoteStyle": "double", 29 | "quoteProperties": "asNeeded", 30 | "trailingCommas": "all", 31 | "semicolons": "always", 32 | "arrowParentheses": "asNeeded", 33 | "bracketSpacing": true, 34 | "bracketSameLine": false, 35 | "quoteStyle": "single", 36 | "attributePosition": "auto" 37 | } 38 | }, 39 | "json": { 40 | "formatter": { 41 | "enabled": false 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/azure/packages/azure-local-service/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/azure-local-service", 3 | "version": "2.5.0", 4 | "description": "Local implementation of the Azure Fluid Relay service for testing/development use", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "azure/packages/azure-local-service" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "type": "module", 14 | "bin": "lib/index.js", 15 | "scripts": { 16 | "build": "fluid-build . --task build", 17 | "build:compile": "fluid-build . --task compile", 18 | "build:esnext": "tsc --project ./tsconfig.json", 19 | "check:biome": "biome check .", 20 | "check:format": "npm run check:biome", 21 | "check:prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore", 22 | "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp", 23 | "eslint": "eslint --format stylish src", 24 | "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout", 25 | "format": "npm run format:biome", 26 | "format:biome": "biome check . --write", 27 | "format:prettier": "prettier --write . --cache --ignore-path ../../../.prettierignore", 28 | "lint": "fluid-build . --task lint", 29 | "lint:fix": "fluid-build . --task eslint:fix --task format", 30 | "start": "pm2 start -n azure-local-service lib/index.js", 31 | "start:debug": "node --inspect=0.0.0.0:9229 lib/index.js", 32 | "stop": "pm2 stop azure-local-service", 33 | "test": "echo \"Error: no test specified\" && exit 1" 34 | }, 35 | "dependencies": { 36 | "tinylicious": "^5.0.0" 37 | }, 38 | "devDependencies": { 39 | "@biomejs/biome": "~1.9.3", 40 | "@fluidframework/build-common": "^2.0.3", 41 | "@fluidframework/build-tools": "^0.49.0", 42 | "@fluidframework/eslint-config-fluid": "^5.4.0", 43 | "eslint": "~8.55.0", 44 | "eslint-config-prettier": "~9.0.0", 45 | "pm2": "^5.4.2", 46 | "prettier": "~3.0.3", 47 | "rimraf": "^4.4.0", 48 | "ts-node": "^10.9.1", 49 | "typescript": "~5.4.5" 50 | }, 51 | "typeValidation": { 52 | "disabled": true, 53 | "broken": {}, 54 | "entrypoint": "internal" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/lerna.json: -------------------------------------------------------------------------------- 1 | { "version": "0.50.0", "npmClient": "pnpm", "useWorkspaces": true } 2 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "main-release-group-root", 3 | "version": "1.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "dependencies": { 14 | "@fluid-private/changelog-generator-wrapper": "link:../../../../../../../packages/tools/changelog-generator-wrapper", 15 | "@fluid-tools/build-infrastructure": "link:../../../../../build-infrastructure" 16 | }, 17 | "devDependencies": { 18 | "@changesets/cli": "^2.27.9" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/group2/pkg-d/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@group2/pkg-d", 3 | "version": "1.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/group2/pkg-d" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "dependencies": { 14 | "@group2/pkg-e": "workspace:~" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/group2/pkg-e/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@group2/pkg-e", 3 | "version": "1.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/group2/pkg-e" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "dependencies": {} 14 | } 15 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/group3/pkg-f/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@group3/pkg-f", 3 | "version": "1.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/group3/pkg-f" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "dependencies": { 14 | "@group2/pkg-e": "workspace:~", 15 | "@group3/pkg-g": "workspace:~" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/group3/pkg-g/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@group3/pkg-g", 3 | "version": "1.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/group3/pkg-g" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors" 13 | } 14 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/pkg-a/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pkg-a", 3 | "version": "1.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/pkg-a" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "dependencies": { 14 | "@shared/shared": "workspace:~", 15 | "pkg-b": "workspace:~" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/pkg-b/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pkg-b", 3 | "version": "1.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/pkg-b" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "dependencies": { 14 | "pkg-b": "workspace:~" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/pkg-c/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@private/pkg-c", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "Test package", 6 | "homepage": "https://fluidframework.com", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/microsoft/FluidFramework.git", 10 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/pkg-c" 11 | }, 12 | "license": "MIT", 13 | "author": "Microsoft and contributors", 14 | "dependencies": { 15 | "pkg-b": "workspace:~" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/shared/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@shared/shared", 3 | "version": "1.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/packages/shared" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "dependencies": { 14 | "@group2/pkg-d": "1.0.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "packages/**" 3 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/second/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "second-release-group-root", 3 | "version": "2.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/second" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "dependencies": { 14 | "@fluid-tools/build-infrastructure": "link:../../../../../../build-infrastructure" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/second/packages/other-pkg-a/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "other-pkg-a", 3 | "version": "2.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/second/packages/other-pkg-a" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "dependencies": { 14 | "other-pkg-b": "workspace:~" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/second/packages/other-pkg-b/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "other-pkg-b", 3 | "version": "2.0.0", 4 | "description": "Test package", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/build-infrastructure/src/test/data/testRepo/second/packages/other-pkg-b" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors" 13 | } 14 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/build-infrastructure/src/test/data/testRepo/second/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "packages/*" 3 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/packages/bundle-size-tools/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/bundle-size-tools", 3 | "version": "0.50.0", 4 | "description": "Utility for analyzing bundle size regressions", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "build-tools/packages/bundle-size-tools" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "exports": { 14 | ".": { 15 | "default": { 16 | "types": "./dist/index.d.ts", 17 | "default": "./dist/index.js" 18 | } 19 | } 20 | }, 21 | "main": "dist/index.js", 22 | "types": "dist/index.d.ts", 23 | "scripts": { 24 | "build": "concurrently npm:build:compile npm:lint && npm run build:docs", 25 | "build:compile": "concurrently npm:tsc npm:build:copy", 26 | "build:copy": "copyfiles -u 1 \"src/**/*.fsl\" dist", 27 | "build:docs": "api-extractor run --local", 28 | "check:biome": "biome check .", 29 | "check:format": "npm run check:biome", 30 | "ci:build:docs": "api-extractor run", 31 | "clean": "rimraf --glob dist \"*.tsbuildinfo\" _api-extractor-temp", 32 | "compile": "fluid-build . --task compile", 33 | "eslint": "eslint --format stylish src", 34 | "eslint:fix": "eslint --format stylish src --fix", 35 | "format": "npm run format:biome", 36 | "format:biome": "biome check --write .", 37 | "lint": "npm run eslint", 38 | "lint:fix": "npm run eslint:fix", 39 | "test": "echo \"Error: no test specified\" && exit 1", 40 | "tsc": "tsc" 41 | }, 42 | "dependencies": { 43 | "azure-devops-node-api": "^11.2.0", 44 | "jszip": "^3.10.1", 45 | "msgpack-lite": "^0.1.26", 46 | "pako": "^2.1.0", 47 | "typescript": "~5.4.5", 48 | "webpack": "^5.94.0" 49 | }, 50 | "devDependencies": { 51 | "@biomejs/biome": "~1.9.3", 52 | "@fluidframework/build-common": "^2.0.3", 53 | "@fluidframework/build-tools-bin": "npm:@fluidframework/build-tools@~0.44.0", 54 | "@fluidframework/eslint-config-fluid": "^5.3.0", 55 | "@microsoft/api-extractor": "^7.45.1", 56 | "@types/msgpack-lite": "^0.1.8", 57 | "@types/node": "^18.18.6", 58 | "@types/pako": "^2.0.0", 59 | "concurrently": "^8.2.1", 60 | "copyfiles": "^2.4.1", 61 | "eslint": "~8.57.0", 62 | "rimraf": "^4.4.1" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/build-tools/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This is the workspace definition for the build-tools release group. See https://pnpm.io/pnpm-workspace_yaml for more 2 | # information about the format. 3 | # 4 | # Guidelines for updating this file: 5 | # 6 | # 1. Keep the entries alphabetical wherever possible. 7 | # 2. DO NOT end a glob with "**". E.g. "packages/**". Doing so can include unexpected packages. This is especially true 8 | # of packages for which we build ESM and CJS. Such packages sometimes have package.json files in their source or 9 | # output directories during compilation. 10 | 11 | packages: 12 | - "packages/*" 13 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/common/build/build-common/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/build-common", 3 | "version": "3.0.0", 4 | "description": "Package containing common configs", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "common/build/build-common" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "sideEffects": false, 14 | "bin": { 15 | "gen-version": "bin/gen-version" 16 | }, 17 | "scripts": { 18 | "format": "npm run prettier:fix", 19 | "lint": "npm run prettier && npm run eslint", 20 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 21 | "prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore", 22 | "prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore" 23 | }, 24 | "devDependencies": { 25 | "prettier": "~3.0.3" 26 | }, 27 | "packageManager": "pnpm@8.15.8+sha512.d1a029e1a447ad90bc96cd58b0fad486d2993d531856396f7babf2d83eb1823bb83c5a3d0fc18f675b2d10321d49eb161fece36fe8134aa5823ecd215feed392" 28 | } 29 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/common/build/build-common/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This file is a workaround. pnpm does not support nesting packages under a workspace that is not managed by the 2 | # workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the 3 | # package individually like one might expect. 4 | # 5 | # Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy 6 | # for our independent packages as well. This file makes pnpm treat the project as a one-package workspace. 7 | packages: 8 | - "." 9 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/common/build/build-common/src/cjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/common/build/build-common/src/esm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/common/build/eslint-config-fluid/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This file is a workaround. pnpm does not support nesting packages under a workspace that is not managed by the 2 | # workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the 3 | # package individually like one might expect. 4 | # 5 | # Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy 6 | # for our independent packages as well. This file makes pnpm treat the project as a one-package workspace. 7 | packages: 8 | - "." 9 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/common/build/eslint-plugin-fluid/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluid-internal/eslint-plugin-fluid", 3 | "version": "0.1.2", 4 | "description": "Custom ESLint rules for the Fluid Framework", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "common/build/eslint-plugin-fluid" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "main": "index.js", 14 | "scripts": { 15 | "build": "npm run build:readme && npm run build:test:examples", 16 | "build:readme": "markdown-magic --files \"**/*.md\"", 17 | "build:test:examples": "tsc --project ./src/test/example/tsconfig.json", 18 | "clean": "rimraf --glob nyc", 19 | "format": "npm run prettier:fix", 20 | "prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore", 21 | "prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore", 22 | "test": "mocha \"src/test/**/*.test.*js\"" 23 | }, 24 | "dependencies": { 25 | "@microsoft/tsdoc": "^0.14.2", 26 | "@typescript-eslint/parser": "^6.21.0", 27 | "ts-morph": "^22.0.0" 28 | }, 29 | "devDependencies": { 30 | "@fluid-tools/markdown-magic": "file:../../../tools/markdown-magic", 31 | "@fluidframework/build-common": "^2.0.3", 32 | "eslint": "^8.57.0", 33 | "mocha": "^10.4.0", 34 | 35 | "mocha-multi-reporters": "^1.5.1", 36 | "prettier": "~3.2.5", 37 | "rimraf": "^5.0.7", 38 | "typescript": "~5.4.5" 39 | }, 40 | "packageManager": "pnpm@8.15.8+sha512.d1a029e1a447ad90bc96cd58b0fad486d2993d531856396f7babf2d83eb1823bb83c5a3d0fc18f675b2d10321d49eb161fece36fe8134aa5823ecd215feed392" 41 | } 42 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/common/build/eslint-plugin-fluid/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This file is a workaround. pnpm does not support nesting packages under a workspace that is not managed by the 2 | # workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the 3 | # package individually like one might expect. 4 | # 5 | # Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy 6 | # for our independent packages as well. This file makes pnpm treat the project as a one-package workspace. 7 | packages: 8 | - "." 9 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/common/lib/common-utils/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This file is a workaround. pnpm does not support nesting packages under a workspace that is not managed by the 2 | # workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the 3 | # package individually like one might expect. 4 | # 5 | # Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy 6 | # for our independent packages as well. This file makes pnpm treat the project as a one-package workspace. 7 | packages: 8 | - "." 9 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/common/lib/protocol-definitions/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This file is a workaround. pnpm does not support nesting packages under a workspace that is not managed by the 2 | # workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the 3 | # package individually like one might expect. 4 | # 5 | # Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy 6 | # for our independent packages as well. This file makes pnpm treat the project as a one-package workspace. 7 | packages: 8 | - "." 9 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/docs/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This file is a workaround. pnpm does not support nesting packages under a workspace that is not managed by the 2 | # workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the 3 | # package individually like one might expect. 4 | # 5 | # Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy 6 | # for our independent packages as well. This file makes pnpm treat the project as a one-package workspace. 7 | packages: 8 | - "." 9 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/docs/themes/thxvscode/assets/js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "build": "webpack --mode=production" 4 | }, 5 | "devDependencies": { 6 | "@babel/core": "^7.25.2", 7 | "@babel/preset-env": "^7.25.4", 8 | "@babel/runtime": "^7.25.6", 9 | "babel-loader": "^9.1.3", 10 | "core-js": "^3.38.1", 11 | "terser-webpack-plugin": "^5.3.10", 12 | "webpack": "^5.94.0", 13 | "webpack-cli": "^5.1.4" 14 | }, 15 | "dependencies": { 16 | "bootstrap": "^3.4.1", 17 | "stickyfilljs": "^2.1.0" 18 | }, 19 | "packageManager": "yarn@1.22.22" 20 | } 21 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/examples/data-objects/multiview/coordinate-model/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluid-example/multiview-coordinate-model", 3 | "version": "2.5.0", 4 | "private": true, 5 | "description": "Coordinate model for multiview sample", 6 | "homepage": "https://fluidframework.com", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/microsoft/FluidFramework.git", 10 | "directory": "examples/data-objects/multiview/coordinate-model" 11 | }, 12 | "license": "MIT", 13 | "author": "Microsoft and contributors", 14 | "type": "module", 15 | "exports": { 16 | ".": { 17 | "import": { 18 | "types": "./lib/index.d.ts", 19 | "default": "./lib/index.js" 20 | } 21 | } 22 | }, 23 | "main": "lib/index.js", 24 | "types": "lib/index.d.ts", 25 | "scripts": { 26 | "build": "fluid-build . --task build", 27 | "build:compile": "fluid-build . --task compile", 28 | "build:esnext": "tsc --project ./tsconfig.json", 29 | "check:biome": "biome check .", 30 | "check:format": "npm run check:biome", 31 | "check:prettier": "prettier --check . --cache --ignore-path ../../../../.prettierignore", 32 | "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" nyc", 33 | "eslint": "eslint --format stylish src", 34 | "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout", 35 | "format": "npm run format:biome", 36 | "format:biome": "biome check . --write", 37 | "format:prettier": "prettier --write . --cache --ignore-path ../../../../.prettierignore", 38 | "lint": "fluid-build . --task lint", 39 | "lint:fix": "fluid-build . --task eslint:fix --task format" 40 | }, 41 | "dependencies": { 42 | "@fluid-example/multiview-coordinate-interface": "workspace:~", 43 | "@fluidframework/aqueduct": "workspace:~", 44 | "@fluidframework/map": "workspace:~" 45 | }, 46 | "devDependencies": { 47 | "@biomejs/biome": "~1.9.3", 48 | "@fluidframework/build-common": "^2.0.3", 49 | "@fluidframework/build-tools": "^0.49.0", 50 | "@fluidframework/eslint-config-fluid": "^5.4.0", 51 | "eslint": "~8.55.0", 52 | "prettier": "~3.0.3", 53 | "rimraf": "^4.4.0", 54 | "typescript": "~5.4.5" 55 | }, 56 | "fluid": { 57 | "browser": { 58 | "umd": { 59 | "files": [ 60 | "dist/main.bundle.js" 61 | ], 62 | "library": "main" 63 | } 64 | } 65 | }, 66 | "typeValidation": { 67 | "disabled": true, 68 | "broken": {}, 69 | "entrypoint": "internal" 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/examples/data-objects/multiview/interface/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluid-example/multiview-coordinate-interface", 3 | "version": "2.5.0", 4 | "private": true, 5 | "description": "Interface for multiview sample", 6 | "homepage": "https://fluidframework.com", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/microsoft/FluidFramework.git", 10 | "directory": "examples/data-objects/multiview/interface" 11 | }, 12 | "license": "MIT", 13 | "author": "Microsoft and contributors", 14 | "type": "module", 15 | "exports": { 16 | ".": { 17 | "import": { 18 | "types": "./lib/index.d.ts", 19 | "default": "./lib/index.js" 20 | } 21 | } 22 | }, 23 | "main": "lib/index.js", 24 | "types": "lib/index.d.ts", 25 | "scripts": { 26 | "build": "fluid-build . --task build", 27 | "build:compile": "fluid-build . --task compile", 28 | "build:esnext": "tsc --project ./tsconfig.json", 29 | "check:biome": "biome check .", 30 | "check:format": "npm run check:biome", 31 | "check:prettier": "prettier --check . --cache --ignore-path ../../../../.prettierignore", 32 | "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\"", 33 | "eslint": "eslint --format stylish src", 34 | "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout", 35 | "format": "npm run format:biome", 36 | "format:biome": "biome check . --write", 37 | "format:prettier": "prettier --write . --cache --ignore-path ../../../../.prettierignore", 38 | "lint": "fluid-build . --task lint", 39 | "lint:fix": "fluid-build . --task eslint:fix --task format" 40 | }, 41 | "dependencies": { 42 | "@fluid-example/example-utils": "workspace:~" 43 | }, 44 | "devDependencies": { 45 | "@biomejs/biome": "~1.9.3", 46 | "@fluid-tools/build-cli": "^0.49.0", 47 | "@fluidframework/build-common": "^2.0.3", 48 | "@fluidframework/build-tools": "^0.49.0", 49 | "@fluidframework/eslint-config-fluid": "^5.4.0", 50 | "eslint": "~8.55.0", 51 | "prettier": "~3.0.3", 52 | "rimraf": "^4.4.0", 53 | "typescript": "~5.4.5" 54 | }, 55 | "fluid": { 56 | "browser": { 57 | "umd": { 58 | "files": [ 59 | "dist/main.bundle.js" 60 | ], 61 | "library": "main" 62 | } 63 | } 64 | }, 65 | "typeValidation": { 66 | "disabled": true, 67 | "broken": {}, 68 | "entrypoint": "internal" 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/experimental/PropertyDDS/packages/property-common/platform-dependent/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluid-internal/platform-dependent", 3 | "version": "2.5.0", 4 | "private": true, 5 | "description": "Helper package that separates code for browser and server.", 6 | "homepage": "https://fluidframework.com", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/microsoft/FluidFramework.git", 10 | "directory": "experimental/PropertyDDS/packages/property-common/platform-dependent" 11 | }, 12 | "license": "MIT", 13 | "author": "Microsoft and contributors", 14 | "main": "server.js", 15 | "browser": "browser.js", 16 | "typeValidation": { 17 | "disabled": true, 18 | "broken": {}, 19 | "entrypoint": "internal" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/lerna.json: -------------------------------------------------------------------------------- 1 | { "version": "2.5.0", "npmClient": "pnpm", "useWorkspaces": true } 2 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/packages/framework/presence/src/cjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluid-experimental/presence", 3 | "type": "commonjs", 4 | "exports": { 5 | ".": { 6 | "types": "./index.d.ts", 7 | "default": "./index.js" 8 | }, 9 | "./internal": "./index.js", 10 | "./internal/container-definitions/internal": "./container-definitions/index.js", 11 | "./internal/core-interfaces": "./core-interfaces/index.js", 12 | "./internal/events": "./events/events.js", 13 | "./internal/exposedInternalTypes": "./exposedInternalTypes.js", 14 | "./internal/exposedUtilityTypes": "./exposedUtilityTypes.js" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/packages/test/types_jest-environment-puppeteer/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@types/jest-environment-puppeteer", 3 | "version": "2.5.0", 4 | "private": true, 5 | "description": "TypeScript `globals` definitions fix-up for jest-environment-puppeteer", 6 | "homepage": "https://fluidframework.com", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/microsoft/FluidFramework.git", 10 | "directory": "packages/test/types_jest-environment-puppeteer" 11 | }, 12 | "license": "MIT", 13 | "author": "Microsoft and contributors", 14 | "main": "", 15 | "types": "index.d.ts", 16 | "scripts": { 17 | "build": "fluid-build . --task build", 18 | "check:biome": "biome check .", 19 | "check:format": "npm run check:biome", 20 | "check:prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore", 21 | "clean": "rimraf --glob \"*.tsbuildinfo\" \"*.build.log\"", 22 | "format": "npm run format:biome", 23 | "format:biome": "biome check . --write", 24 | "format:prettier": "prettier --write . --cache --ignore-path ../../../.prettierignore" 25 | }, 26 | "devDependencies": { 27 | "@biomejs/biome": "~1.9.3", 28 | "@fluidframework/build-tools": "^0.49.0", 29 | "jest-environment-puppeteer": "^9.0.2", 30 | "prettier": "~3.0.3", 31 | "rimraf": "^4.4.0" 32 | }, 33 | "typeValidation": { 34 | "disabled": true, 35 | "broken": {}, 36 | "entrypoint": "internal" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/packages/tools/changelog-generator-wrapper/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluid-private/changelog-generator-wrapper", 3 | "version": "2.5.0", 4 | "private": true, 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "packages/tools/changelog-generator-wrapper" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "main": "./src/index.js", 14 | "files": [ 15 | "dist/", 16 | "LICENSE", 17 | "*.md", 18 | "*.cjs", 19 | "*.json" 20 | ], 21 | "scripts": { 22 | "build": "concurrently npm:build:compile npm:lint", 23 | "build:commonjs": "npm run tsc", 24 | "build:compile": "npm run build:commonjs", 25 | "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\"", 26 | "eslint": "eslint --format stylish src", 27 | "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout", 28 | "format": "npm run prettier:fix", 29 | "lint": "npm run prettier && npm run eslint", 30 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 31 | "prettier": "prettier --check . --cache --ignore-path ../../.prettierignore", 32 | "prettier:fix": "prettier --write . --cache --ignore-path ../../.prettierignore", 33 | "tsc": "echo \"No build required.\"" 34 | }, 35 | "dependencies": { 36 | "@changesets/cli": "^2.27.8", 37 | "@changesets/types": "^6.0.0", 38 | "changesets-format-with-issue-links": "^0.3.0", 39 | "typescript": "~5.4.5" 40 | }, 41 | "devDependencies": { 42 | "@fluidframework/build-common": "^2.0.3", 43 | "@fluidframework/eslint-config-fluid": "^5.4.0", 44 | "concurrently": "^8.2.1", 45 | "eslint": "~8.55.0", 46 | "prettier": "~3.0.3", 47 | "rimraf": "^4.4.0" 48 | }, 49 | "typeValidation": { 50 | "disabled": true, 51 | "broken": {}, 52 | "entrypoint": "internal" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This is the workspace definition for the client release group. See https://pnpm.io/pnpm-workspace_yaml for more 2 | # information about the format. 3 | # 4 | # Guidelines for updating this file: 5 | # 6 | # 1. Keep the entries alphabetical wherever possible. 7 | # 2. Be careful when using globs that end with "**". E.g. "packages/**". Doing so can include unexpected packages. This 8 | # is especially true of packages for which we build ESM and CJS. Such packages sometimes have package.json files in 9 | # their source or output directories during compilation. 10 | 11 | packages: 12 | - "azure/packages/**" 13 | - "examples/**" 14 | - "experimental/**" 15 | - "packages/**" 16 | - "tools/markdown-magic" 17 | 18 | # exclude any package.json files that are inside src or output directories 19 | - "!**/dist/**" 20 | - "!**/lib/**" 21 | - "!**/src/**" 22 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/gitrest/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "npmClient": "pnpm", 4 | "useWorkspaces": true 5 | } 6 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/gitrest/packages/gitrest/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/gitrest", 3 | "version": "1.0.0", 4 | "description": "Entry point of the GitRest core services", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "server/gitrest/packages/gitrest" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "main": "dist/www.js", 14 | "types": "dist/www.d.ts", 15 | "scripts": { 16 | "build": "concurrently npm:build:compile npm:lint", 17 | "build:compile": "npm run tsc", 18 | "clean": "rimraf --glob dist \"**/*.tsbuildinfo\" \"**/*.build.log\"", 19 | "eslint": "eslint --format stylish src", 20 | "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout", 21 | "format": "npm run prettier:fix", 22 | "lint": "npm run prettier && npm run eslint", 23 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 24 | "prettier": "prettier --check . --cache --ignore-path ../../.prettierignore", 25 | "prettier:fix": "prettier --write . --cache --ignore-path ../../.prettierignore", 26 | "start": "node dist/www.js", 27 | "tsc": "tsc" 28 | }, 29 | "dependencies": { 30 | "@fluidframework/gitrest-base": "workspace:~", 31 | "@fluidframework/server-services-shared": "6.0.0-287165", 32 | "@fluidframework/server-services-utils": "6.0.0-287165", 33 | "body-parser": "^1.20.3", 34 | "compression": "^1.7.3", 35 | "cors": "^2.8.5", 36 | "debug": "^4.3.4", 37 | "express": "^4.21.1", 38 | "isomorphic-git": "^1.25.10", 39 | "json-stringify-safe": "^5.0.1", 40 | "nconf": "^0.11.4", 41 | "uuid": "^3.3.2", 42 | "winston": "^3.6.0" 43 | }, 44 | "devDependencies": { 45 | "@fluidframework/build-common": "^2.0.3", 46 | "@fluidframework/eslint-config-fluid": "^5.2.0", 47 | "@types/async": "^3.2.9", 48 | "@types/cors": "^2.8.4", 49 | "@types/debug": "^4.1.5", 50 | "@types/nconf": "^0.10.0", 51 | "@types/node": "^18.17.1", 52 | "@types/rimraf": "^3.0.2", 53 | "@types/supertest": "^2.0.7", 54 | "@types/uuid": "^3.4.4", 55 | "@types/winston": "^2.4.4", 56 | "async": "^3.2.2", 57 | "concurrently": "^8.2.1", 58 | "eslint": "~8.55.0", 59 | "prettier": "~3.0.3", 60 | "rimraf": "^3.0.2", 61 | "sillyname": "^0.1.0", 62 | "supertest": "^3.4.2", 63 | "typescript": "~5.1.6" 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/gitrest/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This is the workspace definition for the gitrest release group. See https://pnpm.io/pnpm-workspace_yaml for more 2 | # information about the format. 3 | # 4 | # Guidelines for updating this file: 5 | # 6 | # 1. Keep the entries alphabetical wherever possible. 7 | # 2. DO NOT end a glob with "**". E.g. "packages/**". Doing so can include unexpected packages. This is especially true 8 | # of packages for which we build ESM and CJS. Such packages sometimes have package.json files in their source or 9 | # output directories during compilation. 10 | 11 | packages: 12 | - "packages/*" 13 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/historian/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.0.1", 3 | "npmClient": "pnpm", 4 | "useWorkspaces": true 5 | } 6 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/historian/packages/historian/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/historian", 3 | "version": "0.0.1", 4 | "description": "Git REST API", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "server/historian/packages/historian" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "main": "dist/www.js", 14 | "types": "dist/www.d.ts", 15 | "scripts": { 16 | "build": "concurrently npm:build:compile npm:lint", 17 | "build:compile": "npm run tsc", 18 | "clean": "rimraf --glob dist \"**/*.tsbuildinfo\" \"**/*.build.log\"", 19 | "eslint": "eslint --ext=ts,tsx --format stylish src", 20 | "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout", 21 | "format": "npm run prettier:fix", 22 | "lint": "npm run prettier && npm run eslint", 23 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 24 | "prettier": "prettier --check . --cache --ignore-path ../../.prettierignore", 25 | "prettier:fix": "prettier --write . --cache --ignore-path ../../.prettierignore", 26 | "start": "node dist/www.js", 27 | "tsc": "tsc", 28 | "tslint": "tslint \"src/**/*.ts\"" 29 | }, 30 | "dependencies": { 31 | "@fluidframework/historian-base": "^0.0.1", 32 | "@fluidframework/server-services-shared": "6.0.0-287165", 33 | "@fluidframework/server-services-utils": "6.0.0-287165", 34 | "body-parser": "^1.20.3", 35 | "compression": "^1.7.3", 36 | "cors": "^2.8.5", 37 | "debug": "^4.3.4", 38 | "express": "^4.21.1", 39 | "ioredis": "^5.2.3", 40 | "lodash": "^4.17.19", 41 | "nconf": "^0.11.4", 42 | "uuid": "^3.3.2", 43 | "winston": "^3.6.0" 44 | }, 45 | "devDependencies": { 46 | "@fluidframework/eslint-config-fluid": "^5.1.0", 47 | "@types/compression": "0.0.36", 48 | "@types/cors": "^2.8.4", 49 | "@types/debug": "^4.1.5", 50 | "@types/lodash": "^4.14.119", 51 | "@types/nconf": "0.0.37", 52 | "@types/node": "^18.17.1", 53 | "@types/supertest": "^2.0.7", 54 | "@types/uuid": "^3.4.4", 55 | "async": "^3.2.2", 56 | "concurrently": "^8.2.1", 57 | "eslint": "~8.55.0", 58 | "eslint-config-prettier": "~9.0.0", 59 | "prettier": "~3.0.3", 60 | "rimraf": "^5.0.0", 61 | "supertest": "^3.3.0", 62 | "tslint": "^5.12.0", 63 | "typescript": "~5.1.6" 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/historian/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This is the workspace definition for the hisorian release group. See https://pnpm.io/pnpm-workspace_yaml for more 2 | # information about the format. 3 | # 4 | # Guidelines for updating this file: 5 | # 6 | # 1. Keep the entries alphabetical wherever possible. 7 | # 2. DO NOT end a glob with "**". E.g. "packages/**". Doing so can include unexpected packages. This is especially true 8 | # of packages for which we build ESM and CJS. Such packages sometimes have package.json files in their source or 9 | # output directories during compilation. 10 | 11 | packages: 12 | - "packages/*" 13 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/routerlicious/lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "6.0.0", 3 | "npmClient": "pnpm", 4 | "useWorkspaces": true 5 | } 6 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/routerlicious/packages/gitresources/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/gitresources", 3 | "version": "6.0.0", 4 | "description": "Git resource definitions for Fluid services", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "server/routerlicious/packages/gitresources" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "main": "dist/index.js", 14 | "types": "dist/index.d.ts", 15 | "scripts": { 16 | "build": "concurrently npm:build:compile npm:lint && npm run build:docs", 17 | "build:compile": "npm run tsc && npm run typetests:gen", 18 | "build:docs": "api-extractor run --local && copyfiles -u 1 \"./_api-extractor-temp/doc-models/*\" ../../_api-extractor-temp/", 19 | "clean": "rimraf --glob dist \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp", 20 | "eslint": "eslint --format stylish src", 21 | "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout", 22 | "format": "npm run prettier:fix", 23 | "lint": "npm run prettier && npm run eslint", 24 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 25 | "prettier": "prettier --check . --cache --ignore-path ../../.prettierignore", 26 | "prettier:fix": "prettier --write . --cache --ignore-path ../../.prettierignore", 27 | "tsc": "tsc", 28 | "typetests:gen": "fluid-type-test-generator", 29 | "typetests:prepare": "flub typetests --dir . --reset --previous --normalize" 30 | }, 31 | "devDependencies": { 32 | "@fluid-tools/build-cli": "^0.38.0", 33 | "@fluidframework/build-common": "^2.0.3", 34 | "@fluidframework/build-tools": "^0.38.0", 35 | "@fluidframework/eslint-config-fluid": "^5.2.0", 36 | "@fluidframework/gitresources-previous": "npm:@fluidframework/gitresources@5.0.0", 37 | "@microsoft/api-extractor": "^7.45.1", 38 | "concurrently": "^8.2.1", 39 | "copyfiles": "^2.4.1", 40 | "eslint": "~8.55.0", 41 | "prettier": "~3.0.3", 42 | "rimraf": "^4.4.0", 43 | "typescript": "~5.1.6" 44 | }, 45 | "fluidBuild": { 46 | "tasks": { 47 | "tsc": [ 48 | "...", 49 | "typetests:gen" 50 | ] 51 | } 52 | }, 53 | "typeValidation": { 54 | "broken": {} 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/routerlicious/packages/kafka-orderer/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/server-kafka-orderer", 3 | "version": "6.0.0", 4 | "description": "Fluid ordering services", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "server/routerlicious/packages/kafka-orderer" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "main": "dist/index.js", 14 | "types": "dist/index.d.ts", 15 | "scripts": { 16 | "build": "concurrently npm:build:compile npm:lint", 17 | "build:compile": "npm run tsc && npm run typetests:gen", 18 | "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\"", 19 | "eslint": "eslint --format stylish src", 20 | "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout", 21 | "format": "npm run prettier:fix", 22 | "lint": "npm run prettier && npm run eslint", 23 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 24 | "prettier": "prettier --check . --cache --ignore-path ../../.prettierignore", 25 | "prettier:fix": "prettier --write . --cache --ignore-path ../../.prettierignore", 26 | "tsc": "tsc", 27 | "typetests:gen": "fluid-type-test-generator", 28 | "typetests:prepare": "flub typetests --dir . --reset --previous --normalize" 29 | }, 30 | "dependencies": { 31 | "@fluidframework/protocol-definitions": "^3.2.0", 32 | "@fluidframework/server-services-core": "workspace:~" 33 | }, 34 | "devDependencies": { 35 | "@fluid-tools/build-cli": "^0.38.0", 36 | "@fluidframework/build-common": "^2.0.3", 37 | "@fluidframework/build-tools": "^0.38.0", 38 | "@fluidframework/eslint-config-fluid": "^5.2.0", 39 | "@fluidframework/server-kafka-orderer-previous": "npm:@fluidframework/server-kafka-orderer@5.0.0", 40 | "@types/node": "^18.19.39", 41 | "concurrently": "^8.2.1", 42 | "eslint": "~8.55.0", 43 | "prettier": "~3.0.3", 44 | "rimraf": "^4.4.0", 45 | "typescript": "~5.1.6" 46 | }, 47 | "fluidBuild": { 48 | "tasks": { 49 | "tsc": [ 50 | "...", 51 | "typetests:gen" 52 | ] 53 | } 54 | }, 55 | "typeValidation": { 56 | "broken": { 57 | "ClassDeclaration_KafkaOrdererConnection": { 58 | "forwardCompat": false 59 | } 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/routerlicious/packages/services-ordering-zookeeper/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/server-services-ordering-zookeeper", 3 | "version": "6.0.0", 4 | "description": "Fluid server services zookeeper client implementation", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "server/routerlicious/packages/services-ordering-zookeeper" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "main": "dist/index.js", 14 | "types": "dist/index.d.ts", 15 | "scripts": { 16 | "build": "concurrently npm:build:compile npm:lint", 17 | "build:compile": "npm run tsc && npm run typetests:gen", 18 | "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\"", 19 | "eslint": "eslint --format stylish src", 20 | "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout", 21 | "format": "npm run prettier:fix", 22 | "lint": "npm run prettier && npm run eslint", 23 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 24 | "prettier": "prettier --check . --cache --ignore-path ../../.prettierignore", 25 | "prettier:fix": "prettier --write . --cache --ignore-path ../../.prettierignore", 26 | "tsc": "tsc", 27 | "typetests:gen": "fluid-type-test-generator", 28 | "typetests:prepare": "flub typetests --dir . --reset --previous --normalize" 29 | }, 30 | "dependencies": { 31 | "@fluidframework/server-services-core": "workspace:~", 32 | "zookeeper": "^5.3.2" 33 | }, 34 | "devDependencies": { 35 | "@fluid-tools/build-cli": "^0.38.0", 36 | "@fluidframework/build-common": "^2.0.3", 37 | "@fluidframework/build-tools": "^0.38.0", 38 | "@fluidframework/eslint-config-fluid": "^5.2.0", 39 | "@fluidframework/server-services-ordering-zookeeper-previous": "npm:@fluidframework/server-services-ordering-zookeeper@5.0.0", 40 | "@fluidframework/server-test-utils": "workspace:~", 41 | "@types/debug": "^4.1.5", 42 | "@types/lru-cache": "^5.1.0", 43 | "@types/node": "^18.19.39", 44 | "@types/sinon": "^9.0.9", 45 | "concurrently": "^8.2.1", 46 | "eslint": "~8.55.0", 47 | "prettier": "~3.0.3", 48 | "rimraf": "^4.4.0", 49 | "sinon": "^9.2.3", 50 | "typescript": "~5.1.6" 51 | }, 52 | "fluidBuild": { 53 | "tasks": { 54 | "tsc": [ 55 | "...", 56 | "typetests:gen" 57 | ] 58 | } 59 | }, 60 | "typeValidation": { 61 | "broken": {} 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/server/routerlicious/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This is the workspace definition for the server (routerlicious) release group. See https://pnpm.io/pnpm-workspace_yaml 2 | # for more information about the format. 3 | # 4 | # Guidelines for updating this file: 5 | # 6 | # 1. Keep the entries alphabetical wherever possible. 7 | # 2. DO NOT end a glob with "**". E.g. "packages/**". Doing so can include unexpected packages. This is especially true 8 | # of packages for which we build ESM and CJS. Such packages sometimes have package.json files in their source or 9 | # output directories during compilation. 10 | 11 | packages: 12 | - "packages/*" 13 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/tools/api-markdown-documenter/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This file is a workaround. pnpm does not support nesting packages under a workspace that is not managed by the 2 | # workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the 3 | # package individually like one might expect. 4 | # 5 | # Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy 6 | # for our independent packages as well. This file makes pnpm treat the project as a one-package workspace. 7 | packages: 8 | - "." 9 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/tools/benchmark/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This file is a workaround. pnpm does not support nesting packages under a workspace that is not managed by the 2 | # workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the 3 | # package individually like one might expect. 4 | # 5 | # Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy 6 | # for our independent packages as well. This file makes pnpm treat the project as a one-package workspace. 7 | packages: 8 | - "." 9 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/tools/getkeys/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluid-internal/getkeys", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "", 6 | "homepage": "https://fluidframework.com", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/microsoft/FluidFramework.git", 10 | "directory": "tools/getkeys" 11 | }, 12 | "license": "MIT", 13 | "author": "Microsoft and contributors", 14 | "type": "module", 15 | "main": "index.js", 16 | "scripts": { 17 | "eslint": "eslint ./index.js", 18 | "eslint:fix": "eslint ./index.js --fix", 19 | "format": "npm run prettier:fix", 20 | "preinstall": "node ../../scripts/only-pnpm.cjs", 21 | "lint": "npm run prettier && npm run eslint", 22 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 23 | "prettier": "prettier --check . --cache --ignore-path ../../.prettierignore", 24 | "prettier:fix": "prettier --write . --cache --ignore-path ../../.prettierignore", 25 | "start": "node ./index.js", 26 | "test": "echo \"Error: no test specified\" && exit 1" 27 | }, 28 | "dependencies": { 29 | "@fluidframework/tool-utils": "^0.35.0" 30 | }, 31 | "devDependencies": { 32 | "@fluidframework/eslint-config-fluid": "^5.2.0", 33 | "eslint": "~8.55.0", 34 | "prettier": "~3.0.3", 35 | "typescript": "~4.5.5" 36 | }, 37 | "packageManager": "pnpm@8.15.8+sha512.d1a029e1a447ad90bc96cd58b0fad486d2993d531856396f7babf2d83eb1823bb83c5a3d0fc18f675b2d10321d49eb161fece36fe8134aa5823ecd215feed392", 38 | "pnpm": { 39 | "overrides": { 40 | "qs": "^6.11.0" 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/tools/getkeys/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "." 3 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/tools/markdown-magic/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluid-tools/markdown-magic", 3 | "version": "2.5.0", 4 | "private": true, 5 | "description": "Contains shared utilities for Markdown content generation and embedding using markdown-magic.", 6 | "homepage": "https://fluidframework.com", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/microsoft/FluidFramework.git", 10 | "directory": "tools/markdown-magic" 11 | }, 12 | "license": "MIT", 13 | "author": "Microsoft and contributors", 14 | "sideEffects": false, 15 | "bin": { 16 | "markdown-magic": "bin/markdown-magic" 17 | }, 18 | "scripts": { 19 | "build": "npm run build:docs", 20 | "build:docs": "node src/index.cjs --files README.md", 21 | "format": "npm run prettier:fix", 22 | "lint": "npm run prettier && npm run eslint", 23 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 24 | "prettier": "prettier --check . --cache", 25 | "prettier:fix": "prettier --write . --cache", 26 | "test": "node src/index.cjs --files \"test/**/*.md\" !test/README.md" 27 | }, 28 | "dependencies": { 29 | "@rushstack/node-core-library": "^3.61.0", 30 | "@tylerbu/markdown-magic": "2.4.0-tylerbu-1", 31 | "chalk": "^4.1.2", 32 | "markdown-magic-package-scripts": "^1.2.2", 33 | "yargs": "17.7.2" 34 | }, 35 | "devDependencies": { 36 | "@fluidframework/build-common": "^2.0.3", 37 | "prettier": "~3.0.3" 38 | }, 39 | "dependencyComments": [ 40 | "chalk is left at version 4 (not 5) to keep CommonJS support." 41 | ], 42 | "typeValidation": { 43 | "disabled": true, 44 | "broken": {}, 45 | "entrypoint": "internal" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/tools/markdown-magic/test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/test-package", 3 | "version": "0.1.0", 4 | "description": "This is a mock package.json for use in documentation generation tests.", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "common/build/build-common/markdown-magic/test" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "sideEffects": false, 14 | "bin": { 15 | "gen-version": "bin/gen-version", 16 | "markdown-magic": "bin/markdown-magic" 17 | }, 18 | "exports": { 19 | ".": "./index.js", 20 | "./alpha": "./alpha.js", 21 | "./legacy": "./legacy.js" 22 | }, 23 | "scripts": { 24 | "test-script-1": "echo This is a test script", 25 | "test-script-2": "echo This is another test script" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/tools/telemetry-generator/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluid-tools/telemetry-generator", 3 | "version": "1.0.0", 4 | "description": "Tool to take performance benchmark output files and write them to our monitoring systems", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "tools/telemetry-generator" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "sideEffects": false, 14 | "main": "dist/index.js", 15 | "types": "dist/index.d.ts", 16 | "scripts": { 17 | "build": "concurrently npm:build:compile npm:lint", 18 | "build:compile": "npm run tsc", 19 | "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" \"nyc/**\"", 20 | "eslint": "eslint src", 21 | "eslint:fix": "eslint src --fix", 22 | "format": "npm run prettier:fix", 23 | "lint": "npm run prettier && npm run eslint", 24 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 25 | "prettier": "prettier --check . --cache --ignore-path ../../.prettierignore", 26 | "prettier:fix": "prettier --write . --cache --ignore-path ../../.prettierignore", 27 | "start": "node bin/run", 28 | "test": "mocha --recursive \"dist/test/**/*.test.*js\"", 29 | "tsc": "tsc" 30 | }, 31 | "dependencies": { 32 | "@fluidframework/core-interfaces": "^2.0.0-rc.1.0.4", 33 | "@fluidframework/test-driver-definitions": "^2.0.0-rc.1.0.4", 34 | "@oclif/core": "^1.12.0", 35 | "applicationinsights": "^2.4.1" 36 | }, 37 | "devDependencies": { 38 | "@fluid-internal/mocha-test-setup": "^2.3.1", 39 | "@fluidframework/build-common": "^2.0.1", 40 | "@fluidframework/eslint-config-fluid": "^5.2.0", 41 | "@types/mocha": "^10.0.9", 42 | "@types/node": "^14.18.0", 43 | "@types/sinon": "^17.0.3", 44 | "concurrently": "^8.2.1", 45 | "eslint": "~8.55.0", 46 | "mocha": "^10.7.3", 47 | "mocha-multi-reporters": "^1.5.1", 48 | "prettier": "~3.0.3", 49 | "rimraf": "^2.6.2", 50 | "sinon": "^19.0.2", 51 | "typescript": "~4.5.5" 52 | }, 53 | "oclif": { 54 | "default": ".", 55 | "commands": "./dist/commands", 56 | "additionalHelpFlags": [ 57 | "-h" 58 | ], 59 | "additionalVersionFlags": [ 60 | "-v" 61 | ] 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/tools/test-tools/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@fluidframework/test-tools", 3 | "version": "2.0.0", 4 | "description": "Fluid test tools", 5 | "homepage": "https://fluidframework.com", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/microsoft/FluidFramework.git", 9 | "directory": "tools/test-tools" 10 | }, 11 | "license": "MIT", 12 | "author": "Microsoft and contributors", 13 | "main": "dist/getTestPort.js", 14 | "types": "dist/getTestPort.d.ts", 15 | "bin": { 16 | "assign-test-ports": "bin/assign-test-ports" 17 | }, 18 | "scripts": { 19 | "build": "fluid-build --task build", 20 | "build:compile": "fluid-build --task compile", 21 | "build:test": "tsc --project ./src/test/tsconfig.json", 22 | "clean": "rimraf --glob dist \"**/*.tsbuildinfo\" \"**/*.build.log\" nyc", 23 | "eslint": "eslint src", 24 | "eslint:fix": "eslint src --fix", 25 | "format": "npm run prettier:fix", 26 | "lint": "fluid-build --task lint", 27 | "lint:fix": "npm run prettier:fix && npm run eslint:fix", 28 | "prettier": "prettier --check . --cache --ignore-path ../../.prettierignore", 29 | "prettier:fix": "prettier --write . --cache --ignore-path ../../.prettierignore", 30 | "test": "mocha", 31 | "tsc": "tsc" 32 | }, 33 | "devDependencies": { 34 | "@fluidframework/build-common": "^2.0.3", 35 | "@fluidframework/build-tools": "^0.44.0", 36 | "@fluidframework/eslint-config-fluid": "^5.1.0", 37 | "@types/mocha": "^10.0.0", 38 | "@types/node": "^18.19.0", 39 | "eslint": "~8.55.0", 40 | "eslint-config-prettier": "~9.0.0", 41 | "mocha": "^10.2.0", 42 | 43 | "mocha-multi-reporters": "^1.5.1", 44 | "moment": "^2.21.0", 45 | "prettier": "~3.0.3", 46 | "rimraf": "^5.0.0", 47 | "typescript": "~5.1.6" 48 | }, 49 | "packageManager": "pnpm@8.15.8+sha512.d1a029e1a447ad90bc96cd58b0fad486d2993d531856396f7babf2d83eb1823bb83c5a3d0fc18f675b2d10321d49eb161fece36fe8134aa5823ecd215feed392" 50 | } 51 | -------------------------------------------------------------------------------- /fixtures/fluid-framework/tools/test-tools/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | # This file is a workaround. pnpm does not support nesting packages under a workspace that is not managed by the 2 | # workspace. That is, if there's a pnpm-workspace.yaml file anywhere in the parent hierarchy, pnpm doesn't install the 3 | # package individually like one might expect. 4 | # 5 | # Because we have the client release group at the root of the repo, there's a pnpm-workspace.yaml file in the hierarchy 6 | # for our independent packages as well. This file makes pnpm treat the project as a one-package workspace. 7 | packages: 8 | - "." 9 | -------------------------------------------------------------------------------- /npm/index.cjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const { spawnSync } = require('node:child_process'); 4 | 5 | const args = process.argv.slice(2); 6 | const arch = process.arch; 7 | const [os, extension] = ['win32', 'cygwin'].includes(process.platform) ? ['windows', '.exe'] : [process.platform, '']; 8 | const optionalDep = `syncpack-${os}-${arch}`; 9 | const pkgSpecifier = `${optionalDep}/bin/syncpack${extension}`; 10 | const pathToBinary = require.resolve(pkgSpecifier); 11 | 12 | process.exit( 13 | spawnSync(pathToBinary, args, { 14 | cwd: process.cwd(), 15 | stdio: ['ignore', 'inherit', 'inherit'], 16 | env: { 17 | ...process.env, 18 | COSMICONFIG_REQUIRE_PATH: require.resolve('cosmiconfig'), 19 | RUST_BACKTRACE: 'full', 20 | }, 21 | }).status || 0, 22 | ); 23 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "site" 3 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | group_imports = "One" 2 | imports_granularity = "One" 3 | max_width = 140 4 | reorder_impl_items = true 5 | reorder_imports = true 6 | tab_spaces = 2 7 | wrap_comments = true 8 | -------------------------------------------------------------------------------- /site/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode"], 3 | "unwantedRecommendations": [] 4 | } 5 | -------------------------------------------------------------------------------- /site/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "syncpack-docs", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "@astrojs/check": "^0.9.4", 6 | "@astrojs/starlight": "^0.34.3", 7 | "astro": "^5.7.13", 8 | "sharp": "^0.34.1", 9 | "typescript": "^5.8.3" 10 | }, 11 | "devDependencies": { 12 | "unist-util-visit": "^5.0.0" 13 | }, 14 | "private": true, 15 | "scripts": { 16 | "astro": "astro", 17 | "build": "astro check && astro build && scripts/patch-sitemap.sh", 18 | "dev": "astro dev", 19 | "preview": "astro preview", 20 | "start": "astro dev" 21 | }, 22 | "type": "module" 23 | } 24 | -------------------------------------------------------------------------------- /site/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamieMason/syncpack/5febac2c78a967b2d9ff47e742775ba92acc222f/site/public/favicon.ico -------------------------------------------------------------------------------- /site/public/googlebfe2dd5c46c76281.html: -------------------------------------------------------------------------------- 1 | google-site-verification: googlebfe2dd5c46c76281.html -------------------------------------------------------------------------------- /site/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | 4 | Sitemap: https://jamiemason.github.io/syncpack/sitemap.xml 5 | -------------------------------------------------------------------------------- /site/public/social-card.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamieMason/syncpack/5febac2c78a967b2d9ff47e742775ba92acc222f/site/public/social-card.jpg -------------------------------------------------------------------------------- /site/scripts/patch-sitemap.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | rm dist/sitemap-index.xml 4 | mv dist/sitemap-0.xml dist/sitemap.xml 5 | -------------------------------------------------------------------------------- /site/src/_partials/default-dependency-types.mdx: -------------------------------------------------------------------------------- 1 | | Name | Property in package.json | 2 | | :------------ | :------------------------------------------- | 3 | | dev | [`devDependencies`](HREF_DEV_DEPENDENCIES) | 4 | | local | [`version`](HREF_VERSION) | 5 | | overrides | [`overrides`](HREF_OVERRIDES) | 6 | | peer | [`peerDependencies`](HREF_PEER_DEPENDENCIES) | 7 | | pnpmOverrides | [`pnpm.overrides`](HREF_PNPM_OVERRIDES) | 8 | | prod | [`dependencies`](HREF_DEPENDENCIES) | 9 | | resolutions | [`resolutions`](HREF_RESOLUTIONS) | 10 | -------------------------------------------------------------------------------- /site/src/_partials/group-config/dependencies.mdx: -------------------------------------------------------------------------------- 1 | - An array of names of dependencies you've installed or otherwise reference in your package.json files. 2 | - If omitted, the default behaviour is to match every dependency. 3 | - The strings can be any combination of exact matches or [glob](HREF_GLOB) patterns: 4 | 5 | ```json title="Examples of valid values" 6 | // match any dependency 7 | dependencies: ["**"] 8 | 9 | // match all dependencies with a certain scope 10 | dependencies: ["@aws-sdk/**"] 11 | 12 | // match specific dependencies by name 13 | dependencies: ["react", "react-dom"] 14 | ``` 15 | 16 | ```json title="Where this pattern is matched against" 17 | { 18 | "name": "HERE", 19 | "dependencies": { "HERE": "0.0.0" }, 20 | "devDependencies": { "HERE": "0.0.0" }, 21 | "overrides": { "HERE": "0.0.0" }, 22 | "peerDependencies": { "HERE": "0.0.0" }, 23 | "pnpm": { "overrides": { "HERE": "0.0.0" } }, 24 | "resolutions": { "HERE": "0.0.0" } 25 | } 26 | ``` 27 | -------------------------------------------------------------------------------- /site/src/_partials/group-config/dependency-types.mdx: -------------------------------------------------------------------------------- 1 | import CustomTypesTip from "@partials/tips/custom-types.mdx"; 2 | 3 | A "dependency type" refers to the path/location/nested property of package.json files where dependencies can be found. 4 | 5 | - When set, only dependencies present in the named locations will be assigned to this group. 6 | - If omitted, the default behaviour is to match dependencies everywhere they are found. 7 | - Negated types are also supported, so a value of `["!dev", "!prod"]` would assign everything **except** `dependencies` and `devDependencies` to this group. 8 | 9 | See the [Dependency Types](REF_DEPENDENCY_TYPES) guide for the list of possible values. 10 | 11 | 12 | -------------------------------------------------------------------------------- /site/src/_partials/group-config/label.mdx: -------------------------------------------------------------------------------- 1 | - A short name or description displayed as a header in syncpack's output. 2 | - If a label is not set then eg. "Version Group 3" will be used instead. 3 | -------------------------------------------------------------------------------- /site/src/_partials/group-config/packages.mdx: -------------------------------------------------------------------------------- 1 | - An array of strings which should match the `name` properties of your package.json files. 2 | - If omitted, the default behaviour is to match every package. 3 | - Negated types are also supported, so a value of `["!my-client", "!my-server"]` would assign everything **except** the packages `my-client` and `my-server` to this group. 4 | - The strings can be any combination of exact matches or [glob](HREF_GLOB) patterns: 5 | 6 | ```json title="Examples of valid values" 7 | // ✅ match any package name 8 | packages: ["**"] 9 | 10 | // ✅ match any package name with this scope 11 | packages: ["@my-repo/**"] 12 | 13 | // ✅ match specific packages by name 14 | packages: ["my-server", "my-client"] 15 | 16 | // ✅ match all packages except negated ones 17 | packages: ["!my-server", "!@my-repo/**] 18 | 19 | // ❌ no mixing of specific and negated packages 20 | packages: ["my-client", "!@my-repo/**"] 21 | 22 | // ❌ not file system paths, name properties of package.json files 23 | packages: ["packages/my-client"] 24 | 25 | // ❌ not file system globs, name properties of package.json files 26 | packages: ["packages/**"] 27 | ``` 28 | 29 | ```json title="Where this pattern is matched against" 30 | { 31 | "name": "HERE", 32 | "version": "1.0.2" 33 | } 34 | ``` 35 | -------------------------------------------------------------------------------- /site/src/_partials/group-config/specifier-types.mdx: -------------------------------------------------------------------------------- 1 | - When set, only dependencies whose version specifier matches the given [specifier types](REF_SPECIFIER_TYPES) will be assigned to this group. 2 | - If omitted, the default behaviour is to match all dependencies. 3 | - Negated types are also supported, so a value of `["!latest", "!file"]` would assign everything **except** specifiers of the format `*` and `file:path/to/package.tgz` to this group. 4 | -------------------------------------------------------------------------------- /site/src/_partials/how-packages-are-resolved.mdx: -------------------------------------------------------------------------------- 1 | Syncpack will look in the following places for [glob](HREF_GLOB) patterns matching package.json files, in this order of precedence, and stop looking when a match is found: 2 | 3 | 1. If `--source` CLI options are provided, use those. 4 | 1. If [`source`](CONFIG_SOURCE) is defined in configuration, use that. 5 | 1. If using [npm workspaces](HREF_NPM_WORKSPACES) or [Yarn workspaces](HREF_YARN_WORKSPACES), read `workspaces` from `./package.json`. 6 | 1. If using [pnpm](HREF_PNPM), read `packages` from `./pnpm-workspace.yaml`. 7 | 1. If using [Lerna](HREF_LERNA), read `packages` from `./lerna.json`. 8 | 1. Default to `'package.json'` and `'packages/*/package.json'`. 9 | -------------------------------------------------------------------------------- /site/src/_partials/option/check.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 |

{props.summary}

4 | 5 | 9 | -------------------------------------------------------------------------------- /site/src/_partials/option/config.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | `syncpack` searches the monorepo root directory for a config file which follows its naming convention, but this can be overridden by providing a path to a specific configuration file instead. 4 | 5 | The only requirement is that the file must have a file extension and that it is one of `.cjs`, `.cts`, `.js`, `.json`, `.mjs`, `.mts`, `.ts`, `.yaml`, or `.yml`. 6 | 7 | 11 | -------------------------------------------------------------------------------- /site/src/_partials/option/dependencies.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Include dependencies whose name matches the given glob pattern. 4 | 5 | To exclude, put a `!` at the start of your query. 6 | 7 | 24 | -------------------------------------------------------------------------------- /site/src/_partials/option/dependency-types.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Include dependencies of the given [dependency types](REF_DEPENDENCY_TYPES) and/or [custom types](CONFIG_CUSTOM_TYPES). 4 | 5 | To exclude, put a `!` at the start of your query. 6 | 7 | 18 | -------------------------------------------------------------------------------- /site/src/_partials/option/dry-run.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Cause syncpack to behave identically as when applying fixes, but never writing to disk. 4 | 5 | 6 | -------------------------------------------------------------------------------- /site/src/_partials/option/help.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Display a list of CLI options and other help information. 4 | 5 | 14 | -------------------------------------------------------------------------------- /site/src/_partials/option/log-levels.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Control how detailed the log output should be 4 | 5 | | Level | What is written to this channel | 6 | | ----- | ------------------------------------------------------------------------ | 7 | | info | The standard output which forms syncpack\'s UI, including lint issues | 8 | | warn | Possible mistakes in your setup, or highlights of known gaps in syncpack | 9 | | error | Fatal exceptions or errors outside the normal running of syncpack | 10 | | debug | Extremely verbose detail on why syncpack assigns each status code | 11 | 12 | 23 | -------------------------------------------------------------------------------- /site/src/_partials/option/no-ansi.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Syncpack will print colours and clickable hyperlinks to the terminal using [ANSI escape code](HREF_ANSI) unless this option is set. 4 | 5 | 6 | -------------------------------------------------------------------------------- /site/src/_partials/option/show-list.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | 4 | -------------------------------------------------------------------------------- /site/src/_partials/option/show-versions.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Control what information is displayed in terminal output 4 | 5 | | Name | Description | 6 | | --------- | ---------------------------------------------------------------------- | 7 | | instances | Show every instance of every dependency | 8 | | hints | Show a hint alongside dependencies developed in this repo | 9 | | statuses | Show specifically how/why a dependency or instance is valid or invalid | 10 | | all | Shorthand to enable all of the above | 11 | | none | Shorthand to disable all of the above | 12 | 13 | 26 | -------------------------------------------------------------------------------- /site/src/_partials/option/sort.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Change the order in which dependencies are displayed 4 | 5 | 14 | -------------------------------------------------------------------------------- /site/src/_partials/option/source.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | import HowPackagesAreResolved from "@partials/how-packages-are-resolved.mdx"; 3 | 4 | Only run {`syncpack ${props.command}`} on package.json files matching the provided pattern(s). 5 | 6 | 7 | 8 | 17 | -------------------------------------------------------------------------------- /site/src/_partials/option/specifier-types.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Include only instances whose version specifiers are of the given [specifier types](REF_SPECIFIER_TYPES). 4 | 5 | To exclude, put a `!` at the start of your query. 6 | 7 | 18 | -------------------------------------------------------------------------------- /site/src/_partials/option/target.mdx: -------------------------------------------------------------------------------- 1 | import { Code } from "astro:components"; 2 | 3 | Limit updates to only those within the given semver portion. 4 | 5 | 16 | -------------------------------------------------------------------------------- /site/src/_partials/tips/custom-types.mdx: -------------------------------------------------------------------------------- 1 | :::tip 2 | 3 | You can extend syncpack by defining your own [`customTypes`](CONFIG_CUSTOM_TYPES). 4 | 5 | ::: 6 | -------------------------------------------------------------------------------- /site/src/_partials/tips/monorepo-not-essential.mdx: -------------------------------------------------------------------------------- 1 | :::tip[You don't have to use syncpack with a monorepo] 2 | 3 | If your project is split over many git repositories, you could create a .syncpackrc.json with a [source](CONFIG_SOURCE) property targeting the package.json files in each `git clone`. 4 | 5 | Then you can use syncpack to update dependencies or look for problems. 6 | 7 | ::: 8 | -------------------------------------------------------------------------------- /site/src/_partials/tips/quote-filters.mdx: -------------------------------------------------------------------------------- 1 | :::note[`*` `!` `{` `}` etc] 2 | 3 | When passing values to `syncpack` via the command line, remember to add quotes around values containing special characters so your shell does not interpret them. 4 | 5 | ::: 6 | -------------------------------------------------------------------------------- /site/src/assets/houston.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JamieMason/syncpack/5febac2c78a967b2d9ff47e742775ba92acc222f/site/src/assets/houston.webp -------------------------------------------------------------------------------- /site/src/components/details.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const { title } = Astro.props; 3 | --- 4 | 5 |
6 | {title} 7 | 8 |
9 | 10 | 16 | -------------------------------------------------------------------------------- /site/src/components/question.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const { slug, title } = Astro.props; 3 | --- 4 | 5 |
6 |
12 |

{title}

13 |
18 |
19 | 20 |
21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /site/src/content/config.ts: -------------------------------------------------------------------------------- 1 | import { defineCollection, z } from 'astro:content'; 2 | import { docsLoader } from '@astrojs/starlight/loaders'; 3 | import { docsSchema } from '@astrojs/starlight/schema'; 4 | import { glob } from 'astro/loaders'; // Not available with legacy API 5 | 6 | const startPage = 'https://jamiemason.github.io/syncpack/guide/getting-started/'; 7 | const v13Docs = `https://web.archive.org/web/20250217193908/${startPage}`; 8 | const v14 = 'https://github.com/JamieMason/syncpack?tab=readme-ov-file#syncpack'; 9 | const banner = `This documentation is for v14 alpha, the docs for v13 stable are archived.`; 10 | 11 | const schema = docsSchema({ 12 | extend: z.object({ 13 | banner: z.object({ content: z.string() }).default({ 14 | content: banner, 15 | }), 16 | }), 17 | }); 18 | 19 | export const collections = { 20 | docs: defineCollection({ 21 | loader: docsLoader(), 22 | schema, 23 | }), 24 | faq: defineCollection({ 25 | loader: glob({ pattern: '**/*.mdx', base: './src/faq' }), 26 | schema, 27 | }), 28 | }; 29 | -------------------------------------------------------------------------------- /site/src/content/docs/command/fix.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: fix 3 | --- 4 | 5 | import { Badge } from "@astrojs/starlight/components"; 6 | import ConfigOption from "@partials/option/config.mdx"; 7 | import DependenciesOption from "@partials/option/dependencies.mdx"; 8 | import DependencyTypesOption from "@partials/option/dependency-types.mdx"; 9 | import HelpOption from "@partials/option/help.mdx"; 10 | import LogLevelsOption from "@partials/option/log-levels.mdx"; 11 | import NoAnsiOption from "@partials/option/no-ansi.mdx"; 12 | import ShowOption from "@partials/option/show-versions.mdx"; 13 | import SortOption from "@partials/option/sort.mdx"; 14 | import SourceOption from "@partials/option/source.mdx"; 15 | import SpecifierTypesOption from "@partials/option/specifier-types.mdx"; 16 | 17 | import QuoteFilters from "@partials/tips/quote-filters.mdx"; 18 | 19 | Fix every autofixable issue found by `syncpack lint`. 20 | 21 | ## Options 22 | 23 | 24 | 25 | ### --config 26 | 27 | 28 | 29 | ### --dependencies 30 | 31 | 32 | 33 | ### --dependency-types 34 | 35 | 36 | 37 | ### --log-levels 38 | 39 | 40 | 41 | ### --no-ansi 42 | 43 | 44 | 45 | ### --show 46 | 47 | 48 | 49 | ### --sort 50 | 51 | 52 | 53 | ### --source 54 | 55 | 56 | 57 | ### --specifier-types 58 | 59 | 60 | 61 | ### --help 62 | 63 | 64 | -------------------------------------------------------------------------------- /site/src/content/docs/command/format.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: format 3 | --- 4 | 5 | import { Badge } from "@astrojs/starlight/components"; 6 | import CheckOption from "@partials/option/check.mdx"; 7 | import ConfigOption from "@partials/option/config.mdx"; 8 | import DryRunOption from "@partials/option/dry-run.mdx"; 9 | import HelpOption from "@partials/option/help.mdx"; 10 | import LogLevelsOption from "@partials/option/log-levels.mdx"; 11 | import NoAnsiOption from "@partials/option/no-ansi.mdx"; 12 | import QuoteFilters from "@partials/tips/quote-filters.mdx"; 13 | import SourceOption from "@partials/option/source.mdx"; 14 | 15 | Sort package.json fields into a predictable order and nested fields alphabetically. 16 | 17 | ## Options 18 | 19 | 20 | 21 | ### --check 22 | 23 | 27 | 28 | ### --config 29 | 30 | 31 | 32 | ### --dry-run 33 | 34 | 35 | 36 | ### --log-levels 37 | 38 | 39 | 40 | ### --no-ansi 41 | 42 | 43 | 44 | ### --source 45 | 46 | 47 | 48 | ### --help 49 | 50 | 51 | -------------------------------------------------------------------------------- /site/src/content/docs/command/lint.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: lint 3 | --- 4 | 5 | import { Badge } from "@astrojs/starlight/components"; 6 | import ConfigOption from "@partials/option/config.mdx"; 7 | import DependenciesOption from "@partials/option/dependencies.mdx"; 8 | import DependencyTypesOption from "@partials/option/dependency-types.mdx"; 9 | import HelpOption from "@partials/option/help.mdx"; 10 | import LogLevelsOption from "@partials/option/log-levels.mdx"; 11 | import NoAnsiOption from "@partials/option/no-ansi.mdx"; 12 | import QuoteFilters from "@partials/tips/quote-filters.mdx"; 13 | import ShowOption from "@partials/option/show-versions.mdx"; 14 | import SortOption from "@partials/option/sort.mdx"; 15 | import SourceOption from "@partials/option/source.mdx"; 16 | import SpecifierTypesOption from "@partials/option/specifier-types.mdx"; 17 | 18 | Lint all versions and ranges and exit with 0 or 1 based on whether all files match your Syncpack configuration file. 19 | 20 | ## Options 21 | 22 | 23 | 24 | ### --config 25 | 26 | 27 | 28 | ### --dependencies 29 | 30 | 31 | 32 | ### --dependency-types 33 | 34 | 35 | 36 | ### --log-levels 37 | 38 | 39 | 40 | ### --no-ansi 41 | 42 | 43 | 44 | ### --show 45 | 46 | 47 | 48 | ### --sort 49 | 50 | 51 | 52 | ### --source 53 | 54 | 55 | 56 | ### --specifier-types 57 | 58 | 59 | 60 | ### --help 61 | 62 | 63 | -------------------------------------------------------------------------------- /site/src/content/docs/command/list.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: list 3 | --- 4 | 5 | import { Badge } from "@astrojs/starlight/components"; 6 | import ConfigOption from "@partials/option/config.mdx"; 7 | import DependenciesOption from "@partials/option/dependencies.mdx"; 8 | import DependencyTypesOption from "@partials/option/dependency-types.mdx"; 9 | import HelpOption from "@partials/option/help.mdx"; 10 | import LogLevelsOption from "@partials/option/log-levels.mdx"; 11 | import NoAnsiOption from "@partials/option/no-ansi.mdx"; 12 | import QuoteFilters from "@partials/tips/quote-filters.mdx"; 13 | import ShowOption from "@partials/option/show-list.mdx"; 14 | import SortOption from "@partials/option/sort.mdx"; 15 | import SourceOption from "@partials/option/source.mdx"; 16 | import SpecifierTypesOption from "@partials/option/specifier-types.mdx"; 17 | 18 | Query and inspect all dependencies in your project, both valid and invalid. 19 | 20 | ## Options 21 | 22 | 23 | 24 | ### --config 25 | 26 | 27 | 28 | ### --dependencies 29 | 30 | 31 | 32 | ### --dependency-types 33 | 34 | 35 | 36 | ### --log-levels 37 | 38 | 39 | 40 | ### --no-ansi 41 | 42 | 43 | 44 | ### --show 45 | 46 | 47 | 48 | ### --sort 49 | 50 | 51 | 52 | ### --source 53 | 54 | 55 | 56 | ### --specifier-types 57 | 58 | 59 | 60 | ### --help 61 | 62 | 63 | -------------------------------------------------------------------------------- /site/src/content/docs/command/update.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: update 3 | --- 4 | 5 | import { Badge } from "@astrojs/starlight/components"; 6 | import CheckOption from "@partials/option/check.mdx"; 7 | import ConfigOption from "@partials/option/config.mdx"; 8 | import DependenciesOption from "@partials/option/dependencies.mdx"; 9 | import DependencyTypesOption from "@partials/option/dependency-types.mdx"; 10 | import DryRunOption from "@partials/option/dry-run.mdx"; 11 | import HelpOption from "@partials/option/help.mdx"; 12 | import LogLevelsOption from "@partials/option/log-levels.mdx"; 13 | import NoAnsiOption from "@partials/option/no-ansi.mdx"; 14 | import QuoteFilters from "@partials/tips/quote-filters.mdx"; 15 | import ShowOption from "@partials/option/show-list.mdx"; 16 | import SortOption from "@partials/option/sort.mdx"; 17 | import SourceOption from "@partials/option/source.mdx"; 18 | import SpecifierTypesOption from "@partials/option/specifier-types.mdx"; 19 | import TargetOption from "@partials/option/target.mdx"; 20 | 21 | Update to the latest versions on the npm registry. 22 | 23 | ## Options 24 | 25 | 26 | 27 | ### --check 28 | 29 | 33 | 34 | ### --config 35 | 36 | 37 | 38 | ### --dependencies 39 | 40 | 41 | 42 | ### --dependency-types 43 | 44 | 45 | 46 | ### --dry-run 47 | 48 | 49 | 50 | ### --log-levels 51 | 52 | 53 | 54 | ### --no-ansi 55 | 56 | 57 | 58 | ### --source 59 | 60 | 61 | 62 | ### --specifier-types 63 | 64 | 65 | 66 | ### --target 67 | 68 | 69 | 70 | ### --help 71 | 72 | 73 | -------------------------------------------------------------------------------- /site/src/content/docs/config/dependency-groups.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: dependencyGroups 3 | --- 4 | 5 | import { Badge } from "@astrojs/starlight/components"; 6 | import Packages from "@partials/group-config/packages.mdx"; 7 | import Dependencies from "@partials/group-config/dependencies.mdx"; 8 | import DependencyTypes from "@partials/group-config/dependency-types.mdx"; 9 | import SpecifierTypes from "@partials/group-config/specifier-types.mdx"; 10 | import Label from "@partials/group-config/label.mdx"; 11 | 12 | Allow many dependencies to be interpreted as one. 13 | 14 | ## Example 15 | 16 | Treat all dependencies from the [AWS SDK for JavaScript](https://aws.amazon.com/sdk-for-javascript/) as if they were all instances of a single dependency called `aws-sdk-dependencies`. 17 | 18 | ```jsonc title=".syncpackrc.json" 19 | { 20 | "dependencyGroups": [ 21 | { 22 | "dependencies": ["@aws-sdk/**"], 23 | "aliasName": "aws-sdk-dependencies", 24 | }, 25 | ], 26 | } 27 | ``` 28 | 29 | With the above config: "@aws-sdk/core", "@aws-sdk/middleware-logger" etc will be treated as if they were one dependency – any differences in their versions will be caught in the usual way. 30 | 31 | 32 | ## Configuration 33 | 34 | ### aliasName 35 | 36 | The name to use in place of the originals when referring to this group of merged dependencies. 37 | 38 | When assigning this new dependency to version/semver groups etc, use the **aliasName** instead of the original name. 39 | 40 | ### dependencies 41 | 42 | 43 | 44 | ### dependencyTypes 45 | 46 | 47 | 48 | ### specifierTypes 49 | 50 | 51 | 52 | ### label 53 | 54 |