@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.cjs
CHANGED
|
@@ -468,7 +468,9 @@ var PatchAdamsConfigSchema = zod.z.object({
|
|
|
468
468
|
/** Plugin configurations - each plugin is keyed by its name */
|
|
469
469
|
plugins: PluginsConfigSchema,
|
|
470
470
|
/** Optional skin name — adds 'pa-skinned' + skin class to <html>, loads skin CSS/JS after core files */
|
|
471
|
-
skin: zod.z.string().min(1).optional()
|
|
471
|
+
skin: zod.z.string().min(1).optional(),
|
|
472
|
+
/** URL for server-controlled asset cache version (e.g., https://api.example.com/create/skin/version) */
|
|
473
|
+
assetVersionUrl: zod.z.string().url().optional()
|
|
472
474
|
});
|
|
473
475
|
|
|
474
476
|
// src/config/defaults.ts
|
|
@@ -612,7 +614,8 @@ html.${htmlClass}.${loadingClass} body {
|
|
|
612
614
|
<script data-pa="css-before-loader">
|
|
613
615
|
(function() {
|
|
614
616
|
'use strict';
|
|
615
|
-
var
|
|
617
|
+
var v = window.__pa_v || '';
|
|
618
|
+
var REMOTE_URL = "${remoteUrl}" + (v ? "?v=" + v : "");
|
|
616
619
|
var LOCAL_PATH = "${localPath}";
|
|
617
620
|
|
|
618
621
|
function loadCSSSync(url) {
|
|
@@ -655,7 +658,7 @@ function generateCssAfterLoader(options) {
|
|
|
655
658
|
<script data-pa="css-after-loader">
|
|
656
659
|
(function() {
|
|
657
660
|
'use strict';
|
|
658
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
661
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
659
662
|
var LOCAL_PATH = "${localPath}";
|
|
660
663
|
var TIMEOUT = ${timeout};
|
|
661
664
|
|
|
@@ -5534,7 +5537,7 @@ function escapeJs(str) {
|
|
|
5534
5537
|
return str.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r");
|
|
5535
5538
|
}
|
|
5536
5539
|
function generateJsBeforeLoader(options) {
|
|
5537
|
-
const { remoteUrl, localPath, htmlClass, loadingClass, metadata, lrsBridge, skin } = options;
|
|
5540
|
+
const { remoteUrl, localPath, htmlClass, loadingClass, metadata, lrsBridge, skin, assetVersionUrl } = options;
|
|
5538
5541
|
const lrsBridgeCode = generateLrsBridgeCode(lrsBridge);
|
|
5539
5542
|
const courseLines = [];
|
|
5540
5543
|
if (metadata) {
|
|
@@ -5637,7 +5640,21 @@ window.pa_patcher = window.pa_patcher || {
|
|
|
5637
5640
|
|
|
5638
5641
|
(function() {
|
|
5639
5642
|
'use strict';
|
|
5640
|
-
|
|
5643
|
+
// Fetch server-controlled cache version (sync, once)
|
|
5644
|
+
var ASSET_VERSION_URL = "${assetVersionUrl || ""}";
|
|
5645
|
+
window.__pa_v = '';
|
|
5646
|
+
if (ASSET_VERSION_URL) {
|
|
5647
|
+
try {
|
|
5648
|
+
var xhr = new XMLHttpRequest();
|
|
5649
|
+
xhr.open('GET', ASSET_VERSION_URL, false);
|
|
5650
|
+
xhr.send();
|
|
5651
|
+
if (xhr.status === 200) {
|
|
5652
|
+
window.__pa_v = JSON.parse(xhr.responseText).v || '1';
|
|
5653
|
+
}
|
|
5654
|
+
} catch(e) { window.__pa_v = '1'; }
|
|
5655
|
+
}
|
|
5656
|
+
|
|
5657
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5641
5658
|
var LOCAL_PATH = "${localPath}";
|
|
5642
5659
|
|
|
5643
5660
|
function loadJSSync(url) {
|
|
@@ -5706,7 +5723,8 @@ function buildJsBeforeOptions(config, metadata) {
|
|
|
5706
5723
|
loadingClass: config.loadingClass,
|
|
5707
5724
|
metadata: metadata ?? null,
|
|
5708
5725
|
lrsBridge,
|
|
5709
|
-
skin: config.skin
|
|
5726
|
+
skin: config.skin,
|
|
5727
|
+
assetVersionUrl: config.assetVersionUrl
|
|
5710
5728
|
};
|
|
5711
5729
|
}
|
|
5712
5730
|
|
|
@@ -5717,7 +5735,7 @@ function generateJsAfterLoader(options) {
|
|
|
5717
5735
|
<script data-pa="js-after-loader">
|
|
5718
5736
|
(function() {
|
|
5719
5737
|
'use strict';
|
|
5720
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5738
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5721
5739
|
var LOCAL_PATH = "${localPath}";
|
|
5722
5740
|
var TIMEOUT = ${timeout};
|
|
5723
5741
|
var LOADING_CLASS = "${loadingClass}";
|
|
@@ -5827,7 +5845,7 @@ function generateSkinCssLoader(options) {
|
|
|
5827
5845
|
<script data-pa="skin-css-loader">
|
|
5828
5846
|
(function() {
|
|
5829
5847
|
'use strict';
|
|
5830
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5848
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5831
5849
|
var LOCAL_PATH = "${localPath}";
|
|
5832
5850
|
var TIMEOUT = ${timeout};
|
|
5833
5851
|
|
|
@@ -5901,9 +5919,8 @@ function generateSkinCssLoader(options) {
|
|
|
5901
5919
|
}
|
|
5902
5920
|
function buildSkinCssOptions(config) {
|
|
5903
5921
|
if (!config.skin) return null;
|
|
5904
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
5905
5922
|
return {
|
|
5906
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css
|
|
5923
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css`,
|
|
5907
5924
|
localPath: `skin/${config.skin}/style.css`,
|
|
5908
5925
|
timeout: config.cssAfter.timeout
|
|
5909
5926
|
// reuse cssAfter timeout
|
|
@@ -5917,7 +5934,7 @@ function generateSkinJsLoader(options) {
|
|
|
5917
5934
|
<script data-pa="skin-js-loader">
|
|
5918
5935
|
(function() {
|
|
5919
5936
|
'use strict';
|
|
5920
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5937
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5921
5938
|
var LOCAL_PATH = "${localPath}";
|
|
5922
5939
|
var TIMEOUT = ${timeout};
|
|
5923
5940
|
|
|
@@ -6003,9 +6020,8 @@ function generateSkinJsLoader(options) {
|
|
|
6003
6020
|
}
|
|
6004
6021
|
function buildSkinJsOptions(config) {
|
|
6005
6022
|
if (!config.skin) return null;
|
|
6006
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
6007
6023
|
return {
|
|
6008
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js
|
|
6024
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js`,
|
|
6009
6025
|
localPath: `skin/${config.skin}/script.js`,
|
|
6010
6026
|
timeout: config.jsAfter.timeout
|
|
6011
6027
|
// reuse jsAfter timeout
|