serve-socket 1.0.27 → 1.1.1
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/fesm2022/serve-socket.mjs +11 -55
- package/fesm2022/serve-socket.mjs.map +1 -1
- package/index.d.ts +8 -21
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { NgModule, InjectionToken, Inject, Injectable } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { HttpClientModule, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
|
5
|
-
import { BehaviorSubject, Subject
|
|
5
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
6
6
|
import { io } from 'socket.io-client';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -31,7 +31,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
31
31
|
|
|
32
32
|
const defaultRealtimeStoreEnvironment = {
|
|
33
33
|
apiUrl: `http://${window.location.hostname}:3030`,
|
|
34
|
-
socketEvents: {}
|
|
35
34
|
};
|
|
36
35
|
|
|
37
36
|
const REALTIME_STORE_ENVIRONMENT = new InjectionToken('REALTIME_STORE_ENVIRONMENT');
|
|
@@ -40,21 +39,17 @@ var SocketSuccessEventKeys;
|
|
|
40
39
|
(function (SocketSuccessEventKeys) {
|
|
41
40
|
SocketSuccessEventKeys["CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS"] = "CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS";
|
|
42
41
|
SocketSuccessEventKeys["CUSTOMER_REMOVE_FROM_CART_SUCCESS"] = "CUSTOMER_REMOVE_FROM_CART_SUCCESS";
|
|
43
|
-
SocketSuccessEventKeys["CUSTOMER_GET_MENU_SUCCESS"] = "CUSTOMER_GET_MENU_SUCCESS";
|
|
44
42
|
SocketSuccessEventKeys["TABLE_JOIN_REQUEST_SENT_SUCCESS"] = "TABLE_JOIN_REQUEST_SENT_SUCCESS";
|
|
45
|
-
SocketSuccessEventKeys["
|
|
43
|
+
SocketSuccessEventKeys["TABLE_CREATED_OR_UPDATED"] = "TABLE_CREATED_OR_UPDATED";
|
|
44
|
+
SocketSuccessEventKeys["TABLE_RELEASED"] = "TABLE_RELEASED";
|
|
45
|
+
SocketSuccessEventKeys["HOST_JOIN_REQUEST_APPROVED_SUCCESS"] = "HOST_JOIN_REQUEST_APPROVED_SUCCESS";
|
|
46
|
+
SocketSuccessEventKeys["HOST_JOIN_REQUEST_DECLINED"] = "HOST_JOIN_REQUEST_DECLINED";
|
|
47
|
+
SocketSuccessEventKeys["WAITER_CALL_CREATED_SUCCESS"] = "WAITER_CALL_CREATED_SUCCESS";
|
|
48
|
+
SocketSuccessEventKeys["WAITER_CALL_ACKNOWLEDGED_SUCCESS"] = "WAITER_CALL_ACKNOWLEDGED_SUCCESS";
|
|
46
49
|
SocketSuccessEventKeys["ERROR_MESSAGE_SUCCESS"] = "ERROR_MESSAGE_SUCCESS";
|
|
47
50
|
SocketSuccessEventKeys["SUCCESS_MESSAGE_SUCCESS"] = "SUCCESS_MESSAGE_SUCCESS";
|
|
48
51
|
SocketSuccessEventKeys["WARNING_MESSAGE_SUCCESS"] = "WARNING_MESSAGE_SUCCESS";
|
|
49
|
-
SocketSuccessEventKeys["GET_PENDING_CUSTOMER_LOGINS_SUCCESS"] = "GET_PENDING_CUSTOMER_LOGINS_SUCCESS";
|
|
50
|
-
SocketSuccessEventKeys["CUSTOMER_UPDATE_IS_PAID_SUCCESS"] = "CUSTOMER_UPDATE_IS_PAID_SUCCESS";
|
|
51
|
-
SocketSuccessEventKeys["TABLE_CREATED"] = "TABLE_CREATED";
|
|
52
|
-
SocketSuccessEventKeys["TABLE_ASSIGNED"] = "TABLE_ASSIGNED";
|
|
53
|
-
SocketSuccessEventKeys["TABLE_STATUS_UPDATED"] = "TABLE_STATUS_UPDATED";
|
|
54
|
-
SocketSuccessEventKeys["TABLE_RELEASED"] = "TABLE_RELEASED";
|
|
55
|
-
SocketSuccessEventKeys["WAITER_RECEIVE_CALL"] = "WAITER_RECEIVE_CALL";
|
|
56
52
|
})(SocketSuccessEventKeys || (SocketSuccessEventKeys = {}));
|
|
57
|
-
;
|
|
58
53
|
const SocketSuccessEvents = {};
|
|
59
54
|
class SocketService {
|
|
60
55
|
environment;
|
|
@@ -70,13 +65,6 @@ class SocketService {
|
|
|
70
65
|
constructor(environment = defaultRealtimeStoreEnvironment) {
|
|
71
66
|
this.environment = environment;
|
|
72
67
|
this.url = this.environment.apiUrl;
|
|
73
|
-
// Populate SocketSuccessEvents from environment configuration
|
|
74
|
-
if (this.environment.socketEvents) {
|
|
75
|
-
Object.keys(SocketSuccessEventKeys).forEach(key => {
|
|
76
|
-
const eventKey = key;
|
|
77
|
-
SocketSuccessEvents[eventKey] = this.environment.socketEvents[eventKey];
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
68
|
}
|
|
81
69
|
setupSocketConnection() {
|
|
82
70
|
const socketOptions = {
|
|
@@ -320,10 +308,8 @@ class TableStore extends BaseStore {
|
|
|
320
308
|
this.socketService = socketService;
|
|
321
309
|
}
|
|
322
310
|
setupSocketSubscriptions() {
|
|
323
|
-
this.subscribeToEvent(SocketSuccessEvents.
|
|
324
|
-
this.subscribeToEvent(SocketSuccessEvents.
|
|
325
|
-
this.subscribeToEvent(SocketSuccessEvents.TABLE_STATUS_UPDATED, (table) => this.updateItem(table));
|
|
326
|
-
this.subscribeToEvent(SocketSuccessEvents.TABLE_RELEASED, (table) => this.updateItem(table));
|
|
311
|
+
this.subscribeToEvent(SocketSuccessEvents.TABLE_CREATED_OR_UPDATED, (table) => this.updateItem(table));
|
|
312
|
+
this.subscribeToEvent(SocketSuccessEvents.TABLE_RELEASED, (table) => this.removeItem(table));
|
|
327
313
|
}
|
|
328
314
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: TableStore, deps: [{ token: SocketService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
329
315
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: TableStore });
|
|
@@ -358,7 +344,7 @@ class CallWaiterStore extends BaseStore {
|
|
|
358
344
|
this.socketService = socketService;
|
|
359
345
|
}
|
|
360
346
|
setupSocketSubscriptions() {
|
|
361
|
-
this.subscribeToEvent(SocketSuccessEvents.
|
|
347
|
+
this.subscribeToEvent(SocketSuccessEvents.WAITER_CALL_CREATED_SUCCESS, (request) => this.updateItem(request));
|
|
362
348
|
}
|
|
363
349
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CallWaiterStore, deps: [{ token: SocketService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
364
350
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CallWaiterStore });
|
|
@@ -367,36 +353,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
367
353
|
type: Injectable
|
|
368
354
|
}], ctorParameters: () => [{ type: SocketService }] });
|
|
369
355
|
|
|
370
|
-
class CustomerLoginStore extends BaseStore {
|
|
371
|
-
socketService;
|
|
372
|
-
constructor(socketService) {
|
|
373
|
-
super(socketService);
|
|
374
|
-
this.socketService = socketService;
|
|
375
|
-
}
|
|
376
|
-
setupSocketSubscriptions() {
|
|
377
|
-
this.subscribeToEvent(SocketSuccessEvents.GET_PENDING_CUSTOMER_LOGINS_SUCCESS, (logins) => this.updateItems(logins));
|
|
378
|
-
}
|
|
379
|
-
async approveCustomerLogin(customerId, tableId, customerAuthControllerApproveCustomerLogin) {
|
|
380
|
-
const approveData = {
|
|
381
|
-
customerId,
|
|
382
|
-
tableId
|
|
383
|
-
};
|
|
384
|
-
try {
|
|
385
|
-
await firstValueFrom(customerAuthControllerApproveCustomerLogin(approveData));
|
|
386
|
-
this.removeItem(customerId);
|
|
387
|
-
}
|
|
388
|
-
catch (error) {
|
|
389
|
-
console.error(`Failed to approve customer login for ${customerId}:`, error);
|
|
390
|
-
this.setError(`Failed to approve customer login`);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CustomerLoginStore, deps: [{ token: SocketService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
394
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CustomerLoginStore });
|
|
395
|
-
}
|
|
396
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CustomerLoginStore, decorators: [{
|
|
397
|
-
type: Injectable
|
|
398
|
-
}], ctorParameters: () => [{ type: SocketService }] });
|
|
399
|
-
|
|
400
356
|
/**
|
|
401
357
|
* Provides all services needed for the realtime store to function.
|
|
402
358
|
* Use this function in your standalone application's bootstrapApplication providers array.
|
|
@@ -431,5 +387,5 @@ function provideRealtimeStoreEnvironment(environment) {
|
|
|
431
387
|
* Generated bundle index. Do not edit.
|
|
432
388
|
*/
|
|
433
389
|
|
|
434
|
-
export { BaseStore, CallWaiterStore, CartStore,
|
|
390
|
+
export { BaseStore, CallWaiterStore, CartStore, REALTIME_STORE_ENVIRONMENT, RealtimeStoreModule, SocketService, SocketSuccessEventKeys, SocketSuccessEvents, TableStore, defaultRealtimeStoreEnvironment, provideRealtimeStore, provideRealtimeStoreEnvironment };
|
|
435
391
|
//# sourceMappingURL=serve-socket.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-socket.mjs","sources":["../../../projects/serve-socket/src/lib/realtime-store.module.ts","../../../projects/serve-socket/src/lib/environment/realtime-store-environment.interface.ts","../../../projects/serve-socket/src/lib/environment/realtime-store-environment.token.ts","../../../projects/serve-socket/src/lib/socket.service.ts","../../../projects/serve-socket/src/lib/base-store.ts","../../../projects/serve-socket/src/lib/stores/table.store.ts","../../../projects/serve-socket/src/lib/stores/cart.store.ts","../../../projects/serve-socket/src/lib/stores/call-waiter.store.ts","../../../projects/serve-socket/src/lib/stores/customer-login.store.ts","../../../projects/serve-socket/src/lib/providers.ts","../../../projects/serve-socket/src/lib/providers/realtime-store-environment.provider.ts","../../../projects/serve-socket/src/public-api.ts","../../../projects/serve-socket/src/serve-socket.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n/**\n * @deprecated Use provideRealtimeStore() with standalone components instead\n */\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n HttpClientModule // Kept for backward compatibility with Angular <14\n ],\n exports: []\n})\nexport class RealtimeStoreModule { }\n","import { SocketSuccessEventKeys } from '../socket.service';\n\nexport interface RealtimeStoreEnvironment {\n apiUrl: string;\n socketEvents: Record<SocketSuccessEventKeys, string>;\n}\n\nexport const defaultRealtimeStoreEnvironment: RealtimeStoreEnvironment = {\n apiUrl: `http://${window.location.hostname}:3030`,\n socketEvents: {} as Record<SocketSuccessEventKeys, string>\n};","import { InjectionToken } from '@angular/core';\nimport { RealtimeStoreEnvironment } from './realtime-store-environment.interface';\n\nexport const REALTIME_STORE_ENVIRONMENT = new InjectionToken<RealtimeStoreEnvironment>('REALTIME_STORE_ENVIRONMENT');","import { Injectable, Inject } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { io, Socket } from 'socket.io-client';\nimport { REALTIME_STORE_ENVIRONMENT, RealtimeStoreEnvironment, defaultRealtimeStoreEnvironment } from './environment';\n\nexport enum SocketSuccessEventKeys {\n CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS = 'CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS',\n CUSTOMER_REMOVE_FROM_CART_SUCCESS = 'CUSTOMER_REMOVE_FROM_CART_SUCCESS',\n CUSTOMER_GET_MENU_SUCCESS = 'CUSTOMER_GET_MENU_SUCCESS',\n TABLE_JOIN_REQUEST_SENT_SUCCESS = 'TABLE_JOIN_REQUEST_SENT_SUCCESS',\n TABLE_JOIN_REQUEST_APPROVED_SUCCESS = 'TABLE_JOIN_REQUEST_APPROVED_SUCCESS',\n ERROR_MESSAGE_SUCCESS = 'ERROR_MESSAGE_SUCCESS',\n SUCCESS_MESSAGE_SUCCESS = 'SUCCESS_MESSAGE_SUCCESS',\n WARNING_MESSAGE_SUCCESS = 'WARNING_MESSAGE_SUCCESS',\n GET_PENDING_CUSTOMER_LOGINS_SUCCESS = 'GET_PENDING_CUSTOMER_LOGINS_SUCCESS',\n CUSTOMER_UPDATE_IS_PAID_SUCCESS = 'CUSTOMER_UPDATE_IS_PAID_SUCCESS',\n TABLE_CREATED = 'TABLE_CREATED',\n TABLE_ASSIGNED = 'TABLE_ASSIGNED',\n TABLE_STATUS_UPDATED = 'TABLE_STATUS_UPDATED',\n TABLE_RELEASED = 'TABLE_RELEASED',\n WAITER_RECEIVE_CALL = 'WAITER_RECEIVE_CALL'\n};\n\nexport const SocketSuccessEvents: Record<SocketSuccessEventKeys, string> = {} as Record<SocketSuccessEventKeys, string>;\n\n\n@Injectable()\nexport class SocketService {\n private socket!: Socket;\n private readonly url: string;\n private authToken?: string;\n private connectionKey?: string;\n private readonly eventSubjects = new Map<string, Subject<any>>();\n\n private readonly connectionStatusSubject = new BehaviorSubject<boolean>(false);\n public connectionStatus$ = this.connectionStatusSubject.asObservable();\n\n private readonly reconnectSubject = new Subject<void>();\n public reconnect$ = this.reconnectSubject.asObservable();\n\n constructor(\n @Inject(REALTIME_STORE_ENVIRONMENT) private readonly environment: RealtimeStoreEnvironment = defaultRealtimeStoreEnvironment\n ) {\n this.url = this.environment.apiUrl;\n\n // Populate SocketSuccessEvents from environment configuration\n if (this.environment.socketEvents) {\n Object.keys(SocketSuccessEventKeys).forEach(key => {\n const eventKey = key as SocketSuccessEventKeys;\n (SocketSuccessEvents as any)[eventKey] = this.environment.socketEvents[eventKey];\n });\n }\n }\n\n private setupSocketConnection(): void {\n const socketOptions: any = {\n transports: ['websocket'],\n autoConnect: true\n };\n\n // Add auth if token is available\n if (this.authToken) {\n socketOptions.auth = {\n token: this.authToken\n };\n }\n\n this.socket = io(this.url, socketOptions);\n\n this.socket.on('connect', () => {\n console.log('Socket connected');\n this.connectionStatusSubject.next(true);\n this.reestablishListeners();\n });\n\n this.socket.on('disconnect', () => {\n console.log('Socket disconnected');\n this.connectionStatusSubject.next(false);\n });\n\n this.socket.on('reconnect', () => {\n console.log('Socket reconnected');\n this.connectionStatusSubject.next(true);\n this.reconnectSubject.next();\n this.reestablishListeners();\n });\n\n this.socket.on('connect_error', (err) => {\n console.error('Connection error:', err.message);\n });\n\n this.socket.on('reconnect_error', (err) => {\n console.error('Reconnection error:', err.message);\n });\n }\n\n private reestablishListeners(): void {\n console.log('Re-establishing listeners for', this.eventSubjects.size, 'events');\n this.eventSubjects.forEach((subject, eventName) => {\n this.socket.on(eventName, (data) => {\n subject.next(data);\n });\n });\n }\n\n /**\n * Set authentication token for socket connection\n */\n public setAuthToken(token: string): void {\n this.authToken = token;\n }\n\n /**\n * Set connection key for socket connection\n */\n public setConnectionKey(key: string): void {\n this.connectionKey = key;\n }\n\n /**\n * Reset connection with new token\n */\n public resetWithNewToken(token?: string): void {\n if (token) {\n this.authToken = token;\n }\n\n if (this.socket) {\n this.socket.disconnect();\n }\n\n this.setupSocketConnection();\n }\n\n public connect(): Promise<void> {\n return new Promise((resolve) => {\n this.setupSocketConnection();\n\n if (this.socket.connected) {\n resolve();\n return;\n }\n\n // Wait for the connect event and verify connection\n this.socket.once('connect', () => {\n // Poll until socket.connected is true\n const checkConnection = () => {\n if (this.socket.connected) {\n resolve();\n } else {\n setTimeout(checkConnection, 10);\n }\n };\n checkConnection();\n });\n\n if (!this.socket.connected) {\n this.socket.connect();\n }\n });\n }\n\n public disconnect(): void {\n if (this.socket && this.socket.connected) {\n this.socket.disconnect();\n }\n }\n\n /**\n * Emit event with optional authentication headers\n */\n public emit(event: string, data?: any): void {\n if (!this.socket || this.socket.disconnected) {\n console.warn('Socket not connected. Call connect() first.');\n return;\n }\n\n // If auth token or connection key exists, wrap data with headers\n if (this.authToken || this.connectionKey) {\n const payload = {\n payload: data || {},\n headers: {\n ...(this.authToken && { _authToken: this.authToken }),\n ...(this.connectionKey && { connectionKey: this.connectionKey })\n }\n };\n this.socket.emit(event, payload);\n } else {\n this.socket.emit(event, data);\n }\n }\n\n /**\n * Listen to events with persistent subjects that survive reconnections\n */\n public on<T>(event: string): Observable<T> {\n if (!this.eventSubjects.has(event)) {\n const subject = new Subject<T>();\n this.eventSubjects.set(event, subject);\n\n // Set up initial listener if socket is connected\n if (this.socket && this.socket.connected) {\n this.socket.on(event, (data: T) => {\n subject.next(data);\n });\n }\n }\n\n return this.eventSubjects.get(event)!.asObservable();\n }\n\n /**\n * Listen to event once and return as Promise\n */\n public once<T>(event: string): Promise<T> {\n if (!this.socket || this.socket.disconnected) {\n return Promise.reject(new Error('Socket not connected. Call connect() first.'));\n }\n\n return new Promise((resolve) => {\n this.socket.once(event, (data: T) => {\n resolve(data);\n });\n });\n }\n}\n\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { SocketService } from './socket.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport abstract class BaseStore<T> {\n protected dataSubject = new BehaviorSubject<T[]>([]);\n public data$: Observable<T[]> = this.dataSubject.asObservable();\n\n protected loadingSubject = new BehaviorSubject<boolean>(false);\n public loading$: Observable<boolean> = this.loadingSubject.asObservable();\n\n protected errorSubject = new BehaviorSubject<string | null>(null);\n public error$: Observable<string | null> = this.errorSubject.asObservable();\n\n constructor(\n protected socketService: SocketService\n ) {\n this.initialize().then(() => { });\n }\n\n private async initialize(): Promise<void> {\n await this.delayPreloadUntil();\n this.setupSocketSubscriptions();\n this.refresh();\n\n this.socketService.reconnect$.subscribe(async () => {\n await this.delayPreloadUntil();\n this.refresh();\n });\n }\n\n private refresh() {\n this.preload().then(x => this.dataSubject.next(x));\n }\n\n // Abstract methods to be implemented by specific stores\n public abstract preload(): Promise<T[]>;\n\n protected abstract setupSocketSubscriptions(): void;\n\n /**\n * Hook subclasses can override to delay initial preload and reconnect refreshes.\n * By default it resolves immediately. Subclasses that need to wait for authentication\n * can override this to await their auth observable (e.g. wait for authenticatedUser$).\n */\n protected async delayPreloadUntil(): Promise<void> {\n return Promise.resolve();\n }\n\n // Helper methods for stores\n protected updateItems(items: T[]): void {\n console.log('setting', items);\n\n this.dataSubject.next(items);\n }\n\n protected updateItem(updatedItem: Partial<T>): void {\n console.log('updating', updatedItem);\n\n const currentItems = this.dataSubject.value;\n const idField = 'id' as keyof T;\n const updatedItems = currentItems.map(item =>\n item[idField] === updatedItem[idField]\n ? { ...item, ...updatedItem }\n : item\n );\n this.dataSubject.next(updatedItems);\n }\n\n protected removeItem(id: any): void {\n console.log('removing', id);\n\n const currentItems = this.dataSubject.value;\n const idField = 'id' as keyof T;\n const filteredItems = currentItems.filter(item => item[idField] !== id);\n this.dataSubject.next(filteredItems);\n }\n\n protected setLoading(isLoading: boolean): void {\n this.loadingSubject.next(isLoading);\n }\n\n protected setError(error: string | null): void {\n this.errorSubject.next(error);\n }\n\n // Helper to subscribe to socket events with typesafety\n protected subscribeToEvent<R>(\n event: string,\n handler: (data: R) => void\n ): void {\n this.socketService.on<R>(event).subscribe(handler);\n }\n\n getAll(): T[] {\n return this.dataSubject.value;\n }\n\n getById(id: any): T | undefined {\n const field = 'id' as keyof T;\n return this.dataSubject.value.find(item => item[field] === id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStore } from '../base-store';\nimport { SocketService, SocketSuccessEvents } from '../socket.service';\n\n@Injectable()\nexport abstract class TableStore<T> extends BaseStore<T> {\n constructor(\n protected override socketService: SocketService\n ) {\n super(socketService);\n }\n protected override setupSocketSubscriptions(): void {\n this.subscribeToEvent<T>(\n SocketSuccessEvents.TABLE_CREATED,\n (table) => this.updateItem(table)\n );\n\n this.subscribeToEvent<T>(\n SocketSuccessEvents.TABLE_ASSIGNED,\n (table) => this.updateItem(table)\n );\n\n this.subscribeToEvent<T>(\n SocketSuccessEvents.TABLE_STATUS_UPDATED,\n (table) => this.updateItem(table)\n );\n\n this.subscribeToEvent<T>(\n SocketSuccessEvents.TABLE_RELEASED,\n (table) => this.updateItem(table)\n );\n }\n\n public abstract override preload(): Promise<T[]>;\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStore } from '../base-store';\nimport { SocketService, SocketSuccessEvents } from '../socket.service';\n\n@Injectable()\nexport abstract class CartStore<T> extends BaseStore<T> {\n constructor(\n protected override socketService: SocketService\n ) {\n super(socketService);\n }\n\n protected override setupSocketSubscriptions(): void {\n this.subscribeToEvent<T>(\n SocketSuccessEvents.CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS,\n (cart) => this.updateItem(cart)\n );\n\n this.subscribeToEvent<{ cartId: string, itemId: string }>(\n SocketSuccessEvents.CUSTOMER_REMOVE_FROM_CART_SUCCESS,\n (data) => {\n this.removeItem(data.cartId);\n }\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStore } from '../base-store';\nimport { SocketService, SocketSuccessEvents } from '../socket.service';\n\n@Injectable()\nexport abstract class CallWaiterStore<T> extends BaseStore<T> {\n constructor(\n protected override socketService: SocketService\n ) {\n super(socketService);\n }\n\n protected override setupSocketSubscriptions(): void {\n this.subscribeToEvent<T>(\n SocketSuccessEvents.WAITER_RECEIVE_CALL,\n (request) => this.updateItem(request)\n );\n }\n\n public abstract override preload(): Promise<T[]>;\n}\n","import { Injectable } from '@angular/core';\nimport { firstValueFrom, Observable } from 'rxjs';\nimport { BaseStore } from '../base-store';\nimport { SocketService, SocketSuccessEvents } from '../socket.service';\n\n@Injectable()\nexport abstract class CustomerLoginStore<T> extends BaseStore<T> {\n constructor(\n protected override socketService: SocketService\n ) {\n super(socketService);\n }\n\n protected override setupSocketSubscriptions(): void {\n this.subscribeToEvent<T[]>(\n SocketSuccessEvents.GET_PENDING_CUSTOMER_LOGINS_SUCCESS,\n (logins) => this.updateItems(logins)\n );\n }\n\n public async approveCustomerLogin<R>(customerId: string,\n tableId: string,\n customerAuthControllerApproveCustomerLogin: (payload: R)\n => Observable<R>\n ): Promise<void> {\n const approveData = {\n customerId,\n tableId\n } as R;\n\n try {\n await firstValueFrom(\n customerAuthControllerApproveCustomerLogin(approveData)\n );\n\n this.removeItem(customerId);\n } catch (error) {\n console.error(`Failed to approve customer login for ${customerId}:`, error);\n this.setError(`Failed to approve customer login`);\n }\n }\n}\n","import { EnvironmentProviders, importProvidersFrom } from '@angular/core';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\n\n/**\n * Provides all services needed for the realtime store to function.\n * Use this function in your standalone application's bootstrapApplication providers array.\n * \n * @example\n * ```typescript\n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideRealtimeStore()\n * ]\n * });\n * ```\n */\nexport function provideRealtimeStore(): EnvironmentProviders[] {\n return [\n provideHttpClient(withInterceptorsFromDi())\n ];\n}\n","import { Provider } from '@angular/core';\nimport { REALTIME_STORE_ENVIRONMENT, RealtimeStoreEnvironment } from '../environment';\n\nexport function provideRealtimeStoreEnvironment(environment: RealtimeStoreEnvironment): Provider {\n return {\n provide: REALTIME_STORE_ENVIRONMENT,\n useValue: environment\n };\n}","/*\n * Public API Surface of realtime-store\n */\n\nexport * from './lib/realtime-store.module';\nexport * from './lib/socket.service';\nexport * from './lib/socket.service';\nexport * from './lib/base-store';\nexport * from './lib/stores/table.store';\nexport * from './lib/stores/cart.store';\nexport * from './lib/stores/call-waiter.store';\nexport * from './lib/stores/customer-login.store';\nexport * from './lib/providers';\nexport * from './lib/environment';\nexport * from './lib/providers/realtime-store-environment.provider';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SocketService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serve-socket.mjs","sources":["../../../projects/serve-socket/src/lib/realtime-store.module.ts","../../../projects/serve-socket/src/lib/environment/realtime-store-environment.interface.ts","../../../projects/serve-socket/src/lib/environment/realtime-store-environment.token.ts","../../../projects/serve-socket/src/lib/socket.service.ts","../../../projects/serve-socket/src/lib/base-store.ts","../../../projects/serve-socket/src/lib/stores/table.store.ts","../../../projects/serve-socket/src/lib/stores/cart.store.ts","../../../projects/serve-socket/src/lib/stores/call-waiter.store.ts","../../../projects/serve-socket/src/lib/providers.ts","../../../projects/serve-socket/src/lib/providers/realtime-store-environment.provider.ts","../../../projects/serve-socket/src/public-api.ts","../../../projects/serve-socket/src/serve-socket.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n/**\n * @deprecated Use provideRealtimeStore() with standalone components instead\n */\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n HttpClientModule // Kept for backward compatibility with Angular <14\n ],\n exports: []\n})\nexport class RealtimeStoreModule { }\n","import { SocketSuccessEventKeys } from '../socket.service';\n\nexport interface RealtimeStoreEnvironment {\n apiUrl: string;\n}\n\nexport const defaultRealtimeStoreEnvironment: RealtimeStoreEnvironment = {\n apiUrl: `http://${window.location.hostname}:3030`,\n};","import { InjectionToken } from '@angular/core';\nimport { RealtimeStoreEnvironment } from './realtime-store-environment.interface';\n\nexport const REALTIME_STORE_ENVIRONMENT = new InjectionToken<RealtimeStoreEnvironment>('REALTIME_STORE_ENVIRONMENT');","import { Injectable, Inject } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { io, Socket } from 'socket.io-client';\nimport { REALTIME_STORE_ENVIRONMENT, RealtimeStoreEnvironment, defaultRealtimeStoreEnvironment } from './environment';\n\nexport enum SocketSuccessEventKeys {\n CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS = 'CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS',\n CUSTOMER_REMOVE_FROM_CART_SUCCESS = 'CUSTOMER_REMOVE_FROM_CART_SUCCESS',\n TABLE_JOIN_REQUEST_SENT_SUCCESS = 'TABLE_JOIN_REQUEST_SENT_SUCCESS',\n TABLE_CREATED_OR_UPDATED = 'TABLE_CREATED_OR_UPDATED',\n TABLE_RELEASED = 'TABLE_RELEASED',\n HOST_JOIN_REQUEST_APPROVED_SUCCESS = 'HOST_JOIN_REQUEST_APPROVED_SUCCESS',\n HOST_JOIN_REQUEST_DECLINED = 'HOST_JOIN_REQUEST_DECLINED',\n WAITER_CALL_CREATED_SUCCESS = 'WAITER_CALL_CREATED_SUCCESS',\n WAITER_CALL_ACKNOWLEDGED_SUCCESS = 'WAITER_CALL_ACKNOWLEDGED_SUCCESS',\n ERROR_MESSAGE_SUCCESS = 'ERROR_MESSAGE_SUCCESS',\n SUCCESS_MESSAGE_SUCCESS = 'SUCCESS_MESSAGE_SUCCESS',\n WARNING_MESSAGE_SUCCESS = 'WARNING_MESSAGE_SUCCESS'\n}\n\nexport const SocketSuccessEvents: Record<SocketSuccessEventKeys, string> = {} as Record<SocketSuccessEventKeys, string>;\n\n\n@Injectable()\nexport class SocketService {\n private socket!: Socket;\n private readonly url: string;\n private authToken?: string;\n private connectionKey?: string;\n private readonly eventSubjects = new Map<string, Subject<any>>();\n\n private readonly connectionStatusSubject = new BehaviorSubject<boolean>(false);\n public connectionStatus$ = this.connectionStatusSubject.asObservable();\n\n private readonly reconnectSubject = new Subject<void>();\n public reconnect$ = this.reconnectSubject.asObservable();\n\n constructor(\n @Inject(REALTIME_STORE_ENVIRONMENT) private readonly environment: RealtimeStoreEnvironment = defaultRealtimeStoreEnvironment\n ) {\n this.url = this.environment.apiUrl;\n }\n\n private setupSocketConnection(): void {\n const socketOptions: any = {\n transports: ['websocket'],\n autoConnect: true\n };\n\n // Add auth if token is available\n if (this.authToken) {\n socketOptions.auth = {\n token: this.authToken\n };\n }\n\n this.socket = io(this.url, socketOptions);\n\n this.socket.on('connect', () => {\n console.log('Socket connected');\n this.connectionStatusSubject.next(true);\n this.reestablishListeners();\n });\n\n this.socket.on('disconnect', () => {\n console.log('Socket disconnected');\n this.connectionStatusSubject.next(false);\n });\n\n this.socket.on('reconnect', () => {\n console.log('Socket reconnected');\n this.connectionStatusSubject.next(true);\n this.reconnectSubject.next();\n this.reestablishListeners();\n });\n\n this.socket.on('connect_error', (err) => {\n console.error('Connection error:', err.message);\n });\n\n this.socket.on('reconnect_error', (err) => {\n console.error('Reconnection error:', err.message);\n });\n }\n\n private reestablishListeners(): void {\n console.log('Re-establishing listeners for', this.eventSubjects.size, 'events');\n this.eventSubjects.forEach((subject, eventName) => {\n this.socket.on(eventName, (data) => {\n subject.next(data);\n });\n });\n }\n\n /**\n * Set authentication token for socket connection\n */\n public setAuthToken(token: string): void {\n this.authToken = token;\n }\n\n /**\n * Set connection key for socket connection\n */\n public setConnectionKey(key: string): void {\n this.connectionKey = key;\n }\n\n /**\n * Reset connection with new token\n */\n public resetWithNewToken(token?: string): void {\n if (token) {\n this.authToken = token;\n }\n\n if (this.socket) {\n this.socket.disconnect();\n }\n\n this.setupSocketConnection();\n }\n\n public connect(): Promise<void> {\n return new Promise((resolve) => {\n this.setupSocketConnection();\n\n if (this.socket.connected) {\n resolve();\n return;\n }\n\n // Wait for the connect event and verify connection\n this.socket.once('connect', () => {\n // Poll until socket.connected is true\n const checkConnection = () => {\n if (this.socket.connected) {\n resolve();\n } else {\n setTimeout(checkConnection, 10);\n }\n };\n checkConnection();\n });\n\n if (!this.socket.connected) {\n this.socket.connect();\n }\n });\n }\n\n public disconnect(): void {\n if (this.socket && this.socket.connected) {\n this.socket.disconnect();\n }\n }\n\n /**\n * Emit event with optional authentication headers\n */\n public emit(event: string, data?: any): void {\n if (!this.socket || this.socket.disconnected) {\n console.warn('Socket not connected. Call connect() first.');\n return;\n }\n\n // If auth token or connection key exists, wrap data with headers\n if (this.authToken || this.connectionKey) {\n const payload = {\n payload: data || {},\n headers: {\n ...(this.authToken && { _authToken: this.authToken }),\n ...(this.connectionKey && { connectionKey: this.connectionKey })\n }\n };\n this.socket.emit(event, payload);\n } else {\n this.socket.emit(event, data);\n }\n }\n\n /**\n * Listen to events with persistent subjects that survive reconnections\n */\n public on<T>(event: string): Observable<T> {\n if (!this.eventSubjects.has(event)) {\n const subject = new Subject<T>();\n this.eventSubjects.set(event, subject);\n\n // Set up initial listener if socket is connected\n if (this.socket && this.socket.connected) {\n this.socket.on(event, (data: T) => {\n subject.next(data);\n });\n }\n }\n\n return this.eventSubjects.get(event)!.asObservable();\n }\n\n /**\n * Listen to event once and return as Promise\n */\n public once<T>(event: string): Promise<T> {\n if (!this.socket || this.socket.disconnected) {\n return Promise.reject(new Error('Socket not connected. Call connect() first.'));\n }\n\n return new Promise((resolve) => {\n this.socket.once(event, (data: T) => {\n resolve(data);\n });\n });\n }\n}\n\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { SocketService } from './socket.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport abstract class BaseStore<T> {\n protected dataSubject = new BehaviorSubject<T[]>([]);\n public data$: Observable<T[]> = this.dataSubject.asObservable();\n\n protected loadingSubject = new BehaviorSubject<boolean>(false);\n public loading$: Observable<boolean> = this.loadingSubject.asObservable();\n\n protected errorSubject = new BehaviorSubject<string | null>(null);\n public error$: Observable<string | null> = this.errorSubject.asObservable();\n\n constructor(\n protected socketService: SocketService\n ) {\n this.initialize().then(() => { });\n }\n\n private async initialize(): Promise<void> {\n await this.delayPreloadUntil();\n this.setupSocketSubscriptions();\n this.refresh();\n\n this.socketService.reconnect$.subscribe(async () => {\n await this.delayPreloadUntil();\n this.refresh();\n });\n }\n\n private refresh() {\n this.preload().then(x => this.dataSubject.next(x));\n }\n\n // Abstract methods to be implemented by specific stores\n public abstract preload(): Promise<T[]>;\n\n protected abstract setupSocketSubscriptions(): void;\n\n /**\n * Hook subclasses can override to delay initial preload and reconnect refreshes.\n * By default it resolves immediately. Subclasses that need to wait for authentication\n * can override this to await their auth observable (e.g. wait for authenticatedUser$).\n */\n protected async delayPreloadUntil(): Promise<void> {\n return Promise.resolve();\n }\n\n // Helper methods for stores\n protected updateItems(items: T[]): void {\n console.log('setting', items);\n\n this.dataSubject.next(items);\n }\n\n protected updateItem(updatedItem: Partial<T>): void {\n console.log('updating', updatedItem);\n\n const currentItems = this.dataSubject.value;\n const idField = 'id' as keyof T;\n const updatedItems = currentItems.map(item =>\n item[idField] === updatedItem[idField]\n ? { ...item, ...updatedItem }\n : item\n );\n this.dataSubject.next(updatedItems);\n }\n\n protected removeItem(id: any): void {\n console.log('removing', id);\n\n const currentItems = this.dataSubject.value;\n const idField = 'id' as keyof T;\n const filteredItems = currentItems.filter(item => item[idField] !== id);\n this.dataSubject.next(filteredItems);\n }\n\n protected setLoading(isLoading: boolean): void {\n this.loadingSubject.next(isLoading);\n }\n\n protected setError(error: string | null): void {\n this.errorSubject.next(error);\n }\n\n // Helper to subscribe to socket events with typesafety\n protected subscribeToEvent<R>(\n event: string,\n handler: (data: R) => void\n ): void {\n this.socketService.on<R>(event).subscribe(handler);\n }\n\n getAll(): T[] {\n return this.dataSubject.value;\n }\n\n getById(id: any): T | undefined {\n const field = 'id' as keyof T;\n return this.dataSubject.value.find(item => item[field] === id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStore } from '../base-store';\nimport { SocketService, SocketSuccessEvents } from '../socket.service';\n\n@Injectable()\nexport abstract class TableStore<T> extends BaseStore<T> {\n constructor(\n protected override socketService: SocketService\n ) {\n super(socketService);\n }\n protected override setupSocketSubscriptions(): void {\n this.subscribeToEvent<T>(\n SocketSuccessEvents.TABLE_CREATED_OR_UPDATED,\n (table) => this.updateItem(table)\n );\n\n this.subscribeToEvent<T>(\n SocketSuccessEvents.TABLE_RELEASED,\n (table) => this.removeItem(table)\n );\n }\n\n public abstract override preload(): Promise<T[]>;\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStore } from '../base-store';\nimport { SocketService, SocketSuccessEvents } from '../socket.service';\n\n@Injectable()\nexport abstract class CartStore<T> extends BaseStore<T> {\n constructor(\n protected override socketService: SocketService\n ) {\n super(socketService);\n }\n\n protected override setupSocketSubscriptions(): void {\n this.subscribeToEvent<T>(\n SocketSuccessEvents.CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS,\n (cart) => this.updateItem(cart)\n );\n\n this.subscribeToEvent<{ cartId: string, itemId: string }>(\n SocketSuccessEvents.CUSTOMER_REMOVE_FROM_CART_SUCCESS,\n (data) => {\n this.removeItem(data.cartId);\n }\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStore } from '../base-store';\nimport { SocketService, SocketSuccessEvents } from '../socket.service';\n\n@Injectable()\nexport abstract class CallWaiterStore<T> extends BaseStore<T> {\n constructor(\n protected override socketService: SocketService\n ) {\n super(socketService);\n }\n\n protected override setupSocketSubscriptions(): void {\n this.subscribeToEvent<T>(\n SocketSuccessEvents.WAITER_CALL_CREATED_SUCCESS,\n (request) => this.updateItem(request)\n );\n }\n\n public abstract override preload(): Promise<T[]>;\n}\n","import { EnvironmentProviders, importProvidersFrom } from '@angular/core';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\n\n/**\n * Provides all services needed for the realtime store to function.\n * Use this function in your standalone application's bootstrapApplication providers array.\n * \n * @example\n * ```typescript\n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideRealtimeStore()\n * ]\n * });\n * ```\n */\nexport function provideRealtimeStore(): EnvironmentProviders[] {\n return [\n provideHttpClient(withInterceptorsFromDi())\n ];\n}\n","import { Provider } from '@angular/core';\nimport { REALTIME_STORE_ENVIRONMENT, RealtimeStoreEnvironment } from '../environment';\n\nexport function provideRealtimeStoreEnvironment(environment: RealtimeStoreEnvironment): Provider {\n return {\n provide: REALTIME_STORE_ENVIRONMENT,\n useValue: environment\n };\n}","/*\n * Public API Surface of realtime-store\n */\n\nexport * from './lib/realtime-store.module';\nexport * from './lib/socket.service';\nexport * from './lib/socket.service';\nexport * from './lib/base-store';\nexport * from './lib/stores/table.store';\nexport * from './lib/stores/cart.store';\nexport * from './lib/stores/call-waiter.store';\nexport * from './lib/providers';\nexport * from './lib/environment';\nexport * from './lib/providers/realtime-store-environment.provider';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SocketService"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -15,7 +15,6 @@ declare class RealtimeStoreModule {
|
|
|
15
15
|
|
|
16
16
|
interface RealtimeStoreEnvironment {
|
|
17
17
|
apiUrl: string;
|
|
18
|
-
socketEvents: Record<SocketSuccessEventKeys, string>;
|
|
19
18
|
}
|
|
20
19
|
declare const defaultRealtimeStoreEnvironment: RealtimeStoreEnvironment;
|
|
21
20
|
|
|
@@ -24,19 +23,16 @@ declare const REALTIME_STORE_ENVIRONMENT: InjectionToken<RealtimeStoreEnvironmen
|
|
|
24
23
|
declare enum SocketSuccessEventKeys {
|
|
25
24
|
CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS = "CUSTOMER_CREATE_OR_UPDATE_CART_SUCCESS",
|
|
26
25
|
CUSTOMER_REMOVE_FROM_CART_SUCCESS = "CUSTOMER_REMOVE_FROM_CART_SUCCESS",
|
|
27
|
-
CUSTOMER_GET_MENU_SUCCESS = "CUSTOMER_GET_MENU_SUCCESS",
|
|
28
26
|
TABLE_JOIN_REQUEST_SENT_SUCCESS = "TABLE_JOIN_REQUEST_SENT_SUCCESS",
|
|
29
|
-
|
|
27
|
+
TABLE_CREATED_OR_UPDATED = "TABLE_CREATED_OR_UPDATED",
|
|
28
|
+
TABLE_RELEASED = "TABLE_RELEASED",
|
|
29
|
+
HOST_JOIN_REQUEST_APPROVED_SUCCESS = "HOST_JOIN_REQUEST_APPROVED_SUCCESS",
|
|
30
|
+
HOST_JOIN_REQUEST_DECLINED = "HOST_JOIN_REQUEST_DECLINED",
|
|
31
|
+
WAITER_CALL_CREATED_SUCCESS = "WAITER_CALL_CREATED_SUCCESS",
|
|
32
|
+
WAITER_CALL_ACKNOWLEDGED_SUCCESS = "WAITER_CALL_ACKNOWLEDGED_SUCCESS",
|
|
30
33
|
ERROR_MESSAGE_SUCCESS = "ERROR_MESSAGE_SUCCESS",
|
|
31
34
|
SUCCESS_MESSAGE_SUCCESS = "SUCCESS_MESSAGE_SUCCESS",
|
|
32
|
-
WARNING_MESSAGE_SUCCESS = "WARNING_MESSAGE_SUCCESS"
|
|
33
|
-
GET_PENDING_CUSTOMER_LOGINS_SUCCESS = "GET_PENDING_CUSTOMER_LOGINS_SUCCESS",
|
|
34
|
-
CUSTOMER_UPDATE_IS_PAID_SUCCESS = "CUSTOMER_UPDATE_IS_PAID_SUCCESS",
|
|
35
|
-
TABLE_CREATED = "TABLE_CREATED",
|
|
36
|
-
TABLE_ASSIGNED = "TABLE_ASSIGNED",
|
|
37
|
-
TABLE_STATUS_UPDATED = "TABLE_STATUS_UPDATED",
|
|
38
|
-
TABLE_RELEASED = "TABLE_RELEASED",
|
|
39
|
-
WAITER_RECEIVE_CALL = "WAITER_RECEIVE_CALL"
|
|
35
|
+
WARNING_MESSAGE_SUCCESS = "WARNING_MESSAGE_SUCCESS"
|
|
40
36
|
}
|
|
41
37
|
declare const SocketSuccessEvents: Record<SocketSuccessEventKeys, string>;
|
|
42
38
|
declare class SocketService {
|
|
@@ -140,15 +136,6 @@ declare abstract class CallWaiterStore<T> extends BaseStore<T> {
|
|
|
140
136
|
static ɵprov: i0.ɵɵInjectableDeclaration<CallWaiterStore<any>>;
|
|
141
137
|
}
|
|
142
138
|
|
|
143
|
-
declare abstract class CustomerLoginStore<T> extends BaseStore<T> {
|
|
144
|
-
protected socketService: SocketService;
|
|
145
|
-
constructor(socketService: SocketService);
|
|
146
|
-
protected setupSocketSubscriptions(): void;
|
|
147
|
-
approveCustomerLogin<R>(customerId: string, tableId: string, customerAuthControllerApproveCustomerLogin: (payload: R) => Observable<R>): Promise<void>;
|
|
148
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CustomerLoginStore<any>, never>;
|
|
149
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<CustomerLoginStore<any>>;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
139
|
/**
|
|
153
140
|
* Provides all services needed for the realtime store to function.
|
|
154
141
|
* Use this function in your standalone application's bootstrapApplication providers array.
|
|
@@ -166,5 +153,5 @@ declare function provideRealtimeStore(): EnvironmentProviders[];
|
|
|
166
153
|
|
|
167
154
|
declare function provideRealtimeStoreEnvironment(environment: RealtimeStoreEnvironment): Provider;
|
|
168
155
|
|
|
169
|
-
export { BaseStore, CallWaiterStore, CartStore,
|
|
156
|
+
export { BaseStore, CallWaiterStore, CartStore, REALTIME_STORE_ENVIRONMENT, RealtimeStoreModule, SocketService, SocketSuccessEventKeys, SocketSuccessEvents, TableStore, defaultRealtimeStoreEnvironment, provideRealtimeStore, provideRealtimeStoreEnvironment };
|
|
170
157
|
export type { RealtimeStoreEnvironment };
|