@standen/encoding 0.0.1 → 0.0.3
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/README.md +1 -1
- package/dist/alphabet.d.ts +19 -0
- package/dist/alphabet.d.ts.map +1 -0
- package/dist/alphabet.js +35 -0
- package/dist/alphabet.js.map +1 -0
- package/dist/encoder.d.ts +11 -0
- package/dist/encoder.d.ts.map +1 -0
- package/dist/encoder.js +51 -0
- package/dist/encoder.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/package.json +16 -21
- package/index.js +0 -1
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
#
|
|
1
|
+
# В разработке
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type T_ALPABET = Readonly<{
|
|
2
|
+
digits: string;
|
|
3
|
+
enSmall: string;
|
|
4
|
+
enBig: string;
|
|
5
|
+
ruSmall: string;
|
|
6
|
+
ruBig: string;
|
|
7
|
+
specChars: string;
|
|
8
|
+
sugarChars: string;
|
|
9
|
+
}>;
|
|
10
|
+
declare const ALPHABET: T_ALPABET;
|
|
11
|
+
type T_MAPPED_ALPHABET = Partial<{
|
|
12
|
+
BYTES_TO_HEX: Map<number, string>;
|
|
13
|
+
HEX_TO_BYTES: Map<string, number>;
|
|
14
|
+
TEXT_TO_BYTES: Map<string, number>;
|
|
15
|
+
BYTES_TO_TEXT: Map<number, string>;
|
|
16
|
+
}>;
|
|
17
|
+
declare const MAPPED_ALPHABET: T_MAPPED_ALPHABET;
|
|
18
|
+
export { ALPHABET, MAPPED_ALPHABET };
|
|
19
|
+
//# sourceMappingURL=alphabet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphabet.d.ts","sourceRoot":"","sources":["../src/alphabet.ts"],"names":[],"mappings":"AAGA,KAAK,SAAS,GAAG,QAAQ,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,QAAA,MAAM,QAAQ,EAAE,SASf,CAAC;AAEF,KAAK,iBAAiB,GAAG,OAAO,CAAC;IAC/B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC,CAAC;AAIH,QAAA,MAAM,eAAe,EAAE,iBAAsB,CAAC;AAkC9C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/alphabet.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAPPED_ALPHABET = exports.ALPHABET = void 0;
|
|
4
|
+
const ALPHABET_EN = "abcdefghijklmnopqrstuvwxyz";
|
|
5
|
+
const ALPHABET_RU = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
|
|
6
|
+
const ALPHABET = {
|
|
7
|
+
digits: "0123456789",
|
|
8
|
+
enSmall: ALPHABET_EN,
|
|
9
|
+
enBig: ALPHABET_EN.toUpperCase(),
|
|
10
|
+
ruSmall: ALPHABET_RU,
|
|
11
|
+
ruBig: ALPHABET_RU.toUpperCase(),
|
|
12
|
+
specChars: "~`'\"!@#№$;:,^%&?*()-+=|\\<>[]{}._ ",
|
|
13
|
+
sugarChars: "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞ",
|
|
14
|
+
};
|
|
15
|
+
exports.ALPHABET = ALPHABET;
|
|
16
|
+
const ALL_SYMBOLS = Object.values(ALPHABET).join("").slice(0, 256);
|
|
17
|
+
const MAPPED_ALPHABET = {};
|
|
18
|
+
exports.MAPPED_ALPHABET = MAPPED_ALPHABET;
|
|
19
|
+
MAPPED_ALPHABET.BYTES_TO_HEX = Array.from({ length: 256 }, (_, i) => i).reduce((acc, value) => {
|
|
20
|
+
acc.set(value, value.toString(16).padStart(2, "0"));
|
|
21
|
+
return acc;
|
|
22
|
+
}, new Map());
|
|
23
|
+
MAPPED_ALPHABET.HEX_TO_BYTES = Array.from({ length: 256 }, (_, i) => i).reduce((acc, value) => {
|
|
24
|
+
acc.set(value.toString(16).padStart(2, "0"), value);
|
|
25
|
+
return acc;
|
|
26
|
+
}, new Map());
|
|
27
|
+
MAPPED_ALPHABET.TEXT_TO_BYTES = ALL_SYMBOLS.split("").reduce((acc, value, index) => {
|
|
28
|
+
acc.set(value, index);
|
|
29
|
+
return acc;
|
|
30
|
+
}, new Map());
|
|
31
|
+
MAPPED_ALPHABET.BYTES_TO_TEXT = ALL_SYMBOLS.split("").reduce((acc, value, index) => {
|
|
32
|
+
acc.set(index, value);
|
|
33
|
+
return acc;
|
|
34
|
+
}, new Map());
|
|
35
|
+
//# sourceMappingURL=alphabet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphabet.js","sourceRoot":"","sources":["../src/alphabet.ts"],"names":[],"mappings":";;;AAAA,MAAM,WAAW,GAAG,4BAA4B,CAAC;AACjD,MAAM,WAAW,GAAG,mCAAmC,CAAC;AAYxD,MAAM,QAAQ,GAAc;IAC1B,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE;IAChC,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE;IAChC,SAAS,EAAE,qCAAqC;IAChD,UAAU,EACR,iGAAiG;CACpG,CAAC;AA6CO,4BAAQ;AApCjB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAEnE,MAAM,eAAe,GAAsB,EAAE,CAAC;AAkC3B,0CAAe;AAhClC,eAAe,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAC5E,CAAC,GAAwB,EAAE,KAAK,EAAE,EAAE;IAClC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC,EACD,IAAI,GAAG,EAAkB,CAC1B,CAAC;AAEF,eAAe,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAC5E,CAAC,GAAwB,EAAE,KAAK,EAAE,EAAE;IAClC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC,EACD,IAAI,GAAG,EAAkB,CAC1B,CAAC;AAEF,eAAe,CAAC,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAC1D,CAAC,GAAwB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACzC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC,EACD,IAAI,GAAG,EAAkB,CAC1B,CAAC;AAEF,eAAe,CAAC,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAC1D,CAAC,GAAwB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACzC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC,EACD,IAAI,GAAG,EAAkB,CAC1B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class Encoder {
|
|
2
|
+
private readonly HEX_SYMBOLS;
|
|
3
|
+
validateHex: (hex: string) => boolean;
|
|
4
|
+
validateText: (text: string) => boolean;
|
|
5
|
+
private splitHexIntoPairs;
|
|
6
|
+
bytesToHex: (bytes: Uint8Array) => string;
|
|
7
|
+
hexToBytes: (hex: string) => Uint8Array;
|
|
8
|
+
bytesToText: (bytes: Uint8Array) => string;
|
|
9
|
+
textToBytes: (text: string) => Uint8Array;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=encoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"AAEA,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAE3C,WAAW,GAAI,KAAK,MAAM,KAAG,OAAO,CACsB;IAE1D,YAAY,GAAI,MAAM,MAAM,KAAG,OAAO,CAKvC;IAEN,OAAO,CAAC,iBAAiB,CAOvB;IAEK,UAAU,GAAI,OAAO,UAAU,KAAG,MAAM,CAItC;IAEF,UAAU,GAAI,KAAK,MAAM,KAAG,UAAU,CAkB3C;IAEK,WAAW,GAAI,OAAO,UAAU,KAAG,MAAM,CAIvC;IAEF,WAAW,GAAI,MAAM,MAAM,KAAG,UAAU,CAY7C;CACH"}
|
package/dist/encoder.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Encoder = void 0;
|
|
4
|
+
const alphabet_1 = require("./alphabet");
|
|
5
|
+
class Encoder {
|
|
6
|
+
HEX_SYMBOLS = "0123456789abcdef";
|
|
7
|
+
validateHex = (hex) => hex.split("").every((item) => this.HEX_SYMBOLS.includes(item));
|
|
8
|
+
validateText = (text) => text
|
|
9
|
+
.split("")
|
|
10
|
+
.every((item) => Object.values(alphabet_1.ALPHABET).join("").slice(0, 256).includes(item));
|
|
11
|
+
splitHexIntoPairs = (hex) => {
|
|
12
|
+
if (hex.length % 2 !== 0) {
|
|
13
|
+
throw new Error("Строка должна состоять из bytes в hex формате с ведущими нулями!");
|
|
14
|
+
}
|
|
15
|
+
return hex.match(/.{1,2}/g) || [];
|
|
16
|
+
};
|
|
17
|
+
bytesToHex = (bytes) => bytes.reduce((acc, value) => {
|
|
18
|
+
acc += alphabet_1.MAPPED_ALPHABET.BYTES_TO_HEX?.get(value) || "";
|
|
19
|
+
return acc;
|
|
20
|
+
}, "");
|
|
21
|
+
hexToBytes = (hex) => {
|
|
22
|
+
if (hex.length % 2 !== 0) {
|
|
23
|
+
throw new Error("Длина строки должна быть четной");
|
|
24
|
+
}
|
|
25
|
+
if (!this.validateHex(hex)) {
|
|
26
|
+
throw new Error("Строка должна содержать только hex символы");
|
|
27
|
+
}
|
|
28
|
+
const pairsString = this.splitHexIntoPairs(hex);
|
|
29
|
+
const bytes = new Uint8Array(pairsString.length);
|
|
30
|
+
for (let i = 0; i <= bytes.length; i++) {
|
|
31
|
+
bytes[i] = alphabet_1.MAPPED_ALPHABET.HEX_TO_BYTES?.get(pairsString[i]) || 0;
|
|
32
|
+
}
|
|
33
|
+
return bytes;
|
|
34
|
+
};
|
|
35
|
+
bytesToText = (bytes) => bytes.reduce((acc, value) => {
|
|
36
|
+
acc += alphabet_1.MAPPED_ALPHABET.BYTES_TO_TEXT?.get(value) || "";
|
|
37
|
+
return acc;
|
|
38
|
+
}, "");
|
|
39
|
+
textToBytes = (text) => {
|
|
40
|
+
if (!this.validateText(text)) {
|
|
41
|
+
throw new Error("Присутствуют недопустимые символы!");
|
|
42
|
+
}
|
|
43
|
+
const bytes = new Uint8Array(text.length);
|
|
44
|
+
for (let i = 0; i <= bytes.length; i++) {
|
|
45
|
+
bytes[i] = alphabet_1.MAPPED_ALPHABET.TEXT_TO_BYTES?.get(text[i]) || 0;
|
|
46
|
+
}
|
|
47
|
+
return bytes;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
exports.Encoder = Encoder;
|
|
51
|
+
//# sourceMappingURL=encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./alphabet"), exports);
|
|
18
|
+
__exportStar(require("./encoder"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B"}
|
package/package.json
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@standen/encoding",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"main": "index.js",
|
|
18
|
-
"scripts": {
|
|
19
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
20
|
-
}
|
|
21
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@standen/encoding",
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"main": "./dist/index.js",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"repository": "https://github.com/standen/encoding",
|
|
7
|
+
"author": "Standen",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"devDependencies": {
|
|
10
|
+
"@types/node": "^25.3.0",
|
|
11
|
+
"typescript": "^5.9.3"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc"
|
|
15
|
+
}
|
|
16
|
+
}
|
package/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const test = "test";
|