@wyxos/vibe 5.2.1 → 5.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/lib/components/MasonryFeed.vue.d.ts +4 -2
- package/lib/components/MediaCard.vue.d.ts +2 -2
- package/lib/components/ReelFeed.vue.d.ts +2 -2
- package/lib/components/ReelLayout.vue.d.ts +2 -2
- package/lib/components/VibeSurface.vue.d.ts +2 -0
- package/lib/components/useMediaLifecycle.d.ts +19 -0
- package/lib/core/autofill.d.ts +4 -2
- package/lib/core/autofillController.d.ts +2 -0
- package/lib/core/fill.d.ts +7 -3
- package/lib/core/fillController.d.ts +2 -0
- package/lib/core/removalReconciliationController.d.ts +7 -1
- package/lib/core/runtime.d.ts +1 -0
- package/lib/index.cjs +1 -1
- package/lib/index.js +894 -752
- package/lib/types.d.ts +7 -2
- package/package.json +1 -1
|
@@ -6,19 +6,21 @@ declare const __VLS_export: import("vue").DefineComponent<MasonryFeedProps, {
|
|
|
6
6
|
getScrollElement: typeof getScrollElement;
|
|
7
7
|
loadIfNearBottom: typeof loadIfNearBottom;
|
|
8
8
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
-
ready: (postId: VibeItemId, mediaIndex: number) => any;
|
|
10
9
|
error: (postId: VibeItemId, mediaIndex: number) => any;
|
|
10
|
+
ready: (postId: VibeItemId, mediaIndex: number) => any;
|
|
11
11
|
loadMore: () => any;
|
|
12
12
|
retryEnd: () => any;
|
|
13
13
|
activate: (postId: VibeItemId, input: "keyboard" | "pointer") => any;
|
|
14
14
|
mediaChange: (postId: VibeItemId, mediaIndex: number) => any;
|
|
15
|
+
visible: (postId: VibeItemId, mediaIndex: number) => any;
|
|
15
16
|
}, string, import("vue").PublicProps, Readonly<MasonryFeedProps> & Readonly<{
|
|
16
|
-
onReady?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
17
17
|
onError?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
18
|
+
onReady?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
18
19
|
onLoadMore?: (() => any) | undefined;
|
|
19
20
|
onRetryEnd?: (() => any) | undefined;
|
|
20
21
|
onActivate?: ((postId: VibeItemId, input: "keyboard" | "pointer") => any) | undefined;
|
|
21
22
|
onMediaChange?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
23
|
+
onVisible?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
22
24
|
}>, {
|
|
23
25
|
leavingPostIds: ReadonlySet<VibeItemId>;
|
|
24
26
|
removalDelays: ReadonlyMap<VibeItemId, number>;
|
|
@@ -24,14 +24,14 @@ type __VLS_Props = {
|
|
|
24
24
|
total: number | null;
|
|
25
25
|
};
|
|
26
26
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
27
|
-
ready: (mediaIndex: number) => any;
|
|
28
27
|
error: (mediaIndex: number) => any;
|
|
28
|
+
ready: (mediaIndex: number) => any;
|
|
29
29
|
ended: (mediaIndex: number) => any;
|
|
30
30
|
activate: (input: "keyboard" | "pointer") => any;
|
|
31
31
|
mediaChange: (mediaIndex: number) => any;
|
|
32
32
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
33
|
-
onReady?: ((mediaIndex: number) => any) | undefined;
|
|
34
33
|
onError?: ((mediaIndex: number) => any) | undefined;
|
|
34
|
+
onReady?: ((mediaIndex: number) => any) | undefined;
|
|
35
35
|
onEnded?: ((mediaIndex: number) => any) | undefined;
|
|
36
36
|
onActivate?: ((input: "keyboard" | "pointer") => any) | undefined;
|
|
37
37
|
onMediaChange?: ((mediaIndex: number) => any) | undefined;
|
|
@@ -16,16 +16,16 @@ declare const __VLS_export: import("vue").DefineComponent<ReelFeedProps, {
|
|
|
16
16
|
transitionActiveMedia: typeof transitionActiveMedia;
|
|
17
17
|
transitionActivePost: typeof transitionActivePost;
|
|
18
18
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
19
|
-
ready: (postId: VibeItemId, mediaIndex: number) => any;
|
|
20
19
|
error: (postId: VibeItemId, mediaIndex: number) => any;
|
|
20
|
+
ready: (postId: VibeItemId, mediaIndex: number) => any;
|
|
21
21
|
loadMore: () => any;
|
|
22
22
|
retryEnd: () => any;
|
|
23
23
|
mediaChange: (postId: VibeItemId, mediaIndex: number) => any;
|
|
24
24
|
activeChange: (postId: VibeItemId) => any;
|
|
25
25
|
retryForward: () => any;
|
|
26
26
|
}, string, import("vue").PublicProps, Readonly<ReelFeedProps> & Readonly<{
|
|
27
|
-
onReady?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
28
27
|
onError?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
28
|
+
onReady?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
29
29
|
onLoadMore?: (() => any) | undefined;
|
|
30
30
|
onRetryEnd?: (() => any) | undefined;
|
|
31
31
|
onMediaChange?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
@@ -14,8 +14,8 @@ declare const __VLS_export: import("vue").DefineComponent<ReelLayoutProps, {
|
|
|
14
14
|
transitionActiveMedia: typeof transitionActiveMedia;
|
|
15
15
|
transitionActivePost: typeof transitionActivePost;
|
|
16
16
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
|
-
ready: (postId: VibeItemId, mediaIndex: number) => any;
|
|
18
17
|
error: (postId: VibeItemId, mediaIndex: number) => any;
|
|
18
|
+
ready: (postId: VibeItemId, mediaIndex: number) => any;
|
|
19
19
|
loadMore: () => any;
|
|
20
20
|
retryEnd: () => any;
|
|
21
21
|
mediaChange: (postId: VibeItemId, mediaIndex: number) => any;
|
|
@@ -23,8 +23,8 @@ declare const __VLS_export: import("vue").DefineComponent<ReelLayoutProps, {
|
|
|
23
23
|
retryForward: () => any;
|
|
24
24
|
closeInfoSheet: () => any;
|
|
25
25
|
}, string, import("vue").PublicProps, Readonly<ReelLayoutProps> & Readonly<{
|
|
26
|
-
onReady?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
27
26
|
onError?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
27
|
+
onReady?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
28
28
|
onLoadMore?: (() => any) | undefined;
|
|
29
29
|
onRetryEnd?: (() => any) | undefined;
|
|
30
30
|
onMediaChange?: ((postId: VibeItemId, mediaIndex: number) => any) | undefined;
|
|
@@ -32,6 +32,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
|
32
32
|
activeReelChange: (postId: VibeItemId) => any;
|
|
33
33
|
closeReel: () => any;
|
|
34
34
|
mediaReady: (context: VibeMediaLifecycleContext) => any;
|
|
35
|
+
mediaVisible: (context: VibeMediaLifecycleContext) => any;
|
|
35
36
|
openReel: (postId: VibeItemId) => any;
|
|
36
37
|
reelMediaChange: (context: VibeMediaLifecycleContext) => any;
|
|
37
38
|
reelInfoSheetChange: (enabled: boolean) => any;
|
|
@@ -42,6 +43,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
|
|
|
42
43
|
onActiveReelChange?: ((postId: VibeItemId) => any) | undefined;
|
|
43
44
|
onCloseReel?: (() => any) | undefined;
|
|
44
45
|
onMediaReady?: ((context: VibeMediaLifecycleContext) => any) | undefined;
|
|
46
|
+
onMediaVisible?: ((context: VibeMediaLifecycleContext) => any) | undefined;
|
|
45
47
|
onOpenReel?: ((postId: VibeItemId) => any) | undefined;
|
|
46
48
|
onReelMediaChange?: ((context: VibeMediaLifecycleContext) => any) | undefined;
|
|
47
49
|
onReelInfoSheetChange?: ((enabled: boolean) => any) | undefined;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MediaPreviewState } from '../core/mediaPreview';
|
|
2
|
+
import type { VibeRuntimeState } from '../core/runtime';
|
|
3
|
+
import type { VibeItemId, VibeMediaLifecycleContext } from '../types';
|
|
4
|
+
interface MediaLifecycleEvents {
|
|
5
|
+
ready: (context: VibeMediaLifecycleContext) => void;
|
|
6
|
+
reelChange: (context: VibeMediaLifecycleContext) => void;
|
|
7
|
+
visible: (context: VibeMediaLifecycleContext) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function useMediaLifecycle(state: VibeRuntimeState, events: MediaLifecycleEvents): {
|
|
10
|
+
markMasonryVisible: (postId: VibeItemId, mediaIndex: number) => void;
|
|
11
|
+
markPreviewError: (postId: VibeItemId, mediaIndex: number) => void;
|
|
12
|
+
markPreviewReady: (postId: VibeItemId, mediaIndex: number) => void;
|
|
13
|
+
markReelError: (postId: VibeItemId, mediaIndex: number) => void;
|
|
14
|
+
markReelReady: (postId: VibeItemId, mediaIndex: number) => void;
|
|
15
|
+
originalStates: import("vue").ShallowRef<ReadonlyMap<string, MediaPreviewState>, ReadonlyMap<string, MediaPreviewState>>;
|
|
16
|
+
previewStates: import("vue").ShallowRef<ReadonlyMap<string, MediaPreviewState>, ReadonlyMap<string, MediaPreviewState>>;
|
|
17
|
+
reelStates: import("vue").ComputedRef<ReadonlyMap<string, MediaPreviewState>>;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
package/lib/core/autofill.d.ts
CHANGED
|
@@ -13,11 +13,12 @@ export interface FrontendAutofillProgress {
|
|
|
13
13
|
export interface FrontendAutofillCollection extends FrontendAutofillProgress {
|
|
14
14
|
items: VibeItem[];
|
|
15
15
|
lastCursor: VibeCursor;
|
|
16
|
+
pages: LoadedPageRecord[];
|
|
16
17
|
total?: number;
|
|
17
18
|
}
|
|
18
19
|
export interface FrontendAutofillResult extends FrontendAutofillCollection {
|
|
19
20
|
pages: LoadedPageRecord[];
|
|
20
|
-
status: 'complete' | 'exhausted';
|
|
21
|
+
status: 'complete' | 'exhausted' | 'paused';
|
|
21
22
|
}
|
|
22
23
|
interface CollectFrontendAutofillOptions {
|
|
23
24
|
existingItems: readonly VibeItem[];
|
|
@@ -30,6 +31,7 @@ interface CollectFrontendAutofillOptions {
|
|
|
30
31
|
options: VibeFrontendAutofillOptions;
|
|
31
32
|
receivedOffset?: number;
|
|
32
33
|
requestOffset?: number;
|
|
34
|
+
shouldPause?: () => boolean;
|
|
33
35
|
signal: AbortSignal;
|
|
34
36
|
}
|
|
35
37
|
export declare function validateAutofillOptions(options?: VibeAutofillOptions): void;
|
|
@@ -37,5 +39,5 @@ export declare function createAutofillState(options?: VibeAutofillOptions, initi
|
|
|
37
39
|
export declare function isAutofillActive(state: VibeAutofillState): boolean;
|
|
38
40
|
export declare function cancelAutofill(options: VibeAutofillOptions | undefined, state: VibeRuntimeState, cancelRequest: () => void): Promise<void>;
|
|
39
41
|
export declare function isMatchingBackendSession(options: VibeAutofillOptions | undefined, update: Pick<VibeAutofillSessionSnapshot, 'feedKey' | 'sessionId'>, state: VibeAutofillState): boolean;
|
|
40
|
-
export declare function collectFrontendAutofill({ existingItems, initialCursor, loadPage, maximumRequests: configuredMaximumRequests, onCollection, onDelayChange, onProgress, options, receivedOffset, requestOffset, signal, }: CollectFrontendAutofillOptions): Promise<FrontendAutofillResult>;
|
|
42
|
+
export declare function collectFrontendAutofill({ existingItems, initialCursor, loadPage, maximumRequests: configuredMaximumRequests, onCollection, onDelayChange, onProgress, options, receivedOffset, requestOffset, shouldPause, signal, }: CollectFrontendAutofillOptions): Promise<FrontendAutofillResult>;
|
|
41
43
|
export {};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type FrontendAutofillCollection } from './autofill';
|
|
2
|
+
import type { LoadedPageRecord } from './page';
|
|
2
3
|
import type { VibeRuntimeState } from './runtime';
|
|
3
4
|
import type { VibeAutofillOptions, VibeCursor } from '../types';
|
|
4
5
|
interface AutofillControllerContext {
|
|
5
6
|
cancelRequest: () => void;
|
|
6
7
|
onLastCursor: (cursor: VibeCursor) => void;
|
|
8
|
+
onPages: (pages: readonly LoadedPageRecord[]) => void;
|
|
7
9
|
options?: VibeAutofillOptions;
|
|
8
10
|
state: VibeRuntimeState;
|
|
9
11
|
}
|
package/lib/core/fill.d.ts
CHANGED
|
@@ -6,20 +6,24 @@ export interface FrontendFillProgress {
|
|
|
6
6
|
next: VibeCursor;
|
|
7
7
|
received: number;
|
|
8
8
|
}
|
|
9
|
-
export interface
|
|
9
|
+
export interface FrontendFillCollection extends FrontendFillProgress {
|
|
10
10
|
items: VibeItem[];
|
|
11
11
|
lastCursor: VibeCursor;
|
|
12
12
|
pages: LoadedPageRecord[];
|
|
13
|
-
status: 'complete' | 'exhausted';
|
|
14
13
|
total?: number;
|
|
15
14
|
}
|
|
15
|
+
export interface FrontendFillResult extends FrontendFillCollection {
|
|
16
|
+
status: 'complete' | 'exhausted' | 'paused';
|
|
17
|
+
}
|
|
16
18
|
interface CollectFrontendFillOptions {
|
|
17
19
|
existingItems: readonly VibeItem[];
|
|
18
20
|
initialCursor: VibeCursor;
|
|
19
21
|
loadPage: VibePageLoader;
|
|
22
|
+
onCollection?: (collection: FrontendFillCollection) => void;
|
|
20
23
|
onDelayChange: (snapshot: RequestDelaySnapshot) => void;
|
|
21
24
|
onProgress: (progress: FrontendFillProgress) => void;
|
|
22
25
|
options: VibeFrontendFillOptions;
|
|
26
|
+
shouldPause?: () => boolean;
|
|
23
27
|
signal: AbortSignal;
|
|
24
28
|
target: VibeFillTarget;
|
|
25
29
|
}
|
|
@@ -27,5 +31,5 @@ export declare function validateFillTarget(target: VibeFillTarget): VibeFillTarg
|
|
|
27
31
|
export declare function validateFillOptions(options?: VibeFillOptions): void;
|
|
28
32
|
export declare function createFillState(options?: VibeFillOptions, initialSession?: VibeFillSessionSnapshot, useConfiguredSession?: boolean): VibeFillState;
|
|
29
33
|
export declare function isFillActive(state: VibeFillState): boolean;
|
|
30
|
-
export declare function collectFrontendFill({ existingItems, initialCursor, loadPage, onDelayChange, onProgress, options, signal, target, }: CollectFrontendFillOptions): Promise<FrontendFillResult>;
|
|
34
|
+
export declare function collectFrontendFill({ existingItems, initialCursor, loadPage, onCollection, onDelayChange, onProgress, options, shouldPause, signal, target, }: CollectFrontendFillOptions): Promise<FrontendFillResult>;
|
|
31
35
|
export {};
|
|
@@ -14,6 +14,7 @@ export declare class VibeFillController {
|
|
|
14
14
|
private cycle;
|
|
15
15
|
private readonly delayCountdown;
|
|
16
16
|
private requestVersion;
|
|
17
|
+
private collection;
|
|
17
18
|
constructor(options: FillControllerOptions);
|
|
18
19
|
isActive(): boolean;
|
|
19
20
|
applyUpdate(update: VibeBackendFillUpdate): boolean;
|
|
@@ -25,6 +26,7 @@ export declare class VibeFillController {
|
|
|
25
26
|
private abortLocalRequest;
|
|
26
27
|
private isCurrent;
|
|
27
28
|
private startFrontend;
|
|
29
|
+
private commitCollection;
|
|
28
30
|
private syncBackendCountdown;
|
|
29
31
|
}
|
|
30
32
|
export {};
|
|
@@ -6,11 +6,13 @@ interface ReconciliationResult {
|
|
|
6
6
|
next: VibeCursor;
|
|
7
7
|
pages: LoadedPageRecord[];
|
|
8
8
|
replaceFrom: number;
|
|
9
|
+
status: 'complete' | 'paused';
|
|
9
10
|
total?: number;
|
|
10
11
|
}
|
|
11
12
|
interface ReconcileOptions {
|
|
12
13
|
existingItems: readonly VibeItem[];
|
|
13
14
|
loadPage: VibePageLoader;
|
|
15
|
+
shouldPause?: () => boolean;
|
|
14
16
|
signal: AbortSignal;
|
|
15
17
|
}
|
|
16
18
|
export declare class RemovalReconciliationController {
|
|
@@ -19,16 +21,20 @@ export declare class RemovalReconciliationController {
|
|
|
19
21
|
private readonly maxReplayPages;
|
|
20
22
|
private readonly pageSize;
|
|
21
23
|
private pages;
|
|
24
|
+
private pending;
|
|
22
25
|
private readonly tombstones;
|
|
23
26
|
constructor(options: CreateVibeOptions);
|
|
24
27
|
completeReconciliation(result: ReconciliationResult): void;
|
|
25
28
|
filterItems(items: readonly VibeItem[]): VibeItem[];
|
|
26
29
|
needsReconciliation(items: readonly VibeItem[]): boolean;
|
|
30
|
+
hasPendingSession(): boolean;
|
|
27
31
|
recordPages(records: readonly LoadedPageRecord[]): void;
|
|
28
32
|
remove(postIds: readonly VibeItemId[]): void;
|
|
29
33
|
reset(): void;
|
|
30
34
|
restore(postIds: readonly VibeItemId[]): void;
|
|
31
|
-
reconcile({ existingItems, loadPage, signal, }: ReconcileOptions): Promise<ReconciliationResult>;
|
|
35
|
+
reconcile({ existingItems, loadPage, shouldPause, signal, }: ReconcileOptions): Promise<ReconciliationResult>;
|
|
36
|
+
private createSession;
|
|
37
|
+
private result;
|
|
32
38
|
private findUnderfilledPage;
|
|
33
39
|
private recordPage;
|
|
34
40
|
}
|
package/lib/core/runtime.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export interface VibeRuntimeState {
|
|
|
14
14
|
mediaIndices: Map<VibeItemId, number>;
|
|
15
15
|
next: VibeCursor;
|
|
16
16
|
nextPageError: unknown | null;
|
|
17
|
+
phoneMode: boolean;
|
|
17
18
|
reelAutoAdvance: VibeReelAutoAdvanceState;
|
|
18
19
|
reelForward: VibeReelForwardState;
|
|
19
20
|
reelForwardIndex: number | null;
|