@patch-adams/core 1.5.22 → 1.5.24
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 +29 -13
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +29 -13
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +29 -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 +29 -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,21 @@ 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.send();
|
|
5641
|
+
if (xhr.status === 200) {
|
|
5642
|
+
window.__pa_v = JSON.parse(xhr.responseText).v || '1';
|
|
5643
|
+
}
|
|
5644
|
+
} catch(e) { window.__pa_v = '1'; }
|
|
5645
|
+
}
|
|
5646
|
+
|
|
5647
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5631
5648
|
var LOCAL_PATH = "${localPath}";
|
|
5632
5649
|
|
|
5633
5650
|
function loadJSSync(url) {
|
|
@@ -5696,7 +5713,8 @@ function buildJsBeforeOptions(config, metadata) {
|
|
|
5696
5713
|
loadingClass: config.loadingClass,
|
|
5697
5714
|
metadata: metadata ?? null,
|
|
5698
5715
|
lrsBridge,
|
|
5699
|
-
skin: config.skin
|
|
5716
|
+
skin: config.skin,
|
|
5717
|
+
assetVersionUrl: config.assetVersionUrl
|
|
5700
5718
|
};
|
|
5701
5719
|
}
|
|
5702
5720
|
|
|
@@ -5707,7 +5725,7 @@ function generateJsAfterLoader(options) {
|
|
|
5707
5725
|
<script data-pa="js-after-loader">
|
|
5708
5726
|
(function() {
|
|
5709
5727
|
'use strict';
|
|
5710
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5728
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5711
5729
|
var LOCAL_PATH = "${localPath}";
|
|
5712
5730
|
var TIMEOUT = ${timeout};
|
|
5713
5731
|
var LOADING_CLASS = "${loadingClass}";
|
|
@@ -5817,7 +5835,7 @@ function generateSkinCssLoader(options) {
|
|
|
5817
5835
|
<script data-pa="skin-css-loader">
|
|
5818
5836
|
(function() {
|
|
5819
5837
|
'use strict';
|
|
5820
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5838
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5821
5839
|
var LOCAL_PATH = "${localPath}";
|
|
5822
5840
|
var TIMEOUT = ${timeout};
|
|
5823
5841
|
|
|
@@ -5891,9 +5909,8 @@ function generateSkinCssLoader(options) {
|
|
|
5891
5909
|
}
|
|
5892
5910
|
function buildSkinCssOptions(config) {
|
|
5893
5911
|
if (!config.skin) return null;
|
|
5894
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
5895
5912
|
return {
|
|
5896
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css
|
|
5913
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css`,
|
|
5897
5914
|
localPath: `skin/${config.skin}/style.css`,
|
|
5898
5915
|
timeout: config.cssAfter.timeout
|
|
5899
5916
|
// reuse cssAfter timeout
|
|
@@ -5907,7 +5924,7 @@ function generateSkinJsLoader(options) {
|
|
|
5907
5924
|
<script data-pa="skin-js-loader">
|
|
5908
5925
|
(function() {
|
|
5909
5926
|
'use strict';
|
|
5910
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5927
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5911
5928
|
var LOCAL_PATH = "${localPath}";
|
|
5912
5929
|
var TIMEOUT = ${timeout};
|
|
5913
5930
|
|
|
@@ -5993,9 +6010,8 @@ function generateSkinJsLoader(options) {
|
|
|
5993
6010
|
}
|
|
5994
6011
|
function buildSkinJsOptions(config) {
|
|
5995
6012
|
if (!config.skin) return null;
|
|
5996
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
5997
6013
|
return {
|
|
5998
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js
|
|
6014
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js`,
|
|
5999
6015
|
localPath: `skin/${config.skin}/script.js`,
|
|
6000
6016
|
timeout: config.jsAfter.timeout
|
|
6001
6017
|
// reuse jsAfter timeout
|