@pixelated-tech/components 3.13.4 → 3.13.6
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 +2 -1
- 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/integrations/wordpress.css +1 -0
- 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 +7 -3
- 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 +31 -42
|
@@ -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
|
|
@@ -197,6 +197,7 @@ async function runAxeCoreAnalysis(url, runtime_env = 'auto') {
|
|
|
197
197
|
}
|
|
198
198
|
catch (err) {
|
|
199
199
|
let injected = false;
|
|
200
|
+
let lastError;
|
|
200
201
|
// Try common local node_modules locations relative to process.cwd() and __dirname
|
|
201
202
|
const possiblePaths = [
|
|
202
203
|
path.join(process.cwd(), 'node_modules', 'axe-core', 'axe.min.js'),
|
|
@@ -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() || '', style: { height: height ?? '60vh' } }), children] }) }));
|
|
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:19583b2d4cffcf9960898880:e73ee5b6d8c0ed02bf573a7ebb38abdc:e72b5481c485ee728bcdc549d4a134c698f335ccfbe83a8b19b4643a533f3de9dc49e93dbdeb7066305d74f04f0794dabf108f6cb4f31ecfbe27e45636147eb4c6f66e2f308ca25d7ab8cad465b7a29f8dbe2d20871df5ea1c2190cdc9ec2ccfc65348e95e2347b0a8bf2e65cb1f8c72ed9ac882b112a16a46623d042893f7e6768ad60c0d2f15b06af324b0db4b8d50a732f334a8c66031f734f00dbd06bded7addcd4f1bc0ca75aecb71739439a762d3795b86bf6309c51bfc790a6953f449aea40e7362ba492057d5dcfb330a544837e85b1ae02da591149d92151b72f9cff92037ad8e24db20459065d37754d4d56f5b21496cad5d34fcece3f8b2a04f571d7bc3111b0003ac3ab6d3f3c6be26405372e491f662ae56ac64f1b3f0eb7351ecae27a510f0c7d38da8850099506f1a05c696d86cb646136a55df756de37ce577cd9e38a57f4f5037283391dab2220bec50eb578fbe061a815c42d3e43b66bd48b54c0f4d89cc2c3bed153917b63099ff281afbb84fcf3b2ecf441d8d6954fd416f65b9adb4d35958ad50c0499c6e3546c5d44d021404a080f954e20df1abcd736f7622f018b24cb8c51b0a1bdd0b399dae60ba501da0e99d07d3c22cfcaff1b14095f1327208df1ef4510735e370a2fde079688d3f270602fa89816e1e0de2d27dd6e33fc456b30a4cae7f391a6b70c6e62c41a23a5fbabc8f644e4f0d352a151a4b3fdfdfc8b96ba2e375f7b1ad99429ed11d704afdf518718a0cd5644259518a75b153207baccee9d7409034668960115b54dfc275052c4609afdc5f3efd76d3081f92fc5847c8b10aa72e1e014b20a8579a856c83b067438e300681ef38d710b234577bd74889b6bfd3941f50ac836bcba61e11f31bcd6edc1966ed16966b82d7e71875dbfc22a5143e443dabf268f8b872411ab927b971e04f01cf306f63a1f2d9f3b831373f0c4da16411f1407b528b838754cb6254b5b30e31271c91c9198f4e422b293ac8bf83cf76d6855fcae4ffe5b97a09f83176146b192ed5fb2f45d71ef1391c6d9111aba24f2e346f140fd5103fc35e4bc0e99bcb829cc554e562bf08a2987a43697e2b7467397862081d6da852f5d134d9ebeaa31ed8b8ab308fead700d0dbfb701dba2c56380f93a304dd9565ab5c249d86f5a7ed75a33604c74b129aedb83bac274242514a6904056b7fac94503c95c9e260c5473eccf81848ca98a8c85aede061e0a3a9b54a448c2fd18a4371d31766b3a8538b50f15feda7034cbc1f18f1c3fa4a650b42e28135e56210902b4b972cc766f53972cb9f5c1ec183b50f4e916a4b9ce7f351dd4e10d98d34129e1a1b208268d7327000e2e235f2db9f1c4fc58fa19015cab3b93aa4af1bd623d766c9b4db64d015647b4b06f0d45b70d1a09231fd7427476c98eb30d2b8c70c410a4fdb42902bf9ce63753948064312d16d6910840eaec8a3ea93b56041de614d60c3568fc185793b336770f1a52f8230ee090147325b19a05418b19a1d39d1b420f7b174e9c57ce0f623ea09c7662bad65115025b84b677ab49fbab30370ef52b7fd742f1dd68def6fe345e051cad1fc6cf5d44d8e149ffdc35e50faaff77aa43758e4a0a7ad4c603e8282b1f1d7c7a5a505cb6892fd0ccfb2a60a7b7818d9f0d7fdeb45e012868e5f14d736022ebe3446a6f7b213e4fb617ffeadfc748bc4641123fcc9a711584ffafdbceaf12a059b044cd68b6682f53e136960f06788949fdbffb044f4fc67046732f7bbde208b38d2e76ba7662964f0856dd8a380cf0983236240fa9e4dcc138790a3e7264d5a9b280f81cf3e9b6b86bbe066d37bef68cedcb0b9ec913f53d71364872f020d0ed6f410170fc91b582905bd36a10b32199d1f3031a9d2309bab7108dc144c4d8b54fb57e61388728298a8e1343d23e5ffddc18822d20a6caa9d8286bbc9a6d30ad914b785c02daf03d95f65e0f7ee03ce9d780bcfc783c5712258aae147eb917d1e1757ea0a631f2d790c721ed239eeb0a051c6cb270ec98647eb6f40bcede502cced490deb1888576d5d68fe680b1cb63fbdf8fa577617ed22b60f59f3760386766e11ad9b7ced8fb3d83fe9fbda75e562a5da38fd66f5d9623ed4186b7c7503f7d7b1fb8038b7e7b04ac183c0af83e51a7ce86048fed388a1a5ac46142961eba722efb14646475329f9697a8b496eb41e3a951e1e90eff05c50bcd6e7adc143c6ef54ec80c49bdacda5f2e7c50f00e666b60b55cc6f8440cd886f7c0356ec956de7b5b9a49ca5ce38a1abd31ddad53d18fb6784f413cd3ac5e8ad9efd5b1d7efdc87dda531f7b4d724de806c93991ae81acfb6a93d69b203e1cab6e2522d0af98c426a3094bbf278d4d2e8485f5bcc403cb0bf4cf3dd0471082a8c27877a63e1927ead904a16fbd80d74bb0d286d4c5659c864a0c8e7a1cda2706a424a4bb6f2ac3d5f925282bdbd013ac1f893b71bb255f35befe53cc05ad38cad4984816aa4362d78c466ae12cec0ecad84f1d87a84cab700fbaf0e5f2c93cd60ff93fa379d61d0399637c7084700f9615b9deaea2a36d8622b3a2503166b59ac1e0d3ac653837373dc1f3f15cceb7bec7338452b0386c616a95c61341f4455f9f18db6205474f10bf29936f3f99375048df0620b4479a9cf7f93ec45768e2753fcb7fe8428dd2c680a2837d6ff22c23d433b6ce5fd53007e655d6c54129da61fa572d8181c584316bd761bc9cf600da95c47583cff1eeefd612bfdb1082165763861449bfa04ef37120b4be70a7f988708f2bba2d9d3c45c35328ee4c896ba94f0108806e60b11fe6c190fc34c9aaf80e40cf46602ae9024afd5fa9e45b242d6ffad514114e368ba79e38626613ebc068e2320199972bbadba8f36767368a79e32e77ca8049da792ed14241d50c585e01585ea95550a0135c434dff3c66afcfa7bf669640a1a6cc34e085d52d996eeaf1626694aa32d3b3d3dc128afe302a4ebe7e8def8a968861bf14d9eda7dedb250fbe317c10527dd517e0c53d3eaff395e290fab3ceda9447292451b44938d49fc696f09d51aff79b1d20b36ac97dd8d284dc5c98ad5fdb94745b32a7371b70cbbf3d9457a65863e3edfe187bc0779221153be444c38ecce6bd46f42399015fe4209a39e4fa0127f4862432d7fb6db829294d472c96a105db4c3e02463e253ce7c30d5aa8e45061f61d413211a389ed744dfc7ecca99e2793e2e71134a10e114b67bb29571b363eea388d4763fae1e86453b124a9b0a0726b63395a853525522dd2a244b18f422f05e57d2c47f8b527150259471c5b0c4c8c0ecc4b3a9eded3107fed768d5f564e342c68c71e1cd0144c8f883f065a51b4a46a3c03452b2e72437d3e0ac43ab7fd8b53b18508fdbe6baf49412d04b84dd44abcec211762c29664bb5244223e06d63727221184d17825ca16dc65fe33e8f1e93e9f092854144d58a70dc96fadfdb4312b513daff6db6ea7cc24d34fbd5303885aa3b07905381b87e44fdaf2c0202a2f49716a393c3e01cb14eb53292a00d98c520b3f160cdb3b024878da4822495084f7402af6b48b3cfbbe4ca8fd78d575616f8b8b0560681a49ae402fbb408ccc5970a13bf0efa01d6680a674b64d36ecfa0a34cfb0de566e29d2021b04ab512f6316e125876255840b5deeaf816e888f0b4692b0b0c0c61981b1f384c0b3d6cf283cd956758505d9788cdf5089703b08c31d090bfc19b637b42bc7266dfee6fe70e493dd71156c31e8bfab797bdb4a0f1d93ca536103d7e4abc8358b5648a79c98ad73ff277c85da7e694a34aad92f2184bf0d38d3f1c1294ec6881698b4b771d604beab7025eec814177c5afbbf8ac6b8c7a98faa182514c0dd770e2a99a353e58f64e994a26c35240277df9a543a5fb1a93f47ecc6936fa5fa2ddbb8872f73de0550df9c8800c3a56ebf989c9e591882d877db06044d82054e6d1cb9a919030cabbaa33f3932386df2f63cfa73e107fad014765f98b109e4bc5c8b9157ff32b806aa13d2f6fc853220ab35721be88649e9c43eeef0dd17adcf42dcf612d177390526ba680bee4de1c6a92985abdc2c9a997f65bdb255950e8b860a502451d32bcf7965d6fe31eb09b48ecae97ec21f99bd2f1c3aeb49612987b8557f1e97e925a9d588d5a5b0b14674ab771e51d37574dacc51427dc97a7c68e7066a81262266493f23e9449848cbd418ef43e60e4eeaa41c67f2b0b57dca0696e4b2e22fa44b852bde27cde94e2905d75d335335d556632bfd6c42472bc6257248465a79f8422232e690e9e9268d2ce05108e10b1f2687b81f43fbebba95d0b504351d3bc5ce583a564b7b08c161fcd5d77cad808444f35a37fbfd9f9d529f9c350c0d7f182e959632448002f1e8c500fb75fb4b29b703ddde7e768935bae4d3a54239f624573276ca088a89064af9a254926533626a2f88ef52846b171cb3ce9b454e7763a2d57d2e39ebbc72c524e408152e14ffc8836ec4ca1c7a5120c730dad3407e61528c5bed2d8f4c045f06761acb2837f0aa334c4093d70829bedc07e49df72cb95be2e70c9fa6fa50a2c43a66f0634207e04a18c8020487b3c1ab89c53171fb52dfbf337adc38d96587bb8968f8d346091782edf9e871f6be3320701c7ec4bc73332f5486ac3103cb900d887d0e53eea1a60e923def40e28f0cc3f1f03483c760512fd88f59ebc9d3f6fd2e0af899c14bfaf15e210508ff0400ec57bbf0ff73603552f4b0c935991f0bc2a4564ba004810c2b109558f016d34e76351ebbd8344aed1a0c203629eda2ae82cef2e294e72461912eb9d075f2247558abf9085b177c1ef08086cc800bca75a968ea543d0602ff9f045375f4a4c6d0095d709df5b58f2669dda6a2a43057a3977475b57ad69e741b15e3bdc22df2523c903d6f3bb52ae5ed9e2d41705a8ca5cc5538cb53b10b13780c329537255222a458bfc2ca2404043b73edf776fb213e6dda63fab89bb05239f3ae51af23a45e1d10e3fd2513b9016d417dbc06b1f0f1cf8dd105eb10bdb21d7893f70c50704e27f8312d81142e628439d0a97934f90ab55700b67440341a92e3e93642af1e3344b0c8ccbcd799c076c3ab5c6c69645bde836fcf174db35338c78c41a9880958918b11e0fd434dfad18cfd9f54b38d9b40379973a61f049ede301ac0
|
|
@@ -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
|
@@ -164,10 +164,13 @@ fi
|
|
|
164
164
|
echo ""
|
|
165
165
|
echo "📦 Step $((STEP_COUNT++)): Updating dependencies..."
|
|
166
166
|
echo "================================================="
|
|
167
|
-
|
|
167
|
+
# build list of packages we can actually update (use the "wanted" column \3 instead of latest \4 so we stay inside semver)
|
|
168
|
+
UPDATES=$(npm outdated | awk 'NR>1 {print \$1"@"\$3}' || true)
|
|
169
|
+
|
|
168
170
|
if [ -n "$UPDATES" ]; then
|
|
169
171
|
echo "Updating the following packages: $UPDATES"
|
|
170
|
-
|
|
172
|
+
# removed --force from npm install to avoid unnecessary breaking updates
|
|
173
|
+
echo "$UPDATES" | xargs npm install --save 2>/dev/null || true
|
|
171
174
|
echo "✅ Successfully updated: $UPDATES"
|
|
172
175
|
else
|
|
173
176
|
echo "✅ No dependency updates needed."
|
|
@@ -178,7 +181,8 @@ fi
|
|
|
178
181
|
echo ""
|
|
179
182
|
echo "📦 Step $((STEP_COUNT++)): Updating Audit Fixes..."
|
|
180
183
|
echo "================================================="
|
|
181
|
-
|
|
184
|
+
# remove --force to avoid breaking changes
|
|
185
|
+
npm audit fix 2>/dev/null || true
|
|
182
186
|
|
|
183
187
|
|
|
184
188
|
|
|
@@ -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.6",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"private": false,
|
|
5
6
|
"author": {
|
|
6
7
|
"name": "Pixelated Technologies",
|
|
@@ -86,7 +87,8 @@
|
|
|
86
87
|
"config:encrypt": "npm run config:vault -- encrypt src/config/pixelated.config.json",
|
|
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
|
-
"zip-theme": "node src/scripts/zip-pixelated-theme.js ../pixelated-blog-wp-theme Pixelated.zip"
|
|
90
|
+
"zip-theme": "node src/scripts/zip-pixelated-theme.js ../pixelated-blog-wp-theme Pixelated.zip",
|
|
91
|
+
"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"
|
|
90
92
|
},
|
|
91
93
|
"scripts-20260113": {
|
|
92
94
|
"build": "npm run validate-exports && npm run buildClean && npm run tsc && npm run rsync && npm run tscClean ",
|
|
@@ -99,7 +101,6 @@
|
|
|
99
101
|
"rsync2": "rsync -a --include='*.css' --include='*.scss' --include='*.json' --include='scripts/**' --include='*/' --exclude='*' src/ dist"
|
|
100
102
|
},
|
|
101
103
|
"scripts-old": {
|
|
102
|
-
"buildBabel": "npm run buildClean && NODE_ENV=production babel src --out-dir dist --copy-files",
|
|
103
104
|
"build-webpack": "rm -rf dist && npx tsc --project tsconfig.json && webpack --config webpack.config.js && npm run build-webpack-rsync",
|
|
104
105
|
"build-webpack-rsync": "rsync -a --include='*' --include='*/' src/css dist/css"
|
|
105
106
|
},
|
|
@@ -109,52 +110,48 @@
|
|
|
109
110
|
"html-entities": "^2.6.0"
|
|
110
111
|
},
|
|
111
112
|
"devDependencies": {
|
|
112
|
-
"@aws-sdk/client-amplify": "^3.
|
|
113
|
-
"@aws-sdk/client-
|
|
114
|
-
"@
|
|
113
|
+
"@aws-sdk/client-amplify": "^3.996.0",
|
|
114
|
+
"@aws-sdk/client-cloudwatch": "^3.996.0",
|
|
115
|
+
"@aws-sdk/client-iam": "^3.996.0",
|
|
116
|
+
"@aws-sdk/client-route-53": "^3.996.0",
|
|
115
117
|
"@babel/core": "^7.29.0",
|
|
116
118
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
117
119
|
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
|
|
118
120
|
"@babel/preset-env": "^7.29.0",
|
|
119
121
|
"@babel/preset-react": "^7.28.5",
|
|
120
122
|
"@babel/preset-typescript": "^7.28.5",
|
|
121
|
-
"@eslint/
|
|
122
|
-
"@
|
|
123
|
-
"@storybook/addon-
|
|
124
|
-
"@storybook/addon-docs": "^10.2.7",
|
|
123
|
+
"@eslint/js": "^9.39.3",
|
|
124
|
+
"@storybook/addon-a11y": "^10.2.11",
|
|
125
|
+
"@storybook/addon-docs": "^10.2.11",
|
|
125
126
|
"@storybook/addon-webpack5-compiler-babel": "^4.0.0",
|
|
126
127
|
"@storybook/preset-scss": "^1.0.3",
|
|
127
|
-
"@storybook/react-webpack5": "^10.2.
|
|
128
|
+
"@storybook/react-webpack5": "^10.2.11",
|
|
128
129
|
"@testing-library/dom": "^10.4.1",
|
|
129
130
|
"@testing-library/react": "^16.3.2",
|
|
130
131
|
"@testing-library/user-event": "^14.6.1",
|
|
131
132
|
"@types/md5": "^2.3.6",
|
|
132
|
-
"@types/node": "^25.
|
|
133
|
+
"@types/node": "^25.3.0",
|
|
133
134
|
"@types/prop-types": "^15.7.15",
|
|
134
|
-
"@types/react": "^19.2.
|
|
135
|
+
"@types/react": "^19.2.14",
|
|
135
136
|
"@types/react-dom": "^19.2.3",
|
|
136
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
137
|
-
"@typescript-eslint/parser": "^8.
|
|
138
|
-
"@vitejs/plugin-react": "^5.1.
|
|
137
|
+
"@typescript-eslint/eslint-plugin": "^8.56.0",
|
|
138
|
+
"@typescript-eslint/parser": "^8.56.0",
|
|
139
|
+
"@vitejs/plugin-react": "^5.1.4",
|
|
139
140
|
"@vitest/coverage-v8": "^4.0.18",
|
|
140
141
|
"@vitest/ui": "^4.0.18",
|
|
141
|
-
"ajv": "^8.
|
|
142
|
+
"ajv": "^8.18.0",
|
|
142
143
|
"ajv-keywords": "^5.1.0",
|
|
143
144
|
"babel-loader": "^10.0.0",
|
|
144
|
-
"clean-webpack-plugin": "^
|
|
145
|
+
"clean-webpack-plugin": "^1.0.1",
|
|
145
146
|
"copy-webpack-plugin": "^13.0.1",
|
|
146
|
-
"css-loader": "^7.1.
|
|
147
|
-
"eslint": "^9.39.
|
|
148
|
-
"eslint-
|
|
149
|
-
"eslint-plugin-import": "^2.32.0",
|
|
147
|
+
"css-loader": "^7.1.4",
|
|
148
|
+
"eslint": "^9.39.3",
|
|
149
|
+
"eslint-plugin-import": "^1.16.0",
|
|
150
150
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
151
|
-
"eslint-plugin-
|
|
152
|
-
"eslint-plugin-promise": "^7.2.1",
|
|
153
|
-
"eslint-plugin-react": "^7.37.4",
|
|
154
|
-
"eslint-plugin-storybook": "^10.2.7",
|
|
151
|
+
"eslint-plugin-react": "^7.37.5",
|
|
155
152
|
"file-loader": "^6.2.0",
|
|
156
|
-
"happy-dom": "^20.
|
|
157
|
-
"jsdom": "^28.
|
|
153
|
+
"happy-dom": "^20.7.0",
|
|
154
|
+
"jsdom": "^28.1.0",
|
|
158
155
|
"less-loader": "^12.3.1",
|
|
159
156
|
"mini-css-extract-plugin": "^2.10.0",
|
|
160
157
|
"next": "^16.1.6",
|
|
@@ -167,13 +164,13 @@
|
|
|
167
164
|
"redux": "^5.0.1",
|
|
168
165
|
"sass": "^1.97.3",
|
|
169
166
|
"sass-loader": "^16.0.7",
|
|
170
|
-
"storybook": "^10.2.
|
|
167
|
+
"storybook": "^10.2.11",
|
|
171
168
|
"style-loader": "^4.0.0",
|
|
172
169
|
"ts-loader": "^9.5.4",
|
|
173
170
|
"typescript": "^5.9.3",
|
|
174
171
|
"url-loader": "^4.1.1",
|
|
175
172
|
"vitest": "^4.0.18",
|
|
176
|
-
"webpack": "^5.105.
|
|
173
|
+
"webpack": "^5.105.2",
|
|
177
174
|
"webpack-cli": "^6.0.1",
|
|
178
175
|
"webpack-dev-server": "^5.2.3",
|
|
179
176
|
"webpack-node-externals": "^3.0.0"
|
|
@@ -184,21 +181,13 @@
|
|
|
184
181
|
"react-dom": "^19.2.0"
|
|
185
182
|
},
|
|
186
183
|
"optionalDependencies": {
|
|
187
|
-
"@aws-sdk/client-cloudwatch": "^3.
|
|
188
|
-
"@aws-sdk/client-route-53": "^3.
|
|
184
|
+
"@aws-sdk/client-cloudwatch": "^3.893.0",
|
|
185
|
+
"@aws-sdk/client-route-53": "^3.893.0",
|
|
189
186
|
"googleapis": "^171.4.0",
|
|
190
187
|
"md5": "^2.3.0",
|
|
191
|
-
"puppeteer": "^24.37.
|
|
188
|
+
"puppeteer": "^24.37.5",
|
|
192
189
|
"react-redux": "*",
|
|
193
190
|
"recharts": "^3.7.0",
|
|
194
191
|
"redux": "*"
|
|
195
|
-
}
|
|
196
|
-
"overrides": {
|
|
197
|
-
"eslint-config-standard": {
|
|
198
|
-
"eslint": "^9.39.2",
|
|
199
|
-
"eslint-plugin-n": "^17.23.2",
|
|
200
|
-
"eslint-plugin-promise": "^7.2.1"
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
"type": "module"
|
|
192
|
+
}
|
|
204
193
|
}
|