@prose-reader/streamer 1.296.0 → 1.298.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/Streamer.d.ts +4 -1
- package/dist/generators/manifest/index.d.ts +3 -1
- package/dist/generators/resources/index.d.ts +4 -1
- package/dist/hooks.d.ts +30 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +488 -715
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +12 -39
- package/dist/index.umd.cjs.map +1 -1
- package/package.json +4 -4
- package/dist/cbz/detectPageSpreadFromBasename.d.ts +0 -13
- package/dist/cbz/detectPageSpreadFromBasename.test.d.ts +0 -1
- package/dist/cbz/pageSpreadSplitManifest.d.ts +0 -48
- package/dist/cbz/pageSpreadSplitManifest.test.d.ts +0 -1
- package/dist/cbz/pageSpreadSplitResource.d.ts +0 -18
package/dist/Streamer.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Manifest } from '@prose-reader/shared';
|
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { createArchiveLoader } from './archives/archiveLoader';
|
|
4
4
|
import { Archive } from './archives/types';
|
|
5
|
+
import { StreamerHooks } from './hooks';
|
|
5
6
|
type OnError = (error: unknown) => Response;
|
|
6
7
|
type OnManifestSuccess = (params: {
|
|
7
8
|
manifest: Manifest;
|
|
@@ -11,9 +12,11 @@ type WithArchiveResponse = (archive: Archive) => Observable<Response> | Promise<
|
|
|
11
12
|
export declare class Streamer {
|
|
12
13
|
protected archiveLoader: ReturnType<typeof createArchiveLoader>;
|
|
13
14
|
protected onError: OnError;
|
|
15
|
+
protected hooks: StreamerHooks;
|
|
14
16
|
protected onManifestSuccess: OnManifestSuccess;
|
|
15
17
|
protected lastAccessedKey: string | undefined;
|
|
16
|
-
constructor({ onError, onManifestSuccess, ...rest }: Parameters<typeof createArchiveLoader>[0] & {
|
|
18
|
+
constructor({ hooks, onError, onManifestSuccess, ...rest }: Parameters<typeof createArchiveLoader>[0] & {
|
|
19
|
+
hooks?: StreamerHooks;
|
|
17
20
|
onError?: OnError;
|
|
18
21
|
onManifestSuccess?: OnManifestSuccess;
|
|
19
22
|
});
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Archive } from '../../archives/types';
|
|
2
|
-
|
|
2
|
+
import { StreamerManifestHooks } from '../../hooks';
|
|
3
|
+
export declare const generateManifestFromArchive: (archive: Archive, { baseUrl, hooks, }?: {
|
|
3
4
|
baseUrl?: string;
|
|
5
|
+
hooks?: StreamerManifestHooks;
|
|
4
6
|
}) => Promise<import('@prose-reader/shared').Manifest>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Archive } from '../..';
|
|
2
|
+
import { StreamerResourceHookFactory } from '../../hooks';
|
|
2
3
|
import { HookResource } from './hooks/types';
|
|
3
4
|
/**
|
|
4
5
|
* Builds one streamed asset from `archive` (hot path: typically once per
|
|
@@ -12,4 +13,6 @@ import { HookResource } from './hooks/types';
|
|
|
12
13
|
* `Streamer.fetchResource` / manifest, or an opt-in cache on `Archive` wired at
|
|
13
14
|
* construction time—rather than hidden process-wide memoization.
|
|
14
15
|
*/
|
|
15
|
-
export declare const generateResourceFromArchive: (archive: Archive, resourcePath: string
|
|
16
|
+
export declare const generateResourceFromArchive: (archive: Archive, resourcePath: string, { hooks }?: {
|
|
17
|
+
hooks?: StreamerResourceHookFactory[];
|
|
18
|
+
}) => Promise<HookResource>;
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Manifest } from '@prose-reader/shared';
|
|
2
|
+
import { Archive } from './archives/types';
|
|
3
|
+
import { HookResource } from './generators/resources/hooks/types';
|
|
4
|
+
export type { HookResource };
|
|
5
|
+
export type StreamerManifestHookContext = {
|
|
6
|
+
archive: Archive;
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
};
|
|
9
|
+
export type StreamerManifestHook = (manifest: Manifest) => Manifest | Promise<Manifest>;
|
|
10
|
+
export type StreamerManifestHookFactory = (context: StreamerManifestHookContext) => StreamerManifestHook;
|
|
11
|
+
export type StreamerManifestHooks = {
|
|
12
|
+
/** Additional source/content metadata normalization. */
|
|
13
|
+
content?: StreamerManifestHookFactory[];
|
|
14
|
+
/** Structural manifest transforms that may change `spineItems` and `items`. */
|
|
15
|
+
spine?: StreamerManifestHookFactory[];
|
|
16
|
+
/** Layout and presentation metadata derived from the normalized manifest. */
|
|
17
|
+
presentation?: StreamerManifestHookFactory[];
|
|
18
|
+
/** Navigation derivation such as TOC data. */
|
|
19
|
+
navigation?: StreamerManifestHookFactory[];
|
|
20
|
+
};
|
|
21
|
+
export type StreamerResourceHookContext = {
|
|
22
|
+
archive: Archive;
|
|
23
|
+
resourcePath: string;
|
|
24
|
+
};
|
|
25
|
+
export type StreamerResourceHook = (resource: HookResource) => HookResource | Promise<HookResource>;
|
|
26
|
+
export type StreamerResourceHookFactory = (context: StreamerResourceHookContext) => StreamerResourceHook;
|
|
27
|
+
export type StreamerHooks = {
|
|
28
|
+
manifest?: StreamerManifestHooks;
|
|
29
|
+
resource?: StreamerResourceHookFactory[];
|
|
30
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { configure } from './configure';
|
|
|
9
9
|
export { getArchiveOpfInfo } from './epubs/getArchiveOpfInfo';
|
|
10
10
|
export { generateManifestFromArchive } from './generators/manifest';
|
|
11
11
|
export { generateResourceFromArchive } from './generators/resources';
|
|
12
|
+
export type { HookResource, StreamerHooks, StreamerManifestHook, StreamerManifestHookContext, StreamerManifestHookFactory, StreamerManifestHooks, StreamerResourceHook, StreamerResourceHookContext, StreamerResourceHookFactory, } from './hooks';
|
|
12
13
|
export { ServiceWorkerStreamer } from './ServiceWorkerStreamer';
|
|
13
14
|
export { Streamer } from './Streamer';
|
|
14
15
|
export * from './utils/sortByTitleComparator';
|