@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/index.cjs
CHANGED
|
@@ -119,7 +119,9 @@ var PatchAdamsConfigSchema = zod.z.object({
|
|
|
119
119
|
/** Plugin configurations - each plugin is keyed by its name */
|
|
120
120
|
plugins: PluginsConfigSchema,
|
|
121
121
|
/** Optional skin name — adds 'pa-skinned' + skin class to <html>, loads skin CSS/JS after core files */
|
|
122
|
-
skin: zod.z.string().min(1).optional()
|
|
122
|
+
skin: zod.z.string().min(1).optional(),
|
|
123
|
+
/** URL for server-controlled asset cache version (e.g., https://api.example.com/create/skin/version) */
|
|
124
|
+
assetVersionUrl: zod.z.string().url().optional()
|
|
123
125
|
});
|
|
124
126
|
|
|
125
127
|
// src/config/defaults.ts
|
|
@@ -261,7 +263,8 @@ html.${htmlClass}.${loadingClass} body {
|
|
|
261
263
|
<script data-pa="css-before-loader">
|
|
262
264
|
(function() {
|
|
263
265
|
'use strict';
|
|
264
|
-
var
|
|
266
|
+
var v = window.__pa_v || '';
|
|
267
|
+
var REMOTE_URL = "${remoteUrl}" + (v ? "?v=" + v : "");
|
|
265
268
|
var LOCAL_PATH = "${localPath}";
|
|
266
269
|
|
|
267
270
|
function loadCSSSync(url) {
|
|
@@ -304,7 +307,7 @@ function generateCssAfterLoader(options) {
|
|
|
304
307
|
<script data-pa="css-after-loader">
|
|
305
308
|
(function() {
|
|
306
309
|
'use strict';
|
|
307
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
310
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
308
311
|
var LOCAL_PATH = "${localPath}";
|
|
309
312
|
var TIMEOUT = ${timeout};
|
|
310
313
|
|
|
@@ -5202,7 +5205,7 @@ function escapeJs(str) {
|
|
|
5202
5205
|
return str.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r");
|
|
5203
5206
|
}
|
|
5204
5207
|
function generateJsBeforeLoader(options) {
|
|
5205
|
-
const { remoteUrl, localPath, htmlClass, loadingClass, metadata, lrsBridge, skin } = options;
|
|
5208
|
+
const { remoteUrl, localPath, htmlClass, loadingClass, metadata, lrsBridge, skin, assetVersionUrl } = options;
|
|
5206
5209
|
const lrsBridgeCode = generateLrsBridgeCode(lrsBridge);
|
|
5207
5210
|
const courseLines = [];
|
|
5208
5211
|
if (metadata) {
|
|
@@ -5305,7 +5308,22 @@ window.pa_patcher = window.pa_patcher || {
|
|
|
5305
5308
|
|
|
5306
5309
|
(function() {
|
|
5307
5310
|
'use strict';
|
|
5308
|
-
|
|
5311
|
+
// Fetch server-controlled cache version (sync, once)
|
|
5312
|
+
var ASSET_VERSION_URL = "${assetVersionUrl || ""}";
|
|
5313
|
+
window.__pa_v = '';
|
|
5314
|
+
if (ASSET_VERSION_URL) {
|
|
5315
|
+
try {
|
|
5316
|
+
var xhr = new XMLHttpRequest();
|
|
5317
|
+
xhr.open('GET', ASSET_VERSION_URL, false);
|
|
5318
|
+
xhr.timeout = 2000;
|
|
5319
|
+
xhr.send();
|
|
5320
|
+
if (xhr.status === 200) {
|
|
5321
|
+
window.__pa_v = JSON.parse(xhr.responseText).v || '1';
|
|
5322
|
+
}
|
|
5323
|
+
} catch(e) { window.__pa_v = '1'; }
|
|
5324
|
+
}
|
|
5325
|
+
|
|
5326
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5309
5327
|
var LOCAL_PATH = "${localPath}";
|
|
5310
5328
|
|
|
5311
5329
|
function loadJSSync(url) {
|
|
@@ -5374,7 +5392,8 @@ function buildJsBeforeOptions(config, metadata) {
|
|
|
5374
5392
|
loadingClass: config.loadingClass,
|
|
5375
5393
|
metadata: metadata ?? null,
|
|
5376
5394
|
lrsBridge,
|
|
5377
|
-
skin: config.skin
|
|
5395
|
+
skin: config.skin,
|
|
5396
|
+
assetVersionUrl: config.assetVersionUrl
|
|
5378
5397
|
};
|
|
5379
5398
|
}
|
|
5380
5399
|
|
|
@@ -5385,7 +5404,7 @@ function generateJsAfterLoader(options) {
|
|
|
5385
5404
|
<script data-pa="js-after-loader">
|
|
5386
5405
|
(function() {
|
|
5387
5406
|
'use strict';
|
|
5388
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5407
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5389
5408
|
var LOCAL_PATH = "${localPath}";
|
|
5390
5409
|
var TIMEOUT = ${timeout};
|
|
5391
5410
|
var LOADING_CLASS = "${loadingClass}";
|
|
@@ -5495,7 +5514,7 @@ function generateSkinCssLoader(options) {
|
|
|
5495
5514
|
<script data-pa="skin-css-loader">
|
|
5496
5515
|
(function() {
|
|
5497
5516
|
'use strict';
|
|
5498
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5517
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5499
5518
|
var LOCAL_PATH = "${localPath}";
|
|
5500
5519
|
var TIMEOUT = ${timeout};
|
|
5501
5520
|
|
|
@@ -5569,9 +5588,8 @@ function generateSkinCssLoader(options) {
|
|
|
5569
5588
|
}
|
|
5570
5589
|
function buildSkinCssOptions(config) {
|
|
5571
5590
|
if (!config.skin) return null;
|
|
5572
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
5573
5591
|
return {
|
|
5574
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css
|
|
5592
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css`,
|
|
5575
5593
|
localPath: `skin/${config.skin}/style.css`,
|
|
5576
5594
|
timeout: config.cssAfter.timeout
|
|
5577
5595
|
// reuse cssAfter timeout
|
|
@@ -5585,7 +5603,7 @@ function generateSkinJsLoader(options) {
|
|
|
5585
5603
|
<script data-pa="skin-js-loader">
|
|
5586
5604
|
(function() {
|
|
5587
5605
|
'use strict';
|
|
5588
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5606
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5589
5607
|
var LOCAL_PATH = "${localPath}";
|
|
5590
5608
|
var TIMEOUT = ${timeout};
|
|
5591
5609
|
|
|
@@ -5671,9 +5689,8 @@ function generateSkinJsLoader(options) {
|
|
|
5671
5689
|
}
|
|
5672
5690
|
function buildSkinJsOptions(config) {
|
|
5673
5691
|
if (!config.skin) return null;
|
|
5674
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
5675
5692
|
return {
|
|
5676
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js
|
|
5693
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js`,
|
|
5677
5694
|
localPath: `skin/${config.skin}/script.js`,
|
|
5678
5695
|
timeout: config.jsAfter.timeout
|
|
5679
5696
|
// reuse jsAfter timeout
|