Meteor, the JavaScript App Platform
This report summarizes scanner evidence for meteor/meteor, a JavaScript project with 44,792 GitHub stars. SynthScan examined 557,663 lines of code across 3214 source files, recording 781 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 1.8 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 733 finding(s).
Are imports declared and package/API names verified? 30 finding(s).
Are wrappers, guards, and repeated structures necessary? 173 finding(s).
Which changes need focused human review? 781 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 781 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | guide/source/vue.md | 481 | // 4. Map the components into a list of promises | COMMENT |
| LOW | guide/source/security.md | 621 | mediaSrc: [self], | COMMENT |
| LOW | v3-docs/docs/packages/packages-listing.md | 21 | ### [accounts-facebook](https://github.com/meteor/meteor/tree/release-3.0/packages/accounts-facebook) {#accounts-faceboo | COMMENT |
| LOW | v3-docs/docs/packages/packages-listing.md | 41 | ### [boilerplate-generator](https://github.com/meteor/meteor/tree/release-3.0/packages/boilerplate-generator) {#boilerpl | COMMENT |
| LOW | v3-docs/docs/packages/packages-listing.md | 61 | ### [diff-sequence](https://github.com/meteor/meteor/tree/release-3.0/packages/diff-sequence) {#diff-sequence} | COMMENT |
| LOW | v3-docs/docs/packages/packages-listing.md | 81 | ### [google-config-ui](https://github.com/meteor/meteor/tree/release-3.0/packages/google-config-ui) {#google-config-ui} | COMMENT |
| LOW | v3-docs/docs/packages/packages-listing.md | 101 | ### [minifier-js](https://github.com/meteor/meteor/tree/release-3.0/packages/minifier-js) {#minifier-js} | COMMENT |
| LOW | v3-docs/docs/packages/packages-listing.md | 121 | ### [promise](https://github.com/meteor/meteor/tree/release-3.0/packages/promise) {#promise} | COMMENT |
| LOW | v3-docs/docs/packages/packages-listing.md | 141 | ### [static-html](https://github.com/meteor/meteor/tree/release-3.0/packages/static-html) {#static-html} | COMMENT |
| LOW | v3-docs/docs/packages/logging.md | 61 | ### Log.debug | COMMENT |
| LOW | v3-docs/docs/api/packages-listing.md | 21 | ### [accounts-google](https://github.com/meteor/meteor/tree/devel/packages/accounts-google) {#accounts-google} | COMMENT |
| LOW | v3-docs/docs/api/packages-listing.md | 41 | ### [browser-policy](https://github.com/meteor/meteor/tree/devel/packages/browser-policy) {#browser-policy} | COMMENT |
| LOW | v3-docs/docs/api/packages-listing.md | 61 | ### [ecmascript](https://github.com/meteor/meteor/tree/devel/packages/ecmascript) {#ecmascript} | COMMENT |
| LOW | v3-docs/docs/api/packages-listing.md | 81 | ### [hot-module-replacement](https://github.com/meteor/meteor/tree/devel/packages/hot-module-replacement) {#hot-module-r | COMMENT |
| LOW | v3-docs/docs/api/packages-listing.md | 101 | ### [modern-browsers](https://github.com/meteor/meteor/tree/devel/packages/modern-browsers) {#modern-browsers} | COMMENT |
| LOW | v3-docs/docs/api/packages-listing.md | 121 | ### [react-fast-refresh](https://github.com/meteor/meteor/tree/devel/packages/react-fast-refresh) {#react-fast-refresh} | COMMENT |
| LOW | v3-docs/docs/api/packages-listing.md | 141 | ### [test-helpers](https://github.com/meteor/meteor/tree/devel/packages/test-helpers) {#test-helpers} | COMMENT |
| LOW | v3-docs/docs/tutorials/security/security.md | 621 | mediaSrc: [self], | COMMENT |
| LOW | v3-docs/docs/generators/changelog/order-packages.js | 1 | const fs = require("fs").promises; | COMMENT |
| LOW | tools/upgraders.js | 1 | /* eslint no-console: 0 */ | COMMENT |
| LOW | tools/project-context.js | 21 | // This variable was duplicated due to an issue on importing it. | COMMENT |
| LOW | tools/project-context.js | 41 | // authors don't have to add it explicitly. It isn't relevant for local | COMMENT |
| LOW | tools/project-context.js | 61 | // automatically depend on the `isobuild:prod-only` feature package. | COMMENT |
| LOW | tools/project-context.js | 101 | process.env.METEOR_DISALLOW_DELAYED_LEGACY_BUILD || "false" | COMMENT |
| LOW | tools/project-context.js | 221 | self._upgradePackageNames = options.upgradePackageNames; | COMMENT |
| LOW | tools/project-context.js | 281 | self.projectCatalog = null; | COMMENT |
| LOW | tools/packaging/warehouse.js | 1 | // This file is used to access the "warehouse" of pre-0.9.0 releases. This code | COMMENT |
| LOW | tools/packaging/warehouse.js | 21 | /// | COMMENT |
| LOW | tools/packaging/release.js | 141 | }); | COMMENT |
| LOW | tools/packaging/release.js | 201 | if (!defaultRelease) { | COMMENT |
| LOW | tools/packaging/package-map.js | 1 | var _ = require('underscore'); | COMMENT |
| LOW | tools/packaging/package-client.js | 101 | } | COMMENT |
| LOW | tools/packaging/package-client.js | 461 | } | COMMENT |
| LOW | tools/packaging/package-client.js | 561 | // isopack. | COMMENT |
| LOW | tools/packaging/catalog/catalog-remote.js | 1001 | // rows where the column is actually the string "1.1", since SQLite thinks | COMMENT |
| LOW | tools/packaging/catalog/catalog-local.js | 21 | // This package directly calls Plugin.registerMinifier. Package authors | COMMENT |
| LOW | tools/packaging/catalog/catalog-local.js | 41 | // Isobuild... just because less@2.0.0 depends on isobuild:compiler-plugin | COMMENT |
| LOW | tools/packaging/catalog/catalog-local.js | 61 | // that is only available on npm, which means downloading the plugin is not | COMMENT |
| LOW | tools/packaging/catalog/catalog-local.js | 101 | // All packages found either by localPackageSearchDirs or | COMMENT |
| LOW | tools/packaging/catalog/catalog-local.js | 121 | var self = this; | COMMENT |
| LOW | tools/cordova/project.js | 721 | // We convert old plugin IDs to new IDs in the 1.2.0-cordova-changes | COMMENT |
| LOW | tools/tool-env/source-map-retriever-stack.js | 1 | import sourceMapSupport from 'source-map-support'; | COMMENT |
| LOW | tools/tool-env/profile.ts | 1 | // Tiny profiler | COMMENT |
| LOW | tools/tool-env/profile.ts | 21 | // The advantage of this form is that it doesn't change the | COMMENT |
| LOW | tools/tool-env/profile.ts | 41 | // depends on the arguments passed to the function or the value of | COMMENT |
| LOW | tools/tool-env/profile.ts | 61 | // foo: function (a) { | COMMENT |
| LOW | tools/tool-env/profile.ts | 81 | // | COMMENT |
| LOW | tools/tool-env/profile.ts | 101 | // | COMMENT |
| LOW | tools/tool-env/profile.ts | 121 | // The leaf time report shows the total time spent within leaf | COMMENT |
| LOW | tools/tool-env/profile.ts | 141 | // call to "B": | COMMENT |
| LOW | tools/tool-env/isopackets.js | 21 | // An isopacket is a predefined set of isopackages which the meteor command-line | COMMENT |
| LOW | tools/tool-env/isopackets.js | 41 | // process if any of their sources have changed. | COMMENT |
| LOW | tools/tool-env/isopackets.js | 61 | // ejson | COMMENT |
| LOW | tools/tool-env/isopackets.js | 81 | // instance is known to be ready | COMMENT |
| LOW | tools/tests/galaxy.js | 161 | // running (or the scheduler is lying to GalaxyAPI and claiming that they are | COMMENT |
| LOW | tools/tests/package-tests.js | 21 | // sand: a sandbox, that has the main app directory as its cwd. | COMMENT |
| LOW | tools/tests/package-tests.js | 41 | } else { | COMMENT |
| LOW | tools/tests/package-tests.js | 521 | // - options: | COMMENT |
| LOW | tools/tests/package-tests.js | 601 | // | COMMENT |
| LOW | tools/tests/colon-converter-tests.js | 21 | COMMENT | |
| 456 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/packaging/package-client.js | 455 | export async function createAndPublishBuiltPackage(conn, isopack, isopackCache) { | CODE |
| LOW | tools/cordova/index.js | 38 | export function ensureDevBundleDependencies() { | CODE |
| LOW | tools/cordova/index.js | 107 | export function pluginVersionsFromStarManifest(star) { | CODE |
| LOW | tools/cordova/index.js | 173 | function displayNameForHostPlatform(platform = process.platform) { | CODE |
| LOW | tools/tool-env/source-map-retriever-stack.js | 24 | function tryAllSourceMapRetrievers(filename) { | CODE |
| LOW | tools/tool-env/profile.ts | 395 | function shouldRunInspectorProfiling(name: string): boolean { | CODE |
| LOW | tools/tool-env/isopackets.js | 278 | export async function makeIsopacketBuildContext() { | CODE |
| LOW | tools/native-tests/scripts/cordova-plugin-override.js | 7 | async function configureLocalMeteorWebappPlugin({ appDir, pluginDir }) { | CODE |
| LOW | tools/native-tests/scripts/cordova-hcp.js | 34 | async function applyCordovaFixtureUpdate(appDir) { | CODE |
| LOW | tools/native-tests/scripts/cordova-hcp.js | 69 | async function waitForCordovaManifestChange({ | CODE |
| LOW | tools/native-tests/apps/smoke/client/main.js | 39 | function wrapWebAppLocalServerMethod(methodName, traceKey) { | CODE |
| LOW | tools/native-tests/apps/smoke/client/main.js | 53 | function instrumentWebAppLocalServer() { | CODE |
| LOW | tools/tests/run-proxy.js | 16 | async function testAbandonedWebsocketUpgrades() { | CODE |
| LOW | tools/tests/apps/dynamic-import/tests.js | 275 | function maybeClearDynamicImportCache() { | CODE |
| LOW | …/apps/modules-modern/imports/links/acorn/src/regexp.js | 812 | function isUnicodePropertyNameCharacter(ch) { | CODE |
| LOW | …/apps/modules-modern/imports/links/acorn/src/regexp.js | 827 | function isUnicodePropertyValueCharacter(ch) { | CODE |
| LOW | tools/tests/apps/app-config/tests.js | 78 | function checkEagerLoadingDisabled() { | CODE |
| LOW | …s/tests/apps/modules/imports/links/acorn/src/regexp.js | 812 | function isUnicodePropertyNameCharacter(ch) { | CODE |
| LOW | …s/tests/apps/modules/imports/links/acorn/src/regexp.js | 827 | function isUnicodePropertyValueCharacter(ch) { | CODE |
| LOW | tools/isobuild/meteor-npm.js | 244 | function recordLastRebuildVersions(pkgDir) { | CODE |
| LOW | tools/isobuild/meteor-npm.js | 284 | function rebuildVersionsAreCompatible(pkgPath) { | CODE |
| LOW | tools/isobuild/meteor-npm.js | 431 | async function copyNpmPackageWithSymlinkedNodeModules(fromPkgDir, toPkgDir) { | CODE |
| LOW | tools/isobuild/meteor-npm.js | 979 | function getInstalledDependenciesTreeFromPackageLock({ | CODE |
| LOW | tools/isobuild/meteor-npm.js | 1047 | function getInstalledDependenciesTree(dir) { | CODE |
| LOW | tools/isobuild/meteor-npm.js | 1089 | function getShrinkwrappedDependenciesTree(dir) { | CODE |
| LOW | tools/isobuild/bundler.js | 1685 | function addNodeModulesDirToObject(nmd, obj) { | CODE |
| LOW | tools/isobuild/compiler.js | 298 | async function getLinterSourceProcessorSet({isopack, activePluginPackages}) { | CODE |
| LOW | tools/isobuild/compiler-plugin.js | 81 | function populateServerLibPackages() { | CODE |
| LOW | tools/isobuild/isopack.js | 999 | function isResourceSafeForLegacyBuilds(resource) { | CODE |
| LOW | tools/isobuild/js-analyze.js | 89 | export function findImportedModuleIdentifiers(source, hash) { | CODE |
| LOW | tools/isobuild/linker.js | 814 | async function getOutputWithSourceMapCached(file, servePath, options) { | CODE |
| LOW | tools/utils/archinfo.ts | 196 | export function acceptableMeteorToolArches(): string[] { | CODE |
| LOW | tools/cli/main.js | 137 | function SpringboardToLatestRelease(track) { | CODE |
| LOW | tools/cli/main.js | 145 | function SpringboardToSpecificRelease(fullReleaseName, msg) { | CODE |
| LOW | tools/cli/commands.js | 175 | export function parseServerOptionsForRunCommand(options, runTargets) { | CODE |
| LOW | tools/cli/commands.js | 219 | function parseCordovaServerPortOption(options = {}) { | CODE |
| LOW | tools/static-assets/server/boot.js | 55 | async function maybeWaitForDebuggerToAttach() { | CODE |
| LOW | tools/static-assets/server/mini-files.ts | 71 | export function convertToStandardLineEndings(fileContents: string) { | CODE |
| LOW | tools/e2e-tests/babel.test.js | 80 | export async function assertFileExtensionModuleRules(outputLines) { | CODE |
| LOW | tools/e2e-tests/assertions.js | 550 | export async function assertServiceWorkerCaching(port, options = {}) { | CODE |
| LOW | tools/e2e-tests/assertions.js | 618 | export async function assertServiceWorkerPrecaching(port, options = {}) { | CODE |
| LOW | tools/e2e-tests/typescript.test.js | 154 | export async function waitForTypeScriptErrorFree(outputLines, options = {}) { | CODE |
| LOW | tools/e2e-tests/server-runtime.test.js | 158 | function resolveInspectorSourceMapPath(script) { | CODE |
| LOW | tools/e2e-tests/helpers.js | 160 | async function waitForOutputWithMongoWatchdog(outputLines, pattern, options, meteorProcess, env) { | CODE |
| LOW | tools/e2e-tests/symlink-monorepo.test.js | 52 | async function assertSymlinkFixtureIntegrity(tempDir) { | CODE |
| LOW | tools/e2e-tests/blaze-router.test.js | 18 | async function assertTestClientImportOrder(tempDir) { | CODE |
| LOW | tools/e2e-tests/blaze-router.test.js | 32 | async function assertBuiltClientContainsBootMarker(buildOutputDir) { | CODE |
| LOW | tools/e2e-tests/scripts/create-app.js | 179 | function extractEnvVarsFromTestFile(sourceName, isApp) { | CODE |
| LOW | tools/meteor-services/config.js | 58 | export function getPackageStatsServerDomain() { | CODE |
| LOW | tools/meteor-services/config.js | 65 | export function getPackageServerFilePrefix(serverUrl) { | CODE |
| LOW | tools/meteor-services/config.js | 93 | export function getLocalPackageCacheFilename(serverUrl) { | CODE |
| LOW | tools/fs/optimistic.ts | 221 | export function dirtyNodeModulesDirectory(nodeModulesDir: string) { | CODE |
| LOW | tools/fs/safe-watcher-legacy.ts | 389 | function maybeSuggestRaisingWatchLimit(error: Error & { errno: number }) { | CODE |
| LOW | tools/fs/files.ts | 883 | function addExecBitWhenReadBitPresent(fileMode: number) { | CODE |
| LOW | tools/fs/files.ts | 1441 | export function readBufferWithLengthAndOffset( | CODE |
| LOW | tools/tool-testing/sandbox.js | 529 | async function setUpBuiltPackageTropohouse() { | CODE |
| LOW | tools/tool-testing/test-utils.js | 79 | export function getMeteorRuntimeConfigFromHTML(html) { | CODE |
| LOW | scripts/build-stack-memory-bench.js | 418 | function findHeapSnapshotsInDirectory(dir, markMs) { | CODE |
| LOW | scripts/build-stack-memory-bench.js | 463 | async function waitForStableHeapSnapshot(markMs) { | CODE |
| LOW | packages/callback-hook/hook.js | 212 | function wrapHookWithErrorHandling(func, onException, _this) { | CODE |
| 95 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/tool-env/profile.ts | 623 | print(`(#${reportNum}) Profiling: ${runningName}`); | CODE |
| HIGH | tools/tool-env/profile.ts | 635 | print(`(#${reportNum}) Profiling: ${runningName}`); | CODE |
| HIGH⚡ | tools/tool-env/profile.ts | 681 | print(''); | CODE |
| HIGH⚡ | tools/tool-env/profile.ts | 684 | print(''); | CODE |
| HIGH⚡ | tools/tool-env/profile.ts | 686 | print(''); | CODE |
| HIGH⚡ | tools/tool-env/profile.ts | 687 | print(`(#${reportNum}) Total: ${formatMs(getTopLevelTotal())}` + | CODE |
| HIGH⚡ | tools/tool-env/profile.ts | 689 | print(''); | CODE |
| HIGH | tools/tool-env/profile.ts | 774 | print((isParent ? leftRightDots : leftRightAlign) | CODE |
| HIGH | tools/tool-env/profile.ts | 815 | print('Top leaves:'); | CODE |
| HIGH | tools/tool-env/profile.ts | 832 | print(leftRightDots(total.name, formatMs(total.time), 65) + ` (${total.count})`); | CODE |
| HIGH | …ps/modules-modern/imports/links/acorn/src/bin/acorn.js | 10 | print("usage: " + basename(process.argv[1]) + " [--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|...|--ecma2015|--ecma | CODE |
| HIGH | …ps/modules-modern/imports/links/acorn/src/bin/acorn.js | 11 | print(" [--tokenize] [--locations] [---allow-hash-bang] [--compact] [--silent] [--module] [--help] [--] [infile | CODE |
| HIGH | …ts/apps/top-level-await-order/packages/print/server.js | 3 | print(logs) { | CODE |
| HIGH | …ests/apps/modules/imports/links/acorn/src/bin/acorn.js | 10 | print("usage: " + basename(process.argv[1]) + " [--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|...|--ecma2015|--ecma | CODE |
| HIGH | …ests/apps/modules/imports/links/acorn/src/bin/acorn.js | 11 | print(" [--tokenize] [--locations] [---allow-hash-bang] [--compact] [--silent] [--module] [--help] [--] [infile | CODE |
| HIGH | packages/ecmascript/runtime-tests.js | 208 | print(i); | CODE |
| HIGH | packages/ecmascript/runtime-tests.js | 215 | print(i); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | v3-docs/v3-migration-docs/guide/migration-strategy.md | 9 | ## Step 1: Update to the Latest Meteor 2.x | COMMENT |
| LOW | v3-docs/v3-migration-docs/guide/migration-strategy.md | 19 | ## Step 2: Audit and Replace Unmaintained Packages | COMMENT |
| LOW | v3-docs/v3-migration-docs/guide/migration-strategy.md | 33 | ## Step 3: Identify Sync Code with `WARN_WHEN_USING_OLD_API` | COMMENT |
| LOW | v3-docs/v3-migration-docs/guide/migration-strategy.md | 43 | ## Step 4: Restructure Entry Points | COMMENT |
| LOW | v3-docs/v3-migration-docs/guide/migration-strategy.md | 86 | ## Step 5: Convert Sync Code to Async | COMMENT |
| LOW | v3-docs/v3-migration-docs/guide/migration-strategy.md | 114 | ## Step 6: Replace Deprecated Patterns | COMMENT |
| LOW | v3-docs/v3-migration-docs/guide/migration-strategy.md | 123 | ## Step 7: Run `meteor update` to 3.x | COMMENT |
| LOW | v3-docs/v3-migration-docs/guide/migration-strategy.md | 140 | ## Step 8: Test and Iterate | COMMENT |
| LOW | v3-docs/docs/about/web-apps.md | 6 | ## Step 1: Install Meteor | COMMENT |
| LOW | v3-docs/docs/about/web-apps.md | 10 | ## Step 2: Create a New Project | COMMENT |
| LOW | v3-docs/docs/about/web-apps.md | 33 | ## Step 3: Run Your Project Locally | COMMENT |
| LOW | v3-docs/docs/tutorials/accounts/accounts.md | 395 | // Step 1: generate a QR code and display it to the user | COMMENT |
| LOW | v3-docs/docs/tutorials/accounts/accounts.md | 404 | // Step 2: once the user has scanned the QR code and sees the first code, confirm it | COMMENT |
| LOW | packages/autoupdate/autoupdate_server.js | 59 | // Step 1: load the current client program on the server | COMMENT |
| LOW | packages/autoupdate/autoupdate_server.js | 71 | // Step 2: update __meteor_runtime_config__.autoupdate.versions. | COMMENT |
| LOW⚡ | packages/autoupdate/autoupdate_server.js | 87 | // Step 3: form the new client boilerplate which contains the updated | COMMENT |
| LOW⚡ | packages/autoupdate/autoupdate_server.js | 93 | // Step 4: update the ClientVersions collection. | COMMENT |
| LOW⚡ | …ages/accounts-express/accounts_express_server_tests.js | 556 | // Step 1: Set the HttpOnly cookie via the cookie endpoint | COMMENT |
| LOW⚡ | …ages/accounts-express/accounts_express_server_tests.js | 560 | // Step 2: Use Meteor.fetch with the cookie to hit a protected endpoint | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 308 | ### Step 1: Analyze and bump package versions | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 316 | ### Step 2: Update experimental release file | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 333 | ### Step 3: Update `.meteor/versions` in test apps | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 345 | ### Step 4: Update documentation and changelog | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 357 | ### Step 1: Bump package versions | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 367 | ### Step 2: Update experimental release file | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 381 | ### Step 3: Update `.meteor/versions` in test apps | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 385 | ### Step 4: Update documentation and changelog | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 397 | #### Step 1: Strip prerelease suffixes from all packages | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 404 | #### Step 2: Update official release file | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 422 | #### Step 3: Update `.meteor/versions` in test apps | COMMENT |
| LOW | .github/skills/version-bump/SKILL.md | 426 | #### Step 4: Update changelog and docs | COMMENT |
| LOW | .github/skills/docs-gap/SKILL.md | 24 | ## Step 1: Gather Release Changes | COMMENT |
| LOW | .github/skills/docs-gap/SKILL.md | 48 | ## Step 2: Filter to Release-Relevant Changes | COMMENT |
| LOW | .github/skills/docs-gap/SKILL.md | 69 | ## Step 3: Classify Changes for Documentation Potential | COMMENT |
| LOW | .github/skills/docs-gap/SKILL.md | 103 | ## Step 4: Scan Existing Documentation for Coverage | COMMENT |
| LOW | .github/skills/docs-gap/SKILL.md | 158 | ## Step 5: Produce the Gap Report | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/list_package_changes.sh | 2 | # ============================================================================= | COMMENT |
| MEDIUM | scripts/list_package_changes.sh | 17 | # ============================================================================= | COMMENT |
| MEDIUM | packages/mongo/tests/collation_tests.js | 9 | // ── Client tests (Mongo.Collection(null) → Minimongo) ────────────────────── | COMMENT |
| MEDIUM | packages/mongo/tests/collation_tests.js | 163 | // ── Server tests (real MongoDB) ───────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 39 | # ─── Setup ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 85 | # ─── Isolated Tests ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 158 | # ─── Test Group 0 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 227 | # ─── Test Group 1 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 295 | # ─── Test Group 2 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 371 | # ─── Test Group 3 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 439 | # ─── Test Group 4 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 507 | # ─── Test Group 5 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 576 | # ─── Test Group 6 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 644 | # ─── Test Group 7 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 712 | # ─── Test Group 8 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 780 | # ─── Test Group 9 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 848 | # ─── Test Group 10 ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/test-tools.yml | 916 | # ─── Test Group 11 ──────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tools/isobuild/compiler-plugin.js | 456 | return self._resourceSlot.packageSourceBatch.unibuild.pkg._getServePath(self.getPathInPackage()); | CODE |
| CRITICAL | packages/oauth/end_of_popup_response.js | 21 | window.opener.Package.oauth.OAuth._handleCredentialSecret( | CODE |
| CRITICAL | packages/mongo/tests/mongo_livedata_tests.js | 1085 | o.handle._multiplexer._observeDriver._unpublishedBuffer.forEach( | CODE |
| CRITICAL | packages/mongo/tests/mongo_livedata_tests.js | 1512 | o.handle._multiplexer._observeDriver._unpublishedBuffer.forEach( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/cordova/project.js | 607 | // We need to check if the directory exists ourselves because Cordova | COMMENT |
| LOW | packages/ddp-server/livedata_server.js | 637 | // for now, we need to check if the ddp-rate-limiter exists since we | COMMENT |
| LOW | packages/autoupdate/autoupdate_server.js | 59 | // Step 1: load the current client program on the server | COMMENT |
| LOW | packages/autoupdate/autoupdate_server.js | 71 | // Step 2: update __meteor_runtime_config__.autoupdate.versions. | COMMENT |
| LOW⚡ | packages/autoupdate/autoupdate_server.js | 87 | // Step 3: form the new client boilerplate which contains the updated | COMMENT |
| LOW⚡ | packages/autoupdate/autoupdate_server.js | 93 | // Step 4: update the ClientVersions collection. | COMMENT |
| LOW⚡ | …ages/accounts-express/accounts_express_server_tests.js | 556 | // Step 1: Set the HttpOnly cookie via the cookie endpoint | COMMENT |
| LOW⚡ | …ages/accounts-express/accounts_express_server_tests.js | 560 | // Step 2: Use Meteor.fetch with the cookie to hit a protected endpoint | COMMENT |
| LOW | packages/tools-core/lib/ignore.js | 64 | // For minimal mode with skipLevel, we need to check if the parent is at a level we should skip | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | guide/source/data-loading.md | 659 | $ curl localhost:3000/users/login -H "Content-Type: application/json" --data '{"email": "user@example.com", "password": | CODE |
| LOW | v3-docs/v3-migration-docs/guide/removing-fibers.md | 127 | to: 'user@example.com', | CODE |
| LOW | v3-docs/v3-migration-docs/guide/removing-fibers.md | 135 | to: 'user@example.com', | CODE |
| LOW | v3-docs/docs/community-packages/mail-preview.md | 74 | to: 'user@example.com', | CODE |
| LOW | tools/upgraders.js | 340 | // 1.x.y: Lorem ipsum messages go here... | COMMENT |
| LOW | …/tests/packages/package-for-show/package-rc-version.js | 5 | git: 'www.github.com/fake-user/meteor', | CODE |
| LOW | tools/utils/utils.test.js | 121 | ['user@example.com', true], ['a.b@mail.co.uk', true], | CODE |
| LOW | packages/ejson/ejson_tests.js | 531 | const obj = new EJSONTest.Person("John Doe", d, a); | CODE |
| LOW | …kages/mongo/tests/changestream_observe_driver_tests.js | 1323 | await c.insertAsync({ email: 'user@example.com' }); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/tool-env/isopackets.js | 43 | // Example usage: | COMMENT |
| LOW | scripts/list_package_changes.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/admin/copy-bootstrap-tarballs-from-jenkins.sh | 4 | # Usage: | COMMENT |
| LOW | …n-meteor/scripts/admin/copy-dev-bundle-from-jenkins.sh | 4 | # Usage: | COMMENT |
| LOW | …/scripts/admin/copy-bootstrap-tarballs-from-jenkins.sh | 4 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/isobuild/npm-discards.ts | 7 | // of Meteor packages during `meteor build`, as requested by calling | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | v3-docs/docs/about/build-tool.md | 155 | > **Recommended (3.4+)**: If you're using CoffeeScript, consider using it with the [Rspack bundler](/about/modern-build- | CODE |
| MEDIUM | docs/source/roadmap.md | 69 | - New Scaffold API / generate command; ([Blog Post](https://blog.meteor.com/new-meteorjs-2-9-and-the-new-scaffold-api-5f | CODE |
| MEDIUM | packages/rspack/rspack_tests.js | 70 | // scaffold must keep the dependency visible to Meteor's linker and wait | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/constraint-solver/solver.js | 172 | // A more nuanced reachability analysis that takes versions into account | COMMENT |
| MEDIUM | packages/test-helpers/async_multi.js | 20 | // Essentially, expect("foo", "bar") is equivalent to: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/project-context.js | 608 | "# This file contains a token that is unique to your project.\n" + | CODE |
| MEDIUM | tools/project-context.js | 1781 | "# This file contains information which helps Meteor properly upgrade your\n" + | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/rspack/rspack_plugin.js | 114 | logError(`Make sure to replace the paths with your actual entry point files.`); | CODE |
| MEDIUM | packages/accounts-oauth/oauth_common.js | 27 | // It's worth noting that already logged in users will remain logged in unless | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/benchmarks/initial-start-time.sh | 31 | # Print output | COMMENT |
| LOW | …plugin-meteor/scripts/benchmarks/initial-start-time.sh | 31 | # Print output | COMMENT |