Skip to content

Commit 4770faa

Browse files
committed
Merge remote-tracking branch 'origin/main' into graphieros/main
2 parents c113f64 + d07d860 commit 4770faa

3 files changed

Lines changed: 21 additions & 11 deletions

File tree

app/components/ConnectorModal.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ watch(open, isOpen => {
105105

106106
<div class="p-3 bg-[#0d0d0d] border border-border rounded-lg font-mono text-sm">
107107
<span class="text-fg-subtle">$</span>
108-
<span class="text-fg ml-2">npx npmx-connector</span>
108+
<span class="text-fg ml-2">npx&nbsp;npmx-connector</span>
109109
</div>
110110

111111
<p class="text-sm text-fg-muted">Then paste the token shown in your terminal:</p>

app/pages/package/[...name].vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -496,15 +496,15 @@ defineOgImageComponent('Package', {
496496
<span class="text-fg-subtle font-mono text-sm select-none">$</span>
497497
<code class="font-mono text-sm"
498498
><ClientOnly
499-
><span class="text-fg">{{ selectedPMLabel }}</span>
500-
<span class="text-fg-muted">{{ selectedPMAction }}</span
499+
><span class="text-fg">{{ selectedPMLabel }}</span
500+
>&nbsp;<span class="text-fg-muted">{{ selectedPMAction }}</span
501501
><span v-if="selectedPM !== 'deno'" class="text-fg-muted"
502502
>&nbsp;{{ pkg.name }}</span
503503
><span v-else class="text-fg-muted">{{ pkg.name }}</span
504504
><span v-if="requestedVersion" class="text-fg-muted">@{{ requestedVersion }}</span
505505
><template #fallback
506506
><span class="text-fg">npm</span>&nbsp;<span class="text-fg-muted"
507-
>install {{ pkg.name }}</span
507+
>install&nbsp;{{ pkg.name }}</span
508508
></template
509509
></ClientOnly
510510
></code

cli/src/server.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@ import {
1010
getQuery,
1111
createError,
1212
getHeader,
13+
getRequestHeader,
1314
setResponseHeaders,
1415
getRouterParam,
1516
} from 'h3'
17+
18+
const ALLOWED_ORIGINS = new Set(['https://npmx.dev', 'http://localhost:3000'])
1619
import type { ConnectorState, PendingOperation, OperationType, ApiResponse } from './types.ts'
1720
import {
1821
getNpmUser,
@@ -66,24 +69,31 @@ export function createConnectorApp(expectedToken: string) {
6669
operations: [],
6770
}
6871

69-
const app = createApp({
70-
onRequest(event) {
71-
// CORS headers for browser connections
72+
function setCorsHeaders(event: Parameters<typeof setResponseHeaders>[0]) {
73+
const origin = getRequestHeader(event, 'origin')
74+
if (origin && ALLOWED_ORIGINS.has(origin)) {
7275
setResponseHeaders(event, {
73-
'Access-Control-Allow-Origin': '*',
76+
'Access-Control-Allow-Origin': origin,
7477
'Access-Control-Allow-Methods': 'GET, POST, DELETE, OPTIONS',
7578
'Access-Control-Allow-Headers': 'Content-Type, Authorization',
7679
})
80+
}
81+
}
82+
83+
const app = createApp({
84+
onRequest(event) {
85+
setCorsHeaders(event)
86+
},
87+
onBeforeResponse(event) {
88+
setCorsHeaders(event)
7789
},
7890
})
7991
const router = createRouter()
8092

8193
// Handle CORS preflight requests
8294
router.options(
8395
'/**',
84-
eventHandler(() => {
85-
return null
86-
}),
96+
eventHandler(() => ''),
8797
)
8898

8999
function validateToken(authHeader: string | null | undefined): boolean {

0 commit comments

Comments
 (0)