@jamwidgets/core 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.
- package/README.md +277 -0
- package/dist/index.d.ts +491 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1021 -0
- package/package.json +43 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,491 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jamwidgets/core
|
|
3
|
+
*
|
|
4
|
+
* Framework-agnostic API client, types, and controllers for Jamwidgets.
|
|
5
|
+
* Use this package directly or through framework-specific wrappers like @jamwidgets/astro.
|
|
6
|
+
*/
|
|
7
|
+
export declare const DEFAULT_ENDPOINT = "https://jamwidgets.com";
|
|
8
|
+
export declare const API_PATH = "/api/v1";
|
|
9
|
+
export declare const VISITOR_STORAGE_KEY = "jamwidgets_visitor_id";
|
|
10
|
+
export interface JamWidgetsConfig {
|
|
11
|
+
/** Your site key (required) */
|
|
12
|
+
siteKey: string;
|
|
13
|
+
/** Base URL of your Jamwidgets instance (default: 'https://jamwidgets.com') */
|
|
14
|
+
endpoint?: string;
|
|
15
|
+
}
|
|
16
|
+
/** @deprecated Use JamWidgetsConfig instead */
|
|
17
|
+
export type SeriphConfig = JamWidgetsConfig;
|
|
18
|
+
export interface Comment {
|
|
19
|
+
id: string;
|
|
20
|
+
pageId: string;
|
|
21
|
+
parentId?: string;
|
|
22
|
+
authorName: string;
|
|
23
|
+
content: string;
|
|
24
|
+
createdAt: string;
|
|
25
|
+
replies: Comment[];
|
|
26
|
+
}
|
|
27
|
+
export interface ReactionCounts {
|
|
28
|
+
pageId: string;
|
|
29
|
+
counts: Record<string, number>;
|
|
30
|
+
}
|
|
31
|
+
export interface FormSubmitResponse {
|
|
32
|
+
success: boolean;
|
|
33
|
+
message: string;
|
|
34
|
+
}
|
|
35
|
+
export interface SubscribeResponse {
|
|
36
|
+
success: boolean;
|
|
37
|
+
message: string;
|
|
38
|
+
}
|
|
39
|
+
export interface JamwidgetsPost {
|
|
40
|
+
id: string;
|
|
41
|
+
title: string;
|
|
42
|
+
slug: string;
|
|
43
|
+
/** Post content as Markdown */
|
|
44
|
+
content: string;
|
|
45
|
+
/** Raw TipTap/ProseMirror JSON content (for custom rendering) */
|
|
46
|
+
contentJson?: string;
|
|
47
|
+
excerpt?: string;
|
|
48
|
+
coverImage?: string;
|
|
49
|
+
metaTitle?: string;
|
|
50
|
+
metaDescription?: string;
|
|
51
|
+
tags: string[];
|
|
52
|
+
publishedAt: string;
|
|
53
|
+
}
|
|
54
|
+
/** @deprecated Use JamwidgetsPost instead */
|
|
55
|
+
export type SeriphPost = JamwidgetsPost;
|
|
56
|
+
/** Build full API URL from endpoint and path */
|
|
57
|
+
export declare function buildUrl(endpoint: string | undefined, path: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Read Jamwidgets config from meta tags in the document head.
|
|
60
|
+
* Looks for:
|
|
61
|
+
* - <meta name="jamwidgets-site-key" content="sk-xxx" />
|
|
62
|
+
* - <meta name="jamwidgets-endpoint" content="https://..." /> (optional)
|
|
63
|
+
*
|
|
64
|
+
* Also supports legacy meta tag names (seriph-site-key, seriph-endpoint) for backward compatibility.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* // In your HTML head:
|
|
68
|
+
* <meta name="jamwidgets-site-key" content="sk-xxx" />
|
|
69
|
+
*
|
|
70
|
+
* // In your JS:
|
|
71
|
+
* const config = getConfigFromMeta();
|
|
72
|
+
* if (config) {
|
|
73
|
+
* const poll = createPoll({ ...config, slug: "my-poll" });
|
|
74
|
+
* }
|
|
75
|
+
*/
|
|
76
|
+
export declare function getConfigFromMeta(): {
|
|
77
|
+
siteKey: string;
|
|
78
|
+
endpoint?: string;
|
|
79
|
+
} | null;
|
|
80
|
+
/** Get site key from config, with fallback to meta tag */
|
|
81
|
+
export declare function getSiteKey(config: JamWidgetsConfig): string;
|
|
82
|
+
/** Resolve full config, merging props with meta tag fallbacks */
|
|
83
|
+
export declare function resolveConfig(config: Partial<JamWidgetsConfig>): JamWidgetsConfig;
|
|
84
|
+
/**
|
|
85
|
+
* Set a custom visitor ID (e.g., authenticated user ID).
|
|
86
|
+
* Useful for non-static sites where you have user sessions.
|
|
87
|
+
* Set to null to revert to localStorage-based ID.
|
|
88
|
+
*/
|
|
89
|
+
export declare function setVisitorId(id: string | null): void;
|
|
90
|
+
/**
|
|
91
|
+
* Get the current visitor ID.
|
|
92
|
+
* Priority: custom ID > localStorage > generated UUID (SSR fallback)
|
|
93
|
+
*/
|
|
94
|
+
export declare function getVisitorId(): string;
|
|
95
|
+
export interface SubmitFormOptions extends JamWidgetsConfig {
|
|
96
|
+
formSlug: string;
|
|
97
|
+
data: Record<string, unknown>;
|
|
98
|
+
/** Form load timestamp for spam detection (auto-set if not provided) */
|
|
99
|
+
formLoadTime?: number;
|
|
100
|
+
}
|
|
101
|
+
export declare function submitForm(options: SubmitFormOptions): Promise<FormSubmitResponse>;
|
|
102
|
+
export interface FetchCommentsOptions extends JamWidgetsConfig {
|
|
103
|
+
pageId: string;
|
|
104
|
+
}
|
|
105
|
+
export declare function fetchComments(options: FetchCommentsOptions): Promise<Comment[]>;
|
|
106
|
+
export interface PostCommentOptions extends JamWidgetsConfig {
|
|
107
|
+
pageId: string;
|
|
108
|
+
authorName: string;
|
|
109
|
+
authorEmail?: string;
|
|
110
|
+
content: string;
|
|
111
|
+
parentId?: string;
|
|
112
|
+
}
|
|
113
|
+
export declare function postComment(options: PostCommentOptions): Promise<Comment>;
|
|
114
|
+
export interface FetchReactionsOptions extends JamWidgetsConfig {
|
|
115
|
+
pageId: string;
|
|
116
|
+
}
|
|
117
|
+
export interface FetchReactionsResponse extends ReactionCounts {
|
|
118
|
+
/** Reaction types the current visitor has added (based on visitor token) */
|
|
119
|
+
userReactions: string[];
|
|
120
|
+
}
|
|
121
|
+
export declare function fetchReactions(options: FetchReactionsOptions): Promise<FetchReactionsResponse>;
|
|
122
|
+
export interface AddReactionOptions extends JamWidgetsConfig {
|
|
123
|
+
pageId: string;
|
|
124
|
+
reactionType?: string;
|
|
125
|
+
}
|
|
126
|
+
export declare function addReaction(options: AddReactionOptions): Promise<{
|
|
127
|
+
reactionType: string;
|
|
128
|
+
count: number;
|
|
129
|
+
}>;
|
|
130
|
+
export interface RemoveReactionOptions extends JamWidgetsConfig {
|
|
131
|
+
pageId: string;
|
|
132
|
+
reactionType?: string;
|
|
133
|
+
}
|
|
134
|
+
export declare function removeReaction(options: RemoveReactionOptions): Promise<{
|
|
135
|
+
reactionType: string;
|
|
136
|
+
count: number;
|
|
137
|
+
}>;
|
|
138
|
+
export interface SubscribeOptions extends JamWidgetsConfig {
|
|
139
|
+
email: string;
|
|
140
|
+
}
|
|
141
|
+
export declare function subscribe(options: SubscribeOptions): Promise<SubscribeResponse>;
|
|
142
|
+
export interface FetchPostsOptions extends JamWidgetsConfig {
|
|
143
|
+
/** Filter posts by tag */
|
|
144
|
+
tag?: string;
|
|
145
|
+
/** Maximum number of posts to fetch (default: 500) */
|
|
146
|
+
limit?: number;
|
|
147
|
+
}
|
|
148
|
+
export declare function fetchPosts(options: FetchPostsOptions): Promise<JamwidgetsPost[]>;
|
|
149
|
+
export interface FetchPostOptions extends JamWidgetsConfig {
|
|
150
|
+
/** The post slug to fetch */
|
|
151
|
+
slug: string;
|
|
152
|
+
}
|
|
153
|
+
export declare function fetchPost(options: FetchPostOptions): Promise<JamwidgetsPost | null>;
|
|
154
|
+
export interface JoinWaitlistOptions extends JamWidgetsConfig {
|
|
155
|
+
email: string;
|
|
156
|
+
name?: string;
|
|
157
|
+
/** Where the signup came from (e.g., "homepage", "blog") */
|
|
158
|
+
source?: string;
|
|
159
|
+
}
|
|
160
|
+
export interface JoinWaitlistResponse {
|
|
161
|
+
success: boolean;
|
|
162
|
+
message: string;
|
|
163
|
+
/** Position in waitlist (if site chooses to show it) */
|
|
164
|
+
position?: number;
|
|
165
|
+
}
|
|
166
|
+
export declare function joinWaitlist(options: JoinWaitlistOptions): Promise<JoinWaitlistResponse>;
|
|
167
|
+
export interface ViewCountsOptions extends JamWidgetsConfig {
|
|
168
|
+
pageId: string;
|
|
169
|
+
}
|
|
170
|
+
export interface ViewCounts {
|
|
171
|
+
pageId: string;
|
|
172
|
+
views: number;
|
|
173
|
+
uniqueVisitors: number;
|
|
174
|
+
}
|
|
175
|
+
export interface RecordViewResponse extends ViewCounts {
|
|
176
|
+
isNewVisitor: boolean;
|
|
177
|
+
}
|
|
178
|
+
export declare function getViewCounts(options: ViewCountsOptions): Promise<ViewCounts>;
|
|
179
|
+
export declare function recordView(options: ViewCountsOptions): Promise<RecordViewResponse>;
|
|
180
|
+
export type FeedbackType = "bug" | "feature" | "general";
|
|
181
|
+
export interface SubmitFeedbackOptions extends JamWidgetsConfig {
|
|
182
|
+
type: FeedbackType;
|
|
183
|
+
content: string;
|
|
184
|
+
email?: string;
|
|
185
|
+
/** Page URL where feedback was submitted */
|
|
186
|
+
pageUrl?: string;
|
|
187
|
+
}
|
|
188
|
+
export interface SubmitFeedbackResponse {
|
|
189
|
+
success: boolean;
|
|
190
|
+
message: string;
|
|
191
|
+
}
|
|
192
|
+
export declare function submitFeedback(options: SubmitFeedbackOptions): Promise<SubmitFeedbackResponse>;
|
|
193
|
+
export type ShowResultsMode = "always" | "after_vote" | "after_end" | "never";
|
|
194
|
+
export interface PollOption {
|
|
195
|
+
id: string;
|
|
196
|
+
text: string;
|
|
197
|
+
}
|
|
198
|
+
export interface PollSettings {
|
|
199
|
+
multiSelect: boolean;
|
|
200
|
+
showResults: ShowResultsMode;
|
|
201
|
+
}
|
|
202
|
+
export interface Poll {
|
|
203
|
+
id: number;
|
|
204
|
+
question: string;
|
|
205
|
+
options: PollOption[];
|
|
206
|
+
settings: PollSettings;
|
|
207
|
+
endsAt?: string;
|
|
208
|
+
isActive: boolean;
|
|
209
|
+
}
|
|
210
|
+
export interface PollWithResults extends Poll {
|
|
211
|
+
results: Record<string, number>;
|
|
212
|
+
totalVotes: number;
|
|
213
|
+
/** Options the current visitor has voted for */
|
|
214
|
+
userVotes?: string[];
|
|
215
|
+
}
|
|
216
|
+
export interface FetchPollOptions extends JamWidgetsConfig {
|
|
217
|
+
slug: string;
|
|
218
|
+
}
|
|
219
|
+
export declare function fetchPoll(options: FetchPollOptions): Promise<PollWithResults>;
|
|
220
|
+
export interface VotePollOptions extends JamWidgetsConfig {
|
|
221
|
+
slug: string;
|
|
222
|
+
selectedOptions: string[];
|
|
223
|
+
}
|
|
224
|
+
export interface VotePollResponse {
|
|
225
|
+
success: boolean;
|
|
226
|
+
results: Record<string, number>;
|
|
227
|
+
totalVotes: number;
|
|
228
|
+
}
|
|
229
|
+
export declare function votePoll(options: VotePollOptions): Promise<VotePollResponse>;
|
|
230
|
+
export type AnnouncementType = "info" | "warning" | "success" | "error";
|
|
231
|
+
export interface Announcement {
|
|
232
|
+
id: number;
|
|
233
|
+
content: string;
|
|
234
|
+
announcementType: AnnouncementType;
|
|
235
|
+
linkUrl?: string;
|
|
236
|
+
linkText?: string;
|
|
237
|
+
isDismissible: boolean;
|
|
238
|
+
}
|
|
239
|
+
export interface FetchAnnouncementsOptions extends JamWidgetsConfig {
|
|
240
|
+
}
|
|
241
|
+
export declare function fetchAnnouncements(options: FetchAnnouncementsOptions): Promise<Announcement[]>;
|
|
242
|
+
export interface DismissAnnouncementOptions extends JamWidgetsConfig {
|
|
243
|
+
announcementId: number;
|
|
244
|
+
}
|
|
245
|
+
export declare function dismissAnnouncement(options: DismissAnnouncementOptions): Promise<void>;
|
|
246
|
+
export type ControllerStatus = "idle" | "loading" | "success" | "error";
|
|
247
|
+
/** State for subscribe controllers */
|
|
248
|
+
export interface SubscribeState {
|
|
249
|
+
status: ControllerStatus;
|
|
250
|
+
message: string | null;
|
|
251
|
+
error: Error | null;
|
|
252
|
+
}
|
|
253
|
+
/** State for form controllers */
|
|
254
|
+
export interface FormState {
|
|
255
|
+
status: ControllerStatus;
|
|
256
|
+
message: string | null;
|
|
257
|
+
error: Error | null;
|
|
258
|
+
}
|
|
259
|
+
/** State for reactions controllers */
|
|
260
|
+
export interface ReactionsState {
|
|
261
|
+
counts: Record<string, number>;
|
|
262
|
+
userReactions: string[];
|
|
263
|
+
status: ControllerStatus;
|
|
264
|
+
error: Error | null;
|
|
265
|
+
}
|
|
266
|
+
/** State for comments controllers */
|
|
267
|
+
export interface CommentsState {
|
|
268
|
+
comments: Comment[];
|
|
269
|
+
status: ControllerStatus;
|
|
270
|
+
error: Error | null;
|
|
271
|
+
}
|
|
272
|
+
/** State for waitlist controllers */
|
|
273
|
+
export interface WaitlistState {
|
|
274
|
+
status: ControllerStatus;
|
|
275
|
+
message: string | null;
|
|
276
|
+
position: number | null;
|
|
277
|
+
error: Error | null;
|
|
278
|
+
}
|
|
279
|
+
export interface ControllerListener<T> {
|
|
280
|
+
(state: T): void;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Headless controller for subscribe forms.
|
|
284
|
+
* Manages state without any DOM/framework dependencies.
|
|
285
|
+
*
|
|
286
|
+
* @example
|
|
287
|
+
* const controller = new SubscribeController({ siteKey: 'xxx' });
|
|
288
|
+
* controller.subscribe((state) => {
|
|
289
|
+
* console.log(state.status, state.message, state.error);
|
|
290
|
+
* });
|
|
291
|
+
* await controller.submit('user@example.com');
|
|
292
|
+
*/
|
|
293
|
+
export declare class SubscribeController {
|
|
294
|
+
private config;
|
|
295
|
+
private listeners;
|
|
296
|
+
private _state;
|
|
297
|
+
constructor(config: JamWidgetsConfig);
|
|
298
|
+
/** Get current state */
|
|
299
|
+
getState(): SubscribeState;
|
|
300
|
+
/** Subscribe to state changes */
|
|
301
|
+
subscribe(listener: ControllerListener<SubscribeState>): () => void;
|
|
302
|
+
private notify;
|
|
303
|
+
/** Submit email for subscription */
|
|
304
|
+
submit(email: string): Promise<SubscribeResponse>;
|
|
305
|
+
/** Reset to idle state */
|
|
306
|
+
reset(): void;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Headless controller for waitlist forms.
|
|
310
|
+
* Manages state without any DOM/framework dependencies.
|
|
311
|
+
*
|
|
312
|
+
* @example
|
|
313
|
+
* const controller = new WaitlistController({ siteKey: 'xxx' });
|
|
314
|
+
* controller.subscribe((state) => {
|
|
315
|
+
* console.log(state.status, state.message, state.position);
|
|
316
|
+
* });
|
|
317
|
+
* await controller.join('user@example.com', { name: 'John', source: 'homepage' });
|
|
318
|
+
*/
|
|
319
|
+
export declare class WaitlistController {
|
|
320
|
+
private config;
|
|
321
|
+
private listeners;
|
|
322
|
+
private _state;
|
|
323
|
+
constructor(config: JamWidgetsConfig);
|
|
324
|
+
getState(): WaitlistState;
|
|
325
|
+
subscribe(listener: ControllerListener<WaitlistState>): () => void;
|
|
326
|
+
private notify;
|
|
327
|
+
/** Join the waitlist */
|
|
328
|
+
join(email: string, options?: {
|
|
329
|
+
name?: string;
|
|
330
|
+
source?: string;
|
|
331
|
+
}): Promise<JoinWaitlistResponse>;
|
|
332
|
+
reset(): void;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Headless controller for forms.
|
|
336
|
+
* Manages state without any DOM/framework dependencies.
|
|
337
|
+
*/
|
|
338
|
+
export declare class FormController {
|
|
339
|
+
private config;
|
|
340
|
+
private formSlug;
|
|
341
|
+
private listeners;
|
|
342
|
+
private loadTime;
|
|
343
|
+
private _state;
|
|
344
|
+
constructor(config: JamWidgetsConfig, formSlug: string);
|
|
345
|
+
getState(): FormState;
|
|
346
|
+
subscribe(listener: ControllerListener<FormState>): () => void;
|
|
347
|
+
private notify;
|
|
348
|
+
submit(data: Record<string, unknown>): Promise<FormSubmitResponse>;
|
|
349
|
+
reset(): void;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Headless controller for reactions.
|
|
353
|
+
* Manages state and counts without any DOM/framework dependencies.
|
|
354
|
+
*/
|
|
355
|
+
export declare class ReactionsController {
|
|
356
|
+
private config;
|
|
357
|
+
private pageId;
|
|
358
|
+
private listeners;
|
|
359
|
+
private _state;
|
|
360
|
+
constructor(config: JamWidgetsConfig, pageId: string);
|
|
361
|
+
getState(): ReactionsState;
|
|
362
|
+
subscribe(listener: ControllerListener<ReactionsState>): () => void;
|
|
363
|
+
private notify;
|
|
364
|
+
/** Fetch reactions from the server */
|
|
365
|
+
fetch(): Promise<ReactionsState>;
|
|
366
|
+
add(reactionType?: string): Promise<void>;
|
|
367
|
+
remove(reactionType?: string): Promise<void>;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Headless controller for comments.
|
|
371
|
+
* Manages state and comment list without any DOM/framework dependencies.
|
|
372
|
+
*/
|
|
373
|
+
export declare class CommentsController {
|
|
374
|
+
private config;
|
|
375
|
+
private pageId;
|
|
376
|
+
private listeners;
|
|
377
|
+
private _state;
|
|
378
|
+
constructor(config: JamWidgetsConfig, pageId: string);
|
|
379
|
+
getState(): CommentsState;
|
|
380
|
+
subscribe(listener: ControllerListener<CommentsState>): () => void;
|
|
381
|
+
private notify;
|
|
382
|
+
/** Fetch comments from the server */
|
|
383
|
+
fetch(): Promise<Comment[]>;
|
|
384
|
+
post(authorName: string, content: string, options?: {
|
|
385
|
+
authorEmail?: string;
|
|
386
|
+
parentId?: string;
|
|
387
|
+
}): Promise<Comment>;
|
|
388
|
+
}
|
|
389
|
+
/** State for feedback controllers */
|
|
390
|
+
export interface FeedbackState {
|
|
391
|
+
status: ControllerStatus;
|
|
392
|
+
message: string | null;
|
|
393
|
+
error: Error | null;
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Headless controller for feedback forms.
|
|
397
|
+
* Manages state without any DOM/framework dependencies.
|
|
398
|
+
*/
|
|
399
|
+
export declare class FeedbackController {
|
|
400
|
+
private config;
|
|
401
|
+
private listeners;
|
|
402
|
+
private _state;
|
|
403
|
+
constructor(config: JamWidgetsConfig);
|
|
404
|
+
getState(): FeedbackState;
|
|
405
|
+
subscribe(listener: ControllerListener<FeedbackState>): () => void;
|
|
406
|
+
private notify;
|
|
407
|
+
submit(type: FeedbackType, content: string, options?: {
|
|
408
|
+
email?: string;
|
|
409
|
+
pageUrl?: string;
|
|
410
|
+
}): Promise<SubmitFeedbackResponse>;
|
|
411
|
+
reset(): void;
|
|
412
|
+
}
|
|
413
|
+
/** State for poll controllers */
|
|
414
|
+
export interface PollState {
|
|
415
|
+
poll: PollWithResults | null;
|
|
416
|
+
status: ControllerStatus;
|
|
417
|
+
error: Error | null;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Headless controller for polls.
|
|
421
|
+
* Manages poll state, voting, and results.
|
|
422
|
+
*/
|
|
423
|
+
export declare class PollController {
|
|
424
|
+
private config;
|
|
425
|
+
private slug;
|
|
426
|
+
private listeners;
|
|
427
|
+
private _state;
|
|
428
|
+
constructor(config: JamWidgetsConfig, slug: string);
|
|
429
|
+
getState(): PollState;
|
|
430
|
+
subscribe(listener: ControllerListener<PollState>): () => void;
|
|
431
|
+
private notify;
|
|
432
|
+
/** Fetch poll data from the server */
|
|
433
|
+
fetch(): Promise<PollWithResults>;
|
|
434
|
+
/** Vote on the poll */
|
|
435
|
+
vote(selectedOptions: string[]): Promise<VotePollResponse>;
|
|
436
|
+
/** Check if user has voted */
|
|
437
|
+
hasVoted(): boolean;
|
|
438
|
+
}
|
|
439
|
+
/** State for announcements controllers */
|
|
440
|
+
export interface AnnouncementsState {
|
|
441
|
+
announcements: Announcement[];
|
|
442
|
+
dismissed: Set<number>;
|
|
443
|
+
status: ControllerStatus;
|
|
444
|
+
error: Error | null;
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Headless controller for announcements.
|
|
448
|
+
* Manages announcement list and dismissals.
|
|
449
|
+
*/
|
|
450
|
+
export declare class AnnouncementsController {
|
|
451
|
+
private config;
|
|
452
|
+
private listeners;
|
|
453
|
+
private _state;
|
|
454
|
+
constructor(config: JamWidgetsConfig);
|
|
455
|
+
getState(): AnnouncementsState;
|
|
456
|
+
/** Get visible (non-dismissed) announcements */
|
|
457
|
+
getVisibleAnnouncements(): Announcement[];
|
|
458
|
+
subscribe(listener: ControllerListener<AnnouncementsState>): () => void;
|
|
459
|
+
private notify;
|
|
460
|
+
/** Fetch announcements from the server */
|
|
461
|
+
fetch(): Promise<Announcement[]>;
|
|
462
|
+
/** Dismiss an announcement */
|
|
463
|
+
dismiss(announcementId: number): Promise<void>;
|
|
464
|
+
}
|
|
465
|
+
/** State for view counts controllers */
|
|
466
|
+
export interface ViewCountsState {
|
|
467
|
+
pageId: string;
|
|
468
|
+
views: number;
|
|
469
|
+
uniqueVisitors: number;
|
|
470
|
+
status: ControllerStatus;
|
|
471
|
+
error: Error | null;
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Headless controller for view counts.
|
|
475
|
+
* Tracks page views and unique visitors.
|
|
476
|
+
*/
|
|
477
|
+
export declare class ViewCountsController {
|
|
478
|
+
private config;
|
|
479
|
+
private pageId;
|
|
480
|
+
private listeners;
|
|
481
|
+
private _state;
|
|
482
|
+
constructor(config: JamWidgetsConfig, pageId: string);
|
|
483
|
+
getState(): ViewCountsState;
|
|
484
|
+
subscribe(listener: ControllerListener<ViewCountsState>): () => void;
|
|
485
|
+
private notify;
|
|
486
|
+
/** Fetch view counts from the server */
|
|
487
|
+
fetch(): Promise<ViewCounts>;
|
|
488
|
+
/** Record a view (automatically tracks unique visitors via visitor token) */
|
|
489
|
+
record(): Promise<RecordViewResponse>;
|
|
490
|
+
}
|
|
491
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|