https://project.mdnd-it.cc/work_packages/94
This commit is contained in:
2025-08-23 04:25:28 +02:00
parent 725516ad6c
commit 19cfa031d0
25823 changed files with 1095587 additions and 2801760 deletions
@@ -0,0 +1,20 @@
import { Stream } from "../../common/Stream";
/**
* @constructor
* @implements {Decoder}
* @param {{fatal: boolean}} options
*/
export declare class XUserDefinedDecoder {
readonly fatal: boolean;
constructor(options: {
fatal: boolean;
});
/**
* @param {Stream} stream The stream of bytes being decoded.
* @param {number} bite The next byte read from the stream.
* @return {?(number|!Array.<number>)} The next code point(s)
* decoded, or null if not enough data exists in the input
* stream to decode a complete code point.
*/
handler(stream: Stream, bite: number): (number | Array<number>) | null;
}
@@ -0,0 +1,35 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var finished_1 = require("../../encoding/finished");
var terminology_1 = require("../../encoding/terminology");
/**
* @constructor
* @implements {Decoder}
* @param {{fatal: boolean}} options
*/
var XUserDefinedDecoder = /** @class */ (function () {
function XUserDefinedDecoder(options) {
this.fatal = options.fatal;
}
/**
* @param {Stream} stream The stream of bytes being decoded.
* @param {number} bite The next byte read from the stream.
* @return {?(number|!Array.<number>)} The next code point(s)
* decoded, or null if not enough data exists in the input
* stream to decode a complete code point.
*/
XUserDefinedDecoder.prototype.handler = function (stream, bite) {
// 1. If byte is end-of-stream, return finished.
if (bite === terminology_1.end_of_stream)
return finished_1.finished;
// 2. If byte is an ASCII byte, return a code point whose value
// is byte.
if (terminology_1.isASCIIByte(bite))
return bite;
// 3. Return a code point whose value is 0xF780 + byte 0x80.
return 0xF780 + bite - 0x80;
};
return XUserDefinedDecoder;
}());
exports.XUserDefinedDecoder = XUserDefinedDecoder;
//# sourceMappingURL=XUserDefinedDecoder.js.map
@@ -0,0 +1 @@
{"version":3,"file":"XUserDefinedDecoder.js","sourceRoot":"","sources":["../../../../src/coders/x-user-defined/XUserDefinedDecoder.ts"],"names":[],"mappings":";;AACA,oDAAmD;AACnD,0DAAwE;AAExE;;;;GAIG;AACH;IAIE,6BAAY,OAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,qCAAO,GAAP,UAAQ,MAAc,EAAE,IAAY;QAClC,gDAAgD;QAChD,IAAI,IAAI,KAAK,2BAAa;YACxB,OAAO,mBAAQ,CAAC;QAElB,+DAA+D;QAC/D,WAAW;QACX,IAAI,yBAAW,CAAC,IAAI,CAAC;YACnB,OAAO,IAAI,CAAC;QAEd,8DAA8D;QAC9D,OAAO,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B,CAAC;IACH,0BAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,kDAAmB"}
@@ -0,0 +1,18 @@
import { Stream } from "../../common/Stream";
/**
* @constructor
* @implements {Encoder}
* @param {{fatal: boolean}} options
*/
export declare class XUserDefinedEncoder {
readonly fatal: boolean;
constructor(options: {
fatal: boolean;
});
/**
* @param {Stream} stream Input stream.
* @param {number} code_point Next code point read from the stream.
* @return {(number|!Array.<number>)} Byte(s) to emit.
*/
handler(stream: Stream, code_point: number): (number | Array<number>);
}
@@ -0,0 +1,39 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var encodings_1 = require("../../encoding/encodings");
var finished_1 = require("../../encoding/finished");
var terminology_1 = require("../../encoding/terminology");
var utilities_1 = require("../../encoding/utilities");
/**
* @constructor
* @implements {Encoder}
* @param {{fatal: boolean}} options
*/
var XUserDefinedEncoder = /** @class */ (function () {
function XUserDefinedEncoder(options) {
this.fatal = options.fatal;
}
/**
* @param {Stream} stream Input stream.
* @param {number} code_point Next code point read from the stream.
* @return {(number|!Array.<number>)} Byte(s) to emit.
*/
XUserDefinedEncoder.prototype.handler = function (stream, code_point) {
// 1.If code point is end-of-stream, return finished.
if (code_point === terminology_1.end_of_stream)
return finished_1.finished;
// 2. If code point is an ASCII code point, return a byte whose
// value is code point.
if (terminology_1.isASCIICodePoint(code_point))
return code_point;
// 3. If code point is in the range U+F780 to U+F7FF, inclusive,
// return a byte whose value is code point 0xF780 + 0x80.
if (utilities_1.inRange(code_point, 0xF780, 0xF7FF))
return code_point - 0xF780 + 0x80;
// 4. Return error with code point.
return encodings_1.encoderError(code_point);
};
return XUserDefinedEncoder;
}());
exports.XUserDefinedEncoder = XUserDefinedEncoder;
//# sourceMappingURL=XUserDefinedEncoder.js.map
@@ -0,0 +1 @@
{"version":3,"file":"XUserDefinedEncoder.js","sourceRoot":"","sources":["../../../../src/coders/x-user-defined/XUserDefinedEncoder.ts"],"names":[],"mappings":";;AACA,sDAAwD;AACxD,oDAAmD;AACnD,0DAA6E;AAC7E,sDAAmD;AAEnD;;;;GAIG;AACH;IAIE,6BAAY,OAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,qCAAO,GAAP,UAAQ,MAAc,EAAE,UAAkB;QACxC,qDAAqD;QACrD,IAAI,UAAU,KAAK,2BAAa;YAC9B,OAAO,mBAAQ,CAAC;QAElB,+DAA+D;QAC/D,uBAAuB;QACvB,IAAI,8BAAgB,CAAC,UAAU,CAAC;YAC9B,OAAO,UAAU,CAAC;QAEpB,gEAAgE;QAChE,2DAA2D;QAC3D,IAAI,mBAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;YACrC,OAAO,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;QAEpC,mCAAmC;QACnC,OAAO,wBAAY,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACH,0BAAC;AAAD,CAAC,AA/BD,IA+BC;AA/BY,kDAAmB"}
@@ -0,0 +1,2 @@
export * from './XUserDefinedDecoder';
export * from './XUserDefinedEncoder';
@@ -0,0 +1,8 @@
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("./XUserDefinedDecoder"));
__export(require("./XUserDefinedEncoder"));
//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/coders/x-user-defined/index.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsC;AACtC,2CAAsC"}