fix(core): Update dependencies and fix service worker cache manager and task manager functionalities
This commit is contained in:
		
							
								
								
									
										128
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										128
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							| @@ -1,128 +0,0 @@ | ||||
| # gitzone ci_default | ||||
| image: registry.gitlab.com/hosttoday/ht-docker-node:npmci | ||||
|  | ||||
| cache: | ||||
|   paths: | ||||
|     - .npmci_cache/ | ||||
|   key: '$CI_BUILD_STAGE' | ||||
|  | ||||
| stages: | ||||
|   - security | ||||
|   - test | ||||
|   - release | ||||
|   - metadata | ||||
|  | ||||
| before_script: | ||||
|   - pnpm install -g pnpm | ||||
|   - pnpm install -g @shipzone/npmci | ||||
|   - npmci npm prepare | ||||
|  | ||||
| # ==================== | ||||
| # security stage | ||||
| # ==================== | ||||
| # ==================== | ||||
| # security stage | ||||
| # ==================== | ||||
| auditProductionDependencies: | ||||
|   image: registry.gitlab.com/hosttoday/ht-docker-node:npmci | ||||
|   stage: security | ||||
|   script: | ||||
|      - npmci command npm config set registry https://registry.npmjs.org | ||||
|      - npmci command pnpm audit --audit-level=high --prod | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|   allow_failure: true | ||||
|  | ||||
| auditDevDependencies: | ||||
|   image: registry.gitlab.com/hosttoday/ht-docker-node:npmci | ||||
|   stage: security | ||||
|   script: | ||||
|     - npmci command npm config set registry https://registry.npmjs.org | ||||
|     - npmci command pnpm audit --audit-level=high --dev | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|   allow_failure: true | ||||
|  | ||||
| # ==================== | ||||
| # test stage | ||||
| # ==================== | ||||
|  | ||||
| testStable: | ||||
|   stage: test | ||||
|   script: | ||||
|     - npmci node install stable | ||||
|     - npmci npm install | ||||
|     - npmci npm test | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|     - docker | ||||
|  | ||||
| testBuild: | ||||
|   stage: test | ||||
|   script: | ||||
|     - npmci node install stable | ||||
|     - npmci npm install | ||||
|     - npmci npm build | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|     - docker | ||||
|  | ||||
| release: | ||||
|   stage: release | ||||
|   script: | ||||
|     - npmci node install stable | ||||
|     - npmci npm publish | ||||
|   only: | ||||
|     - tags | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - notpriv | ||||
|  | ||||
| # ==================== | ||||
| # metadata stage | ||||
| # ==================== | ||||
| codequality: | ||||
|   stage: metadata | ||||
|   allow_failure: true | ||||
|   only: | ||||
|     - tags | ||||
|   script: | ||||
|     - npmci command npm install -g typescript | ||||
|     - npmci npm prepare | ||||
|     - npmci npm install | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - priv | ||||
|  | ||||
| trigger: | ||||
|   stage: metadata | ||||
|   script: | ||||
|     - npmci trigger | ||||
|   only: | ||||
|     - tags | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - notpriv | ||||
|  | ||||
| pages: | ||||
|   stage: metadata | ||||
|   script: | ||||
|     - npmci node install stable | ||||
|     - npmci npm install | ||||
|     - npmci command npm run buildDocs | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - notpriv | ||||
|   only: | ||||
|     - tags | ||||
|   artifacts: | ||||
|     expire_in: 1 week | ||||
|     paths: | ||||
|       - public | ||||
|   allow_failure: true | ||||
							
								
								
									
										154
									
								
								changelog.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								changelog.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,154 @@ | ||||
| # Changelog | ||||
|  | ||||
| ## 2024-08-27 - 3.0.51 - fix(core) | ||||
| Update dependencies and fix service worker cache manager and task manager functionalities | ||||
|  | ||||
| - Updated dependencies in package.json to their latest versions | ||||
| - Enhanced service worker cache manager to include additional scoped URLs | ||||
| - Fixed task manager to start the task manager and added update task functionality | ||||
| - Removed .gitlab-ci.yml from the repository as part of the cleanup | ||||
|  | ||||
| ## 2024-05-25 - 3.0.43 to 3.0.50 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.43 to 3.0.50 | ||||
|  | ||||
| ## 2024-05-23 - 3.0.37 to 3.0.42 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.37 to 3.0.42 | ||||
|  | ||||
| ## 2024-05-17 - 3.0.37 - Core | ||||
| Routine update and bug fix | ||||
|  | ||||
| - Updated core functionalities | ||||
|  | ||||
| ## 2024-05-14 - 3.0.33 to 3.0.36 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.33 to 3.0.36 | ||||
|  | ||||
| ## 2024-05-13 - 3.0.31 to 3.0.32 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.31 to 3.0.32 | ||||
|  | ||||
| ## 2024-05-11 - 3.0.29 to 3.0.31 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.29 to 3.0.31 | ||||
|  | ||||
| ## 2024-04-19 - 3.0.27 to 3.0.28 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.27 to 3.0.28 | ||||
|  | ||||
| ## 2024-04-14 - 3.0.27 - Documentation | ||||
| Updated Documentation | ||||
|  | ||||
| - Improved and updated documentation | ||||
|  | ||||
| ## 2024-03-01 - 3.0.25 to 3.0.26 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.25 to 3.0.26 | ||||
|  | ||||
| ## 2024-02-21 - 3.0.20 to 3.0.24 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.20 to 3.0.24 | ||||
|  | ||||
| ## 2024-01-19 - 3.0.19 to 3.0.20 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.19 to 3.0.20 | ||||
|  | ||||
| ## 2024-01-09 - 3.0.14 to 3.0.18 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.14 to 3.0.18 | ||||
|  | ||||
| ## 2024-01-08 - 3.0.11 to 3.0.13 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.11 to 3.0.13 | ||||
|  | ||||
| ## 2024-01-07 - 3.0.9 to 3.0.10 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.9 to 3.0.10 | ||||
|  | ||||
| ## 2023-11-06 - 3.0.8 to 3.0.9 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.8 to 3.0.9 | ||||
|  | ||||
| ## 2023-10-23 - 3.0.6 to 3.0.7 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.6 to 3.0.7 | ||||
|  | ||||
| ## 2023-10-20 - 3.0.5 to 3.0.6 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.5 to 3.0.6 | ||||
|  | ||||
| ## 2023-09-21 - 3.0.4 to 3.0.5 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.4 to 3.0.5 | ||||
|  | ||||
| ## 2023-08-06 - 3.0.2 to 3.0.3 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.2 to 3.0.3 | ||||
|  | ||||
| ## 2023-08-03 - 3.0.1 to 3.0.0 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 3.0.1 to 3.0.0 | ||||
|  | ||||
| ## 2023-08-03 - 2.0.65 - Core | ||||
| Breaking change in core update | ||||
|  | ||||
| - Introduced breaking changes updating core functionalities | ||||
|  | ||||
| ## 2023-07-02 - 2.0.59 to 2.0.64 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 2.0.59 to 2.0.64 | ||||
|  | ||||
| ## 2023-07-01 - 2.0.54 to 2.0.58 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 2.0.54 to 2.0.58 | ||||
|  | ||||
| ## 2023-06-12 - 2.0.53 - Core | ||||
| Routine update and bug fix | ||||
|  | ||||
| - Updated core functionalities | ||||
|  | ||||
| ## 2023-04-10 - 2.0.52 to 2.0.53 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 2.0.52 to 2.0.53 | ||||
|  | ||||
| ## 2023-04-04 - 2.0.49 to 2.0.51 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 2.0.49 to 2.0.51 | ||||
|  | ||||
| ## 2023-03-31 - 2.0.45 to 2.0.48 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 2.0.45 to 2.0.48 | ||||
|  | ||||
| ## 2023-03-30 - 2.0.37 to 2.0.44 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 2.0.37 to 2.0.44 | ||||
|  | ||||
| ## 2023-03-29 - 2.0.33 to 2.0.36 - Core | ||||
| Routine updates and bug fixes | ||||
|  | ||||
| - Updated core functionalities for better performance and stability in versions 2.0.33 to 2.0.36 | ||||
							
								
								
									
										36
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								package.json
									
									
									
									
									
								
							| @@ -57,51 +57,51 @@ | ||||
|   ], | ||||
|   "homepage": "https://github.com/pushrocks/easyserve", | ||||
|   "dependencies": { | ||||
|     "@api.global/typedrequest": "^3.0.25", | ||||
|     "@api.global/typedrequest": "^3.0.30", | ||||
|     "@api.global/typedrequest-interfaces": "^3.0.19", | ||||
|     "@api.global/typedsocket": "^3.0.1", | ||||
|     "@cloudflare/workers-types": "^4.20240512.0", | ||||
|     "@cloudflare/workers-types": "^4.20240821.1", | ||||
|     "@design.estate/dees-comms": "^1.0.27", | ||||
|     "@push.rocks/lik": "^6.0.15", | ||||
|     "@push.rocks/smartchok": "^1.0.34", | ||||
|     "@push.rocks/smartdelay": "^3.0.5", | ||||
|     "@push.rocks/smartenv": "^5.0.12", | ||||
|     "@push.rocks/smartfeed": "^1.0.11", | ||||
|     "@push.rocks/smartfile": "^11.0.15", | ||||
|     "@push.rocks/smartjson": "^5.0.19", | ||||
|     "@push.rocks/smartlog": "^3.0.6", | ||||
|     "@push.rocks/smartlog-destination-devtools": "^1.0.10", | ||||
|     "@push.rocks/smartlog-interfaces": "^3.0.0", | ||||
|     "@push.rocks/smartfile": "^11.0.21", | ||||
|     "@push.rocks/smartjson": "^5.0.20", | ||||
|     "@push.rocks/smartlog": "^3.0.7", | ||||
|     "@push.rocks/smartlog-destination-devtools": "^1.0.12", | ||||
|     "@push.rocks/smartlog-interfaces": "^3.0.2", | ||||
|     "@push.rocks/smartmanifest": "^2.0.2", | ||||
|     "@push.rocks/smartmatch": "^2.0.0", | ||||
|     "@push.rocks/smartmime": "^2.0.0", | ||||
|     "@push.rocks/smartmime": "^2.0.2", | ||||
|     "@push.rocks/smartntml": "^2.0.4", | ||||
|     "@push.rocks/smartopen": "^2.0.0", | ||||
|     "@push.rocks/smartpath": "^5.0.18", | ||||
|     "@push.rocks/smartpromise": "^4.0.2", | ||||
|     "@push.rocks/smartpromise": "^4.0.4", | ||||
|     "@push.rocks/smartrequest": "^2.0.22", | ||||
|     "@push.rocks/smartrx": "^3.0.7", | ||||
|     "@push.rocks/smartsitemap": "^2.0.3", | ||||
|     "@push.rocks/smartstream": "^3.0.38", | ||||
|     "@push.rocks/smarttime": "^4.0.6", | ||||
|     "@push.rocks/smartstream": "^3.0.44", | ||||
|     "@push.rocks/smarttime": "^4.0.8", | ||||
|     "@push.rocks/taskbuffer": "^3.1.7", | ||||
|     "@push.rocks/webrequest": "^3.0.37", | ||||
|     "@push.rocks/webstore": "^2.0.19", | ||||
|     "@tsclass/tsclass": "^4.0.54", | ||||
|     "@push.rocks/webstore": "^2.0.20", | ||||
|     "@tsclass/tsclass": "^4.1.2", | ||||
|     "@types/express": "^4.17.21", | ||||
|     "body-parser": "^1.20.2", | ||||
|     "cors": "^2.8.5", | ||||
|     "express": "^4.19.2", | ||||
|     "express-force-ssl": "^0.3.2", | ||||
|     "lit": "^3.1.3" | ||||
|     "lit": "^3.2.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@git.zone/tsbuild": "^2.1.80", | ||||
|     "@git.zone/tsbuild": "^2.1.84", | ||||
|     "@git.zone/tsbundle": "^2.0.15", | ||||
|     "@git.zone/tsrun": "^1.2.44", | ||||
|     "@git.zone/tsrun": "^1.2.49", | ||||
|     "@git.zone/tstest": "^1.0.90", | ||||
|     "@push.rocks/tapbundle": "^5.0.23", | ||||
|     "@types/node": "^20.12.11" | ||||
|     "@push.rocks/tapbundle": "^5.0.24", | ||||
|     "@types/node": "^22.5.0" | ||||
|   }, | ||||
|   "private": false, | ||||
|   "browserslist": [ | ||||
|   | ||||
							
								
								
									
										1063
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1063
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,8 +1,8 @@ | ||||
| /** | ||||
|  * autocreated commitinfo by @pushrocks/commitinfo | ||||
|  * autocreated commitinfo by @push.rocks/commitinfo | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@api.global/typedserver', | ||||
|   version: '3.0.50', | ||||
|   version: '3.0.51', | ||||
|   description: 'A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.' | ||||
| } | ||||
|   | ||||
| @@ -6,7 +6,13 @@ import { type IRoute as IExpressRoute } from 'express'; | ||||
|  | ||||
| export class Route { | ||||
|   public routeString: string; | ||||
|  | ||||
|   /** | ||||
|    * an object map of handlers | ||||
|    * Why multiple? Because GET, POST, PUT, DELETE, etc. can all have different handlers | ||||
|    */ | ||||
|   public handlerObjectMap = new plugins.lik.ObjectMap<Handler>(); | ||||
|    | ||||
|   public expressMiddlewareObjectMap = new plugins.lik.ObjectMap<any>(); | ||||
|   public expressRoute: IExpressRoute; // will be set to server route on server start | ||||
|   constructor(ServerArg: Server, routeStringArg: string) { | ||||
|   | ||||
| @@ -77,6 +77,11 @@ export class Server { | ||||
|     return route; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * starts the server and sets up the routes | ||||
|    * @param portArg | ||||
|    * @param doListen | ||||
|    */ | ||||
|   public async start(portArg: number | string = this.options.port, doListen = true) { | ||||
|     const done = plugins.smartpromise.defer(); | ||||
|  | ||||
|   | ||||
| @@ -75,12 +75,14 @@ export class CacheManager { | ||||
|     // A list of local resources we always want to be cached. | ||||
|     this.losslessServiceWorkerRef.serviceWindowRef.addEventListener('fetch', async (fetchEventArg: any) => { | ||||
|       // Lets block scopes we don't want to be passing through the serviceworker | ||||
|       const parsedUrl = new URL(fetchEventArg.request.url) | ||||
|       const originalRequest: Request = fetchEventArg.request; | ||||
|       const parsedUrl = new URL(originalRequest.url); | ||||
|       if ( | ||||
|         parsedUrl.hostname.includes('paddle.com') | ||||
|         || parsedUrl.hostname.includes('paypal.com') | ||||
|         || parsedUrl.hostname.includes('reception.lossless.one') | ||||
|         || parsedUrl.pathname.startsWith('/socket.io') | ||||
|         || originalRequest.url.startsWith('https://umami.') | ||||
|       ) { | ||||
|         logger.log('note',`serviceworker not active for ${parsedUrl.toString()}`); | ||||
|         return; | ||||
| @@ -89,16 +91,15 @@ export class CacheManager { | ||||
|       // lets continue for the rest | ||||
|       const done = plugins.smartpromise.defer<Response>(); | ||||
|       fetchEventArg.respondWith(done.promise); | ||||
|       const originalRequest: Request = fetchEventArg.request; | ||||
|    | ||||
|       if ( | ||||
|         (originalRequest.method === 'GET' && | ||||
|           (originalRequest.url.startsWith(this.losslessServiceWorkerRef.serviceWindowRef.location.origin) && | ||||
|             !originalRequest.url.includes('/api/') && | ||||
|             !originalRequest.url.includes('smartserve/reloadcheck'))) || | ||||
|         originalRequest.url.includes('https://assetbroker.lossless.one/public') || | ||||
|         originalRequest.url.includes('https://assetbroker.lossless.one/brandfiles') || | ||||
|         originalRequest.url.includes('https://assetbroker.lossless.one/websites') || | ||||
|         originalRequest.url.includes('https://assetbroker.') || | ||||
|         originalRequest.url.includes('https://assetbroker.') || | ||||
|         originalRequest.url.includes('https://assetbroker.') || | ||||
|         originalRequest.url.includes('https://unpkg.com') || | ||||
|         originalRequest.url.includes('https://fonts.googleapis.com') || | ||||
|         originalRequest.url.includes('https://fonts.gstatic.com') | ||||
|   | ||||
| @@ -7,9 +7,18 @@ import { ServiceWorker } from './classes.serviceworker.js'; | ||||
|  */ | ||||
| export class TaskManager { | ||||
|   public serviceworkerRef: ServiceWorker; | ||||
|   public taskmanager = new plugins.taskbuffer.TaskManager(); | ||||
|  | ||||
|   constructor(serviceWorkerRefArg: ServiceWorker) { | ||||
|     this.serviceworkerRef = serviceWorkerRefArg; | ||||
|     this.taskmanager.start(); | ||||
|   } | ||||
|  | ||||
|   public updateTask = new plugins.taskbuffer.Task({ | ||||
|     name: 'updateTask', | ||||
|     taskFunction: async () => { | ||||
|       await this.serviceworkerRef.cacheManager.cleanCaches('a new app version has been communicated by the server.'); | ||||
|     } | ||||
|   }) | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user