Save in-progress keysat integration and StartOS 0.4 work
Snapshot of the working tree before cleanup. Captures: - Keysat licensing: server/license.js, /api/license/* endpoints in server/index.js, activation modal in public/index.html, embedded Ed25519 issuer key (assets/issuer.pub). - StartOS 0.4 expansion: setApiKey action, version files v0.1.1 through v0.1.15, file-models/config.json.ts, manifest updates. - Self-hosted registry server (startos-registry/). - Build/deploy scripts (bin/bump-version.sh, bin/deploy.sh, vendored yt-dlp binary), .gitignore, .deploy.env.example. - Recent design docs (KEYSAT_INTEGRATION.md, UPGRADE-DESIGN.md) — retained here so they remain recoverable when removed in the follow-up cleanup commit.
This commit is contained in:
+52
@@ -0,0 +1,52 @@
|
||||
"use strict";
|
||||
|
||||
var BOMChar = '\uFEFF';
|
||||
|
||||
exports.PrependBOM = PrependBOMWrapper
|
||||
function PrependBOMWrapper(encoder, options) {
|
||||
this.encoder = encoder;
|
||||
this.addBOM = true;
|
||||
}
|
||||
|
||||
PrependBOMWrapper.prototype.write = function(str) {
|
||||
if (this.addBOM) {
|
||||
str = BOMChar + str;
|
||||
this.addBOM = false;
|
||||
}
|
||||
|
||||
return this.encoder.write(str);
|
||||
}
|
||||
|
||||
PrependBOMWrapper.prototype.end = function() {
|
||||
return this.encoder.end();
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
exports.StripBOM = StripBOMWrapper;
|
||||
function StripBOMWrapper(decoder, options) {
|
||||
this.decoder = decoder;
|
||||
this.pass = false;
|
||||
this.options = options || {};
|
||||
}
|
||||
|
||||
StripBOMWrapper.prototype.write = function(buf) {
|
||||
var res = this.decoder.write(buf);
|
||||
if (this.pass || !res)
|
||||
return res;
|
||||
|
||||
if (res[0] === BOMChar) {
|
||||
res = res.slice(1);
|
||||
if (typeof this.options.stripBOM === 'function')
|
||||
this.options.stripBOM();
|
||||
}
|
||||
|
||||
this.pass = true;
|
||||
return res;
|
||||
}
|
||||
|
||||
StripBOMWrapper.prototype.end = function() {
|
||||
return this.decoder.end();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user