betterstart-cli 0.0.84 → 0.0.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/dev-mode-code-mirror.tsx +3 -2
- package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +3 -3
- package/dist/cli.js +22 -6
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx
CHANGED
|
@@ -38,7 +38,7 @@ export function CopyableCodeBlock({ label, code, language, tabs }: CopyableCodeB
|
|
|
38
38
|
<Card className="flex flex-col w-full p-0 gap-0">
|
|
39
39
|
{hasTabs ? (
|
|
40
40
|
<Tabs value={activeTab.id} onValueChange={setActiveTabId} className="min-h-0 flex-1 gap-0">
|
|
41
|
-
<CardHeader className="flex items-center justify-between gap-2
|
|
41
|
+
<CardHeader className="flex items-center justify-between gap-2 pt-[5px]! pb-2! pl-3.5! pr-1 bg-background border-b border-border">
|
|
42
42
|
<div className="flex min-w-0 flex-1 items-center gap-2">
|
|
43
43
|
<span className="min-w-0 truncate text-sm font-medium text-muted-foreground">
|
|
44
44
|
{label}
|
|
@@ -54,7 +54,7 @@ export function CopyableCodeBlock({ label, code, language, tabs }: CopyableCodeB
|
|
|
54
54
|
<Button
|
|
55
55
|
type="button"
|
|
56
56
|
variant="ghost"
|
|
57
|
-
size="icon"
|
|
57
|
+
size="icon-sm"
|
|
58
58
|
aria-label={`Copy ${label} ${activeTab.label}`}
|
|
59
59
|
onClick={() => {
|
|
60
60
|
void copy(activeTab.code)
|
|
@@ -66,7 +66,7 @@ export function CopyableCodeBlock({ label, code, language, tabs }: CopyableCodeB
|
|
|
66
66
|
|
|
67
67
|
{codeTabs.map((tab) => (
|
|
68
68
|
<TabsContent key={tab.id} value={tab.id} className="min-h-0 overflow-auto">
|
|
69
|
-
<CardContent className="p-0 overflow-auto">
|
|
69
|
+
<CardContent className="p-0 overflow-auto h-full">
|
|
70
70
|
<React.Suspense fallback={<PlainCodeFallback code={tab.code} />}>
|
|
71
71
|
<LazyCodeMirror code={tab.code} language={tab.language} theme={codeTheme} />
|
|
72
72
|
</React.Suspense>
|
|
@@ -76,14 +76,14 @@ export function CopyableCodeBlock({ label, code, language, tabs }: CopyableCodeB
|
|
|
76
76
|
</Tabs>
|
|
77
77
|
) : (
|
|
78
78
|
<>
|
|
79
|
-
<CardHeader className="flex items-center justify-between gap-2
|
|
79
|
+
<CardHeader className="flex items-center justify-between gap-2 pt-[5px]! pb-2! pl-3.5! pr-1 bg-background border-b border-border">
|
|
80
80
|
<span className="min-w-0 truncate text-sm font-medium text-muted-foreground">
|
|
81
81
|
{label}
|
|
82
82
|
</span>
|
|
83
83
|
<Button
|
|
84
84
|
type="button"
|
|
85
85
|
variant="ghost"
|
|
86
|
-
size="icon"
|
|
86
|
+
size="icon-sm"
|
|
87
87
|
aria-label={`Copy ${label}`}
|
|
88
88
|
onClick={() => {
|
|
89
89
|
void copy(activeTab.code)
|
package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/dev-mode-code-mirror.tsx
CHANGED
|
@@ -11,8 +11,8 @@ import type { DevModeCodeLanguage, DevModeCodeTheme } from './dev-mode-types'
|
|
|
11
11
|
const codeMirrorSetup = {
|
|
12
12
|
lineNumbers: true,
|
|
13
13
|
foldGutter: false,
|
|
14
|
-
highlightActiveLine:
|
|
15
|
-
highlightActiveLineGutter:
|
|
14
|
+
highlightActiveLine: true,
|
|
15
|
+
highlightActiveLineGutter: true
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
const compactCodeTheme = EditorView.theme({
|
|
@@ -63,6 +63,7 @@ export default function DevModeCodeMirror({ code, language, theme }: DevModeCode
|
|
|
63
63
|
basicSetup={codeMirrorSetup}
|
|
64
64
|
extensions={extensions}
|
|
65
65
|
theme={theme === 'dark' ? githubDark : githubLight}
|
|
66
|
+
className="flex-1 [&>.cm-editor]:h-full"
|
|
66
67
|
/>
|
|
67
68
|
)
|
|
68
69
|
}
|
|
@@ -30,7 +30,7 @@ function DialogOverlay({
|
|
|
30
30
|
<DialogPrimitive.Overlay
|
|
31
31
|
data-slot="dialog-overlay"
|
|
32
32
|
className={cn(
|
|
33
|
-
'fixed inset-0 isolate z-
|
|
33
|
+
'fixed inset-0 isolate z-200 bg-black/80 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0',
|
|
34
34
|
className
|
|
35
35
|
)}
|
|
36
36
|
{...props}
|
|
@@ -52,7 +52,7 @@ function DialogContent({
|
|
|
52
52
|
<DialogPrimitive.Content
|
|
53
53
|
data-slot="dialog-content"
|
|
54
54
|
className={cn(
|
|
55
|
-
'fixed top-1/2 left-1/2 z-
|
|
55
|
+
'fixed top-1/2 left-1/2 z-200 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-0 rounded-sm text-sm text-popover-foreground ring-1 ring-foreground/5 duration-100 outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:fade-out-0 data-closed:zoom-out-95 overflow-hidden bg-card',
|
|
56
56
|
className
|
|
57
57
|
)}
|
|
58
58
|
{...props}
|
|
@@ -106,7 +106,7 @@ function DialogFooter({
|
|
|
106
106
|
<div
|
|
107
107
|
data-slot="dialog-footer"
|
|
108
108
|
className={cn(
|
|
109
|
-
'flex flex-col-reverse gap-1 px-6 pt-
|
|
109
|
+
'flex flex-col-reverse gap-1 px-6 pt-2 items-center pb-3 bg-muted sm:flex-row sm:justify-between',
|
|
110
110
|
className
|
|
111
111
|
)}
|
|
112
112
|
{...props}
|
package/dist/cli.js
CHANGED
|
@@ -26300,6 +26300,8 @@ function ensureVercelJsonFramework(cwd) {
|
|
|
26300
26300
|
}
|
|
26301
26301
|
function parseDeployedUrl(stdout, stderr) {
|
|
26302
26302
|
const plainErr = stripVTControlCharacters4(stderr);
|
|
26303
|
+
const aliased = plainErr.match(/Aliased:\s+(https:\/\/\S+)/i)?.[1];
|
|
26304
|
+
if (aliased) return aliased;
|
|
26303
26305
|
const production = plainErr.match(/Production:\s+(https:\/\/\S+)/i)?.[1];
|
|
26304
26306
|
if (production) return production;
|
|
26305
26307
|
const fromStdout = stripVTControlCharacters4(stdout).match(/https:\/\/\S+/)?.[0];
|
|
@@ -26368,30 +26370,44 @@ function findAcceptTermsUrl(line) {
|
|
|
26368
26370
|
async function provisionNeonInteractive(runner, cwd, options) {
|
|
26369
26371
|
const quietSpinner = spinner2();
|
|
26370
26372
|
quietSpinner.start("Creating your Neon database");
|
|
26371
|
-
let
|
|
26373
|
+
let termsNotice;
|
|
26374
|
+
let termsResolved = false;
|
|
26375
|
+
const settleTermsNotice = () => {
|
|
26376
|
+
if (!termsNotice || termsResolved) return;
|
|
26377
|
+
termsResolved = true;
|
|
26378
|
+
quietSpinner.clear();
|
|
26379
|
+
eraseRows(termsNotice.rows);
|
|
26380
|
+
p20.log.step(termsNotice.text);
|
|
26381
|
+
};
|
|
26372
26382
|
const quiet = await runVercel(runner, neonAddArgs(options), {
|
|
26373
26383
|
cwd,
|
|
26374
26384
|
mode: "capture",
|
|
26375
26385
|
timeoutMs: PROVISION_TIMEOUT_MS2,
|
|
26376
26386
|
env: options.env,
|
|
26377
26387
|
onOutputLine: (line, run) => {
|
|
26378
|
-
if (!
|
|
26388
|
+
if (!termsNotice) {
|
|
26379
26389
|
const termsUrl = findAcceptTermsUrl(line);
|
|
26380
26390
|
if (!termsUrl) return;
|
|
26381
|
-
waitingOnTerms = true;
|
|
26382
26391
|
run.extendTimeout(INTERACTIVE_PROVISION_TIMEOUT_MS2);
|
|
26392
|
+
const message = "Please accept the Neon terms in your browser";
|
|
26393
|
+
termsNotice = {
|
|
26394
|
+
text: `${message}
|
|
26395
|
+
${pc7.dim(termsUrl)}`,
|
|
26396
|
+
rows: clackLogRows(message) + clackLogRows(termsUrl) - 1
|
|
26397
|
+
};
|
|
26383
26398
|
quietSpinner.clear();
|
|
26384
|
-
p20.log.info(
|
|
26385
|
-
${pc7.dim(termsUrl)}`);
|
|
26399
|
+
p20.log.info(termsNotice.text);
|
|
26386
26400
|
quietSpinner.start("Waiting for the terms to be accepted");
|
|
26387
26401
|
return;
|
|
26388
26402
|
}
|
|
26389
26403
|
if (TERMS_ACCEPTED_PATTERN.test(line)) {
|
|
26390
|
-
|
|
26404
|
+
settleTermsNotice();
|
|
26405
|
+
quietSpinner.start("Creating your Neon database");
|
|
26391
26406
|
}
|
|
26392
26407
|
}
|
|
26393
26408
|
});
|
|
26394
26409
|
if (quiet.success) {
|
|
26410
|
+
settleTermsNotice();
|
|
26395
26411
|
quietSpinner.clear();
|
|
26396
26412
|
return readNeonProvisionInfo(quiet.stdout);
|
|
26397
26413
|
}
|