@sebbo2002/fitness-first-ical-proxy 5.0.0-develop.5 → 5.0.0-develop.7
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/dist/bin/start.cjs +1 -1
- package/dist/bin/start.cjs.map +1 -1
- package/dist/bin/start.js +1 -1
- package/dist/bin/start.js.map +1 -1
- package/package.json +7 -7
package/dist/bin/start.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var y=Object.create;var d=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var S=(t,
|
|
2
|
+
"use strict";var y=Object.create;var d=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var S=(s,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of R(t))!T.call(s,r)&&r!==e&&d(s,r,{get:()=>t[r],enumerable:!(n=C(t,r))||n.enumerable});return s};var f=(s,t,e)=>(e=s!=null?y(w(s)):{},S(t||!s||!s.__esModule?d(e,"default",{value:s,enumerable:!0}):e,s));var p=(s,t,e)=>new Promise((n,r)=>{var l=i=>{try{a(e.next(i))}catch(o){r(o)}},m=i=>{try{a(e.throw(i))}catch(o){r(o)}},a=i=>i.done?n(i.value):Promise.resolve(i.value).then(l,m);a((e=e.apply(s,t)).next())});var g=f(require("express"),1);var h=f(require("ical-generator"),1);var c=class{static request(t){return p(this,null,function*(){let e=yield this.getCourses(t);return this.createCalendar(e)})}static getCourses(t){return p(this,null,function*(){let e="https://www.fitnessfirst.de/magicline/api/class-shedule/"+this.paramToString(t.club_id)+"/"+this.paramToString(t.category_id)+"/"+this.paramToString(t.class_id)+"/"+this.paramToString(t.daytime_id);return(yield(yield fetch(e)).json()).classes})}static createCalendar(t){let e=(0,h.default)({name:"Fitness First",ttl:21600,prodId:{company:"sebbo.net",product:"fitness-first-ical-proxy"}});return Object.entries(t).forEach(([n,r])=>{let l=n.split("_")[0];(Array.isArray(r)?r:Object.values(r)).forEach(m=>{m.forEach(a=>{let i=new Date(l+"T"+a.time.from+"Z"),o=new Date(l+"T"+a.time.to+"Z");e.createEvent({id:a.id,start:i,end:o,floating:!0,summary:a.title,location:a.club,url:a.url})})})}),e}static paramToString(t){return typeof t=="string"?t:typeof t=="undefined"||t.length===0?"all":t.map(e=>e.toString()).join("-")}};var u=class s{static run(){new s}constructor(){this.app=(0,g.default)(),this.setupRoutes(),this.server=this.app.listen(process.env.PORT||8080),process.on("SIGINT",()=>this.stop()),process.on("SIGTERM",()=>this.stop())}setupRoutes(){this.app.get("/ping",(t,e)=>{e.send("pong")}),this.app.get("/ical",(t,e)=>{c.request(t.query).then(n=>{e.writeHead(200,{"Content-Type":"text/calendar; charset=utf-8","Content-Disposition":'attachment; filename="calendar.ics"'}),e.end(n.toString())})})}stop(){return p(this,null,function*(){yield new Promise(t=>this.server.close(t)),process.exit()})}};u.run();
|
|
3
3
|
//# sourceMappingURL=start.cjs.map
|
package/dist/bin/start.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bin/start.ts","../../src/lib/index.ts"],"sourcesContent":["#!/usr/bin/env node\n'use strict';\n\nimport express, {Express} from 'express';\nimport {Server} from 'http';\nimport FitnessFirstIcalProxy from '../lib/index.js';\n\n\nclass AppServer {\n static run() {\n new AppServer();\n }\n\n private app: Express;\n private server: Server;\n\n constructor() {\n this.app = express();\n\n this.setupRoutes();\n this.server = this.app.listen(process.env.PORT || 8080);\n\n process.on('SIGINT', () => this.stop());\n process.on('SIGTERM', () => this.stop());\n }\n\n setupRoutes() {\n this.app.get('/ping', (req, res) => {\n res.send('pong');\n });\n\n this.app.get('/ical', (req, res) => {\n FitnessFirstIcalProxy.request(req.query)\n .then(calendar => calendar.
|
|
1
|
+
{"version":3,"sources":["../../src/bin/start.ts","../../src/lib/index.ts"],"sourcesContent":["#!/usr/bin/env node\n'use strict';\n\nimport express, {Express} from 'express';\nimport {Server} from 'http';\nimport FitnessFirstIcalProxy from '../lib/index.js';\n\n\nclass AppServer {\n static run() {\n new AppServer();\n }\n\n private app: Express;\n private server: Server;\n\n constructor() {\n this.app = express();\n\n this.setupRoutes();\n this.server = this.app.listen(process.env.PORT || 8080);\n\n process.on('SIGINT', () => this.stop());\n process.on('SIGTERM', () => this.stop());\n }\n\n setupRoutes() {\n this.app.get('/ping', (req, res) => {\n res.send('pong');\n });\n\n this.app.get('/ical', (req, res) => {\n FitnessFirstIcalProxy.request(req.query)\n .then(calendar => {\n res.writeHead(200, {\n 'Content-Type': 'text/calendar; charset=utf-8',\n 'Content-Disposition': 'attachment; filename=\"calendar.ics\"'\n });\n\n res.end(calendar.toString());\n });\n });\n }\n\n async stop() {\n await new Promise(cb => this.server.close(cb));\n\n process.exit();\n }\n}\n\nAppServer.run();\n","import { RequestParams, ResponseClasses, ResponseCourse, ResponseData } from './types.js';\nimport type { ICalCalendar } from 'ical-generator';\nimport ical from 'ical-generator';\n\nexport default class FitnessFirstIcalProxy {\n static async request(params: RequestParams): Promise<ICalCalendar> {\n const courses = await this.getCourses(params);\n return this.createCalendar(courses);\n }\n\n static async getCourses(params: RequestParams): Promise<ResponseClasses> {\n const url = 'https://www.fitnessfirst.de/magicline/api/class-shedule/' +\n this.paramToString(params.club_id) + '/' +\n this.paramToString(params.category_id) + '/' +\n this.paramToString(params.class_id) + '/' +\n this.paramToString(params.daytime_id);\n\n const res = await fetch(url);\n const response = await res.json() as ResponseData;\n return response.classes;\n }\n\n static createCalendar(courses: ResponseClasses): ICalCalendar {\n const cal = ical({\n name: 'Fitness First',\n ttl: 60 * 60 * 6,\n prodId: {\n company: 'sebbo.net',\n product: 'fitness-first-ical-proxy'\n }\n });\n\n Object.entries(courses).forEach(([key, classes]) => {\n const day = key.split('_')[0];\n\n (Array.isArray(classes) ? classes : Object.values(classes)).forEach(courses => {\n courses.forEach((course: ResponseCourse) => {\n const start = new Date(day + 'T' + course.time.from + 'Z');\n const end = new Date(day + 'T' + course.time.to + 'Z');\n\n cal.createEvent({\n id: course.id,\n start,\n end,\n floating: true,\n summary: course.title,\n location: course.club,\n url: course.url\n });\n });\n });\n });\n\n return cal;\n }\n\n static paramToString(value: string | Array<string | number> | undefined): string {\n if (typeof value === 'string') {\n return value;\n }\n if(typeof value === 'undefined' || value.length === 0) {\n return 'all';\n }\n\n return value\n .map(v => v.toString())\n .join('-');\n }\n}\n"],"mappings":";qqBAGA,IAAAA,EAA+B,wBCD/B,IAAAC,EAAiB,+BAEjB,IAAqBC,EAArB,KAA2C,CACvC,OAAa,QAAQC,EAA8C,QAAAC,EAAA,sBAC/D,IAAMC,EAAU,MAAM,KAAK,WAAWF,CAAM,EAC5C,OAAO,KAAK,eAAeE,CAAO,CACtC,GAEA,OAAa,WAAWF,EAAiD,QAAAC,EAAA,sBACrE,IAAME,EAAM,2DACR,KAAK,cAAcH,EAAO,OAAO,EAAI,IACrC,KAAK,cAAcA,EAAO,WAAW,EAAI,IACzC,KAAK,cAAcA,EAAO,QAAQ,EAAI,IACtC,KAAK,cAAcA,EAAO,UAAU,EAIxC,OADiB,MADL,MAAM,MAAMG,CAAG,GACA,KAAK,GAChB,OACpB,GAEA,OAAO,eAAeD,EAAwC,CAC1D,IAAME,KAAM,EAAAC,SAAK,CACb,KAAM,gBACN,IAAK,MACL,OAAQ,CACJ,QAAS,YACT,QAAS,0BACb,CACJ,CAAC,EAED,cAAO,QAAQH,CAAO,EAAE,QAAQ,CAAC,CAACI,EAAKC,CAAO,IAAM,CAChD,IAAMC,EAAMF,EAAI,MAAM,GAAG,EAAE,CAAC,GAE3B,MAAM,QAAQC,CAAO,EAAIA,EAAU,OAAO,OAAOA,CAAO,GAAG,QAAQL,GAAW,CAC3EA,EAAQ,QAASO,GAA2B,CACxC,IAAMC,EAAQ,IAAI,KAAKF,EAAM,IAAMC,EAAO,KAAK,KAAO,GAAG,EACnDE,EAAM,IAAI,KAAKH,EAAM,IAAMC,EAAO,KAAK,GAAK,GAAG,EAErDL,EAAI,YAAY,CACZ,GAAIK,EAAO,GACX,MAAAC,EACA,IAAAC,EACA,SAAU,GACV,QAASF,EAAO,MAChB,SAAUA,EAAO,KACjB,IAAKA,EAAO,GAChB,CAAC,CACL,CAAC,CACL,CAAC,CACL,CAAC,EAEML,CACX,CAEA,OAAO,cAAcQ,EAA4D,CAC7E,OAAI,OAAOA,GAAU,SACVA,EAER,OAAOA,GAAU,aAAeA,EAAM,SAAW,EACzC,MAGJA,EACF,IAAIC,GAAKA,EAAE,SAAS,CAAC,EACrB,KAAK,GAAG,CACjB,CACJ,ED5DA,IAAMC,EAAN,MAAMC,CAAU,CACZ,OAAO,KAAM,CACT,IAAIA,CACR,CAKA,aAAc,CACV,KAAK,OAAM,EAAAC,SAAQ,EAEnB,KAAK,YAAY,EACjB,KAAK,OAAS,KAAK,IAAI,OAAO,QAAQ,IAAI,MAAQ,IAAI,EAEtD,QAAQ,GAAG,SAAU,IAAM,KAAK,KAAK,CAAC,EACtC,QAAQ,GAAG,UAAW,IAAM,KAAK,KAAK,CAAC,CAC3C,CAEA,aAAc,CACV,KAAK,IAAI,IAAI,QAAS,CAACC,EAAKC,IAAQ,CAChCA,EAAI,KAAK,MAAM,CACnB,CAAC,EAED,KAAK,IAAI,IAAI,QAAS,CAACD,EAAKC,IAAQ,CAChCC,EAAsB,QAAQF,EAAI,KAAK,EAClC,KAAKG,GAAY,CACdF,EAAI,UAAU,IAAK,CACf,eAAgB,+BAChB,sBAAuB,qCAC3B,CAAC,EAEDA,EAAI,IAAIE,EAAS,SAAS,CAAC,CAC/B,CAAC,CACT,CAAC,CACL,CAEM,MAAO,QAAAC,EAAA,sBACT,MAAM,IAAI,QAAQC,GAAM,KAAK,OAAO,MAAMA,CAAE,CAAC,EAE7C,QAAQ,KAAK,CACjB,GACJ,EAEAR,EAAU,IAAI","names":["import_express","import_ical_generator","FitnessFirstIcalProxy","params","__async","courses","url","cal","ical","key","classes","day","course","start","end","value","v","AppServer","_AppServer","express","req","res","FitnessFirstIcalProxy","calendar","__async","cb"]}
|
package/dist/bin/start.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as
|
|
2
|
+
import{a as r,b as i}from"../chunk-R3IXB24A.js";import p from"express";var t=class n{static run(){new n}constructor(){this.app=p(),this.setupRoutes(),this.server=this.app.listen(process.env.PORT||8080),process.on("SIGINT",()=>this.stop()),process.on("SIGTERM",()=>this.stop())}setupRoutes(){this.app.get("/ping",(e,s)=>{s.send("pong")}),this.app.get("/ical",(e,s)=>{i.request(e.query).then(o=>{s.writeHead(200,{"Content-Type":"text/calendar; charset=utf-8","Content-Disposition":'attachment; filename="calendar.ics"'}),s.end(o.toString())})})}stop(){return r(this,null,function*(){yield new Promise(e=>this.server.close(e)),process.exit()})}};t.run();
|
|
3
3
|
//# sourceMappingURL=start.js.map
|
package/dist/bin/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bin/start.ts"],"sourcesContent":["#!/usr/bin/env node\n'use strict';\n\nimport express, {Express} from 'express';\nimport {Server} from 'http';\nimport FitnessFirstIcalProxy from '../lib/index.js';\n\n\nclass AppServer {\n static run() {\n new AppServer();\n }\n\n private app: Express;\n private server: Server;\n\n constructor() {\n this.app = express();\n\n this.setupRoutes();\n this.server = this.app.listen(process.env.PORT || 8080);\n\n process.on('SIGINT', () => this.stop());\n process.on('SIGTERM', () => this.stop());\n }\n\n setupRoutes() {\n this.app.get('/ping', (req, res) => {\n res.send('pong');\n });\n\n this.app.get('/ical', (req, res) => {\n FitnessFirstIcalProxy.request(req.query)\n .then(calendar => calendar.
|
|
1
|
+
{"version":3,"sources":["../../src/bin/start.ts"],"sourcesContent":["#!/usr/bin/env node\n'use strict';\n\nimport express, {Express} from 'express';\nimport {Server} from 'http';\nimport FitnessFirstIcalProxy from '../lib/index.js';\n\n\nclass AppServer {\n static run() {\n new AppServer();\n }\n\n private app: Express;\n private server: Server;\n\n constructor() {\n this.app = express();\n\n this.setupRoutes();\n this.server = this.app.listen(process.env.PORT || 8080);\n\n process.on('SIGINT', () => this.stop());\n process.on('SIGTERM', () => this.stop());\n }\n\n setupRoutes() {\n this.app.get('/ping', (req, res) => {\n res.send('pong');\n });\n\n this.app.get('/ical', (req, res) => {\n FitnessFirstIcalProxy.request(req.query)\n .then(calendar => {\n res.writeHead(200, {\n 'Content-Type': 'text/calendar; charset=utf-8',\n 'Content-Disposition': 'attachment; filename=\"calendar.ics\"'\n });\n\n res.end(calendar.toString());\n });\n });\n }\n\n async stop() {\n await new Promise(cb => this.server.close(cb));\n\n process.exit();\n }\n}\n\nAppServer.run();\n"],"mappings":";gDAGA,OAAOA,MAAwB,UAK/B,IAAMC,EAAN,MAAMC,CAAU,CACZ,OAAO,KAAM,CACT,IAAIA,CACR,CAKA,aAAc,CACV,KAAK,IAAMC,EAAQ,EAEnB,KAAK,YAAY,EACjB,KAAK,OAAS,KAAK,IAAI,OAAO,QAAQ,IAAI,MAAQ,IAAI,EAEtD,QAAQ,GAAG,SAAU,IAAM,KAAK,KAAK,CAAC,EACtC,QAAQ,GAAG,UAAW,IAAM,KAAK,KAAK,CAAC,CAC3C,CAEA,aAAc,CACV,KAAK,IAAI,IAAI,QAAS,CAACC,EAAKC,IAAQ,CAChCA,EAAI,KAAK,MAAM,CACnB,CAAC,EAED,KAAK,IAAI,IAAI,QAAS,CAACD,EAAKC,IAAQ,CAChCC,EAAsB,QAAQF,EAAI,KAAK,EAClC,KAAKG,GAAY,CACdF,EAAI,UAAU,IAAK,CACf,eAAgB,+BAChB,sBAAuB,qCAC3B,CAAC,EAEDA,EAAI,IAAIE,EAAS,SAAS,CAAC,CAC/B,CAAC,CACT,CAAC,CACL,CAEM,MAAO,QAAAC,EAAA,sBACT,MAAM,IAAI,QAAQC,GAAM,KAAK,OAAO,MAAMA,CAAE,CAAC,EAE7C,QAAQ,KAAK,CACjB,GACJ,EAEAR,EAAU,IAAI","names":["express","AppServer","_AppServer","express","req","res","FitnessFirstIcalProxy","calendar","__async","cb"]}
|
package/package.json
CHANGED
|
@@ -8,23 +8,23 @@
|
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"express": "^4.18.2",
|
|
11
|
-
"ical-generator": "^
|
|
11
|
+
"ical-generator": "^6.0.0"
|
|
12
12
|
},
|
|
13
13
|
"description": "Small proxy that provides the course schedule from fitnessfirst.de/kurse as an iCal calendar.",
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@qiwi/semantic-release-gh-pages-plugin": "^5.2.10",
|
|
16
|
-
"@sebbo2002/semantic-release-docker": "^4.0.
|
|
16
|
+
"@sebbo2002/semantic-release-docker": "^4.0.2",
|
|
17
17
|
"@semantic-release/changelog": "^6.0.3",
|
|
18
18
|
"@semantic-release/exec": "^6.0.3",
|
|
19
19
|
"@semantic-release/git": "^10.0.1",
|
|
20
|
-
"@semantic-release/npm": "^11.0.
|
|
20
|
+
"@semantic-release/npm": "^11.0.1",
|
|
21
21
|
"@types/express": "^4.17.20",
|
|
22
|
-
"@types/mocha": "^10.0.
|
|
22
|
+
"@types/mocha": "^10.0.4",
|
|
23
23
|
"@types/node": "^20.8.9",
|
|
24
24
|
"@typescript-eslint/eslint-plugin": "^6.8.0",
|
|
25
25
|
"@typescript-eslint/parser": "^6.8.0",
|
|
26
26
|
"c8": "^8.0.1",
|
|
27
|
-
"eslint": "^8.
|
|
27
|
+
"eslint": "^8.52.0",
|
|
28
28
|
"eslint-plugin-jsonc": "^2.10.0",
|
|
29
29
|
"esm": "^3.2.25",
|
|
30
30
|
"license-checker": "^25.0.1",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"source-map-support": "^0.5.21",
|
|
36
36
|
"ts-node": "^10.9.1",
|
|
37
37
|
"tsup": "^7.2.0",
|
|
38
|
-
"typedoc": "^0.25.
|
|
38
|
+
"typedoc": "^0.25.3",
|
|
39
39
|
"typescript": "^5.2.2"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"test": "mocha"
|
|
69
69
|
},
|
|
70
70
|
"type": "module",
|
|
71
|
-
"version": "5.0.0-develop.
|
|
71
|
+
"version": "5.0.0-develop.7"
|
|
72
72
|
}
|