fix(core): update

This commit is contained in:
2024-05-11 12:51:20 +02:00
parent fedb37ee16
commit d225a9584f
42 changed files with 1435 additions and 522 deletions

9
ts_interfaces/index.ts Normal file
View File

@ -0,0 +1,9 @@
export * from './requestmodifier.js';
export * from './responsemodifier.js';
export * from './typedrequests.js';
import * as serviceworker from './serviceworker.js';
export {
serviceworker,
}

5
ts_interfaces/plugins.ts Normal file
View File

@ -0,0 +1,5 @@
import * as typedrequestInterfaces from '@api.global/typedrequest-interfaces';
export {
typedrequestInterfaces,
}

View File

@ -0,0 +1,11 @@
export type TRequestModifier = <T>(responseArg: {
headers: { [header: string]: string | string[] | undefined };
path: string;
body: string;
travelData?: T;
}) => Promise<{
headers: { [header: string]: string | string[] | undefined };
path: string;
body: string;
travelData?: T;
}>;

View File

@ -0,0 +1,11 @@
export type TResponseModifier = <T>(responseArg: {
headers: { [header: string]: number | string | string[] | undefined };
path: string;
responseContent: Buffer;
travelData?: T;
}) => Promise<{
headers: { [header: string]: number | string | string[] | undefined };
path: string;
responseContent: Buffer;
travelData?: T;
}>;

View File

@ -0,0 +1,127 @@
import * as plugins from './plugins.js';
export interface CacheStorage {
keys: () => Promise<string[]>;
match: any;
open: any;
delete: any;
}
export declare var caches: CacheStorage;
// =============================
// Interfaces for communication
// =============================
export interface IMessage_Serviceworker_Client_UpdateInfo
extends plugins.typedrequestInterfaces.implementsTR<
plugins.typedrequestInterfaces.ITypedRequest,
IMessage_Serviceworker_Client_UpdateInfo
> {
method: 'serviceworker_newVersion';
request: {
appVersion: string;
appHash: string;
};
response: {};
}
export interface IMessage_Serviceworker_Client_RequestReload
extends plugins.typedrequestInterfaces.implementsTR<
plugins.typedrequestInterfaces.ITypedRequest,
IMessage_Serviceworker_Client_RequestReload
> {
method: 'serviceworker_requestReload';
request: {};
response: {};
}
export interface IRequest_Serviceworker_Backend_VersionInfo
extends plugins.typedrequestInterfaces.implementsTR<
plugins.typedrequestInterfaces.ITypedRequest,
IRequest_Serviceworker_Backend_VersionInfo
> {
method: 'serviceworker_versionInfo';
request: {};
response: {
appHash: string;
appSemVer: string;
};
}
// ===============
// web
// ===============
/**
* purges the service workers cache
*/
export interface IRequest_PurgeServiceWorkerCache extends plugins.typedrequestInterfaces.implementsTR<
plugins.typedrequestInterfaces.ITypedRequest,
IRequest_PurgeServiceWorkerCache
> {
method: 'purgeServiceWorkerCache';
request: {};
response: {};
}
/**
* updates the info in all connected tabs
*/
export interface IMessage_Serviceworker_Client_UpdateInfo
extends plugins.typedrequestInterfaces.implementsTR<
plugins.typedrequestInterfaces.ITypedRequest,
IMessage_Serviceworker_Client_UpdateInfo
> {
method: 'serviceworker_newVersion';
request: {
appVersion: string;
appHash: string;
};
response: {};
}
/**
* requests all clients to reload
*/
export interface IMessage_Serviceworker_Client_RequestReload
extends plugins.typedrequestInterfaces.implementsTR<
plugins.typedrequestInterfaces.ITypedRequest,
IMessage_Serviceworker_Client_RequestReload
> {
method: 'serviceworker_requestReload';
request: {};
response: {};
}
/**
* updates version infos
*/
export interface IRequest_Serviceworker_Backend_VersionInfo
extends plugins.typedrequestInterfaces.implementsTR<
plugins.typedrequestInterfaces.ITypedRequest,
IRequest_Serviceworker_Backend_VersionInfo
> {
method: 'serviceworker_versionInfo';
request: {};
response: {
appHash: string;
appSemVer: string;
};
}
/**
* ensures a stable connection between clients and the serviceworker
*/
export interface IRequest_Client_Serviceworker_ConnectionPolling
extends plugins.typedrequestInterfaces.implementsTR<
plugins.typedrequestInterfaces.ITypedRequest,
IRequest_Client_Serviceworker_ConnectionPolling
> {
method: 'broadcastConnectionPolling',
request: {
tabId: string;
},
response: {
serviceworkerId: string;
}
}

View File

@ -0,0 +1,26 @@
// not using the global plugins here to support better bundling...
import * as typedrequestInterfaces from '@api.global/typedrequest-interfaces';
export interface IReq_PushLatestServerChangeTime
extends typedrequestInterfaces.implementsTR<
typedrequestInterfaces.ITypedRequest,
IReq_PushLatestServerChangeTime
> {
method: 'pushLatestServerChangeTime';
request: {
time: number;
};
response: {};
}
export interface IReq_GetLatestServerChangeTime
extends typedrequestInterfaces.implementsTR<
typedrequestInterfaces.ITypedRequest,
IReq_GetLatestServerChangeTime
> {
method: 'getLatestServerChangeTime';
request: {};
response: {
time: number;
};
}