@intactfile/engines 0.1.0 → 0.3.0
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/dist/archive/index.d.ts +5 -13
- package/dist/archive/index.d.ts.map +1 -1
- package/dist/archive/index.js +4 -1
- package/dist/archive/index.js.map +1 -1
- package/dist/audio/index.d.ts +11 -0
- package/dist/audio/index.d.ts.map +1 -0
- package/dist/audio/index.js +11 -0
- package/dist/audio/index.js.map +1 -0
- package/dist/audio/mp3.d.ts +22 -0
- package/dist/audio/mp3.d.ts.map +1 -0
- package/dist/audio/mp3.js +141 -0
- package/dist/audio/mp3.js.map +1 -0
- package/dist/audio/wav.d.ts +23 -0
- package/dist/audio/wav.d.ts.map +1 -0
- package/dist/audio/wav.js +86 -0
- package/dist/audio/wav.js.map +1 -0
- package/dist/bytes-util.d.ts +17 -0
- package/dist/bytes-util.d.ts.map +1 -0
- package/dist/bytes-util.js +46 -0
- package/dist/bytes-util.js.map +1 -0
- package/dist/detect/index.d.ts +1 -1
- package/dist/detect/index.d.ts.map +1 -1
- package/dist/detect/index.js +77 -0
- package/dist/detect/index.js.map +1 -1
- package/dist/heic/format.d.ts +87 -0
- package/dist/heic/format.d.ts.map +1 -0
- package/dist/heic/format.js +241 -0
- package/dist/heic/format.js.map +1 -0
- package/dist/index.d.ts +14 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/jpeg/index.d.ts +2 -8
- package/dist/jpeg/index.d.ts.map +1 -1
- package/dist/jpeg/index.js +4 -1
- package/dist/jpeg/index.js.map +1 -1
- package/dist/license.d.ts +63 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +167 -0
- package/dist/license.js.map +1 -0
- package/dist/office-legacy/diagnose.d.ts +24 -0
- package/dist/office-legacy/diagnose.d.ts.map +1 -0
- package/dist/office-legacy/diagnose.js +111 -0
- package/dist/office-legacy/diagnose.js.map +1 -0
- package/dist/office-legacy/format.d.ts +89 -0
- package/dist/office-legacy/format.d.ts.map +1 -0
- package/dist/office-legacy/format.js +281 -0
- package/dist/office-legacy/format.js.map +1 -0
- package/dist/office-legacy/index.d.ts +9 -0
- package/dist/office-legacy/index.d.ts.map +1 -0
- package/dist/office-legacy/index.js +18 -0
- package/dist/office-legacy/index.js.map +1 -0
- package/dist/office-legacy/rebuild.d.ts +8 -0
- package/dist/office-legacy/rebuild.d.ts.map +1 -0
- package/dist/office-legacy/rebuild.js +234 -0
- package/dist/office-legacy/rebuild.js.map +1 -0
- package/dist/office-legacy/repair.d.ts +40 -0
- package/dist/office-legacy/repair.d.ts.map +1 -0
- package/dist/office-legacy/repair.js +161 -0
- package/dist/office-legacy/repair.js.map +1 -0
- package/dist/pdf/index.d.ts +5 -6
- package/dist/pdf/index.d.ts.map +1 -1
- package/dist/pdf/index.js +4 -1
- package/dist/pdf/index.js.map +1 -1
- package/dist/png/index.d.ts +1 -7
- package/dist/png/index.d.ts.map +1 -1
- package/dist/png/index.js +3 -1
- package/dist/png/index.js.map +1 -1
- package/dist/psd/diagnose.d.ts +33 -0
- package/dist/psd/diagnose.d.ts.map +1 -0
- package/dist/psd/diagnose.js +176 -0
- package/dist/psd/diagnose.js.map +1 -0
- package/dist/psd/format.d.ts +106 -0
- package/dist/psd/format.d.ts.map +1 -0
- package/dist/psd/format.js +238 -0
- package/dist/psd/format.js.map +1 -0
- package/dist/psd/index.d.ts +8 -0
- package/dist/psd/index.d.ts.map +1 -0
- package/dist/psd/index.js +13 -0
- package/dist/psd/index.js.map +1 -0
- package/dist/psd/repair.d.ts +36 -0
- package/dist/psd/repair.d.ts.map +1 -0
- package/dist/psd/repair.js +451 -0
- package/dist/psd/repair.js.map +1 -0
- package/dist/raw/diagnose.d.ts +29 -0
- package/dist/raw/diagnose.d.ts.map +1 -0
- package/dist/raw/diagnose.js +95 -0
- package/dist/raw/diagnose.js.map +1 -0
- package/dist/raw/format.d.ts +47 -0
- package/dist/raw/format.d.ts.map +1 -0
- package/dist/raw/format.js +213 -0
- package/dist/raw/format.js.map +1 -0
- package/dist/raw/index.d.ts +7 -0
- package/dist/raw/index.d.ts.map +1 -0
- package/dist/raw/index.js +13 -0
- package/dist/raw/index.js.map +1 -0
- package/dist/raw/repair.d.ts +46 -0
- package/dist/raw/repair.d.ts.map +1 -0
- package/dist/raw/repair.js +94 -0
- package/dist/raw/repair.js.map +1 -0
- package/dist/sqlite/index.d.ts +8 -1
- package/dist/sqlite/index.d.ts.map +1 -1
- package/dist/sqlite/index.js +4 -1
- package/dist/sqlite/index.js.map +1 -1
- package/dist/video/avi.d.ts +23 -0
- package/dist/video/avi.d.ts.map +1 -0
- package/dist/video/avi.js +122 -0
- package/dist/video/avi.js.map +1 -0
- package/dist/video/index.d.ts +15 -2
- package/dist/video/index.d.ts.map +1 -1
- package/dist/video/index.js +10 -2
- package/dist/video/index.js.map +1 -1
- package/package.json +18 -2
package/dist/detect/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure ISOBMFF / HEIF primitives for the HEIC engine: FullBox-aware box walk,
|
|
3
|
+
* ftyp brands, the `meta` item model (iinf/infe, iloc, pitm, iref), and the
|
|
4
|
+
* `iloc` extent index with the byte positions needed to REWRITE offsets in
|
|
5
|
+
* place. No wasm, no HEVC decode — this engine repairs the container only.
|
|
6
|
+
*
|
|
7
|
+
* The decisive HEIC fact: Apple's `iloc` uses construction_method 0 = ABSOLUTE
|
|
8
|
+
* file offsets, so any byte shift ahead of `mdat` (a garbage prefix, a resized
|
|
9
|
+
* `meta`) invalidates every extent even though the pixel bytes are intact — and
|
|
10
|
+
* that is deterministically fixable by re-anchoring the offsets. Ref: ISO/IEC
|
|
11
|
+
* 14496-12 (ISOBMFF), 23008-12 (HEIF). See docs/engineering/engine-heic.md.
|
|
12
|
+
*/
|
|
13
|
+
export declare const u32be: (b: Uint8Array, o: number) => number;
|
|
14
|
+
export declare const u16be: (b: Uint8Array, o: number) => number;
|
|
15
|
+
/** 64-bit big-endian as a JS number (safe for our bounded file offsets). */
|
|
16
|
+
export declare const u64be: (b: Uint8Array, o: number) => number;
|
|
17
|
+
/** Read a big-endian unsigned of `size` bytes (0/4/8). */
|
|
18
|
+
export declare function readUint(b: Uint8Array, pos: number, size: number): number;
|
|
19
|
+
/** Write a big-endian unsigned of `size` bytes (0/4/8). */
|
|
20
|
+
export declare function writeUint(b: Uint8Array, pos: number, size: number, val: number): void;
|
|
21
|
+
export declare const fourcc: (b: Uint8Array, o: number) => string;
|
|
22
|
+
export interface Box {
|
|
23
|
+
type: string;
|
|
24
|
+
start: number;
|
|
25
|
+
headerSize: number;
|
|
26
|
+
payloadStart: number;
|
|
27
|
+
end: number;
|
|
28
|
+
size: number;
|
|
29
|
+
sizeIsToEof: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** Parse a box header at `off`. Returns null if it can't be a valid header. */
|
|
32
|
+
export declare function parseBox(b: Uint8Array, off: number): Box | null;
|
|
33
|
+
/** Walk boxes in [start,end); tolerant — stops on the first implausible header. */
|
|
34
|
+
export declare function walkBoxes(b: Uint8Array, start: number, end: number): Box[];
|
|
35
|
+
export declare function findNextBox(b: Uint8Array, from: number, limit: number): number;
|
|
36
|
+
export interface FtypInfo {
|
|
37
|
+
majorBrand: string;
|
|
38
|
+
compatible: string[];
|
|
39
|
+
}
|
|
40
|
+
export declare function parseFtyp(b: Uint8Array, box: Box): FtypInfo;
|
|
41
|
+
export type HeicKind = "heic" | "heif" | "avif" | null;
|
|
42
|
+
/** Classify an ISOBMFF image by its ftyp brands. */
|
|
43
|
+
export declare function classifyBrand(info: FtypInfo): HeicKind;
|
|
44
|
+
export interface ItemInfo {
|
|
45
|
+
id: number;
|
|
46
|
+
type: string;
|
|
47
|
+
}
|
|
48
|
+
export interface Extent {
|
|
49
|
+
/** file byte position of the extent_offset field (for rewrite). */
|
|
50
|
+
offsetPos: number;
|
|
51
|
+
offsetSize: number;
|
|
52
|
+
offset: number;
|
|
53
|
+
length: number;
|
|
54
|
+
}
|
|
55
|
+
export interface IlocItem {
|
|
56
|
+
id: number;
|
|
57
|
+
constructionMethod: number;
|
|
58
|
+
baseOffset: number;
|
|
59
|
+
baseOffsetPos: number;
|
|
60
|
+
baseOffsetSize: number;
|
|
61
|
+
extents: Extent[];
|
|
62
|
+
}
|
|
63
|
+
export interface HeicMeta {
|
|
64
|
+
metaBox: Box;
|
|
65
|
+
items: ItemInfo[];
|
|
66
|
+
iloc: IlocItem[];
|
|
67
|
+
primaryItemId: number | null;
|
|
68
|
+
/** iref graph: type → [{from, to[]}] (thmb/dimg/cdsc/auxl). */
|
|
69
|
+
refs: {
|
|
70
|
+
type: string;
|
|
71
|
+
from: number;
|
|
72
|
+
to: number[];
|
|
73
|
+
}[];
|
|
74
|
+
}
|
|
75
|
+
/** Locate the top-level meta box (a FullBox). */
|
|
76
|
+
export declare function findMeta(boxes: Box[]): Box | null;
|
|
77
|
+
/** Parse the children of a `meta` FullBox (4-byte version/flags precede them). */
|
|
78
|
+
export declare function parseMeta(b: Uint8Array, metaBox: Box): HeicMeta;
|
|
79
|
+
/** Parse the iloc index, capturing rewritable field positions per extent. */
|
|
80
|
+
export declare function parseIloc(b: Uint8Array, box: Box): IlocItem[];
|
|
81
|
+
/** Absolute file position + length of a method-0 extent. */
|
|
82
|
+
export declare const extentAbs: (item: IlocItem, ext: Extent) => {
|
|
83
|
+
pos: number;
|
|
84
|
+
end: number;
|
|
85
|
+
};
|
|
86
|
+
export declare const itemType: (meta: HeicMeta, id: number) => string;
|
|
87
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/heic/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure ISOBMFF / HEIF primitives for the HEIC engine: FullBox-aware box walk,
|
|
3
|
+
* ftyp brands, the `meta` item model (iinf/infe, iloc, pitm, iref), and the
|
|
4
|
+
* `iloc` extent index with the byte positions needed to REWRITE offsets in
|
|
5
|
+
* place. No wasm, no HEVC decode — this engine repairs the container only.
|
|
6
|
+
*
|
|
7
|
+
* The decisive HEIC fact: Apple's `iloc` uses construction_method 0 = ABSOLUTE
|
|
8
|
+
* file offsets, so any byte shift ahead of `mdat` (a garbage prefix, a resized
|
|
9
|
+
* `meta`) invalidates every extent even though the pixel bytes are intact — and
|
|
10
|
+
* that is deterministically fixable by re-anchoring the offsets. Ref: ISO/IEC
|
|
11
|
+
* 14496-12 (ISOBMFF), 23008-12 (HEIF). See docs/engineering/engine-heic.md.
|
|
12
|
+
*/
|
|
13
|
+
export const u32be = (b, o) => ((b[o] << 24) | (b[o + 1] << 16) | (b[o + 2] << 8) | b[o + 3]) >>> 0;
|
|
14
|
+
export const u16be = (b, o) => ((b[o] << 8) | b[o + 1]) >>> 0;
|
|
15
|
+
/** 64-bit big-endian as a JS number (safe for our bounded file offsets). */
|
|
16
|
+
export const u64be = (b, o) => u32be(b, o) * 0x1_0000_0000 + u32be(b, o + 4);
|
|
17
|
+
/** Read a big-endian unsigned of `size` bytes (0/4/8). */
|
|
18
|
+
export function readUint(b, pos, size) {
|
|
19
|
+
if (size === 0)
|
|
20
|
+
return 0;
|
|
21
|
+
if (size === 4)
|
|
22
|
+
return u32be(b, pos);
|
|
23
|
+
if (size === 8)
|
|
24
|
+
return u64be(b, pos);
|
|
25
|
+
let v = 0;
|
|
26
|
+
for (let i = 0; i < size; i++)
|
|
27
|
+
v = v * 256 + b[pos + i];
|
|
28
|
+
return v;
|
|
29
|
+
}
|
|
30
|
+
/** Write a big-endian unsigned of `size` bytes (0/4/8). */
|
|
31
|
+
export function writeUint(b, pos, size, val) {
|
|
32
|
+
for (let i = size - 1; i >= 0; i--) {
|
|
33
|
+
b[pos + i] = val & 0xff;
|
|
34
|
+
val = Math.floor(val / 256);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export const fourcc = (b, o) => String.fromCharCode(b[o], b[o + 1], b[o + 2], b[o + 3]);
|
|
38
|
+
/** Parse a box header at `off`. Returns null if it can't be a valid header. */
|
|
39
|
+
export function parseBox(b, off) {
|
|
40
|
+
if (off + 8 > b.length)
|
|
41
|
+
return null;
|
|
42
|
+
let size = u32be(b, off);
|
|
43
|
+
let headerSize = 8;
|
|
44
|
+
let sizeIsToEof = false;
|
|
45
|
+
if (size === 1) {
|
|
46
|
+
if (off + 16 > b.length)
|
|
47
|
+
return null;
|
|
48
|
+
size = u64be(b, off + 8);
|
|
49
|
+
headerSize = 16;
|
|
50
|
+
}
|
|
51
|
+
else if (size === 0) {
|
|
52
|
+
sizeIsToEof = true;
|
|
53
|
+
size = b.length - off;
|
|
54
|
+
}
|
|
55
|
+
const type = fourcc(b, off + 4);
|
|
56
|
+
const end = sizeIsToEof ? b.length : off + size;
|
|
57
|
+
return { type, start: off, headerSize, payloadStart: off + headerSize, end, size, sizeIsToEof };
|
|
58
|
+
}
|
|
59
|
+
const TYPE_RE = /^[A-Za-z0-9 ._-]{4}$/;
|
|
60
|
+
const isPrintableType = (b, o) => TYPE_RE.test(fourcc(b, o));
|
|
61
|
+
/** Walk boxes in [start,end); tolerant — stops on the first implausible header. */
|
|
62
|
+
export function walkBoxes(b, start, end) {
|
|
63
|
+
const out = [];
|
|
64
|
+
let pos = start;
|
|
65
|
+
while (pos + 8 <= end) {
|
|
66
|
+
const box = parseBox(b, pos);
|
|
67
|
+
if (!box || box.size < 8 || box.end > end || !isPrintableType(b, pos + 4))
|
|
68
|
+
break;
|
|
69
|
+
out.push(box);
|
|
70
|
+
if (box.sizeIsToEof)
|
|
71
|
+
break;
|
|
72
|
+
pos = box.end;
|
|
73
|
+
}
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
/** Scan forward for the next known top-level 4CC (resync after a bad size). */
|
|
77
|
+
const KNOWN_TOP = new Set(["ftyp", "meta", "mdat", "free", "skip", "moov", "moof", "idat"]);
|
|
78
|
+
export function findNextBox(b, from, limit) {
|
|
79
|
+
const hi = Math.min(limit, b.length - 8);
|
|
80
|
+
for (let i = from; i <= hi; i++) {
|
|
81
|
+
if (isPrintableType(b, i + 4) && KNOWN_TOP.has(fourcc(b, i + 4)) && u32be(b, i) >= 8)
|
|
82
|
+
return i;
|
|
83
|
+
}
|
|
84
|
+
return -1;
|
|
85
|
+
}
|
|
86
|
+
export function parseFtyp(b, box) {
|
|
87
|
+
const majorBrand = fourcc(b, box.payloadStart);
|
|
88
|
+
const compatible = [];
|
|
89
|
+
for (let o = box.payloadStart + 8; o + 4 <= box.end; o += 4)
|
|
90
|
+
compatible.push(fourcc(b, o));
|
|
91
|
+
return { majorBrand, compatible };
|
|
92
|
+
}
|
|
93
|
+
const HEIF_BRANDS = new Set(["heic", "heix", "heim", "heis", "hevc", "hevx", "mif1", "msf1", "miaf", "heif"]);
|
|
94
|
+
const AVIF_BRANDS = new Set(["avif", "avis", "av01"]);
|
|
95
|
+
/** Classify an ISOBMFF image by its ftyp brands. */
|
|
96
|
+
export function classifyBrand(info) {
|
|
97
|
+
const all = [info.majorBrand, ...info.compatible];
|
|
98
|
+
if (all.some((x) => AVIF_BRANDS.has(x)))
|
|
99
|
+
return "avif";
|
|
100
|
+
if (info.majorBrand === "heic" || info.majorBrand === "heix")
|
|
101
|
+
return "heic";
|
|
102
|
+
if (all.some((x) => HEIF_BRANDS.has(x)))
|
|
103
|
+
return "heif";
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
/** Locate the top-level meta box (a FullBox). */
|
|
107
|
+
export function findMeta(boxes) {
|
|
108
|
+
return boxes.find((x) => x.type === "meta") ?? null;
|
|
109
|
+
}
|
|
110
|
+
/** Parse the children of a `meta` FullBox (4-byte version/flags precede them). */
|
|
111
|
+
export function parseMeta(b, metaBox) {
|
|
112
|
+
const childrenStart = metaBox.payloadStart + 4; // skip FullBox version+flags
|
|
113
|
+
const children = walkBoxes(b, childrenStart, metaBox.end);
|
|
114
|
+
const meta = { metaBox, items: [], iloc: [], primaryItemId: null, refs: [] };
|
|
115
|
+
for (const c of children) {
|
|
116
|
+
if (c.type === "pitm") {
|
|
117
|
+
const version = b[c.payloadStart];
|
|
118
|
+
meta.primaryItemId = version === 0 ? u16be(b, c.payloadStart + 4) : u32be(b, c.payloadStart + 4);
|
|
119
|
+
}
|
|
120
|
+
else if (c.type === "iinf") {
|
|
121
|
+
meta.items = parseIinf(b, c);
|
|
122
|
+
}
|
|
123
|
+
else if (c.type === "iloc") {
|
|
124
|
+
meta.iloc = parseIloc(b, c);
|
|
125
|
+
}
|
|
126
|
+
else if (c.type === "iref") {
|
|
127
|
+
meta.refs = parseIref(b, c);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return meta;
|
|
131
|
+
}
|
|
132
|
+
function parseIinf(b, box) {
|
|
133
|
+
const version = b[box.payloadStart];
|
|
134
|
+
let p = box.payloadStart + 4;
|
|
135
|
+
let count;
|
|
136
|
+
if (version === 0) {
|
|
137
|
+
count = u16be(b, p);
|
|
138
|
+
p += 2;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
count = u32be(b, p);
|
|
142
|
+
p += 4;
|
|
143
|
+
}
|
|
144
|
+
const items = [];
|
|
145
|
+
const infes = walkBoxes(b, p, box.end).filter((x) => x.type === "infe");
|
|
146
|
+
for (const infe of infes) {
|
|
147
|
+
const v = b[infe.payloadStart];
|
|
148
|
+
let ip = infe.payloadStart + 4;
|
|
149
|
+
let id;
|
|
150
|
+
if (v >= 2) {
|
|
151
|
+
id = v === 2 ? u16be(b, ip) : u32be(b, ip);
|
|
152
|
+
ip += v === 2 ? 2 : 4;
|
|
153
|
+
ip += 2; // protection_index
|
|
154
|
+
const type = fourcc(b, ip);
|
|
155
|
+
items.push({ id, type });
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
// v0/v1: item_ID(16) then item_protection_index(16) then name/content-type
|
|
159
|
+
id = u16be(b, ip);
|
|
160
|
+
items.push({ id, type: "" });
|
|
161
|
+
}
|
|
162
|
+
if (items.length >= count && count > 0)
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
return items;
|
|
166
|
+
}
|
|
167
|
+
function parseIref(b, box) {
|
|
168
|
+
const version = b[box.payloadStart];
|
|
169
|
+
const idSize = version === 0 ? 2 : 4;
|
|
170
|
+
const refs = [];
|
|
171
|
+
for (const r of walkBoxes(b, box.payloadStart + 4, box.end)) {
|
|
172
|
+
let p = r.payloadStart;
|
|
173
|
+
const from = readUint(b, p, idSize);
|
|
174
|
+
p += idSize;
|
|
175
|
+
const n = u16be(b, p);
|
|
176
|
+
p += 2;
|
|
177
|
+
const to = [];
|
|
178
|
+
for (let i = 0; i < n && p + idSize <= r.end; i++) {
|
|
179
|
+
to.push(readUint(b, p, idSize));
|
|
180
|
+
p += idSize;
|
|
181
|
+
}
|
|
182
|
+
refs.push({ type: r.type, from, to });
|
|
183
|
+
}
|
|
184
|
+
return refs;
|
|
185
|
+
}
|
|
186
|
+
/** Parse the iloc index, capturing rewritable field positions per extent. */
|
|
187
|
+
export function parseIloc(b, box) {
|
|
188
|
+
const version = b[box.payloadStart];
|
|
189
|
+
let p = box.payloadStart + 4;
|
|
190
|
+
const offsetSize = (b[p] >> 4) & 0xf;
|
|
191
|
+
const lengthSize = b[p] & 0xf;
|
|
192
|
+
p += 1;
|
|
193
|
+
const baseOffsetSize = (b[p] >> 4) & 0xf;
|
|
194
|
+
const indexSize = version === 1 || version === 2 ? (b[p] & 0xf) : 0;
|
|
195
|
+
p += 1;
|
|
196
|
+
let itemCount;
|
|
197
|
+
if (version < 2) {
|
|
198
|
+
itemCount = u16be(b, p);
|
|
199
|
+
p += 2;
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
itemCount = u32be(b, p);
|
|
203
|
+
p += 4;
|
|
204
|
+
}
|
|
205
|
+
const items = [];
|
|
206
|
+
for (let i = 0; i < itemCount && p < box.end; i++) {
|
|
207
|
+
const id = version < 2 ? u16be(b, p) : u32be(b, p);
|
|
208
|
+
p += version < 2 ? 2 : 4;
|
|
209
|
+
let constructionMethod = 0;
|
|
210
|
+
if (version === 1 || version === 2) {
|
|
211
|
+
constructionMethod = u16be(b, p) & 0xf;
|
|
212
|
+
p += 2;
|
|
213
|
+
}
|
|
214
|
+
p += 2; // data_reference_index
|
|
215
|
+
const baseOffsetPos = p;
|
|
216
|
+
const baseOffset = readUint(b, p, baseOffsetSize);
|
|
217
|
+
p += baseOffsetSize;
|
|
218
|
+
const extentCount = u16be(b, p);
|
|
219
|
+
p += 2;
|
|
220
|
+
const extents = [];
|
|
221
|
+
for (let e = 0; e < extentCount; e++) {
|
|
222
|
+
if (indexSize > 0)
|
|
223
|
+
p += indexSize; // extent_index (ignored)
|
|
224
|
+
const offsetPos = p;
|
|
225
|
+
const offset = readUint(b, p, offsetSize);
|
|
226
|
+
p += offsetSize;
|
|
227
|
+
const length = readUint(b, p, lengthSize);
|
|
228
|
+
p += lengthSize;
|
|
229
|
+
extents.push({ offsetPos, offsetSize, offset, length });
|
|
230
|
+
}
|
|
231
|
+
items.push({ id, constructionMethod, baseOffset, baseOffsetPos, baseOffsetSize, extents });
|
|
232
|
+
}
|
|
233
|
+
return items;
|
|
234
|
+
}
|
|
235
|
+
/** Absolute file position + length of a method-0 extent. */
|
|
236
|
+
export const extentAbs = (item, ext) => ({
|
|
237
|
+
pos: item.baseOffset + ext.offset,
|
|
238
|
+
end: item.baseOffset + ext.offset + ext.length,
|
|
239
|
+
});
|
|
240
|
+
export const itemType = (meta, id) => meta.items.find((x) => x.id === id)?.type ?? "";
|
|
241
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/heic/format.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export { setLicense, clearLicense, getLicenseStatus, verifyLicense, assertLicensed, LicenseError, } from './license.js';
|
|
2
|
+
export type { LicenseClaims, LicenseStatus, LicenseErrorCode } from './license.js';
|
|
1
3
|
export type { ByteSource } from './byte-source.js';
|
|
2
4
|
export { MemorySource } from './byte-source.js';
|
|
3
5
|
export { BlobSource } from './bytesource/blob.js';
|
|
@@ -5,7 +7,10 @@ export { crc32 } from './crc32.js';
|
|
|
5
7
|
export type { Confidence } from './types.js';
|
|
6
8
|
export { diagnoseZip, analyzeZip } from './zip/diagnose.js';
|
|
7
9
|
export type { ZipDiagnosis, DamageClass, ZipAnalysis } from './zip/diagnose.js';
|
|
8
|
-
export
|
|
10
|
+
export declare const repairZip: (src: import("./byte-source.js").ByteSource) => Promise<{
|
|
11
|
+
zip: Uint8Array;
|
|
12
|
+
report: import("./index.js").RepairReport;
|
|
13
|
+
}>;
|
|
9
14
|
export type { RepairReport, RepairEntryReport } from './zip/repair.js';
|
|
10
15
|
export { scanLocalEntries, findEocd } from './zip/scan.js';
|
|
11
16
|
export type { ScanResult, ScannedEntry, EocdResult } from './zip/scan.js';
|
|
@@ -21,4 +26,12 @@ export { diagnosePdf } from './pdf/diagnose.js';
|
|
|
21
26
|
export type { PdfDiagnosis, PdfDamageClass } from './pdf/diagnose.js';
|
|
22
27
|
export { diagnoseVideo } from './video/diagnose.js';
|
|
23
28
|
export type { VideoDiagnosis, VideoDamageClass, VideoContainer, VideoBoxInfo } from './video/diagnose.js';
|
|
29
|
+
export { diagnoseRaw } from './raw/diagnose.js';
|
|
30
|
+
export type { RawDiagnosis, RawDamageClass, RawPreview } from './raw/diagnose.js';
|
|
31
|
+
export type { RawContainer, ByteOrder } from './raw/format.js';
|
|
32
|
+
export { diagnosePsd } from './psd/diagnose.js';
|
|
33
|
+
export type { PsdDiagnosis, PsdDamageClass } from './psd/diagnose.js';
|
|
34
|
+
export type { PsdHeader } from './psd/format.js';
|
|
35
|
+
export { diagnoseOffice } from './office-legacy/diagnose.js';
|
|
36
|
+
export type { OfficeDiagnosis, OfficeDamageClass } from './office-legacy/diagnose.js';
|
|
24
37
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEnF,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChF,eAAO,MAAM,SAAS;;;EAAmB,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAItE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAI1G,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClF,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { gate } from './license.js';
|
|
2
|
+
import { repairZip as _repairZip } from './zip/repair.js';
|
|
3
|
+
// SDK/CLI license API (Node-only gate; the browser widget is unaffected).
|
|
4
|
+
export { setLicense, clearLicense, getLicenseStatus, verifyLicense, assertLicensed, LicenseError, } from './license.js';
|
|
1
5
|
export { MemorySource } from './byte-source.js';
|
|
2
6
|
export { BlobSource } from './bytesource/blob.js';
|
|
3
7
|
export { crc32 } from './crc32.js';
|
|
4
8
|
export { diagnoseZip, analyzeZip } from './zip/diagnose.js';
|
|
5
|
-
export
|
|
9
|
+
export const repairZip = gate(_repairZip);
|
|
6
10
|
export { scanLocalEntries, findEocd } from './zip/scan.js';
|
|
7
11
|
export { validateEntry } from './zip/salvage.js';
|
|
8
12
|
export { buildZip } from './zip/writer.js';
|
|
@@ -14,4 +18,13 @@ export { diagnosePdf } from './pdf/diagnose.js';
|
|
|
14
18
|
// Video diagnosis is likewise pure own parsing (no libav.js in its import
|
|
15
19
|
// chain); remuxVideo stays behind './video'.
|
|
16
20
|
export { diagnoseVideo } from './video/diagnose.js';
|
|
21
|
+
// RAW diagnosis is pure byte-scanning (no codec in its import chain); repairRaw
|
|
22
|
+
// stays behind './raw'.
|
|
23
|
+
export { diagnoseRaw } from './raw/diagnose.js';
|
|
24
|
+
// PSD/PSB diagnosis is pure byte-scanning (no pixel decode in its chain);
|
|
25
|
+
// repairPsd stays behind './psd'.
|
|
26
|
+
export { diagnosePsd } from './psd/diagnose.js';
|
|
27
|
+
// Legacy Office (CFBF/OLE2) diagnosis is pure byte-scanning; repairOffice stays
|
|
28
|
+
// behind './office-legacy'.
|
|
29
|
+
export { diagnoseOffice } from './office-legacy/diagnose.js';
|
|
17
30
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE1D,0EAA0E;AAC1E,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,gFAAgF;AAChF,6EAA6E;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,0EAA0E;AAC1E,6CAA6C;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,gFAAgF;AAChF,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,0EAA0E;AAC1E,kCAAkC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,gFAAgF;AAChF,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/jpeg/index.d.ts
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JPEG engine subpath export (`@intactfile/engines/jpeg`). Kept out of the
|
|
3
|
-
* root export so browser bundles that never touch JPEGs never pull in the
|
|
4
|
-
* @jsquash codec wasm or exifr; even here, the codec wasm only loads on the
|
|
5
|
-
* first repairJpeg call. diagnoseJpeg is pure marker-scanning and safe to call
|
|
6
|
-
* eagerly.
|
|
7
|
-
*/
|
|
8
1
|
export { diagnoseJpeg, LOW_SCAN_ENTROPY, SOI_SCAN_WINDOW } from './diagnose.js';
|
|
9
2
|
export type { JpegDiagnosis, JpegDamageClass } from './diagnose.js';
|
|
10
|
-
export
|
|
3
|
+
export declare const repairJpeg: (src: import("../byte-source.js").ByteSource, opts?: import("./repair.js").JpegRepairOptions | undefined) => Promise<import("./repair.js").JpegRepairResult>;
|
|
4
|
+
export { buildRepairCandidates, transplantHeader } from './repair.js';
|
|
11
5
|
export type { JpegRepairResult, JpegRepairReport, JpegRepairOptions, JpegRepairOutcome, JpegRepairStrategy, JpegRepairAttempt, } from './repair.js';
|
|
12
6
|
export { extractExifThumbnail, extractExifOrientation } from './exif.js';
|
|
13
7
|
export { decodeJpeg, encodeJpeg, setJpegLoader, resetJpegHost, SALVAGE_ENCODE_OPTIONS, } from './mozjpeg-host.js';
|
package/dist/jpeg/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jpeg/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jpeg/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpE,eAAO,MAAM,UAAU,8JAAoB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExG,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAErF,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/jpeg/index.js
CHANGED
|
@@ -5,8 +5,11 @@
|
|
|
5
5
|
* first repairJpeg call. diagnoseJpeg is pure marker-scanning and safe to call
|
|
6
6
|
* eagerly.
|
|
7
7
|
*/
|
|
8
|
+
import { gate } from '../license.js';
|
|
9
|
+
import { repairJpeg as _repairJpeg } from './repair.js';
|
|
8
10
|
export { diagnoseJpeg, LOW_SCAN_ENTROPY, SOI_SCAN_WINDOW } from './diagnose.js';
|
|
9
|
-
export
|
|
11
|
+
export const repairJpeg = gate(_repairJpeg);
|
|
12
|
+
export { buildRepairCandidates, transplantHeader } from './repair.js';
|
|
10
13
|
export { extractExifThumbnail, extractExifOrientation } from './exif.js';
|
|
11
14
|
export { decodeJpeg, encodeJpeg, setJpegLoader, resetJpegHost, SALVAGE_ENCODE_OPTIONS, } from './mozjpeg-host.js';
|
|
12
15
|
export { createBrowserJpegLoader, DEFAULT_JPEG_BASE_URL } from './browser-loader.js';
|
package/dist/jpeg/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jpeg/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jpeg/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAUtE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAErF,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK/CLI license gate for the IntactFile repair engines.
|
|
3
|
+
*
|
|
4
|
+
* The repair engines are the paid product; diagnosis/detection stay free. On
|
|
5
|
+
* Node (CLI, MCP server, or the SDK imported directly) every repair entry
|
|
6
|
+
* point is gated behind a short-lived ES256 license minted by the API for
|
|
7
|
+
* ACTIVE Business subscribers and verified OFFLINE against the embedded PUBLIC
|
|
8
|
+
* key below — the API is the sole holder of the private key.
|
|
9
|
+
*
|
|
10
|
+
* In the BROWSER the gate is a no-op: the free in-browser widget calls these
|
|
11
|
+
* same functions and must stay free, so the gate only engages in a real Node
|
|
12
|
+
* runtime. DRM on a local library can't be unbreakable; this is a genuine,
|
|
13
|
+
* signed entitlement check plus the terms — not obfuscation. It never inspects
|
|
14
|
+
* file bytes and never phones home during a repair (verification is offline).
|
|
15
|
+
*/
|
|
16
|
+
export type LicenseErrorCode = "missing" | "invalid" | "expired" | "wrong-tier";
|
|
17
|
+
export declare class LicenseError extends Error {
|
|
18
|
+
readonly code: LicenseErrorCode;
|
|
19
|
+
constructor(code: LicenseErrorCode, message: string);
|
|
20
|
+
}
|
|
21
|
+
export interface LicenseClaims {
|
|
22
|
+
sub: string;
|
|
23
|
+
tier: string;
|
|
24
|
+
iat: number;
|
|
25
|
+
exp: number;
|
|
26
|
+
}
|
|
27
|
+
export interface LicenseStatus {
|
|
28
|
+
licensed: boolean;
|
|
29
|
+
tier?: string;
|
|
30
|
+
/** ISO 8601 expiry, present when a valid license is applied. */
|
|
31
|
+
expiresAt?: string;
|
|
32
|
+
reason?: LicenseErrorCode;
|
|
33
|
+
}
|
|
34
|
+
/** @internal test hook — override the embedded public key (null = restore). */
|
|
35
|
+
export declare function __setTestPublicKey(jwk: JsonWebKey | null): void;
|
|
36
|
+
/** @internal test hook — force the browser (no-op) code path. */
|
|
37
|
+
export declare function __setForceBrowser(on: boolean): void;
|
|
38
|
+
/**
|
|
39
|
+
* Verify a compact ES256 license JWT offline and return its claims, or throw a
|
|
40
|
+
* LicenseError. Pure (no module state): the unit tests drive it with an
|
|
41
|
+
* ephemeral keypair via the `publicJwk` option.
|
|
42
|
+
*/
|
|
43
|
+
export declare function verifyLicense(token: string, opts?: {
|
|
44
|
+
publicJwk?: JsonWebKey;
|
|
45
|
+
now?: number;
|
|
46
|
+
}): Promise<LicenseClaims>;
|
|
47
|
+
/** Apply a license token so Node-side repairs can run. No-op-safe to re-call. */
|
|
48
|
+
export declare function setLicense(token: string): void;
|
|
49
|
+
/** Forget any applied license. */
|
|
50
|
+
export declare function clearLicense(): void;
|
|
51
|
+
/** Report whether a valid license is currently applied (verifies offline). */
|
|
52
|
+
export declare function getLicenseStatus(): Promise<LicenseStatus>;
|
|
53
|
+
/**
|
|
54
|
+
* The gate itself. In the browser it returns immediately (free widget). On
|
|
55
|
+
* Node it requires a valid, unexpired Business license, verified offline.
|
|
56
|
+
*/
|
|
57
|
+
export declare function assertLicensed(): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Wrap a repair entry point so it is licensed on Node and free in the browser.
|
|
60
|
+
* Preserves the wrapped function's signature.
|
|
61
|
+
*/
|
|
62
|
+
export declare function gate<A extends unknown[], R>(fn: (...args: A) => Promise<R>): (...args: A) => Promise<R>;
|
|
63
|
+
//# sourceMappingURL=license.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAEhF,qBAAa,YAAa,SAAQ,KAAK;IAEnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB,EAC/B,OAAO,EAAE,MAAM;CAKlB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAeD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAG/D;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAEnD;AAyCD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,UAAU,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,OAAO,CAAC,aAAa,CAAC,CAsCxB;AAID,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED,kCAAkC;AAClC,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,8EAA8E;AAC9E,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAQ/D;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAYpD;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EACzC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAK5B"}
|