@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 CHANGED
@@ -1 +1 @@
1
- # encoding
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"}
@@ -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"}
@@ -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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"}
@@ -0,0 +1,3 @@
1
+ export * from "./alphabet";
2
+ export * from "./encoder";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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.1",
4
- "description": "",
5
- "keywords": [],
6
- "homepage": "https://github.com/standen/encoding#readme",
7
- "bugs": {
8
- "url": "https://github.com/standen/encoding/issues"
9
- },
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/standen/encoding.git"
13
- },
14
- "license": "ISC",
15
- "author": "",
16
- "type": "commonjs",
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";