@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.
Files changed (185) hide show
  1. package/dist/generator.d.ts +3 -0
  2. package/dist/generator.d.ts.map +1 -0
  3. package/dist/generator.js +113 -0
  4. package/dist/generator.js.map +1 -0
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +7 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/integrations/algolia.d.ts +3 -0
  10. package/dist/integrations/algolia.d.ts.map +1 -0
  11. package/dist/integrations/algolia.js +56 -0
  12. package/dist/integrations/algolia.js.map +1 -0
  13. package/dist/integrations/anthropic.d.ts +3 -0
  14. package/dist/integrations/anthropic.d.ts.map +1 -0
  15. package/dist/integrations/anthropic.js +54 -0
  16. package/dist/integrations/anthropic.js.map +1 -0
  17. package/dist/integrations/aws-s3.d.ts +3 -0
  18. package/dist/integrations/aws-s3.d.ts.map +1 -0
  19. package/dist/integrations/aws-s3.js +59 -0
  20. package/dist/integrations/aws-s3.js.map +1 -0
  21. package/dist/integrations/clerk.d.ts +3 -0
  22. package/dist/integrations/clerk.d.ts.map +1 -0
  23. package/dist/integrations/clerk.js +34 -0
  24. package/dist/integrations/clerk.js.map +1 -0
  25. package/dist/integrations/cloudinary.d.ts +3 -0
  26. package/dist/integrations/cloudinary.d.ts.map +1 -0
  27. package/dist/integrations/cloudinary.js +57 -0
  28. package/dist/integrations/cloudinary.js.map +1 -0
  29. package/dist/integrations/crisp.d.ts +3 -0
  30. package/dist/integrations/crisp.d.ts.map +1 -0
  31. package/dist/integrations/crisp.js +53 -0
  32. package/dist/integrations/crisp.js.map +1 -0
  33. package/dist/integrations/firebase.d.ts +3 -0
  34. package/dist/integrations/firebase.d.ts.map +1 -0
  35. package/dist/integrations/firebase.js +53 -0
  36. package/dist/integrations/firebase.js.map +1 -0
  37. package/dist/integrations/flutterwave.d.ts +3 -0
  38. package/dist/integrations/flutterwave.d.ts.map +1 -0
  39. package/dist/integrations/flutterwave.js +53 -0
  40. package/dist/integrations/flutterwave.js.map +1 -0
  41. package/dist/integrations/gemini.d.ts +3 -0
  42. package/dist/integrations/gemini.d.ts.map +1 -0
  43. package/dist/integrations/gemini.js +40 -0
  44. package/dist/integrations/gemini.js.map +1 -0
  45. package/dist/integrations/github.d.ts +3 -0
  46. package/dist/integrations/github.d.ts.map +1 -0
  47. package/dist/integrations/github.js +53 -0
  48. package/dist/integrations/github.js.map +1 -0
  49. package/dist/integrations/hubspot.d.ts +3 -0
  50. package/dist/integrations/hubspot.d.ts.map +1 -0
  51. package/dist/integrations/hubspot.js +54 -0
  52. package/dist/integrations/hubspot.js.map +1 -0
  53. package/dist/integrations/index.d.ts +3 -0
  54. package/dist/integrations/index.d.ts.map +1 -0
  55. package/dist/integrations/index.js +63 -0
  56. package/dist/integrations/index.js.map +1 -0
  57. package/dist/integrations/lemonsqueezy.d.ts +3 -0
  58. package/dist/integrations/lemonsqueezy.d.ts.map +1 -0
  59. package/dist/integrations/lemonsqueezy.js +43 -0
  60. package/dist/integrations/lemonsqueezy.js.map +1 -0
  61. package/dist/integrations/mailchimp.d.ts +3 -0
  62. package/dist/integrations/mailchimp.d.ts.map +1 -0
  63. package/dist/integrations/mailchimp.js +52 -0
  64. package/dist/integrations/mailchimp.js.map +1 -0
  65. package/dist/integrations/openai.d.ts +3 -0
  66. package/dist/integrations/openai.d.ts.map +1 -0
  67. package/dist/integrations/openai.js +78 -0
  68. package/dist/integrations/openai.js.map +1 -0
  69. package/dist/integrations/payfast.d.ts +3 -0
  70. package/dist/integrations/payfast.d.ts.map +1 -0
  71. package/dist/integrations/payfast.js +94 -0
  72. package/dist/integrations/payfast.js.map +1 -0
  73. package/dist/integrations/pusher.d.ts +3 -0
  74. package/dist/integrations/pusher.d.ts.map +1 -0
  75. package/dist/integrations/pusher.js +86 -0
  76. package/dist/integrations/pusher.js.map +1 -0
  77. package/dist/integrations/resend.d.ts +3 -0
  78. package/dist/integrations/resend.d.ts.map +1 -0
  79. package/dist/integrations/resend.js +45 -0
  80. package/dist/integrations/resend.js.map +1 -0
  81. package/dist/integrations/sendgrid.d.ts +3 -0
  82. package/dist/integrations/sendgrid.d.ts.map +1 -0
  83. package/dist/integrations/sendgrid.js +42 -0
  84. package/dist/integrations/sendgrid.js.map +1 -0
  85. package/dist/integrations/sentry.d.ts +3 -0
  86. package/dist/integrations/sentry.d.ts.map +1 -0
  87. package/dist/integrations/sentry.js +49 -0
  88. package/dist/integrations/sentry.js.map +1 -0
  89. package/dist/integrations/slack.d.ts +3 -0
  90. package/dist/integrations/slack.d.ts.map +1 -0
  91. package/dist/integrations/slack.js +54 -0
  92. package/dist/integrations/slack.js.map +1 -0
  93. package/dist/integrations/storage.d.ts +3 -0
  94. package/dist/integrations/storage.d.ts.map +1 -0
  95. package/dist/integrations/storage.js +71 -0
  96. package/dist/integrations/storage.js.map +1 -0
  97. package/dist/integrations/stripe.d.ts +3 -0
  98. package/dist/integrations/stripe.d.ts.map +1 -0
  99. package/dist/integrations/stripe.js +65 -0
  100. package/dist/integrations/stripe.js.map +1 -0
  101. package/dist/integrations/twilio.d.ts +3 -0
  102. package/dist/integrations/twilio.d.ts.map +1 -0
  103. package/dist/integrations/twilio.js +45 -0
  104. package/dist/integrations/twilio.js.map +1 -0
  105. package/dist/integrations/uploadthing.d.ts +3 -0
  106. package/dist/integrations/uploadthing.d.ts.map +1 -0
  107. package/dist/integrations/uploadthing.js +41 -0
  108. package/dist/integrations/uploadthing.js.map +1 -0
  109. package/dist/templates/api-builder.d.ts +12 -0
  110. package/dist/templates/api-builder.d.ts.map +1 -0
  111. package/dist/templates/api-builder.js +76 -0
  112. package/dist/templates/api-builder.js.map +1 -0
  113. package/dist/templates/api-route-id.d.ts +3 -0
  114. package/dist/templates/api-route-id.d.ts.map +1 -0
  115. package/dist/templates/api-route-id.js +137 -0
  116. package/dist/templates/api-route-id.js.map +1 -0
  117. package/dist/templates/api-route.d.ts +3 -0
  118. package/dist/templates/api-route.d.ts.map +1 -0
  119. package/dist/templates/api-route.js +85 -0
  120. package/dist/templates/api-route.js.map +1 -0
  121. package/dist/templates/app-nav.d.ts +23 -0
  122. package/dist/templates/app-nav.d.ts.map +1 -0
  123. package/dist/templates/app-nav.js +132 -0
  124. package/dist/templates/app-nav.js.map +1 -0
  125. package/dist/templates/env.d.ts +3 -0
  126. package/dist/templates/env.d.ts.map +1 -0
  127. package/dist/templates/env.js +39 -0
  128. package/dist/templates/env.js.map +1 -0
  129. package/dist/templates/layout.d.ts +3 -0
  130. package/dist/templates/layout.d.ts.map +1 -0
  131. package/dist/templates/layout.js +50 -0
  132. package/dist/templates/layout.js.map +1 -0
  133. package/dist/templates/navigation.d.ts +3 -0
  134. package/dist/templates/navigation.d.ts.map +1 -0
  135. package/dist/templates/navigation.js +129 -0
  136. package/dist/templates/navigation.js.map +1 -0
  137. package/dist/templates/nxf-client.d.ts +3 -0
  138. package/dist/templates/nxf-client.d.ts.map +1 -0
  139. package/dist/templates/nxf-client.js +96 -0
  140. package/dist/templates/nxf-client.js.map +1 -0
  141. package/dist/templates/page-auth.d.ts +3 -0
  142. package/dist/templates/page-auth.d.ts.map +1 -0
  143. package/dist/templates/page-auth.js +344 -0
  144. package/dist/templates/page-auth.js.map +1 -0
  145. package/dist/templates/page-detail.d.ts +3 -0
  146. package/dist/templates/page-detail.d.ts.map +1 -0
  147. package/dist/templates/page-detail.js +86 -0
  148. package/dist/templates/page-detail.js.map +1 -0
  149. package/dist/templates/page-form.d.ts +3 -0
  150. package/dist/templates/page-form.d.ts.map +1 -0
  151. package/dist/templates/page-form.js +159 -0
  152. package/dist/templates/page-form.js.map +1 -0
  153. package/dist/templates/page-landing.d.ts +3 -0
  154. package/dist/templates/page-landing.d.ts.map +1 -0
  155. package/dist/templates/page-landing.js +140 -0
  156. package/dist/templates/page-landing.js.map +1 -0
  157. package/dist/templates/page-list.d.ts +3 -0
  158. package/dist/templates/page-list.d.ts.map +1 -0
  159. package/dist/templates/page-list.js +130 -0
  160. package/dist/templates/page-list.js.map +1 -0
  161. package/dist/templates/page-remaining.d.ts +3 -0
  162. package/dist/templates/page-remaining.d.ts.map +1 -0
  163. package/dist/templates/page-remaining.js +870 -0
  164. package/dist/templates/page-remaining.js.map +1 -0
  165. package/dist/templates/readme.d.ts +3 -0
  166. package/dist/templates/readme.d.ts.map +1 -0
  167. package/dist/templates/readme.js +87 -0
  168. package/dist/templates/readme.js.map +1 -0
  169. package/dist/templates/tailwind.d.ts +3 -0
  170. package/dist/templates/tailwind.d.ts.map +1 -0
  171. package/dist/templates/tailwind.js +63 -0
  172. package/dist/templates/tailwind.js.map +1 -0
  173. package/dist/templates/theme.d.ts +3 -0
  174. package/dist/templates/theme.d.ts.map +1 -0
  175. package/dist/templates/theme.js +49 -0
  176. package/dist/templates/theme.js.map +1 -0
  177. package/dist/templates/types.d.ts +3 -0
  178. package/dist/templates/types.d.ts.map +1 -0
  179. package/dist/templates/types.js +74 -0
  180. package/dist/templates/types.js.map +1 -0
  181. package/dist/templates/validators.d.ts +3 -0
  182. package/dist/templates/validators.d.ts.map +1 -0
  183. package/dist/templates/validators.js +37 -0
  184. package/dist/templates/validators.js.map +1 -0
  185. package/package.json +24 -0
@@ -0,0 +1,3 @@
1
+ import type { ProjectData, GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateNextjs(data: ProjectData): Promise<GeneratedFile[]>;
3
+ //# sourceMappingURL=generator.d.ts.map
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ export { generateNextjs } from './generator';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateAlgoliaNextjs(config: Record<string, string>): GeneratedFile;
3
+ //# sourceMappingURL=algolia.d.ts.map
@@ -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,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateAnthropicNextjs(config: Record<string, string>): GeneratedFile;
3
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -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,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateAwsS3Nextjs(config: Record<string, string>): GeneratedFile;
3
+ //# sourceMappingURL=aws-s3.d.ts.map
@@ -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,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateClerkNextjs(config: Record<string, string>): GeneratedFile;
3
+ //# sourceMappingURL=clerk.d.ts.map
@@ -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,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateCloudinaryNextjs(config: Record<string, string>): GeneratedFile;
3
+ //# sourceMappingURL=cloudinary.d.ts.map
@@ -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,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateCrispNextjs(config: Record<string, string>): GeneratedFile;
3
+ //# sourceMappingURL=crisp.d.ts.map
@@ -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,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateFirebaseNextjs(config: Record<string, string>): GeneratedFile;
3
+ //# sourceMappingURL=firebase.d.ts.map
@@ -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"}