From b13beb81449a563bdcef40cf6c11a640faa9e2f9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:12:27 -0400 Subject: [PATCH 01/32] spelling: ; otherwise, Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .storybook/.public/mockServiceWorker.js | 2 +- app/components/PaginationControls.vue | 2 +- app/pages/package/[[org]]/[name].vue | 2 +- app/pages/search.vue | 2 +- app/utils/chart-data-prediction.ts | 2 +- app/utils/publish-security.ts | 2 +- app/utils/run-command.ts | 2 +- lexicons/app/bsky/actor/defs.json | 2 +- server/api/contributors.get.ts | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.storybook/.public/mockServiceWorker.js b/.storybook/.public/mockServiceWorker.js index af42f4351e..aac870bd79 100644 --- a/.storybook/.public/mockServiceWorker.js +++ b/.storybook/.public/mockServiceWorker.js @@ -123,7 +123,7 @@ async function handleRequest(event, requestId, requestInterceptedAt) { const response = await getResponse(event, client, requestId, requestInterceptedAt) // Send back the response clone for the "response:*" life-cycle events. - // Ensure MSW is active and ready to handle the message, otherwise + // Ensure MSW is active and ready to handle the message; otherwise, // this message will pend indefinitely. if (client && activeClientIds.has(client.id)) { const serializedRequest = await serializeRequest(requestCloneForEvents) diff --git a/app/components/PaginationControls.vue b/app/components/PaginationControls.vue index cf03bf457d..19f992b15d 100644 --- a/app/components/PaginationControls.vue +++ b/app/components/PaginationControls.vue @@ -17,7 +17,7 @@ const pageSizeSelectValue = computed(() => String(pageSize.value)) // Whether we should show pagination controls (table view always uses pagination) const shouldShowControls = computed(() => props.viewMode === 'table' || mode.value === 'paginated') -// Table view forces pagination mode, otherwise use the provided mode +// Table view forces pagination mode; otherwise, use the provided mode const effectiveMode = computed(() => shouldShowControls.value ? 'paginated' : 'infinite', ) diff --git a/app/pages/package/[[org]]/[name].vue b/app/pages/package/[[org]]/[name].vue index f88876e753..c4d899d790 100644 --- a/app/pages/package/[[org]]/[name].vue +++ b/app/pages/package/[[org]]/[name].vue @@ -57,7 +57,7 @@ if (import.meta.server) { assertValidPackageName(packageName.value) } -// Fetch README for specific version if requested, otherwise latest +// Fetch README for specific version if requested; otherwise, latest const { data: readmeData, status: readmeStatus } = useLazyFetch( () => { const base = `/api/registry/readme/${packageName.value}` diff --git a/app/pages/search.vue b/app/pages/search.vue index 58805476c6..1de97475b5 100644 --- a/app/pages/search.vue +++ b/app/pages/search.vue @@ -196,7 +196,7 @@ watch(searchProvider, provider => { }) // Use incremental search with client-side caching + org/user suggestions -// committedQuery only updates on Enter when instant search is off, otherwise tracks query as user types +// committedQuery only updates on Enter when instant search is off; otherwise, tracks query as user types const { data: results, status, diff --git a/app/utils/chart-data-prediction.ts b/app/utils/chart-data-prediction.ts index 7c39234d8c..5608073764 100644 --- a/app/utils/chart-data-prediction.ts +++ b/app/utils/chart-data-prediction.ts @@ -97,7 +97,7 @@ export function linearProject(pts: number[]): number | null { * Estimate the full-period value for a partially-complete last bucket. * * Uses linear projection when enough complete lookback points are available - * (`>= predictionPoints`), otherwise falls back to proportional scale-up. + * (`>= predictionPoints`); otherwise, falls back to proportional scale-up. * Returns the raw last value when the period is already complete or prediction is disabled. */ export function extrapolateLastValue(params: { diff --git a/app/utils/publish-security.ts b/app/utils/publish-security.ts index 71050fc0e7..ccddcfa2ee 100644 --- a/app/utils/publish-security.ts +++ b/app/utils/publish-security.ts @@ -104,7 +104,7 @@ export function detectPublishSecurityDowngradeForVersion( } } - // Use same-major for recommendation if available, otherwise any-major for detection only + // Use same-major for recommendation if available; otherwise, any-major for detection only const strongestOlder = strongestOlderSameMajor ?? strongestOlderAny if (!strongestOlder || strongestOlder.trustRank <= current.trustRank) return null diff --git a/app/utils/run-command.ts b/app/utils/run-command.ts index b0cbc777c7..b97debebe0 100644 --- a/app/utils/run-command.ts +++ b/app/utils/run-command.ts @@ -42,7 +42,7 @@ export function getExecutableInfo( return { primaryCommand: '', commands: [], hasExecutable: false } } - // Prefer command matching package name if it exists, otherwise use first + // Prefer command matching package name if it exists; otherwise, use first const baseName = packageName.startsWith('@') ? packageName.split('/')[1] : packageName const primaryCommand = baseName && commands.includes(baseName) ? baseName : firstCommand diff --git a/lexicons/app/bsky/actor/defs.json b/lexicons/app/bsky/actor/defs.json index b9492df298..971bb1484d 100644 --- a/lexicons/app/bsky/actor/defs.json +++ b/lexicons/app/bsky/actor/defs.json @@ -569,7 +569,7 @@ }, "isValid": { "type": "boolean", - "description": "True if the verification passes validation, otherwise false." + "description": "True if the verification passes validation; otherwise, false." }, "createdAt": { "type": "string", diff --git a/server/api/contributors.get.ts b/server/api/contributors.get.ts index eb9ffc1884..597d0a2dfd 100644 --- a/server/api/contributors.get.ts +++ b/server/api/contributors.get.ts @@ -118,7 +118,7 @@ export default defineCachedEventHandler( async (): Promise => { const githubToken = useRuntimeConfig().github.orgToken - // Fetch team members dynamically if token is available, otherwise use fallback + // Fetch team members dynamically if token is available; otherwise, use fallback const teams: TeamMembers = await (async () => { if (githubToken) { const fetched = await fetchTeamMembers(githubToken) From d65127625c7eae4d86129706cde67add32ec688f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:16:01 -0400 Subject: [PATCH 02/32] spelling: `date to` Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- app/components/Noodle/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/Noodle/index.ts b/app/components/Noodle/index.ts index 8e6206298a..a95fac365d 100644 --- a/app/components/Noodle/index.ts +++ b/app/components/Noodle/index.ts @@ -9,7 +9,7 @@ export type Noodle = { timezone?: string // Date for the noodle date?: string - // Date to for the noodle + // `Date to` for the noodle dateTo?: string // Logo for the noodle - could be any component. Relative parent - intro section logo: Component From a3d0f812562a970a50b9e30ce035dca25c8454d9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:12:49 -0400 Subject: [PATCH 03/32] spelling: an Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/api/auth/atproto.get.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/api/auth/atproto.get.ts b/server/api/auth/atproto.get.ts index 64137bdd4e..72b9de80fa 100644 --- a/server/api/auth/atproto.get.ts +++ b/server/api/auth/atproto.get.ts @@ -60,7 +60,7 @@ export default defineEventHandler(async event => { scope, prompt: query.create ? 'create' : undefined, // TODO: I do not beleive this is working as expected on - // a unsupported locale on the PDS. Gives Invalid at body.ui_locales + // an unsupported locale on the PDS. Gives Invalid at body.ui_locales // Commenting out for now // ui_locales: query.locale?.toString(), state: encodeOAuthState(event, { redirectPath }), From 58496290e0798aee34c7581b4e54d21d9c788145 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:17:05 -0400 Subject: [PATCH 04/32] spelling: assumed Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/utils/atproto/utils/likes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/atproto/utils/likes.ts b/server/utils/atproto/utils/likes.ts index 5e80ee2d4f..99b8a05748 100644 --- a/server/utils/atproto/utils/likes.ts +++ b/server/utils/atproto/utils/likes.ts @@ -168,7 +168,7 @@ export class PackageLikesUtils { } /** - * It is asummed it has been checked by this point that if a user has liked a package and the new like was made as a record + * It is assumed it has been checked by this point that if a user has liked a package and the new like was made as a record * to the user's atproto repostiory * @param packageName * @param usersDid From 60b3aa4b70e4b55b70c3772db0bc499e1638571e Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:14:23 -0400 Subject: [PATCH 05/32] spelling: at Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- app/components/Package/TrendsChart.vue | 2 +- app/composables/useChartWatermark.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/components/Package/TrendsChart.vue b/app/components/Package/TrendsChart.vue index b2f6cb7dde..54d77e1613 100644 --- a/app/components/Package/TrendsChart.vue +++ b/app/components/Package/TrendsChart.vue @@ -1282,7 +1282,7 @@ function drawLastDatapointLabel(svg: Record) { * Build and return a legend to be injected during the SVG export only, since the custom legend is * displayed as an independant div, content has to be injected within the chart's viewBox. * - * Legend items are displayed in a column, on the top left of the chart. + * Legend items are displayed in a column, at the top left of the chart. */ function drawSvgPrintLegend(svg: Record) { const data = Array.isArray(svg?.data) ? svg.data : [] diff --git a/app/composables/useChartWatermark.ts b/app/composables/useChartWatermark.ts index f497bde3b3..66829bf3c8 100644 --- a/app/composables/useChartWatermark.ts +++ b/app/composables/useChartWatermark.ts @@ -10,7 +10,7 @@ interface WatermarkColors { /** * Build and return legend as SVG for export - * Legend items are displayed in a column, on the top left of the chart. + * Legend items are displayed in a column, at the top left of the chart. */ export function drawSvgPrintLegend(svg: Record, colors: WatermarkColors) { const data = Array.isArray(svg?.data) ? svg.data : [] From 00221e9d4acf076d3a4d66344dd1f676c85f3ecf Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:18:00 -0400 Subject: [PATCH 06/32] spelling: available Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- app/components/Chart/SplitSparkline.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/Chart/SplitSparkline.vue b/app/components/Chart/SplitSparkline.vue index 14fc4f0786..e63ea4e4f5 100644 --- a/app/components/Chart/SplitSparkline.vue +++ b/app/components/Chart/SplitSparkline.vue @@ -101,7 +101,7 @@ const configs = computed(() => { ? Array.from(new Set([...(unit.dashIndices ?? []), lastIndex])) : unit.dashIndices - // Ensure we loop through available palette colours when the series count is higher than the avalable palette + // Ensure we loop through available palette colours when the series count is higher than the available palette const fallbackColor = palette[i] ?? palette[i % palette.length] ?? palette[0]! const seriesColor = unit.color ?? fallbackColor const lightenedSeriesColor: string = unit.color From 71e70a76bd41066097e1fbf5eaaf4f5c1984699c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 19:19:12 -0400 Subject: [PATCH 07/32] spelling: believe Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/api/auth/atproto.get.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/api/auth/atproto.get.ts b/server/api/auth/atproto.get.ts index 72b9de80fa..4bf40565bf 100644 --- a/server/api/auth/atproto.get.ts +++ b/server/api/auth/atproto.get.ts @@ -59,7 +59,7 @@ export default defineEventHandler(async event => { const redirectUrl = await event.context.oauthClient.authorize(query.handle, { scope, prompt: query.create ? 'create' : undefined, - // TODO: I do not beleive this is working as expected on + // TODO: I do not believe this is working as expected on // an unsupported locale on the PDS. Gives Invalid at body.ui_locales // Commenting out for now // ui_locales: query.locale?.toString(), From 7535234a71e000731b356f5028fe49d8fd4f71af Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:48:05 -0400 Subject: [PATCH 08/32] spelling: between Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- app/components/Package/TrendsChart.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/Package/TrendsChart.vue b/app/components/Package/TrendsChart.vue index 54d77e1613..09e6b5ab09 100644 --- a/app/components/Package/TrendsChart.vue +++ b/app/components/Package/TrendsChart.vue @@ -1190,7 +1190,7 @@ function drawEstimationLine(svg: Record) { /** * The following svg elements are injected in the #svg slot of VueUiXy: - * - a line overlay covering the plain path bewteen the last datapoint and its ancestor + * - a line overlay covering the plain path between the last datapoint and its ancestor * - a dashed line connecting the last datapoint to its ancestor * - a circle for the last datapoint */ From f79b6992595f63801c7252b1c063f53e5fa7a4b2 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:48:47 -0400 Subject: [PATCH 09/32] spelling: cache Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/utils/atproto/utils/likes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/atproto/utils/likes.ts b/server/utils/atproto/utils/likes.ts index 99b8a05748..e4c27b4c31 100644 --- a/server/utils/atproto/utils/likes.ts +++ b/server/utils/atproto/utils/likes.ts @@ -107,7 +107,7 @@ export class PackageLikesUtils { } /** - * Gets the likes for a npm package on npmx. Tries a local cahce first, if not found uses constellation + * Gets the likes for a npm package on npmx. Tries a local cache first, if not found uses constellation * @param packageName * @param usersDid * @returns From 36002f5e03bba736cff71f9ce2adc83909aaf48a Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 19:19:39 -0400 Subject: [PATCH 10/32] spelling: cachedfetch Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/utils/atproto/utils/likes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/atproto/utils/likes.ts b/server/utils/atproto/utils/likes.ts index e4c27b4c31..85c64622cc 100644 --- a/server/utils/atproto/utils/likes.ts +++ b/server/utils/atproto/utils/likes.ts @@ -54,7 +54,7 @@ export class PackageLikesUtils { this.constellation = deps?.constellation ?? new Constellation( - // Passes in a fetch wrapped as cachedfetch since are already doing some heavy caching here + // Passes in a fetch wrapped as CachedFetch since are already doing some heavy caching here async ( url: string, options: Parameters[1] = {}, From aba7b9e54001f9389670d1d2e15270d8a486ebb2 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:51:48 -0400 Subject: [PATCH 11/32] spelling: characters Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/utils/atproto/utils/likes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/atproto/utils/likes.ts b/server/utils/atproto/utils/likes.ts index 85c64622cc..73543148a9 100644 --- a/server/utils/atproto/utils/likes.ts +++ b/server/utils/atproto/utils/likes.ts @@ -113,7 +113,7 @@ export class PackageLikesUtils { * @returns */ async getLikes(packageName: string, usersDid?: string | undefined): Promise { - //TODO: May need to do some clean up on the package name, and maybe even hash it? some of the charcteres may be a bit odd as keys + //TODO: May need to do some clean up on the package name, and maybe even hash it? some of the characters may be a bit odd as keys const totalLikesKey = CACHE_PACKAGE_TOTAL_KEY(packageName) const subjectRef = PACKAGE_SUBJECT_REF(packageName) From cba4e3f661330dfbc618da97fbf8c7093a0b2ec1 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:56:38 -0400 Subject: [PATCH 12/32] spelling: currently Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- lunaria/components.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lunaria/components.ts b/lunaria/components.ts index 5caac7358a..9345441bf2 100644 --- a/lunaria/components.ts +++ b/lunaria/components.ts @@ -35,7 +35,7 @@ function collapsePath(path: string) { export const Page = ( config: LunariaConfig, status: I18nStatus, - _lunaria: LunariaInstance, // currenly not in use + _lunaria: LunariaInstance, // currently not in use ): string => { return html` From 95026914092ab395d302bd067f08295ed25aaaf0 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:57:14 -0400 Subject: [PATCH 13/32] spelling: dependent Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- app/components/Package/TrendsChart.vue | 4 ++-- app/components/Package/VersionDistribution.vue | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/components/Package/TrendsChart.vue b/app/components/Package/TrendsChart.vue index 09e6b5ab09..233a5cca63 100644 --- a/app/components/Package/TrendsChart.vue +++ b/app/components/Package/TrendsChart.vue @@ -1280,7 +1280,7 @@ function drawLastDatapointLabel(svg: Record) { /** * Build and return a legend to be injected during the SVG export only, since the custom legend is - * displayed as an independant div, content has to be injected within the chart's viewBox. + * displayed as an independent div, content has to be injected within the chart's viewBox. * * Legend items are displayed in a column, at the top left of the chart. */ @@ -1416,7 +1416,7 @@ const chartConfig = computed(() => { svg: $t('package.trends.download_file', { fileType: 'SVG' }), annotator: $t('package.trends.toggle_annotator'), stack: $t('package.trends.toggle_stack_mode'), - altCopy: $t('package.trends.copy_alt.button_label'), // Do not make this text dependant on the `copied` variable, since this would re-render the component, which is undesirable if the minimap was used to select a time frame. + altCopy: $t('package.trends.copy_alt.button_label'), // Do not make this text dependent on the `copied` variable, since this would re-render the component, which is undesirable if the minimap was used to select a time frame. open: $t('package.trends.open_options'), close: $t('package.trends.close_options'), }, diff --git a/app/components/Package/VersionDistribution.vue b/app/components/Package/VersionDistribution.vue index f00683052d..225bc3193f 100644 --- a/app/components/Package/VersionDistribution.vue +++ b/app/components/Package/VersionDistribution.vue @@ -196,7 +196,7 @@ const chartConfig = computed(() => { img: $t('package.trends.download_file', { fileType: 'PNG' }), svg: $t('package.trends.download_file', { fileType: 'SVG' }), annotator: $t('package.trends.toggle_annotator'), - altCopy: $t('package.trends.copy_alt.button_label'), // Do not make this text dependant on the `copied` variable, since this would re-render the component, which is undesirable if the minimap was used to select a time frame. + altCopy: $t('package.trends.copy_alt.button_label'), // Do not make this text dependent on the `copied` variable, since this would re-render the component, which is undesirable if the minimap was used to select a time frame. open: $t('package.trends.open_options'), close: $t('package.trends.close_options'), }, From 21f746d0d77e0ec6f70e73863dd0ff7200377c01 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:57:02 -0400 Subject: [PATCH 14/32] spelling: details Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- lunaria/styles.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lunaria/styles.ts b/lunaria/styles.ts index b48936592d..19ffa8ed30 100644 --- a/lunaria/styles.ts +++ b/lunaria/styles.ts @@ -172,7 +172,7 @@ export const BaseStyles = html` margin-left: 1rem; } - /* Progress deatils per locale */ + /* Progress details per locale */ .progress-details { border: 1px solid var(--ln-color-gray-6); margin-bottom: 1.25rem; From f7248860e92e403500ffa939e638ce476d09412d Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:57:22 -0400 Subject: [PATCH 15/32] spelling: deviation Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- app/utils/charts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/utils/charts.ts b/app/utils/charts.ts index dbabd5fd90..357e298cbb 100644 --- a/app/utils/charts.ts +++ b/app/utils/charts.ts @@ -341,7 +341,7 @@ export function computeLineChartAnalysis(values: Array): LineChar /** * Coefficient of variation : relative volatility * - expressed in % - * - calculation: standard devialtion / mean + * - calculation: standard deviation / mean * |---------------|----------------------------------------------------------| * | VALUE | INTERPRETATION | * |---------------|----------------------------------------------------------| From d501584896e07ff02043335cb7d031015cddf01b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:13:58 -0400 Subject: [PATCH 16/32] spelling: exist Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/utils/atproto/utils/profile.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/atproto/utils/profile.ts b/server/utils/atproto/utils/profile.ts index 31f3882798..225499756a 100644 --- a/server/utils/atproto/utils/profile.ts +++ b/server/utils/atproto/utils/profile.ts @@ -43,7 +43,7 @@ export class ProfileUtils { }) if (!response.success) { // Not always, but usually this will mean the profile cannot be found - // and can be assumed most of the time it does not exists + // and can be assumed most of the time it does not exist throw createError({ status: 404, message: `Failed to resolve MiniDoc for ${handle}`, From d0a0ada1736dc03c640f1ecfe74380e6cfe2c16f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:13:07 -0400 Subject: [PATCH 17/32] spelling: fall back Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- app/components/User/Avatar.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/User/Avatar.vue b/app/components/User/Avatar.vue index 36916e28d1..e8d0d9003f 100644 --- a/app/components/User/Avatar.vue +++ b/app/components/User/Avatar.vue @@ -59,7 +59,7 @@ const { data: gravatarUrl } = useLazyFetch( :height="sizePixels" class="w-full h-full object-cover" /> - + Date: Tue, 28 Apr 2026 16:13:14 -0400 Subject: [PATCH 18/32] spelling: github Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- app/composables/useRepoMeta.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5fb1196b7b..3b1eb5c8a4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ on: branches: - main -# cancel in-progress runs on new commits to same PR (gitub.event.number) +# cancel in-progress runs on new commits to same PR (github.event.number) concurrency: group: ${{ github.workflow }}-${{ github.event.number || github.sha }} cancel-in-progress: true diff --git a/app/composables/useRepoMeta.ts b/app/composables/useRepoMeta.ts index ce658938ad..0b16470511 100644 --- a/app/composables/useRepoMeta.ts +++ b/app/composables/useRepoMeta.ts @@ -130,7 +130,7 @@ const githubAdapter: ProviderAdapter = { }, async fetchMeta(cachedFetch, ref, links, options = {}) { - // Using UNGH to avoid API limitations of the Github API + // Using UNGH to avoid API limitations of the GitHub API let res: UnghRepoResponse | null = null try { const { data } = await cachedFetch( From e8d802c15018e71905312f039210b4d2ba5fc0f3 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:01:16 -0400 Subject: [PATCH 19/32] spelling: happened Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- cli/src/npm-client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/npm-client.ts b/cli/src/npm-client.ts index efa53fe8e6..4764c27e96 100644 --- a/cli/src/npm-client.ts +++ b/cli/src/npm-client.ts @@ -173,7 +173,7 @@ export interface ExecNpmOptions { /** * PTY-based npm execution for interactive commands (uses node-pty). * - * - Web OTP - either open URL in browser if openUrls is true or passes the URL to frontend. If no auth happend within AUTH_URL_TIMEOUT_MS kills the process to unlock the connector. + * - Web OTP - either open URL in browser if openUrls is true or passes the URL to frontend. If no auth happened within AUTH_URL_TIMEOUT_MS kills the process to unlock the connector. * * - CLI OTP - if we get a classic OTP prompt will either return OTP request to the frontend or will pass sent OTP if its provided */ From 6a7fae4b9a07fdb2e46f8e15278e59700f609658 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:01:26 -0400 Subject: [PATCH 20/32] spelling: implementation Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/utils/cache/local.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/cache/local.ts b/server/utils/cache/local.ts index 0659e000ca..86f38ace8c 100644 --- a/server/utils/cache/local.ts +++ b/server/utils/cache/local.ts @@ -20,7 +20,7 @@ function isCacheEntryStale(entry: LocalCachedEntry): boolean { } /** - * Local implmentation of a cache to be used during development + * Local implementation of a cache to be used during development */ export class LocalCacheAdapter implements CacheAdapter { private readonly storage = useStorage('atproto:generic') From 7bcc76ce0d3d543a3672684e14a9f9211b913593 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:13:25 -0400 Subject: [PATCH 21/32] spelling: javascript Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- lexicons/app/bsky/richtext/facet.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lexicons/app/bsky/richtext/facet.json b/lexicons/app/bsky/richtext/facet.json index 2b0dfecbb4..834b9a1681 100644 --- a/lexicons/app/bsky/richtext/facet.json +++ b/lexicons/app/bsky/richtext/facet.json @@ -66,7 +66,7 @@ "minimum": 0 } }, - "description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets." + "description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like JavaScript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets." } }, "$type": "com.atproto.lexicon.schema", From 1b2e99c3a8e42099ebaec6fbdab21fc2ab0d5bc9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 20:24:35 -0400 Subject: [PATCH 22/32] spelling: local Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/utils/cache/local.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/cache/local.ts b/server/utils/cache/local.ts index 86f38ace8c..2a6fdf7a8b 100644 --- a/server/utils/cache/local.ts +++ b/server/utils/cache/local.ts @@ -9,7 +9,7 @@ interface LocalCachedEntry { /** * Checks to see if a cache entry is stale locally - * @param entry - The entry from the locla cache + * @param entry - The entry from the local cache * @returns */ function isCacheEntryStale(entry: LocalCachedEntry): boolean { From 3b6247ebc89247ccb8ff6fff297eeeef6c896ff9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:16:26 -0400 Subject: [PATCH 23/32] spelling: missing Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- app/pages/package/[[org]]/[name].vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/pages/package/[[org]]/[name].vue b/app/pages/package/[[org]]/[name].vue index c4d899d790..934d81e471 100644 --- a/app/pages/package/[[org]]/[name].vue +++ b/app/pages/package/[[org]]/[name].vue @@ -234,7 +234,7 @@ useCommandPalettePackageCommands(commandPalettePackageContext) // 1. SPA fallback (200.html): No real content was server-rendered. // → Show skeleton while data fetches on the client. // -// 2. SSR-rendered HTML with missing payload: Content was rendered but the external _payload.json +// 2. SSR-rendered HTML missing payload: Content was rendered but the external _payload.json // returned an ISR fallback. // → Preserve the server-rendered DOM, don't flash to skeleton. const nuxtApp = useNuxtApp() @@ -526,7 +526,7 @@ const showSkeleton = shallowRef(false)
- + From c0d6d07b0198197e15ee051a71ede0ed1d1e2201 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:12:59 -0400 Subject: [PATCH 24/32] spelling: oauth Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/api/auth/session.delete.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/api/auth/session.delete.ts b/server/api/auth/session.delete.ts index a1d4f90b13..7bfce2e686 100644 --- a/server/api/auth/session.delete.ts +++ b/server/api/auth/session.delete.ts @@ -1,6 +1,6 @@ export default eventHandlerWithOAuthSession(async (event, oAuthSession, serverSession) => { // Even tho the signOut also clears part of the server cache should be done in order - // to let the oAuth package do any other clean up it may need + // to let the OAuth package do any other clean up it may need await oAuthSession?.signOut() await serverSession.clear() return 'Session cleared' From 65c7590e7d3537e13b866301701c1f2e40a51fef Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:15:03 -0400 Subject: [PATCH 25/32] spelling: prepopulate Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- CONTRIBUTING.md | 4 ++-- cli/src/mock-server.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ed7189c6ca..74f9d19243 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -232,7 +232,7 @@ If you're working on admin features (org management, package access controls, op pnpm mock-connector ``` -This starts a mock connector server pre-populated with sample data (orgs, teams, members, packages). No npm login is required — operations succeed immediately without making real npm CLI calls. +This starts a mock connector server prepopulated with sample data (orgs, teams, members, packages). No npm login is required — operations succeed immediately without making real npm CLI calls. The mock connector prints a connection URL to the terminal, just like the real connector. Click it (or paste the token manually) to connect the UI. @@ -242,7 +242,7 @@ The mock connector prints a connection URL to the terminal, just like the real c pnpm mock-connector # default: port 31415, user "mock-user", sample data pnpm mock-connector --port 9999 # custom port pnpm mock-connector --user alice # custom username -pnpm mock-connector --empty # start with no pre-populated data +pnpm mock-connector --empty # start with no prepopulated data ``` **Default sample data:** diff --git a/cli/src/mock-server.ts b/cli/src/mock-server.ts index 2f9bab3a9e..dfe89f4647 100644 --- a/cli/src/mock-server.ts +++ b/cli/src/mock-server.ts @@ -1,6 +1,6 @@ #!/usr/bin/env node /** - * Mock connector CLI — starts a pre-populated mock server for developing + * Mock connector CLI — starts a prepopulated mock server for developing * authenticated features without a real npm account. */ @@ -25,7 +25,7 @@ function generateToken(): string { } /** - * Pre-populate with sample data using real npm orgs so the registry + * Prepopulate with sample data using real npm orgs so the registry * API calls don't 404. Members/teams are fictional. */ function populateDefaultData(stateManager: MockConnectorStateManager): void { @@ -107,7 +107,7 @@ const main = defineCommand({ }, empty: { type: 'boolean', - description: 'Start with empty state (no pre-populated data)', + description: 'Start with empty state (no prepopulated data)', default: false, }, }, @@ -130,7 +130,7 @@ const main = defineCommand({ if (!empty) { populateDefaultData(stateManager) - p.log.info(`Pre-populated with sample data for ${styleText('cyan', npmUser)}`) + p.log.info(`Prepopulated with sample data for ${styleText('cyan', npmUser)}`) p.log.info(styleText('dim', ` Orgs: @nuxt (4 members, 3 teams), @unjs (2 members, 1 team)`)) p.log.info(styleText('dim', ` Packages: @nuxt/kit, @nuxt/schema, @unjs/nitro`)) } else { From bf5db6adf72584c9e4e737e4e9f1a25a314d78cb Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:03:52 -0400 Subject: [PATCH 26/32] spelling: references Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- shared/utils/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/utils/constants.ts b/shared/utils/constants.ts index 72aa92148e..16fecc3beb 100644 --- a/shared/utils/constants.ts +++ b/shared/utils/constants.ts @@ -45,7 +45,7 @@ export const CONSTELLATION_HOST = 'constellation.microcosm.blue' export const SLINGSHOT_HOST = 'slingshot.microcosm.blue' // ATProtocol -// Refrences used to link packages to things that are not inherently atproto +// References used to link packages to things that are not inherently atproto export const PACKAGE_SUBJECT_REF = (packageName: string) => `https://npmx.dev/package/${packageName}` // OAuth scopes as we add new ones we need to check these on certain actions. If not redirect the user to login again to upgrade the scopes From cf1d08454fd486fa79a4e3c41a510419245da711 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:04:03 -0400 Subject: [PATCH 27/32] spelling: repository Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/utils/atproto/utils/likes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/atproto/utils/likes.ts b/server/utils/atproto/utils/likes.ts index 73543148a9..d9bb2a1ef9 100644 --- a/server/utils/atproto/utils/likes.ts +++ b/server/utils/atproto/utils/likes.ts @@ -169,7 +169,7 @@ export class PackageLikesUtils { /** * It is assumed it has been checked by this point that if a user has liked a package and the new like was made as a record - * to the user's atproto repostiory + * to the user's atproto repository * @param packageName * @param usersDid * @param atUri - The URI of the like record From 55994e60d1ac81e489ec827502f8e5677dc398a3 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:04:19 -0400 Subject: [PATCH 28/32] spelling: separator Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- app/components/Header/MobileMenu.client.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/Header/MobileMenu.client.vue b/app/components/Header/MobileMenu.client.vue index 0ab5cff0b7..c8f013c5d1 100644 --- a/app/components/Header/MobileMenu.client.vue +++ b/app/components/Header/MobileMenu.client.vue @@ -209,7 +209,7 @@ onUnmounted(deactivate)
From 6e5ddbce33ccab988b3ed86c4607ae92199895c0 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 23:37:36 -0400 Subject: [PATCH 29/32] spelling: symbol Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/api/registry/org/[org]/packages.get.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/api/registry/org/[org]/packages.get.ts b/server/api/registry/org/[org]/packages.get.ts index 30f88fba67..85c07bee03 100644 --- a/server/api/registry/org/[org]/packages.get.ts +++ b/server/api/registry/org/[org]/packages.get.ts @@ -1,7 +1,7 @@ import { CACHE_MAX_AGE_ONE_HOUR, NPM_REGISTRY } from '#shared/utils/constants' import { FetchError } from 'ofetch' -// Validation pattern for npm org names - url-sage symbold and not start with a dot (incl. ~test24214. or -ex~-) +// Validation pattern for npm org names - url-sage symbol and not start with a dot (incl. ~test24214. or -ex~-) const NPM_ORG_NAME_RE = /^[\w~-][\w.~-]*$/ function validateOrgName(name: string): void { From cdb5d13df72f0b2dc02b35f13a66a76657bd3ec5 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:12:13 -0400 Subject: [PATCH 30/32] spelling: the Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- lexicons/com/atproto/identity/resolveHandle.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lexicons/com/atproto/identity/resolveHandle.json b/lexicons/com/atproto/identity/resolveHandle.json index 3b7bff82b7..4f54cbc090 100644 --- a/lexicons/com/atproto/identity/resolveHandle.json +++ b/lexicons/com/atproto/identity/resolveHandle.json @@ -33,7 +33,7 @@ } } }, - "description": "Resolves an atproto handle (hostname) to a DID. Does not necessarily bi-directionally verify against the the DID document." + "description": "Resolves an atproto handle (hostname) to a DID. Does not necessarily bi-directionally verify against the DID document." } }, "$type": "com.atproto.lexicon.schema", From 92925c96bfc1b7a514ecc0bef17852e3d4ab6a38 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:05:15 -0400 Subject: [PATCH 31/32] spelling: unliking Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- server/utils/atproto/utils/likes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/atproto/utils/likes.ts b/server/utils/atproto/utils/likes.ts index d9bb2a1ef9..7f1c186dcb 100644 --- a/server/utils/atproto/utils/likes.ts +++ b/server/utils/atproto/utils/likes.ts @@ -195,7 +195,7 @@ export class PackageLikesUtils { rkey, } - // We store the backlink incase a user is liking and unlikign rapidly. constellation takes a few seconds to capture the backlink + // We store the backlink incase a user is liking and unliking rapidly. constellation takes a few seconds to capture the backlink const usersBackLinkKey = CACHE_USERS_BACK_LINK(packageName, usersDid) await this.cache.set(usersBackLinkKey, backLink, CACHE_MAX_AGE) From ab9320956fb44577016ee92b67057f9ed2fb46c6 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Wed, 29 Apr 2026 06:45:15 -0400 Subject: [PATCH 32/32] spelling: in case Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- server/utils/atproto/utils/likes.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/utils/atproto/utils/likes.ts b/server/utils/atproto/utils/likes.ts index 7f1c186dcb..8667256e27 100644 --- a/server/utils/atproto/utils/likes.ts +++ b/server/utils/atproto/utils/likes.ts @@ -195,10 +195,9 @@ export class PackageLikesUtils { rkey, } - // We store the backlink incase a user is liking and unliking rapidly. constellation takes a few seconds to capture the backlink + // We store the backlink in case a user is liking and unliking rapidly. constellation takes a few seconds to capture the backlink const usersBackLinkKey = CACHE_USERS_BACK_LINK(packageName, usersDid) await this.cache.set(usersBackLinkKey, backLink, CACHE_MAX_AGE) - let totalLikes = await this.cache.get(totalLikesKey) if (!totalLikes) { totalLikes = await this.constellationLikes(subjectRef)