fastr-mcp-suite 1.1.0 → 1.3.0

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 (23) hide show
  1. package/README.md +107 -105
  2. package/dist/cards/fluentcart/tools.d.ts.map +1 -1
  3. package/dist/cards/fluentcart/tools.js +201 -0
  4. package/dist/cards/fluentcart/tools.js.map +1 -1
  5. package/dist/server.js +3 -1
  6. package/dist/server.js.map +1 -1
  7. package/dist/skills/fastr-mcp-suite/SKILL.md +301 -0
  8. package/dist/skills/fluentcart-developer/SKILL.md +242 -6
  9. package/dist/skills/fluentcart-developer/examples/README.md +5 -0
  10. package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/README.md +22 -0
  11. package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/sample-plugin-with-licensing-sdk.php +79 -0
  12. package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/updater/FluentLicensing.php +303 -0
  13. package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/updater/LicenseSettings.php +566 -0
  14. package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/updater/PluginUpdater.php +304 -0
  15. package/dist/skills/fluentcart-developer/references/customer-dashboard-endpoints.md +169 -0
  16. package/dist/skills/fluentcart-developer/references/order-bump-module.md +163 -0
  17. package/dist/skills/fluentcart-developer/references/rest-api-licensing.md +3 -0
  18. package/dist/skills/fluentcart-developer/references/shipping-module-guide.md +126 -0
  19. package/dist/skills/fluentcart-developer/references/software-licensing-sdk.md +228 -0
  20. package/dist/skills/fluentcart-developer/references/storage-drivers-module.md +140 -0
  21. package/dist/version.d.ts +1 -1
  22. package/dist/version.js +1 -1
  23. package/package.json +67 -67
package/README.md CHANGED
@@ -1,105 +1,107 @@
1
- # Fastr MCP Suite
2
-
3
- One MCP server that ships the Playing Cards — **FluentCart Developer Agent** and **Lemon Squeezy Developer Agent** — as executable tools plus a skills catalog, so an agent pulls only the slice of documentation it needs instead of loading 239 KB of markdown into the context window.
4
-
5
- **Free and MIT-licensed.** All ten tools are registered for every caller on every transport: no licence key, no account, no subscription, no request quota. Nothing in this server validates a purchase, because there is nothing to purchase.
6
-
7
- Protocol: MCP `2026-07-28` (stateless, per-request `_meta` envelope) with a `2025-11-25` legacy fallback. Transports: `stdio` for local clients, Streamable HTTP for marketplaces and hosted deploys.
8
-
9
- ## Run it
10
-
11
- ### From npm
12
-
13
- Published as [`fastr-mcp-suite`](https://www.npmjs.com/package/fastr-mcp-suite) — Node 22+, no clone and no build:
14
-
15
- ```bash
16
- npx -y fastr-mcp-suite
17
- ```
18
-
19
- Client config (Claude Code / Cursor / Windsurf):
20
-
21
- ```json
22
- {
23
- "mcpServers": {
24
- "fastr-suite": {
25
- "command": "npx",
26
- "args": ["-y", "fastr-mcp-suite"]
27
- }
28
- }
29
- }
30
- ```
31
-
32
- ```bash
33
- claude mcp add fastr-suite -- npx -y fastr-mcp-suite
34
- ```
35
-
36
- The npm package ships the stdio entry point only. The Streamable HTTP transport needs the source tree or the Docker image.
37
-
38
- ### From source
39
-
40
- ```bash
41
- npm install
42
- npm run build # tsc + bundles both skill folders into dist/skills
43
- npm run verify # boots the built server and asserts the protocol surface
44
- node dist/index.js # stdio
45
- node dist/http.js # Streamable HTTP on :8080 (POST /mcp, GET /health)
46
- ```
47
-
48
- Point a client at the built file:
49
-
50
- ```json
51
- {
52
- "mcpServers": {
53
- "fastr-suite": {
54
- "command": "node",
55
- "args": ["/absolute/path/to/server/dist/index.js"]
56
- }
57
- }
58
- }
59
- ```
60
-
61
- ## Tools
62
-
63
- Ten tools, all free. `suite_get_info` reports the same list at runtime, scoped by card.
64
-
65
- | Card | Tool | Answers |
66
- | --- | --- | --- |
67
- | FluentCart | `fc_search_hooks` | A hook name, when it fires, its arguments |
68
- | FluentCart | `fc_get_db_schema` | A `wp_fct_*` table, its columns, the Eloquent model |
69
- | FluentCart | `fc_get_reference` | Any of the 49 reference files, whole or by heading |
70
- | FluentCart | `fc_generate_payment_gateway_boilerplate` | A complete PHP gateway class, settings schema and webhook entry point |
71
- | Lemon Squeezy | `ls_search_docs` | Webhook signatures, checkout payloads, subscription states |
72
- | Lemon Squeezy | `ls_get_schema` | The exact JSON:API body for an endpoint |
73
- | Lemon Squeezy | `ls_get_reference` | Any of the 7 Lemon Squeezy reference files, whole or by heading |
74
- | Lemon Squeezy | `ls_verify_webhook` | Timing-safe HMAC-SHA256 check against a raw payload |
75
- | Lemon Squeezy | `ls_validate_license` | A live licence key, validated against Lemon Squeezy's API |
76
- | Suite | `suite_get_info` | What this server is, which tools serve which card, and its licence |
77
-
78
- The skills catalog is attached as an MCP extension, so clients that understand it also get `skills/list` and `resources/read` over the same 64 files.
79
-
80
- `ls_validate_license` is the only tool that reaches the network. It is cached for 60 s, bounded to 32 concurrent calls and times out at 5 s, so a public deploy does not become an unbounded relay into Lemon Squeezy's API.
81
-
82
- ## Deploy
83
-
84
- ### Docker
85
-
86
- ```bash
87
- docker build -t fastr-mcp-suite .
88
- docker run -p 8080:8080 -e ALLOWED_HOSTS=your-host.example fastr-mcp-suite
89
- ```
90
-
91
- `ALLOWED_HOSTS` is the only environment variable worth setting: a comma-separated Host allowlist for DNS-rebinding protection. `PORT` overrides `8080`. Nothing else is read.
92
-
93
- Any host that accepts a long-running HTTP process works — Railway, Render, Fly.io, a VPS. Mount `/health` as the liveness probe: it returns the protocol version, the card list and the licence.
94
-
95
- ### MCPize
96
-
97
- [`mcpize.yaml`](../mcpize.yaml) at the repository root is the deployment manifest; `npx mcpize deploy` builds and publishes from there. MCPize authenticates callers at its own edge, but that credential no longer changes what the server registers — a caller with or without it sees the same ten tools.
98
-
99
- ## Not affiliated
100
-
101
- This is an independent developer tool. It does not connect to a WordPress database, does not modify a FluentCart store, and is not published by either vendor. Documentation in `skills/` is compiled from their public references.
102
-
103
- ## Licence
104
-
105
- MIT — see [`LICENSE.md`](./LICENSE.md). Fork it, host it, adapt it.
1
+ # Fastr MCP Suite
2
+
3
+ One MCP server that ships the Playing Cards — **FluentCart Developer Agent** and **Lemon Squeezy Developer Agent** — as executable tools plus a skills catalog, so an agent pulls only the slice of documentation it needs instead of loading 239 KB of markdown into the context window.
4
+
5
+ **Free and MIT-licensed.** All ten tools are registered for every caller on every transport: no licence key, no account, no subscription, no request quota. Nothing in this server validates a purchase, because there is nothing to purchase.
6
+
7
+ Protocol: MCP `2026-07-28` (stateless, per-request `_meta` envelope) with a `2025-11-25` legacy fallback. Transports: `stdio` for local clients, Streamable HTTP for marketplaces and hosted deploys.
8
+
9
+ ## Run it
10
+
11
+ ### From npm
12
+
13
+ Published as [`fastr-mcp-suite`](https://www.npmjs.com/package/fastr-mcp-suite) — Node 22+, no clone and no build:
14
+
15
+ ```bash
16
+ npx -y fastr-mcp-suite
17
+ ```
18
+
19
+ Client config (Claude Code / Cursor / Windsurf):
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "fastr-suite": {
25
+ "command": "npx",
26
+ "args": ["-y", "fastr-mcp-suite"]
27
+ }
28
+ }
29
+ }
30
+ ```
31
+
32
+ ```bash
33
+ claude mcp add fastr-suite -- npx -y fastr-mcp-suite
34
+ ```
35
+
36
+ The npm package ships the stdio entry point only. The Streamable HTTP transport needs the source tree or the Docker image.
37
+
38
+ ### From source
39
+
40
+ ```bash
41
+ npm install
42
+ npm run build # tsc + bundles both skill folders into dist/skills
43
+ npm run verify # boots the built server and asserts the protocol surface
44
+ node dist/index.js # stdio
45
+ node dist/http.js # Streamable HTTP on :8080 (POST /mcp, GET /health)
46
+ ```
47
+
48
+ Point a client at the built file:
49
+
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "fastr-suite": {
54
+ "command": "node",
55
+ "args": ["/absolute/path/to/server/dist/index.js"]
56
+ }
57
+ }
58
+ }
59
+ ```
60
+
61
+ ## Tools
62
+
63
+ Ten tools, all free. `suite_get_info` reports the same list at runtime, scoped by card.
64
+
65
+ | Card | Tool | Answers |
66
+ | --- | --- | --- |
67
+ | FluentCart | `fc_search_hooks` | A hook name, when it fires, its arguments |
68
+ | FluentCart | `fc_get_db_schema` | A `wp_fct_*` table, its columns, the Eloquent model |
69
+ | FluentCart | `fc_get_reference` | Any of the 53 reference files, whole or by heading |
70
+ | FluentCart | `fc_generate_payment_gateway_boilerplate` | A complete PHP gateway class, settings schema and webhook entry point |
71
+ | FluentCart | `fc_generate_licensing_boilerplate` | Complete FluentCart Software Licensing SDK integration with automatic updates and admin UI |
72
+ | FluentCart | `fc_generate_customer_endpoint_boilerplate` | Custom server-rendered tabs and sub-pages in the Vue 3 customer dashboard with session resolution |
73
+ | Lemon Squeezy | `ls_search_docs` | Webhook signatures, checkout payloads, subscription states |
74
+ | Lemon Squeezy | `ls_get_schema` | The exact JSON:API body for an endpoint |
75
+ | Lemon Squeezy | `ls_get_reference` | Any of the 7 Lemon Squeezy reference files, whole or by heading |
76
+ | Lemon Squeezy | `ls_verify_webhook` | Timing-safe HMAC-SHA256 check against a raw payload |
77
+ | Lemon Squeezy | `ls_validate_license` | A live licence key, validated against Lemon Squeezy's API |
78
+ | Suite | `suite_get_info` | What this server is, which tools serve which card, and its licence |
79
+
80
+ The skills catalog is attached as an MCP extension, so clients that understand it also get `skills/list` and `resources/read` over the same 64 files.
81
+
82
+ `ls_validate_license` is the only tool that reaches the network. It is cached for 60 s, bounded to 32 concurrent calls and times out at 5 s, so a public deploy does not become an unbounded relay into Lemon Squeezy's API.
83
+
84
+ ## Deploy
85
+
86
+ ### Docker
87
+
88
+ ```bash
89
+ docker build -t fastr-mcp-suite .
90
+ docker run -p 8080:8080 -e ALLOWED_HOSTS=your-host.example fastr-mcp-suite
91
+ ```
92
+
93
+ `ALLOWED_HOSTS` is the only environment variable worth setting: a comma-separated Host allowlist for DNS-rebinding protection. `PORT` overrides `8080`. Nothing else is read.
94
+
95
+ Any host that accepts a long-running HTTP process works — Railway, Render, Fly.io, a VPS. Mount `/health` as the liveness probe: it returns the protocol version, the card list and the licence.
96
+
97
+ ### MCPize
98
+
99
+ [`mcpize.yaml`](../mcpize.yaml) at the repository root is the deployment manifest; `npx mcpize deploy` builds and publishes from there. MCPize authenticates callers at its own edge, but that credential no longer changes what the server registers — a caller with or without it sees the same ten tools.
100
+
101
+ ## Not affiliated
102
+
103
+ This is an independent developer tool. It does not connect to a WordPress database, does not modify a FluentCart store, and is not published by either vendor. Documentation in `skills/` is compiled from their public references.
104
+
105
+ ## Licence
106
+
107
+ MIT — see [`LICENSE.md`](./LICENSE.md). Fork it, host it, adapt it.
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/cards/fluentcart/tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAK9D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuO/D"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/cards/fluentcart/tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAK9D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqc/D"}
@@ -196,6 +196,207 @@ class ${className} extends AbstractPaymentGateway
196
196
  // Update FluentCart order via fluent_cart_order_status_updated action
197
197
  }
198
198
  }
199
+ `;
200
+ return {
201
+ content: [{ type: 'text', text: code }]
202
+ };
203
+ });
204
+ server.registerTool('fc_generate_licensing_boilerplate', {
205
+ description: 'Generate production-ready PHP boilerplate for integrating the official FluentCart Software Licensing SDK into a commercial WordPress plugin or theme, with remote activation, status checks, and automatic updates.',
206
+ inputSchema: {
207
+ pluginNamespace: z.string().describe('Unique PHP namespace for your plugin, e.g. "Acme\\AwesomePlugin"'),
208
+ pluginTitle: z.string().describe('Display title of your plugin, e.g. "Awesome Plugin Pro"'),
209
+ itemId: z.number().describe('Product/Item ID in FluentCart Pro'),
210
+ apiUrl: z.string().describe('Base URL of your FluentCart store, e.g. "https://store.example.com/"'),
211
+ includeAdminUi: z.boolean().default(true).describe('Include turnkey Admin License Settings page code')
212
+ }
213
+ }, async ({ pluginNamespace, pluginTitle, itemId, apiUrl, includeAdminUi }) => {
214
+ const cleanNamespace = pluginNamespace.replace(/^\\+|\\+$/g, '');
215
+ const slug = pluginTitle.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
216
+ const constPrefix = slug.toUpperCase().replace(/-/g, '_');
217
+ const adminUiCode = includeAdminUi
218
+ ? `
219
+ // 3. Mount turnkey Admin License Management page
220
+ if (is_admin() && class_exists('\\\\${cleanNamespace}\\\\LicenseSettings')) {
221
+ $settings = new \\\\${cleanNamespace}\\\\LicenseSettings();
222
+ $settings->register($licenseManager);
223
+
224
+ $settings->setConfig([
225
+ 'title' => __('${pluginTitle} License', '${slug}'),
226
+ 'heading' => __('Activate License Key', '${slug}'),
227
+ 'description' => __('Enter your FluentCart license key to receive automatic one-click updates and pro features.', '${slug}'),
228
+ 'help_text' => __('Manage your active site licenses in your customer portal.', '${slug}')
229
+ ]);
230
+
231
+ $settings->addPage([
232
+ 'type' => 'submenu',
233
+ 'parent_slug' => 'tools.php',
234
+ 'page_title' => __('${pluginTitle} License', '${slug}'),
235
+ 'menu_title' => __('${pluginTitle} License', '${slug}'),
236
+ 'capability' => 'manage_options',
237
+ 'menu_slug' => '${slug}-license'
238
+ ]);
239
+ }`
240
+ : '';
241
+ const code = `<?php
242
+ defined('ABSPATH') || exit;
243
+
244
+ /**
245
+ * FluentCart Software Licensing SDK Integration Boilerplate
246
+ * For: ${pluginTitle}
247
+ * Powered by fluent-cart/software-licensing-sdk
248
+ */
249
+
250
+ define('${constPrefix}_VERSION', '1.0.0');
251
+ define('${constPrefix}_DIR', plugin_dir_path(__FILE__));
252
+
253
+ add_action('plugins_loaded', function () {
254
+ // 1. Include the SDK licensing class
255
+ if (!class_exists('\\\\${cleanNamespace}\\\\FluentLicensing')) {
256
+ require_once ${constPrefix}_DIR . 'updater/FluentLicensing.php';
257
+ }
258
+
259
+ $licenseManager = new \\\\${cleanNamespace}\\\\FluentLicensing();
260
+
261
+ // 2. Register licensing parameters
262
+ $licenseManager->register([
263
+ 'version' => ${constPrefix}_VERSION,
264
+ 'item_id' => ${itemId},
265
+ 'basename' => plugin_basename(__FILE__),
266
+ 'api_url' => '${apiUrl}',
267
+ 'plugin_title' => '${pluginTitle}',
268
+ 'purchase_url' => '${apiUrl}checkout/?item_id=${itemId}',
269
+ 'activate_url' => admin_url('tools.php?page=${slug}-license'),
270
+ 'show_check_update' => true,
271
+ 'settings_key' => '__${slug.replace(/-/g, '_')}_sl_info'
272
+ ]);${adminUiCode}
273
+ });
274
+
275
+ /**
276
+ * Helper to check whether the plugin license is currently active.
277
+ */
278
+ function ${slug.replace(/-/g, '_')}_is_license_active(): bool
279
+ {
280
+ if (!class_exists('\\\\${cleanNamespace}\\\\FluentLicensing')) {
281
+ return false;
282
+ }
283
+
284
+ $manager = \\\\${cleanNamespace}\\\\FluentLicensing::getInstance();
285
+ if (!$manager) {
286
+ return false;
287
+ }
288
+
289
+ $status = $manager->getStatus();
290
+ return !is_wp_error($status) && isset($status['status']) && $status['status'] === 'valid';
291
+ }
292
+ `;
293
+ return {
294
+ content: [{ type: 'text', text: code }]
295
+ };
296
+ });
297
+ server.registerTool('fc_generate_customer_endpoint_boilerplate', {
298
+ description: 'Generate production-ready PHP boilerplate for adding custom server-rendered pages and tabs to the FluentCart Vue 3 customer dashboard via fluent_cart_api()->addCustomerDashboardEndpoint(), with authenticated customer session resolution, multi-segment sub-path routing, and design system variables.',
299
+ inputSchema: {
300
+ endpointSlug: z.string().describe('Unique URL slug for the endpoint, e.g. "acme-wallet" (do not use reserved slugs like order, subscription, dashboard)'),
301
+ tabTitle: z.string().describe('Display title for the tab in customer dashboard sidebar, e.g. "My Wallet"'),
302
+ iconSvg: z.string().optional().describe('Raw SVG markup for the tab icon (20x20 viewBox, currentColor)'),
303
+ subRoutes: z.array(z.string()).optional().describe('Optional sub-path actions, e.g. ["history", "settings"]')
304
+ }
305
+ }, async ({ endpointSlug, tabTitle, iconSvg, subRoutes }) => {
306
+ const cleanSlug = endpointSlug.toLowerCase().replace(/[^a-z0-9_-]+/g, '-').replace(/^-|-$/g, '');
307
+ const funcPrefix = cleanSlug.replace(/[^a-z0-9_]/g, '_');
308
+ const defaultSvg = iconSvg ||
309
+ `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M3 4a1 1 0 011-1h12a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V4zM3 10a1 1 0 011-1h12a1 1 0 011 1v6a1 1 0 01-1 1H4a1 1 0 01-1-1v-6z" fill="currentColor"/></svg>`;
310
+ const subRouteCases = (subRoutes || ['history', 'settings'])
311
+ .map((route) => ` case '${route}':
312
+ echo '<div class="fct-custom-subpage">';
313
+ echo '<h4>' . esc_html__('${route.charAt(0).toUpperCase() + route.slice(1)}', 'my-addon') . '</h4>';
314
+ echo '<p>' . esc_html__('Custom content for ${route} sub-route.', 'my-addon') . '</p>';
315
+ echo '</div>';
316
+ break;`)
317
+ .join('\n');
318
+ const code = `<?php
319
+ defined('ABSPATH') || exit;
320
+
321
+ use FluentCart\\Api\\Resource\\CustomerResource;
322
+
323
+ /**
324
+ * Register Custom Customer Dashboard Tab in FluentCart Vue 3 Portal
325
+ * Endpoint: /account/${cleanSlug}
326
+ */
327
+ add_action('fluent_cart/init', function () {
328
+ if (!function_exists('fluent_cart_api')) {
329
+ return;
330
+ }
331
+
332
+ fluent_cart_api()->addCustomerDashboardEndpoint('${cleanSlug}', [
333
+ 'title' => __('${tabTitle}', 'my-addon'),
334
+ 'icon_svg' => '${defaultSvg.replace(/'/g, "\\'")}',
335
+ 'render_callback' => '${funcPrefix}_render_customer_dashboard_tab'
336
+ ]);
337
+ });
338
+
339
+ /**
340
+ * Render Callback for Customer Dashboard Tab
341
+ * Core wraps this output inside the portal layout shell (nav, header, avatar, logout).
342
+ */
343
+ function ${funcPrefix}_render_customer_dashboard_tab(): void
344
+ {
345
+ // 1. Resolve currently authenticated FluentCart customer (memoized, zero-overhead)
346
+ $customer = CustomerResource::getCurrentCustomer();
347
+ if (!$customer) {
348
+ echo '<div class="fct-endpoint-notice">';
349
+ echo '<p>' . esc_html__('Please log in to access this page.', 'my-addon') . '</p>';
350
+ echo '</div>';
351
+ return;
352
+ }
353
+
354
+ // 2. Parse multi-segment sub-routes from $wp->request
355
+ global $wp;
356
+ $requestPath = trim($wp->request ?? '', '/');
357
+ $segments = explode('/', $requestPath);
358
+ // Path structure: {account_slug}/{endpoint_slug}/{sub_action}
359
+ $endpointIndex = array_search('${cleanSlug}', $segments, true);
360
+ $subAction = ($endpointIndex !== false && isset($segments[$endpointIndex + 1])) ? sanitize_key($segments[$endpointIndex + 1]) : 'index';
361
+
362
+ // 3. Render content matching the customer portal design system
363
+ ?>
364
+ <div class="fct-customer-dashboard-custom-page" style="
365
+ color: var(--fct-customer-dashboard-text-color, #374151);
366
+ border: 1px solid var(--fct-customer-dashboard-border-color, #e5e7eb);
367
+ border-radius: 8px;
368
+ padding: 24px;
369
+ background: #ffffff;
370
+ ">
371
+ <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
372
+ <h2 style="margin: 0; color: var(--fct-customer-dashboard-title-color, #111827); font-size: 1.5rem;">
373
+ <?php echo esc_html__('${tabTitle}', 'my-addon'); ?>
374
+ </h2>
375
+ <div class="fct-sub-nav" style="display: flex; gap: 12px;">
376
+ <a href="<?php echo esc_url(site_url('/account/${cleanSlug}')); ?>" style="text-decoration: none; font-weight: <?php echo $subAction === 'index' ? '600' : '400'; ?>;">
377
+ <?php esc_html_e('Overview', 'my-addon'); ?>
378
+ </a>
379
+ <a href="<?php echo esc_url(site_url('/account/${cleanSlug}/history')); ?>" style="text-decoration: none; font-weight: <?php echo $subAction === 'history' ? '600' : '400'; ?>;">
380
+ <?php esc_html_e('History', 'my-addon'); ?>
381
+ </a>
382
+ </div>
383
+ </div>
384
+
385
+ <?php
386
+ switch ($subAction) {
387
+ ${subRouteCases}
388
+ case 'index':
389
+ default:
390
+ echo '<div class="fct-overview">';
391
+ echo '<p>' . esc_html(sprintf(__('Welcome back, %s (%s)!', 'my-addon'), $customer->full_name, $customer->email)) . '</p>';
392
+ echo '<!-- Render your customer dashboard widget or shortcode here -->';
393
+ echo '</div>';
394
+ break;
395
+ }
396
+ ?>
397
+ </div>
398
+ <?php
399
+ }
199
400
  `;
200
401
  return {
201
402
  content: [{ type: 'text', text: code }]
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cards/fluentcart/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cards/fluentcart/tools.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -60,7 +60,9 @@ const CARD_TOOLS = {
60
60
  'fc_search_hooks',
61
61
  'fc_get_db_schema',
62
62
  'fc_get_reference',
63
- 'fc_generate_payment_gateway_boilerplate'
63
+ 'fc_generate_payment_gateway_boilerplate',
64
+ 'fc_generate_licensing_boilerplate',
65
+ 'fc_generate_customer_endpoint_boilerplate'
64
66
  ],
65
67
  lemonsqueezy: [
66
68
  'ls_search_docs',
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C;;;;;;;;;GASG;AACH,IAAI,cAAwD,CAAC;AAE7D,SAAS,aAAa;IACpB,cAAc,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;QAC7D,OAAO,CAAC,KAAK,CAAC,4CAA4C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,cAAc,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAiB;IAC1D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;QACtC,IAAI,OAAO;YAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,8CAA8C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,yDAAyD;IACzD,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhC,4DAA4D;IAC5D,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElC,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,4GAA4G;QACzH,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SACvH;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAClF,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAID,MAAM,UAAU,GAAiD;IAC/D,UAAU,EAAE;QACV,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,yCAAyC;QACzC,mCAAmC;QACnC,2CAA2C;KAC5C;IACD,YAAY,EAAE;QACZ,gBAAgB;QAChB,eAAe;QACf,kBAAkB;QAClB,mBAAmB;QACnB,qBAAqB;KACtB;CACF,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAEzE,SAAS,SAAS,CAAC,IAAiB,EAAE,OAAmB,KAAK;IAC5D,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAoC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpG,OAAO;QACL,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,kEAAkE;QAC1E,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACzE,KAAK,EAAE;YACL,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;YAC3B,uBAAuB,EAAE,CAAC,GAAG,SAAS,EAAE,gBAAgB,CAAC;YACzD,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACrE;QACD,IAAI,EACF,4EAA4E;YAC5E,6EAA6E;YAC7E,iDAAiD;KACpD,CAAC;AACJ,CAAC"}