Compare commits

...

14 Commits

Author SHA1 Message Date
4fcfd0f52c 3.0.44 2024-05-25 01:28:56 +02:00
8f1464c97e fix(core): update 2024-05-25 01:28:56 +02:00
96a88911a7 3.0.43 2024-05-25 01:24:03 +02:00
1d5af30e78 fix(core): update 2024-05-25 01:24:02 +02:00
8fe5b6985c 3.0.42 2024-05-23 15:54:34 +02:00
72e02bd611 fix(core): update 2024-05-23 15:54:33 +02:00
fb7c1242a9 3.0.41 2024-05-23 15:28:42 +02:00
360766d8b4 fix(core): update 2024-05-23 15:28:41 +02:00
9968dda0fa 3.0.40 2024-05-23 15:21:47 +02:00
77b9e41bdb fix(core): update 2024-05-23 15:21:46 +02:00
8bea58b434 3.0.39 2024-05-23 14:54:26 +02:00
bd9397eb13 fix(core): update 2024-05-23 14:54:25 +02:00
6e7316d2b1 3.0.38 2024-05-23 14:51:29 +02:00
cba65bfb81 fix(core): update 2024-05-23 14:51:28 +02:00
20 changed files with 65 additions and 64 deletions

View File

@ -1,15 +1,15 @@
{
"name": "@api.global/typedserver",
"version": "3.0.37",
"version": "3.0.44",
"description": "A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.",
"type": "module",
"exports": {
".": "./dist_ts/index.js",
"./ts": "./dist_ts/index.js",
"./ts_edgeworker": "./dist_ts_edgeworker",
"./ts_web_inject": "./dist_ts_web_inject/index.js",
"./ts_web_serviceworker": "./dist_ts_web_serviceworker",
"./ts_web_serviceworker_client": "./dist_ts_web_serviceworker_client"
"./backend": "./dist_ts/index.js",
"./edgeworker": "./dist_ts_edgeworker/index.js",
"./web_inject": "./dist_ts_web_inject/index.js",
"./web_serviceworker": "./dist_ts_web_serviceworker/index.js",
"./web_serviceworker_client": "./dist_ts_web_serviceworker_client/index.js"
},
"scripts": {
"test": "npm run build && tstest test/",

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@api.global/typedserver',
version: '3.0.37',
version: '3.0.44',
description: 'A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.'
}

View File

@ -11,7 +11,7 @@ export interface ILoleServiceServerConstructorOptions {
}
// the main service server
export class ServiceServer {
export class UtilityServiceServer {
public options: ILoleServiceServerConstructorOptions;
public typedServer: TypedServer;

View File

@ -0,0 +1,2 @@
export * from './classes.serviceserver.js';
export * from './classes.websiteserver.js';

View File

@ -1,16 +1,16 @@
import * as plugins from './plugins.js';
import * as interfaces from './env.js';
import { logger } from './serviceworker.logging.js';
import { LosslessServiceWorker } from './serviceworker.classes.serviceworker.js';
import { logger } from './logging.js';
import { ServiceWorker } from './classes.serviceworker.js';
export class CacheManager {
public losslessServiceWorkerRef: LosslessServiceWorker;
public losslessServiceWorkerRef: ServiceWorker;
public usedCacheNames = {
runtimeCacheName: 'runtime'
};
constructor(losslessServiceWorkerRefArg: LosslessServiceWorker) {
constructor(losslessServiceWorkerRefArg: ServiceWorker) {
this.losslessServiceWorkerRef = losslessServiceWorkerRefArg;
this._setupCache();
}

View File

@ -1,13 +1,13 @@
import * as plugins from './plugins.js';
import { LosslessServiceWorker } from './serviceworker.classes.serviceworker.js';
import { ServiceWorker } from './classes.serviceworker.js';
export class NetworkManager {
public serviceWorkerRef: LosslessServiceWorker;
public serviceWorkerRef: ServiceWorker;
public webRequest: plugins.webrequest.WebRequest;
public previousState: string;
constructor(serviceWorkerRefArg: LosslessServiceWorker) {
constructor(serviceWorkerRefArg: ServiceWorker) {
this.serviceWorkerRef = serviceWorkerRefArg;
this.webRequest = new plugins.webrequest.WebRequest();
this.getConnection()?.addEventListener('change', () => {

View File

@ -2,18 +2,18 @@ import * as plugins from './plugins.js';
import * as interfaces from './env.js';
// imports
import { CacheManager } from './serviceworker.classes.cachemanager.js';
import { CacheManager } from './classes.cachemanager.js';
import { Deferred } from '@push.rocks/smartpromise';
import { logger } from './serviceworker.logging.js';
import { logger } from './logging.js';
// imported classes
import { UpdateManager } from './serviceworker.classes.updatemanager.js';
import { NetworkManager } from './serviceworker.classes.networkmanager.js';
import { TaskManager } from './serviceworker.classes.taskmanager.js';
import { UpdateManager } from './classes.updatemanager.js';
import { NetworkManager } from './classes.networkmanager.js';
import { TaskManager } from './classes.taskmanager.js';
import { ServiceworkerBackend } from './classes.backend.js';
export class LosslessServiceWorker {
export class ServiceWorker {
// STATIC
// INSTANCE

View File

@ -0,0 +1,15 @@
import * as plugins from './plugins.js';
import { ServiceWorker } from './classes.serviceworker.js';
/**
* Taskmanager
* should use times allocated by browser
*/
export class TaskManager {
public serviceworkerRef: ServiceWorker;
constructor(serviceWorkerRefArg: ServiceWorker) {
this.serviceworkerRef = serviceWorkerRefArg;
}
}

View File

@ -1,16 +1,16 @@
import * as plugins from './plugins.js';
import * as interfaces from '../dist_ts_interfaces/index.js';
import { LosslessServiceWorker } from './serviceworker.classes.serviceworker.js';
import { logger } from './serviceworker.logging.js';
import { CacheManager } from './serviceworker.classes.cachemanager.js';
import { ServiceWorker } from './classes.serviceworker.js';
import { logger } from './logging.js';
import { CacheManager } from './classes.cachemanager.js';
export class UpdateManager {
public lastUpdateCheck: number = 0;
public lastVersionInfo: interfaces.serviceworker.IRequest_Serviceworker_Backend_VersionInfo['response'];
public serviceworkerRef: LosslessServiceWorker;
public serviceworkerRef: ServiceWorker;
constructor(serviceWorkerRefArg: LosslessServiceWorker) {
constructor(serviceWorkerRefArg: ServiceWorker) {
this.serviceworkerRef = serviceWorkerRefArg;
}

View File

@ -2,7 +2,6 @@
import * as env from './env.js';
declare var self: env.ServiceWindow;
import { LosslessServiceWorker } from './serviceworker.classes.serviceworker.js';
const losslessServiceWorkerInstance = new LosslessServiceWorker(self);
import { ServiceWorker } from './classes.serviceworker.js';
const sw = new ServiceWorker(self);

View File

@ -1,15 +0,0 @@
import * as plugins from './plugins.js';
import { LosslessServiceWorker } from './serviceworker.classes.serviceworker.js';
/**
* Taskmanager
* should use times allocated by browser
*/
export class TaskManager {
public serviceworkerRef: LosslessServiceWorker;
constructor(serviceWorkerRefArg: LosslessServiceWorker) {
this.serviceworkerRef = serviceWorkerRefArg;
}
}

View File

@ -1,6 +1,6 @@
import * as plugins from './lele-serviceworker.plugins.js';
import * as plugins from './plugins.js';
import * as interfaces from '../dist_ts_interfaces/index.js';
import { logger } from './serviceworker.logging.js';
import { logger } from './logging.js';
/**
* MessageManager implements two ways of serviceworker communication

View File

@ -1,9 +1,9 @@
import * as plugins from './lele-serviceworker.plugins.js';
import { LosslessServiceworker } from './lele-serviceworker.classes.serviceworker.js';
import * as plugins from './plugins.js';
import { ServiceworkerClient } from './classes.serviceworkerclient.js';
export class GlobalSW {
losslessSw: LosslessServiceworker;
constructor(losslessServiceWorkerInstanceArg: LosslessServiceworker) {
losslessSw: ServiceworkerClient;
constructor(losslessServiceWorkerInstanceArg: ServiceworkerClient) {
this.losslessSw = losslessServiceWorkerInstanceArg;
globalThis.globalSw = this;
};

View File

@ -1,6 +1,6 @@
import * as plugins from './lele-serviceworker.plugins.js';
import * as plugins from './plugins.js';
import * as interfaces from '../dist_ts_interfaces/index.js';
import { logger } from "./serviceworker.logging.js";
import { logger } from "./logging.js";
export class NotificationManager {

View File

@ -1,13 +1,13 @@
import * as plugins from './lele-serviceworker.plugins.js';
import * as plugins from './plugins.js';
import * as interfaces from '../dist_ts_interfaces/index.js';
import { logger } from "./serviceworker.logging.js";
import { NotificationManager } from './lele-serviceworker.classes.notificationmanager.js';
import { ActionManager } from './lele-serviceworker.classes.actionmanager.js';
import { GlobalSW } from './lele-serviceworker.classes.globalsw.js'
import { logger } from "./logging.js";
import { NotificationManager } from './classes.notificationmanager.js';
import { ActionManager } from './classes.actionmanager.js';
import { GlobalSW } from './classes.globalsw.js'
export class LosslessServiceworker {
export class ServiceworkerClient {
// STATIC
public static async createServiceWorker(): Promise<LosslessServiceworker> {
public static async createServiceWorker(): Promise<ServiceworkerClient> {
if ('serviceWorker' in navigator) {
try {
logger.log('info', 'trying to register serviceworker');
@ -31,7 +31,7 @@ export class LosslessServiceworker {
await navigator.serviceWorker.ready;
logger.log('ok', 'serviceworker is ready!');
await this.waitForController();
const losslessServiceWorkerInstance = new LosslessServiceworker();
const losslessServiceWorkerInstance = new ServiceworkerClient();
return losslessServiceWorkerInstance;
} catch (err) {
// sentry integration here

View File

@ -8,17 +8,17 @@ export type {
// imports
// ====================================
import { logger } from './serviceworker.logging.js';
import { logger } from './logging.js';
logger.log('note', 'mainthread console initialized!');
import { LosslessServiceworker } from './lele-serviceworker.classes.serviceworker.js';
import { ServiceworkerClient } from './classes.serviceworkerclient.js';
export type {
LosslessServiceworker
ServiceworkerClient as LosslessServiceworker
}
export const getServiceWorker = async () => {
const losslessServiceWorkerInstance = await LosslessServiceworker.createServiceWorker(); // lets setup the service worker
const losslessServiceWorkerInstance = await ServiceworkerClient.createServiceWorker(); // lets setup the service worker
logger.log('ok', 'service worker ready!'); // and wait for it to be ready
return losslessServiceWorkerInstance;
};