@patch-adams/core 1.5.22 → 1.5.23
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/cli.cjs +30 -13
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +30 -13
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +30 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +30 -13
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -458,7 +458,9 @@ var PatchAdamsConfigSchema = z.object({
|
|
|
458
458
|
/** Plugin configurations - each plugin is keyed by its name */
|
|
459
459
|
plugins: PluginsConfigSchema,
|
|
460
460
|
/** Optional skin name — adds 'pa-skinned' + skin class to <html>, loads skin CSS/JS after core files */
|
|
461
|
-
skin: z.string().min(1).optional()
|
|
461
|
+
skin: z.string().min(1).optional(),
|
|
462
|
+
/** URL for server-controlled asset cache version (e.g., https://api.example.com/create/skin/version) */
|
|
463
|
+
assetVersionUrl: z.string().url().optional()
|
|
462
464
|
});
|
|
463
465
|
|
|
464
466
|
// src/config/defaults.ts
|
|
@@ -602,7 +604,8 @@ html.${htmlClass}.${loadingClass} body {
|
|
|
602
604
|
<script data-pa="css-before-loader">
|
|
603
605
|
(function() {
|
|
604
606
|
'use strict';
|
|
605
|
-
var
|
|
607
|
+
var v = window.__pa_v || '';
|
|
608
|
+
var REMOTE_URL = "${remoteUrl}" + (v ? "?v=" + v : "");
|
|
606
609
|
var LOCAL_PATH = "${localPath}";
|
|
607
610
|
|
|
608
611
|
function loadCSSSync(url) {
|
|
@@ -645,7 +648,7 @@ function generateCssAfterLoader(options) {
|
|
|
645
648
|
<script data-pa="css-after-loader">
|
|
646
649
|
(function() {
|
|
647
650
|
'use strict';
|
|
648
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
651
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
649
652
|
var LOCAL_PATH = "${localPath}";
|
|
650
653
|
var TIMEOUT = ${timeout};
|
|
651
654
|
|
|
@@ -5524,7 +5527,7 @@ function escapeJs(str) {
|
|
|
5524
5527
|
return str.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r");
|
|
5525
5528
|
}
|
|
5526
5529
|
function generateJsBeforeLoader(options) {
|
|
5527
|
-
const { remoteUrl, localPath, htmlClass, loadingClass, metadata, lrsBridge, skin } = options;
|
|
5530
|
+
const { remoteUrl, localPath, htmlClass, loadingClass, metadata, lrsBridge, skin, assetVersionUrl } = options;
|
|
5528
5531
|
const lrsBridgeCode = generateLrsBridgeCode(lrsBridge);
|
|
5529
5532
|
const courseLines = [];
|
|
5530
5533
|
if (metadata) {
|
|
@@ -5627,7 +5630,22 @@ window.pa_patcher = window.pa_patcher || {
|
|
|
5627
5630
|
|
|
5628
5631
|
(function() {
|
|
5629
5632
|
'use strict';
|
|
5630
|
-
|
|
5633
|
+
// Fetch server-controlled cache version (sync, once)
|
|
5634
|
+
var ASSET_VERSION_URL = "${assetVersionUrl || ""}";
|
|
5635
|
+
window.__pa_v = '';
|
|
5636
|
+
if (ASSET_VERSION_URL) {
|
|
5637
|
+
try {
|
|
5638
|
+
var xhr = new XMLHttpRequest();
|
|
5639
|
+
xhr.open('GET', ASSET_VERSION_URL, false);
|
|
5640
|
+
xhr.timeout = 2000;
|
|
5641
|
+
xhr.send();
|
|
5642
|
+
if (xhr.status === 200) {
|
|
5643
|
+
window.__pa_v = JSON.parse(xhr.responseText).v || '1';
|
|
5644
|
+
}
|
|
5645
|
+
} catch(e) { window.__pa_v = '1'; }
|
|
5646
|
+
}
|
|
5647
|
+
|
|
5648
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5631
5649
|
var LOCAL_PATH = "${localPath}";
|
|
5632
5650
|
|
|
5633
5651
|
function loadJSSync(url) {
|
|
@@ -5696,7 +5714,8 @@ function buildJsBeforeOptions(config, metadata) {
|
|
|
5696
5714
|
loadingClass: config.loadingClass,
|
|
5697
5715
|
metadata: metadata ?? null,
|
|
5698
5716
|
lrsBridge,
|
|
5699
|
-
skin: config.skin
|
|
5717
|
+
skin: config.skin,
|
|
5718
|
+
assetVersionUrl: config.assetVersionUrl
|
|
5700
5719
|
};
|
|
5701
5720
|
}
|
|
5702
5721
|
|
|
@@ -5707,7 +5726,7 @@ function generateJsAfterLoader(options) {
|
|
|
5707
5726
|
<script data-pa="js-after-loader">
|
|
5708
5727
|
(function() {
|
|
5709
5728
|
'use strict';
|
|
5710
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5729
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5711
5730
|
var LOCAL_PATH = "${localPath}";
|
|
5712
5731
|
var TIMEOUT = ${timeout};
|
|
5713
5732
|
var LOADING_CLASS = "${loadingClass}";
|
|
@@ -5817,7 +5836,7 @@ function generateSkinCssLoader(options) {
|
|
|
5817
5836
|
<script data-pa="skin-css-loader">
|
|
5818
5837
|
(function() {
|
|
5819
5838
|
'use strict';
|
|
5820
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5839
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5821
5840
|
var LOCAL_PATH = "${localPath}";
|
|
5822
5841
|
var TIMEOUT = ${timeout};
|
|
5823
5842
|
|
|
@@ -5891,9 +5910,8 @@ function generateSkinCssLoader(options) {
|
|
|
5891
5910
|
}
|
|
5892
5911
|
function buildSkinCssOptions(config) {
|
|
5893
5912
|
if (!config.skin) return null;
|
|
5894
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
5895
5913
|
return {
|
|
5896
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css
|
|
5914
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css`,
|
|
5897
5915
|
localPath: `skin/${config.skin}/style.css`,
|
|
5898
5916
|
timeout: config.cssAfter.timeout
|
|
5899
5917
|
// reuse cssAfter timeout
|
|
@@ -5907,7 +5925,7 @@ function generateSkinJsLoader(options) {
|
|
|
5907
5925
|
<script data-pa="skin-js-loader">
|
|
5908
5926
|
(function() {
|
|
5909
5927
|
'use strict';
|
|
5910
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5928
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5911
5929
|
var LOCAL_PATH = "${localPath}";
|
|
5912
5930
|
var TIMEOUT = ${timeout};
|
|
5913
5931
|
|
|
@@ -5993,9 +6011,8 @@ function generateSkinJsLoader(options) {
|
|
|
5993
6011
|
}
|
|
5994
6012
|
function buildSkinJsOptions(config) {
|
|
5995
6013
|
if (!config.skin) return null;
|
|
5996
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
5997
6014
|
return {
|
|
5998
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js
|
|
6015
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js`,
|
|
5999
6016
|
localPath: `skin/${config.skin}/script.js`,
|
|
6000
6017
|
timeout: config.jsAfter.timeout
|
|
6001
6018
|
// reuse jsAfter timeout
|