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.
- package/README.md +107 -105
- package/dist/cards/fluentcart/tools.d.ts.map +1 -1
- package/dist/cards/fluentcart/tools.js +201 -0
- package/dist/cards/fluentcart/tools.js.map +1 -1
- package/dist/server.js +3 -1
- package/dist/server.js.map +1 -1
- package/dist/skills/fastr-mcp-suite/SKILL.md +301 -0
- package/dist/skills/fluentcart-developer/SKILL.md +242 -6
- package/dist/skills/fluentcart-developer/examples/README.md +5 -0
- package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/README.md +22 -0
- package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/sample-plugin-with-licensing-sdk.php +79 -0
- package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/updater/FluentLicensing.php +303 -0
- package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/updater/LicenseSettings.php +566 -0
- package/dist/skills/fluentcart-developer/examples/sample-plugin-with-licensing-sdk/updater/PluginUpdater.php +304 -0
- package/dist/skills/fluentcart-developer/references/customer-dashboard-endpoints.md +169 -0
- package/dist/skills/fluentcart-developer/references/order-bump-module.md +163 -0
- package/dist/skills/fluentcart-developer/references/rest-api-licensing.md +3 -0
- package/dist/skills/fluentcart-developer/references/shipping-module-guide.md +126 -0
- package/dist/skills/fluentcart-developer/references/software-licensing-sdk.md +228 -0
- package/dist/skills/fluentcart-developer/references/storage-drivers-module.md +140 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- 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
|
|
70
|
-
| FluentCart | `fc_generate_payment_gateway_boilerplate` | A complete PHP gateway class, settings schema and webhook entry point |
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
| Lemon Squeezy | `
|
|
74
|
-
| Lemon Squeezy | `
|
|
75
|
-
| Lemon Squeezy | `
|
|
76
|
-
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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,
|
|
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',
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|