@speedkit/cli 3.17.0 → 3.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +1 -1
- package/dist/services/customer-config/customer-config-service-model.d.ts +1 -1
- package/dist/services/customer-config/customer-config-service.js +3 -5
- package/dist/services/customer-config/templates/config_SpeedKit.js.hbs +8 -3
- package/dist/services/customer-config/templates/config_documentHandler.js.hbs +3 -0
- package/dist/services/customer-config/templates/config_dynamicBlocks.es6.hbs +0 -17
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [3.19.0](https://gitlab.orestes.info/baqend/speed-kit-cli/compare/v3.18.0...v3.19.0) (2025-12-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* replace cf rocketloader workaround with our plugin ([1ca3bb4](https://gitlab.orestes.info/baqend/speed-kit-cli/commit/1ca3bb4d5563e22bf9df6d5c7fc263638b412b38))
|
|
7
|
+
|
|
8
|
+
# [3.18.0](https://gitlab.orestes.info/baqend/speed-kit-cli/compare/v3.17.0...v3.18.0) (2025-12-12)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **customer-config:** externd query parameter stripping ([4eae2c8](https://gitlab.orestes.info/baqend/speed-kit-cli/commit/4eae2c830f5fe51a66d49c4e57a58752fb1959e5))
|
|
14
|
+
|
|
1
15
|
# [3.17.0](https://gitlab.orestes.info/baqend/speed-kit-cli/compare/v3.16.1...v3.17.0) (2025-11-25)
|
|
2
16
|
|
|
3
17
|
|
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ export interface CustomerConfigSettings {
|
|
|
35
35
|
useGATracking?: boolean;
|
|
36
36
|
useScrapingBee?: boolean;
|
|
37
37
|
withGoogleOptimize?: boolean;
|
|
38
|
-
|
|
38
|
+
activateCfRocketLoaderPlugin?: boolean;
|
|
39
39
|
hasSoftNavigations?: boolean;
|
|
40
40
|
isPOV?: boolean;
|
|
41
41
|
isShopify?: boolean;
|
|
@@ -136,7 +136,7 @@ class CustomerConfigService {
|
|
|
136
136
|
return true;
|
|
137
137
|
}
|
|
138
138
|
async getConfigSettings() {
|
|
139
|
-
let { production, staging, activateScopedDeployments, subRouteScope, includeServiceWorker, activateImageOptimisation, removeLazyLoading, addSSR, addSSRInnerShadowDomSupport, addDeviceDetection, useGATracking, useScrapingBee, withGoogleOptimize,
|
|
139
|
+
let { production, staging, activateScopedDeployments, subRouteScope, includeServiceWorker, activateImageOptimisation, removeLazyLoading, addSSR, addSSRInnerShadowDomSupport, addDeviceDetection, useGATracking, useScrapingBee, withGoogleOptimize, activateCfRocketLoaderPlugin, hasSoftNavigations, isShopify, isShopware, isSalesforce, isOxid, isPlentymarkets, isPOV, } = {};
|
|
140
140
|
this.appName = await this.cli.prompt(`[App Name] Enter desired SK app name:`, {
|
|
141
141
|
validator: (input) => /^[\da-z]+(?:-[\da-z]+)*$/.test(input) ? "" : "No valid kebab-case",
|
|
142
142
|
defaultAnswer: this.appName,
|
|
@@ -200,9 +200,7 @@ class CustomerConfigService {
|
|
|
200
200
|
hasSoftNavigations = await this.cli.confirm("[Tracking] Add tracking for Soft Navigations?", false);
|
|
201
201
|
isPOV = await this.cli.confirm("[Tracking] Is a POV (proof of value) anticipated, so that additional tracking is needed?", false);
|
|
202
202
|
withGoogleOptimize = await this.cli.confirm("[Services] Is Google Optimize used?", false);
|
|
203
|
-
|
|
204
|
-
? true
|
|
205
|
-
: await this.cli.confirm("[Services] Is Cloudflare's Rocket Loader used, for which we would need to activate a workaround?", false);
|
|
203
|
+
activateCfRocketLoaderPlugin = await this.cli.confirm("[Services] Is Cloudflare's Rocket Loader used, for which we need to activate our rocket loader plugin?", false);
|
|
206
204
|
return {
|
|
207
205
|
appName: this.appName,
|
|
208
206
|
production,
|
|
@@ -218,7 +216,7 @@ class CustomerConfigService {
|
|
|
218
216
|
useGATracking,
|
|
219
217
|
useScrapingBee,
|
|
220
218
|
withGoogleOptimize,
|
|
221
|
-
|
|
219
|
+
activateCfRocketLoaderPlugin,
|
|
222
220
|
hasSoftNavigations,
|
|
223
221
|
isShopify,
|
|
224
222
|
isShopware,
|
|
@@ -301,10 +301,12 @@
|
|
|
301
301
|
params: [
|
|
302
302
|
// Default:
|
|
303
303
|
"AdSet", // Meta Ads (Facebook)
|
|
304
|
+
"_autaclid", // Adition Click ID
|
|
304
305
|
"_ga", // Google Analytics User ID (Universal Analytics)
|
|
305
306
|
"_gl", // Google Analytics User ID (GA 4+)
|
|
306
307
|
"_klaviyopid", // Klaviyo
|
|
307
|
-
"_kx", //
|
|
308
|
+
"_kx", // Klaviyo
|
|
309
|
+
"_pmclid",
|
|
308
310
|
"a8", // A8.net (affiliate marketing)
|
|
309
311
|
"ad_id",
|
|
310
312
|
"adid",
|
|
@@ -312,6 +314,7 @@
|
|
|
312
314
|
"adword",
|
|
313
315
|
"at_gd", // Urchin Tracking Module
|
|
314
316
|
"awc", // AWIN (former Zanox Affiliate Network)
|
|
317
|
+
"brid",
|
|
315
318
|
"cjid",
|
|
316
319
|
"clickid",
|
|
317
320
|
"clickref",
|
|
@@ -336,6 +339,7 @@
|
|
|
336
339
|
"msockid", // Microsoft Bing
|
|
337
340
|
"nsctrid",
|
|
338
341
|
"ps_kw", // Paid Search Keyword Tracking
|
|
342
|
+
"rdt_cid", // Reddit Ad Click ID
|
|
339
343
|
"rtbhc", // RTB House
|
|
340
344
|
"s_kwcid", // AMO ID, Adobe Advertising Cloud
|
|
341
345
|
"soluteclid", // Solute Click ID
|
|
@@ -351,6 +355,7 @@
|
|
|
351
355
|
"yj_r", // Yahoo! JAPAN Ads
|
|
352
356
|
"zanpid", // AWIN (former Zanox Affiliate Network)
|
|
353
357
|
/^(mb|nb|nx|ny)$/,
|
|
358
|
+
/^ScCid$/i, // Snapchat Click ID
|
|
354
359
|
/^WT\./, // WebTrends
|
|
355
360
|
/^[gw]braid$/, // Google's iOS web-to-app campaign measurement
|
|
356
361
|
/^_ly_/, // LY Ads
|
|
@@ -359,6 +364,8 @@
|
|
|
359
364
|
/^campaign(_id)?$/,
|
|
360
365
|
/^cq_/,
|
|
361
366
|
/^dy(IsPreview|SmartId|IsDraft|ExperienceId|VariationId|pPreviewKey|PersistSession|Temp)$/, // Dynamic Yield
|
|
367
|
+
/^ecm(Uid|Id)$/i, // Econda ARP / Mailings
|
|
368
|
+
/^em_/, // Econda ARP / Mailings
|
|
362
369
|
/^et_/,
|
|
363
370
|
/^ext(ProvId|Pu|Li|Pm|Cr|Tg|Si|MT|NT|DV|AP)$/,
|
|
364
371
|
/^gad(w|_source|_campaignid)?$/, // Google Ads
|
|
@@ -392,8 +399,6 @@
|
|
|
392
399
|
|
|
393
400
|
// OXID specific:
|
|
394
401
|
"cnid",
|
|
395
|
-
"ecmId",
|
|
396
|
-
"ecmUid",
|
|
397
402
|
"force_sid",
|
|
398
403
|
{{/if}}
|
|
399
404
|
|
|
@@ -119,6 +119,9 @@ const config = {
|
|
|
119
119
|
stripComments: false, // Plentymarkets specific
|
|
120
120
|
{{/if}}
|
|
121
121
|
ignoreAssets: [],
|
|
122
|
+
{{#if activateCfRocketLoaderPlugin}}
|
|
123
|
+
handleRocketLoader: true,
|
|
124
|
+
{{/if}}
|
|
122
125
|
{{#if isShopify}}
|
|
123
126
|
delayScriptPath: "/apps/speed-kit/speed-kit-dom-ready.js", // Shopify specific
|
|
124
127
|
{{else}}
|
|
@@ -89,23 +89,6 @@
|
|
|
89
89
|
detectChanges: [{compare: ['text']}],
|
|
90
90
|
},
|
|
91
91
|
{{/if}}
|
|
92
|
-
{{#if activateCfRocketLoaderWorkaround}}
|
|
93
|
-
|
|
94
|
-
// Workaround for Cloudflare's Rocket Loader (e.g. needed for Shopify)
|
|
95
|
-
{
|
|
96
|
-
selector: "script[data-cf-settings]",
|
|
97
|
-
mergeFunction: function (localBlock, remoteBlock) {
|
|
98
|
-
let cFHash = remoteBlock.getAttribute("data-cf-settings");
|
|
99
|
-
localBlock.setAttribute("data-cf-settings", cFHash);
|
|
100
|
-
let deferScripts = document.querySelectorAll("script[src][defer]");
|
|
101
|
-
deferScripts.forEach((deferScript) => {
|
|
102
|
-
let type = deferScript.type;
|
|
103
|
-
type = type.replace(/[a-f0-9]{24}/, cFHash.split('-')[0]);
|
|
104
|
-
deferScript.type = type;
|
|
105
|
-
})
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
{{/if}}
|
|
109
92
|
|
|
110
93
|
// default entries
|
|
111
94
|
{ selector: 'link[rel="canonical"]'},
|
package/oclif.manifest.json
CHANGED