diff --git a/.gitignore b/.gitignore index d35cb196..3e1e195f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ # dependencies /node_modules -.env \ No newline at end of file +.env +.scribe \ No newline at end of file diff --git a/app.js b/app.js index 4acb16d4..cef749b4 100644 --- a/app.js +++ b/app.js @@ -22,6 +22,7 @@ app.use('/api/auth', authRoutes); app.use('/api/organization', orgRoutes); app.use('/api/lunch', lunchRoutes); app.use('/api/withdrawal', withDrawalRoute); +app.use('/public/docs', express.static('./public/docs')); // Middlewares app.use(errorHandlerMiddleware); diff --git a/public/docs/collection.json b/public/docs/collection.json new file mode 100644 index 00000000..f705d4b6 --- /dev/null +++ b/public/docs/collection.json @@ -0,0 +1,1143 @@ +{ + "variable": [ + { + "id": "baseUrl", + "key": "baseUrl", + "type": "string", + "name": "string", + "value": "team-lightning.onrender.com" + } + ], + "info": { + "name": "Free Lunch Documentation", + "description": "", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_postman_id": "a75867f9-6a54-4f60-933c-00368af68214" + }, + "item": [ + { + "name": "Endpoints", + "item": [ + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/users/me", + "query": [], + "raw": "https://{{baseUrl}}/api/users/me" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [ + { + "header": [ + { + "key": "content-security-policy", + "value": "default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests" + }, + { + "key": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "key": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "key": "origin-agent-cluster", + "value": "?1" + }, + { + "key": "referrer-policy", + "value": "no-referrer" + }, + { + "key": "strict-transport-security", + "value": "max-age=15552000; includeSubDomains" + }, + { + "key": "x-content-type-options", + "value": "nosniff" + }, + { + "key": "x-dns-prefetch-control", + "value": "off" + }, + { + "key": "x-download-options", + "value": "noopen" + }, + { + "key": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "key": "x-permitted-cross-domain-policies", + "value": "none" + }, + { + "key": "x-xss-protection", + "value": "0" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + } + ], + "code": 401, + "body": "{\n \"success\": false,\n \"message\": \"Token is missing\",\n \"data\": null\n}", + "name": "" + } + ] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/users/:id", + "query": [], + "raw": "https://{{baseUrl}}/api/users/:id", + "variable": [ + { + "id": "id", + "key": "id", + "value": "vel", + "description": "The ID of the api/user." + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [ + { + "header": [ + { + "key": "content-security-policy", + "value": "default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests" + }, + { + "key": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "key": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "key": "origin-agent-cluster", + "value": "?1" + }, + { + "key": "referrer-policy", + "value": "no-referrer" + }, + { + "key": "strict-transport-security", + "value": "max-age=15552000; includeSubDomains" + }, + { + "key": "x-content-type-options", + "value": "nosniff" + }, + { + "key": "x-dns-prefetch-control", + "value": "off" + }, + { + "key": "x-download-options", + "value": "noopen" + }, + { + "key": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "key": "x-permitted-cross-domain-policies", + "value": "none" + }, + { + "key": "x-xss-protection", + "value": "0" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + } + ], + "code": 401, + "body": "{\n \"success\": false,\n \"message\": \"Token is missing\",\n \"data\": null\n}", + "name": "" + } + ] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/users", + "query": [], + "raw": "https://{{baseUrl}}/api/users" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [ + { + "header": [ + { + "key": "content-security-policy", + "value": "default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests" + }, + { + "key": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "key": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "key": "origin-agent-cluster", + "value": "?1" + }, + { + "key": "referrer-policy", + "value": "no-referrer" + }, + { + "key": "strict-transport-security", + "value": "max-age=15552000; includeSubDomains" + }, + { + "key": "x-content-type-options", + "value": "nosniff" + }, + { + "key": "x-dns-prefetch-control", + "value": "off" + }, + { + "key": "x-download-options", + "value": "noopen" + }, + { + "key": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "key": "x-permitted-cross-domain-policies", + "value": "none" + }, + { + "key": "x-xss-protection", + "value": "0" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + } + ], + "code": 401, + "body": "{\n \"success\": false,\n \"message\": \"Token is missing\",\n \"data\": null\n}", + "name": "" + } + ] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/users/:id", + "query": [], + "raw": "https://{{baseUrl}}/api/users/:id", + "variable": [ + { + "id": "id", + "key": "id", + "value": "quasi", + "description": "The ID of the api/user." + } + ] + }, + "method": "PUT", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/users/update-password", + "query": [], + "raw": "https://{{baseUrl}}/api/users/update-password" + }, + "method": "PATCH", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/users/:id", + "query": [], + "raw": "https://{{baseUrl}}/api/users/:id", + "variable": [ + { + "id": "id", + "key": "id", + "value": "eius", + "description": "The ID of the api/user." + } + ] + }, + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/auth/signup", + "query": [], + "raw": "https://{{baseUrl}}/api/auth/signup" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/auth/login", + "query": [], + "raw": "https://{{baseUrl}}/api/auth/login" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/auth/signup/org-user", + "query": [], + "raw": "https://{{baseUrl}}/api/auth/signup/org-user" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/auth/forgot-password", + "query": [], + "raw": "https://{{baseUrl}}/api/auth/forgot-password" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/auth/reset-password", + "query": [], + "raw": "https://{{baseUrl}}/api/auth/reset-password" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/auth/logout", + "query": [], + "raw": "https://{{baseUrl}}/api/auth/logout" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/organization/confirm-invite", + "query": [], + "raw": "https://{{baseUrl}}/api/organization/confirm-invite" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/organization/create", + "query": [], + "raw": "https://{{baseUrl}}/api/organization/create" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/organization/send-invite", + "query": [], + "raw": "https://{{baseUrl}}/api/organization/send-invite" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/organization/update-info", + "query": [], + "raw": "https://{{baseUrl}}/api/organization/update-info" + }, + "method": "PUT", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/lunch/:userId", + "query": [], + "raw": "https://{{baseUrl}}/api/lunch/:userId", + "variable": [ + { + "id": "userId", + "key": "userId", + "value": "consequuntur", + "description": "The ID of the user." + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [ + { + "header": [ + { + "key": "content-security-policy", + "value": "default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests" + }, + { + "key": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "key": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "key": "origin-agent-cluster", + "value": "?1" + }, + { + "key": "referrer-policy", + "value": "no-referrer" + }, + { + "key": "strict-transport-security", + "value": "max-age=15552000; includeSubDomains" + }, + { + "key": "x-content-type-options", + "value": "nosniff" + }, + { + "key": "x-dns-prefetch-control", + "value": "off" + }, + { + "key": "x-download-options", + "value": "noopen" + }, + { + "key": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "key": "x-permitted-cross-domain-policies", + "value": "none" + }, + { + "key": "x-xss-protection", + "value": "0" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + } + ], + "code": 401, + "body": "{\n \"success\": false,\n \"message\": \"Token is missing\",\n \"data\": null\n}", + "name": "" + } + ] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/lunch", + "query": [], + "raw": "https://{{baseUrl}}/api/lunch" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [ + { + "header": [ + { + "key": "content-security-policy", + "value": "default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests" + }, + { + "key": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "key": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "key": "origin-agent-cluster", + "value": "?1" + }, + { + "key": "referrer-policy", + "value": "no-referrer" + }, + { + "key": "strict-transport-security", + "value": "max-age=15552000; includeSubDomains" + }, + { + "key": "x-content-type-options", + "value": "nosniff" + }, + { + "key": "x-dns-prefetch-control", + "value": "off" + }, + { + "key": "x-download-options", + "value": "noopen" + }, + { + "key": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "key": "x-permitted-cross-domain-policies", + "value": "none" + }, + { + "key": "x-xss-protection", + "value": "0" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + } + ], + "code": 401, + "body": "{\n \"success\": false,\n \"message\": \"Token is missing\",\n \"data\": null\n}", + "name": "" + } + ] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/lunch/send", + "query": [], + "raw": "https://{{baseUrl}}/api/lunch/send" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/lunch/redeem", + "query": [], + "raw": "https://{{baseUrl}}/api/lunch/redeem" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/lunch/:lunchId", + "query": [], + "raw": "https://{{baseUrl}}/api/lunch/:lunchId", + "variable": [ + { + "id": "lunchId", + "key": "lunchId", + "value": "repellendus", + "description": "The ID of the lunch." + } + ] + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [ + { + "header": [ + { + "key": "content-security-policy", + "value": "default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests" + }, + { + "key": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "key": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "key": "origin-agent-cluster", + "value": "?1" + }, + { + "key": "referrer-policy", + "value": "no-referrer" + }, + { + "key": "strict-transport-security", + "value": "max-age=15552000; includeSubDomains" + }, + { + "key": "x-content-type-options", + "value": "nosniff" + }, + { + "key": "x-dns-prefetch-control", + "value": "off" + }, + { + "key": "x-download-options", + "value": "noopen" + }, + { + "key": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "key": "x-permitted-cross-domain-policies", + "value": "none" + }, + { + "key": "x-xss-protection", + "value": "0" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + } + ], + "code": 401, + "body": "{\n \"success\": false,\n \"message\": \"Token is missing\",\n \"data\": null\n}", + "name": "" + } + ] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/withdrawal/request", + "query": [], + "raw": "https://{{baseUrl}}/api/withdrawal/request" + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [] + }, + { + "request": { + "url": { + "protocol": "https", + "host": "{{baseUrl}}", + "path": "api/withdrawal/all", + "query": [], + "raw": "https://{{baseUrl}}/api/withdrawal/all" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": null, + "description": null, + "auth": { + "type": "noauth" + } + }, + "response": [ + { + "header": [ + { + "key": "content-security-policy", + "value": "default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests" + }, + { + "key": "cross-origin-opener-policy", + "value": "same-origin" + }, + { + "key": "cross-origin-resource-policy", + "value": "same-origin" + }, + { + "key": "origin-agent-cluster", + "value": "?1" + }, + { + "key": "referrer-policy", + "value": "no-referrer" + }, + { + "key": "strict-transport-security", + "value": "max-age=15552000; includeSubDomains" + }, + { + "key": "x-content-type-options", + "value": "nosniff" + }, + { + "key": "x-dns-prefetch-control", + "value": "off" + }, + { + "key": "x-download-options", + "value": "noopen" + }, + { + "key": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "key": "x-permitted-cross-domain-policies", + "value": "none" + }, + { + "key": "x-xss-protection", + "value": "0" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + } + ], + "code": 401, + "body": "{\n \"success\": false,\n \"message\": \"Token is missing\",\n \"data\": null\n}", + "name": "" + } + ] + } + ] + } + ], + "auth": { + "type": "apikey", + "apikey": [ + { + "key": "in", + "value": "header", + "type": "string" + }, + { + "key": "key", + "value": "Authorization", + "type": "string" + } + ] + } +} diff --git a/public/docs/css/theme-default.print.css b/public/docs/css/theme-default.print.css new file mode 100644 index 00000000..0e1f323f --- /dev/null +++ b/public/docs/css/theme-default.print.css @@ -0,0 +1,393 @@ +/* Copied from https://github.com/slatedocs/slate/blob/c4b4c0b8f83e891ca9fab6bbe9a1a88d5fe41292/stylesheets/print.css and unminified */ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100% +} + +body { + margin: 0 +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block +} + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline +} + +audio:not([controls]) { + display: none; + height: 0 +} + +[hidden], +template { + display: none +} + +a { + background-color: transparent +} + +a:active, +a:hover { + outline: 0 +} + +abbr[title] { + border-bottom: 1px dotted +} + +b, +strong { + font-weight: bold +} + +dfn { + font-style: italic +} + +h1 { + font-size: 2em; + margin: 0.67em 0 +} + +mark { + background: #ff0; + color: #000 +} + +small { + font-size: 80% +} + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sup { + top: -0.5em +} + +sub { + bottom: -0.25em +} + +img { + border: 0 +} + +svg:not(:root) { + overflow: hidden +} + +figure { + margin: 1em 40px +} + +hr { + box-sizing: content-box; + height: 0 +} + +pre { + overflow: auto +} + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em +} + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0 +} + +button { + overflow: visible +} + +button, +select { + text-transform: none +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer +} + +button[disabled], +html input[disabled] { + cursor: default +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0 +} + +input { + line-height: normal +} + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0 +} + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto +} + +input[type="search"] { + -webkit-appearance: textfield; + box-sizing: content-box +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none +} + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em +} + +legend { + border: 0; + padding: 0 +} + +textarea { + overflow: auto +} + +optgroup { + font-weight: bold +} + +table { + border-collapse: collapse; + border-spacing: 0 +} + +td, +th { + padding: 0 +} + +.content h1, +.content h2, +.content h3, +.content h4, +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 14px +} + +.content h1, +.content h2, +.content h3, +.content h4 { + font-weight: bold +} + +.content pre, +.content code { + font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif; + font-size: 12px; + line-height: 1.5 +} + +.content pre, +.content code { + word-break: break-all; + -webkit-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto +} + +@font-face { + font-family: 'slate'; + src: url(../fonts/slate.eot?-syv14m); + src: url(../fonts/slate.eot?#iefix-syv14m) format("embedded-opentype"), url(../fonts/slate.woff2?-syv14m) format("woff2"), url(../fonts/slate.woff?-syv14m) format("woff"), url(../fonts/slate.ttf?-syv14m) format("truetype"), url(../fonts/slate.svg?-syv14m#slate) format("svg"); + font-weight: normal; + font-style: normal +} + +.content aside.warning:before, +.content aside.notice:before, +.content aside.success:before { + font-family: 'slate'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1 +} + +.content aside.warning:before { + content: "\e600" +} + +.content aside.notice:before { + content: "\e602" +} + +.content aside.success:before { + content: "\e606" +} + +.tocify, +.toc-footer, +.lang-selector, +.search, +#nav-button { + display: none +} + +.tocify-wrapper>img { + margin: 0 auto; + display: block +} + +.content { + font-size: 12px +} + +.content pre, +.content code { + border: 1px solid #999; + border-radius: 5px; + font-size: 0.8em +} + +.content pre code { + border: 0 +} + +.content pre { + padding: 1.3em +} + +.content code { + padding: 0.2em +} + +.content table { + border: 1px solid #999 +} + +.content table tr { + border-bottom: 1px solid #999 +} + +.content table td, +.content table th { + padding: 0.7em +} + +.content p { + line-height: 1.5 +} + +.content a { + text-decoration: none; + color: #000 +} + +.content h1 { + font-size: 2.5em; + padding-top: 0.5em; + padding-bottom: 0.5em; + margin-top: 1em; + margin-bottom: 21px; + border: 2px solid #ccc; + border-width: 2px 0; + text-align: center +} + +.content h2 { + font-size: 1.8em; + margin-top: 2em; + border-top: 2px solid #ccc; + padding-top: 0.8em +} + +.content h1+h2, +.content h1+div+h2 { + border-top: none; + padding-top: 0; + margin-top: 0 +} + +.content h3, +.content h4 { + font-size: 0.8em; + margin-top: 1.5em; + margin-bottom: 0.8em; + text-transform: uppercase +} + +.content h5, +.content h6 { + text-transform: uppercase +} + +.content aside { + padding: 1em; + border: 1px solid #ccc; + border-radius: 5px; + margin-top: 1.5em; + margin-bottom: 1.5em; + line-height: 1.6 +} + +.content aside:before { + vertical-align: middle; + padding-right: 0.5em; + font-size: 14px +} \ No newline at end of file diff --git a/public/docs/css/theme-default.style.css b/public/docs/css/theme-default.style.css new file mode 100644 index 00000000..75970f11 --- /dev/null +++ b/public/docs/css/theme-default.style.css @@ -0,0 +1,1052 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +html { + font-family: 'PT Sans', sans-serif; + font-size: 1.2em; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100% +} + +body { + margin: 0 +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section { + display: block +} + +summary { + cursor: pointer; +} + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline +} + +audio:not([controls]) { + display: none; + height: 0 +} + +[hidden], +template { + display: none +} + +a { + background-color: transparent +} + +a:active, +a:hover { + outline: 0 +} + +abbr[title] { + border-bottom: 1px dotted +} + +b, +strong { + font-weight: 700 +} + +dfn { + font-style: italic +} + +h1 { + font-size: 2em; + margin: .67em 0 +} + +mark { + background: #ff0; + color: #000 +} + +small { + font-size: 80% +} + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sup { + top: -.5em +} + +sub { + bottom: -.25em +} + +img { + border: 0 +} + +svg:not(:root) { + overflow: hidden +} + +figure { + margin: 1em 40px +} + +hr { + box-sizing: content-box; + height: 0 +} + +pre { + overflow: auto +} + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em +} + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0 +} + +button { + overflow: visible +} + +button, +select { + text-transform: none +} + +button, +html input[type=button], +input[type=reset], +input[type=submit] { + -webkit-appearance: button; + cursor: pointer +} + +button[disabled], +html input[disabled] { + cursor: default +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0 +} + +input { + line-height: normal +} + +input[type=checkbox], +input[type=radio] { + box-sizing: border-box; + padding: 0 +} + +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + height: auto +} + +input[type=search] { + -webkit-appearance: textfield; + box-sizing: content-box +} + +input[type=search]::-webkit-search-cancel-button, +input[type=search]::-webkit-search-decoration { + -webkit-appearance: none +} + +fieldset { + border: 1px solid silver; + margin: 0 2px; + padding: .35em .625em .75em +} + +legend { + border: 0; + padding: 0 +} + +textarea { + overflow: auto +} + +optgroup { + font-weight: 700 +} + +table { + border-collapse: collapse; + border-spacing: 0 +} + +td, +th { + padding: 0 +} + +body, +html { + font-family: 'PT Sans', Helvetica Neue, Helvetica, Arial, Microsoft Yahei, 微软雅黑, STXihei, 华文细黑, sans-serif; + font-size: 16px; +} + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + font-family: 'PT Sans', Helvetica Neue, Helvetica, Arial, Microsoft Yahei, 微软雅黑, STXihei, 华文细黑, sans-serif; +} + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + font-weight: 700 +} + +.content code, +.content pre { + font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; + font-size: 14px; + line-height: 1.5 +} + +.content code { + word-break: break-all; + word-break: break-word; + -webkit-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto +} + +.content aside.notice:before, +.content aside.success:before, +.content aside.warning:before, +.tocify-wrapper>.search:before { + font-family: 'PT Sans', sans-serif; + speak: none; + font-style: normal; + font-variant: normal; + text-transform: none; + line-height: 1 +} + +.content aside.warning:before { + content: "✋" +} + +.content aside.notice:before { + content: "ℹ" +} + +.content aside.success:before { + content: "✅" +} + +.tocify-wrapper>.search:before { + content: "🔎" +} + +.highlight .c, +.highlight .c1, +.highlight .cm, +.highlight .cs { + color: #909090 +} + +.highlight, +.highlight .w { + background-color: #292929 +} + +.hljs { + display: block; + overflow-x: auto; + padding: .5em; + background: #23241f +} + +.hljs, +.hljs-subst, +.hljs-tag { + color: #f8f8f2 +} + +.hljs-emphasis, +.hljs-strong { + color: #a8a8a2 +} + +.hljs-bullet, +.hljs-link, +.hljs-literal, +.hljs-number, +.hljs-quote, +.hljs-regexp { + color: #ae81ff +} + +.hljs-code, +.hljs-section, +.hljs-selector-class, +.hljs-title { + color: #a6e22e +} + +.hljs-strong { + font-weight: 700 +} + +.hljs-emphasis { + font-style: italic +} + +.hljs-attr, +.hljs-keyword, +.hljs-name, +.hljs-selector-tag { + color: #f92672 +} + +.hljs-attribute, +.hljs-symbol { + color: #66d9ef +} + +.hljs-class .hljs-title, +.hljs-params { + color: #f8f8f2 +} + +.hljs-addition, +.hljs-built_in, +.hljs-builtin-name, +.hljs-selector-attr, +.hljs-selector-id, +.hljs-selector-pseudo, +.hljs-string, +.hljs-template-variable, +.hljs-type, +.hljs-variable { + color: #e6db74 +} + +.hljs-comment, +.hljs-deletion, +.hljs-meta { + color: #75715e +} + +body, +html { + color: #333; + padding: 0; + margin: 0; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + background-color: whitesmoke; + height: 100%; + -webkit-text-size-adjust: none +} + +#toc>ul>li>a>span { + float: right; + background-color: #2484ff; + border-radius: 40px; + width: 20px +} + +.tocify-wrapper { + transition: left .3s ease-in-out; + overflow-y: auto; + overflow-x: hidden; + position: fixed; + z-index: 30; + top: 0; + left: 0; + bottom: 0; + width: 230px; + background-color: #393939; + font-size: 13px; + font-weight: 700 +} + +.tocify-wrapper .lang-selector { + display: none +} + +.tocify-wrapper .lang-selector a { + padding-top: .5em; + padding-bottom: .5em +} + +.tocify-wrapper>img { + display: block +} + +.tocify-wrapper>.search { + position: relative +} + +.tocify-wrapper>.search input { + background: #393939; + border-width: 0 0 1px; + border-color: #666; + padding: 6px 0 6px 20px; + box-sizing: border-box; + margin: 10px 15px; + width: 200px; + outline: none; + color: #fff; + border-radius: 0 +} + +.tocify-wrapper>.search:before { + position: absolute; + top: 17px; + left: 15px; + color: #fff +} + +.tocify-wrapper img+.tocify { + margin-top: 20px +} + +.tocify-wrapper .search-results { + margin-top: 0; + box-sizing: border-box; + height: 0; + overflow-y: auto; + overflow-x: hidden; + transition-property: height, margin; + transition-duration: .18s; + transition-timing-function: ease-in-out; + background: linear-gradient(180deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(0deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(180deg, #000, transparent 1.5px), linear-gradient(0deg, #939393, hsla(0, 0%, 58%, 0) 1.5px), #262626 +} + +.tocify-wrapper .search-results.visible { + height: 30%; + margin-bottom: 1em +} + +.tocify-wrapper .search-results li { + margin: 1em 15px; + line-height: 1 +} + +.tocify-wrapper .search-results a { + color: #fff; + text-decoration: none +} + +.tocify-wrapper .search-results a:hover { + text-decoration: underline +} + +.tocify-wrapper .toc-footer li, +.tocify-wrapper .tocify-item>a { + padding: 0 15px; + display: block; + overflow-x: hidden; + white-space: nowrap; + text-overflow: ellipsis +} + +.tocify-wrapper li, +.tocify-wrapper ul { + list-style: none; + margin: 0; + padding: 0; + line-height: 28px +} + +.tocify-wrapper li { + color: #fff; + transition-property: background; + transition-timing-function: linear; + transition-duration: .23s +} + +.tocify-wrapper .tocify-focus { + box-shadow: 0 1px 0 #000; + background-color: #2467af; + color: #fff +} + +.tocify-wrapper .tocify-subheader { + display: none; + background-color: #262626; + font-weight: 500; + background: linear-gradient(180deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(0deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(180deg, #000, transparent 1.5px), linear-gradient(0deg, #939393, hsla(0, 0%, 58%, 0) 1.5px), #262626 +} + +.tocify-wrapper .tocify-subheader .tocify-item>a { + padding-left: 25px; + font-size: 12px +} + +.tocify-wrapper .tocify-subheader>li:last-child { + box-shadow: none +} + +.tocify-wrapper .toc-footer { + padding: 1em 0; + margin-top: 1em; + border-top: 1px dashed #666 +} + +.tocify-wrapper .toc-footer a, +.tocify-wrapper .toc-footer li { + color: #fff; + text-decoration: none +} + +.tocify-wrapper .toc-footer a:hover { + text-decoration: underline +} + +.tocify-wrapper .toc-footer li { + font-size: .8em; + line-height: 1.7; + text-decoration: none +} + +#nav-button { + padding: 0 1.5em 5em 0; + display: none; + position: fixed; + top: 0; + left: 0; + z-index: 100; + color: #000; + text-decoration: none; + font-weight: 700; + opacity: .7; + line-height: 16px; + transition: left .3s ease-in-out +} + +#nav-button span { + display: block; + padding: 6px; + background-color: rgba(234, 242, 246, .7); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: rotate(-90deg) translate(-100%); + transform: rotate(-90deg) translate(-100%); + border-radius: 0 0 0 5px +} + +#nav-button img { + height: 16px; + vertical-align: bottom +} + +#nav-button:hover { + opacity: 1 +} + +#nav-button.open { + left: 230px +} + +.page-wrapper { + margin-left: 230px; + position: relative; + z-index: 10; + background-color: #eaf2f6; + min-height: 100%; + padding-bottom: 1px +} + +.page-wrapper .dark-box { + width: 50%; + background-color: #393939; + position: absolute; + right: 0; + top: 0; + bottom: 0 +} + +.page-wrapper .lang-selector { + position: fixed; + z-index: 50; + border-bottom: 5px solid #393939 +} + +.lang-selector { + background-color: #222; + width: 100%; + font-weight: 700 +} + +.lang-selector a { + display: block; + float: left; + color: #fff; + text-decoration: none; + padding: 0 10px; + line-height: 30px; + outline: 0 +} + +.lang-selector a:active, +.lang-selector a:focus { + background-color: #111; + color: #fff +} + +.lang-selector a.active { + background-color: #393939; + color: #fff +} + +.lang-selector:after { + content: ''; + clear: both; + display: block +} + +.content { + position: relative; + z-index: 30 +} + +.content:after { + content: ''; + display: block; + clear: both +} + +.content>aside, +.content>details, +.content>dl, +.content>h1, +.content>h2, +.content>h3, +.content>h4, +.content>h5, +.content>h6, +.content>ol, +.content>p, +.content>table, +.content>ul, +.content>form>aside, +.content>form>details, +.content>form>h1, +.content>form>h2, +.content>form>h3, +.content>form>h4, +.content>form>h5, +.content>form>h6, +.content>form>p, +.content>form>table, +.content>form>ul { + margin-right: 50%; + padding: 0 28px; + box-sizing: border-box; + display: block; + text-shadow: 0 1px 0 #fff +} + +.content>ol, +.content>ul { + padding-left: 43px +} + +.content>div, +.content>h1, +.content>h2 { + clear: both +} + +.content h1 { + font-size: 30px; + padding-top: .5em; + padding-bottom: .5em; + border-bottom: 1px solid #ccc; + margin-bottom: 21px; + margin-top: 2em; + border-top: 1px solid #ddd; + background-image: linear-gradient(180deg, #fff, #f9f9f9) +} + +.content div:first-child+h1, +.content h1:first-child { + border-top-width: 0; + margin-top: 0 +} + +.content h2 { + font-size: 20px; + margin-top: 4em; + margin-bottom: 0; + border-top: 1px solid #ccc; + padding-top: 1.2em; + padding-bottom: 1.2em; + background-image: linear-gradient(180deg, hsla(0, 0%, 100%, .4), hsla(0, 0%, 100%, 0)) +} + +.content h1+div+h2, +.content h1+h2 { + margin-top: -21px; + border-top: none +} + +.content h3, +.content h4, +.content h5, +.content h6 { + font-size: 15px; + margin-top: 2.5em; + margin-bottom: .8em +} + +.content h4, +.content h5, +.content h6 { + font-size: 10px +} + +.content hr { + margin: 2em 0; + border-top: 2px solid #393939; + border-bottom: 2px solid #eaf2f6 +} + +.content table { + margin-bottom: 1em; + overflow: auto +} + +.content table td, +.content table th { + text-align: left; + vertical-align: top; + line-height: 1.6 +} + +.content table th { + padding: 5px 10px; + border-bottom: 1px solid #ccc; + vertical-align: bottom +} + +.content table td { + padding: 10px +} + +.content table tr:last-child { + border-bottom: 1px solid #ccc +} + +.content table tr:nth-child(odd)>td { + background-color: #ebf3f6 +} + +.content table tr:nth-child(even)>td { + background-color: #ebf2f6 +} + +.content dt { + font-weight: 700 +} + +.content dd { + margin-left: 15px +} + +.content dd, +.content dt, +.content li, +.content p { + line-height: 1.6; + margin-top: 0 +} + +.content img { + max-width: 100% +} + +.content code { + padding: 3px; + border-radius: 3px +} + +.content pre>code { + background-color: transparent; + padding: 0 +} + +.content aside { + padding-top: 1em; + padding-bottom: 1em; + text-shadow: 0 1px 0 #a0c6da; + margin-top: 1.5em; + margin-bottom: 1.5em; + background: #8fbcd4; + line-height: 1.6 +} + +.content aside.warning { + background-color: #c97a7e; + text-shadow: 0 1px 0 #d18e91 +} + +.content aside.success { + background-color: #6ac174; + text-shadow: 0 1px 0 #80ca89 +} + +.content aside:before { + vertical-align: middle; + padding-right: .5em; + font-size: 14px +} + +.content .search-highlight { + padding: 2px; + margin: -2px; + border-radius: 4px; + border: 1px solid #f7e633; + text-shadow: 1px 1px 0 #666; + background: linear-gradient(to top left, #f7e633, #f1d32f) +} + +.content blockquote, +.content pre { + background-color: #292929; + color: #fff; + padding: 1.5em 28px; + margin: 0; + width: 50%; + float: right; + clear: right; + box-sizing: border-box; + text-shadow: 0 1px 2px rgba(0, 0, 0, .4) +} + +.content .annotation { + background-color: #292929; + color: #fff; + padding: 0 28px; + margin: 0; + width: 50%; + float: right; + clear: right; + box-sizing: border-box; + text-shadow: 0 1px 2px rgba(0, 0, 0, .4) +} + +.content .annotation pre { + padding: 0 0; + width: 100%; + float: none; +} + +.content blockquote>p, +.content pre>p { + margin: 0 +} + +.content blockquote a, +.content pre a { + color: #fff; + text-decoration: none; + border-bottom: 1px dashed #ccc +} + +.content blockquote>p { + background-color: #1c1c1c; + border-radius: 5px; + padding: 13px; + color: #ccc; + border-top: 1px solid #000; + border-bottom: 1px solid #404040 +} + +@media (max-width:930px) { + .tocify-wrapper { + left: -230px + } + .tocify-wrapper.open { + left: 0 + } + .page-wrapper { + margin-left: 0 + } + #nav-button { + display: block + } + .tocify-wrapper .tocify-item>a { + padding-top: .3em; + padding-bottom: .3em + } +} + +@media (max-width:700px) { + .dark-box { + display: none + } + .tocify-wrapper .lang-selector { + display: block + } + .page-wrapper .lang-selector { + display: none + } + .content aside, + .content dl, + .content h1, + .content h2, + .content h3, + .content h4, + .content h5, + .content h6, + .content ol, + .content p, + .content table, + .content ul { + margin-right: 0 + } + .content>aside, + .content>details, + .content>dl, + .content>h1, + .content>h2, + .content>h3, + .content>h4, + .content>h5, + .content>h6, + .content>ol, + .content>p, + .content>table, + .content>ul, + .content>form>aside, + .content>form>details, + .content>form>h1, + .content>form>h2, + .content>form>h3, + .content>form>h4, + .content>form>h5, + .content>form>h6, + .content>form>p, + .content>form>table, + .content>form>ul { + margin-right: 0; + } + .content blockquote, + .content pre { + float: none; + width: auto + } + .content .annotation { + float: none; + width: auto + } +} + +.badge { + padding: 1px 9px 2px; + white-space: nowrap; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; + color: #ffffff; + text-shadow: none !important; + font-weight: bold; +} + +.badge.badge-darkred { + background-color: darkred; +} + +.badge.badge-red { + background-color: red; +} + +.badge.badge-blue { + background-color: blue; +} + +.badge.badge-darkblue { + background-color: darkblue; +} + +.badge.badge-green { + background-color: green; +} + +.badge.badge-darkgreen { + background-color: darkgreen; +} + +.badge.badge-purple { + background-color: purple; +} + +.badge.badge-black { + background-color: black; +} + +.badge.badge-grey { + background-color: grey; +} + +.fancy-heading-panel { + background-color: lightgrey; + border-radius: 5px; + padding-left: 5px !important; + padding-top: 5px !important; + padding-bottom: 5px !important; + margin-left: 25px; + margin-right: 10px; + width: 47%; +} + +@media screen and (max-width: 700px) { + .fancy-heading-panel { + width: 95%; + } + +} \ No newline at end of file diff --git a/public/docs/images/navbar.png b/public/docs/images/navbar.png new file mode 100644 index 00000000..df38e90d Binary files /dev/null and b/public/docs/images/navbar.png differ diff --git a/public/docs/index.html b/public/docs/index.html new file mode 100644 index 00000000..a4562dd0 --- /dev/null +++ b/public/docs/index.html @@ -0,0 +1,2768 @@ + + + + + + + Free Lunch Documentation + + + + + + + + + + + + + + + + + + + + + + NAV + navbar-image + + +
+ + +
+ + bash + + javascript + +
+ + + + + + + + + + +
+
+
+
+

Introduction

+

This documentation aims to provide all the information you need to work with our API.

+ +
+

Base URL:

+
+
https://team-lightning.onrender.com
+
+ +

Authenticating requests

+

This API is authenticated by sending a Authorization header with the value "your-token".

+

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

+

You can retrieve your token by visiting your dashboard and clicking Generate API token.

+ + +

Endpoints

+

+ +

+ + + +

GET /api/users/me

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request GET \
+    --get "https://team-lightning.onrender.com/api/users/me"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/users/me"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "GET",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + +
Example response (401):
+ + +
+ + Show headers + +

+content-security-policy: default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
+cross-origin-opener-policy: same-origin
+cross-origin-resource-policy: same-origin
+origin-agent-cluster: ?1
+referrer-policy: no-referrer
+strict-transport-security: max-age=15552000; includeSubDomains
+x-content-type-options: nosniff
+x-dns-prefetch-control: off
+x-download-options: noopen
+x-frame-options: SAMEORIGIN
+x-permitted-cross-domain-policies: none
+x-xss-protection: 0
+content-type: application/json; charset=utf-8 
+
+ +
+ 
+
+{
+    "success": false,
+    "message": "Token is missing",
+    "data": null
+}
+ 
+ + +
+ + + +
+

+ Request  + + +    + + +

+ +

+ GET + + + /api/users/me +

+ + + + + +
+ + + + + +

GET /api/users/:id

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request GET \
+    --get "https://team-lightning.onrender.com/api/users/vel"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/users/vel"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "GET",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + +
Example response (401):
+ + +
+ + Show headers + +

+content-security-policy: default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
+cross-origin-opener-policy: same-origin
+cross-origin-resource-policy: same-origin
+origin-agent-cluster: ?1
+referrer-policy: no-referrer
+strict-transport-security: max-age=15552000; includeSubDomains
+x-content-type-options: nosniff
+x-dns-prefetch-control: off
+x-download-options: noopen
+x-frame-options: SAMEORIGIN
+x-permitted-cross-domain-policies: none
+x-xss-protection: 0
+content-type: application/json; charset=utf-8 
+
+ +
+ 
+
+{
+    "success": false,
+    "message": "Token is missing",
+    "data": null
+}
+ 
+ + +
+ + + +
+

+ Request  + + +    + + +

+ +

+ GET + + + /api/users/:id +

+ + + +

URL Parameters

+ + +

+id  string + + + + + + + + +
+

The ID of the api/user.

+

+ + + + +
+ + + + + +

GET /api/users

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request GET \
+    --get "https://team-lightning.onrender.com/api/users"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/users"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "GET",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + +
Example response (401):
+ + +
+ + Show headers + +

+content-security-policy: default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
+cross-origin-opener-policy: same-origin
+cross-origin-resource-policy: same-origin
+origin-agent-cluster: ?1
+referrer-policy: no-referrer
+strict-transport-security: max-age=15552000; includeSubDomains
+x-content-type-options: nosniff
+x-dns-prefetch-control: off
+x-download-options: noopen
+x-frame-options: SAMEORIGIN
+x-permitted-cross-domain-policies: none
+x-xss-protection: 0
+content-type: application/json; charset=utf-8 
+
+ +
+ 
+
+{
+    "success": false,
+    "message": "Token is missing",
+    "data": null
+}
+ 
+ + +
+ + + +
+

+ Request  + + +    + + +

+ +

+ GET + + + /api/users +

+ + + + + +
+ + + + + +

PUT /api/users/:id

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request PUT \
+    "https://team-lightning.onrender.com/api/users/quasi"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/users/quasi"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "PUT",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ PUT + + + /api/users/:id +

+ + + +

URL Parameters

+ + +

+id  string + + + + + + + + +
+

The ID of the api/user.

+

+ + + + +
+ + + + + +

PATCH /api/users/update-password

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request PATCH \
+    "https://team-lightning.onrender.com/api/users/update-password"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/users/update-password"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "PATCH",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ PATCH + + + /api/users/update-password +

+ + + + + +
+ + + + + +

DELETE /api/users/:id

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request DELETE \
+    "https://team-lightning.onrender.com/api/users/eius"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/users/eius"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "DELETE",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ DELETE + + + /api/users/:id +

+ + + +

URL Parameters

+ + +

+id  string + + + + + + + + +
+

The ID of the api/user.

+

+ + + + +
+ + + + + +

POST /api/auth/signup

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/auth/signup"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/auth/signup"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/auth/signup +

+ + + + + +
+ + + + + +

POST /api/auth/login

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/auth/login"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/auth/login"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/auth/login +

+ + + + + +
+ + + + + +

POST /api/auth/signup/org-user

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/auth/signup/org-user"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/auth/signup/org-user"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/auth/signup/org-user +

+ + + + + +
+ + + + + +

POST /api/auth/forgot-password

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/auth/forgot-password"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/auth/forgot-password"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/auth/forgot-password +

+ + + + + +
+ + + + + +

POST /api/auth/reset-password

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/auth/reset-password"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/auth/reset-password"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/auth/reset-password +

+ + + + + +
+ + + + + +

POST /api/auth/logout

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/auth/logout"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/auth/logout"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/auth/logout +

+ + + + + +
+ + + + + +

POST /api/organization/confirm-invite

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/organization/confirm-invite"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/organization/confirm-invite"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/organization/confirm-invite +

+ + + + + +
+ + + + + +

POST /api/organization/create

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/organization/create"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/organization/create"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/organization/create +

+ + + + + +
+ + + + + +

POST /api/organization/send-invite

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/organization/send-invite"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/organization/send-invite"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/organization/send-invite +

+ + + + + +
+ + + + + +

PUT /api/organization/update-info

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request PUT \
+    "https://team-lightning.onrender.com/api/organization/update-info"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/organization/update-info"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "PUT",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ PUT + + + /api/organization/update-info +

+ + + + + +
+ + + + + +

GET /api/lunch/:userId

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request GET \
+    --get "https://team-lightning.onrender.com/api/lunch/consequuntur"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/lunch/consequuntur"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "GET",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + +
Example response (401):
+ + +
+ + Show headers + +

+content-security-policy: default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
+cross-origin-opener-policy: same-origin
+cross-origin-resource-policy: same-origin
+origin-agent-cluster: ?1
+referrer-policy: no-referrer
+strict-transport-security: max-age=15552000; includeSubDomains
+x-content-type-options: nosniff
+x-dns-prefetch-control: off
+x-download-options: noopen
+x-frame-options: SAMEORIGIN
+x-permitted-cross-domain-policies: none
+x-xss-protection: 0
+content-type: application/json; charset=utf-8 
+
+ +
+ 
+
+{
+    "success": false,
+    "message": "Token is missing",
+    "data": null
+}
+ 
+ + +
+ + + +
+

+ Request  + + +    + + +

+ +

+ GET + + + /api/lunch/:userId +

+ + + +

URL Parameters

+ + +

+userId  string + + + + + + + + +
+

The ID of the user.

+

+ + + + +
+ + + + + +

GET /api/lunch

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request GET \
+    --get "https://team-lightning.onrender.com/api/lunch"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/lunch"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "GET",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + +
Example response (401):
+ + +
+ + Show headers + +

+content-security-policy: default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
+cross-origin-opener-policy: same-origin
+cross-origin-resource-policy: same-origin
+origin-agent-cluster: ?1
+referrer-policy: no-referrer
+strict-transport-security: max-age=15552000; includeSubDomains
+x-content-type-options: nosniff
+x-dns-prefetch-control: off
+x-download-options: noopen
+x-frame-options: SAMEORIGIN
+x-permitted-cross-domain-policies: none
+x-xss-protection: 0
+content-type: application/json; charset=utf-8 
+
+ +
+ 
+
+{
+    "success": false,
+    "message": "Token is missing",
+    "data": null
+}
+ 
+ + +
+ + + +
+

+ Request  + + +    + + +

+ +

+ GET + + + /api/lunch +

+ + + + + +
+ + + + + +

POST /api/lunch/send

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/lunch/send"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/lunch/send"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/lunch/send +

+ + + + + +
+ + + + + +

POST /api/lunch/redeem

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/lunch/redeem"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/lunch/redeem"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/lunch/redeem +

+ + + + + +
+ + + + + +

GET /api/lunch/:lunchId

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request GET \
+    --get "https://team-lightning.onrender.com/api/lunch/repellendus"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/lunch/repellendus"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "GET",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + +
Example response (401):
+ + +
+ + Show headers + +

+content-security-policy: default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
+cross-origin-opener-policy: same-origin
+cross-origin-resource-policy: same-origin
+origin-agent-cluster: ?1
+referrer-policy: no-referrer
+strict-transport-security: max-age=15552000; includeSubDomains
+x-content-type-options: nosniff
+x-dns-prefetch-control: off
+x-download-options: noopen
+x-frame-options: SAMEORIGIN
+x-permitted-cross-domain-policies: none
+x-xss-protection: 0
+content-type: application/json; charset=utf-8 
+
+ +
+ 
+
+{
+    "success": false,
+    "message": "Token is missing",
+    "data": null
+}
+ 
+ + +
+ + + +
+

+ Request  + + +    + + +

+ +

+ GET + + + /api/lunch/:lunchId +

+ + + +

URL Parameters

+ + +

+lunchId  string + + + + + + + + +
+

The ID of the lunch.

+

+ + + + +
+ + + + + +

POST /api/withdrawal/request

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request POST \
+    "https://team-lightning.onrender.com/api/withdrawal/request"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/withdrawal/request"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "POST",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + + + + +
+

+ Request  + + +    + + +

+ +

+ POST + + + /api/withdrawal/request +

+ + + + + +
+ + + + + +

GET /api/withdrawal/all

+ +

+ +

+ + + + +
Example request:
+ + + +
curl --request GET \
+    --get "https://team-lightning.onrender.com/api/withdrawal/all"  \
+    --header "Content-Type: application/json" \
+    --header "Accept: application/json"
+
+ + + +
const url = new URL(
+    "https://team-lightning.onrender.com/api/withdrawal/all"
+);
+
+const headers = {
+    "Content-Type": "application/json",
+    "Accept": "application/json",
+};
+
+
+fetch(url, {
+    method: "GET",
+    headers: headers,
+})
+.then(response => response.json())
+.then(json => console.log(json));
+
+ + +
+ + + + +
Example response (401):
+ + +
+ + Show headers + +

+content-security-policy: default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests
+cross-origin-opener-policy: same-origin
+cross-origin-resource-policy: same-origin
+origin-agent-cluster: ?1
+referrer-policy: no-referrer
+strict-transport-security: max-age=15552000; includeSubDomains
+x-content-type-options: nosniff
+x-dns-prefetch-control: off
+x-download-options: noopen
+x-frame-options: SAMEORIGIN
+x-permitted-cross-domain-policies: none
+x-xss-protection: 0
+content-type: application/json; charset=utf-8 
+
+ +
+ 
+
+{
+    "success": false,
+    "message": "Token is missing",
+    "data": null
+}
+ 
+ + +
+ + + +
+

+ Request  + + +    + + +

+ +

+ GET + + + /api/withdrawal/all +

+ + + + + +
+ + + + + + + +
+
+ +
+ + bash + + javascript + +
+ +
+
+ + + + + \ No newline at end of file diff --git a/public/docs/js/theme-default-2.0.2.js b/public/docs/js/theme-default-2.0.2.js new file mode 100644 index 00000000..b62c1a16 --- /dev/null +++ b/public/docs/js/theme-default-2.0.2.js @@ -0,0 +1,9088 @@ +!(function () { + if ('ontouchstart' in window) { + let e; + let t; + let n; + let r; + let i; + let o; + const s = {}; + (e = function (e, t) { + return Math.abs(e[0] - t[0]) > 5 || Math.abs(e[1] - t[1]) > 5; + }), + (t = function (e) { + (this.startXY = [e.touches[0].clientX, e.touches[0].clientY]), + (this.threshold = !1); + }), + (n = function (t) { + return this.threshold + ? !1 + : void (this.threshold = e(this.startXY, [ + t.touches[0].clientX, + t.touches[0].clientY, + ])); + }), + (r = function (t) { + if ( + !this.threshold && + !e(this.startXY, [ + t.changedTouches[0].clientX, + t.changedTouches[0].clientY, + ]) + ) { + const n = t.changedTouches[0]; + const r = document.createEvent('MouseEvents'); + r.initMouseEvent( + 'click', + !0, + !0, + window, + 0, + n.screenX, + n.screenY, + n.clientX, + n.clientY, + !1, + !1, + !1, + !1, + 0, + null, + ), + (r.simulated = !0), + t.target.dispatchEvent(r); + } + }), + (i = function (e) { + const t = Date.now(); + const n = t - s.time; + const r = e.clientX; + const i = e.clientY; + const a = [Math.abs(s.x - r), Math.abs(s.y - i)]; + const c = o(e.target, 'A') || e.target; + const l = c.nodeName; + const u = l === 'A'; + const d = + window.navigator.standalone && u && e.target.getAttribute('href'); + return ( + (s.time = t), + (s.x = r), + (s.y = i), + ((!e.simulated && + (n < 500 || (n < 1500 && a[0] < 50 && a[1] < 50))) || + d) && + (e.preventDefault(), e.stopPropagation(), !d) + ? !1 + : (d && (window.location = c.getAttribute('href')), + void ( + c && + c.classList && + (c.classList.add('energize-focus'), + window.setTimeout(() => { + c.classList.remove('energize-focus'); + }, 150)) + )) + ); + }), + (o = function (e, t) { + for (let n = e; n !== document.body; ) { + if (!n || n.nodeName === t) return n; + n = n.parentNode; + } + return null; + }), + document.addEventListener('touchstart', t, !1), + document.addEventListener('touchmove', n, !1), + document.addEventListener('touchend', r, !1), + document.addEventListener('click', i, !0); + } +})(), + !(function (e, t) { + typeof module === 'object' && typeof module.exports === 'object' + ? (module.exports = e.document + ? t(e, !0) + : function (e) { + if (!e.document) + throw new Error('jQuery requires a window with a document'); + return t(e); + }) + : t(e); + })(typeof window !== 'undefined' ? window : this, (e, t) => { + function n(e) { + const t = e.length; + const n = G.type(e); + return n === 'function' || G.isWindow(e) + ? !1 + : e.nodeType === 1 && t + ? !0 + : n === 'array' || + t === 0 || + (typeof t === 'number' && t > 0 && t - 1 in e); + } + function r(e, t, n) { + if (G.isFunction(t)) return G.grep(e, (e, r) => !!t.call(e, r, e) !== n); + if (t.nodeType) return G.grep(e, (e) => (e === t) !== n); + if (typeof t === 'string') { + if (ae.test(t)) return G.filter(t, e, n); + t = G.filter(t, e); + } + return G.grep(e, (e) => Q.call(t, e) >= 0 !== n); + } + function i(e, t) { + for (; (e = e[t]) && e.nodeType !== 1; ); + return e; + } + function o(e) { + const t = (he[e] = {}); + return ( + G.each(e.match(pe) || [], (e, n) => { + t[n] = !0; + }), + t + ); + } + function s() { + Y.removeEventListener('DOMContentLoaded', s, !1), + e.removeEventListener('load', s, !1), + G.ready(); + } + function a() { + Object.defineProperty((this.cache = {}), 0, { + get: function () { + return {}; + }, + }), + (this.expando = G.expando + a.uid++); + } + function c(e, t, n) { + let r; + if (void 0 === n && e.nodeType === 1) + if ( + ((r = `data-${t.replace(we, '-$1').toLowerCase()}`), + (n = e.getAttribute(r)), + typeof n === 'string') + ) { + try { + n = + n === 'true' + ? !0 + : n === 'false' + ? !1 + : n === 'null' + ? null + : `${+n}` === n + ? +n + : be.test(n) + ? G.parseJSON(n) + : n; + } catch (i) {} + ye.set(e, t, n); + } else n = void 0; + return n; + } + function l() { + return !0; + } + function u() { + return !1; + } + function d() { + try { + return Y.activeElement; + } catch (e) {} + } + function f(e, t) { + return G.nodeName(e, 'table') && + G.nodeName(t.nodeType !== 11 ? t : t.firstChild, 'tr') + ? e.getElementsByTagName('tbody')[0] || + e.appendChild(e.ownerDocument.createElement('tbody')) + : e; + } + function p(e) { + return (e.type = `${e.getAttribute('type') !== null}/${e.type}`), e; + } + function h(e) { + const t = Re.exec(e.type); + return t ? (e.type = t[1]) : e.removeAttribute('type'), e; + } + function g(e, t) { + for (let n = 0, r = e.length; r > n; n++) + ve.set(e[n], 'globalEval', !t || ve.get(t[n], 'globalEval')); + } + function m(e, t) { + let n; + let r; + let i; + let o; + let s; + let a; + let c; + let l; + if (t.nodeType === 1) { + if ( + ve.hasData(e) && + ((o = ve.access(e)), (s = ve.set(t, o)), (l = o.events)) + ) { + delete s.handle, (s.events = {}); + for (i in l) + for (n = 0, r = l[i].length; r > n; n++) G.event.add(t, i, l[i][n]); + } + ye.hasData(e) && + ((a = ye.access(e)), (c = G.extend({}, a)), ye.set(t, c)); + } + } + function v(e, t) { + const n = e.getElementsByTagName + ? e.getElementsByTagName(t || '*') + : e.querySelectorAll + ? e.querySelectorAll(t || '*') + : []; + return void 0 === t || (t && G.nodeName(e, t)) ? G.merge([e], n) : n; + } + function y(e, t) { + const n = t.nodeName.toLowerCase(); + n === 'input' && Ce.test(e.type) + ? (t.checked = e.checked) + : (n === 'input' || n === 'textarea') && + (t.defaultValue = e.defaultValue); + } + function b(t, n) { + let r; + const i = G(n.createElement(t)).appendTo(n.body); + const o = + e.getDefaultComputedStyle && (r = e.getDefaultComputedStyle(i[0])) + ? r.display + : G.css(i[0], 'display'); + return i.detach(), o; + } + function w(e) { + let t = Y; + let n = He[e]; + return ( + n || + ((n = b(e, t)), + (n !== 'none' && n) || + ((Ie = ( + Ie || G("