@underpeaks/generator-nextjs 1.0.19
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/generator.d.ts +3 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +113 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/algolia.d.ts +3 -0
- package/dist/integrations/algolia.d.ts.map +1 -0
- package/dist/integrations/algolia.js +56 -0
- package/dist/integrations/algolia.js.map +1 -0
- package/dist/integrations/anthropic.d.ts +3 -0
- package/dist/integrations/anthropic.d.ts.map +1 -0
- package/dist/integrations/anthropic.js +54 -0
- package/dist/integrations/anthropic.js.map +1 -0
- package/dist/integrations/aws-s3.d.ts +3 -0
- package/dist/integrations/aws-s3.d.ts.map +1 -0
- package/dist/integrations/aws-s3.js +59 -0
- package/dist/integrations/aws-s3.js.map +1 -0
- package/dist/integrations/clerk.d.ts +3 -0
- package/dist/integrations/clerk.d.ts.map +1 -0
- package/dist/integrations/clerk.js +34 -0
- package/dist/integrations/clerk.js.map +1 -0
- package/dist/integrations/cloudinary.d.ts +3 -0
- package/dist/integrations/cloudinary.d.ts.map +1 -0
- package/dist/integrations/cloudinary.js +57 -0
- package/dist/integrations/cloudinary.js.map +1 -0
- package/dist/integrations/crisp.d.ts +3 -0
- package/dist/integrations/crisp.d.ts.map +1 -0
- package/dist/integrations/crisp.js +53 -0
- package/dist/integrations/crisp.js.map +1 -0
- package/dist/integrations/firebase.d.ts +3 -0
- package/dist/integrations/firebase.d.ts.map +1 -0
- package/dist/integrations/firebase.js +53 -0
- package/dist/integrations/firebase.js.map +1 -0
- package/dist/integrations/flutterwave.d.ts +3 -0
- package/dist/integrations/flutterwave.d.ts.map +1 -0
- package/dist/integrations/flutterwave.js +53 -0
- package/dist/integrations/flutterwave.js.map +1 -0
- package/dist/integrations/gemini.d.ts +3 -0
- package/dist/integrations/gemini.d.ts.map +1 -0
- package/dist/integrations/gemini.js +40 -0
- package/dist/integrations/gemini.js.map +1 -0
- package/dist/integrations/github.d.ts +3 -0
- package/dist/integrations/github.d.ts.map +1 -0
- package/dist/integrations/github.js +53 -0
- package/dist/integrations/github.js.map +1 -0
- package/dist/integrations/hubspot.d.ts +3 -0
- package/dist/integrations/hubspot.d.ts.map +1 -0
- package/dist/integrations/hubspot.js +54 -0
- package/dist/integrations/hubspot.js.map +1 -0
- package/dist/integrations/index.d.ts +3 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +63 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/lemonsqueezy.d.ts +3 -0
- package/dist/integrations/lemonsqueezy.d.ts.map +1 -0
- package/dist/integrations/lemonsqueezy.js +43 -0
- package/dist/integrations/lemonsqueezy.js.map +1 -0
- package/dist/integrations/mailchimp.d.ts +3 -0
- package/dist/integrations/mailchimp.d.ts.map +1 -0
- package/dist/integrations/mailchimp.js +52 -0
- package/dist/integrations/mailchimp.js.map +1 -0
- package/dist/integrations/openai.d.ts +3 -0
- package/dist/integrations/openai.d.ts.map +1 -0
- package/dist/integrations/openai.js +78 -0
- package/dist/integrations/openai.js.map +1 -0
- package/dist/integrations/payfast.d.ts +3 -0
- package/dist/integrations/payfast.d.ts.map +1 -0
- package/dist/integrations/payfast.js +94 -0
- package/dist/integrations/payfast.js.map +1 -0
- package/dist/integrations/pusher.d.ts +3 -0
- package/dist/integrations/pusher.d.ts.map +1 -0
- package/dist/integrations/pusher.js +86 -0
- package/dist/integrations/pusher.js.map +1 -0
- package/dist/integrations/resend.d.ts +3 -0
- package/dist/integrations/resend.d.ts.map +1 -0
- package/dist/integrations/resend.js +45 -0
- package/dist/integrations/resend.js.map +1 -0
- package/dist/integrations/sendgrid.d.ts +3 -0
- package/dist/integrations/sendgrid.d.ts.map +1 -0
- package/dist/integrations/sendgrid.js +42 -0
- package/dist/integrations/sendgrid.js.map +1 -0
- package/dist/integrations/sentry.d.ts +3 -0
- package/dist/integrations/sentry.d.ts.map +1 -0
- package/dist/integrations/sentry.js +49 -0
- package/dist/integrations/sentry.js.map +1 -0
- package/dist/integrations/slack.d.ts +3 -0
- package/dist/integrations/slack.d.ts.map +1 -0
- package/dist/integrations/slack.js +54 -0
- package/dist/integrations/slack.js.map +1 -0
- package/dist/integrations/storage.d.ts +3 -0
- package/dist/integrations/storage.d.ts.map +1 -0
- package/dist/integrations/storage.js +71 -0
- package/dist/integrations/storage.js.map +1 -0
- package/dist/integrations/stripe.d.ts +3 -0
- package/dist/integrations/stripe.d.ts.map +1 -0
- package/dist/integrations/stripe.js +65 -0
- package/dist/integrations/stripe.js.map +1 -0
- package/dist/integrations/twilio.d.ts +3 -0
- package/dist/integrations/twilio.d.ts.map +1 -0
- package/dist/integrations/twilio.js +45 -0
- package/dist/integrations/twilio.js.map +1 -0
- package/dist/integrations/uploadthing.d.ts +3 -0
- package/dist/integrations/uploadthing.d.ts.map +1 -0
- package/dist/integrations/uploadthing.js +41 -0
- package/dist/integrations/uploadthing.js.map +1 -0
- package/dist/templates/api-builder.d.ts +12 -0
- package/dist/templates/api-builder.d.ts.map +1 -0
- package/dist/templates/api-builder.js +76 -0
- package/dist/templates/api-builder.js.map +1 -0
- package/dist/templates/api-route-id.d.ts +3 -0
- package/dist/templates/api-route-id.d.ts.map +1 -0
- package/dist/templates/api-route-id.js +137 -0
- package/dist/templates/api-route-id.js.map +1 -0
- package/dist/templates/api-route.d.ts +3 -0
- package/dist/templates/api-route.d.ts.map +1 -0
- package/dist/templates/api-route.js +85 -0
- package/dist/templates/api-route.js.map +1 -0
- package/dist/templates/app-nav.d.ts +23 -0
- package/dist/templates/app-nav.d.ts.map +1 -0
- package/dist/templates/app-nav.js +132 -0
- package/dist/templates/app-nav.js.map +1 -0
- package/dist/templates/env.d.ts +3 -0
- package/dist/templates/env.d.ts.map +1 -0
- package/dist/templates/env.js +39 -0
- package/dist/templates/env.js.map +1 -0
- package/dist/templates/layout.d.ts +3 -0
- package/dist/templates/layout.d.ts.map +1 -0
- package/dist/templates/layout.js +50 -0
- package/dist/templates/layout.js.map +1 -0
- package/dist/templates/navigation.d.ts +3 -0
- package/dist/templates/navigation.d.ts.map +1 -0
- package/dist/templates/navigation.js +129 -0
- package/dist/templates/navigation.js.map +1 -0
- package/dist/templates/nxf-client.d.ts +3 -0
- package/dist/templates/nxf-client.d.ts.map +1 -0
- package/dist/templates/nxf-client.js +96 -0
- package/dist/templates/nxf-client.js.map +1 -0
- package/dist/templates/page-auth.d.ts +3 -0
- package/dist/templates/page-auth.d.ts.map +1 -0
- package/dist/templates/page-auth.js +344 -0
- package/dist/templates/page-auth.js.map +1 -0
- package/dist/templates/page-detail.d.ts +3 -0
- package/dist/templates/page-detail.d.ts.map +1 -0
- package/dist/templates/page-detail.js +86 -0
- package/dist/templates/page-detail.js.map +1 -0
- package/dist/templates/page-form.d.ts +3 -0
- package/dist/templates/page-form.d.ts.map +1 -0
- package/dist/templates/page-form.js +159 -0
- package/dist/templates/page-form.js.map +1 -0
- package/dist/templates/page-landing.d.ts +3 -0
- package/dist/templates/page-landing.d.ts.map +1 -0
- package/dist/templates/page-landing.js +140 -0
- package/dist/templates/page-landing.js.map +1 -0
- package/dist/templates/page-list.d.ts +3 -0
- package/dist/templates/page-list.d.ts.map +1 -0
- package/dist/templates/page-list.js +130 -0
- package/dist/templates/page-list.js.map +1 -0
- package/dist/templates/page-remaining.d.ts +3 -0
- package/dist/templates/page-remaining.d.ts.map +1 -0
- package/dist/templates/page-remaining.js +870 -0
- package/dist/templates/page-remaining.js.map +1 -0
- package/dist/templates/readme.d.ts +3 -0
- package/dist/templates/readme.d.ts.map +1 -0
- package/dist/templates/readme.js +87 -0
- package/dist/templates/readme.js.map +1 -0
- package/dist/templates/tailwind.d.ts +3 -0
- package/dist/templates/tailwind.d.ts.map +1 -0
- package/dist/templates/tailwind.js +63 -0
- package/dist/templates/tailwind.js.map +1 -0
- package/dist/templates/theme.d.ts +3 -0
- package/dist/templates/theme.d.ts.map +1 -0
- package/dist/templates/theme.js +49 -0
- package/dist/templates/theme.js.map +1 -0
- package/dist/templates/types.d.ts +3 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/templates/types.js +74 -0
- package/dist/templates/types.js.map +1 -0
- package/dist/templates/validators.d.ts +3 -0
- package/dist/templates/validators.d.ts.map +1 -0
- package/dist/templates/validators.js +37 -0
- package/dist/templates/validators.js.map +1 -0
- package/package.json +24 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/templates/app-nav.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateAppNav = generateAppNav;
|
|
5
|
+
/**
|
|
6
|
+
* generateAppNav
|
|
7
|
+
*
|
|
8
|
+
* Was referenced by layout.ts ('../components/AppNav') but never actually
|
|
9
|
+
* generated by any template — every project with a nav page would fail to
|
|
10
|
+
* build. This is the missing piece.
|
|
11
|
+
*
|
|
12
|
+
* Mirrors Flutter's navigation.ts shell/drawer split, adapted for the web:
|
|
13
|
+
* - top-nav / bottom-nav → a horizontal nav bar (bottom-nav has no native
|
|
14
|
+
* web equivalent as a persistent OS-level bar the way it does on mobile;
|
|
15
|
+
* rendered as a top bar here, same as top-nav, since both express "the
|
|
16
|
+
* same links are always visible" intent).
|
|
17
|
+
* - sidebar-nav / drawer-nav → a collapsible side panel (drawer becomes a
|
|
18
|
+
* toggleable off-canvas panel on mobile widths, persistent sidebar on
|
|
19
|
+
* desktop — matches how most Next.js dashboard layouts behave).
|
|
20
|
+
* If pages mix nav types, sidebar/drawer takes visual priority (rendered
|
|
21
|
+
* as the persistent panel) and top/bottom pages are folded into it as
|
|
22
|
+
* regular links, rather than trying to render two separate nav structures
|
|
23
|
+
* at once.
|
|
24
|
+
*/
|
|
25
|
+
function generateAppNav(pages) {
|
|
26
|
+
const navPages = pages.filter((p) => ['top-nav', 'sidebar-nav', 'bottom-nav', 'drawer-nav'].includes(p.nav_type ?? ''));
|
|
27
|
+
const useSidebar = navPages.some((p) => p.nav_type === 'sidebar-nav' || p.nav_type === 'drawer-nav');
|
|
28
|
+
const lines = [];
|
|
29
|
+
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
30
|
+
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
31
|
+
lines.push(`// Regenerate: nxf generate nextjs`);
|
|
32
|
+
lines.push(``);
|
|
33
|
+
lines.push(`'use client'`);
|
|
34
|
+
lines.push(``);
|
|
35
|
+
lines.push(`import { useState } from 'react'`);
|
|
36
|
+
lines.push(`import Link from 'next/link'`);
|
|
37
|
+
lines.push(`import { usePathname } from 'next/navigation'`);
|
|
38
|
+
lines.push(``);
|
|
39
|
+
lines.push(`const NAV_LINKS = [`);
|
|
40
|
+
for (const page of navPages) {
|
|
41
|
+
const path = page.slug.replace(/^\//, '');
|
|
42
|
+
lines.push(` { href: '/${path}', label: '${page.name}' },`);
|
|
43
|
+
}
|
|
44
|
+
lines.push(`]`);
|
|
45
|
+
lines.push(``);
|
|
46
|
+
if (useSidebar) {
|
|
47
|
+
lines.push(`export default function AppNav() {`);
|
|
48
|
+
lines.push(` const pathname = usePathname()`);
|
|
49
|
+
lines.push(` const [open, setOpen] = useState(false)`);
|
|
50
|
+
lines.push(``);
|
|
51
|
+
lines.push(` return (`);
|
|
52
|
+
lines.push(` <>`);
|
|
53
|
+
lines.push(` {/* Mobile top bar with menu toggle */}`);
|
|
54
|
+
lines.push(` <div className="flex items-center justify-between px-4 py-3 border-b border-border md:hidden">`);
|
|
55
|
+
lines.push(` <span className="font-semibold">Menu</span>`);
|
|
56
|
+
lines.push(` <button`);
|
|
57
|
+
lines.push(` onClick={() => setOpen((v) => !v)}`);
|
|
58
|
+
lines.push(` aria-label="Toggle navigation"`);
|
|
59
|
+
lines.push(` className="p-2"`);
|
|
60
|
+
lines.push(` >`);
|
|
61
|
+
lines.push(` {open ? '✕' : '☰'}`);
|
|
62
|
+
lines.push(` </button>`);
|
|
63
|
+
lines.push(` </div>`);
|
|
64
|
+
lines.push(``);
|
|
65
|
+
lines.push(` {/* Sidebar — persistent on desktop, toggleable on mobile */}`);
|
|
66
|
+
lines.push(` <nav`);
|
|
67
|
+
lines.push(` className={\``);
|
|
68
|
+
lines.push(` fixed md:static inset-y-0 left-0 z-40 w-64 border-r border-border bg-background`);
|
|
69
|
+
lines.push(` transform transition-transform md:translate-x-0`);
|
|
70
|
+
lines.push(` \${open ? 'translate-x-0' : '-translate-x-full'}`);
|
|
71
|
+
lines.push(` \`}`);
|
|
72
|
+
lines.push(` >`);
|
|
73
|
+
lines.push(` <ul className="flex flex-col gap-1 p-4">`);
|
|
74
|
+
lines.push(` {NAV_LINKS.map((link) => (`);
|
|
75
|
+
lines.push(` <li key={link.href}>`);
|
|
76
|
+
lines.push(` <Link`);
|
|
77
|
+
lines.push(` href={link.href}`);
|
|
78
|
+
lines.push(` onClick={() => setOpen(false)}`);
|
|
79
|
+
lines.push(` className={\`block px-3 py-2 rounded-nxf text-sm \${`);
|
|
80
|
+
lines.push(` pathname === link.href`);
|
|
81
|
+
lines.push(` ? 'bg-primary text-white'`);
|
|
82
|
+
lines.push(` : 'text-nxf-text hover:bg-surface'`);
|
|
83
|
+
lines.push(` }\`}`);
|
|
84
|
+
lines.push(` >`);
|
|
85
|
+
lines.push(` {link.label}`);
|
|
86
|
+
lines.push(` </Link>`);
|
|
87
|
+
lines.push(` </li>`);
|
|
88
|
+
lines.push(` ))}`);
|
|
89
|
+
lines.push(` </ul>`);
|
|
90
|
+
lines.push(` </nav>`);
|
|
91
|
+
lines.push(``);
|
|
92
|
+
lines.push(` {/* Backdrop on mobile when sidebar is open */}`);
|
|
93
|
+
lines.push(` {open && (`);
|
|
94
|
+
lines.push(` <div`);
|
|
95
|
+
lines.push(` className="fixed inset-0 z-30 bg-black/30 md:hidden"`);
|
|
96
|
+
lines.push(` onClick={() => setOpen(false)}`);
|
|
97
|
+
lines.push(` />`);
|
|
98
|
+
lines.push(` )}`);
|
|
99
|
+
lines.push(` </>`);
|
|
100
|
+
lines.push(` )`);
|
|
101
|
+
lines.push(`}`);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
lines.push(`export default function AppNav() {`);
|
|
105
|
+
lines.push(` const pathname = usePathname()`);
|
|
106
|
+
lines.push(``);
|
|
107
|
+
lines.push(` return (`);
|
|
108
|
+
lines.push(` <nav className="flex items-center gap-1 px-4 py-3 border-b border-border">`);
|
|
109
|
+
lines.push(` {NAV_LINKS.map((link) => (`);
|
|
110
|
+
lines.push(` <Link`);
|
|
111
|
+
lines.push(` key={link.href}`);
|
|
112
|
+
lines.push(` href={link.href}`);
|
|
113
|
+
lines.push(` className={\`px-3 py-2 rounded-nxf text-sm \${`);
|
|
114
|
+
lines.push(` pathname === link.href`);
|
|
115
|
+
lines.push(` ? 'bg-primary text-white'`);
|
|
116
|
+
lines.push(` : 'text-nxf-text hover:bg-surface'`);
|
|
117
|
+
lines.push(` }\`}`);
|
|
118
|
+
lines.push(` >`);
|
|
119
|
+
lines.push(` {link.label}`);
|
|
120
|
+
lines.push(` </Link>`);
|
|
121
|
+
lines.push(` ))}`);
|
|
122
|
+
lines.push(` </nav>`);
|
|
123
|
+
lines.push(` )`);
|
|
124
|
+
lines.push(`}`);
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
path: 'components/AppNav.tsx',
|
|
128
|
+
content: lines.join('\n'),
|
|
129
|
+
category: 'customizable',
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=app-nav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-nav.js","sourceRoot":"","sources":["../../src/templates/app-nav.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAmCpE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/templates/env.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateEnvTemplate = generateEnvTemplate;
|
|
5
|
+
function generateEnvTemplate(projectId) {
|
|
6
|
+
const lines = [];
|
|
7
|
+
lines.push(`# Generated by Underpeaks CodeGen v1.0.0`);
|
|
8
|
+
lines.push(`# Copy this file to .env.local and fill in your credentials.`);
|
|
9
|
+
lines.push(`# .env.local is git-ignored — never commit real keys.`);
|
|
10
|
+
lines.push(``);
|
|
11
|
+
lines.push(`# Underpeaks backend URL`);
|
|
12
|
+
lines.push(`# Hosted: https://studio.underpeaks.com`);
|
|
13
|
+
lines.push(`# Self-hosted: your Core instance URL, e.g. https://api.yourapp.com`);
|
|
14
|
+
// FIX: was NXF_BASE_URL. lib/nxf-client.ts (the file every generated API
|
|
15
|
+
// route actually imports and calls) reads process.env.NXF_STUDIO_URL,
|
|
16
|
+
// not NXF_BASE_URL — that var name was never read anywhere in the
|
|
17
|
+
// generated app, so filling it in from this file did nothing and the
|
|
18
|
+
// app silently fell back to the hardcoded 'https://studio.underpeaks.com'
|
|
19
|
+
// default every time, regardless of what the developer set. Renamed to
|
|
20
|
+
// match nxf-client.ts exactly (also matches what validateNxfEnv() checks
|
|
21
|
+
// for, and what readme.ts already correctly documented).
|
|
22
|
+
lines.push(`NXF_STUDIO_URL=https://studio.underpeaks.com`);
|
|
23
|
+
lines.push(``);
|
|
24
|
+
lines.push(`# Your project ID`);
|
|
25
|
+
lines.push(`NXF_PROJECT_ID=${projectId}`);
|
|
26
|
+
lines.push(``);
|
|
27
|
+
lines.push(`# Your Underpeaks API key (Studio/Core → Settings → API Keys)`);
|
|
28
|
+
lines.push(`# Public project identifier — calls still require user sign-in.`);
|
|
29
|
+
lines.push(`NXF_API_KEY=`);
|
|
30
|
+
lines.push(``);
|
|
31
|
+
lines.push(`# Public app URL (used for server-side fetch calls)`);
|
|
32
|
+
lines.push(`NEXT_PUBLIC_APP_DOMAIN=http://localhost:3000`);
|
|
33
|
+
return {
|
|
34
|
+
path: '.env.example',
|
|
35
|
+
content: lines.join('\n'),
|
|
36
|
+
category: 'root',
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":";AAAA,0EAA0E;;AAI1E,kDAmCC;AAnCD,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;IAC1E,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IACnE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IACtC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;IACjF,yEAAyE;IACzE,sEAAsE;IACtE,kEAAkE;IAClE,qEAAqE;IACrE,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,yDAAyD;IACzD,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/B,KAAK,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAA;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;IAC7E,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAA;IACjE,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAE1D,OAAO;QACL,IAAI,EAAM,cAAc;QACxB,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM;KACjB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/templates/layout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAExE,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CAiDnF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/templates/layout.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateLayout = generateLayout;
|
|
5
|
+
function generateLayout(pages, projectName) {
|
|
6
|
+
// FIX: was `A || B` where B alone (`!authTypes.includes(template_type)`)
|
|
7
|
+
// is true for almost every non-auth page regardless of its actual
|
|
8
|
+
// nav_type — meaning hasNav was effectively always true, and AppNav got
|
|
9
|
+
// imported into nearly every generated app even for projects with no
|
|
10
|
+
// nav pages defined at all. Now only checks nav_type directly, matching
|
|
11
|
+
// what the import is actually meant to gate on.
|
|
12
|
+
const hasNav = pages.some((p) => ['top-nav', 'sidebar-nav', 'bottom-nav', 'drawer-nav'].includes(p.nav_type ?? ''));
|
|
13
|
+
const lines = [];
|
|
14
|
+
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
15
|
+
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
16
|
+
lines.push(``);
|
|
17
|
+
lines.push(`import type { Metadata } from 'next'`);
|
|
18
|
+
lines.push(`import './globals.css'`);
|
|
19
|
+
if (hasNav) {
|
|
20
|
+
lines.push(`import AppNav from '../components/AppNav'`);
|
|
21
|
+
}
|
|
22
|
+
lines.push(``);
|
|
23
|
+
lines.push(`export const metadata: Metadata = {`);
|
|
24
|
+
lines.push(` title: '${projectName}',`);
|
|
25
|
+
lines.push(` description: 'Generated by Underpeaks CodeGen',`);
|
|
26
|
+
lines.push(`}`);
|
|
27
|
+
lines.push(``);
|
|
28
|
+
lines.push(`export default function RootLayout({`);
|
|
29
|
+
lines.push(` children,`);
|
|
30
|
+
lines.push(`}: {`);
|
|
31
|
+
lines.push(` children: React.ReactNode`);
|
|
32
|
+
lines.push(`}) {`);
|
|
33
|
+
lines.push(` return (`);
|
|
34
|
+
lines.push(` <html lang="en">`);
|
|
35
|
+
lines.push(` <body>`);
|
|
36
|
+
if (hasNav) {
|
|
37
|
+
lines.push(` <AppNav />`);
|
|
38
|
+
}
|
|
39
|
+
lines.push(` <main>{children}</main>`);
|
|
40
|
+
lines.push(` </body>`);
|
|
41
|
+
lines.push(` </html>`);
|
|
42
|
+
lines.push(` )`);
|
|
43
|
+
lines.push(`}`);
|
|
44
|
+
return {
|
|
45
|
+
path: 'app/layout.tsx',
|
|
46
|
+
content: lines.join('\n'),
|
|
47
|
+
category: 'generated',
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/templates/layout.ts"],"names":[],"mappings":";AAAA,6EAA6E;;AAI7E,wCAiDC;AAjDD,SAAgB,cAAc,CAAC,KAAgB,EAAE,WAAmB;IAClE,yEAAyE;IACzE,kEAAkE;IAClE,wEAAwE;IACxE,qEAAqE;IACrE,wEAAwE;IACxE,gDAAgD;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAClF,CAAA;IAED,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IAClD,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IACpC,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACzD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,mBAAmB,WAAW,IAAI,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;IAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IAClD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClB,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;IACzC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACxB,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAClC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1B,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAClC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;IAC7C,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC3B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACzB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEf,OAAO;QACL,IAAI,EAAM,gBAAgB;QAC1B,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,WAAW;KACtB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/templates/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAgBnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CA8GvF"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/templates/navigation.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateNavigation = generateNavigation;
|
|
5
|
+
// FIX: previously any page that wasn't an auth page and wasn't explicitly
|
|
6
|
+
// nav_type: 'none' was included in the nav — meaning splash, onboarding,
|
|
7
|
+
// checkout, wallet, chat, and other fixed single-screen pages leaked into
|
|
8
|
+
// the navigation bar. Only genuinely nav-appropriate template types
|
|
9
|
+
// should ever appear here, matching the same whitelist used in
|
|
10
|
+
// generator-flutter's navigation.ts.
|
|
11
|
+
const NAV_ELIGIBLE_TEMPLATE_TYPES = new Set(['list', 'grid', 'dashboard', 'feed', 'profile', 'chat', 'messages', 'map', 'search', 'settings']);
|
|
12
|
+
const NAV_EXCLUDED_TEMPLATE_TYPES = new Set([
|
|
13
|
+
'sign_in', 'sign_up', 'forgot_password', 'reset_password', 'otp_request', 'otp_entry',
|
|
14
|
+
'splash', 'onboarding', 'checkout', 'wallet', 'invoice', 'kanban', 'calendar',
|
|
15
|
+
'cart', 'gallery', 'blog-post', 'custom',
|
|
16
|
+
]);
|
|
17
|
+
function generateNavigation(pages, routes) {
|
|
18
|
+
// FIX: default to top-nav (not omitted from nav entirely) for any
|
|
19
|
+
// nav-eligible page with no nav_type set, matching the Flutter
|
|
20
|
+
// generator's "always assign a sensible default nav, never leave it
|
|
21
|
+
// unset" behaviour — just top-nav instead of bottom-nav, appropriate
|
|
22
|
+
// for a web layout.
|
|
23
|
+
const navPages = pages.filter((p) => {
|
|
24
|
+
if (p.nav_type === 'none')
|
|
25
|
+
return false;
|
|
26
|
+
if (NAV_EXCLUDED_TEMPLATE_TYPES.has(p.template_type))
|
|
27
|
+
return false;
|
|
28
|
+
if (['top-nav', 'sidebar-nav'].includes(p.nav_type ?? ''))
|
|
29
|
+
return true;
|
|
30
|
+
if (!p.nav_type && NAV_ELIGIBLE_TEMPLATE_TYPES.has(p.template_type))
|
|
31
|
+
return true;
|
|
32
|
+
return false;
|
|
33
|
+
});
|
|
34
|
+
const lines = [];
|
|
35
|
+
lines.push(`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`);
|
|
36
|
+
lines.push(`// Navigation component`);
|
|
37
|
+
lines.push(`// Presentation layer — generated once, you own this file.`);
|
|
38
|
+
lines.push(`// Regenerate: nxf generate nextjs --include-views`);
|
|
39
|
+
lines.push(`// WARNING: --include-views will overwrite your changes.`);
|
|
40
|
+
lines.push(``);
|
|
41
|
+
lines.push(`'use client'`);
|
|
42
|
+
lines.push(``);
|
|
43
|
+
lines.push(`import Link from 'next/link'`);
|
|
44
|
+
lines.push(`import { usePathname } from 'next/navigation'`);
|
|
45
|
+
lines.push(`import { useState } from 'react'`);
|
|
46
|
+
lines.push(``);
|
|
47
|
+
lines.push(`const NAV_ITEMS = [`);
|
|
48
|
+
for (const page of navPages) {
|
|
49
|
+
const path = page.slug.replace(/^\//, '');
|
|
50
|
+
lines.push(` { label: '${page.name}', href: '/${path}' },`);
|
|
51
|
+
}
|
|
52
|
+
lines.push(`]`);
|
|
53
|
+
lines.push(``);
|
|
54
|
+
lines.push(`export default function AppNav() {`);
|
|
55
|
+
lines.push(` const pathname = usePathname()`);
|
|
56
|
+
lines.push(` const [open, setOpen] = useState(false)`);
|
|
57
|
+
lines.push(``);
|
|
58
|
+
lines.push(` return (`);
|
|
59
|
+
lines.push(` <nav className="bg-white border-b border-gray-200">`);
|
|
60
|
+
lines.push(` <div className="container mx-auto px-4">`);
|
|
61
|
+
lines.push(` <div className="flex items-center justify-between h-16">`);
|
|
62
|
+
lines.push(``);
|
|
63
|
+
lines.push(` {/* Logo */}`);
|
|
64
|
+
lines.push(` <Link href="/" className="font-bold text-lg text-gray-900">`);
|
|
65
|
+
lines.push(` App`);
|
|
66
|
+
lines.push(` </Link>`);
|
|
67
|
+
lines.push(``);
|
|
68
|
+
lines.push(` {/* Desktop nav */}`);
|
|
69
|
+
lines.push(` <div className="hidden md:flex items-center gap-1">`);
|
|
70
|
+
lines.push(` {NAV_ITEMS.map((item) => (`);
|
|
71
|
+
lines.push(` <Link`);
|
|
72
|
+
lines.push(` key={item.href}`);
|
|
73
|
+
lines.push(` href={item.href}`);
|
|
74
|
+
lines.push(` className={\`px-3 py-2 rounded-lg text-sm font-medium transition \${`);
|
|
75
|
+
lines.push(` pathname === item.href || pathname.startsWith(item.href + '/')`);
|
|
76
|
+
lines.push(` ? 'bg-gray-100 text-gray-900'`);
|
|
77
|
+
lines.push(` : 'text-gray-600 hover:text-gray-900 hover:bg-gray-50'`);
|
|
78
|
+
lines.push(` }\`}`);
|
|
79
|
+
lines.push(` >`);
|
|
80
|
+
lines.push(` {item.label}`);
|
|
81
|
+
lines.push(` </Link>`);
|
|
82
|
+
lines.push(` ))}`);
|
|
83
|
+
lines.push(` </div>`);
|
|
84
|
+
lines.push(``);
|
|
85
|
+
lines.push(` {/* Mobile hamburger */}`);
|
|
86
|
+
lines.push(` <button`);
|
|
87
|
+
lines.push(` className="md:hidden p-2 rounded-lg text-gray-600 hover:bg-gray-100"`);
|
|
88
|
+
lines.push(` onClick={() => setOpen((v) => !v)}`);
|
|
89
|
+
lines.push(` aria-label="Toggle menu"`);
|
|
90
|
+
lines.push(` >`);
|
|
91
|
+
lines.push(` <svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">`);
|
|
92
|
+
lines.push(` {open`);
|
|
93
|
+
lines.push(` ? <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M6 18L18 6M6 6l12 12" />`);
|
|
94
|
+
lines.push(` : <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 6h16M4 12h16M4 18h16" />`);
|
|
95
|
+
lines.push(` }`);
|
|
96
|
+
lines.push(` </svg>`);
|
|
97
|
+
lines.push(` </button>`);
|
|
98
|
+
lines.push(` </div>`);
|
|
99
|
+
lines.push(``);
|
|
100
|
+
lines.push(` {/* Mobile menu */}`);
|
|
101
|
+
lines.push(` {open && (`);
|
|
102
|
+
lines.push(` <div className="md:hidden pb-3 flex flex-col gap-1">`);
|
|
103
|
+
lines.push(` {NAV_ITEMS.map((item) => (`);
|
|
104
|
+
lines.push(` <Link`);
|
|
105
|
+
lines.push(` key={item.href}`);
|
|
106
|
+
lines.push(` href={item.href}`);
|
|
107
|
+
lines.push(` onClick={() => setOpen(false)}`);
|
|
108
|
+
lines.push(` className={\`px-3 py-2 rounded-lg text-sm font-medium transition \${`);
|
|
109
|
+
lines.push(` pathname === item.href`);
|
|
110
|
+
lines.push(` ? 'bg-gray-100 text-gray-900'`);
|
|
111
|
+
lines.push(` : 'text-gray-600 hover:text-gray-900'`);
|
|
112
|
+
lines.push(` }\`}`);
|
|
113
|
+
lines.push(` >`);
|
|
114
|
+
lines.push(` {item.label}`);
|
|
115
|
+
lines.push(` </Link>`);
|
|
116
|
+
lines.push(` ))}`);
|
|
117
|
+
lines.push(` </div>`);
|
|
118
|
+
lines.push(` )}`);
|
|
119
|
+
lines.push(` </div>`);
|
|
120
|
+
lines.push(` </nav>`);
|
|
121
|
+
lines.push(` )`);
|
|
122
|
+
lines.push(`}`);
|
|
123
|
+
return {
|
|
124
|
+
path: 'components/AppNav.tsx',
|
|
125
|
+
content: lines.join('\n'),
|
|
126
|
+
category: 'customizable',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/templates/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nxf-client.d.ts","sourceRoot":"","sources":["../../src/templates/nxf-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAK5E,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,WAAW,CAAC,QAAQ,CAAY,GAAG,aAAa,CA0FzF"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/templates/nxf-client.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateNxfClient = generateNxfClient;
|
|
5
|
+
// FIX: hardcoded Authorization: Bearer header — Core's gateway only accepts
|
|
6
|
+
// X-API-Key, hosted's accepts Bearer. source now controls which header this
|
|
7
|
+
// generated client sends.
|
|
8
|
+
function generateNxfClient(source = 'hosted') {
|
|
9
|
+
const lines = [];
|
|
10
|
+
const authHeaderLine = source === 'core'
|
|
11
|
+
? ` 'X-API-Key': process.env.NXF_API_KEY ?? '',`
|
|
12
|
+
: ` 'Authorization': \`Bearer \${process.env.NXF_API_KEY ?? ''}\`,`;
|
|
13
|
+
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
14
|
+
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
15
|
+
lines.push(`// Regenerate: nxf generate nextjs`);
|
|
16
|
+
lines.push(``);
|
|
17
|
+
lines.push(`// ── Underpeaks API client ────────────────────────────────────────────────`);
|
|
18
|
+
lines.push(`// Wraps fetch with base URL, auth headers, and error handling.`);
|
|
19
|
+
lines.push(`// Used by all generated API routes.`);
|
|
20
|
+
lines.push(``);
|
|
21
|
+
lines.push(`const BASE_URL = process.env.NXF_STUDIO_URL ?? 'https://studio.underpeaks.com'`);
|
|
22
|
+
lines.push(``);
|
|
23
|
+
lines.push(`export async function nxfFetch<T>(`);
|
|
24
|
+
lines.push(` path: string,`);
|
|
25
|
+
lines.push(` options: RequestInit = {},`);
|
|
26
|
+
lines.push(`): Promise<T> {`);
|
|
27
|
+
lines.push(` const url = \`\${BASE_URL}\${path}\``);
|
|
28
|
+
lines.push(``);
|
|
29
|
+
lines.push(` const res = await fetch(url, {`);
|
|
30
|
+
lines.push(` ...options,`);
|
|
31
|
+
lines.push(` headers: {`);
|
|
32
|
+
lines.push(` 'Content-Type': 'application/json',`);
|
|
33
|
+
lines.push(authHeaderLine);
|
|
34
|
+
lines.push(` ...options.headers,`);
|
|
35
|
+
lines.push(` },`);
|
|
36
|
+
lines.push(` cache: 'no-store',`);
|
|
37
|
+
lines.push(` })`);
|
|
38
|
+
lines.push(``);
|
|
39
|
+
lines.push(` if (!res.ok) {`);
|
|
40
|
+
lines.push(` const error = await res.json().catch(() => ({ error: 'Unknown error' }))`);
|
|
41
|
+
lines.push(` throw new Error(error.error ?? \`Request failed: \${res.status}\`)`);
|
|
42
|
+
lines.push(` }`);
|
|
43
|
+
lines.push(``);
|
|
44
|
+
lines.push(` const json = await res.json()`);
|
|
45
|
+
lines.push(` return json.data ?? json`);
|
|
46
|
+
lines.push(`}`);
|
|
47
|
+
lines.push(``);
|
|
48
|
+
lines.push(`export async function nxfFetchList<T>(`);
|
|
49
|
+
lines.push(` path: string,`);
|
|
50
|
+
lines.push(` options: RequestInit = {},`);
|
|
51
|
+
lines.push(`): Promise<{ data: T[]; total: number; hasMore: boolean }> {`);
|
|
52
|
+
lines.push(` const url = \`\${BASE_URL}\${path}\``);
|
|
53
|
+
lines.push(``);
|
|
54
|
+
lines.push(` const res = await fetch(url, {`);
|
|
55
|
+
lines.push(` ...options,`);
|
|
56
|
+
lines.push(` headers: {`);
|
|
57
|
+
lines.push(` 'Content-Type': 'application/json',`);
|
|
58
|
+
lines.push(authHeaderLine);
|
|
59
|
+
lines.push(` ...options.headers,`);
|
|
60
|
+
lines.push(` },`);
|
|
61
|
+
lines.push(` cache: 'no-store',`);
|
|
62
|
+
lines.push(` })`);
|
|
63
|
+
lines.push(``);
|
|
64
|
+
lines.push(` if (!res.ok) {`);
|
|
65
|
+
lines.push(` const error = await res.json().catch(() => ({ error: 'Unknown error' }))`);
|
|
66
|
+
lines.push(` throw new Error(error.error ?? \`Request failed: \${res.status}\`)`);
|
|
67
|
+
lines.push(` }`);
|
|
68
|
+
lines.push(``);
|
|
69
|
+
lines.push(` const json = await res.json()`);
|
|
70
|
+
lines.push(` const data = json.data ?? []`);
|
|
71
|
+
lines.push(` return {`);
|
|
72
|
+
lines.push(` data,`);
|
|
73
|
+
lines.push(` total: json.total ?? data.length,`);
|
|
74
|
+
lines.push(` hasMore: json.hasMore ?? false,`);
|
|
75
|
+
lines.push(` }`);
|
|
76
|
+
lines.push(`}`);
|
|
77
|
+
lines.push(``);
|
|
78
|
+
lines.push(`// ── Environment validation ────────────────────────────────────────────────`);
|
|
79
|
+
lines.push(``);
|
|
80
|
+
lines.push(`export function validateNxfEnv() {`);
|
|
81
|
+
lines.push(` const required = ['NXF_STUDIO_URL', 'NXF_API_KEY', 'NXF_PROJECT_ID']`);
|
|
82
|
+
lines.push(` const missing = required.filter((key) => !process.env[key])`);
|
|
83
|
+
lines.push(` if (missing.length > 0) {`);
|
|
84
|
+
lines.push(` throw new Error(`);
|
|
85
|
+
lines.push(` \`Missing required environment variables: \${missing.join(', ')}\n\` +`);
|
|
86
|
+
lines.push(` 'Add these to your .env.local file.'`);
|
|
87
|
+
lines.push(` )`);
|
|
88
|
+
lines.push(` }`);
|
|
89
|
+
lines.push(`}`);
|
|
90
|
+
return {
|
|
91
|
+
path: 'lib/nxf-client.ts',
|
|
92
|
+
content: lines.join('\n'),
|
|
93
|
+
category: 'generated',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=nxf-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nxf-client.js","sourceRoot":"","sources":["../../src/templates/nxf-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-auth.d.ts","sourceRoot":"","sources":["../../src/templates/page-auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAExE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,EAAE,CAuVtE"}
|