Skip to content

Commit 937549c

Browse files
committed
fix: dont override original spine item id
1 parent dcbbd90 commit 937549c

4 files changed

Lines changed: 32 additions & 16 deletions

File tree

packages/core/src/cfi/generate.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ describe("generateCfiForSpineItemPage", () => {
2929
}
3030

3131
const spreadSpineItem: Manifest["spineItems"][number] = {
32-
id: "pr-img-c3ByZWFkLmpwZw",
32+
id: "1.spread.jpg",
3333
href: "wrapper.xhtml",
3434
index: 1,
3535
renditionLayout: "reflowable",
@@ -46,7 +46,7 @@ describe("generateCfiForSpineItemPage", () => {
4646
pageIndex: 0,
4747
readingDirection: "ltr",
4848
}),
49-
).toBe("epubcfi(/6/4[pr-img-c3ByZWFkLmpwZw]!/4/2/2[spread-image]@25:50)")
49+
).toBe("epubcfi(/6/4[1.spread.jpg]!/4/2/2[spread-image]@25:50)")
5050
})
5151

5252
it("should reverse spread spatial offsets for right-to-left reading", () => {
@@ -59,6 +59,6 @@ describe("generateCfiForSpineItemPage", () => {
5959
pageIndex: 0,
6060
readingDirection: "rtl",
6161
}),
62-
).toBe("epubcfi(/6/4[pr-img-c3ByZWFkLmpwZw]!/4/2/2[spread-image]@75:50)")
62+
).toBe("epubcfi(/6/4[1.spread.jpg]!/4/2/2[spread-image]@75:50)")
6363
})
6464
})

packages/streamer/src/cbz/pageSpreadSplitManifest.test.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,12 +186,24 @@ describe("pageSpreadSplit", () => {
186186
spineItems: [
187187
{
188188
href: encodeURI(`file://${resourcePath}`),
189-
id: wrapperId,
189+
id: "1.p006-007.jpg",
190190
mediaType: IMAGE_WRAPPER_DOCUMENT_MEDIA_TYPE,
191191
renditionFlow: "paginated",
192192
renditionLayout: "reflowable",
193193
},
194194
],
195+
items: [
196+
{
197+
href: `file://${nestedUri}`,
198+
id: "1.p006-007.jpg",
199+
mediaType: "image/jpeg",
200+
},
201+
{
202+
href: encodeURI(`file://${resourcePath}`),
203+
id: wrapperId,
204+
mediaType: IMAGE_WRAPPER_DOCUMENT_MEDIA_TYPE,
205+
},
206+
],
195207
})
196208

197209
expect(decodeImageWrapperIdToOriginalUri(wrapperId)).toBe(nestedUri)

packages/streamer/src/cbz/pageSpreadSplitManifest.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -141,14 +141,13 @@ const createImageWrapperSpineItem = ({
141141
originalSpineItem: SpineItem
142142
originalUri: string
143143
}): SpineItem => {
144-
const id = buildImageWrapperIdFromOriginalUri(originalUri)
144+
const wrapperId = buildImageWrapperIdFromOriginalUri(originalUri)
145145
const resourcePath = buildImageWrapperResourcePath({
146-
wrapperId: id,
146+
wrapperId,
147147
})
148148

149149
return {
150150
...originalSpineItem,
151-
id,
152151
href: createManifestResourceHref({ baseUrl, resourcePath }),
153152
mediaType: IMAGE_WRAPPER_DOCUMENT_MEDIA_TYPE,
154153
pageSpreadLeft: undefined,
@@ -160,11 +159,13 @@ const createImageWrapperSpineItem = ({
160159

161160
const createImageWrapperManifestItem = ({
162161
href,
163-
id,
164162
mediaType,
165-
}: Pick<ManifestItem, "href" | "id" | "mediaType">): ManifestItem => ({
163+
originalUri,
164+
}: Pick<ManifestItem, "href" | "mediaType"> & {
165+
originalUri: string
166+
}): ManifestItem => ({
166167
href,
167-
id,
168+
id: buildImageWrapperIdFromOriginalUri(originalUri),
168169
mediaType,
169170
})
170171

@@ -272,7 +273,11 @@ export const pageSpreadSplit =
272273
})
273274

274275
imageWrapperManifestItems.push(
275-
createImageWrapperManifestItem(wrapperSpineItem),
276+
createImageWrapperManifestItem({
277+
href: wrapperSpineItem.href,
278+
mediaType: wrapperSpineItem.mediaType,
279+
originalUri: archiveRecord.uri,
280+
}),
276281
)
277282

278283
return wrapperSpineItem

packages/streamer/src/generators/manifest/index.test.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ describe("Given a non-epub image archive with a two-page spread filename", () =>
237237
}
238238

239239
const manifest = await generateManifestFromArchive(archive)
240-
const spreadId = buildImageWrapperIdFromOriginalUri(spreadBasename)
240+
const wrapperId = buildImageWrapperIdFromOriginalUri(spreadBasename)
241241

242242
expect(manifest.spineItems).toEqual([
243243
{
@@ -256,7 +256,7 @@ describe("Given a non-epub image archive with a two-page spread filename", () =>
256256
originalUri: spreadBasename,
257257
})}`,
258258
),
259-
id: spreadId,
259+
id: `1.${spreadBasename}`,
260260
index: 1,
261261
mediaType: IMAGE_WRAPPER_DOCUMENT_MEDIA_TYPE,
262262
pageSpreadLeft: undefined,
@@ -283,7 +283,7 @@ describe("Given a non-epub image archive with a two-page spread filename", () =>
283283
originalUri: spreadBasename,
284284
})}`,
285285
),
286-
id: spreadId,
286+
id: wrapperId,
287287
mediaType: IMAGE_WRAPPER_DOCUMENT_MEDIA_TYPE,
288288
})
289289
})
@@ -317,12 +317,11 @@ describe("Given a non-epub image archive with a two-page spread filename", () =>
317317
}
318318

319319
const manifest = await generateManifestFromArchive(archive)
320-
const spreadId = buildImageWrapperIdFromOriginalUri(spreadBasename)
321320

322321
expect(manifest.readingDirection).toBe("rtl")
323322
expect(manifest.spineItems).toMatchObject([
324323
{
325-
id: spreadId,
324+
id: `1.${spreadBasename}`,
326325
pageSpreadLeft: undefined,
327326
pageSpreadRight: undefined,
328327
renditionFlow: "paginated",

0 commit comments

Comments
 (0)