yom-format 0.1.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.
Files changed (199) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/dist/cli.d.ts +30 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +344 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/index.d.ts +36 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +25 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/pipeline/avif.d.ts +3 -0
  12. package/dist/pipeline/avif.d.ts.map +1 -0
  13. package/dist/pipeline/avif.js +30 -0
  14. package/dist/pipeline/avif.js.map +1 -0
  15. package/dist/pipeline/convert.d.ts +28 -0
  16. package/dist/pipeline/convert.d.ts.map +1 -0
  17. package/dist/pipeline/convert.js +111 -0
  18. package/dist/pipeline/convert.js.map +1 -0
  19. package/dist/pipeline/index.d.ts +17 -0
  20. package/dist/pipeline/index.d.ts.map +1 -0
  21. package/dist/pipeline/index.js +17 -0
  22. package/dist/pipeline/index.js.map +1 -0
  23. package/dist/pipeline/ocrLayoutBuilder.d.ts +10 -0
  24. package/dist/pipeline/ocrLayoutBuilder.d.ts.map +1 -0
  25. package/dist/pipeline/ocrLayoutBuilder.js +62 -0
  26. package/dist/pipeline/ocrLayoutBuilder.js.map +1 -0
  27. package/dist/pipeline/pdfDocument.d.ts +12 -0
  28. package/dist/pipeline/pdfDocument.d.ts.map +1 -0
  29. package/dist/pipeline/pdfDocument.js +76 -0
  30. package/dist/pipeline/pdfDocument.js.map +1 -0
  31. package/dist/pipeline/renderPage.d.ts +10 -0
  32. package/dist/pipeline/renderPage.d.ts.map +1 -0
  33. package/dist/pipeline/renderPage.js +36 -0
  34. package/dist/pipeline/renderPage.js.map +1 -0
  35. package/dist/pipeline/textExtract.d.ts +29 -0
  36. package/dist/pipeline/textExtract.d.ts.map +1 -0
  37. package/dist/pipeline/textExtract.js +48 -0
  38. package/dist/pipeline/textExtract.js.map +1 -0
  39. package/dist/yom/blobLimits.d.ts +15 -0
  40. package/dist/yom/blobLimits.d.ts.map +1 -0
  41. package/dist/yom/blobLimits.js +25 -0
  42. package/dist/yom/blobLimits.js.map +1 -0
  43. package/dist/yom/byteSource.d.ts +56 -0
  44. package/dist/yom/byteSource.d.ts.map +1 -0
  45. package/dist/yom/byteSource.js +111 -0
  46. package/dist/yom/byteSource.js.map +1 -0
  47. package/dist/yom/bytes.d.ts +2 -0
  48. package/dist/yom/bytes.d.ts.map +1 -0
  49. package/dist/yom/bytes.js +13 -0
  50. package/dist/yom/bytes.js.map +1 -0
  51. package/dist/yom/constants.d.ts +34 -0
  52. package/dist/yom/constants.d.ts.map +1 -0
  53. package/dist/yom/constants.js +82 -0
  54. package/dist/yom/constants.js.map +1 -0
  55. package/dist/yom/errors.d.ts +44 -0
  56. package/dist/yom/errors.d.ts.map +1 -0
  57. package/dist/yom/errors.js +44 -0
  58. package/dist/yom/errors.js.map +1 -0
  59. package/dist/yom/flatbufferVerify.d.ts +21 -0
  60. package/dist/yom/flatbufferVerify.d.ts.map +1 -0
  61. package/dist/yom/flatbufferVerify.js +255 -0
  62. package/dist/yom/flatbufferVerify.js.map +1 -0
  63. package/dist/yom/generated/yomu/yom/blob-kind.d.ts +9 -0
  64. package/dist/yom/generated/yomu/yom/blob-kind.d.ts.map +1 -0
  65. package/dist/yom/generated/yomu/yom/blob-kind.js +12 -0
  66. package/dist/yom/generated/yomu/yom/blob-kind.js.map +1 -0
  67. package/dist/yom/generated/yomu/yom/blob-ref.d.ts +45 -0
  68. package/dist/yom/generated/yomu/yom/blob-ref.d.ts.map +1 -0
  69. package/dist/yom/generated/yomu/yom/blob-ref.js +141 -0
  70. package/dist/yom/generated/yomu/yom/blob-ref.js.map +1 -0
  71. package/dist/yom/generated/yomu/yom/book-metadata.d.ts +32 -0
  72. package/dist/yom/generated/yomu/yom/book-metadata.d.ts.map +1 -0
  73. package/dist/yom/generated/yomu/yom/book-metadata.js +89 -0
  74. package/dist/yom/generated/yomu/yom/book-metadata.js.map +1 -0
  75. package/dist/yom/generated/yomu/yom/compression.d.ts +5 -0
  76. package/dist/yom/generated/yomu/yom/compression.d.ts.map +1 -0
  77. package/dist/yom/generated/yomu/yom/compression.js +8 -0
  78. package/dist/yom/generated/yomu/yom/compression.js.map +1 -0
  79. package/dist/yom/generated/yomu/yom/main-index.d.ts +63 -0
  80. package/dist/yom/generated/yomu/yom/main-index.d.ts.map +1 -0
  81. package/dist/yom/generated/yomu/yom/main-index.js +208 -0
  82. package/dist/yom/generated/yomu/yom/main-index.js.map +1 -0
  83. package/dist/yom/generated/yomu/yom/ocrblock.d.ts +32 -0
  84. package/dist/yom/generated/yomu/yom/ocrblock.d.ts.map +1 -0
  85. package/dist/yom/generated/yomu/yom/ocrblock.js +84 -0
  86. package/dist/yom/generated/yomu/yom/ocrblock.js.map +1 -0
  87. package/dist/yom/generated/yomu/yom/ocrlayout.d.ts +27 -0
  88. package/dist/yom/generated/yomu/yom/ocrlayout.d.ts.map +1 -0
  89. package/dist/yom/generated/yomu/yom/ocrlayout.js +76 -0
  90. package/dist/yom/generated/yomu/yom/ocrlayout.js.map +1 -0
  91. package/dist/yom/generated/yomu/yom/ocrline.d.ts +35 -0
  92. package/dist/yom/generated/yomu/yom/ocrline.d.ts.map +1 -0
  93. package/dist/yom/generated/yomu/yom/ocrline.js +95 -0
  94. package/dist/yom/generated/yomu/yom/ocrline.js.map +1 -0
  95. package/dist/yom/generated/yomu/yom/ocrpage.d.ts +46 -0
  96. package/dist/yom/generated/yomu/yom/ocrpage.d.ts.map +1 -0
  97. package/dist/yom/generated/yomu/yom/ocrpage.js +147 -0
  98. package/dist/yom/generated/yomu/yom/ocrpage.js.map +1 -0
  99. package/dist/yom/generated/yomu/yom/ocrtoken.d.ts +44 -0
  100. package/dist/yom/generated/yomu/yom/ocrtoken.d.ts.map +1 -0
  101. package/dist/yom/generated/yomu/yom/ocrtoken.js +128 -0
  102. package/dist/yom/generated/yomu/yom/ocrtoken.js.map +1 -0
  103. package/dist/yom/generated/yomu/yom/outline-entry.d.ts +31 -0
  104. package/dist/yom/generated/yomu/yom/outline-entry.d.ts.map +1 -0
  105. package/dist/yom/generated/yomu/yom/outline-entry.js +92 -0
  106. package/dist/yom/generated/yomu/yom/outline-entry.js.map +1 -0
  107. package/dist/yom/generated/yomu/yom/page-entry.d.ts +95 -0
  108. package/dist/yom/generated/yomu/yom/page-entry.d.ts.map +1 -0
  109. package/dist/yom/generated/yomu/yom/page-entry.js +288 -0
  110. package/dist/yom/generated/yomu/yom/page-entry.js.map +1 -0
  111. package/dist/yom/generated/yomu/yom/pdfexport-metadata.d.ts +32 -0
  112. package/dist/yom/generated/yomu/yom/pdfexport-metadata.d.ts.map +1 -0
  113. package/dist/yom/generated/yomu/yom/pdfexport-metadata.js +96 -0
  114. package/dist/yom/generated/yomu/yom/pdfexport-metadata.js.map +1 -0
  115. package/dist/yom/generated/yomu/yom/reading-direction.d.ts +5 -0
  116. package/dist/yom/generated/yomu/yom/reading-direction.d.ts.map +1 -0
  117. package/dist/yom/generated/yomu/yom/reading-direction.js +8 -0
  118. package/dist/yom/generated/yomu/yom/reading-direction.js.map +1 -0
  119. package/dist/yom/generated/yomu/yom/search-term-ref.d.ts +34 -0
  120. package/dist/yom/generated/yomu/yom/search-term-ref.d.ts.map +1 -0
  121. package/dist/yom/generated/yomu/yom/search-term-ref.js +99 -0
  122. package/dist/yom/generated/yomu/yom/search-term-ref.js.map +1 -0
  123. package/dist/yom/generated/yomu/yom.d.ts +6 -0
  124. package/dist/yom/generated/yomu/yom.d.ts.map +1 -0
  125. package/dist/yom/generated/yomu/yom.js +8 -0
  126. package/dist/yom/generated/yomu/yom.js.map +1 -0
  127. package/dist/yom/hash.d.ts +4 -0
  128. package/dist/yom/hash.d.ts.map +1 -0
  129. package/dist/yom/hash.js +21 -0
  130. package/dist/yom/hash.js.map +1 -0
  131. package/dist/yom/header.d.ts +44 -0
  132. package/dist/yom/header.d.ts.map +1 -0
  133. package/dist/yom/header.js +115 -0
  134. package/dist/yom/header.js.map +1 -0
  135. package/dist/yom/reader.d.ts +57 -0
  136. package/dist/yom/reader.d.ts.map +1 -0
  137. package/dist/yom/reader.js +141 -0
  138. package/dist/yom/reader.js.map +1 -0
  139. package/dist/yom/searchIndex.d.ts +41 -0
  140. package/dist/yom/searchIndex.d.ts.map +1 -0
  141. package/dist/yom/searchIndex.js +133 -0
  142. package/dist/yom/searchIndex.js.map +1 -0
  143. package/dist/yom/textNormalizer.d.ts +19 -0
  144. package/dist/yom/textNormalizer.d.ts.map +1 -0
  145. package/dist/yom/textNormalizer.js +77 -0
  146. package/dist/yom/textNormalizer.js.map +1 -0
  147. package/dist/yom/validator.d.ts +14 -0
  148. package/dist/yom/validator.d.ts.map +1 -0
  149. package/dist/yom/validator.js +197 -0
  150. package/dist/yom/validator.js.map +1 -0
  151. package/dist/yom/writer.d.ts +76 -0
  152. package/dist/yom/writer.d.ts.map +1 -0
  153. package/dist/yom/writer.js +154 -0
  154. package/dist/yom/writer.js.map +1 -0
  155. package/dist/yom/zstd.d.ts +14 -0
  156. package/dist/yom/zstd.d.ts.map +1 -0
  157. package/dist/yom/zstd.js +43 -0
  158. package/dist/yom/zstd.js.map +1 -0
  159. package/package.json +65 -0
  160. package/src/cli.ts +372 -0
  161. package/src/index.ts +109 -0
  162. package/src/pipeline/avif.ts +33 -0
  163. package/src/pipeline/convert.ts +148 -0
  164. package/src/pipeline/index.ts +28 -0
  165. package/src/pipeline/ocrLayoutBuilder.ts +73 -0
  166. package/src/pipeline/pdfDocument.ts +86 -0
  167. package/src/pipeline/renderPage.ts +48 -0
  168. package/src/pipeline/textExtract.ts +64 -0
  169. package/src/worker/convert.worker.ts +54 -0
  170. package/src/yom/blobLimits.ts +30 -0
  171. package/src/yom/byteSource.ts +144 -0
  172. package/src/yom/bytes.ts +11 -0
  173. package/src/yom/constants.ts +89 -0
  174. package/src/yom/errors.ts +43 -0
  175. package/src/yom/flatbufferVerify.ts +298 -0
  176. package/src/yom/generated/yomu/yom/blob-kind.ts +12 -0
  177. package/src/yom/generated/yomu/yom/blob-ref.ts +184 -0
  178. package/src/yom/generated/yomu/yom/book-metadata.ts +121 -0
  179. package/src/yom/generated/yomu/yom/compression.ts +8 -0
  180. package/src/yom/generated/yomu/yom/main-index.ts +257 -0
  181. package/src/yom/generated/yomu/yom/ocrblock.ts +117 -0
  182. package/src/yom/generated/yomu/yom/ocrlayout.ts +102 -0
  183. package/src/yom/generated/yomu/yom/ocrline.ts +131 -0
  184. package/src/yom/generated/yomu/yom/ocrpage.ts +191 -0
  185. package/src/yom/generated/yomu/yom/ocrtoken.ts +173 -0
  186. package/src/yom/generated/yomu/yom/outline-entry.ts +124 -0
  187. package/src/yom/generated/yomu/yom/page-entry.ts +388 -0
  188. package/src/yom/generated/yomu/yom/pdfexport-metadata.ts +128 -0
  189. package/src/yom/generated/yomu/yom/reading-direction.ts +8 -0
  190. package/src/yom/generated/yomu/yom/search-term-ref.ts +134 -0
  191. package/src/yom/generated/yomu/yom.ts +9 -0
  192. package/src/yom/hash.ts +20 -0
  193. package/src/yom/header.ts +132 -0
  194. package/src/yom/reader.ts +163 -0
  195. package/src/yom/searchIndex.ts +178 -0
  196. package/src/yom/textNormalizer.ts +92 -0
  197. package/src/yom/validator.ts +245 -0
  198. package/src/yom/writer.ts +337 -0
  199. package/src/yom/zstd.ts +47 -0
@@ -0,0 +1,255 @@
1
+ import { ByteBuffer } from "flatbuffers";
2
+ import { MainIndex } from "./generated/yomu/yom/main-index.js";
3
+ import { MalformedIndexError } from "./errors.js";
4
+ // vtable slot for field id N == 4 + N*2 (see the generated `__offset(_, slot)` calls).
5
+ const SCHEMAS = {
6
+ MainIndex: [
7
+ { slot: 4, kind: "scalar", size: 4 }, // formatVersion
8
+ { slot: 6, kind: "table", table: "BookMetadata" }, // book
9
+ { slot: 8, kind: "vectorTable", table: "PageEntry" }, // pages
10
+ { slot: 10, kind: "vectorTable", table: "BlobRef" }, // blobs
11
+ { slot: 12, kind: "scalar", size: 4 }, // ocrLayoutBlobIndex
12
+ { slot: 14, kind: "scalar", size: 4 }, // normalizedTextBlobIndex
13
+ { slot: 16, kind: "scalar", size: 4 }, // searchDictionaryBlobIndex
14
+ { slot: 18, kind: "scalar", size: 4 }, // searchPostingsBlobIndex
15
+ { slot: 20, kind: "vectorTable", table: "SearchTermRef" }, // searchTerms
16
+ // NOTE: `pdfExport` (slot 22) is intentionally NOT traversed. The TS
17
+ // reader/validator never dereference it, and the writer emits it via
18
+ // FlatBuffers `forceDefaults(true)`, which encodes an *absent* offset
19
+ // field as a present-but-sentinel value that points outside the buffer.
20
+ // Dereferencing it would falsely reject every writer-produced file. Its
21
+ // schema (below) is retained only for reference / future use.
22
+ ],
23
+ BookMetadata: [
24
+ { slot: 4, kind: "string" }, // title
25
+ { slot: 6, kind: "scalar", size: 4 }, // pageCount
26
+ { slot: 8, kind: "scalar", size: 1 }, // readingDirection
27
+ { slot: 10, kind: "scalar", size: 8 }, // createdAtUnix
28
+ ],
29
+ PageEntry: [
30
+ { slot: 4, kind: "scalar", size: 4 }, // pageId
31
+ { slot: 6, kind: "string" }, // pageLabel
32
+ { slot: 8, kind: "scalar", size: 4 }, // pixelWidth
33
+ { slot: 10, kind: "scalar", size: 4 }, // pixelHeight
34
+ { slot: 12, kind: "scalar", size: 4 }, // dpi
35
+ { slot: 14, kind: "string" }, // colorSpace
36
+ { slot: 16, kind: "string" }, // colorProfileRef
37
+ { slot: 18, kind: "vectorScalar", stride: 4 }, // mediaBox
38
+ { slot: 20, kind: "vectorScalar", stride: 4 }, // cropBox
39
+ { slot: 22, kind: "vectorScalar", stride: 4 }, // contentBox
40
+ { slot: 24, kind: "scalar", size: 4 }, // rotation
41
+ { slot: 26, kind: "scalar", size: 1 }, // readingDirection
42
+ { slot: 28, kind: "scalar", size: 4 }, // pageImageBlobIndex
43
+ { slot: 30, kind: "scalar", size: 4 }, // thumbnailBlobIndex
44
+ { slot: 32, kind: "vectorScalar", stride: 1 }, // imageHash
45
+ ],
46
+ BlobRef: [
47
+ { slot: 4, kind: "scalar", size: 1 }, // kind
48
+ { slot: 6, kind: "scalar", size: 8 }, // offset
49
+ { slot: 8, kind: "scalar", size: 8 }, // compressedLength
50
+ { slot: 10, kind: "scalar", size: 8 }, // uncompressedLength
51
+ { slot: 12, kind: "scalar", size: 1 }, // compression
52
+ { slot: 14, kind: "scalar", size: 4 }, // alignment
53
+ { slot: 16, kind: "vectorScalar", stride: 1 }, // hash
54
+ ],
55
+ SearchTermRef: [
56
+ { slot: 4, kind: "string" }, // term
57
+ { slot: 6, kind: "scalar", size: 8 }, // dictionaryOffset
58
+ { slot: 8, kind: "scalar", size: 8 }, // dictionaryLength
59
+ { slot: 10, kind: "scalar", size: 8 }, // postingsOffset
60
+ { slot: 12, kind: "scalar", size: 8 }, // postingsLength
61
+ ],
62
+ PDFExportMetadata: [
63
+ { slot: 4, kind: "vectorString" }, // pageLabels
64
+ { slot: 6, kind: "vectorTable", table: "OutlineEntry" }, // outline
65
+ ],
66
+ OutlineEntry: [
67
+ { slot: 4, kind: "string" }, // title
68
+ { slot: 6, kind: "scalar", size: 4 }, // pageId
69
+ { slot: 8, kind: "vectorTable", table: "OutlineEntry" }, // children (recursive)
70
+ ],
71
+ };
72
+ const MAX_DEPTH = 64;
73
+ const UOFFSET = 4;
74
+ class BoundsVerifier {
75
+ buf;
76
+ len;
77
+ constructor(buf) {
78
+ this.buf = buf;
79
+ this.len = buf.length;
80
+ }
81
+ fail(reason) {
82
+ throw new MalformedIndexError(`malformed index: ${reason}`);
83
+ }
84
+ /** Assert `[pos, pos+size)` lies inside the index. */
85
+ require(pos, size, reason) {
86
+ if (!Number.isInteger(pos) || pos < 0 || size < 0 || pos + size > this.len) {
87
+ this.fail(`${reason} (pos=${pos} size=${size} len=${this.len})`);
88
+ }
89
+ }
90
+ i32(pos) {
91
+ this.require(pos, 4, "read int32");
92
+ const b = this.buf;
93
+ return b[pos] | (b[pos + 1] << 8) | (b[pos + 2] << 16) | (b[pos + 3] << 24);
94
+ }
95
+ u32(pos) {
96
+ return this.i32(pos) >>> 0;
97
+ }
98
+ u16(pos) {
99
+ this.require(pos, 2, "read uint16");
100
+ return this.buf[pos] | (this.buf[pos + 1] << 8);
101
+ }
102
+ /**
103
+ * Bounds-verify a single optional field of the root table. Returns `false`
104
+ * when the field is genuinely absent OR encoded as a forced-default sentinel
105
+ * that points out of bounds (so a caller can safely decide not to read it);
106
+ * returns `true` only when the field is present and structurally sound.
107
+ */
108
+ verifyOptionalRootField(rootTable, field, deep) {
109
+ const tablePos = this.i32(0);
110
+ this.require(tablePos, 4, "root soffset");
111
+ const soffset = this.i32(tablePos);
112
+ const vtablePos = tablePos - soffset;
113
+ this.require(vtablePos, 4, "root vtable header");
114
+ const vtableSize = this.u16(vtablePos);
115
+ if (vtableSize < 4)
116
+ this.fail("root vtable too small");
117
+ this.require(vtablePos, vtableSize, "root vtable body");
118
+ if (field.slot + 2 > vtableSize)
119
+ return false;
120
+ const rel = this.u16(vtablePos + field.slot);
121
+ if (rel === 0)
122
+ return false;
123
+ this.verifyField(tablePos + rel, field, deep, 0, rootTable);
124
+ return true;
125
+ }
126
+ /** Verify the root object offset and the table it points at. */
127
+ verifyRoot(rootTable, deep) {
128
+ // getRootAs* computes rootPos = readInt32(0) + 0 (signed, like every
129
+ // FlatBuffers offset -- child objects can lie at lower addresses).
130
+ const rootPos = this.i32(0);
131
+ this.verifyTable(rootPos, rootTable, deep, 0);
132
+ }
133
+ verifyTable(tablePos, tableName, deep, depth) {
134
+ if (depth > MAX_DEPTH)
135
+ this.fail("table nesting too deep");
136
+ this.require(tablePos, 4, `table ${tableName} soffset`);
137
+ const soffset = this.i32(tablePos);
138
+ const vtablePos = tablePos - soffset;
139
+ this.require(vtablePos, 4, `table ${tableName} vtable header`);
140
+ const vtableSize = this.u16(vtablePos);
141
+ if (vtableSize < 4)
142
+ this.fail(`table ${tableName} vtable too small`);
143
+ this.require(vtablePos, vtableSize, `table ${tableName} vtable body`);
144
+ const tableSize = this.u16(vtablePos + 2);
145
+ this.require(tablePos, tableSize, `table ${tableName} inline data`);
146
+ const fields = SCHEMAS[tableName];
147
+ if (!fields)
148
+ this.fail(`unknown table ${tableName}`);
149
+ for (const field of fields) {
150
+ // A field's vtable slot may lie beyond this vtable (field absent).
151
+ if (field.slot + 2 > vtableSize)
152
+ continue;
153
+ const rel = this.u16(vtablePos + field.slot);
154
+ if (rel === 0)
155
+ continue; // absent / default
156
+ const fieldPos = tablePos + rel;
157
+ this.verifyField(fieldPos, field, deep, depth, tableName);
158
+ }
159
+ }
160
+ verifyField(fieldPos, field, deep, depth, owner) {
161
+ switch (field.kind) {
162
+ case "scalar":
163
+ this.require(fieldPos, field.size, `${owner} scalar field`);
164
+ return;
165
+ case "string":
166
+ this.verifyString(fieldPos, owner);
167
+ return;
168
+ case "table": {
169
+ // Sub-object pointer: always bounds-check the offset; recurse when deep.
170
+ const subPos = fieldPos + this.i32(fieldPos);
171
+ this.require(subPos, 4, `${owner} sub-table pointer`);
172
+ if (deep)
173
+ this.verifyTable(subPos, field.table, deep, depth + 1);
174
+ return;
175
+ }
176
+ case "vectorScalar": {
177
+ this.verifyVectorHeader(fieldPos, field.stride, owner);
178
+ return;
179
+ }
180
+ case "vectorString": {
181
+ const { dataStart, count } = this.verifyVectorHeader(fieldPos, UOFFSET, owner);
182
+ if (deep) {
183
+ for (let i = 0; i < count; i++) {
184
+ const elemPos = dataStart + i * UOFFSET;
185
+ const strPos = elemPos + this.i32(elemPos);
186
+ this.verifyString(strPos, owner);
187
+ }
188
+ }
189
+ return;
190
+ }
191
+ case "vectorTable": {
192
+ const { dataStart, count } = this.verifyVectorHeader(fieldPos, UOFFSET, owner);
193
+ if (deep) {
194
+ for (let i = 0; i < count; i++) {
195
+ const elemPos = dataStart + i * UOFFSET;
196
+ const subPos = elemPos + this.i32(elemPos);
197
+ this.verifyTable(subPos, field.table, deep, depth + 1);
198
+ }
199
+ }
200
+ return;
201
+ }
202
+ }
203
+ }
204
+ verifyString(fieldPos, owner) {
205
+ const strPos = fieldPos + this.i32(fieldPos);
206
+ this.require(strPos, 4, `${owner} string length`);
207
+ const strLen = this.u32(strPos);
208
+ // +1 for FlatBuffers' implicit null terminator.
209
+ this.require(strPos + 4, strLen + 1, `${owner} string body`);
210
+ }
211
+ verifyVectorHeader(fieldPos, stride, owner) {
212
+ const vecPos = fieldPos + this.i32(fieldPos);
213
+ this.require(vecPos, 4, `${owner} vector length`);
214
+ const count = this.u32(vecPos);
215
+ const dataStart = vecPos + 4;
216
+ // The load-bearing OOM guard: reject an oversized forged count before use.
217
+ if (count > (this.len - dataStart) / stride) {
218
+ this.fail(`${owner} vector count ${count} exceeds buffer (stride ${stride})`);
219
+ }
220
+ this.require(dataStart, count * stride, `${owner} vector body`);
221
+ return { dataStart, count };
222
+ }
223
+ }
224
+ /**
225
+ * Bounded structural verification of a raw (uncompressed) main-index byte
226
+ * range. `deep` controls whether sub-tables/vectors are recursed into
227
+ * (validator) or only their offsets/lengths bounds-checked (reader open).
228
+ * Throws `MalformedIndexError` on any violation.
229
+ */
230
+ export function verifyMainIndex(indexBytes, deep) {
231
+ new BoundsVerifier(indexBytes).verifyRoot("MainIndex", deep);
232
+ }
233
+ /**
234
+ * Verify then construct the `MainIndex` root, so a malformed buffer throws
235
+ * `MalformedIndexError` instead of yielding a booby-trapped lazy root.
236
+ */
237
+ export function getVerifiedRootAsMainIndex(indexBytes, deep) {
238
+ verifyMainIndex(indexBytes, deep);
239
+ return MainIndex.getRootAsMainIndex(new ByteBuffer(indexBytes));
240
+ }
241
+ /**
242
+ * True only when the index's optional `pdfExport` metadata is genuinely
243
+ * present and safely traversable. Because the writer emits an absent
244
+ * `pdfExport` via `forceDefaults(true)` (a sentinel pointing out of bounds),
245
+ * callers must gate any `pdfExport()`/outline read on this check.
246
+ */
247
+ export function pdfExportPresent(indexBytes) {
248
+ try {
249
+ return new BoundsVerifier(indexBytes).verifyOptionalRootField("MainIndex", { slot: 22, kind: "table", table: "PDFExportMetadata" }, true);
250
+ }
251
+ catch {
252
+ return false;
253
+ }
254
+ }
255
+ //# sourceMappingURL=flatbufferVerify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatbufferVerify.js","sourceRoot":"","sources":["../../src/yom/flatbufferVerify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare enum BlobKind {
2
+ PageImage = 0,
3
+ ThumbnailImage = 1,
4
+ OCRLayout = 2,
5
+ NormalizedText = 3,
6
+ SearchDictionary = 4,
7
+ SearchPostings = 5
8
+ }
9
+ //# sourceMappingURL=blob-kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-kind.d.ts","sourceRoot":"","sources":["../../../../../src/yom/generated/yomu/yom/blob-kind.ts"],"names":[],"mappings":"AAIA,oBAAY,QAAQ;IAClB,SAAS,IAAI;IACb,cAAc,IAAI;IAClB,SAAS,IAAI;IACb,cAAc,IAAI;IAClB,gBAAgB,IAAI;IACpB,cAAc,IAAI;CACnB"}
@@ -0,0 +1,12 @@
1
+ // automatically generated by the FlatBuffers compiler, do not modify
2
+ /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
3
+ export var BlobKind;
4
+ (function (BlobKind) {
5
+ BlobKind[BlobKind["PageImage"] = 0] = "PageImage";
6
+ BlobKind[BlobKind["ThumbnailImage"] = 1] = "ThumbnailImage";
7
+ BlobKind[BlobKind["OCRLayout"] = 2] = "OCRLayout";
8
+ BlobKind[BlobKind["NormalizedText"] = 3] = "NormalizedText";
9
+ BlobKind[BlobKind["SearchDictionary"] = 4] = "SearchDictionary";
10
+ BlobKind[BlobKind["SearchPostings"] = 5] = "SearchPostings";
11
+ })(BlobKind || (BlobKind = {}));
12
+ //# sourceMappingURL=blob-kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-kind.js","sourceRoot":"","sources":["../../../../../src/yom/generated/yomu/yom/blob-kind.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,oIAAoI;AAEpI,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,iDAAa,CAAA;IACb,2DAAkB,CAAA;IAClB,iDAAa,CAAA;IACb,2DAAkB,CAAA;IAClB,+DAAoB,CAAA;IACpB,2DAAkB,CAAA;AACpB,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB"}
@@ -0,0 +1,45 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ import { BlobKind } from '../../yomu/yom/blob-kind.js';
3
+ import { Compression } from '../../yomu/yom/compression.js';
4
+ export declare class BlobRef implements flatbuffers.IUnpackableObject<BlobRefT> {
5
+ bb: flatbuffers.ByteBuffer | null;
6
+ bb_pos: number;
7
+ __init(i: number, bb: flatbuffers.ByteBuffer): BlobRef;
8
+ static getRootAsBlobRef(bb: flatbuffers.ByteBuffer, obj?: BlobRef): BlobRef;
9
+ static getSizePrefixedRootAsBlobRef(bb: flatbuffers.ByteBuffer, obj?: BlobRef): BlobRef;
10
+ kind(): BlobKind;
11
+ offset(): bigint;
12
+ compressedLength(): bigint;
13
+ uncompressedLength(): bigint;
14
+ compression(): Compression;
15
+ alignment(): number;
16
+ hash(index: number): number | null;
17
+ hashLength(): number;
18
+ hashArray(): Uint8Array | null;
19
+ static startBlobRef(builder: flatbuffers.Builder): void;
20
+ static addKind(builder: flatbuffers.Builder, kind: BlobKind): void;
21
+ static addOffset(builder: flatbuffers.Builder, offset: bigint): void;
22
+ static addCompressedLength(builder: flatbuffers.Builder, compressedLength: bigint): void;
23
+ static addUncompressedLength(builder: flatbuffers.Builder, uncompressedLength: bigint): void;
24
+ static addCompression(builder: flatbuffers.Builder, compression: Compression): void;
25
+ static addAlignment(builder: flatbuffers.Builder, alignment: number): void;
26
+ static addHash(builder: flatbuffers.Builder, hashOffset: flatbuffers.Offset): void;
27
+ static createHashVector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset;
28
+ static startHashVector(builder: flatbuffers.Builder, numElems: number): void;
29
+ static endBlobRef(builder: flatbuffers.Builder): flatbuffers.Offset;
30
+ static createBlobRef(builder: flatbuffers.Builder, kind: BlobKind, offset: bigint, compressedLength: bigint, uncompressedLength: bigint, compression: Compression, alignment: number, hashOffset: flatbuffers.Offset): flatbuffers.Offset;
31
+ unpack(): BlobRefT;
32
+ unpackTo(_o: BlobRefT): void;
33
+ }
34
+ export declare class BlobRefT implements flatbuffers.IGeneratedObject {
35
+ kind: BlobKind;
36
+ offset: bigint;
37
+ compressedLength: bigint;
38
+ uncompressedLength: bigint;
39
+ compression: Compression;
40
+ alignment: number;
41
+ hash: (number)[];
42
+ constructor(kind?: BlobKind, offset?: bigint, compressedLength?: bigint, uncompressedLength?: bigint, compression?: Compression, alignment?: number, hash?: (number)[]);
43
+ pack(builder: flatbuffers.Builder): flatbuffers.Offset;
44
+ }
45
+ //# sourceMappingURL=blob-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-ref.d.ts","sourceRoot":"","sources":["../../../../../src/yom/generated/yomu/yom/blob-ref.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ // automatically generated by the FlatBuffers compiler, do not modify
2
+ /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
3
+ import * as flatbuffers from 'flatbuffers';
4
+ import { BlobKind } from '../../yomu/yom/blob-kind.js';
5
+ import { Compression } from '../../yomu/yom/compression.js';
6
+ export class BlobRef {
7
+ bb = null;
8
+ bb_pos = 0;
9
+ __init(i, bb) {
10
+ this.bb_pos = i;
11
+ this.bb = bb;
12
+ return this;
13
+ }
14
+ static getRootAsBlobRef(bb, obj) {
15
+ return (obj || new BlobRef()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
16
+ }
17
+ static getSizePrefixedRootAsBlobRef(bb, obj) {
18
+ bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
19
+ return (obj || new BlobRef()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
20
+ }
21
+ kind() {
22
+ const offset = this.bb.__offset(this.bb_pos, 4);
23
+ return offset ? this.bb.readUint8(this.bb_pos + offset) : BlobKind.PageImage;
24
+ }
25
+ offset() {
26
+ const offset = this.bb.__offset(this.bb_pos, 6);
27
+ return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
28
+ }
29
+ compressedLength() {
30
+ const offset = this.bb.__offset(this.bb_pos, 8);
31
+ return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
32
+ }
33
+ uncompressedLength() {
34
+ const offset = this.bb.__offset(this.bb_pos, 10);
35
+ return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
36
+ }
37
+ compression() {
38
+ const offset = this.bb.__offset(this.bb_pos, 12);
39
+ return offset ? this.bb.readUint8(this.bb_pos + offset) : Compression.None;
40
+ }
41
+ alignment() {
42
+ const offset = this.bb.__offset(this.bb_pos, 14);
43
+ return offset ? this.bb.readUint32(this.bb_pos + offset) : 0;
44
+ }
45
+ hash(index) {
46
+ const offset = this.bb.__offset(this.bb_pos, 16);
47
+ return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
48
+ }
49
+ hashLength() {
50
+ const offset = this.bb.__offset(this.bb_pos, 16);
51
+ return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
52
+ }
53
+ hashArray() {
54
+ const offset = this.bb.__offset(this.bb_pos, 16);
55
+ return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
56
+ }
57
+ static startBlobRef(builder) {
58
+ builder.startObject(7);
59
+ }
60
+ static addKind(builder, kind) {
61
+ builder.addFieldInt8(0, kind, BlobKind.PageImage);
62
+ }
63
+ static addOffset(builder, offset) {
64
+ builder.addFieldInt64(1, offset, BigInt('0'));
65
+ }
66
+ static addCompressedLength(builder, compressedLength) {
67
+ builder.addFieldInt64(2, compressedLength, BigInt('0'));
68
+ }
69
+ static addUncompressedLength(builder, uncompressedLength) {
70
+ builder.addFieldInt64(3, uncompressedLength, BigInt('0'));
71
+ }
72
+ static addCompression(builder, compression) {
73
+ builder.addFieldInt8(4, compression, Compression.None);
74
+ }
75
+ static addAlignment(builder, alignment) {
76
+ builder.addFieldInt32(5, alignment, 0);
77
+ }
78
+ static addHash(builder, hashOffset) {
79
+ builder.addFieldOffset(6, hashOffset, 0);
80
+ }
81
+ static createHashVector(builder, data) {
82
+ builder.startVector(1, data.length, 1);
83
+ for (let i = data.length - 1; i >= 0; i--) {
84
+ builder.addInt8(data[i]);
85
+ }
86
+ return builder.endVector();
87
+ }
88
+ static startHashVector(builder, numElems) {
89
+ builder.startVector(1, numElems, 1);
90
+ }
91
+ static endBlobRef(builder) {
92
+ const offset = builder.endObject();
93
+ return offset;
94
+ }
95
+ static createBlobRef(builder, kind, offset, compressedLength, uncompressedLength, compression, alignment, hashOffset) {
96
+ BlobRef.startBlobRef(builder);
97
+ BlobRef.addKind(builder, kind);
98
+ BlobRef.addOffset(builder, offset);
99
+ BlobRef.addCompressedLength(builder, compressedLength);
100
+ BlobRef.addUncompressedLength(builder, uncompressedLength);
101
+ BlobRef.addCompression(builder, compression);
102
+ BlobRef.addAlignment(builder, alignment);
103
+ BlobRef.addHash(builder, hashOffset);
104
+ return BlobRef.endBlobRef(builder);
105
+ }
106
+ unpack() {
107
+ return new BlobRefT(this.kind(), this.offset(), this.compressedLength(), this.uncompressedLength(), this.compression(), this.alignment(), this.bb.createScalarList(this.hash.bind(this), this.hashLength()));
108
+ }
109
+ unpackTo(_o) {
110
+ _o.kind = this.kind();
111
+ _o.offset = this.offset();
112
+ _o.compressedLength = this.compressedLength();
113
+ _o.uncompressedLength = this.uncompressedLength();
114
+ _o.compression = this.compression();
115
+ _o.alignment = this.alignment();
116
+ _o.hash = this.bb.createScalarList(this.hash.bind(this), this.hashLength());
117
+ }
118
+ }
119
+ export class BlobRefT {
120
+ kind;
121
+ offset;
122
+ compressedLength;
123
+ uncompressedLength;
124
+ compression;
125
+ alignment;
126
+ hash;
127
+ constructor(kind = BlobKind.PageImage, offset = BigInt('0'), compressedLength = BigInt('0'), uncompressedLength = BigInt('0'), compression = Compression.None, alignment = 0, hash = []) {
128
+ this.kind = kind;
129
+ this.offset = offset;
130
+ this.compressedLength = compressedLength;
131
+ this.uncompressedLength = uncompressedLength;
132
+ this.compression = compression;
133
+ this.alignment = alignment;
134
+ this.hash = hash;
135
+ }
136
+ pack(builder) {
137
+ const hash = BlobRef.createHashVector(builder, this.hash);
138
+ return BlobRef.createBlobRef(builder, this.kind, this.offset, this.compressedLength, this.uncompressedLength, this.compression, this.alignment, hash);
139
+ }
140
+ }
141
+ //# sourceMappingURL=blob-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-ref.js","sourceRoot":"","sources":["../../../../../src/yom/generated/yomu/yom/blob-ref.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import * as flatbuffers from 'flatbuffers';
2
+ import { ReadingDirection } from '../../yomu/yom/reading-direction.js';
3
+ export declare class BookMetadata implements flatbuffers.IUnpackableObject<BookMetadataT> {
4
+ bb: flatbuffers.ByteBuffer | null;
5
+ bb_pos: number;
6
+ __init(i: number, bb: flatbuffers.ByteBuffer): BookMetadata;
7
+ static getRootAsBookMetadata(bb: flatbuffers.ByteBuffer, obj?: BookMetadata): BookMetadata;
8
+ static getSizePrefixedRootAsBookMetadata(bb: flatbuffers.ByteBuffer, obj?: BookMetadata): BookMetadata;
9
+ title(): string | null;
10
+ title(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;
11
+ pageCount(): number;
12
+ readingDirection(): ReadingDirection;
13
+ createdAtUnix(): bigint;
14
+ static startBookMetadata(builder: flatbuffers.Builder): void;
15
+ static addTitle(builder: flatbuffers.Builder, titleOffset: flatbuffers.Offset): void;
16
+ static addPageCount(builder: flatbuffers.Builder, pageCount: number): void;
17
+ static addReadingDirection(builder: flatbuffers.Builder, readingDirection: ReadingDirection): void;
18
+ static addCreatedAtUnix(builder: flatbuffers.Builder, createdAtUnix: bigint): void;
19
+ static endBookMetadata(builder: flatbuffers.Builder): flatbuffers.Offset;
20
+ static createBookMetadata(builder: flatbuffers.Builder, titleOffset: flatbuffers.Offset, pageCount: number, readingDirection: ReadingDirection, createdAtUnix: bigint): flatbuffers.Offset;
21
+ unpack(): BookMetadataT;
22
+ unpackTo(_o: BookMetadataT): void;
23
+ }
24
+ export declare class BookMetadataT implements flatbuffers.IGeneratedObject {
25
+ title: string | Uint8Array | null;
26
+ pageCount: number;
27
+ readingDirection: ReadingDirection;
28
+ createdAtUnix: bigint;
29
+ constructor(title?: string | Uint8Array | null, pageCount?: number, readingDirection?: ReadingDirection, createdAtUnix?: bigint);
30
+ pack(builder: flatbuffers.Builder): flatbuffers.Offset;
31
+ }
32
+ //# sourceMappingURL=book-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"book-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/yom/generated/yomu/yom/book-metadata.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvE,qBAAa,YAAa,YAAW,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC;IAC/E,EAAE,EAAE,WAAW,CAAC,UAAU,GAAC,IAAI,CAAQ;IACvC,MAAM,SAAK;IACX,MAAM,CAAC,CAAC,EAAC,MAAM,EAAE,EAAE,EAAC,WAAW,CAAC,UAAU,GAAE,YAAY;IAM1D,MAAM,CAAC,qBAAqB,CAAC,EAAE,EAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,EAAC,YAAY,GAAE,YAAY;IAIvF,MAAM,CAAC,iCAAiC,CAAC,EAAE,EAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,EAAC,YAAY,GAAE,YAAY;IAKnG,KAAK,IAAG,MAAM,GAAC,IAAI;IACnB,KAAK,CAAC,gBAAgB,EAAC,WAAW,CAAC,QAAQ,GAAE,MAAM,GAAC,UAAU,GAAC,IAAI;IAMnE,SAAS,IAAG,MAAM;IAKlB,gBAAgB,IAAG,gBAAgB;IAKnC,aAAa,IAAG,MAAM;IAKtB,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO;IAIpD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAC,WAAW,CAAC,MAAM;IAI3E,MAAM,CAAC,YAAY,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAC,MAAM;IAIjE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAC,gBAAgB;IAIzF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,aAAa,EAAC,MAAM;IAIzE,MAAM,CAAC,eAAe,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,GAAE,WAAW,CAAC,MAAM;IAKtE,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAC,MAAM,EAAE,gBAAgB,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,GAAE,WAAW,CAAC,MAAM;IASpL,MAAM,IAAI,aAAa;IAUvB,QAAQ,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;CAMhC;AAED,qBAAa,aAAc,YAAW,WAAW,CAAC,gBAAgB;IAEzD,KAAK,EAAE,MAAM,GAAC,UAAU,GAAC,IAAI;IAC7B,SAAS,EAAE,MAAM;IACjB,gBAAgB,EAAE,gBAAgB;IAClC,aAAa,EAAE,MAAM;gBAHrB,KAAK,GAAE,MAAM,GAAC,UAAU,GAAC,IAAW,EACpC,SAAS,GAAE,MAAU,EACrB,gBAAgB,GAAE,gBAA+C,EACjE,aAAa,GAAE,MAAoB;IAI5C,IAAI,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM;CAUpD"}
@@ -0,0 +1,89 @@
1
+ // automatically generated by the FlatBuffers compiler, do not modify
2
+ /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
3
+ import * as flatbuffers from 'flatbuffers';
4
+ import { ReadingDirection } from '../../yomu/yom/reading-direction.js';
5
+ export class BookMetadata {
6
+ bb = null;
7
+ bb_pos = 0;
8
+ __init(i, bb) {
9
+ this.bb_pos = i;
10
+ this.bb = bb;
11
+ return this;
12
+ }
13
+ static getRootAsBookMetadata(bb, obj) {
14
+ return (obj || new BookMetadata()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
15
+ }
16
+ static getSizePrefixedRootAsBookMetadata(bb, obj) {
17
+ bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
18
+ return (obj || new BookMetadata()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
19
+ }
20
+ title(optionalEncoding) {
21
+ const offset = this.bb.__offset(this.bb_pos, 4);
22
+ return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
23
+ }
24
+ pageCount() {
25
+ const offset = this.bb.__offset(this.bb_pos, 6);
26
+ return offset ? this.bb.readUint32(this.bb_pos + offset) : 0;
27
+ }
28
+ readingDirection() {
29
+ const offset = this.bb.__offset(this.bb_pos, 8);
30
+ return offset ? this.bb.readUint8(this.bb_pos + offset) : ReadingDirection.LeftToRight;
31
+ }
32
+ createdAtUnix() {
33
+ const offset = this.bb.__offset(this.bb_pos, 10);
34
+ return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0');
35
+ }
36
+ static startBookMetadata(builder) {
37
+ builder.startObject(4);
38
+ }
39
+ static addTitle(builder, titleOffset) {
40
+ builder.addFieldOffset(0, titleOffset, 0);
41
+ }
42
+ static addPageCount(builder, pageCount) {
43
+ builder.addFieldInt32(1, pageCount, 0);
44
+ }
45
+ static addReadingDirection(builder, readingDirection) {
46
+ builder.addFieldInt8(2, readingDirection, ReadingDirection.LeftToRight);
47
+ }
48
+ static addCreatedAtUnix(builder, createdAtUnix) {
49
+ builder.addFieldInt64(3, createdAtUnix, BigInt('0'));
50
+ }
51
+ static endBookMetadata(builder) {
52
+ const offset = builder.endObject();
53
+ return offset;
54
+ }
55
+ static createBookMetadata(builder, titleOffset, pageCount, readingDirection, createdAtUnix) {
56
+ BookMetadata.startBookMetadata(builder);
57
+ BookMetadata.addTitle(builder, titleOffset);
58
+ BookMetadata.addPageCount(builder, pageCount);
59
+ BookMetadata.addReadingDirection(builder, readingDirection);
60
+ BookMetadata.addCreatedAtUnix(builder, createdAtUnix);
61
+ return BookMetadata.endBookMetadata(builder);
62
+ }
63
+ unpack() {
64
+ return new BookMetadataT(this.title(), this.pageCount(), this.readingDirection(), this.createdAtUnix());
65
+ }
66
+ unpackTo(_o) {
67
+ _o.title = this.title();
68
+ _o.pageCount = this.pageCount();
69
+ _o.readingDirection = this.readingDirection();
70
+ _o.createdAtUnix = this.createdAtUnix();
71
+ }
72
+ }
73
+ export class BookMetadataT {
74
+ title;
75
+ pageCount;
76
+ readingDirection;
77
+ createdAtUnix;
78
+ constructor(title = null, pageCount = 0, readingDirection = ReadingDirection.LeftToRight, createdAtUnix = BigInt('0')) {
79
+ this.title = title;
80
+ this.pageCount = pageCount;
81
+ this.readingDirection = readingDirection;
82
+ this.createdAtUnix = createdAtUnix;
83
+ }
84
+ pack(builder) {
85
+ const title = (this.title !== null ? builder.createString(this.title) : 0);
86
+ return BookMetadata.createBookMetadata(builder, title, this.pageCount, this.readingDirection, this.createdAtUnix);
87
+ }
88
+ }
89
+ //# sourceMappingURL=book-metadata.js.map