@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 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AA6C5E,wBAAsB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAoFhF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/generator.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateNextjs = generateNextjs;
|
|
5
|
+
const generator_core_1 = require("@underpeaks/generator-core");
|
|
6
|
+
const types_1 = require("./templates/types");
|
|
7
|
+
const api_route_1 = require("./templates/api-route");
|
|
8
|
+
const api_route_id_1 = require("./templates/api-route-id");
|
|
9
|
+
const page_list_1 = require("./templates/page-list");
|
|
10
|
+
const page_detail_1 = require("./templates/page-detail");
|
|
11
|
+
const page_form_1 = require("./templates/page-form");
|
|
12
|
+
const page_auth_1 = require("./templates/page-auth");
|
|
13
|
+
const page_landing_1 = require("./templates/page-landing");
|
|
14
|
+
const page_remaining_1 = require("./templates/page-remaining");
|
|
15
|
+
const navigation_1 = require("./templates/navigation");
|
|
16
|
+
const tailwind_1 = require("./templates/tailwind");
|
|
17
|
+
const theme_1 = require("./templates/theme");
|
|
18
|
+
const nxf_client_1 = require("./templates/nxf-client");
|
|
19
|
+
const layout_1 = require("./templates/layout");
|
|
20
|
+
const app_nav_1 = require("./templates/app-nav");
|
|
21
|
+
const env_1 = require("./templates/env");
|
|
22
|
+
const readme_1 = require("./templates/readme");
|
|
23
|
+
const api_builder_1 = require("./templates/api-builder");
|
|
24
|
+
const index_1 = require("./integrations/index");
|
|
25
|
+
const storage_1 = require("./integrations/storage");
|
|
26
|
+
const validators_1 = require("./templates/validators");
|
|
27
|
+
const LANDING_TYPES = [
|
|
28
|
+
'landing-hero-cta',
|
|
29
|
+
'landing-hero-features',
|
|
30
|
+
'landing-hero-pricing',
|
|
31
|
+
'landing-minimal',
|
|
32
|
+
];
|
|
33
|
+
const REMAINING_TYPES = [
|
|
34
|
+
'dashboard', 'profile', 'blog-post', 'contact',
|
|
35
|
+
'cart', 'checkout', 'wallet', 'invoice',
|
|
36
|
+
'chat', 'messages', 'feed', 'map', 'search', 'settings',
|
|
37
|
+
'gallery', 'kanban', 'calendar',
|
|
38
|
+
'otp_request', 'otp_entry', 'custom',
|
|
39
|
+
];
|
|
40
|
+
const AUTH_TYPES = [
|
|
41
|
+
'sign_in', 'sign_up', 'forgot_password', 'reset_password',
|
|
42
|
+
];
|
|
43
|
+
const NAV_TYPES = ['top-nav', 'sidebar-nav', 'bottom-nav', 'drawer-nav'];
|
|
44
|
+
async function generateNextjs(data) {
|
|
45
|
+
const filtered = (0, generator_core_1.filterProjectData)(data);
|
|
46
|
+
const files = [];
|
|
47
|
+
// ── Generated layer (always regenerated) ──────────────────────────────────
|
|
48
|
+
files.push((0, nxf_client_1.generateNxfClient)(data.source));
|
|
49
|
+
files.push((0, layout_1.generateLayout)(filtered.pages, data.project_name));
|
|
50
|
+
// FIX: AppNav was referenced by layout.ts ('../components/AppNav') but no
|
|
51
|
+
// template ever generated it — every project with a nav page would fail
|
|
52
|
+
// to build. Only generated when at least one page actually has a nav
|
|
53
|
+
// type set, matching layout.ts's own (now-fixed) hasNav check exactly.
|
|
54
|
+
if (filtered.pages.some((p) => NAV_TYPES.includes(p.nav_type ?? ''))) {
|
|
55
|
+
files.push((0, app_nav_1.generateAppNav)(filtered.pages));
|
|
56
|
+
}
|
|
57
|
+
files.push((0, env_1.generateEnvTemplate)(data.project_id));
|
|
58
|
+
for (const model of filtered.models) {
|
|
59
|
+
files.push((0, types_1.generateTypes)(model));
|
|
60
|
+
files.push((0, api_route_1.generateApiRoute)(model, data.source));
|
|
61
|
+
files.push((0, api_route_id_1.generateApiRouteId)(model, data.source));
|
|
62
|
+
}
|
|
63
|
+
if (data.theme) {
|
|
64
|
+
files.push((0, tailwind_1.generateTailwindConfig)(data.theme));
|
|
65
|
+
files.push((0, theme_1.generateTheme)(data.theme));
|
|
66
|
+
}
|
|
67
|
+
files.push((0, navigation_1.generateNavigation)(filtered.pages, filtered.routes));
|
|
68
|
+
// API Builder codegen
|
|
69
|
+
files.push((0, api_builder_1.generateApiBuilderNextjs)(data.endpoints ?? []));
|
|
70
|
+
// Integration codegen
|
|
71
|
+
if (data.integrations && data.integrations.length > 0) {
|
|
72
|
+
files.push(...(0, index_1.generateNextjsIntegrations)(data.integrations));
|
|
73
|
+
}
|
|
74
|
+
// Hosted storage — always available on Studio
|
|
75
|
+
files.push((0, storage_1.generateStorageNextjs)({}));
|
|
76
|
+
// ── Root ───────────────────────────────────────────────────────────────────
|
|
77
|
+
files.push((0, readme_1.generateReadme)(data.project_name));
|
|
78
|
+
files.push((0, validators_1.generateValidators)());
|
|
79
|
+
// ── Presentation layer (generated once, user owns) ────────────────────────
|
|
80
|
+
for (const page of filtered.pages) {
|
|
81
|
+
const model = filtered.models.find((m) => m.sm_id === page.model_id);
|
|
82
|
+
if (AUTH_TYPES.includes(page.template_type)) {
|
|
83
|
+
files.push(...(0, page_auth_1.generateNextjsAuthPages)(page));
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (LANDING_TYPES.includes(page.template_type)) {
|
|
87
|
+
files.push((0, page_landing_1.generateLandingPage)(page));
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
switch (page.template_type) {
|
|
91
|
+
case 'list':
|
|
92
|
+
case 'grid':
|
|
93
|
+
if (model)
|
|
94
|
+
files.push((0, page_list_1.generateListPage)(page, model));
|
|
95
|
+
break;
|
|
96
|
+
case 'detail':
|
|
97
|
+
if (model)
|
|
98
|
+
files.push((0, page_detail_1.generateDetailPage)(page, model));
|
|
99
|
+
break;
|
|
100
|
+
case 'form':
|
|
101
|
+
if (model)
|
|
102
|
+
files.push((0, page_form_1.generateFormPage)(page, model));
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
if (REMAINING_TYPES.includes(page.template_type)) {
|
|
106
|
+
files.push((0, page_remaining_1.generateRemainingNextjsPage)(page, model));
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return files;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/index.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateNextjs = void 0;
|
|
5
|
+
var generator_1 = require("./generator");
|
|
6
|
+
Object.defineProperty(exports, "generateNextjs", { enumerable: true, get: function () { return generator_1.generateNextjs; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,kEAAkE;;;AAElE,yCAA4C;AAAnC,2GAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"algolia.d.ts","sourceRoot":"","sources":["../../src/integrations/algolia.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAoDnF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/integrations/algolia.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateAlgoliaNextjs = generateAlgoliaNextjs;
|
|
5
|
+
function generateAlgoliaNextjs(config) {
|
|
6
|
+
const appId = config['app_id'] ?? 'YOUR_APP_ID';
|
|
7
|
+
const searchKey = config['search_api_key'] ?? 'YOUR_SEARCH_KEY';
|
|
8
|
+
const adminKey = config['admin_api_key'] ?? 'YOUR_ADMIN_KEY';
|
|
9
|
+
const lines = [];
|
|
10
|
+
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
11
|
+
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
12
|
+
lines.push(`// Integration: Algolia`);
|
|
13
|
+
lines.push(``);
|
|
14
|
+
lines.push(`// ── Setup instructions ────────────────────────────────────────────────────`);
|
|
15
|
+
lines.push(`// 1. npm install algoliasearch`);
|
|
16
|
+
lines.push(``);
|
|
17
|
+
lines.push(`import algoliasearch from 'algoliasearch'`);
|
|
18
|
+
lines.push(``);
|
|
19
|
+
lines.push(`// Client-side search (uses search-only key)`);
|
|
20
|
+
lines.push(`export const searchClient = algoliasearch('${appId}', '${searchKey}')`);
|
|
21
|
+
lines.push(``);
|
|
22
|
+
lines.push(`// Server-side admin client (uses admin key — only in API routes)`);
|
|
23
|
+
lines.push(`export const adminClient = algoliasearch('${appId}', process.env.ALGOLIA_ADMIN_KEY ?? '${adminKey}')`);
|
|
24
|
+
lines.push(``);
|
|
25
|
+
lines.push(`export async function search<T>(`);
|
|
26
|
+
lines.push(` indexName: string,`);
|
|
27
|
+
lines.push(` query: string,`);
|
|
28
|
+
lines.push(` options?: { hitsPerPage?: number; page?: number },`);
|
|
29
|
+
lines.push(`): Promise<T[]> {`);
|
|
30
|
+
lines.push(` const index = searchClient.initIndex(indexName)`);
|
|
31
|
+
lines.push(` const results = await index.search<T>(query, {`);
|
|
32
|
+
lines.push(` hitsPerPage: options?.hitsPerPage ?? 20,`);
|
|
33
|
+
lines.push(` page: options?.page ?? 0,`);
|
|
34
|
+
lines.push(` })`);
|
|
35
|
+
lines.push(` return results.hits`);
|
|
36
|
+
lines.push(`}`);
|
|
37
|
+
lines.push(``);
|
|
38
|
+
lines.push(`export async function indexRecord(`);
|
|
39
|
+
lines.push(` indexName: string,`);
|
|
40
|
+
lines.push(` record: Record<string, unknown> & { objectID: string },`);
|
|
41
|
+
lines.push(`) {`);
|
|
42
|
+
lines.push(` const index = adminClient.initIndex(indexName)`);
|
|
43
|
+
lines.push(` return index.saveObject(record)`);
|
|
44
|
+
lines.push(`}`);
|
|
45
|
+
lines.push(``);
|
|
46
|
+
lines.push(`export async function deleteRecord(indexName: string, objectID: string) {`);
|
|
47
|
+
lines.push(` const index = adminClient.initIndex(indexName)`);
|
|
48
|
+
lines.push(` return index.deleteObject(objectID)`);
|
|
49
|
+
lines.push(`}`);
|
|
50
|
+
return {
|
|
51
|
+
path: 'lib/generated/integrations/algolia.ts',
|
|
52
|
+
content: lines.join('\n'),
|
|
53
|
+
category: 'generated',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=algolia.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"algolia.js","sourceRoot":"","sources":["../../src/integrations/algolia.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/integrations/anthropic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAkDrF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/integrations/anthropic.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateAnthropicNextjs = generateAnthropicNextjs;
|
|
5
|
+
function generateAnthropicNextjs(config) {
|
|
6
|
+
const lines = [];
|
|
7
|
+
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
8
|
+
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
9
|
+
lines.push(`// Integration: Anthropic Claude`);
|
|
10
|
+
lines.push(``);
|
|
11
|
+
lines.push(`// ── Setup instructions ────────────────────────────────────────────────────`);
|
|
12
|
+
lines.push(`// 1. npm install @anthropic-ai/sdk`);
|
|
13
|
+
lines.push(`// 2. Add ANTHROPIC_API_KEY to .env.local`);
|
|
14
|
+
lines.push(`// 3. Only use in Server Components or API routes`);
|
|
15
|
+
lines.push(``);
|
|
16
|
+
lines.push(`import Anthropic from '@anthropic-ai/sdk'`);
|
|
17
|
+
lines.push(``);
|
|
18
|
+
lines.push(`let client: Anthropic | null = null`);
|
|
19
|
+
lines.push(``);
|
|
20
|
+
lines.push(`export function getAnthropicClient(): Anthropic {`);
|
|
21
|
+
lines.push(` if (!client) {`);
|
|
22
|
+
lines.push(` client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY })`);
|
|
23
|
+
lines.push(` }`);
|
|
24
|
+
lines.push(` return client`);
|
|
25
|
+
lines.push(`}`);
|
|
26
|
+
lines.push(``);
|
|
27
|
+
lines.push(`export async function complete({`);
|
|
28
|
+
lines.push(` prompt,`);
|
|
29
|
+
lines.push(` model = 'claude-3-5-haiku-20241022',`);
|
|
30
|
+
lines.push(` maxTokens = 1000,`);
|
|
31
|
+
lines.push(` systemPrompt,`);
|
|
32
|
+
lines.push(`}: {`);
|
|
33
|
+
lines.push(` prompt: string`);
|
|
34
|
+
lines.push(` model?: string`);
|
|
35
|
+
lines.push(` maxTokens?: number`);
|
|
36
|
+
lines.push(` systemPrompt?: string`);
|
|
37
|
+
lines.push(`}): Promise<string> {`);
|
|
38
|
+
lines.push(` const anthropic = getAnthropicClient()`);
|
|
39
|
+
lines.push(` const response = await anthropic.messages.create({`);
|
|
40
|
+
lines.push(` model,`);
|
|
41
|
+
lines.push(` max_tokens: maxTokens,`);
|
|
42
|
+
lines.push(` system: systemPrompt,`);
|
|
43
|
+
lines.push(` messages: [{ role: 'user', content: prompt }],`);
|
|
44
|
+
lines.push(` })`);
|
|
45
|
+
lines.push(` const block = response.content[0]`);
|
|
46
|
+
lines.push(` return block.type === 'text' ? block.text : ''`);
|
|
47
|
+
lines.push(`}`);
|
|
48
|
+
return {
|
|
49
|
+
path: 'lib/generated/integrations/anthropic.ts',
|
|
50
|
+
content: lines.join('\n'),
|
|
51
|
+
category: 'generated',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=anthropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/integrations/anthropic.ts"],"names":[],"mappings":";AAAA,mFAAmF;;AAInF,0DAkDC;AAlDD,SAAgB,uBAAuB,CAAC,MAA8B;IACpE,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,kCAAkC,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;IAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;IAC/D,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC9B,KAAK,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAA;IACnF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvB,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;IAC3D,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IACpC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACnC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IACnE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACxB,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACxC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAC3C,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IAClE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClB,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEf,OAAO;QACL,IAAI,EAAM,yCAAyC;QACnD,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,WAAW;KACtB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-s3.d.ts","sourceRoot":"","sources":["../../src/integrations/aws-s3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAuDjF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/integrations/aws-s3.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateAwsS3Nextjs = generateAwsS3Nextjs;
|
|
5
|
+
function generateAwsS3Nextjs(config) {
|
|
6
|
+
const bucket = config['bucket'] ?? 'YOUR_BUCKET';
|
|
7
|
+
const region = config['region'] ?? 'us-east-1';
|
|
8
|
+
const lines = [];
|
|
9
|
+
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
10
|
+
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
11
|
+
lines.push(`// Integration: AWS S3`);
|
|
12
|
+
lines.push(``);
|
|
13
|
+
lines.push(`// ── Setup instructions ────────────────────────────────────────────────────`);
|
|
14
|
+
lines.push(`// 1. npm install @aws-sdk/client-s3 @aws-sdk/s3-request-presigner`);
|
|
15
|
+
lines.push(`// 2. Add AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY to .env.local`);
|
|
16
|
+
lines.push(`// 3. Only use in API routes or Server Actions`);
|
|
17
|
+
lines.push(``);
|
|
18
|
+
lines.push(`import { S3Client, PutObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3'`);
|
|
19
|
+
lines.push(`import { getSignedUrl } from '@aws-sdk/s3-request-presigner'`);
|
|
20
|
+
lines.push(``);
|
|
21
|
+
lines.push(`export const BUCKET = '${bucket}'`);
|
|
22
|
+
lines.push(`export const REGION = '${region}'`);
|
|
23
|
+
lines.push(``);
|
|
24
|
+
lines.push(`export function getS3Client() {`);
|
|
25
|
+
lines.push(` return new S3Client({`);
|
|
26
|
+
lines.push(` region: REGION,`);
|
|
27
|
+
lines.push(` credentials: {`);
|
|
28
|
+
lines.push(` accessKeyId: process.env.AWS_ACCESS_KEY_ID ?? '',`);
|
|
29
|
+
lines.push(` secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY ?? '',`);
|
|
30
|
+
lines.push(` },`);
|
|
31
|
+
lines.push(` })`);
|
|
32
|
+
lines.push(`}`);
|
|
33
|
+
lines.push(``);
|
|
34
|
+
lines.push(`export async function getPresignedUploadUrl(`);
|
|
35
|
+
lines.push(` key: string,`);
|
|
36
|
+
lines.push(` contentType: string,`);
|
|
37
|
+
lines.push(` expiresIn = 3600,`);
|
|
38
|
+
lines.push(`) {`);
|
|
39
|
+
lines.push(` const client = getS3Client()`);
|
|
40
|
+
lines.push(` const command = new PutObjectCommand({ Bucket: BUCKET, Key: key, ContentType: contentType })`);
|
|
41
|
+
lines.push(` return getSignedUrl(client, command, { expiresIn })`);
|
|
42
|
+
lines.push(`}`);
|
|
43
|
+
lines.push(``);
|
|
44
|
+
lines.push(`export async function deleteFile(key: string) {`);
|
|
45
|
+
lines.push(` const client = getS3Client()`);
|
|
46
|
+
lines.push(` const command = new DeleteObjectCommand({ Bucket: BUCKET, Key: key })`);
|
|
47
|
+
lines.push(` return client.send(command)`);
|
|
48
|
+
lines.push(`}`);
|
|
49
|
+
lines.push(``);
|
|
50
|
+
lines.push(`export function getPublicUrl(key: string) {`);
|
|
51
|
+
lines.push(` return \`https://\${BUCKET}.s3.\${REGION}.amazonaws.com/\${key}\``);
|
|
52
|
+
lines.push(`}`);
|
|
53
|
+
return {
|
|
54
|
+
path: 'lib/generated/integrations/aws-s3.ts',
|
|
55
|
+
content: lines.join('\n'),
|
|
56
|
+
category: 'generated',
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=aws-s3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-s3.js","sourceRoot":"","sources":["../../src/integrations/aws-s3.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clerk.d.ts","sourceRoot":"","sources":["../../src/integrations/clerk.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CA8BjF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/integrations/clerk.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateClerkNextjs = generateClerkNextjs;
|
|
5
|
+
function generateClerkNextjs(config) {
|
|
6
|
+
const lines = [];
|
|
7
|
+
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
8
|
+
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
9
|
+
lines.push(`// Integration: Clerk`);
|
|
10
|
+
lines.push(``);
|
|
11
|
+
lines.push(`// ── Setup instructions ────────────────────────────────────────────────────`);
|
|
12
|
+
lines.push(`// 1. npm install @clerk/nextjs`);
|
|
13
|
+
lines.push(`// 2. Add NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY to .env.local`);
|
|
14
|
+
lines.push(`// 3. Wrap your app in <ClerkProvider> in layout.tsx`);
|
|
15
|
+
lines.push(`// 4. Add middleware.ts with clerkMiddleware()`);
|
|
16
|
+
lines.push(``);
|
|
17
|
+
lines.push(`// ── Client-side exports ───────────────────────────────────────────────────`);
|
|
18
|
+
lines.push(`export { ClerkProvider, useUser, useAuth, SignInButton, SignUpButton, UserButton } from '@clerk/nextjs'`);
|
|
19
|
+
lines.push(``);
|
|
20
|
+
lines.push(`// ── Server-side exports ───────────────────────────────────────────────────`);
|
|
21
|
+
lines.push(`export { auth, currentUser } from '@clerk/nextjs/server'`);
|
|
22
|
+
lines.push(``);
|
|
23
|
+
lines.push(`// ── Middleware helper ─────────────────────────────────────────────────────`);
|
|
24
|
+
lines.push(`// Use in middleware.ts:`);
|
|
25
|
+
lines.push(`// import { clerkMiddleware } from '@clerk/nextjs/server'`);
|
|
26
|
+
lines.push(`// export default clerkMiddleware()`);
|
|
27
|
+
lines.push(`// export const config = { matcher: ['/((?!.*\\..*|_next).*)', '/', '/(api|trpc)(.*)'] }`);
|
|
28
|
+
return {
|
|
29
|
+
path: 'lib/generated/integrations/clerk.ts',
|
|
30
|
+
content: lines.join('\n'),
|
|
31
|
+
category: 'generated',
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=clerk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clerk.js","sourceRoot":"","sources":["../../src/integrations/clerk.ts"],"names":[],"mappings":";AAAA,+EAA+E;;AAI/E,kDA8BC;AA9BD,SAAgB,mBAAmB,CAAC,MAA8B;IAChE,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,uBAAuB,CAAC,CAAA;IACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;IAC7C,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAA;IAC5F,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IAClE,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,yGAAyG,CAAC,CAAA;IACrH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IACtC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;IACvE,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAA;IAEtG,OAAO;QACL,IAAI,EAAM,qCAAqC;QAC/C,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,WAAW;KACtB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudinary.d.ts","sourceRoot":"","sources":["../../src/integrations/cloudinary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAqDtF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/integrations/cloudinary.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateCloudinaryNextjs = generateCloudinaryNextjs;
|
|
5
|
+
function generateCloudinaryNextjs(config) {
|
|
6
|
+
const cloudName = config['cloud_name'] ?? 'YOUR_CLOUD_NAME';
|
|
7
|
+
const lines = [];
|
|
8
|
+
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
9
|
+
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
10
|
+
lines.push(`// Integration: Cloudinary`);
|
|
11
|
+
lines.push(``);
|
|
12
|
+
lines.push(`// ── Setup instructions ────────────────────────────────────────────────────`);
|
|
13
|
+
lines.push(`// 1. npm install cloudinary next-cloudinary`);
|
|
14
|
+
lines.push(`// 2. Add NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME and CLOUDINARY_API_KEY/SECRET to .env.local`);
|
|
15
|
+
lines.push(``);
|
|
16
|
+
lines.push(`import { v2 as cloudinary } from 'cloudinary'`);
|
|
17
|
+
lines.push(``);
|
|
18
|
+
lines.push(`export const CLOUD_NAME = '${cloudName}'`);
|
|
19
|
+
lines.push(``);
|
|
20
|
+
lines.push(`export function initCloudinary() {`);
|
|
21
|
+
lines.push(` cloudinary.config({`);
|
|
22
|
+
lines.push(` cloud_name: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME ?? '${cloudName}',`);
|
|
23
|
+
lines.push(` api_key: process.env.CLOUDINARY_API_KEY,`);
|
|
24
|
+
lines.push(` api_secret: process.env.CLOUDINARY_API_SECRET,`);
|
|
25
|
+
lines.push(` })`);
|
|
26
|
+
lines.push(`}`);
|
|
27
|
+
lines.push(``);
|
|
28
|
+
lines.push(`export async function uploadImage(`);
|
|
29
|
+
lines.push(` filePath: string,`);
|
|
30
|
+
lines.push(` options?: { folder?: string; publicId?: string },`);
|
|
31
|
+
lines.push(`) {`);
|
|
32
|
+
lines.push(` initCloudinary()`);
|
|
33
|
+
lines.push(` return cloudinary.uploader.upload(filePath, {`);
|
|
34
|
+
lines.push(` folder: options?.folder,`);
|
|
35
|
+
lines.push(` public_id: options?.publicId,`);
|
|
36
|
+
lines.push(` overwrite: true,`);
|
|
37
|
+
lines.push(` })`);
|
|
38
|
+
lines.push(`}`);
|
|
39
|
+
lines.push(``);
|
|
40
|
+
lines.push(`export function getOptimizedUrl(`);
|
|
41
|
+
lines.push(` publicId: string,`);
|
|
42
|
+
lines.push(` options?: { width?: number; height?: number },`);
|
|
43
|
+
lines.push(`) {`);
|
|
44
|
+
lines.push(` const transforms = [`);
|
|
45
|
+
lines.push(` options?.width ? \`w_\${options.width}\` : null,`);
|
|
46
|
+
lines.push(` options?.height ? \`h_\${options.height}\` : null,`);
|
|
47
|
+
lines.push(` 'c_fill', 'f_auto', 'q_auto',`);
|
|
48
|
+
lines.push(` ].filter(Boolean).join(',')`);
|
|
49
|
+
lines.push(` return \`https://res.cloudinary.com/${cloudName}/image/upload/\${transforms}/\${publicId}\``);
|
|
50
|
+
lines.push(`}`);
|
|
51
|
+
return {
|
|
52
|
+
path: 'lib/generated/integrations/cloudinary.ts',
|
|
53
|
+
content: lines.join('\n'),
|
|
54
|
+
category: 'generated',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=cloudinary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudinary.js","sourceRoot":"","sources":["../../src/integrations/cloudinary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crisp.d.ts","sourceRoot":"","sources":["../../src/integrations/crisp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAiDjF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/generator-nextjs/src/integrations/crisp.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.generateCrispNextjs = generateCrispNextjs;
|
|
5
|
+
function generateCrispNextjs(config) {
|
|
6
|
+
const websiteId = config['website_id'] ?? 'YOUR_CRISP_WEBSITE_ID';
|
|
7
|
+
const lines = [];
|
|
8
|
+
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
9
|
+
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
10
|
+
lines.push(`// Integration: Crisp`);
|
|
11
|
+
lines.push(``);
|
|
12
|
+
lines.push(`// ── Setup instructions ────────────────────────────────────────────────────`);
|
|
13
|
+
lines.push(`// Add this component to your layout.tsx to enable Crisp chat`);
|
|
14
|
+
lines.push(``);
|
|
15
|
+
lines.push(`'use client'`);
|
|
16
|
+
lines.push(``);
|
|
17
|
+
lines.push(`import { useEffect } from 'react'`);
|
|
18
|
+
lines.push(``);
|
|
19
|
+
lines.push(`declare global {`);
|
|
20
|
+
lines.push(` interface Window {`);
|
|
21
|
+
lines.push(` $crisp: unknown[]`);
|
|
22
|
+
lines.push(` CRISP_WEBSITE_ID: string`);
|
|
23
|
+
lines.push(` }`);
|
|
24
|
+
lines.push(`}`);
|
|
25
|
+
lines.push(``);
|
|
26
|
+
lines.push(`export const CRISP_WEBSITE_ID = '${websiteId}'`);
|
|
27
|
+
lines.push(``);
|
|
28
|
+
lines.push(`export default function CrispChat() {`);
|
|
29
|
+
lines.push(` useEffect(() => {`);
|
|
30
|
+
lines.push(` window.$crisp = []`);
|
|
31
|
+
lines.push(` window.CRISP_WEBSITE_ID = CRISP_WEBSITE_ID`);
|
|
32
|
+
lines.push(` const script = document.createElement('script')`);
|
|
33
|
+
lines.push(` script.src = 'https://client.crisp.chat/l.js'`);
|
|
34
|
+
lines.push(` script.async = true`);
|
|
35
|
+
lines.push(` document.head.appendChild(script)`);
|
|
36
|
+
lines.push(` return () => { document.head.removeChild(script) }`);
|
|
37
|
+
lines.push(` }, [])`);
|
|
38
|
+
lines.push(` return null`);
|
|
39
|
+
lines.push(`}`);
|
|
40
|
+
lines.push(``);
|
|
41
|
+
lines.push(`// ── Helper to identify user ───────────────────────────────────────────────`);
|
|
42
|
+
lines.push(`export function setCrispUser(email: string, name?: string) {`);
|
|
43
|
+
lines.push(` if (typeof window === 'undefined' || !window.$crisp) return`);
|
|
44
|
+
lines.push(` ;(window.$crisp as unknown[]).push(['set', 'user:email', [email]])`);
|
|
45
|
+
lines.push(` if (name) (window.$crisp as unknown[]).push(['set', 'user:nickname', [name]])`);
|
|
46
|
+
lines.push(`}`);
|
|
47
|
+
return {
|
|
48
|
+
path: 'lib/generated/integrations/crisp.ts',
|
|
49
|
+
content: lines.join('\n'),
|
|
50
|
+
category: 'generated',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=crisp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crisp.js","sourceRoot":"","sources":["../../src/integrations/crisp.ts"],"names":[],"mappings":";AAAA,+EAA+E;;AAI/E,kDAiDC;AAjDD,SAAgB,mBAAmB,CAAC,MAA8B;IAChE,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,uBAAuB,CAAA;IACjE,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,uBAAuB,CAAC,CAAA;IACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC9B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAClC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,oCAAoC,SAAS,GAAG,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACnD,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACjC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;IAC5E,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;IAC5E,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IAChD,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACnD,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACpE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;IAC1E,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;IAClF,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;IAC7F,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEf,OAAO;QACL,IAAI,EAAM,qCAAqC;QAC/C,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,WAAW;KACtB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.d.ts","sourceRoot":"","sources":["../../src/integrations/firebase.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAgDpF"}
|