First commit

This commit is contained in:
2025-12-25 11:16:59 +01:00
commit 0c5ca09a63
720 changed files with 329234 additions and 0 deletions

View File

@@ -0,0 +1,145 @@
/*
Copyright (c) 2020, 2023, The Unified Company.
This code is part of Unify.
This program is free software; you can redistribute it and/or modify
it under the terms of the ESA Software Community License - Strong Copyleft LICENSE,
as published by the ESA.
See the ESA Software Community License - Strong Copyleft LICENSE, for more details.
https://unifyjs.org
*/
export default class cacheDisabler{
randomString = String( Math.floor(Math.random() * 1000 )).padStart(4, '0');
trimParts( parts ) {
return parts.filter( function( entry ) { return entry.trim() != ''; });
}
removePreviousRandomNumber( parts, overrideSplit ) {
var overrideSplit = parts[3].split("?");
if( overrideSplit[1] ) {
// ';
if( parts[3].includes(";") ) {
var lastPart = overrideSplit[1].slice( overrideSplit[1].length-2, overrideSplit[1].length );
// '
} else {
var lastPart = overrideSplit[1].slice( overrideSplit[1].length-1, overrideSplit[1].length );
}
overrideSplit[1] = lastPart;
parts[3] = overrideSplit.join("")
}
return parts;
}
injectWithoutSemicolon( parts, index, random, part ) {
var l = part.length;
parts[ index ] = part.slice( 0, l - 1 ) + random + part.slice( l - 1, l );
}
injectWithSemicolon( parts, index, random, part ) {
var l = part.length;
parts[ index ] = part.slice( 0, l - 2 ) + random + part.slice( l - 2, l );
}
injectRandomNumber( parts ) {
var randomString = "?disableCache=" + this.randomString;
var urlPartIndex = parts.length - 1;
var urlPart = parts[ urlPartIndex ];
if( urlPart.includes(";") ) {
this.injectWithSemicolon( parts, urlPartIndex, randomString, urlPart );
} else {
this.injectWithoutSemicolon( parts, urlPartIndex, randomString, urlPart );
}
return parts;
}
parseImportLine( lineWords ) {
lineWords = this.trimParts( lineWords );
lineWords = this.removePreviousRandomNumber( lineWords );
lineWords = this.injectRandomNumber( lineWords );
return lineWords;
}
parseLine( lines, i ) {
var stripped = lines[i].replaceAll("\t", " ");
var parts = stripped.split(" ");
if( parts.includes("import") ) {
parts = this.parseImportLine( parts );
}
lines[i] = parts.join(" ");
}
parseSource( source, path ) {
source = source.replaceAll("\r", "\n");
var lines = source.split("\n");
for ( var i = 0; i < lines.length; i++ ) {
this.parseLine( lines, i );
}
var body = lines.join("\n");
return body;
}
}