@pixelated-tech/components 3.13.6 → 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.
@@ -197,13 +197,13 @@ async function runAxeCoreAnalysis(url, runtime_env = 'auto') {
197
197
  }
198
198
  catch (err) {
199
199
  let injected = false;
200
- let lastError;
201
200
  // Try common local node_modules locations relative to process.cwd() and __dirname
202
201
  const possiblePaths = [
203
202
  path.join(process.cwd(), 'node_modules', 'axe-core', 'axe.min.js'),
204
203
  path.join(process.cwd(), '..', 'node_modules', 'axe-core', 'axe.min.js'),
205
204
  path.join(__dirname, '..', '..', 'node_modules', 'axe-core', 'axe.min.js')
206
205
  ];
206
+ let lastError = null;
207
207
  for (const p of possiblePaths) {
208
208
  try {
209
209
  if (fs.existsSync(p)) {
@@ -215,7 +215,8 @@ async function runAxeCoreAnalysis(url, runtime_env = 'auto') {
215
215
  }
216
216
  }
217
217
  catch (e) {
218
- // ignore local file read errors
218
+ // remember for diagnostics but otherwise ignore
219
+ lastError = e;
219
220
  }
220
221
  }
221
222
  // Last resort: require.resolve
@@ -232,7 +233,15 @@ async function runAxeCoreAnalysis(url, runtime_env = 'auto') {
232
233
  }
233
234
  }
234
235
  if (!injected) {
235
- throw new Error('Could not load axe-core via CDN or local inline injection');
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;
236
245
  }
237
246
  }
238
247
  // Run axe-core analysis (poll across frames for availability after injection)
@@ -1 +1 @@
1
- pxl:v1:19583b2d4cffcf9960898880:e73ee5b6d8c0ed02bf573a7ebb38abdc:e72b5481c485ee728bcdc549d4a134c698f335ccfbe83a8b19b4643a533f3de9dc49e93dbdeb7066305d74f04f0794dabf108f6cb4f31ecfbe27e45636147eb4c6f66e2f308ca25d7ab8cad465b7a29f8dbe2d20871df5ea1c2190cdc9ec2ccfc65348e95e2347b0a8bf2e65cb1f8c72ed9ac882b112a16a46623d042893f7e6768ad60c0d2f15b06af324b0db4b8d50a732f334a8c66031f734f00dbd06bded7addcd4f1bc0ca75aecb71739439a762d3795b86bf6309c51bfc790a6953f449aea40e7362ba492057d5dcfb330a544837e85b1ae02da591149d92151b72f9cff92037ad8e24db20459065d37754d4d56f5b21496cad5d34fcece3f8b2a04f571d7bc3111b0003ac3ab6d3f3c6be26405372e491f662ae56ac64f1b3f0eb7351ecae27a510f0c7d38da8850099506f1a05c696d86cb646136a55df756de37ce577cd9e38a57f4f5037283391dab2220bec50eb578fbe061a815c42d3e43b66bd48b54c0f4d89cc2c3bed153917b63099ff281afbb84fcf3b2ecf441d8d6954fd416f65b9adb4d35958ad50c0499c6e3546c5d44d021404a080f954e20df1abcd736f7622f018b24cb8c51b0a1bdd0b399dae60ba501da0e99d07d3c22cfcaff1b14095f1327208df1ef4510735e370a2fde079688d3f270602fa89816e1e0de2d27dd6e33fc456b30a4cae7f391a6b70c6e62c41a23a5fbabc8f644e4f0d352a151a4b3fdfdfc8b96ba2e375f7b1ad99429ed11d704afdf518718a0cd5644259518a75b153207baccee9d7409034668960115b54dfc275052c4609afdc5f3efd76d3081f92fc5847c8b10aa72e1e014b20a8579a856c83b067438e300681ef38d710b234577bd74889b6bfd3941f50ac836bcba61e11f31bcd6edc1966ed16966b82d7e71875dbfc22a5143e443dabf268f8b872411ab927b971e04f01cf306f63a1f2d9f3b831373f0c4da16411f1407b528b838754cb6254b5b30e31271c91c9198f4e422b293ac8bf83cf76d6855fcae4ffe5b97a09f83176146b192ed5fb2f45d71ef1391c6d9111aba24f2e346f140fd5103fc35e4bc0e99bcb829cc554e562bf08a2987a43697e2b7467397862081d6da852f5d134d9ebeaa31ed8b8ab308fead700d0dbfb701dba2c56380f93a304dd9565ab5c249d86f5a7ed75a33604c74b129aedb83bac274242514a6904056b7fac94503c95c9e260c5473eccf81848ca98a8c85aede061e0a3a9b54a448c2fd18a4371d31766b3a8538b50f15feda7034cbc1f18f1c3fa4a650b42e28135e56210902b4b972cc766f53972cb9f5c1ec183b50f4e916a4b9ce7f351dd4e10d98d34129e1a1b208268d7327000e2e235f2db9f1c4fc58fa19015cab3b93aa4af1bd623d766c9b4db64d015647b4b06f0d45b70d1a09231fd7427476c98eb30d2b8c70c410a4fdb42902bf9ce63753948064312d16d6910840eaec8a3ea93b56041de614d60c3568fc185793b336770f1a52f8230ee090147325b19a05418b19a1d39d1b420f7b174e9c57ce0f623ea09c7662bad65115025b84b677ab49fbab30370ef52b7fd742f1dd68def6fe345e051cad1fc6cf5d44d8e149ffdc35e50faaff77aa43758e4a0a7ad4c603e8282b1f1d7c7a5a505cb6892fd0ccfb2a60a7b7818d9f0d7fdeb45e012868e5f14d736022ebe3446a6f7b213e4fb617ffeadfc748bc4641123fcc9a711584ffafdbceaf12a059b044cd68b6682f53e136960f06788949fdbffb044f4fc67046732f7bbde208b38d2e76ba7662964f0856dd8a380cf0983236240fa9e4dcc138790a3e7264d5a9b280f81cf3e9b6b86bbe066d37bef68cedcb0b9ec913f53d71364872f020d0ed6f410170fc91b582905bd36a10b32199d1f3031a9d2309bab7108dc144c4d8b54fb57e61388728298a8e1343d23e5ffddc18822d20a6caa9d8286bbc9a6d30ad914b785c02daf03d95f65e0f7ee03ce9d780bcfc783c5712258aae147eb917d1e1757ea0a631f2d790c721ed239eeb0a051c6cb270ec98647eb6f40bcede502cced490deb1888576d5d68fe680b1cb63fbdf8fa577617ed22b60f59f3760386766e11ad9b7ced8fb3d83fe9fbda75e562a5da38fd66f5d9623ed4186b7c7503f7d7b1fb8038b7e7b04ac183c0af83e51a7ce86048fed388a1a5ac46142961eba722efb14646475329f9697a8b496eb41e3a951e1e90eff05c50bcd6e7adc143c6ef54ec80c49bdacda5f2e7c50f00e666b60b55cc6f8440cd886f7c0356ec956de7b5b9a49ca5ce38a1abd31ddad53d18fb6784f413cd3ac5e8ad9efd5b1d7efdc87dda531f7b4d724de806c93991ae81acfb6a93d69b203e1cab6e2522d0af98c426a3094bbf278d4d2e8485f5bcc403cb0bf4cf3dd0471082a8c27877a63e1927ead904a16fbd80d74bb0d286d4c5659c864a0c8e7a1cda2706a424a4bb6f2ac3d5f925282bdbd013ac1f893b71bb255f35befe53cc05ad38cad4984816aa4362d78c466ae12cec0ecad84f1d87a84cab700fbaf0e5f2c93cd60ff93fa379d61d0399637c7084700f9615b9deaea2a36d8622b3a2503166b59ac1e0d3ac653837373dc1f3f15cceb7bec7338452b0386c616a95c61341f4455f9f18db6205474f10bf29936f3f99375048df0620b4479a9cf7f93ec45768e2753fcb7fe8428dd2c680a2837d6ff22c23d433b6ce5fd53007e655d6c54129da61fa572d8181c584316bd761bc9cf600da95c47583cff1eeefd612bfdb1082165763861449bfa04ef37120b4be70a7f988708f2bba2d9d3c45c35328ee4c896ba94f0108806e60b11fe6c190fc34c9aaf80e40cf46602ae9024afd5fa9e45b242d6ffad514114e368ba79e38626613ebc068e2320199972bbadba8f36767368a79e32e77ca8049da792ed14241d50c585e01585ea95550a0135c434dff3c66afcfa7bf669640a1a6cc34e085d52d996eeaf1626694aa32d3b3d3dc128afe302a4ebe7e8def8a968861bf14d9eda7dedb250fbe317c10527dd517e0c53d3eaff395e290fab3ceda9447292451b44938d49fc696f09d51aff79b1d20b36ac97dd8d284dc5c98ad5fdb94745b32a7371b70cbbf3d9457a65863e3edfe187bc0779221153be444c38ecce6bd46f42399015fe4209a39e4fa0127f4862432d7fb6db829294d472c96a105db4c3e02463e253ce7c30d5aa8e45061f61d413211a389ed744dfc7ecca99e2793e2e71134a10e114b67bb29571b363eea388d4763fae1e86453b124a9b0a0726b63395a853525522dd2a244b18f422f05e57d2c47f8b527150259471c5b0c4c8c0ecc4b3a9eded3107fed768d5f564e342c68c71e1cd0144c8f883f065a51b4a46a3c03452b2e72437d3e0ac43ab7fd8b53b18508fdbe6baf49412d04b84dd44abcec211762c29664bb5244223e06d63727221184d17825ca16dc65fe33e8f1e93e9f092854144d58a70dc96fadfdb4312b513daff6db6ea7cc24d34fbd5303885aa3b07905381b87e44fdaf2c0202a2f49716a393c3e01cb14eb53292a00d98c520b3f160cdb3b024878da4822495084f7402af6b48b3cfbbe4ca8fd78d575616f8b8b0560681a49ae402fbb408ccc5970a13bf0efa01d6680a674b64d36ecfa0a34cfb0de566e29d2021b04ab512f6316e125876255840b5deeaf816e888f0b4692b0b0c0c61981b1f384c0b3d6cf283cd956758505d9788cdf5089703b08c31d090bfc19b637b42bc7266dfee6fe70e493dd71156c31e8bfab797bdb4a0f1d93ca536103d7e4abc8358b5648a79c98ad73ff277c85da7e694a34aad92f2184bf0d38d3f1c1294ec6881698b4b771d604beab7025eec814177c5afbbf8ac6b8c7a98faa182514c0dd770e2a99a353e58f64e994a26c35240277df9a543a5fb1a93f47ecc6936fa5fa2ddbb8872f73de0550df9c8800c3a56ebf989c9e591882d877db06044d82054e6d1cb9a919030cabbaa33f3932386df2f63cfa73e107fad014765f98b109e4bc5c8b9157ff32b806aa13d2f6fc853220ab35721be88649e9c43eeef0dd17adcf42dcf612d177390526ba680bee4de1c6a92985abdc2c9a997f65bdb255950e8b860a502451d32bcf7965d6fe31eb09b48ecae97ec21f99bd2f1c3aeb49612987b8557f1e97e925a9d588d5a5b0b14674ab771e51d37574dacc51427dc97a7c68e7066a81262266493f23e9449848cbd418ef43e60e4eeaa41c67f2b0b57dca0696e4b2e22fa44b852bde27cde94e2905d75d335335d556632bfd6c42472bc6257248465a79f8422232e690e9e9268d2ce05108e10b1f2687b81f43fbebba95d0b504351d3bc5ce583a564b7b08c161fcd5d77cad808444f35a37fbfd9f9d529f9c350c0d7f182e959632448002f1e8c500fb75fb4b29b703ddde7e768935bae4d3a54239f624573276ca088a89064af9a254926533626a2f88ef52846b171cb3ce9b454e7763a2d57d2e39ebbc72c524e408152e14ffc8836ec4ca1c7a5120c730dad3407e61528c5bed2d8f4c045f06761acb2837f0aa334c4093d70829bedc07e49df72cb95be2e70c9fa6fa50a2c43a66f0634207e04a18c8020487b3c1ab89c53171fb52dfbf337adc38d96587bb8968f8d346091782edf9e871f6be3320701c7ec4bc73332f5486ac3103cb900d887d0e53eea1a60e923def40e28f0cc3f1f03483c760512fd88f59ebc9d3f6fd2e0af899c14bfaf15e210508ff0400ec57bbf0ff73603552f4b0c935991f0bc2a4564ba004810c2b109558f016d34e76351ebbd8344aed1a0c203629eda2ae82cef2e294e72461912eb9d075f2247558abf9085b177c1ef08086cc800bca75a968ea543d0602ff9f045375f4a4c6d0095d709df5b58f2669dda6a2a43057a3977475b57ad69e741b15e3bdc22df2523c903d6f3bb52ae5ed9e2d41705a8ca5cc5538cb53b10b13780c329537255222a458bfc2ca2404043b73edf776fb213e6dda63fab89bb05239f3ae51af23a45e1d10e3fd2513b9016d417dbc06b1f0f1cf8dd105eb10bdb21d7893f70c50704e27f8312d81142e628439d0a97934f90ab55700b67440341a92e3e93642af1e3344b0c8ccbcd799c076c3ab5c6c69645bde836fcf174db35338c78c41a9880958918b11e0fd434dfad18cfd9f54b38d9b40379973a61f049ede301ac0
1
+ pxl:v1:b3a4313ab5b83f3892f9f463:120a8b22fafe51e3c603cdcaaca9b922:ae62d0122364ece5f61f4f091ca72c66130ffc8a3f1079b42299826fd56b95529852468e84cf1ef9e7da72be9592af371846c65d65afc6f9447ff83029a33f152d2df1e22f11c83e3554b843c0a8b76456f2936457311f6896ee0338ca57d7907112a56ebb2744b82efb72aa782859c6701fcd8b18ca8c981523a00c28eb96f5742ed296712a16f2e7718e6405af2256eb0eaf9488059f15a08f7ef7ff83b4e6c43cfa74bc86a892f5bd435b19bce33edf166997e9987d50834dcaf3ad7a1b636cc81a0f9fba6efd70e3e346aa86739a575aba7be81a29d52818e6f6960a5c64791465ae0db6b543086f6e119af17c2a47a5f4aebed083c421ddc6a1a50b664edb408038ccaa8debef0d78fdfc493189aeda01ee31e6417f2e0fd3ed144d57d1c45d1dbed67d2ca8645722216526d56701d8ff38b5d96704ccdf0452b205b1ca5b037ed3677ccf7adf76e540efc764d7666feffc3d0c09196569c5b66d6d86fb201514fd6ffea6469846fbebceca4c612a0cf84051d22274088febab65dd65f1f438f631dda0a4b19148a7cff758a65c4cf7610d16e4bdaf98d1c116ba77e51b0064dc1a666f3824d964cfe04d00dae187168660c538615f0055f37607970c9dd20b205d2148e75f8b18126f75b4c6b2f54529730cdb32b8777772f29ff532a1c5bbca99ed07e0bb2d6ca20646cda4b0a2826c72f25ce7290ac93df615ada9a817660a4fde7bdacfeaf4b6a21bcfa9f05ef458d632f1ab7b3b0e97d47c2ff9a171abc873af793d1d5a182eccad7e056453277daa2c4c8c04226be9604e076116101eb0b9116851bf6d793ee76de946d55bfc4cae9995bbfa1738dd865bf912714b556e6c3f67b179441a6c01499b347c863309d5fa6fb67201c3474822e6d8898ec2d61724f00c77cdc64a36a13668f2d97728a86f5a3fa27799bdf967ecfa7c101160961fbdc45693815378f6f43ab1e43a611026f171e690f6a0d7416f960ad693f738f5acbeb113743bf51f343145b03b297250932100e96f9b16af46ab9f30aac25f5c8fc0e7cf848fb0288b7fea643e0d3201ddf56f2c40d9f34bf0946e83d0d25abcb991b75a88d11f4cd6f62f94b6e5d68e619b1874abd08b3da90b5f4cd76a063ef458b5e8dd2ce2fc77b0b625af24afa53a2331d338d94839322887f95e01a0f0df57242f64025a22cd8d1be940ea98fbdb666203377cdcd2047139bd210767729bdc2c67692f2f1a4c7a364aa11b9742f6c076620a472c42c0b40c3f69b3ac0a2fca5fef92c6b642c2c00b2c77124e2e3f7543347f6dc50545506cf79b3e82ec5b830bb229e68e48ebc1c52b7d8772eae04b9ec4863d16ba037aa19ac18482a9ab53661ca1a74c1c7738f26203e315ff5a2c1fe2fe82e95ed50c402a2c8ffaf7fd8570317edc196c26cfbb6c10169f82b64ec32f330501956ae78724d6235c6087e21e01cd5836fb20d0c17f0ffeace53b869896b1a8ffe74c0708ab8573695ac02cfaf19efda6a29fc01f123fc3ad666b4b38b4c5a07952705fab707d8e1bf4cbe613d01015f9d7e0e912cc729973817cd31242d05d1710964e3d94e06b680b332ffc5a66e4e5208a7f1169d12c31277fae4c4a4dd57cce415a87d5b167a56b9bccedee7862e02fc6d025ea4c3431061ef4fc162c9e2385a22d14ec5d89be0094d3ee56aa45434c5e0688bda8c01aed1bc8a86484f12b03a28c8dac2d7f429578267b41f66a64d51e9970708c828093598a6af822ab28828ef1a0cdcc8aa0c1c4285e4920ad56cd96ba3d496a2df1aa66635194343af301b7d0f25378bfbd88844c9888522888f3e00386d2503699a7370ad2267d67fe4e1d16fc7cba0b7f68f4a8631c33fbbf33c6af7ceec388dfc3c0b2ccd737bae46d35bd503d5c3fe78ef292a2ed43504ad943eaecca20dbc6a836845b6d21a1e8796cb6a49552b2fb6380fb02e2bc7146f9b2c6006e234d2d3000828a679281e383fc06a4192eb9ebc54fde74d492a2eb4e32be245e06134522e3bf33504c3c5226eb8a6617f9839e07aa27054128be1bcb9230a45895345f30ed14e8fd5afb4f530ebb96c00fb70ad57c463f8dfd72bfe12276f3127be6147987c912156bbb1227f3116a4f5f3d5a5e4f43cd605dbac4bd4cfd48a1919f8dd1d7f718127dba08b650d23a8bd6f452073ab3017f8a7f5f9493129c5b3d3d31305d25979e190cce3b1bff1798d761811bb86092a1a6f5ef3c7dda3d7b5251f8ed84ad29737fdd6e090a2a014cfc03bfd434f02bc069a0768233d0ca7fe893536653bd91ff2a0004199d42da32321dcc75bd3ff690ad3db60a05b84d62a034ed5e25e455c23e06e309a52d39d39a644a4d81cacb854d925c9b53bdaf491de6f7a599b0df7774fd5639e5c5485c82184959cfaebf389e21079b85913670782b2dc96a3b04e6e798506d8a678909f226da6b10161aa229b10d4800e6cacc3939e20dd4e64f97ba0ec036d5f77546ff7a5a6726e325f2f9925530508b65eb86e8469bbe4af83b4b6c4375615e1ca84383eac490e050f1a85eb36ea55892231d329e557593037a45ee67e146590b11f555617b13cb3f7205ebf01e90a3fe811f0ace688d2e019017544456ac060f5243bc7e0312c1200a20d8f5134eceeb9154445194bb8c0d0d2d04fedb9a202247e8c04c756616ad2642bcdd52e22d46a341ad00e8561d424219e55e25f87dc1b2f7ab0df758419ade1b168082b6c2a2e8cb39c629d5483bfaf4bd465979a0b6e40c7a61d4eaa93b7221fcd42b8e691370e2ca3a11afee8d03c5422c8355762dd65672afbfa4a017fa4341f234e8c99a4b75baeba4b008acce06bfd6227d744ed15c15daa0e430c6ec6a8bf5fe55366cca2a52ed4859401d54457388256c6cdbf26b66b65dd51f8ab89590062aae870aa872c9847ad7c25fa209a0976e27dde1f19b8b7daf96220b2a01344c7ba2b88e38dd3e06b474c5716c806700773794e5940cd1d928d7509fb625e760f099d06cbf604b123dfa29e4c8bcb0465821e050b779d893368e153a1033a6d7ed5ffecf228b3cc295fed48dd287126dd090e1485d905ee993c67f1a71d64b6b826bf0536a31ab6482030ea78a08b67218d044e3a9932255b7a0b61e6aedd19ef7b59ccf62e5662b31d466448c93e700102545eed863c07823099b5e7e9f0daeccae9ad927bfc3e923647cefecae447db3465840dd2439ab5d8343b0ee81a124596b1b54cb7c4d37b7072c4990e3237622d9ad8403f966efe3ac8f0b854219de3eea4d4cf8e7a089b889cc559beee220240ad64960c1e65cd0864205141557e310b398f82fe363a15724636522b58d94a8a2b3fbb692bcb81c4ff8be3b1ac1beb12bff9f2b7d0f6bdc84b2b38dce2521f91fafbe3b04380c0f47e7b9486c616f3c52f3a78a8ba1fc284fabe99132135ea241c9d17da4c5acb0e57c5815d910d9902dcf7e0ec80138e548fcc82c8ab29ae2d5b190983f151f985c50c73ecefb9957d8e17548fb35a78eec469e851a3cdcffd3378c42525f0809b57eaf341585966cecd58928e3a6eb5d43e29b50f050a6a0e530fecf4970f56a4e02890799d2f51b5aa83c2794c7d5cbca861ad90dbc73992808f2760ae511a62a4bbc5f9fd6e0546fe9ba864361131ea38a211248666cbcfd925893e6438a317bd7ed2666be3925ce3169e9d843dc591d55e09ecdc83d7f9b1c1fb9b6820ad98f9ec193761cf1536b22fa76db66e4fda831204961a91aada53735723cca2d89e48685f8f8b1b7dcfbb6802076a26278b0f8b827af9e5fadd2f9f28d5881ef2a1f714deeb3b3d8aba3e5edd6363d8006946d034271262d6a9e3b624b2b1b2d93b52d03480bac7700827d18c738923150161aea04736a38e75c7eccd1ca855d441ac8a456b16bed82d839e9851b49121eeb55d3b128e2e63839fcecd9f7dfbcb405c6d03b35ff577b06290fd632b94f9c8dc539c9e1fb5cde40964e708cb5ac76ef437523c4711e288fb928d7232c37f7d394c9e5b8ee98f6b66e3639ceb9afac823c244873d5c8bdc48244ab6aba32d5f8329e8a4ba4e97c7f522d1b3cd356ff12bc9774397efd7795cf1a9e544b51a9b29244ed87a237a6c9f802d6c0c4969d1d7d02b677a7bdea03cac5aff432c08d2e0730e3ea58b2a0d06246fdc55f4532fc690dbd76b8758ef1a13163915450a502223a18df4a114231023687850dc58d093047cbf4ef6a46463a048206a46d3afb5aad7da80f7931a0f13fc931ad601d88a90b05ee36f60ef1f48ca509691d988ce383aac54cccb0aca76bb1f594deaf77dd2696b029fb893ccfff0ac19dee4bed4fadae40e9208fc702eb7e4016299212caac4dbb1c142429c47fe55cca7de52aef6f00f5641fbc35f1ba0cb1c430c28795e1678706ca899b250fcc600c7ccf32373a37ffd2799cbdfd40e0bfaa0c7b20dfb475a387e76cfd308ce527f5487754ba4149a35bc3e6e123384defff6bcee20f9e1a726941b843ed2e96448d1952ff980e5799b064f55bcdc61710e3ba5a2349b2a0c50b0d4e7b1985b2c2e617c97c82e63b4ddb5a0754ed8e0f67d342acc7f0c7d347375c248398edcf624be16fd7ad6d45cac59378b9abba95b5661283ff2ce347077a837d64a6e6ae0e1606f8c2c776d6c8c4ea0093421da6050ea91a2542ccc8279b1f0e01d7b62df969d068c459b8343349ab444fd971d152cf8856b42176ecb118a5648636b60e01a520feb2e05e062abff9803ab2b40f7f173e1660badff72b7e6e8f95572eb957b74cac785e9ab2f2fc169b2488e9c9e7ed816c745b266a8166e98de744ace3ffdcff18fd96fb5b36ca49c0c390026b48ef307ec596e6e87a01ff988ee2bf2f5cdc3a42e63c46563d2d182897cccd4bae44d166b2d1e67b71b7a7e5f2fbad59d3e434daeb7ff53e8daf3a32427b96cfe4e64059ed69110f3d61426bc9dc5e2341ca02b90ebb42073325c4eda62906ca1193fd0e358d121a565c5fab73ae66c20b278e2d5bb3f568132e4495771014cb707d6a808430a191519d83797410328156d4726dbd02190d17a037cf9025f794089daf2d55f8945a40b1f3e4bdba4d65d0505d3ea3fa0b87f0af0e774cd35f236810c150fc4cb9c9e0d4ad0b488b6dd8f21f4e0d2e442790e818e1a415481058db4686817f02fb6554ba90
@@ -162,19 +162,23 @@ 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
- # 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
-
170
- if [ -n "$UPDATES" ]; then
171
- echo "Updating the following packages: $UPDATES"
172
- # removed --force from npm install to avoid unnecessary breaking updates
173
- echo "$UPDATES" | xargs npm install --save 2>/dev/null || true
174
- echo " Successfully updated: $UPDATES"
175
- else
176
- echo "✅ No dependency updates needed."
177
- fi
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"
178
182
 
179
183
 
180
184
 
@@ -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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixelated-tech/components",
3
- "version": "3.13.6",
3
+ "version": "3.13.7",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "author": {
@@ -88,7 +88,7 @@
88
88
  "config:decrypt": "npm run config:vault -- decrypt src/config/pixelated.config.json.enc",
89
89
  "create-pixelated-app": "node src/scripts/create-pixelated-app.js",
90
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"
91
+ "update": "bash dist/scripts/update.sh"
92
92
  },
93
93
  "scripts-20260113": {
94
94
  "build": "npm run validate-exports && npm run buildClean && npm run tsc && npm run rsync && npm run tscClean ",
@@ -98,7 +98,9 @@
98
98
  "tscClean": "rm -rf dist/{images,stories,tests}",
99
99
  "rsync": "(cd src && tar -cf - $(find . -name \"*.css\" -o -name \"*.scss\" -o -name \"*.json\") scripts/) | tar -C dist -xf -",
100
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/}\"' _ {} \\;",
101
- "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"
102
104
  },
103
105
  "scripts-old": {
104
106
  "build-webpack": "rm -rf dist && npx tsc --project tsconfig.json && webpack --config webpack.config.js && npm run build-webpack-rsync",
@@ -114,13 +116,14 @@
114
116
  "@aws-sdk/client-cloudwatch": "^3.996.0",
115
117
  "@aws-sdk/client-iam": "^3.996.0",
116
118
  "@aws-sdk/client-route-53": "^3.996.0",
119
+ "@aws-sdk/xml-builder": "^3.972.5",
117
120
  "@babel/core": "^7.29.0",
118
121
  "@babel/plugin-proposal-class-properties": "^7.18.6",
119
122
  "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
120
123
  "@babel/preset-env": "^7.29.0",
121
124
  "@babel/preset-react": "^7.28.5",
122
125
  "@babel/preset-typescript": "^7.28.5",
123
- "@eslint/js": "^9.39.3",
126
+ "@eslint/js": "^10.0.1",
124
127
  "@storybook/addon-a11y": "^10.2.11",
125
128
  "@storybook/addon-docs": "^10.2.11",
126
129
  "@storybook/addon-webpack5-compiler-babel": "^4.0.0",
@@ -181,7 +184,7 @@
181
184
  "react-dom": "^19.2.0"
182
185
  },
183
186
  "optionalDependencies": {
184
- "@aws-sdk/client-cloudwatch": "^3.893.0",
187
+ "@aws-sdk/client-cloudwatch": "^3.996.0",
185
188
  "@aws-sdk/client-route-53": "^3.893.0",
186
189
  "googleapis": "^171.4.0",
187
190
  "md5": "^2.3.0",