@marvalt/wadapter 2.3.36 → 2.3.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/wordpress-client.d.ts +44 -0
- package/dist/client/wordpress-client.d.ts.map +1 -1
- package/dist/generators/wordpress/wordpress-generator.d.ts +22 -0
- package/dist/generators/wordpress/wordpress-generator.d.ts.map +1 -1
- package/dist/generators.cjs +187 -0
- package/dist/generators.cjs.map +1 -1
- package/dist/generators.esm.js +187 -0
- package/dist/generators.esm.js.map +1 -1
- package/dist/gravity-forms/gravity-forms-client.d.ts.map +1 -1
- package/dist/index.d.ts +63 -1
- package/dist/index.esm.js +81 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/wordpress-menu.d.ts +18 -0
- package/dist/utils/wordpress-menu.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -63,6 +63,13 @@ class WordPressClient {
|
|
|
63
63
|
headers['CF-Access-Client-Id'] = this.config.cfAccessClientId;
|
|
64
64
|
headers['CF-Access-Client-Secret'] = this.config.cfAccessClientSecret;
|
|
65
65
|
console.log('🔐 Added CF Access Service Token headers to WordPress request');
|
|
66
|
+
console.log('🔐 CF-Access-Client-Id:', this.config.cfAccessClientId.substring(0, 8) + '...');
|
|
67
|
+
console.log('🔐 CF-Access-Client-Secret:', this.config.cfAccessClientSecret.substring(0, 8) + '... (hidden)');
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
console.log('⚠️ CF Access Service Token NOT provided - requests may be blocked by Zero Trust');
|
|
71
|
+
console.log(' cfAccessClientId present:', !!this.config.cfAccessClientId);
|
|
72
|
+
console.log(' cfAccessClientSecret present:', !!this.config.cfAccessClientSecret);
|
|
66
73
|
}
|
|
67
74
|
}
|
|
68
75
|
console.log('🔍 WordPress API Request Debug:', {
|
|
@@ -70,6 +77,8 @@ class WordPressClient {
|
|
|
70
77
|
method: options.method || 'GET',
|
|
71
78
|
authMode: this.config.authMode,
|
|
72
79
|
headers: Object.keys(headers),
|
|
80
|
+
hasBasicAuth: !!headers.Authorization,
|
|
81
|
+
hasCfAccess: !!(headers['CF-Access-Client-Id'] && headers['CF-Access-Client-Secret']),
|
|
73
82
|
});
|
|
74
83
|
const response = await fetch(url, {
|
|
75
84
|
method: options.method || 'GET',
|
|
@@ -262,6 +271,30 @@ class WordPressClient {
|
|
|
262
271
|
* Fetch WordPress Settings from custom endpoint
|
|
263
272
|
* @returns Settings including front page information and site branding
|
|
264
273
|
*/
|
|
274
|
+
/**
|
|
275
|
+
* Fetch header template part blocks from custom endpoint
|
|
276
|
+
* @param slug Template part slug (default: 'header')
|
|
277
|
+
* @param area Template part area (default: 'header')
|
|
278
|
+
* @returns Header blocks data
|
|
279
|
+
*/
|
|
280
|
+
async getHeader(slug = 'header', area = 'header') {
|
|
281
|
+
return this.makeRequest(`/wp-custom/v1/header`, { slug, area });
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Fetch all navigation menus
|
|
285
|
+
* @returns Array of menu objects
|
|
286
|
+
*/
|
|
287
|
+
async getMenus() {
|
|
288
|
+
return this.makeRequest('/wp-custom/v1/menus');
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Fetch a specific navigation menu with its items
|
|
292
|
+
* @param menuId Menu ID
|
|
293
|
+
* @returns Menu data with hierarchical items
|
|
294
|
+
*/
|
|
295
|
+
async getMenu(menuId) {
|
|
296
|
+
return this.makeRequest(`/wp-custom/v1/menus/${menuId}`);
|
|
297
|
+
}
|
|
265
298
|
async getFooter(slug = 'footer', area = 'footer') {
|
|
266
299
|
return this.makeRequest(`/wp-custom/v1/footer`, { slug, area });
|
|
267
300
|
}
|
|
@@ -407,6 +440,13 @@ class GravityFormsClient {
|
|
|
407
440
|
headers['CF-Access-Client-Id'] = this.config.cfAccessClientId;
|
|
408
441
|
headers['CF-Access-Client-Secret'] = this.config.cfAccessClientSecret;
|
|
409
442
|
console.log('🔐 Added CF Access Service Token headers to Gravity Forms request');
|
|
443
|
+
console.log('🔐 CF-Access-Client-Id:', this.config.cfAccessClientId.substring(0, 8) + '...');
|
|
444
|
+
console.log('🔐 CF-Access-Client-Secret:', this.config.cfAccessClientSecret.substring(0, 8) + '... (hidden)');
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
console.log('⚠️ CF Access Service Token NOT provided - requests may be blocked by Zero Trust');
|
|
448
|
+
console.log(' cfAccessClientId present:', !!this.config.cfAccessClientId);
|
|
449
|
+
console.log(' cfAccessClientSecret present:', !!this.config.cfAccessClientSecret);
|
|
410
450
|
}
|
|
411
451
|
}
|
|
412
452
|
else {
|
|
@@ -891,6 +931,46 @@ function buildMenuStructure(pages, baseUrl = '/', filterPublished = true) {
|
|
|
891
931
|
};
|
|
892
932
|
return hierarchicalPages.map(convertToMenuItem);
|
|
893
933
|
}
|
|
934
|
+
/**
|
|
935
|
+
* Convert WordPress menu items to MenuItem format
|
|
936
|
+
*
|
|
937
|
+
* @param menuItems WordPress menu items (hierarchical structure from API)
|
|
938
|
+
* @param baseUrl Base URL for building relative URLs (default: '/')
|
|
939
|
+
* @returns Array of MenuItem objects
|
|
940
|
+
*/
|
|
941
|
+
function convertMenuItemsToMenuStructure(menuItems, baseUrl = '/') {
|
|
942
|
+
return menuItems.map(item => {
|
|
943
|
+
// Convert URL to relative path if it's absolute
|
|
944
|
+
let url = item.url;
|
|
945
|
+
if (url.startsWith('http://') || url.startsWith('https://')) {
|
|
946
|
+
try {
|
|
947
|
+
const urlObj = new URL(url);
|
|
948
|
+
url = urlObj.pathname + urlObj.search + urlObj.hash;
|
|
949
|
+
}
|
|
950
|
+
catch (e) {
|
|
951
|
+
// Invalid URL, keep as is
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
// Ensure URL starts with /
|
|
955
|
+
if (!url.startsWith('/')) {
|
|
956
|
+
url = `/${url}`;
|
|
957
|
+
}
|
|
958
|
+
// Extract slug from URL (remove leading/trailing slashes)
|
|
959
|
+
const slug = url.replace(/^\/+|\/+$/g, '') || 'home';
|
|
960
|
+
const menuItem = {
|
|
961
|
+
id: item.id,
|
|
962
|
+
title: item.title,
|
|
963
|
+
slug,
|
|
964
|
+
url,
|
|
965
|
+
menuOrder: item.menu_order,
|
|
966
|
+
};
|
|
967
|
+
// Add children if they exist
|
|
968
|
+
if (item.children && item.children.length > 0) {
|
|
969
|
+
menuItem.children = convertMenuItemsToMenuStructure(item.children, baseUrl);
|
|
970
|
+
}
|
|
971
|
+
return menuItem;
|
|
972
|
+
});
|
|
973
|
+
}
|
|
894
974
|
/**
|
|
895
975
|
* Find a page by slug
|
|
896
976
|
*/
|
|
@@ -2768,6 +2848,7 @@ exports.WordPressContent = WordPressContent;
|
|
|
2768
2848
|
exports.WordPressProvider = WordPressProvider;
|
|
2769
2849
|
exports.buildMenuStructure = buildMenuStructure;
|
|
2770
2850
|
exports.buildPageHierarchy = buildPageHierarchy;
|
|
2851
|
+
exports.convertMenuItemsToMenuStructure = convertMenuItemsToMenuStructure;
|
|
2771
2852
|
exports.createFormProtectionConfig = createFormProtectionConfig;
|
|
2772
2853
|
exports.createGravityFormsConfig = createGravityFormsConfig;
|
|
2773
2854
|
exports.createWordPressConfig = createWordPressConfig;
|