@pixelated-tech/components 3.13.5 → 3.13.7
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/components/admin/deploy/deployment.integration.js +3 -3
- package/dist/components/admin/site-health/site-health-axe-core.integration.js +13 -3
- package/dist/components/admin/site-health/site-health-core-web-vitals.integration.js +1 -1
- package/dist/components/admin/site-health/site-health-on-site-seo.integration.js +3 -3
- package/dist/components/admin/site-health/site-health-security.integration.js +2 -2
- package/dist/components/admin/sites/sites.integration.js +2 -2
- package/dist/components/general/hero.js +1 -1
- package/dist/components/general/modal.css +70 -60
- package/dist/components/general/smartimage.js +2 -1
- package/dist/components/integrations/gemini-api.server.js +1 -1
- package/dist/components/integrations/gravatar.components.js +1 -1
- package/dist/components/integrations/socialcard.js +2 -2
- package/dist/components/shoppingcart/ebay.components.js +1 -1
- package/dist/components/shoppingcart/ebay.functions.js +1 -1
- package/dist/components/sitebuilder/config/ConfigBuilder.js +1 -1
- package/dist/components/sitebuilder/config/FontSelector.js +1 -1
- package/dist/components/sitebuilder/form/formextractor.js +1 -1
- package/dist/components/sitebuilder/form/formutils.js +1 -1
- package/dist/components/sitebuilder/page/components/ComponentSelector.js +1 -1
- package/dist/components/sitebuilder/page/components/ComponentTree.js +4 -4
- package/dist/components/sitebuilder/page/components/PageEngine.js +4 -4
- package/dist/components/sitebuilder/page/components/SaveLoadSection.js +4 -4
- package/dist/config/pixelated.config.json.enc +1 -1
- package/dist/scripts/create-pixelated-app.js +3 -3
- package/dist/scripts/release.sh +18 -10
- package/dist/scripts/update.sh +33 -0
- package/dist/scripts/zip-pixelated-theme.js +3 -3
- package/dist/types/components/general/hero.d.ts.map +1 -1
- package/dist/types/components/general/recipe.d.ts.map +1 -1
- package/dist/types/components/shoppingcart/ebay.components.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/page/components/ComponentSelector.d.ts.map +1 -1
- package/package.json +27 -39
|
@@ -57,7 +57,7 @@ async function executeScript(siteName, versionType, commitMessage, environments,
|
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
catch (error) {
|
|
60
|
-
throw new Error(`Deployment failed: ${error.message}
|
|
60
|
+
throw new Error(`Deployment failed: ${error.message}`, { cause: error });
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
@@ -133,7 +133,7 @@ async function runPrepCommands(siteName, versionType, commitMessage, localPath)
|
|
|
133
133
|
return results.join('\n');
|
|
134
134
|
}
|
|
135
135
|
catch (error) {
|
|
136
|
-
throw new Error(`Prep failed: ${error.message}
|
|
136
|
+
throw new Error(`Prep failed: ${error.message}`, { cause: error });
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
/**
|
|
@@ -167,6 +167,6 @@ async function deployToEnvironment(siteName, environment, versionType, commitMes
|
|
|
167
167
|
if (error.message.includes('Repository not found') || error.message.includes('does not exist')) {
|
|
168
168
|
return `${errorMsg}\nRepository not found or access denied. Check your git remote configuration.`;
|
|
169
169
|
}
|
|
170
|
-
throw new Error(errorMsg);
|
|
170
|
+
throw new Error(errorMsg, { cause: error });
|
|
171
171
|
}
|
|
172
172
|
}
|
|
@@ -141,7 +141,7 @@ async function runAxeCoreAnalysis(url, runtime_env = 'auto') {
|
|
|
141
141
|
const hint = `Could not launch Chrome/Chromium. Ensure Puppeteer browsers are installed (run 'npx puppeteer browsers install chrome') and that the browser binary is accessible. You can also set PUPPETEER_EXECUTABLE_PATH to the installed browser binary or adjust PUPPETEER_CACHE_DIR to point to a writable cache directory. Original error: ${original}`;
|
|
142
142
|
if (debug)
|
|
143
143
|
console.error('Puppeteer launch failed:', err);
|
|
144
|
-
throw new Error(hint);
|
|
144
|
+
throw new Error(hint, { cause: err });
|
|
145
145
|
}
|
|
146
146
|
const page = await browser.newPage();
|
|
147
147
|
// Set viewport for consistent results
|
|
@@ -203,6 +203,7 @@ async function runAxeCoreAnalysis(url, runtime_env = 'auto') {
|
|
|
203
203
|
path.join(process.cwd(), '..', 'node_modules', 'axe-core', 'axe.min.js'),
|
|
204
204
|
path.join(__dirname, '..', '..', 'node_modules', 'axe-core', 'axe.min.js')
|
|
205
205
|
];
|
|
206
|
+
let lastError = null;
|
|
206
207
|
for (const p of possiblePaths) {
|
|
207
208
|
try {
|
|
208
209
|
if (fs.existsSync(p)) {
|
|
@@ -214,7 +215,8 @@ async function runAxeCoreAnalysis(url, runtime_env = 'auto') {
|
|
|
214
215
|
}
|
|
215
216
|
}
|
|
216
217
|
catch (e) {
|
|
217
|
-
//
|
|
218
|
+
// remember for diagnostics but otherwise ignore
|
|
219
|
+
lastError = e;
|
|
218
220
|
}
|
|
219
221
|
}
|
|
220
222
|
// Last resort: require.resolve
|
|
@@ -231,7 +233,15 @@ async function runAxeCoreAnalysis(url, runtime_env = 'auto') {
|
|
|
231
233
|
}
|
|
232
234
|
}
|
|
233
235
|
if (!injected) {
|
|
234
|
-
|
|
236
|
+
// include the original CDN error as the cause so eslint's
|
|
237
|
+
// ``preserve-caught-error`` rule is satisfied. append any
|
|
238
|
+
// local load failure info to the message for diagnostics.
|
|
239
|
+
const msg = 'Could not load axe-core via CDN or local inline injection';
|
|
240
|
+
const errorToThrow = new Error(msg, { cause: err });
|
|
241
|
+
if (lastError) {
|
|
242
|
+
errorToThrow.message += ` (local injection error: ${String(lastError)})`;
|
|
243
|
+
}
|
|
244
|
+
throw errorToThrow;
|
|
235
245
|
}
|
|
236
246
|
}
|
|
237
247
|
// Run axe-core analysis (poll across frames for availability after injection)
|
|
@@ -119,7 +119,7 @@ export async function fetchPSIData(url) {
|
|
|
119
119
|
: `PSI API request failed: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
120
120
|
if (debug)
|
|
121
121
|
console.error('PSI request error (final):', { url, error });
|
|
122
|
-
throw new Error(errorMessage);
|
|
122
|
+
throw new Error(errorMessage, { cause: error });
|
|
123
123
|
}
|
|
124
124
|
// Wait before retry (exponential backoff) - retry on both network errors and timeouts
|
|
125
125
|
if (debug)
|
|
@@ -118,8 +118,8 @@ function analyzePatternMetric(html, metric) {
|
|
|
118
118
|
const regex = new RegExp(metric.pattern, 'gi');
|
|
119
119
|
const matches = html.match(regex) || [];
|
|
120
120
|
const count = matches.length;
|
|
121
|
-
let score
|
|
122
|
-
let displayValue
|
|
121
|
+
let score;
|
|
122
|
+
let displayValue;
|
|
123
123
|
let details = undefined;
|
|
124
124
|
// Apply count logic
|
|
125
125
|
switch (metric.countLogic) {
|
|
@@ -652,7 +652,7 @@ function calculateGzipCompressionScore(data) {
|
|
|
652
652
|
};
|
|
653
653
|
}
|
|
654
654
|
let score = 0;
|
|
655
|
-
let displayValue
|
|
655
|
+
let displayValue;
|
|
656
656
|
if (data.isCompressed) {
|
|
657
657
|
score = 1;
|
|
658
658
|
displayValue = `Compression enabled: ${data.contentEncoding || data.transferEncoding}`;
|
|
@@ -128,9 +128,9 @@ async function runNpmAudit(localPath) {
|
|
|
128
128
|
return JSON.parse(execError.stdout);
|
|
129
129
|
}
|
|
130
130
|
catch (parseError) {
|
|
131
|
-
throw new Error(`Failed to parse npm audit output: ${parseError.message}
|
|
131
|
+
throw new Error(`Failed to parse npm audit output: ${parseError.message}`, { cause: parseError });
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
throw new Error(`npm audit failed: ${execError.message}
|
|
134
|
+
throw new Error(`npm audit failed: ${execError.message}`, { cause: error });
|
|
135
135
|
}
|
|
136
136
|
}
|
|
@@ -19,7 +19,7 @@ export async function loadSitesConfig(configPath) {
|
|
|
19
19
|
}
|
|
20
20
|
catch (error) {
|
|
21
21
|
console.error('Error loading sites:', error);
|
|
22
|
-
throw new Error('Failed to load sites configuration');
|
|
22
|
+
throw new Error('Failed to load sites configuration', { cause: error });
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
@@ -37,7 +37,7 @@ export async function saveSitesConfig(sites, configPath) {
|
|
|
37
37
|
}
|
|
38
38
|
catch (error) {
|
|
39
39
|
console.error('Error saving sites:', error);
|
|
40
|
-
throw new Error('Failed to save sites configuration');
|
|
40
|
+
throw new Error('Failed to save sites configuration', { cause: error });
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
@@ -63,7 +63,7 @@ export function Hero({ img, imgAlt, imgId, variant = 'static', height = '60vh',
|
|
|
63
63
|
return (_jsx(_Fragment, { children: _jsxs("div", { id: id, className: "hero" + (variant ? " " + variant : ''), style: { height: height ?? '60vh' }, children: [_jsx("div", { id: id + "-bg", className: "hero-div-bg-img", style: { backgroundImage: `url(${img})` } }), children] }) }));
|
|
64
64
|
}
|
|
65
65
|
else if (variant === 'anchored-img') {
|
|
66
|
-
return (_jsx(_Fragment, { children: _jsxs("div", { className: "hero" + (variant ? " " + variant : ''), id: "hero-" + id?.toString(), children: [_jsx(SmartImage, { src: img, alt: imgAlt || '', id: id?.toString() || '', quality: 100, width: "
|
|
66
|
+
return (_jsx(_Fragment, { children: _jsxs("div", { className: "hero" + (variant ? " " + variant : ''), id: "hero-" + id?.toString(), children: [_jsx(SmartImage, { src: img, alt: imgAlt || '', id: id?.toString() || '', quality: 100, width: 4000, height: 3000, fetchPriority: "high", aboveFold: true, style: { height: height ?? '60vh' } }), children] }) }));
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
69
|
return (_jsx(_Fragment, { children: _jsx("div", { id: id, className: "hero" + (variant ? " " + variant : ''), style: { backgroundImage: `url(${img})`, height: height ?? '60vh' }, children: children }) }));
|
|
@@ -1,63 +1,73 @@
|
|
|
1
|
-
|
|
2
1
|
.modal {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
2
|
+
position: fixed;
|
|
3
|
+
/* Stay in place */
|
|
4
|
+
z-index: 1000;
|
|
5
|
+
/* Sit on top */
|
|
6
|
+
top: 0;
|
|
7
|
+
left: 0;
|
|
8
|
+
width: 100%;
|
|
9
|
+
/* Full width */
|
|
10
|
+
height: 100%;
|
|
11
|
+
/* Full height */
|
|
12
|
+
overflow: auto;
|
|
13
|
+
/* Enable scroll if needed */
|
|
14
|
+
background-color: rgb(0, 0, 0);
|
|
15
|
+
/* Fallback color */
|
|
16
|
+
background-color: rgba(0, 0, 0, 0.4);
|
|
17
|
+
/* Black w/ opacity */
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Modal Content/Box */
|
|
21
|
+
.modal-content {
|
|
22
|
+
background-color: #fefefe;
|
|
23
|
+
margin: 15% auto;
|
|
24
|
+
/* 15% from the top and centered */
|
|
25
|
+
padding: 20px;
|
|
26
|
+
border: 1px solid #888;
|
|
27
|
+
max-width: 95vw;
|
|
28
|
+
max-height: 95vh;
|
|
29
|
+
width: fit-content;
|
|
30
|
+
position: relative;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.modal-content img {
|
|
34
|
+
border: 2px solid #aaa;
|
|
35
|
+
max-width: 90vw;
|
|
36
|
+
max-height: 90vh;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* The Close Button */
|
|
40
|
+
.modal-close {
|
|
41
|
+
color: #aaa;
|
|
42
|
+
font-size: 28px;
|
|
43
|
+
line-height: 26px;
|
|
44
|
+
font-weight: bold;
|
|
45
|
+
text-align: center;
|
|
46
|
+
position: absolute;
|
|
47
|
+
float: right;
|
|
48
|
+
right: 10px;
|
|
49
|
+
top: 10px;
|
|
50
|
+
width: 30px;
|
|
51
|
+
height: 30px;
|
|
52
|
+
background-color: white;
|
|
53
|
+
border: 1px solid #999;
|
|
54
|
+
-moz-border-radius: 5px;
|
|
55
|
+
-webkit-border-radius: 5px;
|
|
56
|
+
border-radius: 5px;
|
|
57
|
+
z-index: 10;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.modal-close:hover,
|
|
61
|
+
.modal-close:focus {
|
|
62
|
+
color: black;
|
|
63
|
+
text-decoration: none;
|
|
64
|
+
cursor: pointer;
|
|
65
|
+
}
|
|
24
66
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/* The Close Button */
|
|
30
|
-
.modal-close {
|
|
31
|
-
color: #aaa;
|
|
32
|
-
font-size: 28px;
|
|
33
|
-
line-height: 26px;
|
|
34
|
-
font-weight: bold;
|
|
35
|
-
text-align: center;
|
|
36
|
-
position: absolute;
|
|
37
|
-
float: right;
|
|
38
|
-
right: 10px;
|
|
39
|
-
top: 10px;
|
|
40
|
-
width: 30px;
|
|
41
|
-
height:30px;
|
|
42
|
-
background-color: white;
|
|
43
|
-
border: 1px solid #999;
|
|
44
|
-
-moz-border-radius: 5px;
|
|
45
|
-
-webkit-border-radius: 5px;
|
|
46
|
-
border-radius: 5px;
|
|
47
|
-
z-index: 10;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.modal-close:hover,
|
|
51
|
-
.modal-close:focus {
|
|
52
|
-
color: black;
|
|
53
|
-
text-decoration: none;
|
|
54
|
-
cursor: pointer;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.show {
|
|
58
|
-
display: block;
|
|
59
|
-
}
|
|
67
|
+
.show {
|
|
68
|
+
display: block;
|
|
69
|
+
}
|
|
60
70
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
71
|
+
.hide {
|
|
72
|
+
display: none;
|
|
73
|
+
}
|
|
@@ -177,7 +177,8 @@ export function SmartImage(props) {
|
|
|
177
177
|
transforms: newProps.cloudinaryTransforms ?? undefined,
|
|
178
178
|
cloudinaryDomain: newProps.cloudinaryDomain
|
|
179
179
|
});
|
|
180
|
-
newProps.sizes
|
|
180
|
+
if (!(newProps.sizes))
|
|
181
|
+
newProps.sizes = `${newProps.width}px`;
|
|
181
182
|
}
|
|
182
183
|
else {
|
|
183
184
|
const breakpoints = [320, 640, 768, 1024, 1280, 1536];
|
|
@@ -53,7 +53,7 @@ function parseGeminiResponse(data) {
|
|
|
53
53
|
catch (error) {
|
|
54
54
|
console.error('Error parsing Gemini API response:', error);
|
|
55
55
|
console.error('Raw response data:', JSON.stringify(data, null, 2));
|
|
56
|
-
throw new Error('Failed to parse AI recommendations');
|
|
56
|
+
throw new Error('Failed to parse AI recommendations', { cause: error });
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
function buildRecommendationPrompt(request) {
|
|
@@ -165,6 +165,6 @@ export function GravatarCard(props) {
|
|
|
165
165
|
const photoOnRight = direction === 'right';
|
|
166
166
|
const config = usePixelatedConfig();
|
|
167
167
|
const avatarElement = (_jsx("div", { className: "gravatar-avatar-container", children: _jsx(SmartImage, { src: avatarUrl, alt: displayName, title: displayName, width: avatarSize ?? 120, height: avatarSize ?? 120, quality: 100, className: "gravatar-avatar", cloudinaryEnv: config?.cloudinary?.product_env, cloudinaryDomain: config?.cloudinary?.baseUrl, cloudinaryTransforms: config?.cloudinary?.transforms }) }));
|
|
168
|
-
const contentElement = (_jsxs("div", { className: "gravatar-content", children: [_jsxs("div", { className: "gravatar-header", children: [_jsx("h3", { className: "gravatar-name", children: profileLink ? (_jsx("a", { href: profileLink, target: "_blank", rel: "noopener noreferrer", className: "gravatar-name-link", children: displayName })) : (displayName) }), pronouns && _jsxs("span", { className: "gravatar-pronouns", children: ["(", pronouns, ")"] })] }), (jobTitle || company) && (_jsxs("div", { className: "gravatar-job-company", children: [jobTitle && _jsx("strong", { children: jobTitle }), jobTitle && company && _jsx("span", { children: " at " }), company && _jsx("span", { children: company })] })), location && (_jsxs("div", { className: "gravatar-location", children: ["\uD83D\uDCCD ", location] })), aboutMe && !compact && (_jsx("p", { className: "gravatar-about", children: aboutMe })), (githubUrl || linkedinUrl || twitterUrl || instagramUrl || websiteUrl) && (_jsxs("div", { className: "gravatar-social-links", children: [githubUrl && (_jsx("a", { href: githubUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link", children: "GitHub" })), linkedinUrl && (_jsx("a", { href: linkedinUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link gravatar-social-link-linkedin", children: "LinkedIn" })), twitterUrl && (_jsx("a", { href: twitterUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link gravatar-social-link-twitter", children: "X" })), instagramUrl && (_jsx("a", { href: instagramUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link gravatar-social-link-instagram", children: "Instagram" })), websiteUrl && (_jsx("a", { href: websiteUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link gravatar-social-link-website", children: "Website" }))] }))] }));
|
|
168
|
+
const contentElement = (_jsxs("div", { className: "gravatar-content", children: [_jsxs("div", { className: "gravatar-header", children: [_jsx("h3", { className: "gravatar-name", children: profileLink ? (_jsx("a", { href: profileLink, target: "_blank", rel: "noopener noreferrer", className: "gravatar-name-link", children: displayName })) : (displayName) }), pronouns && _jsxs("span", { className: "gravatar-pronouns", children: ["(", pronouns, ")"] })] }), (jobTitle || company) && (_jsxs("div", { className: "gravatar-job-company", children: [jobTitle && _jsx("strong", { children: jobTitle }), jobTitle && company && _jsx("span", { children: " at " }), company && _jsx("span", { children: company })] })), location && (_jsxs("div", { className: "gravatar-location", children: [_jsx("span", { role: "img", "aria-label": "location", children: "\uD83D\uDCCD" }), " ", location] })), aboutMe && !compact && (_jsx("p", { className: "gravatar-about", children: aboutMe })), (githubUrl || linkedinUrl || twitterUrl || instagramUrl || websiteUrl) && (_jsxs("div", { className: "gravatar-social-links", children: [githubUrl && (_jsx("a", { href: githubUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link", children: "GitHub" })), linkedinUrl && (_jsx("a", { href: linkedinUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link gravatar-social-link-linkedin", children: "LinkedIn" })), twitterUrl && (_jsx("a", { href: twitterUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link gravatar-social-link-twitter", children: "X" })), instagramUrl && (_jsx("a", { href: instagramUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link gravatar-social-link-instagram", children: "Instagram" })), websiteUrl && (_jsx("a", { href: websiteUrl, target: "_blank", rel: "noopener noreferrer", className: "gravatar-social-link gravatar-social-link-website", children: "Website" }))] }))] }));
|
|
169
169
|
return (_jsx("div", { className: `gravatar-card ${isHorizontal ? 'gravatar-card-horizontal' : ''} ${compact ? 'gravatar-card-compact' : ''}`, children: isHorizontal && photoOnRight ? (_jsxs(_Fragment, { children: [contentElement, avatarElement] })) : (_jsxs(_Fragment, { children: [avatarElement, contentElement] })) }));
|
|
170
170
|
}
|
|
@@ -168,7 +168,7 @@ export function SocialCards(props) {
|
|
|
168
168
|
.then((items) => {
|
|
169
169
|
let i = 0;
|
|
170
170
|
for (const prop in items) {
|
|
171
|
-
let myNewCard
|
|
171
|
+
let myNewCard;
|
|
172
172
|
const item = items[prop];
|
|
173
173
|
myNewCard = item;
|
|
174
174
|
/* ===== FIX FOR SOURCE ===== */
|
|
@@ -192,7 +192,7 @@ export function SocialCards(props) {
|
|
|
192
192
|
let allCardData = [];
|
|
193
193
|
for (const prop in state.sources) {
|
|
194
194
|
const source = state.sources[prop];
|
|
195
|
-
let sourceCardData
|
|
195
|
+
let sourceCardData;
|
|
196
196
|
if (Object.prototype.hasOwnProperty.call(source, 'url') && source.url && source.url.length > 0) {
|
|
197
197
|
sourceCardData = await getFeedEntries(source.url, source.entryCount);
|
|
198
198
|
allCardData = [...allCardData, ...sourceCardData];
|
|
@@ -378,5 +378,5 @@ export function EbayRateLimitsVisualizer(props) {
|
|
|
378
378
|
// Check for API-level errors in the returned data
|
|
379
379
|
const hasTokenError = data?.rate_limit?.errors?.[0]?.message === "Invalid access token" ||
|
|
380
380
|
data?.user_rate_limit?.errors?.[0]?.message === "Invalid access token";
|
|
381
|
-
return (_jsxs("div", { style: { padding: '20px', fontFamily: 'sans-serif', border: '1px solid #ddd', borderRadius: '8px' }, children: [_jsx("h3", { children: "Ebay Rate Limits Data Visualizer" }), _jsxs("div", { style: { marginBottom: '20px', display: 'flex', flexDirection: 'column', gap: '10px' }, children: [_jsxs("div", { style: { display: 'flex', gap: '10px', alignItems: 'center' }, children: [_jsx("label", { htmlFor: "ebay-token", children: _jsx("b", { children: "Token:" }) }), _jsx("input", { id: "ebay-token", type: "text", value: token, onChange: (e) => setToken(e.target.value), placeholder: "Paste eBay token here", style: { flexGrow: 1, padding: '5px', fontFamily: 'monospace' } }), _jsx("button", { onClick: fetchToken, disabled: fetchingToken || !apiProps.appId, children: fetchingToken ? 'Fetching Token...' : 'Auto-Fetch Token' })] }), _jsxs("div", { style: { display: 'flex', gap: '10px' }, children: [_jsx("button", { onClick: fetchData, disabled: loading || !token, style: { padding: '8px 16px', cursor: 'pointer', background: '#0070f3', color: 'white', border: 'none', borderRadius: '4px' }, children: loading ? 'Fetching Limits...' : 'Fetch Rate Limits' }), _jsx("button", { onClick: showMockData, style: { padding: '8px 16px', cursor: 'pointer', border: '1px solid #ccc', borderRadius: '4px', background: 'white' }, children: "Load Sample Structure" })] })] }), error && (_jsxs("div", { style: { color: '#d00', background: '#fff5f5', padding: '10px', borderRadius: '4px', marginBottom: '10px', border: '1px solid #feb2b2' }, children: [_jsx("b", { children: "Error:" }), " ", error] })), hasTokenError && (_jsxs("div", { style: { color: '#c53030', background: '#fff5f5', padding: '10px', borderRadius: '4px', marginBottom: '10px', border: '1px solid #feb2b2' }, children: ["\uD83D\uDEA8 ", _jsx("b", { children: "Authentication Error:" }), " Your eBay access token is invalid or expired. Use \"Auto-Fetch Token\" if credentials are set, or paste a new one."] })), data ? (_jsxs("div", { style: { marginTop: '20px' }, children: [_jsxs("div", { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center' }, children: [_jsx("h4", { children: "Response Data:" }), _jsx("button", { onClick: () => setData(null), style: { padding: '4px 8px', fontSize: '12px' }, children: "Clear" })] }), _jsx("pre", { style: { background: '#f8f9fa', padding: '15px', borderRadius: '5px', overflow: 'auto', border: '1px solid #e9ecef', fontSize: '13px' }, children: JSON.stringify(data, null, 2) })] })) : (_jsx("div", { style: { color: '#666', fontStyle: 'italic', marginTop: '20px' }, children: "No rate limit data loaded yet." }))] }));
|
|
381
|
+
return (_jsxs("div", { style: { padding: '20px', fontFamily: 'sans-serif', border: '1px solid #ddd', borderRadius: '8px' }, children: [_jsx("h3", { children: "Ebay Rate Limits Data Visualizer" }), _jsxs("div", { style: { marginBottom: '20px', display: 'flex', flexDirection: 'column', gap: '10px' }, children: [_jsxs("div", { style: { display: 'flex', gap: '10px', alignItems: 'center' }, children: [_jsx("label", { htmlFor: "ebay-token", children: _jsx("b", { children: "Token:" }) }), _jsx("input", { id: "ebay-token", type: "text", value: token, onChange: (e) => setToken(e.target.value), placeholder: "Paste eBay token here", style: { flexGrow: 1, padding: '5px', fontFamily: 'monospace' } }), _jsx("button", { onClick: fetchToken, disabled: fetchingToken || !apiProps.appId, children: fetchingToken ? 'Fetching Token...' : 'Auto-Fetch Token' })] }), _jsxs("div", { style: { display: 'flex', gap: '10px' }, children: [_jsx("button", { onClick: fetchData, disabled: loading || !token, style: { padding: '8px 16px', cursor: 'pointer', background: '#0070f3', color: 'white', border: 'none', borderRadius: '4px' }, children: loading ? 'Fetching Limits...' : 'Fetch Rate Limits' }), _jsx("button", { onClick: showMockData, style: { padding: '8px 16px', cursor: 'pointer', border: '1px solid #ccc', borderRadius: '4px', background: 'white' }, children: "Load Sample Structure" })] })] }), error && (_jsxs("div", { style: { color: '#d00', background: '#fff5f5', padding: '10px', borderRadius: '4px', marginBottom: '10px', border: '1px solid #feb2b2' }, children: [_jsx("b", { children: "Error:" }), " ", error] })), hasTokenError && (_jsxs("div", { style: { color: '#c53030', background: '#fff5f5', padding: '10px', borderRadius: '4px', marginBottom: '10px', border: '1px solid #feb2b2' }, children: [_jsx("span", { role: "img", "aria-label": "error", children: "\uD83D\uDEA8" }), " ", _jsx("b", { children: "Authentication Error:" }), " Your eBay access token is invalid or expired. Use \"Auto-Fetch Token\" if credentials are set, or paste a new one."] })), data ? (_jsxs("div", { style: { marginTop: '20px' }, children: [_jsxs("div", { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center' }, children: [_jsx("h4", { children: "Response Data:" }), _jsx("button", { onClick: () => setData(null), style: { padding: '4px 8px', fontSize: '12px' }, children: "Clear" })] }), _jsx("pre", { style: { background: '#f8f9fa', padding: '15px', borderRadius: '5px', overflow: 'auto', border: '1px solid #e9ecef', fontSize: '13px' }, children: JSON.stringify(data, null, 2) })] })) : (_jsx("div", { style: { color: '#666', fontStyle: 'italic', marginTop: '20px' }, children: "No rate limit data loaded yet." }))] }));
|
|
382
382
|
}
|
|
@@ -66,7 +66,7 @@ getShoppingCartItem.propTypes = {
|
|
|
66
66
|
apiProps: PropTypes.any,
|
|
67
67
|
};
|
|
68
68
|
export function getShoppingCartItem(props) {
|
|
69
|
-
let qty
|
|
69
|
+
let qty;
|
|
70
70
|
const thisItem = props.thisItem;
|
|
71
71
|
const apiProps = props.apiProps;
|
|
72
72
|
const itemCategory = apiProps?.itemCategory;
|
|
@@ -520,7 +520,7 @@ export function ConfigBuilder(props) {
|
|
|
520
520
|
if (debug)
|
|
521
521
|
console.log('AI Recommend button clicked for route:', index);
|
|
522
522
|
handleAiRecommendations(index);
|
|
523
|
-
}, className: "route-button ai-recommend", children: [_jsx("span", { className: "ai-icon", children: "\u2728" }), " Recommend"] }), _jsx("button", { onClick: () => removeRoute(index), className: "route-button remove", children: "Remove" })] })] }, index))) }), _jsx("button", { onClick: addRoute, children: "Add Route" })] }) }))
|
|
523
|
+
}, className: "route-button ai-recommend", children: [_jsx("span", { className: "ai-icon", role: "img", "aria-label": "sparkles", children: "\u2728" }), " Recommend"] }), _jsx("button", { onClick: () => removeRoute(index), className: "route-button remove", children: "Remove" })] })] }, index))) }), _jsx("button", { onClick: addRoute, children: "Add Route" })] }) }))
|
|
524
524
|
},
|
|
525
525
|
{
|
|
526
526
|
id: 'services',
|
|
@@ -98,7 +98,7 @@ export function FontSelector(props) {
|
|
|
98
98
|
}
|
|
99
99
|
return null;
|
|
100
100
|
};
|
|
101
|
-
return (_jsxs("div", { className: "font-selector-container", children: [_jsxs("label", { htmlFor: id, className: "font-selector-label", children: [label, required && _jsx("span", { className: "font-selector-required", children: "*" }), getTooltip() && (_jsx("span", { className: "font-selector-tooltip", title: getTooltip().replace(/\[([^\]]+)\]\([^)]+\)/, '$1'), children: "\uD83D\uDC41\uFE0F" }))] }), _jsxs("div", { className: "font-selector-input-container", children: [_jsx("input", { type: "text", id: id, name: name, value: inputValue ?? '', onChange: handleInputChange, onFocus: handleFocus, onBlur: handleBlur, placeholder: placeholder ?? undefined, required: required ?? false, autoComplete: "off", className: "font-selector-input" }), showDropdown && filteredOptions.length > 0 && (_jsx("div", { className: "font-selector-dropdown", children: isLoading ? (_jsx("div", { className: "font-selector-loading", children: "Loading fonts..." })) : (filteredOptions.map((option) => (_jsxs("div", { className: "font-selector-option", onClick: () => handleOptionSelect(option), onKeyDown: (e) => {
|
|
101
|
+
return (_jsxs("div", { className: "font-selector-container", children: [_jsxs("label", { htmlFor: id, className: "font-selector-label", children: [label, required && _jsx("span", { className: "font-selector-required", children: "*" }), getTooltip() && (_jsx("span", { className: "font-selector-tooltip", title: getTooltip().replace(/\[([^\]]+)\]\([^)]+\)/, '$1'), children: _jsx("span", { role: "img", "aria-label": "preview", children: "\uD83D\uDC41\uFE0F" }) }))] }), _jsxs("div", { className: "font-selector-input-container", children: [_jsx("input", { type: "text", id: id, name: name, value: inputValue ?? '', onChange: handleInputChange, onFocus: handleFocus, onBlur: handleBlur, placeholder: placeholder ?? undefined, required: required ?? false, autoComplete: "off", className: "font-selector-input" }), showDropdown && filteredOptions.length > 0 && (_jsx("div", { className: "font-selector-dropdown", children: isLoading ? (_jsx("div", { className: "font-selector-loading", children: "Loading fonts..." })) : (filteredOptions.map((option) => (_jsxs("div", { className: "font-selector-option", onClick: () => handleOptionSelect(option), onKeyDown: (e) => {
|
|
102
102
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
103
103
|
e.preventDefault();
|
|
104
104
|
handleOptionSelect(option);
|
|
@@ -268,7 +268,7 @@ export function FormExtractEngine(props) {
|
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
else if (props.htmlPaste) {
|
|
271
|
-
let json
|
|
271
|
+
let json;
|
|
272
272
|
if (!htmlPaste || (props.htmlPaste !== htmlPaste)) {
|
|
273
273
|
setHtmlPaste(props.htmlPaste);
|
|
274
274
|
const thisHTML = new DOMParser().parseFromString(props.htmlPaste, 'text/html');
|
|
@@ -68,7 +68,7 @@ export function ComponentSelector(props) {
|
|
|
68
68
|
padding: '0.75rem',
|
|
69
69
|
marginBottom: '1rem',
|
|
70
70
|
color: '#0d47a1'
|
|
71
|
-
}, children: [
|
|
71
|
+
}, children: [_jsxs("strong", { children: [_jsx("span", { role: "img", "aria-label": "add", children: "\u2795" }), " Adding child component"] }), _jsx("div", { style: { fontSize: '0.875rem', marginTop: '0.25rem' }, children: "Select a component type to add as a child" })] })), _jsx("label", { htmlFor: "component-type-selector", style: { display: 'block', marginBottom: '0.5rem', fontWeight: 'bold' }, children: "Component Type:" }), _jsxs("select", { id: "component-type-selector", onChange: handleComponentChange, value: selectedValue, style: {
|
|
72
72
|
marginBottom: '1rem',
|
|
73
73
|
fontSize: '1rem',
|
|
74
74
|
border: '1px solid #ccc',
|
|
@@ -76,7 +76,7 @@ export function ComponentTree({ components, onSelectComponent, onEditComponent,
|
|
|
76
76
|
cursor: 'pointer',
|
|
77
77
|
fontSize: '0.65rem',
|
|
78
78
|
lineHeight: '1',
|
|
79
|
-
}, title: "Move down", children: "\u25BC" })] }),
|
|
79
|
+
}, title: "Move down", children: _jsx("span", { role: "img", "aria-label": "move down", children: "\u25BC" }) })] }), _jsxs("button", { onClick: (e) => {
|
|
80
80
|
e.stopPropagation();
|
|
81
81
|
onEditComponent(component, currentPath);
|
|
82
82
|
}, style: {
|
|
@@ -87,7 +87,7 @@ export function ComponentTree({ components, onSelectComponent, onEditComponent,
|
|
|
87
87
|
borderRadius: '3px',
|
|
88
88
|
cursor: 'pointer',
|
|
89
89
|
fontSize: '0.75rem',
|
|
90
|
-
}, title: "Edit properties", children: "\u270F\uFE0F Edit" }), isLayout && (
|
|
90
|
+
}, title: "Edit properties", children: [_jsx("span", { role: "img", "aria-label": "edit", children: "\u270F\uFE0F" }), " Edit"] }), isLayout && (_jsxs("button", { onClick: (e) => {
|
|
91
91
|
e.stopPropagation();
|
|
92
92
|
onSelectComponent(component, currentPath);
|
|
93
93
|
}, style: {
|
|
@@ -98,7 +98,7 @@ export function ComponentTree({ components, onSelectComponent, onEditComponent,
|
|
|
98
98
|
borderRadius: '3px',
|
|
99
99
|
cursor: 'pointer',
|
|
100
100
|
fontSize: '0.75rem',
|
|
101
|
-
}, title: "Add child component", children: "\u2795 Child" })),
|
|
101
|
+
}, title: "Add child component", children: [_jsx("span", { role: "img", "aria-label": "add", children: "\u2795" }), " Child"] })), _jsxs("button", { onClick: (e) => {
|
|
102
102
|
e.stopPropagation();
|
|
103
103
|
onDeleteComponent(currentPath);
|
|
104
104
|
}, style: {
|
|
@@ -109,7 +109,7 @@ export function ComponentTree({ components, onSelectComponent, onEditComponent,
|
|
|
109
109
|
borderRadius: '3px',
|
|
110
110
|
cursor: 'pointer',
|
|
111
111
|
fontSize: '0.75rem',
|
|
112
|
-
}, title: "Delete component", children: "\uD83D\uDDD1\uFE0F Delete" })] })] }), hasChildren && (_jsx("div", { children: component.children.map((child, childIndex) => renderTreeNode(child, childIndex, `${currentPath}.children`)) }))] }, currentPath));
|
|
112
|
+
}, title: "Delete component", children: [_jsx("span", { role: "img", "aria-label": "delete", children: "\uD83D\uDDD1\uFE0F" }), " Delete"] })] })] }), hasChildren && (_jsx("div", { children: component.children.map((child, childIndex) => renderTreeNode(child, childIndex, `${currentPath}.children`)) }))] }, currentPath));
|
|
113
113
|
}
|
|
114
114
|
return (_jsx("div", { children: components.map((component, index) => renderTreeNode(component, index, 'root')) }));
|
|
115
115
|
}
|
|
@@ -102,16 +102,16 @@ export function PageEngine(props) {
|
|
|
102
102
|
}, title: "Move up", children: "\u25B2" }), _jsx("button", { className: "move-btn move-down", onClick: (e) => {
|
|
103
103
|
e.stopPropagation();
|
|
104
104
|
onMoveDown?.(currentPath);
|
|
105
|
-
}, title: "Move down", children: "\u25BC" })] }), _jsx("button", { className: "edit-btn", onClick: (e) => {
|
|
105
|
+
}, title: "Move down", children: _jsx("span", { role: "img", "aria-label": "move down", children: "\u25BC" }) })] }), _jsx("button", { className: "edit-btn", onClick: (e) => {
|
|
106
106
|
e.stopPropagation();
|
|
107
107
|
onEditComponent?.(componentData, currentPath);
|
|
108
|
-
}, title: "Edit properties", children: "\u270F\uFE0F" }), isLayout && (_jsx("button", { className: "child-btn", onClick: (e) => {
|
|
108
|
+
}, title: "Edit properties", children: _jsx("span", { role: "img", "aria-label": "edit", children: "\u270F\uFE0F" }) }), isLayout && (_jsx("button", { className: "child-btn", onClick: (e) => {
|
|
109
109
|
e.stopPropagation();
|
|
110
110
|
onSelectComponent?.(componentData, currentPath);
|
|
111
|
-
}, title: "Add child component", children: "\u2795" })), _jsx("button", { className: "delete-btn", onClick: (e) => {
|
|
111
|
+
}, title: "Add child component", children: _jsx("span", { role: "img", "aria-label": "add", children: "\u2795" }) })), _jsx("button", { className: "delete-btn", onClick: (e) => {
|
|
112
112
|
e.stopPropagation();
|
|
113
113
|
onDeleteComponent?.(currentPath);
|
|
114
|
-
}, title: "Delete component", children: "\uD83D\uDDD1\uFE0F" })] })] }, `wrapper-${index}`));
|
|
114
|
+
}, title: "Delete component", children: _jsx("span", { role: "img", "aria-label": "delete", children: "\uD83D\uDDD1\uFE0F" }) })] })] }, `wrapper-${index}`));
|
|
115
115
|
}
|
|
116
116
|
const components = [];
|
|
117
117
|
const pageComponents = props?.pageData?.components;
|
|
@@ -126,17 +126,17 @@ export function SaveLoadSection({ pageData, onLoad, apiEndpoint = '/api/pagebuil
|
|
|
126
126
|
border: '1px solid #ccc',
|
|
127
127
|
borderRadius: '4px',
|
|
128
128
|
fontSize: '1rem'
|
|
129
|
-
} })] }), _jsxs("div", { style: { display: 'flex', gap: '0.5rem', marginBottom: '0.5rem' }, children: [
|
|
129
|
+
} })] }), _jsxs("div", { style: { display: 'flex', gap: '0.5rem', marginBottom: '0.5rem' }, children: [_jsxs("button", { onClick: handleSave, disabled: isLoading || !pageName.trim(), className: "button", style: {
|
|
130
130
|
flex: 1,
|
|
131
131
|
background: '#4CAF50',
|
|
132
132
|
color: 'white',
|
|
133
133
|
opacity: isLoading || !pageName.trim() ? 0.5 : 1
|
|
134
|
-
}, children: "\uD83D\uDCBE Save Page" }), _jsxs("button", { onClick: () => setShowLoadList(!showLoadList), disabled: isLoading, className: "button", style: {
|
|
134
|
+
}, children: [_jsx("span", { role: "img", "aria-label": "save", children: "\uD83D\uDCBE" }), " Save Page"] }), _jsxs("button", { onClick: () => setShowLoadList(!showLoadList), disabled: isLoading, className: "button", style: {
|
|
135
135
|
flex: 1,
|
|
136
136
|
background: '#2196F3',
|
|
137
137
|
color: 'white',
|
|
138
138
|
opacity: isLoading ? 0.5 : 1
|
|
139
|
-
}, children: ["\uD83D\uDCC1 ", showLoadList ? 'Hide' : 'Load Page'] })] }), showLoadList && (_jsx("div", { style: {
|
|
139
|
+
}, children: [_jsx("span", { role: "img", "aria-label": "folder", children: "\uD83D\uDCC1" }), " ", showLoadList ? 'Hide' : 'Load Page'] })] }), showLoadList && (_jsx("div", { style: {
|
|
140
140
|
marginTop: '0.5rem',
|
|
141
141
|
padding: '0.5rem',
|
|
142
142
|
border: '1px solid #ddd',
|
|
@@ -167,7 +167,7 @@ export function SaveLoadSection({ pageData, onLoad, apiEndpoint = '/api/pagebuil
|
|
|
167
167
|
padding: '0.25rem 0.5rem',
|
|
168
168
|
cursor: 'pointer',
|
|
169
169
|
fontSize: '0.875rem'
|
|
170
|
-
}, children: "\uD83D\uDDD1\uFE0F" })] }, page))) })) })), message && (_jsx("div", { style: {
|
|
170
|
+
}, children: _jsx("span", { role: "img", "aria-label": "delete", children: "\uD83D\uDDD1\uFE0F" }) })] }, page))) })) })), message && (_jsx("div", { style: {
|
|
171
171
|
marginTop: '0.5rem',
|
|
172
172
|
padding: '0.5rem',
|
|
173
173
|
borderRadius: '4px',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
pxl:v1:
|
|
1
|
+
pxl:v1:b3a4313ab5b83f3892f9f463:120a8b22fafe51e3c603cdcaaca9b922:ae62d0122364ece5f61f4f091ca72c66130ffc8a3f1079b42299826fd56b95529852468e84cf1ef9e7da72be9592af371846c65d65afc6f9447ff83029a33f152d2df1e22f11c83e3554b843c0a8b76456f2936457311f6896ee0338ca57d7907112a56ebb2744b82efb72aa782859c6701fcd8b18ca8c981523a00c28eb96f5742ed296712a16f2e7718e6405af2256eb0eaf9488059f15a08f7ef7ff83b4e6c43cfa74bc86a892f5bd435b19bce33edf166997e9987d50834dcaf3ad7a1b636cc81a0f9fba6efd70e3e346aa86739a575aba7be81a29d52818e6f6960a5c64791465ae0db6b543086f6e119af17c2a47a5f4aebed083c421ddc6a1a50b664edb408038ccaa8debef0d78fdfc493189aeda01ee31e6417f2e0fd3ed144d57d1c45d1dbed67d2ca8645722216526d56701d8ff38b5d96704ccdf0452b205b1ca5b037ed3677ccf7adf76e540efc764d7666feffc3d0c09196569c5b66d6d86fb201514fd6ffea6469846fbebceca4c612a0cf84051d22274088febab65dd65f1f438f631dda0a4b19148a7cff758a65c4cf7610d16e4bdaf98d1c116ba77e51b0064dc1a666f3824d964cfe04d00dae187168660c538615f0055f37607970c9dd20b205d2148e75f8b18126f75b4c6b2f54529730cdb32b8777772f29ff532a1c5bbca99ed07e0bb2d6ca20646cda4b0a2826c72f25ce7290ac93df615ada9a817660a4fde7bdacfeaf4b6a21bcfa9f05ef458d632f1ab7b3b0e97d47c2ff9a171abc873af793d1d5a182eccad7e056453277daa2c4c8c04226be9604e076116101eb0b9116851bf6d793ee76de946d55bfc4cae9995bbfa1738dd865bf912714b556e6c3f67b179441a6c01499b347c863309d5fa6fb67201c3474822e6d8898ec2d61724f00c77cdc64a36a13668f2d97728a86f5a3fa27799bdf967ecfa7c101160961fbdc45693815378f6f43ab1e43a611026f171e690f6a0d7416f960ad693f738f5acbeb113743bf51f343145b03b297250932100e96f9b16af46ab9f30aac25f5c8fc0e7cf848fb0288b7fea643e0d3201ddf56f2c40d9f34bf0946e83d0d25abcb991b75a88d11f4cd6f62f94b6e5d68e619b1874abd08b3da90b5f4cd76a063ef458b5e8dd2ce2fc77b0b625af24afa53a2331d338d94839322887f95e01a0f0df57242f64025a22cd8d1be940ea98fbdb666203377cdcd2047139bd210767729bdc2c67692f2f1a4c7a364aa11b9742f6c076620a472c42c0b40c3f69b3ac0a2fca5fef92c6b642c2c00b2c77124e2e3f7543347f6dc50545506cf79b3e82ec5b830bb229e68e48ebc1c52b7d8772eae04b9ec4863d16ba037aa19ac18482a9ab53661ca1a74c1c7738f26203e315ff5a2c1fe2fe82e95ed50c402a2c8ffaf7fd8570317edc196c26cfbb6c10169f82b64ec32f330501956ae78724d6235c6087e21e01cd5836fb20d0c17f0ffeace53b869896b1a8ffe74c0708ab8573695ac02cfaf19efda6a29fc01f123fc3ad666b4b38b4c5a07952705fab707d8e1bf4cbe613d01015f9d7e0e912cc729973817cd31242d05d1710964e3d94e06b680b332ffc5a66e4e5208a7f1169d12c31277fae4c4a4dd57cce415a87d5b167a56b9bccedee7862e02fc6d025ea4c3431061ef4fc162c9e2385a22d14ec5d89be0094d3ee56aa45434c5e0688bda8c01aed1bc8a86484f12b03a28c8dac2d7f429578267b41f66a64d51e9970708c828093598a6af822ab28828ef1a0cdcc8aa0c1c4285e4920ad56cd96ba3d496a2df1aa66635194343af301b7d0f25378bfbd88844c9888522888f3e00386d2503699a7370ad2267d67fe4e1d16fc7cba0b7f68f4a8631c33fbbf33c6af7ceec388dfc3c0b2ccd737bae46d35bd503d5c3fe78ef292a2ed43504ad943eaecca20dbc6a836845b6d21a1e8796cb6a49552b2fb6380fb02e2bc7146f9b2c6006e234d2d3000828a679281e383fc06a4192eb9ebc54fde74d492a2eb4e32be245e06134522e3bf33504c3c5226eb8a6617f9839e07aa27054128be1bcb9230a45895345f30ed14e8fd5afb4f530ebb96c00fb70ad57c463f8dfd72bfe12276f3127be6147987c912156bbb1227f3116a4f5f3d5a5e4f43cd605dbac4bd4cfd48a1919f8dd1d7f718127dba08b650d23a8bd6f452073ab3017f8a7f5f9493129c5b3d3d31305d25979e190cce3b1bff1798d761811bb86092a1a6f5ef3c7dda3d7b5251f8ed84ad29737fdd6e090a2a014cfc03bfd434f02bc069a0768233d0ca7fe893536653bd91ff2a0004199d42da32321dcc75bd3ff690ad3db60a05b84d62a034ed5e25e455c23e06e309a52d39d39a644a4d81cacb854d925c9b53bdaf491de6f7a599b0df7774fd5639e5c5485c82184959cfaebf389e21079b85913670782b2dc96a3b04e6e798506d8a678909f226da6b10161aa229b10d4800e6cacc3939e20dd4e64f97ba0ec036d5f77546ff7a5a6726e325f2f9925530508b65eb86e8469bbe4af83b4b6c4375615e1ca84383eac490e050f1a85eb36ea55892231d329e557593037a45ee67e146590b11f555617b13cb3f7205ebf01e90a3fe811f0ace688d2e019017544456ac060f5243bc7e0312c1200a20d8f5134eceeb9154445194bb8c0d0d2d04fedb9a202247e8c04c756616ad2642bcdd52e22d46a341ad00e8561d424219e55e25f87dc1b2f7ab0df758419ade1b168082b6c2a2e8cb39c629d5483bfaf4bd465979a0b6e40c7a61d4eaa93b7221fcd42b8e691370e2ca3a11afee8d03c5422c8355762dd65672afbfa4a017fa4341f234e8c99a4b75baeba4b008acce06bfd6227d744ed15c15daa0e430c6ec6a8bf5fe55366cca2a52ed4859401d54457388256c6cdbf26b66b65dd51f8ab89590062aae870aa872c9847ad7c25fa209a0976e27dde1f19b8b7daf96220b2a01344c7ba2b88e38dd3e06b474c5716c806700773794e5940cd1d928d7509fb625e760f099d06cbf604b123dfa29e4c8bcb0465821e050b779d893368e153a1033a6d7ed5ffecf228b3cc295fed48dd287126dd090e1485d905ee993c67f1a71d64b6b826bf0536a31ab6482030ea78a08b67218d044e3a9932255b7a0b61e6aedd19ef7b59ccf62e5662b31d466448c93e700102545eed863c07823099b5e7e9f0daeccae9ad927bfc3e923647cefecae447db3465840dd2439ab5d8343b0ee81a124596b1b54cb7c4d37b7072c4990e3237622d9ad8403f966efe3ac8f0b854219de3eea4d4cf8e7a089b889cc559beee220240ad64960c1e65cd0864205141557e310b398f82fe363a15724636522b58d94a8a2b3fbb692bcb81c4ff8be3b1ac1beb12bff9f2b7d0f6bdc84b2b38dce2521f91fafbe3b04380c0f47e7b9486c616f3c52f3a78a8ba1fc284fabe99132135ea241c9d17da4c5acb0e57c5815d910d9902dcf7e0ec80138e548fcc82c8ab29ae2d5b190983f151f985c50c73ecefb9957d8e17548fb35a78eec469e851a3cdcffd3378c42525f0809b57eaf341585966cecd58928e3a6eb5d43e29b50f050a6a0e530fecf4970f56a4e02890799d2f51b5aa83c2794c7d5cbca861ad90dbc73992808f2760ae511a62a4bbc5f9fd6e0546fe9ba864361131ea38a211248666cbcfd925893e6438a317bd7ed2666be3925ce3169e9d843dc591d55e09ecdc83d7f9b1c1fb9b6820ad98f9ec193761cf1536b22fa76db66e4fda831204961a91aada53735723cca2d89e48685f8f8b1b7dcfbb6802076a26278b0f8b827af9e5fadd2f9f28d5881ef2a1f714deeb3b3d8aba3e5edd6363d8006946d034271262d6a9e3b624b2b1b2d93b52d03480bac7700827d18c738923150161aea04736a38e75c7eccd1ca855d441ac8a456b16bed82d839e9851b49121eeb55d3b128e2e63839fcecd9f7dfbcb405c6d03b35ff577b06290fd632b94f9c8dc539c9e1fb5cde40964e708cb5ac76ef437523c4711e288fb928d7232c37f7d394c9e5b8ee98f6b66e3639ceb9afac823c244873d5c8bdc48244ab6aba32d5f8329e8a4ba4e97c7f522d1b3cd356ff12bc9774397efd7795cf1a9e544b51a9b29244ed87a237a6c9f802d6c0c4969d1d7d02b677a7bdea03cac5aff432c08d2e0730e3ea58b2a0d06246fdc55f4532fc690dbd76b8758ef1a13163915450a502223a18df4a114231023687850dc58d093047cbf4ef6a46463a048206a46d3afb5aad7da80f7931a0f13fc931ad601d88a90b05ee36f60ef1f48ca509691d988ce383aac54cccb0aca76bb1f594deaf77dd2696b029fb893ccfff0ac19dee4bed4fadae40e9208fc702eb7e4016299212caac4dbb1c142429c47fe55cca7de52aef6f00f5641fbc35f1ba0cb1c430c28795e1678706ca899b250fcc600c7ccf32373a37ffd2799cbdfd40e0bfaa0c7b20dfb475a387e76cfd308ce527f5487754ba4149a35bc3e6e123384defff6bcee20f9e1a726941b843ed2e96448d1952ff980e5799b064f55bcdc61710e3ba5a2349b2a0c50b0d4e7b1985b2c2e617c97c82e63b4ddb5a0754ed8e0f67d342acc7f0c7d347375c248398edcf624be16fd7ad6d45cac59378b9abba95b5661283ff2ce347077a837d64a6e6ae0e1606f8c2c776d6c8c4ea0093421da6050ea91a2542ccc8279b1f0e01d7b62df969d068c459b8343349ab444fd971d152cf8856b42176ecb118a5648636b60e01a520feb2e05e062abff9803ab2b40f7f173e1660badff72b7e6e8f95572eb957b74cac785e9ab2f2fc169b2488e9c9e7ed816c745b266a8166e98de744ace3ffdcff18fd96fb5b36ca49c0c390026b48ef307ec596e6e87a01ff988ee2bf2f5cdc3a42e63c46563d2d182897cccd4bae44d166b2d1e67b71b7a7e5f2fbad59d3e434daeb7ff53e8daf3a32427b96cfe4e64059ed69110f3d61426bc9dc5e2341ca02b90ebb42073325c4eda62906ca1193fd0e358d121a565c5fab73ae66c20b278e2d5bb3f568132e4495771014cb707d6a808430a191519d83797410328156d4726dbd02190d17a037cf9025f794089daf2d55f8945a40b1f3e4bdba4d65d0505d3ea3fa0b87f0af0e774cd35f236810c150fc4cb9c9e0d4ad0b488b6dd8f21f4e0d2e442790e818e1a415481058db4686817f02fb6554ba90
|
|
@@ -255,7 +255,7 @@ export async function createAndPushRemote(destPath, siteName, defaultOwner) {
|
|
|
255
255
|
});`;
|
|
256
256
|
await fs.writeFile(tmpFile, tmpContent, 'utf8');
|
|
257
257
|
|
|
258
|
-
let execOut
|
|
258
|
+
let execOut;
|
|
259
259
|
try {
|
|
260
260
|
execOut = await _exec(`npx tsx ${tmpFile}`, { cwd: destPath, timeout: 60_000 });
|
|
261
261
|
} catch (e) {
|
|
@@ -273,7 +273,7 @@ export async function createAndPushRemote(destPath, siteName, defaultOwner) {
|
|
|
273
273
|
throw new Error('Missing provider output');
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
let githubInfo
|
|
276
|
+
let githubInfo;
|
|
277
277
|
try { githubInfo = JSON.parse(outStr); } catch (e) { console.error('❌ Invalid JSON from config provider:', outStr); throw e; }
|
|
278
278
|
const token = githubInfo?.token;
|
|
279
279
|
const cfgOwner = githubInfo?.defaultOwner;
|
|
@@ -373,7 +373,7 @@ export async function createAmplifyApp(rl, siteName, cloneUrl, sitePath) {
|
|
|
373
373
|
try {
|
|
374
374
|
createResp = await client.send(new CreateAppCommand({ name: siteName, platform: 'WEB_DYNAMIC', repository: cloneUrl || undefined, accessToken: githubToken || undefined }));
|
|
375
375
|
} catch (e) {
|
|
376
|
-
throw new Error('Failed to create Amplify app via SDK: ' + (e?.message || e));
|
|
376
|
+
throw new Error('Failed to create Amplify app via SDK: ' + (e?.message || e), { cause: e });
|
|
377
377
|
}
|
|
378
378
|
|
|
379
379
|
const appId = createResp?.app?.appId || createResp?.appId || createResp?.id;
|
package/dist/scripts/release.sh
CHANGED
|
@@ -162,23 +162,31 @@ fi
|
|
|
162
162
|
|
|
163
163
|
|
|
164
164
|
echo ""
|
|
165
|
-
echo "📦 Step $((STEP_COUNT++)): Updating dependencies..."
|
|
165
|
+
echo "📦 Step $((STEP_COUNT++)): Updating dependencies (all sections)..."
|
|
166
166
|
echo "================================================="
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
167
|
+
# iterate through prod/dev/optional sections, only bumping same-major versions
|
|
168
|
+
for scope in "" dev optional; do
|
|
169
|
+
flag=$([ "$scope" ] && echo "--$scope" || echo "")
|
|
170
|
+
save=$([ "$scope" ] && echo "--save-$scope" || echo "--save")
|
|
171
|
+
pkgs=$(npm outdated $flag --parseable --long | awk -F: '{ split($2,c,"@"); split($4,l,"@"); split(c[2],cv,"\\."); split(l[2],lv,"\\."); if(cv[1]==lv[1]) print $4 }')
|
|
172
|
+
if [ -n "$pkgs" ]; then
|
|
173
|
+
echo "Updating $scope packages: $pkgs"
|
|
174
|
+
echo "$pkgs" | xargs npm install --force $save 2>/dev/null || true
|
|
175
|
+
else
|
|
176
|
+
echo "✅ No $scope updates needed"
|
|
177
|
+
fi
|
|
178
|
+
done
|
|
179
|
+
# report peer deps separately
|
|
180
|
+
peers=$(npm outdated --parseable --long --peer | awk -F: '{print $4}')
|
|
181
|
+
printf "peer deps (manual): %s\n" "$peers"
|
|
175
182
|
|
|
176
183
|
|
|
177
184
|
|
|
178
185
|
echo ""
|
|
179
186
|
echo "📦 Step $((STEP_COUNT++)): Updating Audit Fixes..."
|
|
180
187
|
echo "================================================="
|
|
181
|
-
|
|
188
|
+
# remove --force to avoid breaking changes
|
|
189
|
+
npm audit fix 2>/dev/null || true
|
|
182
190
|
|
|
183
191
|
|
|
184
192
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# update.sh - refresh dependencies across all sections
|
|
5
|
+
# usage: bash src/scripts/update.sh
|
|
6
|
+
|
|
7
|
+
for type in "" --dev --optional --peer; do
|
|
8
|
+
case $type in
|
|
9
|
+
"") flag=""; installArgs="--save" ;;
|
|
10
|
+
--dev) flag=--dev; installArgs="--save-dev" ;;
|
|
11
|
+
--optional) flag=--optional; installArgs="--save-optional" ;;
|
|
12
|
+
--peer) flag=--peer; installArgs="" ;;
|
|
13
|
+
esac
|
|
14
|
+
|
|
15
|
+
UPDATES=$(npm outdated $flag | awk 'NR>1 {print $1"@"$3}' || true)
|
|
16
|
+
if [ -n "$UPDATES" ]; then
|
|
17
|
+
echo "Updating $type packages: $UPDATES"
|
|
18
|
+
if [ "$type" = "--peer" ]; then
|
|
19
|
+
echo "peer deps need manual bumping: $UPDATES"
|
|
20
|
+
else
|
|
21
|
+
echo "$UPDATES" | xargs npm install --force $installArgs 2>/dev/null || true
|
|
22
|
+
fi
|
|
23
|
+
echo "✅ Updated $type packages"
|
|
24
|
+
else
|
|
25
|
+
echo "✅ No $type updates needed"
|
|
26
|
+
fi
|
|
27
|
+
done
|
|
28
|
+
|
|
29
|
+
# print peer dependencies that need manual update
|
|
30
|
+
peers=$(npm outdated --parseable --long --peer | awk -F: '{print $4}')
|
|
31
|
+
printf "peer deps (manual): %s\n" "$peers"
|
|
32
|
+
|
|
33
|
+
npm audit fix 2>/dev/null || true
|
|
@@ -49,7 +49,7 @@ export function zipPixelatedTheme(inputPath, zipName = 'Pixelated.zip') {
|
|
|
49
49
|
console.log(`Removed existing zip: ${zipPath}`);
|
|
50
50
|
}
|
|
51
51
|
} catch (err) {
|
|
52
|
-
throw new Error(`Failed to remove existing zip '${zipPath}': ${err?.message ?? err}
|
|
52
|
+
throw new Error(`Failed to remove existing zip '${zipPath}': ${err?.message ?? err}`, { cause: err });
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
// Ensure `zip` command is available
|
|
@@ -74,9 +74,9 @@ export function zipPixelatedTheme(inputPath, zipName = 'Pixelated.zip') {
|
|
|
74
74
|
} catch (err) {
|
|
75
75
|
// Normalize ENOENT into a clearer message for callers/tests
|
|
76
76
|
if (err && err.code === 'ENOENT') {
|
|
77
|
-
throw new Error('`zip` command not found on PATH — please install zip (e.g. `brew install zip`)');
|
|
77
|
+
throw new Error('`zip` command not found on PATH — please install zip (e.g. `brew install zip`)', { cause: err });
|
|
78
78
|
}
|
|
79
|
-
throw new Error(`Failed to run zip: ${String(err)}
|
|
79
|
+
throw new Error(`Failed to run zip: ${String(err)}`, { cause: err });
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
if (result && result.error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hero.d.ts","sourceRoot":"","sources":["../../../../src/components/general/hero.tsx"],"names":[],"mappings":"AAEA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,YAAY,CAAC;AA+BpB,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AACzD,wBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAkB,EAAE,MAAe,EAAE,QAAQ,EAAE,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"hero.d.ts","sourceRoot":"","sources":["../../../../src/components/general/hero.tsx"],"names":[],"mappings":"AAEA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,YAAY,CAAC;AA+BpB,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AACzD,wBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAkB,EAAE,MAAe,EAAE,QAAQ,EAAE,EAAE,QAAQ,2CA2DnG;yBA3De,IAAI;;QAdnB,sCAAsC;;QAEtC,2DAA2D;;QAE3D,8BAA8B;;QAE9B,6CAA6C;;QAE7C,6DAA6D;;QAE7D,gDAAgD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../../../src/components/general/recipe.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,cAAc,CAAC;AAetB,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,GAAG,GAAG,gBAAgB,CAuD5E;AAwDD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AACrE,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,2CAkF/C;yBAlFe,UAAU;;QAT1B,kEAAkE;;YAEhE,qDAAqD;;;QAGtD,uEAAuE;;;;AA6GxE,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,2CAOvD;yBAPe,cAAc;;QAV9B,uCAAuC;;QAEtC,+CAA+C;;QAE/C,6BAA6B;;QAE7B,oEAAoE;;;;AA+BrE,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAE,KAAK,EAAE,kBAAkB,2CA0CxD;yBA1Ce,cAAc;;QAR9B,oEAAoE;;QAEnE,oCAAoC;;QAEpC,wEAAwE;;;;AAiEzE,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../../../src/components/general/recipe.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,cAAc,CAAC;AAetB,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,GAAG,GAAG,gBAAgB,CAuD5E;AAwDD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AACrE,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,2CAkF/C;yBAlFe,UAAU;;QAT1B,kEAAkE;;YAEhE,qDAAqD;;;QAGtD,uEAAuE;;;;AA6GxE,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,2CAOvD;yBAPe,cAAc;;QAV9B,uCAAuC;;QAEtC,+CAA+C;;QAE/C,6BAA6B;;QAE7B,oEAAoE;;;;AA+BrE,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAE,KAAK,EAAE,kBAAkB,2CA0CxD;yBA1Ce,cAAc;;QAR9B,oEAAoE;;QAEnE,oCAAoC;;QAEpC,wEAAwE;;;;AAiEzE,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,2CA+CvD;yBA/Ce,cAAc;;QAR9B,uEAAuE;;QAEtE,kEAAkE;;QAElE,4FAA4F;;;;AA2D7F,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,wBAAgB,SAAS,4CAwBxB;yBAxBe,SAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ebay.components.d.ts","sourceRoot":"","sources":["../../../../src/components/shoppingcart/ebay.components.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AASnD,OAAO,+BAA+B,CAAC;AACvC,OAAO,YAAY,CAAC;AAkBpB,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,2CAmG7C;yBAnGe,SAAS;;QANzB,8CAA8C;;QAE7C,mEAAmE;;;;AAwHpE,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ebay.components.d.ts","sourceRoot":"","sources":["../../../../src/components/shoppingcart/ebay.components.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AASnD,OAAO,+BAA+B,CAAC;AACvC,OAAO,YAAY,CAAC;AAkBpB,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,2CAmG7C;yBAnGe,SAAS;;QANzB,8CAA8C;;QAE7C,mEAAmE;;;;AAwHpE,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,kDAsEvD;yBAtEe,cAAc;;QAN9B,0DAA0D;;QAEzD,yCAAyC;;;;AA+F1C,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CAwDnD;yBAxDe,YAAY;;QAR5B,uBAAuB;;QAEtB,8CAA8C;;QAE9C,0BAA0B;;;;AA+E3B,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,2CASvD;yBATe,cAAc;;QAR9B,0BAA0B;;QAEzB,sCAAsC;;QAEtC,6CAA6C;;;;AAkC9C,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,2CAuFvD;yBAvFe,cAAc;;QAR9B,6BAA6B;;QAE5B,wCAAwC;;QAExC,kDAAkD;;;;AA4GnD,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,SAAS,CAAC,CAAC;AACjG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,4BAA4B,2CAgK3E;yBAhKe,wBAAwB;;QANxC,iDAAiD;;QAEhD,uCAAuC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentSelector.d.ts","sourceRoot":"","sources":["../../../../../../src/components/sitebuilder/page/components/ComponentSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA6BnD,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACnF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"ComponentSelector.d.ts","sourceRoot":"","sources":["../../../../../../src/components/sitebuilder/page/components/ComponentSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA6BnD,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACnF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,2CAkF7D;yBAlFe,iBAAiB;;QAXjC,oDAAoD;;QAEnD,wDAAwD;;QAExD,2FAA2F"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixelated-tech/components",
|
|
3
|
-
"version": "3.13.
|
|
3
|
+
"version": "3.13.7",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"private": false,
|
|
5
6
|
"author": {
|
|
6
7
|
"name": "Pixelated Technologies",
|
|
@@ -87,7 +88,7 @@
|
|
|
87
88
|
"config:decrypt": "npm run config:vault -- decrypt src/config/pixelated.config.json.enc",
|
|
88
89
|
"create-pixelated-app": "node src/scripts/create-pixelated-app.js",
|
|
89
90
|
"zip-theme": "node src/scripts/zip-pixelated-theme.js ../pixelated-blog-wp-theme Pixelated.zip",
|
|
90
|
-
"update": "
|
|
91
|
+
"update": "bash dist/scripts/update.sh"
|
|
91
92
|
},
|
|
92
93
|
"scripts-20260113": {
|
|
93
94
|
"build": "npm run validate-exports && npm run buildClean && npm run tsc && npm run rsync && npm run tscClean ",
|
|
@@ -97,10 +98,11 @@
|
|
|
97
98
|
"tscClean": "rm -rf dist/{images,stories,tests}",
|
|
98
99
|
"rsync": "(cd src && tar -cf - $(find . -name \"*.css\" -o -name \"*.scss\" -o -name \"*.json\") scripts/) | tar -C dist -xf -",
|
|
99
100
|
"rsync1": "find src -type f \\( -name \"*.css\" -o -name \"*.scss\" -o -name \"*.json\" \\) -exec sh -c 'mkdir -p dist/$(dirname \"${1#src/}\") && cp \"$1\" dist/\"${1#src/}\"' _ {} \\; ; find src/scripts -type f -exec sh -c 'mkdir -p dist/$(dirname \"${1#src/}\") && cp \"$1\" dist/\"${1#src/}\"' _ {} \\;",
|
|
100
|
-
"rsync2": "rsync -a --include='*.css' --include='*.scss' --include='*.json' --include='scripts/**' --include='*/' --exclude='*' src/ dist"
|
|
101
|
+
"rsync2": "rsync -a --include='*.css' --include='*.scss' --include='*.json' --include='scripts/**' --include='*/' --exclude='*' src/ dist",
|
|
102
|
+
"update": "UPDATES=$(npm outdated | awk 'NR>1 {print $1\"@\"$3}' || true); if [ -n \"$UPDATES\" ]; then echo \"Updating the following packages: $UPDATES\"; echo \"$UPDATES\" | xargs npm install --force --save 2>/dev/null || true; echo \"✅ Successfully updated: $UPDATES\"; else echo \"✅ No dependency updates needed.\"; fi; npm audit fix 2>/dev/null || true",
|
|
103
|
+
"update-all": "npm run update && UPDATES=$(npm outdated --dev | awk 'NR>1 {print $1\"@\"$3}') && [ -n \"$UPDATES\" ] && echo \"$UPDATES\" | xargs npm install --force --save-dev; UPDATES=$(npm outdated --optional | awk 'NR>1 {print $1\"@\"$3}') && [ -n \"$UPDATES\" ] && echo \"$UPDATES\" | xargs npm install --force --save-optional; npm audit fix"
|
|
101
104
|
},
|
|
102
105
|
"scripts-old": {
|
|
103
|
-
"buildBabel": "npm run buildClean && NODE_ENV=production babel src --out-dir dist --copy-files",
|
|
104
106
|
"build-webpack": "rm -rf dist && npx tsc --project tsconfig.json && webpack --config webpack.config.js && npm run build-webpack-rsync",
|
|
105
107
|
"build-webpack-rsync": "rsync -a --include='*' --include='*/' src/css dist/css"
|
|
106
108
|
},
|
|
@@ -110,30 +112,28 @@
|
|
|
110
112
|
"html-entities": "^2.6.0"
|
|
111
113
|
},
|
|
112
114
|
"devDependencies": {
|
|
113
|
-
"@aws-sdk/client-amplify": "^3.
|
|
114
|
-
"@aws-sdk/client-cloudwatch": "^3.
|
|
115
|
-
"@aws-sdk/client-iam": "^3.
|
|
116
|
-
"@aws-sdk/client-route-53": "^3.
|
|
117
|
-
"@
|
|
115
|
+
"@aws-sdk/client-amplify": "^3.996.0",
|
|
116
|
+
"@aws-sdk/client-cloudwatch": "^3.996.0",
|
|
117
|
+
"@aws-sdk/client-iam": "^3.996.0",
|
|
118
|
+
"@aws-sdk/client-route-53": "^3.996.0",
|
|
119
|
+
"@aws-sdk/xml-builder": "^3.972.5",
|
|
118
120
|
"@babel/core": "^7.29.0",
|
|
119
121
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
120
122
|
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
|
|
121
123
|
"@babel/preset-env": "^7.29.0",
|
|
122
124
|
"@babel/preset-react": "^7.28.5",
|
|
123
125
|
"@babel/preset-typescript": "^7.28.5",
|
|
124
|
-
"@eslint/js": "^
|
|
125
|
-
"@
|
|
126
|
-
"@
|
|
127
|
-
"@storybook/addon-a11y": "^10.2.9",
|
|
128
|
-
"@storybook/addon-docs": "^10.2.9",
|
|
126
|
+
"@eslint/js": "^10.0.1",
|
|
127
|
+
"@storybook/addon-a11y": "^10.2.11",
|
|
128
|
+
"@storybook/addon-docs": "^10.2.11",
|
|
129
129
|
"@storybook/addon-webpack5-compiler-babel": "^4.0.0",
|
|
130
130
|
"@storybook/preset-scss": "^1.0.3",
|
|
131
|
-
"@storybook/react-webpack5": "^10.2.
|
|
131
|
+
"@storybook/react-webpack5": "^10.2.11",
|
|
132
132
|
"@testing-library/dom": "^10.4.1",
|
|
133
133
|
"@testing-library/react": "^16.3.2",
|
|
134
134
|
"@testing-library/user-event": "^14.6.1",
|
|
135
135
|
"@types/md5": "^2.3.6",
|
|
136
|
-
"@types/node": "^25.
|
|
136
|
+
"@types/node": "^25.3.0",
|
|
137
137
|
"@types/prop-types": "^15.7.15",
|
|
138
138
|
"@types/react": "^19.2.14",
|
|
139
139
|
"@types/react-dom": "^19.2.3",
|
|
@@ -145,24 +145,20 @@
|
|
|
145
145
|
"ajv": "^8.18.0",
|
|
146
146
|
"ajv-keywords": "^5.1.0",
|
|
147
147
|
"babel-loader": "^10.0.0",
|
|
148
|
-
"clean-webpack-plugin": "^
|
|
148
|
+
"clean-webpack-plugin": "^1.0.1",
|
|
149
149
|
"copy-webpack-plugin": "^13.0.1",
|
|
150
150
|
"css-loader": "^7.1.4",
|
|
151
|
-
"eslint": "^9.39.
|
|
152
|
-
"eslint-
|
|
153
|
-
"eslint-plugin-import": "^2.32.0",
|
|
151
|
+
"eslint": "^9.39.3",
|
|
152
|
+
"eslint-plugin-import": "^1.16.0",
|
|
154
153
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
155
|
-
"eslint-plugin-n": "^17.24.0",
|
|
156
|
-
"eslint-plugin-promise": "^4.3.1",
|
|
157
154
|
"eslint-plugin-react": "^7.37.5",
|
|
158
|
-
"
|
|
159
|
-
"
|
|
160
|
-
"happy-dom": "^20.6.2",
|
|
155
|
+
"file-loader": "^6.2.0",
|
|
156
|
+
"happy-dom": "^20.7.0",
|
|
161
157
|
"jsdom": "^28.1.0",
|
|
162
158
|
"less-loader": "^12.3.1",
|
|
163
159
|
"mini-css-extract-plugin": "^2.10.0",
|
|
164
160
|
"next": "^16.1.6",
|
|
165
|
-
"null-loader": "^0.1
|
|
161
|
+
"null-loader": "^4.0.1",
|
|
166
162
|
"prop-types": "^15.8.1",
|
|
167
163
|
"react": "^19.2.4",
|
|
168
164
|
"react-dom": "^19.2.4",
|
|
@@ -171,11 +167,11 @@
|
|
|
171
167
|
"redux": "^5.0.1",
|
|
172
168
|
"sass": "^1.97.3",
|
|
173
169
|
"sass-loader": "^16.0.7",
|
|
174
|
-
"storybook": "^10.2.
|
|
170
|
+
"storybook": "^10.2.11",
|
|
175
171
|
"style-loader": "^4.0.0",
|
|
176
172
|
"ts-loader": "^9.5.4",
|
|
177
173
|
"typescript": "^5.9.3",
|
|
178
|
-
"url-loader": "^
|
|
174
|
+
"url-loader": "^4.1.1",
|
|
179
175
|
"vitest": "^4.0.18",
|
|
180
176
|
"webpack": "^5.105.2",
|
|
181
177
|
"webpack-cli": "^6.0.1",
|
|
@@ -188,21 +184,13 @@
|
|
|
188
184
|
"react-dom": "^19.2.0"
|
|
189
185
|
},
|
|
190
186
|
"optionalDependencies": {
|
|
191
|
-
"@aws-sdk/client-cloudwatch": "^3.
|
|
187
|
+
"@aws-sdk/client-cloudwatch": "^3.996.0",
|
|
192
188
|
"@aws-sdk/client-route-53": "^3.893.0",
|
|
193
189
|
"googleapis": "^171.4.0",
|
|
194
190
|
"md5": "^2.3.0",
|
|
195
|
-
"puppeteer": "^24.37.
|
|
191
|
+
"puppeteer": "^24.37.5",
|
|
196
192
|
"react-redux": "*",
|
|
197
193
|
"recharts": "^3.7.0",
|
|
198
194
|
"redux": "*"
|
|
199
|
-
}
|
|
200
|
-
"overrides": {
|
|
201
|
-
"eslint-config-standard": {
|
|
202
|
-
"eslint": "^9.39.2",
|
|
203
|
-
"eslint-plugin-n": "^17.23.2",
|
|
204
|
-
"eslint-plugin-promise": "^7.2.1"
|
|
205
|
-
}
|
|
206
|
-
},
|
|
207
|
-
"type": "module"
|
|
195
|
+
}
|
|
208
196
|
}
|