@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.d.cts
CHANGED
|
@@ -301,6 +301,8 @@ declare const PatchAdamsConfigSchema: z.ZodObject<{
|
|
|
301
301
|
}, z.ZodTypeAny, "passthrough">>>>;
|
|
302
302
|
/** Optional skin name — adds 'pa-skinned' + skin class to <html>, loads skin CSS/JS after core files */
|
|
303
303
|
skin: z.ZodOptional<z.ZodString>;
|
|
304
|
+
/** URL for server-controlled asset cache version (e.g., https://api.example.com/create/skin/version) */
|
|
305
|
+
assetVersionUrl: z.ZodOptional<z.ZodString>;
|
|
304
306
|
}, "strip", z.ZodTypeAny, {
|
|
305
307
|
remoteDomain: string;
|
|
306
308
|
htmlClass: string;
|
|
@@ -353,6 +355,7 @@ declare const PatchAdamsConfigSchema: z.ZodObject<{
|
|
|
353
355
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
354
356
|
}, z.ZodTypeAny, "passthrough">>;
|
|
355
357
|
skin?: string | undefined;
|
|
358
|
+
assetVersionUrl?: string | undefined;
|
|
356
359
|
}, {
|
|
357
360
|
remoteDomain: string;
|
|
358
361
|
htmlClass?: string | undefined;
|
|
@@ -405,6 +408,7 @@ declare const PatchAdamsConfigSchema: z.ZodObject<{
|
|
|
405
408
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
406
409
|
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
407
410
|
skin?: string | undefined;
|
|
411
|
+
assetVersionUrl?: string | undefined;
|
|
408
412
|
}>;
|
|
409
413
|
type PatchAdamsConfig = z.infer<typeof PatchAdamsConfigSchema>;
|
|
410
414
|
type LrsBridgeConfig = z.infer<typeof LrsBridgeConfigSchema>;
|
|
@@ -1070,6 +1074,8 @@ interface JsBeforeOptions {
|
|
|
1070
1074
|
lrsBridge: LrsBridgeOptions;
|
|
1071
1075
|
/** Optional skin name */
|
|
1072
1076
|
skin?: string;
|
|
1077
|
+
/** URL for server-controlled asset cache version */
|
|
1078
|
+
assetVersionUrl?: string;
|
|
1073
1079
|
}
|
|
1074
1080
|
/**
|
|
1075
1081
|
* Generate the blocking JS loader for the "before" slot
|
package/dist/index.d.ts
CHANGED
|
@@ -301,6 +301,8 @@ declare const PatchAdamsConfigSchema: z.ZodObject<{
|
|
|
301
301
|
}, z.ZodTypeAny, "passthrough">>>>;
|
|
302
302
|
/** Optional skin name — adds 'pa-skinned' + skin class to <html>, loads skin CSS/JS after core files */
|
|
303
303
|
skin: z.ZodOptional<z.ZodString>;
|
|
304
|
+
/** URL for server-controlled asset cache version (e.g., https://api.example.com/create/skin/version) */
|
|
305
|
+
assetVersionUrl: z.ZodOptional<z.ZodString>;
|
|
304
306
|
}, "strip", z.ZodTypeAny, {
|
|
305
307
|
remoteDomain: string;
|
|
306
308
|
htmlClass: string;
|
|
@@ -353,6 +355,7 @@ declare const PatchAdamsConfigSchema: z.ZodObject<{
|
|
|
353
355
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
354
356
|
}, z.ZodTypeAny, "passthrough">>;
|
|
355
357
|
skin?: string | undefined;
|
|
358
|
+
assetVersionUrl?: string | undefined;
|
|
356
359
|
}, {
|
|
357
360
|
remoteDomain: string;
|
|
358
361
|
htmlClass?: string | undefined;
|
|
@@ -405,6 +408,7 @@ declare const PatchAdamsConfigSchema: z.ZodObject<{
|
|
|
405
408
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
406
409
|
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
407
410
|
skin?: string | undefined;
|
|
411
|
+
assetVersionUrl?: string | undefined;
|
|
408
412
|
}>;
|
|
409
413
|
type PatchAdamsConfig = z.infer<typeof PatchAdamsConfigSchema>;
|
|
410
414
|
type LrsBridgeConfig = z.infer<typeof LrsBridgeConfigSchema>;
|
|
@@ -1070,6 +1074,8 @@ interface JsBeforeOptions {
|
|
|
1070
1074
|
lrsBridge: LrsBridgeOptions;
|
|
1071
1075
|
/** Optional skin name */
|
|
1072
1076
|
skin?: string;
|
|
1077
|
+
/** URL for server-controlled asset cache version */
|
|
1078
|
+
assetVersionUrl?: string;
|
|
1073
1079
|
}
|
|
1074
1080
|
/**
|
|
1075
1081
|
* Generate the blocking JS loader for the "before" slot
|
package/dist/index.js
CHANGED
|
@@ -110,7 +110,9 @@ var PatchAdamsConfigSchema = z.object({
|
|
|
110
110
|
/** Plugin configurations - each plugin is keyed by its name */
|
|
111
111
|
plugins: PluginsConfigSchema,
|
|
112
112
|
/** Optional skin name — adds 'pa-skinned' + skin class to <html>, loads skin CSS/JS after core files */
|
|
113
|
-
skin: z.string().min(1).optional()
|
|
113
|
+
skin: z.string().min(1).optional(),
|
|
114
|
+
/** URL for server-controlled asset cache version (e.g., https://api.example.com/create/skin/version) */
|
|
115
|
+
assetVersionUrl: z.string().url().optional()
|
|
114
116
|
});
|
|
115
117
|
|
|
116
118
|
// src/config/defaults.ts
|
|
@@ -252,7 +254,8 @@ html.${htmlClass}.${loadingClass} body {
|
|
|
252
254
|
<script data-pa="css-before-loader">
|
|
253
255
|
(function() {
|
|
254
256
|
'use strict';
|
|
255
|
-
var
|
|
257
|
+
var v = window.__pa_v || '';
|
|
258
|
+
var REMOTE_URL = "${remoteUrl}" + (v ? "?v=" + v : "");
|
|
256
259
|
var LOCAL_PATH = "${localPath}";
|
|
257
260
|
|
|
258
261
|
function loadCSSSync(url) {
|
|
@@ -295,7 +298,7 @@ function generateCssAfterLoader(options) {
|
|
|
295
298
|
<script data-pa="css-after-loader">
|
|
296
299
|
(function() {
|
|
297
300
|
'use strict';
|
|
298
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
301
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
299
302
|
var LOCAL_PATH = "${localPath}";
|
|
300
303
|
var TIMEOUT = ${timeout};
|
|
301
304
|
|
|
@@ -5193,7 +5196,7 @@ function escapeJs(str) {
|
|
|
5193
5196
|
return str.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r");
|
|
5194
5197
|
}
|
|
5195
5198
|
function generateJsBeforeLoader(options) {
|
|
5196
|
-
const { remoteUrl, localPath, htmlClass, loadingClass, metadata, lrsBridge, skin } = options;
|
|
5199
|
+
const { remoteUrl, localPath, htmlClass, loadingClass, metadata, lrsBridge, skin, assetVersionUrl } = options;
|
|
5197
5200
|
const lrsBridgeCode = generateLrsBridgeCode(lrsBridge);
|
|
5198
5201
|
const courseLines = [];
|
|
5199
5202
|
if (metadata) {
|
|
@@ -5296,7 +5299,22 @@ window.pa_patcher = window.pa_patcher || {
|
|
|
5296
5299
|
|
|
5297
5300
|
(function() {
|
|
5298
5301
|
'use strict';
|
|
5299
|
-
|
|
5302
|
+
// Fetch server-controlled cache version (sync, once)
|
|
5303
|
+
var ASSET_VERSION_URL = "${assetVersionUrl || ""}";
|
|
5304
|
+
window.__pa_v = '';
|
|
5305
|
+
if (ASSET_VERSION_URL) {
|
|
5306
|
+
try {
|
|
5307
|
+
var xhr = new XMLHttpRequest();
|
|
5308
|
+
xhr.open('GET', ASSET_VERSION_URL, false);
|
|
5309
|
+
xhr.timeout = 2000;
|
|
5310
|
+
xhr.send();
|
|
5311
|
+
if (xhr.status === 200) {
|
|
5312
|
+
window.__pa_v = JSON.parse(xhr.responseText).v || '1';
|
|
5313
|
+
}
|
|
5314
|
+
} catch(e) { window.__pa_v = '1'; }
|
|
5315
|
+
}
|
|
5316
|
+
|
|
5317
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5300
5318
|
var LOCAL_PATH = "${localPath}";
|
|
5301
5319
|
|
|
5302
5320
|
function loadJSSync(url) {
|
|
@@ -5365,7 +5383,8 @@ function buildJsBeforeOptions(config, metadata) {
|
|
|
5365
5383
|
loadingClass: config.loadingClass,
|
|
5366
5384
|
metadata: metadata ?? null,
|
|
5367
5385
|
lrsBridge,
|
|
5368
|
-
skin: config.skin
|
|
5386
|
+
skin: config.skin,
|
|
5387
|
+
assetVersionUrl: config.assetVersionUrl
|
|
5369
5388
|
};
|
|
5370
5389
|
}
|
|
5371
5390
|
|
|
@@ -5376,7 +5395,7 @@ function generateJsAfterLoader(options) {
|
|
|
5376
5395
|
<script data-pa="js-after-loader">
|
|
5377
5396
|
(function() {
|
|
5378
5397
|
'use strict';
|
|
5379
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5398
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "");
|
|
5380
5399
|
var LOCAL_PATH = "${localPath}";
|
|
5381
5400
|
var TIMEOUT = ${timeout};
|
|
5382
5401
|
var LOADING_CLASS = "${loadingClass}";
|
|
@@ -5486,7 +5505,7 @@ function generateSkinCssLoader(options) {
|
|
|
5486
5505
|
<script data-pa="skin-css-loader">
|
|
5487
5506
|
(function() {
|
|
5488
5507
|
'use strict';
|
|
5489
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5508
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5490
5509
|
var LOCAL_PATH = "${localPath}";
|
|
5491
5510
|
var TIMEOUT = ${timeout};
|
|
5492
5511
|
|
|
@@ -5560,9 +5579,8 @@ function generateSkinCssLoader(options) {
|
|
|
5560
5579
|
}
|
|
5561
5580
|
function buildSkinCssOptions(config) {
|
|
5562
5581
|
if (!config.skin) return null;
|
|
5563
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
5564
5582
|
return {
|
|
5565
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css
|
|
5583
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/style.css`,
|
|
5566
5584
|
localPath: `skin/${config.skin}/style.css`,
|
|
5567
5585
|
timeout: config.cssAfter.timeout
|
|
5568
5586
|
// reuse cssAfter timeout
|
|
@@ -5576,7 +5594,7 @@ function generateSkinJsLoader(options) {
|
|
|
5576
5594
|
<script data-pa="skin-js-loader">
|
|
5577
5595
|
(function() {
|
|
5578
5596
|
'use strict';
|
|
5579
|
-
var REMOTE_URL = "${remoteUrl}";
|
|
5597
|
+
var REMOTE_URL = "${remoteUrl}" + (window.__pa_v ? "?v=" + window.__pa_v : "?v=" + Date.now().toString(36));
|
|
5580
5598
|
var LOCAL_PATH = "${localPath}";
|
|
5581
5599
|
var TIMEOUT = ${timeout};
|
|
5582
5600
|
|
|
@@ -5662,9 +5680,8 @@ function generateSkinJsLoader(options) {
|
|
|
5662
5680
|
}
|
|
5663
5681
|
function buildSkinJsOptions(config) {
|
|
5664
5682
|
if (!config.skin) return null;
|
|
5665
|
-
const cacheBuster = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
|
5666
5683
|
return {
|
|
5667
|
-
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js
|
|
5684
|
+
remoteUrl: `${config.remoteDomain}/skin/${config.skin}/script.js`,
|
|
5668
5685
|
localPath: `skin/${config.skin}/script.js`,
|
|
5669
5686
|
timeout: config.jsAfter.timeout
|
|
5670
5687
|
// reuse jsAfter timeout
|