feat: init

This commit is contained in:
Nick 2024-08-10 02:59:22 -05:00
parent 8379d09058
commit 2cfa016090
2929 changed files with 299087 additions and 3 deletions

7
node_modules/magic-bytes.js/dist/index.d.ts generated vendored Normal file
View file

@ -0,0 +1,7 @@
import { GuessedFile } from "./model/tree";
export declare const filetypeinfo: (bytes: number[] | Uint8Array | Uint8ClampedArray) => GuessedFile[];
export default filetypeinfo;
export declare const filetypename: (bytes: number[] | Uint8Array | Uint8ClampedArray) => string[];
export declare const filetypemime: (bytes: number[] | Uint8Array | Uint8ClampedArray) => string[];
export declare const filetypeextension: (bytes: number[] | Uint8Array | Uint8ClampedArray) => string[];
//# sourceMappingURL=index.d.ts.map

1
node_modules/magic-bytes.js/dist/index.d.ts.map generated vendored Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAc,MAAM,cAAc,CAAC;AAIvD,eAAO,MAAM,YAAY,UAChB,MAAM,EAAE,GAAG,UAAU,GAAG,iBAAiB,KAC/C,WAAW,EAkBb,CAAC;AA0BF,eAAe,YAAY,CAAC;AAE5B,eAAO,MAAM,YAAY,UAChB,MAAM,EAAE,GAAG,UAAU,GAAG,iBAAiB,KAC/C,MAAM,EAAgD,CAAC;AAE1D,eAAO,MAAM,YAAY,UAChB,MAAM,EAAE,GAAG,UAAU,GAAG,iBAAiB,KAC/C,MAAM,EAGiC,CAAC;AAE3C,eAAO,MAAM,iBAAiB,UACrB,MAAM,EAAE,GAAG,UAAU,GAAG,iBAAiB,KAC/C,MAAM,EAGiC,CAAC"}

60
node_modules/magic-bytes.js/dist/index.js generated vendored Normal file
View file

@ -0,0 +1,60 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.filetypeextension = exports.filetypemime = exports.filetypename = exports.filetypeinfo = void 0;
const pattern_tree_1 = __importDefault(require("./model/pattern-tree"));
const toHex_1 = require("./model/toHex");
const patternTree = pattern_tree_1.default();
const filetypeinfo = (bytes) => {
let tree = patternTree;
for (const k of Object.keys(tree.offset)) {
const offset = toHex_1.fromHex(k);
const offsetExceedsFile = offset >= bytes.length;
if (offsetExceedsFile) {
continue;
}
const node = patternTree.offset[k];
const guessed = walkTree(offset, bytes, node);
if (guessed.length > 0) {
return guessed;
}
}
if (tree.noOffset === null) {
return [];
}
return walkTree(0, bytes, tree.noOffset);
};
exports.filetypeinfo = filetypeinfo;
const walkTree = (index, bytes, node) => {
let step = node;
let guessFile = [];
while (true) {
const currentByte = toHex_1.toHex(bytes[index]);
if (step.bytes["?"] && !step.bytes[currentByte]) {
step = step.bytes["?"];
}
else {
step = step.bytes[currentByte];
}
if (!step) {
return guessFile;
}
if (step && step.matches) {
guessFile = step.matches.slice(0);
}
index += 1;
}
};
exports.default = exports.filetypeinfo;
const filetypename = (bytes) => exports.filetypeinfo(bytes).map((e) => e.typename);
exports.filetypename = filetypename;
const filetypemime = (bytes) => exports.filetypeinfo(bytes)
.map((e) => (e.mime ? e.mime : null))
.filter((x) => x !== null);
exports.filetypemime = filetypemime;
const filetypeextension = (bytes) => exports.filetypeinfo(bytes)
.map((e) => (e.extension ? e.extension : null))
.filter((x) => x !== null);
exports.filetypeextension = filetypeextension;

2
node_modules/magic-bytes.js/dist/index.spec.d.ts generated vendored Normal file
View file

@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=index.spec.d.ts.map

1
node_modules/magic-bytes.js/dist/index.spec.d.ts.map generated vendored Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":""}

View file

@ -0,0 +1,4 @@
import { Tree } from "./tree";
declare const _default: () => Tree;
export default _default;
//# sourceMappingURL=pattern-tree.d.ts.map

View file

@ -0,0 +1 @@
{"version":3,"file":"pattern-tree.d.ts","sourceRoot":"","sources":["../../src/model/pattern-tree.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,IAAI,EAAE,MAAM,QAAQ,CAAC;8BAu0CvD,IAAI;AAAvB,wBAAwC"}

1155
node_modules/magic-bytes.js/dist/model/pattern-tree.js generated vendored Normal file

File diff suppressed because it is too large Load diff

3
node_modules/magic-bytes.js/dist/model/toHex.d.ts generated vendored Normal file
View file

@ -0,0 +1,3 @@
export declare const toHex: (num: number) => string;
export declare const fromHex: (hex: string) => number;
//# sourceMappingURL=toHex.d.ts.map

View file

@ -0,0 +1 @@
{"version":3,"file":"toHex.d.ts","sourceRoot":"","sources":["../../src/model/toHex.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,QAAS,MAAM,KAAG,MACsB,CAAC;AAC3D,eAAO,MAAM,OAAO,QAAS,MAAM,WAA8B,CAAC"}

8
node_modules/magic-bytes.js/dist/model/toHex.js generated vendored Normal file
View file

@ -0,0 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fromHex = exports.toHex = void 0;
const hex = (num) => new Number(num).toString(16).toLowerCase();
const toHex = (num) => `0x${hex(num).length === 1 ? "0" + hex(num) : hex(num)}`;
exports.toHex = toHex;
const fromHex = (hex) => new Number(hex);
exports.fromHex = fromHex;

30
node_modules/magic-bytes.js/dist/model/tree.d.ts generated vendored Normal file
View file

@ -0,0 +1,30 @@
export declare type PathlessNewNode = {
info: Info;
typename: string;
};
export declare type NewNode = PathlessNewNode & {
bytes: string[];
};
export declare type GuessedFile = Info & {
typename: string;
};
export declare type Info = {
mime?: string;
extension?: string;
};
export declare type Node = {
matches?: GuessedFile[];
bytes: {
[nextbyte: string]: Node;
};
};
export declare type Tree = {
noOffset: Node | null;
offset: {
[offsetByte: string]: Node;
};
};
export declare const merge: (node: NewNode, tree: Node) => Node;
export declare const createNode: (typename: string, bytes: string[], info?: Info | undefined) => NewNode;
export declare const createComplexNode: (typename: string, bytes: string[], info?: Info | undefined) => Node;
//# sourceMappingURL=tree.d.ts.map

1
node_modules/magic-bytes.js/dist/model/tree.d.ts.map generated vendored Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/model/tree.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,OAAO,GAAG,eAAe,GAAG;IACtC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,oBAAY,WAAW,GAAG,IAAI,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,IAAI,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,IAAI,GAAG;IACjB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE;QACL,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CACH,CAAC;AAEF,oBAAY,IAAI,GAAG;IACjB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACxC,CAAC;AAcF,eAAO,MAAM,KAAK,SAAU,OAAO,QAAQ,IAAI,KAAG,IAoCjD,CAAC;AAEF,eAAO,MAAM,UAAU,aACX,MAAM,SACT,MAAM,EAAE,8BAEd,OAEF,CAAC;AAEF,eAAO,MAAM,iBAAiB,aAClB,MAAM,SACT,MAAM,EAAE,8BAEd,IAoBF,CAAC"}

70
node_modules/magic-bytes.js/dist/model/tree.js generated vendored Normal file
View file

@ -0,0 +1,70 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createComplexNode = exports.createNode = exports.merge = void 0;
const createMatch = (leaf) => ({
typename: leaf.typename,
mime: leaf.info.mime,
extension: leaf.info.extension,
});
const isMatchingNode = (tree, path) => tree && path.length === 0;
const head = (arr) => arr[0];
const tail = (arr) => arr.slice(1, arr.length);
const merge = (node, tree) => {
if (node.bytes.length === 0)
return tree;
const currentByte = head(node.bytes); // 0
const path = tail(node.bytes); // [1,2]
const currentTree = tree.bytes[currentByte];
// traversed to end. Just add key to leaf.
if (isMatchingNode(currentTree, path)) {
const matchingNode = tree.bytes[currentByte];
tree.bytes[currentByte] = {
...matchingNode,
matches: [
...(matchingNode.matches ? matchingNode.matches : []),
createMatch(node),
],
};
return tree;
}
// Path exists already, Merge subtree
if (tree.bytes[currentByte]) {
tree.bytes[currentByte] = exports.merge(exports.createNode(node.typename, path, node.info), tree.bytes[currentByte]);
return tree;
}
// Tree did not exist before
if (!tree.bytes[currentByte]) {
tree.bytes[currentByte] = {
...tree.bytes[currentByte],
...exports.createComplexNode(node.typename, path, node.info),
};
}
return tree;
};
exports.merge = merge;
const createNode = (typename, bytes, info) => {
return { typename, bytes, info: info ? info : {} };
};
exports.createNode = createNode;
const createComplexNode = (typename, bytes, info) => {
let obj = {
bytes: {},
matches: undefined,
};
const currentKey = head(bytes); // 0
const path = tail(bytes); // [1,2]
if (bytes.length === 0) {
return {
matches: [
createMatch({
typename: typename,
info: info ? { extension: info.extension, mime: info.mime } : {},
}),
],
bytes: {},
};
}
obj.bytes[currentKey] = exports.createComplexNode(typename, path, info);
return obj;
};
exports.createComplexNode = createComplexNode;

View file

@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=tree.spec.d.ts.map

View file

@ -0,0 +1 @@
{"version":3,"file":"tree.spec.d.ts","sourceRoot":"","sources":["../../src/model/tree.spec.ts"],"names":[],"mappings":""}