From e64bce3171a0951c5fd418bc6044dab99b5418d5 Mon Sep 17 00:00:00 2001 From: Eugenio Chiodo Date: Tue, 15 Feb 2022 00:08:41 +0100 Subject: [PATCH] Save --- Components/Content.razor | 18 +- Components/MessageUpsertForm.razor | 6 +- Docs/Insomnia_2022-02-02.json | 1 - Docs/Insomnia_APIs.json | 704 +++++++++++++++++++++++++++++ Extensions/GenericExtensions.cs | 2 - Helpers/Faker.cs | 13 + Models/BoostingUser.cs | 11 + Models/Message.cs | 4 +- Models/Types/ContentType.cs | 2 +- Models/Types/MediaType.cs | 2 +- Models/Types/MessageType.cs | 2 +- Models/UploadMedia.cs | 3 +- Pages/Administration.razor | 170 ++++++- Pages/ExpandMessage.razor | 39 +- Pages/Index.razor | 37 +- Pages/Settings.razor | 8 +- Services/IStorage.cs | 81 +++- package-lock.json | 127 ++++-- package.json | 5 +- tailwind.config.js | 2 +- wwwroot/css/style.min.css | 4 + wwwroot/vendor/tailwind.css | 4 + 22 files changed, 1152 insertions(+), 93 deletions(-) delete mode 100644 Docs/Insomnia_2022-02-02.json create mode 100644 Docs/Insomnia_APIs.json create mode 100644 Models/BoostingUser.cs diff --git a/Components/Content.razor b/Components/Content.razor index ccda9e2..1a10436 100644 --- a/Components/Content.razor +++ b/Components/Content.razor @@ -12,6 +12,14 @@
+ @if (Message.BoostingUser != null) + { +

+ @Message.BoostingUser.DisplayName + + @CascadingState.Localizer["boosted"] +

+ }

@@ -105,11 +113,15 @@ } @if (OnMessageBoost.HasDelegate) { - } @if (OnMessageFavourite.HasDelegate) diff --git a/Components/MessageUpsertForm.razor b/Components/MessageUpsertForm.razor index 72cf9a1..87e5e5e 100644 --- a/Components/MessageUpsertForm.razor +++ b/Components/MessageUpsertForm.razor @@ -307,7 +307,8 @@ MediaType.Images => 5, MediaType.Audio => 1, MediaType.Video => 1, - MediaType.Documents => 3 + MediaType.Documents => 3, + _ => 0 }; if (eventArgs.FileCount > maximumFileCount) { @@ -324,7 +325,8 @@ MediaType.Images => 3_145_728, MediaType.Audio => 5_242_880, MediaType.Video => 20_971_520, - MediaType.Documents => 3_145_728 + MediaType.Documents => 3_145_728, + _ => 0 }; var uploadMedia = default(UploadMedia); using (var memStream = new MemoryStream()) diff --git a/Docs/Insomnia_2022-02-02.json b/Docs/Insomnia_2022-02-02.json deleted file mode 100644 index 2e5d54e..0000000 --- a/Docs/Insomnia_2022-02-02.json +++ /dev/null @@ -1 +0,0 @@ -{"_type":"export","__export_format":4,"__export_date":"2022-02-02T19:18:59.396Z","__export_source":"insomnia.desktop.app:v2021.7.2","resources":[{"_id":"req_db7df93225be442e89a167ae594c5551","parentId":"fld_2fca219979e448c997a6788d2b539ee7","modified":1643829417245,"created":1643816994345,"url":"https://localhost:5000/api/v1/message/add","name":"Add message","description":"rootMessageId => un susseguirsi di risposte ad un messaggio si portera' dietro sempre l'id del messaggio di partenza\n\ntitle => titolo opzionale\n\ncontent => testo del messaggio, con supporto di markdown\n\nResponse JSON:\n\n> {\n\t\"rootMessageId\": null,\n\t\"messageId\": \"guid/uuid/whatever\",\n\t\"title\": \"...\",\n\t\"content\": \"...\",\n\t\"mentions\": [{\n\t\t\"displayName\": \"loweel\"\n\t\t\"username\": \"loweel@bbs.keinpfusch.net\",\n\t\t\"userId\": \"AFnbjUWFfEDFn1v66C\",\n\t\t\"profileUrl\": \"https://bbs.keinpfusch.net/@loweel\"\n\t}],\n\t\"media\": [{\n\t\t\"contentType\": \"image/png\",\n\t\t\"url\": \"https://bbs.keinpfusch.net/files/webpublic-ee9faea1-6786-4bf4-9a42-7a1f07de2dc5\"\n\t}],\n\t\"createdAt\": \"UTC or ticks\"\n}\n","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"rootMessageId\": null,\n\t\"title\": \"optional\",\n\t\"content\": \"with extended markdown support\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_b95faf0515f9453595110e7895330c5f"}],"authentication":{},"metaSortKey":-1643816957190,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_2fca219979e448c997a6788d2b539ee7","parentId":"wrk_da47ff9b3d7f40f3bef9e90b46d6610b","modified":1643829443147,"created":1643816769446,"name":"APIs","description":"","environment":{},"environmentPropertyOrder":{},"metaSortKey":-1643816769446,"_type":"request_group"},{"_id":"wrk_da47ff9b3d7f40f3bef9e90b46d6610b","parentId":null,"modified":1608987862911,"created":1608987862911,"name":"Insomnia","description":"","scope":"collection","_type":"workspace"},{"_id":"req_628b806452a54368ab36a640f15b9dc1","parentId":"fld_2fca219979e448c997a6788d2b539ee7","modified":1643829417779,"created":1643817098403,"url":"https://localhost:5000/api/v1/message/messageId/update","name":"Update message","description":"[queryParam] messageId => id del messaggio da aggiornare\n\ntitle => titolo opzionale\n\ncontent => testo del messaggio, con supporto di markdown\n\nResponse JSON:\n\n> {\n\t\"rootMessageId\": null,\n\t\"messageId\": \"guid/uuid/whatever\",\n\t\"title\": \"...\",\n\t\"content\": \"...\",\n\t\"mentions\": [{\n\t\t\"displayName\": \"loweel\"\n\t\t\"username\": \"loweel@bbs.keinpfusch.net\",\n\t\t\"userId\": \"AFnbjUWFfEDFn1v66C\",\n\t\t\"profileUrl\": \"https://bbs.keinpfusch.net/@loweel\"\n\t}],\n\t\"media\": [{\n\t\t\"contentType\": \"image/png\",\n\t\t\"url\": \"https://bbs.keinpfusch.net/files/webpublic-ee9faea1-6786-4bf4-9a42-7a1f07de2dc5\"\n\t}],\n\t\"createdAt\": \"UTC or ticks\"\n}\n","method":"PATCH","body":{"mimeType":"application/json","text":"{\n\t\"rootMessageId\": null,\n\t\"title\": \"optional\",\n\t\"content\": \"with extended markdown support\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_fae6c2f81d0f4a63bc5b44e77a209e4e"}],"authentication":{"type":"oauth2","grantType":"authorization_code"},"metaSortKey":-1643816957183.75,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b33056a8e8a64c838662a60a4909537c","parentId":"fld_2fca219979e448c997a6788d2b539ee7","modified":1643829255295,"created":1643817054991,"url":"https://localhost:5000/api/v1/message/messageId/delete","name":"Remove message","description":"[queryParam] messageId => id del messaggio da eliminare\n\nResponse 200\n","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{"type":"oauth2","grantType":"authorization_code"},"metaSortKey":-1643816957177.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_95c442071ee247f1a97d823c6e503db2","parentId":"fld_2fca219979e448c997a6788d2b539ee7","modified":1643828816287,"created":1643816956965,"url":"https://localhost:5000/api/v1/messages","name":"Get messages list","description":"Response JSON:\n>[\n\t{\n\t\t\"rootMessageId\": null,\n\t\t\"messageId\": \"guid/uuid/whatever\",\n\t\t\"title\": \"...\",\n\t\t\"content\": \"...\",\n\t\t\"mentions\": [{\n\t\t\t\"displayName\": \"loweel\"\n\t\t\t\"username\": \"loweel@bbs.keinpfusch.net\",\n\t\t\t\"userId\": \"AFnbjUWFfEDFn1v66C\",\n\t\t\t\"profileUrl\": \"https://bbs.keinpfusch.net/@loweel\"\n\t\t}],\n\t\t\"media\": [{\n\t\t\t\"contentType\": \"image/png\",\n\t\t\t\"url\": \"https://bbs.keinpfusch.net/files/webpublic-ee9faea1-6786-4bf4-9a42-7a1f07de2dc5\"\n\t\t}],\n\t\t\"createdAt\": \"UTC or ticks\"\n\t}, ...\n]","method":"GET","body":{},"parameters":[{"id":"pair_6e5222c6a78341bbb24f9b18d236df6c","name":"since","value":"UTC/ticks/messageId?","description":""}],"headers":[],"authentication":{},"metaSortKey":-1643816956965,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_b33db616c4a51618900a0a3da66d2d7b6ebaec2b","parentId":"wrk_da47ff9b3d7f40f3bef9e90b46d6610b","modified":1642377560788,"created":1608987862952,"name":"Base Environment","data":{},"dataPropertyOrder":{},"color":null,"isPrivate":false,"metaSortKey":1608987862952,"_type":"environment"},{"_id":"jar_b33db616c4a51618900a0a3da66d2d7b6ebaec2b","parentId":"wrk_da47ff9b3d7f40f3bef9e90b46d6610b","modified":1642378408249,"created":1608987862953,"name":"Default Jar","cookies":[{"key":"oc_sessionPassphrase","value":"nMmK2Vb0FhKNaSQiPteel3EhA5swjs9%2FYJwU79BzPrq1cgNmCdL2w88ktlfpy8BXU1Yuj7MKSmCLNYMB0NIDFZ%2B7AnbhqpW0am5cFolB4eRzT2uSUSg16nKnAPVXAkGa","domain":"nuvola.xyz","path":"/","secure":true,"httpOnly":true,"extensions":["SameSite=Lax"],"hostOnly":true,"creation":"2021-05-04T10:48:03.279Z","lastAccessed":"2021-05-04T10:48:03.279Z","id":"06476282363234076"},{"key":"occ7de4yt74j","value":"dsleqfmojuisnmgcq63p0nrk77","domain":"nuvola.xyz","path":"/","secure":true,"httpOnly":true,"extensions":["SameSite=Lax"],"hostOnly":true,"creation":"2021-05-04T10:48:03.279Z","lastAccessed":"2021-05-04T11:01:42.224Z","id":"9557040429295196"},{"key":"__Host-nc_sameSiteCookielax","value":"true","expires":"2100-12-31T23:59:59.000Z","domain":"nuvola.xyz","path":"/","secure":true,"httpOnly":true,"extensions":["SameSite=lax"],"hostOnly":true,"creation":"2021-05-04T10:48:03.280Z","lastAccessed":"2021-05-04T10:48:03.280Z","id":"4410522677170672"},{"key":"__Host-nc_sameSiteCookiestrict","value":"true","expires":"2100-12-31T23:59:59.000Z","domain":"nuvola.xyz","path":"/","secure":true,"httpOnly":true,"extensions":["SameSite=strict"],"hostOnly":true,"creation":"2021-05-04T10:48:03.280Z","lastAccessed":"2021-05-04T10:48:03.280Z","id":"7173600438498109"},{"key":"cookie_test","value":"test","expires":"2021-05-04T11:49:33.000Z","maxAge":3600,"domain":"nuvola.xyz","path":"/apps/dashboard","hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T10:49:20.818Z","lastAccessed":"2021-05-04T10:49:33.582Z","id":"3533626334860853"},{"key":"nc_username","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/apps/dashboard","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T10:49:20.818Z","lastAccessed":"2021-05-04T10:49:33.582Z","id":"06043516223469947"},{"key":"nc_token","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/apps/dashboard","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T10:49:20.819Z","lastAccessed":"2021-05-04T10:49:33.582Z","id":"1905708786875855"},{"key":"nc_session_id","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/apps/dashboard","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T10:49:20.819Z","lastAccessed":"2021-05-04T10:49:33.582Z","id":"4672408440036"},{"key":"nc_username","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/","secure":true,"httpOnly":true,"hostOnly":true,"creation":"2021-05-04T10:49:20.819Z","lastAccessed":"2021-05-04T11:01:42.224Z","id":"7693972008479257"},{"key":"nc_token","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/","secure":true,"httpOnly":true,"hostOnly":true,"creation":"2021-05-04T10:49:20.819Z","lastAccessed":"2021-05-04T11:01:42.224Z","id":"9731704342625882"},{"key":"nc_session_id","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/","secure":true,"httpOnly":true,"hostOnly":true,"creation":"2021-05-04T10:49:20.819Z","lastAccessed":"2021-05-04T11:01:42.224Z","id":"3557084085645068"},{"key":"cookie_test","value":"test","expires":"2021-05-04T11:51:28.000Z","maxAge":3600,"domain":"nuvola.xyz","path":"/remote.php/dav/files","hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T10:51:28.651Z","lastAccessed":"2021-05-04T10:51:28.651Z","id":"8645799753636227"},{"key":"nc_username","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/remote.php/dav/files","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T10:51:44.619Z","lastAccessed":"2021-05-04T10:51:44.619Z","id":"9029869294914612"},{"key":"nc_token","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/remote.php/dav/files","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T10:51:44.619Z","lastAccessed":"2021-05-04T10:51:44.619Z","id":"6422488233461934"},{"key":"nc_session_id","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/remote.php/dav/files","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T10:51:44.619Z","lastAccessed":"2021-05-04T10:51:44.619Z","id":"7557066093242031"},{"key":"cookie_test","value":"test","expires":"2021-05-04T12:01:26.000Z","maxAge":3600,"domain":"nuvola.xyz","path":"/index.php/login","hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T11:01:26.192Z","lastAccessed":"2021-05-04T11:01:26.192Z","id":"7093910949861533"},{"key":"nc_username","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/index.php/login","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T11:01:42.223Z","lastAccessed":"2021-05-04T11:01:42.223Z","id":"677709203943275"},{"key":"nc_token","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/index.php/login","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T11:01:42.224Z","lastAccessed":"2021-05-04T11:01:42.224Z","id":"9477816718956802"},{"key":"nc_session_id","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"nuvola.xyz","path":"/index.php/login","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2021-05-04T11:01:42.224Z","lastAccessed":"2021-05-04T11:01:42.224Z","id":"41804757195232756"},{"key":"oc_sessionPassphrase","value":"pUIH26mXSdmGTfubB4dUzw8F8MQsUHdwnHCeo7ElPWIGDxXte2XC1M0EMyN5eriarJcMmkfh4kSGFI9%2BRcs%2BHt2gdDygddkz5I7Tl8KtjkwC%2BawIYuL8z3lobWTL%2BCy%2B","domain":"cloud.zigzag.academy","path":"/","secure":true,"httpOnly":true,"extensions":["SameSite=Lax"],"hostOnly":true,"creation":"2022-01-17T00:03:10.727Z","lastAccessed":"2022-01-17T00:03:10.727Z","id":"06313521114695941"},{"key":"__Host-nc_sameSiteCookielax","value":"true","expires":"2100-12-31T23:59:59.000Z","domain":"cloud.zigzag.academy","path":"/","secure":true,"httpOnly":true,"extensions":["SameSite=lax"],"hostOnly":true,"creation":"2022-01-17T00:03:10.728Z","lastAccessed":"2022-01-17T00:03:10.728Z","id":"860532957782806"},{"key":"__Host-nc_sameSiteCookiestrict","value":"true","expires":"2100-12-31T23:59:59.000Z","domain":"cloud.zigzag.academy","path":"/","secure":true,"httpOnly":true,"extensions":["SameSite=strict"],"hostOnly":true,"creation":"2022-01-17T00:03:10.728Z","lastAccessed":"2022-01-17T00:03:10.728Z","id":"31117326197847706"},{"key":"ocl7d3yrw74j","value":"uecghev7rleu4uptmruhptuvto","domain":"cloud.zigzag.academy","path":"/","secure":true,"httpOnly":true,"extensions":["SameSite=Lax"],"hostOnly":true,"creation":"2022-01-17T00:03:10.728Z","lastAccessed":"2022-01-17T00:13:28.249Z","id":"5917940161261273"},{"key":"cookie_test","value":"test","expires":"2022-01-17T01:03:09.000Z","maxAge":3600,"domain":"cloud.zigzag.academy","path":"/index.php/login","hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:03:10.728Z","lastAccessed":"2022-01-17T00:03:10.728Z","id":"009292942805962934"},{"key":"nc_username","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/index.php/login/v2","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:04:18.252Z","lastAccessed":"2022-01-17T00:04:18.252Z","id":"5470762369580981"},{"key":"nc_token","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/index.php/login/v2","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:04:18.252Z","lastAccessed":"2022-01-17T00:04:18.252Z","id":"4385020724400406"},{"key":"nc_session_id","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/index.php/login/v2","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:04:18.253Z","lastAccessed":"2022-01-17T00:04:18.253Z","id":"05297254853120181"},{"key":"nc_username","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/","secure":true,"httpOnly":true,"hostOnly":true,"creation":"2022-01-17T00:04:18.253Z","lastAccessed":"2022-01-17T00:12:52.404Z","id":"46009278671166176"},{"key":"nc_token","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/","secure":true,"httpOnly":true,"hostOnly":true,"creation":"2022-01-17T00:04:18.253Z","lastAccessed":"2022-01-17T00:12:52.404Z","id":"05812364381235913"},{"key":"nc_session_id","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/","secure":true,"httpOnly":true,"hostOnly":true,"creation":"2022-01-17T00:04:18.253Z","lastAccessed":"2022-01-17T00:12:52.404Z","id":"3772361407666647"},{"key":"cookie_test","value":"test","expires":"2022-01-17T01:05:17.000Z","maxAge":3600,"domain":"cloud.zigzag.academy","path":"/apps/files","hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:05:18.388Z","lastAccessed":"2022-01-17T00:05:18.388Z","id":"08277815359810625"},{"key":"nc_username","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/apps/files","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:05:18.388Z","lastAccessed":"2022-01-17T00:05:18.388Z","id":"7962572269421415"},{"key":"nc_token","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/apps/files","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:05:18.388Z","lastAccessed":"2022-01-17T00:05:18.388Z","id":"8604909194077435"},{"key":"nc_session_id","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/apps/files","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:05:18.388Z","lastAccessed":"2022-01-17T00:05:18.388Z","id":"6043027104701622"},{"key":"cookie_test","value":"test","expires":"2022-01-17T01:11:28.000Z","maxAge":3600,"domain":"cloud.zigzag.academy","path":"/ocs/v1.php/cloud","hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:11:28.872Z","lastAccessed":"2022-01-17T00:11:28.872Z","id":"014769824799037545"},{"key":"nc_username","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/ocs/v1.php/cloud","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:12:52.404Z","lastAccessed":"2022-01-17T00:12:52.404Z","id":"7141536696124962"},{"key":"nc_token","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/ocs/v1.php/cloud","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:12:52.404Z","lastAccessed":"2022-01-17T00:12:52.404Z","id":"08455474112707173"},{"key":"nc_session_id","value":"deleted","expires":"1970-01-01T00:00:01.000Z","maxAge":0,"domain":"cloud.zigzag.academy","path":"/ocs/v1.php/cloud","secure":true,"httpOnly":true,"hostOnly":true,"pathIsDefault":true,"creation":"2022-01-17T00:12:52.404Z","lastAccessed":"2022-01-17T00:12:52.404Z","id":"141765916939931"}],"_type":"cookie_jar"},{"_id":"spc_f832b28de5204b4a88374d08ba93a8e2","parentId":"wrk_da47ff9b3d7f40f3bef9e90b46d6610b","modified":1608987862912,"created":1608987862912,"fileName":"Insomnia","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_77dfa781871a430f8e5014b07c9f9061","parentId":"env_b33db616c4a51618900a0a3da66d2d7b6ebaec2b","modified":1642377578797,"created":1642377566379,"name":"Nextcloud API","data":{},"dataPropertyOrder":{},"color":null,"isPrivate":false,"metaSortKey":1642377566379,"_type":"environment"}]} \ No newline at end of file diff --git a/Docs/Insomnia_APIs.json b/Docs/Insomnia_APIs.json new file mode 100644 index 0000000..cd7b95b --- /dev/null +++ b/Docs/Insomnia_APIs.json @@ -0,0 +1,704 @@ +{ + "_type": "export", + "__export_format": 4, + "__export_date": "2022-02-14T20:02:43.810Z", + "__export_source": "insomnia.desktop.app:v2021.7.2", + "resources": [ + { + "_id": "req_db7df93225be442e89a167ae594c5551", + "parentId": "fld_2fca219979e448c997a6788d2b539ee7", + "modified": 1644868863001, + "created": 1643816994345, + "url": "https://localhost:5000/api/v1/message/add", + "name": "Add message", + "description": "rootMessageId => un susseguirsi di risposte ad un messaggio si portera' dietro sempre l'id del messaggio di partenza\n\ntitle => titolo opzionale\n\ncontent => testo del messaggio, con supporto di markdown\n\nResponse JSON:\n\n>\t\t{\n>\t\t\t\"user\": {\n\t\t\t\t\"userId\": \"guid/uuid/whatever\",\n\t\t\t\t\"userName\": \"@loosy@letsrulethe.world\",\n\t\t\t\t\"displayName\": \"loosy\",\n\t\t\t\t\"pictureUrl\": \"https://...\",\n\t\t\t\t\"backgroundUrl\": \"https://...\",\n\t\t\t\t\"profileUrl\": \"https://...\"\n\t\t\t},\n\t\t\t\"messageType\": \"1||2||3||4\",//Direct,FollowersOnly,Unlisted,Public\n\t\t\t\"rootMessageId\": null,\n\t\t\t\"messageId\": \"guid/uuid/whatever\",\n\t\t\t\"title\": \"...\",\n\t\t\t\"content\": \"...\",\n\t\t\t\"isFavourite\": false,\n\t\t\t\"isBoosted\": false,\n\t\t\t\"media\": [{\n\t\t\t\t\t\"fileName\": \"ciao.png\",\n\t\t\t\t\t\"altText\": \"descrizione immagine\",\n\t\t\t\t\t\"contentType\": \"image/png\",\n\t\t\t\t\t\"url\": \"https://bbs.keinpfusch.net/files/webpublic-ee9faea1-6786-4bf4-9a42-7a1f07de2dc5\"\n\t\t\t}],\n\t\t\t\"createdAt\": \"UTC or ticks\"\n>\t\t}\n", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": " {\n\t\"contentType\": \"1||2||3\",//PlainText,HTML,Markdown\n\t\"messageType\": \"1||2||3||4\",//Direct,FollowersOnly,Unlisted,Public,\n\t\"mediaType\": \"1||2||3||4\",//Images,Video,Audio,Documents\n\t\"rootMessageId\": null,\n\t\"title\": \"...\",\n\t\"content\": \"...\",\n\t\"media\": [{\n\t\t\"fileName\": \"ciao.png\",\n \"altText\": \"descrizione opzionale immagine\",\n\t\t\"contentType\": \"image/png\",//mime\n\t\t\"blob\": [23,33,11,...]//byteArray || base64?\n\t}],\n\t\"createdAt\": \"UTC or ticks\"\n}\n\n" + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/json", + "id": "pair_b95faf0515f9453595110e7895330c5f" + } + ], + "authentication": {}, + "metaSortKey": -1643816957190, + "isPrivate": false, + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "fld_2fca219979e448c997a6788d2b539ee7", + "parentId": "wrk_da47ff9b3d7f40f3bef9e90b46d6610b", + "modified": 1643829443147, + "created": 1643816769446, + "name": "APIs", + "description": "", + "environment": {}, + "environmentPropertyOrder": {}, + "metaSortKey": -1643816769446, + "_type": "request_group" + }, + { + "_id": "wrk_da47ff9b3d7f40f3bef9e90b46d6610b", + "parentId": null, + "modified": 1608987862911, + "created": 1608987862911, + "name": "Insomnia", + "description": "", + "scope": "collection", + "_type": "workspace" + }, + { + "_id": "req_b33056a8e8a64c838662a60a4909537c", + "parentId": "fld_2fca219979e448c997a6788d2b539ee7", + "modified": 1643829255295, + "created": 1643817054991, + "url": "https://localhost:5000/api/v1/message/messageId/delete", + "name": "Remove message", + "description": "[queryParam] messageId => id del messaggio da eliminare\n\nResponse 200\n", + "method": "DELETE", + "body": {}, + "parameters": [], + "headers": [], + "authentication": { + "type": "oauth2", + "grantType": "authorization_code" + }, + "metaSortKey": -1643816957177.5, + "isPrivate": false, + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "req_95c442071ee247f1a97d823c6e503db2", + "parentId": "fld_2fca219979e448c997a6788d2b539ee7", + "modified": 1644868763642, + "created": 1643816956965, + "url": "https://localhost:5000/api/v1/messages", + "name": "Get messages list", + "description": "Response JSON:\n>\t\t[\n>\t\t\t{\n>\t\t\t\t\"user\": {\n>\t\t\t\t\t\"userId\": \"guid/uuid/whatever\",\n>\t\t\t\t\t\"userName\": \"@loosy@letsrulethe.world\",\n>\t\t\t\t\t\"displayName\": \"loosy\",\n>\t\t\t\t\t\"pictureUrl\": \"https://...\",\n>\t\t\t\t\t\"backgroundUrl\": \"https://...\",\n>\t\t\t\t\t\"profileUrl\": \"https://...\"\n>\t\t\t\t},\n>\t\t\t\t\"messageType\": \"1||2||3||4\",//Direct,FollowersOnly,Unlisted,Public\n>\t\t\t\t\"rootMessageId\": null,\n>\t\t\t\t\"messageId\": \"guid/uuid/whatever\",\n>\t\t\t\t\"title\": \"...\",\n>\t\t\t\t\"content\": \"...\",\n>\t\t\t\t\"isFavourite\": false,\n>\t\t\t\t\"isBoosted\": false,\n>\t\t\t\t\"media\": [{\n>\t\t\t\t\t\"fileName\": \"ciao.png\",\n>\t\t\t\t\t\"altText\": \"descrizione immagine\",\n>\t\t\t\t\t\"contentType\": \"image/png\",\n>\t\t\t\t\t\"url\": \"https://bbs.keinpfusch.net/files/webpublic-ee9faea1-6786-4bf4-9a42-7a1f07de2dc5\"\n>\t\t\t\t}],\n>\t\t\t\t\"createdAt\": \"UTC or ticks\"\n>\t\t\t}, {...}\n>\t\t]", + "method": "GET", + "body": {}, + "parameters": [ + { + "id": "pair_6e5222c6a78341bbb24f9b18d236df6c", + "name": "since", + "value": "UTC/ticks/messageId?", + "description": "" + } + ], + "headers": [], + "authentication": {}, + "metaSortKey": -1643816956965, + "isPrivate": false, + "settingStoreCookies": true, + "settingSendCookies": true, + "settingDisableRenderRequestBody": false, + "settingEncodeUrl": true, + "settingRebuildPath": true, + "settingFollowRedirects": "global", + "_type": "request" + }, + { + "_id": "env_b33db616c4a51618900a0a3da66d2d7b6ebaec2b", + "parentId": "wrk_da47ff9b3d7f40f3bef9e90b46d6610b", + "modified": 1642377560788, + "created": 1608987862952, + "name": "Base Environment", + "data": {}, + "dataPropertyOrder": {}, + "color": null, + "isPrivate": false, + "metaSortKey": 1608987862952, + "_type": "environment" + }, + { + "_id": "jar_b33db616c4a51618900a0a3da66d2d7b6ebaec2b", + "parentId": "wrk_da47ff9b3d7f40f3bef9e90b46d6610b", + "modified": 1642378408249, + "created": 1608987862953, + "name": "Default Jar", + "cookies": [ + { + "key": "oc_sessionPassphrase", + "value": "nMmK2Vb0FhKNaSQiPteel3EhA5swjs9%2FYJwU79BzPrq1cgNmCdL2w88ktlfpy8BXU1Yuj7MKSmCLNYMB0NIDFZ%2B7AnbhqpW0am5cFolB4eRzT2uSUSg16nKnAPVXAkGa", + "domain": "nuvola.xyz", + "path": "/", + "secure": true, + "httpOnly": true, + "extensions": [ "SameSite=Lax" ], + "hostOnly": true, + "creation": "2021-05-04T10:48:03.279Z", + "lastAccessed": "2021-05-04T10:48:03.279Z", + "id": "06476282363234076" + }, + { + "key": "occ7de4yt74j", + "value": "dsleqfmojuisnmgcq63p0nrk77", + "domain": "nuvola.xyz", + "path": "/", + "secure": true, + "httpOnly": true, + "extensions": [ "SameSite=Lax" ], + "hostOnly": true, + "creation": "2021-05-04T10:48:03.279Z", + "lastAccessed": "2021-05-04T11:01:42.224Z", + "id": "9557040429295196" + }, + { + "key": "__Host-nc_sameSiteCookielax", + "value": "true", + "expires": "2100-12-31T23:59:59.000Z", + "domain": "nuvola.xyz", + "path": "/", + "secure": true, + "httpOnly": true, + "extensions": [ "SameSite=lax" ], + "hostOnly": true, + "creation": "2021-05-04T10:48:03.280Z", + "lastAccessed": "2021-05-04T10:48:03.280Z", + "id": "4410522677170672" + }, + { + "key": "__Host-nc_sameSiteCookiestrict", + "value": "true", + "expires": "2100-12-31T23:59:59.000Z", + "domain": "nuvola.xyz", + "path": "/", + "secure": true, + "httpOnly": true, + "extensions": [ "SameSite=strict" ], + "hostOnly": true, + "creation": "2021-05-04T10:48:03.280Z", + "lastAccessed": "2021-05-04T10:48:03.280Z", + "id": "7173600438498109" + }, + { + "key": "cookie_test", + "value": "test", + "expires": "2021-05-04T11:49:33.000Z", + "maxAge": 3600, + "domain": "nuvola.xyz", + "path": "/apps/dashboard", + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T10:49:20.818Z", + "lastAccessed": "2021-05-04T10:49:33.582Z", + "id": "3533626334860853" + }, + { + "key": "nc_username", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/apps/dashboard", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T10:49:20.818Z", + "lastAccessed": "2021-05-04T10:49:33.582Z", + "id": "06043516223469947" + }, + { + "key": "nc_token", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/apps/dashboard", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T10:49:20.819Z", + "lastAccessed": "2021-05-04T10:49:33.582Z", + "id": "1905708786875855" + }, + { + "key": "nc_session_id", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/apps/dashboard", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T10:49:20.819Z", + "lastAccessed": "2021-05-04T10:49:33.582Z", + "id": "4672408440036" + }, + { + "key": "nc_username", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "creation": "2021-05-04T10:49:20.819Z", + "lastAccessed": "2021-05-04T11:01:42.224Z", + "id": "7693972008479257" + }, + { + "key": "nc_token", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "creation": "2021-05-04T10:49:20.819Z", + "lastAccessed": "2021-05-04T11:01:42.224Z", + "id": "9731704342625882" + }, + { + "key": "nc_session_id", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "creation": "2021-05-04T10:49:20.819Z", + "lastAccessed": "2021-05-04T11:01:42.224Z", + "id": "3557084085645068" + }, + { + "key": "cookie_test", + "value": "test", + "expires": "2021-05-04T11:51:28.000Z", + "maxAge": 3600, + "domain": "nuvola.xyz", + "path": "/remote.php/dav/files", + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T10:51:28.651Z", + "lastAccessed": "2021-05-04T10:51:28.651Z", + "id": "8645799753636227" + }, + { + "key": "nc_username", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/remote.php/dav/files", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T10:51:44.619Z", + "lastAccessed": "2021-05-04T10:51:44.619Z", + "id": "9029869294914612" + }, + { + "key": "nc_token", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/remote.php/dav/files", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T10:51:44.619Z", + "lastAccessed": "2021-05-04T10:51:44.619Z", + "id": "6422488233461934" + }, + { + "key": "nc_session_id", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/remote.php/dav/files", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T10:51:44.619Z", + "lastAccessed": "2021-05-04T10:51:44.619Z", + "id": "7557066093242031" + }, + { + "key": "cookie_test", + "value": "test", + "expires": "2021-05-04T12:01:26.000Z", + "maxAge": 3600, + "domain": "nuvola.xyz", + "path": "/index.php/login", + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T11:01:26.192Z", + "lastAccessed": "2021-05-04T11:01:26.192Z", + "id": "7093910949861533" + }, + { + "key": "nc_username", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/index.php/login", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T11:01:42.223Z", + "lastAccessed": "2021-05-04T11:01:42.223Z", + "id": "677709203943275" + }, + { + "key": "nc_token", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/index.php/login", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T11:01:42.224Z", + "lastAccessed": "2021-05-04T11:01:42.224Z", + "id": "9477816718956802" + }, + { + "key": "nc_session_id", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "nuvola.xyz", + "path": "/index.php/login", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2021-05-04T11:01:42.224Z", + "lastAccessed": "2021-05-04T11:01:42.224Z", + "id": "41804757195232756" + }, + { + "key": "oc_sessionPassphrase", + "value": "pUIH26mXSdmGTfubB4dUzw8F8MQsUHdwnHCeo7ElPWIGDxXte2XC1M0EMyN5eriarJcMmkfh4kSGFI9%2BRcs%2BHt2gdDygddkz5I7Tl8KtjkwC%2BawIYuL8z3lobWTL%2BCy%2B", + "domain": "cloud.zigzag.academy", + "path": "/", + "secure": true, + "httpOnly": true, + "extensions": [ "SameSite=Lax" ], + "hostOnly": true, + "creation": "2022-01-17T00:03:10.727Z", + "lastAccessed": "2022-01-17T00:03:10.727Z", + "id": "06313521114695941" + }, + { + "key": "__Host-nc_sameSiteCookielax", + "value": "true", + "expires": "2100-12-31T23:59:59.000Z", + "domain": "cloud.zigzag.academy", + "path": "/", + "secure": true, + "httpOnly": true, + "extensions": [ "SameSite=lax" ], + "hostOnly": true, + "creation": "2022-01-17T00:03:10.728Z", + "lastAccessed": "2022-01-17T00:03:10.728Z", + "id": "860532957782806" + }, + { + "key": "__Host-nc_sameSiteCookiestrict", + "value": "true", + "expires": "2100-12-31T23:59:59.000Z", + "domain": "cloud.zigzag.academy", + "path": "/", + "secure": true, + "httpOnly": true, + "extensions": [ "SameSite=strict" ], + "hostOnly": true, + "creation": "2022-01-17T00:03:10.728Z", + "lastAccessed": "2022-01-17T00:03:10.728Z", + "id": "31117326197847706" + }, + { + "key": "ocl7d3yrw74j", + "value": "uecghev7rleu4uptmruhptuvto", + "domain": "cloud.zigzag.academy", + "path": "/", + "secure": true, + "httpOnly": true, + "extensions": [ "SameSite=Lax" ], + "hostOnly": true, + "creation": "2022-01-17T00:03:10.728Z", + "lastAccessed": "2022-01-17T00:13:28.249Z", + "id": "5917940161261273" + }, + { + "key": "cookie_test", + "value": "test", + "expires": "2022-01-17T01:03:09.000Z", + "maxAge": 3600, + "domain": "cloud.zigzag.academy", + "path": "/index.php/login", + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:03:10.728Z", + "lastAccessed": "2022-01-17T00:03:10.728Z", + "id": "009292942805962934" + }, + { + "key": "nc_username", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/index.php/login/v2", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:04:18.252Z", + "lastAccessed": "2022-01-17T00:04:18.252Z", + "id": "5470762369580981" + }, + { + "key": "nc_token", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/index.php/login/v2", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:04:18.252Z", + "lastAccessed": "2022-01-17T00:04:18.252Z", + "id": "4385020724400406" + }, + { + "key": "nc_session_id", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/index.php/login/v2", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:04:18.253Z", + "lastAccessed": "2022-01-17T00:04:18.253Z", + "id": "05297254853120181" + }, + { + "key": "nc_username", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "creation": "2022-01-17T00:04:18.253Z", + "lastAccessed": "2022-01-17T00:12:52.404Z", + "id": "46009278671166176" + }, + { + "key": "nc_token", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "creation": "2022-01-17T00:04:18.253Z", + "lastAccessed": "2022-01-17T00:12:52.404Z", + "id": "05812364381235913" + }, + { + "key": "nc_session_id", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "creation": "2022-01-17T00:04:18.253Z", + "lastAccessed": "2022-01-17T00:12:52.404Z", + "id": "3772361407666647" + }, + { + "key": "cookie_test", + "value": "test", + "expires": "2022-01-17T01:05:17.000Z", + "maxAge": 3600, + "domain": "cloud.zigzag.academy", + "path": "/apps/files", + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:05:18.388Z", + "lastAccessed": "2022-01-17T00:05:18.388Z", + "id": "08277815359810625" + }, + { + "key": "nc_username", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/apps/files", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:05:18.388Z", + "lastAccessed": "2022-01-17T00:05:18.388Z", + "id": "7962572269421415" + }, + { + "key": "nc_token", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/apps/files", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:05:18.388Z", + "lastAccessed": "2022-01-17T00:05:18.388Z", + "id": "8604909194077435" + }, + { + "key": "nc_session_id", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/apps/files", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:05:18.388Z", + "lastAccessed": "2022-01-17T00:05:18.388Z", + "id": "6043027104701622" + }, + { + "key": "cookie_test", + "value": "test", + "expires": "2022-01-17T01:11:28.000Z", + "maxAge": 3600, + "domain": "cloud.zigzag.academy", + "path": "/ocs/v1.php/cloud", + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:11:28.872Z", + "lastAccessed": "2022-01-17T00:11:28.872Z", + "id": "014769824799037545" + }, + { + "key": "nc_username", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/ocs/v1.php/cloud", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:12:52.404Z", + "lastAccessed": "2022-01-17T00:12:52.404Z", + "id": "7141536696124962" + }, + { + "key": "nc_token", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/ocs/v1.php/cloud", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:12:52.404Z", + "lastAccessed": "2022-01-17T00:12:52.404Z", + "id": "08455474112707173" + }, + { + "key": "nc_session_id", + "value": "deleted", + "expires": "1970-01-01T00:00:01.000Z", + "maxAge": 0, + "domain": "cloud.zigzag.academy", + "path": "/ocs/v1.php/cloud", + "secure": true, + "httpOnly": true, + "hostOnly": true, + "pathIsDefault": true, + "creation": "2022-01-17T00:12:52.404Z", + "lastAccessed": "2022-01-17T00:12:52.404Z", + "id": "141765916939931" + } + ], + "_type": "cookie_jar" + }, + { + "_id": "spc_f832b28de5204b4a88374d08ba93a8e2", + "parentId": "wrk_da47ff9b3d7f40f3bef9e90b46d6610b", + "modified": 1608987862912, + "created": 1608987862912, + "fileName": "Insomnia", + "contents": "", + "contentType": "yaml", + "_type": "api_spec" + }, + { + "_id": "env_77dfa781871a430f8e5014b07c9f9061", + "parentId": "env_b33db616c4a51618900a0a3da66d2d7b6ebaec2b", + "modified": 1642377578797, + "created": 1642377566379, + "name": "Nextcloud API", + "data": {}, + "dataPropertyOrder": {}, + "color": null, + "isPrivate": false, + "metaSortKey": 1642377566379, + "_type": "environment" + } + ] +} \ No newline at end of file diff --git a/Extensions/GenericExtensions.cs b/Extensions/GenericExtensions.cs index 7a4be63..13928de 100644 --- a/Extensions/GenericExtensions.cs +++ b/Extensions/GenericExtensions.cs @@ -101,8 +101,6 @@ public static class GenericExtensions return string.Format(localizer["{0:N0}MB"], size / 1_048_576); case < 1_048_576: return string.Format(localizer["{0}KB"], size / 1_024); - default: - return default; } } diff --git a/Helpers/Faker.cs b/Helpers/Faker.cs index c732481..11778d6 100644 --- a/Helpers/Faker.cs +++ b/Helpers/Faker.cs @@ -31,4 +31,17 @@ public static class Faker { return Users[Random.Shared.Next(0, Users.Count)]; } + + public static BoostingUser GetRandomBoostingUser() + { + var user = Users[Random.Shared.Next(0, Users.Count)]; + return new() + { + UserId = user.UserId, + DisplayName = user.DisplayName, + UserName = user.UserName, + PictureUrl = user.PictureUrl, + ProfileUrl = user.ProfileUrl + }; + } } \ No newline at end of file diff --git a/Models/BoostingUser.cs b/Models/BoostingUser.cs new file mode 100644 index 0000000..3a4fa9d --- /dev/null +++ b/Models/BoostingUser.cs @@ -0,0 +1,11 @@ +namespace decePubClient.Models +{ + public class BoostingUser + { + public string UserId { get; set; } = "45f14fa8-c40f-4121-997c-ef2542196a50"; + public string UserName { get; set; } = "@loosy@letsrulethe.world"; + public string DisplayName { get; set; } = "loosy"; + public string PictureUrl { get; set; } = "https://letsrulethe.world/media/c22d7a6dfcce11e4d2d8d4f6298842a36751b0a179dc5333d24663e4b93793b4.jpg"; + public string ProfileUrl { get; set; } = "https://letsrulethe.world/users/loosy"; + } +} diff --git a/Models/Message.cs b/Models/Message.cs index 895582b..63fb90f 100644 --- a/Models/Message.cs +++ b/Models/Message.cs @@ -13,7 +13,9 @@ namespace decePubClient.Models public string Title { get; set; } public string Content { get; set; } public bool IsFavourite { get; set; } = false; - public bool IsBoosted { get; set; } = false; + public int BoostsCounter { get; set; } = 0; + public bool IsBoostedByCurrentUser { get; set; } = false; + public BoostingUser BoostingUser { get; set; } public List Medias { get; set; } = new(); public DateTime CreatedAt { get; set; } diff --git a/Models/Types/ContentType.cs b/Models/Types/ContentType.cs index b7cce15..622d653 100644 --- a/Models/Types/ContentType.cs +++ b/Models/Types/ContentType.cs @@ -2,7 +2,7 @@ public enum ContentType { - PlainText, + PlainText = 1, HTML, Markdown } \ No newline at end of file diff --git a/Models/Types/MediaType.cs b/Models/Types/MediaType.cs index 2f59601..2a5ca7f 100644 --- a/Models/Types/MediaType.cs +++ b/Models/Types/MediaType.cs @@ -2,7 +2,7 @@ { public enum MediaType { - Images, + Images = 1, Video, Audio, Documents diff --git a/Models/Types/MessageType.cs b/Models/Types/MessageType.cs index 2b0e680..9c24a8b 100644 --- a/Models/Types/MessageType.cs +++ b/Models/Types/MessageType.cs @@ -2,7 +2,7 @@ { public enum MessageType { - Direct, + Direct = 1, FollowersOnly, Unlisted, Public diff --git a/Models/UploadMedia.cs b/Models/UploadMedia.cs index f9503b6..56cdfe9 100644 --- a/Models/UploadMedia.cs +++ b/Models/UploadMedia.cs @@ -9,8 +9,9 @@ public class UploadMedia public string FileName { get; set; } public string AltText { get; set; } public byte[] Blob { get; set; } - public string Base64Preview { get; set; } + [JsonIgnore, Bindable(false)] + public string Base64Preview { get; set; } [JsonIgnore, Bindable(false)] public long Size { get; set; } } \ No newline at end of file diff --git a/Pages/Administration.razor b/Pages/Administration.razor index 7c26b64..bf4673e 100644 --- a/Pages/Administration.razor +++ b/Pages/Administration.razor @@ -1,13 +1,181 @@ @page "/administration" @inherits PagesBase +@CascadingState.Localizer["Settings"] +

+ + + +

+ @CascadingState.Localizer["Users"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["Reports"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["ActivityPub?"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["Authentication"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["Emoji?"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["Frontend"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["Instance"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["Link formatter"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["Metadata"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["Policies"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+ + + +

+ @CascadingState.Localizer["Upload"] +

+
+ +
+

+ @CascadingState.Localizer["Empty"] +

+
+
+
+
@code { - + [CascadingParameter] CascadingState CascadingState { get; set; } } diff --git a/Pages/ExpandMessage.razor b/Pages/ExpandMessage.razor index 333c82e..9994600 100644 --- a/Pages/ExpandMessage.razor +++ b/Pages/ExpandMessage.razor @@ -10,7 +10,7 @@ @if (IsLoading) { - + } @foreach (var message in Ancestors) @@ -86,7 +86,8 @@ Medias = new(), CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, - IsBoosted = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0,100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, } }; @@ -103,7 +104,8 @@ Medias = new(), CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, - IsBoosted = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0,100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, } }; IsLoading = false; @@ -116,9 +118,6 @@ async Task OnMessageReply(MessageForm messageForm) { - await Task.Run(() => - { - }); var replyMessage = await MessagesService.SubmitMessage(messageForm); Descendants.Add(new() { @@ -149,59 +148,41 @@ async ValueTask OnMessageBoost(Message message) { - await Task.Run(() => - { - }); - message.IsBoosted = !message.IsBoosted; + if (message.IsBoostedByCurrentUser) return; var boostedMessage = await MessagesService.BoostUnboostMessage(message); + message.BoostsCounter += 1; + + //Add to the home page in the background } async ValueTask OnMessageFavourite(Message message) { - await Task.Run(() => - { - }); - message.IsFavourite = !message.IsFavourite; var favouriteMessage = await MessagesService.FavouriteUnfavouriteMessage(message); + message.IsFavourite = !message.IsFavourite; } async ValueTask OnMessageDelete(Message message) { - await Task.Run(() => - { - }); var deleteResult = await MessagesService.DeleteMessage(message); } async ValueTask OnMessageMediaDownload(Media media) { - await Task.Run(() => - { - }); await BlazorDownloadFileService.DownloadFileAsync(media.FileName, media.Blob, media.ContentType); } async ValueTask OnUserBlock(MessageUser messageUser) { - await Task.Run(() => - { - }); var blockResult = await MessagesService.BlockUserFromMessage(messageUser); } async ValueTask OnUserDirectMessage(Message message) { - await Task.Run(() => - { - }); var directMessage = await MessagesService.ReplyMessage(message, MessageType.Direct); } async ValueTask OnUserSilence(MessageUser messageUser) { - await Task.Run(() => - { - }); var silenceResult = await MessagesService.SilenceUserFromMessage(messageUser); } } \ No newline at end of file diff --git a/Pages/Index.razor b/Pages/Index.razor index 066d917..69ad790 100644 --- a/Pages/Index.razor +++ b/Pages/Index.razor @@ -11,7 +11,7 @@ @if (IsLoading) { - + } else if (Messages.Count == 0) { @@ -183,8 +183,39 @@ async ValueTask OnMessageBoost(Message message) { - message.IsBoosted = !message.IsBoosted; - var boostedMessage = await MessagesService.BoostUnboostMessage(message); + var boostedMessageTemp = await MessagesService.BoostUnboostMessage(message); + message.BoostsCounter = message.IsBoostedByCurrentUser ? message.BoostsCounter - 1 : message.BoostsCounter + 1; + message.IsBoostedByCurrentUser = !message.IsBoostedByCurrentUser; + if (message.IsBoostedByCurrentUser) + { + var boostedMessage = new Message + { + BoostingUser = new() + { + UserId = CascadingState.User.Id, + DisplayName = CascadingState.User.DisplayName, + PictureUrl = CascadingState.User.PictureUrl, + ProfileUrl = CascadingState.User.ProfileUrl, + UserName = CascadingState.User.UserName + }, + BoostsCounter = message.BoostsCounter, + Content = message.Content, + CreatedAt = message.CreatedAt, + IsBoostedByCurrentUser = true, + IsFavourite = message.IsFavourite, + Medias = message.Medias, + MessageId = message.MessageId, + MessageType = message.MessageType, + RootMessageId = message.RootMessageId, + Title = message.Title, + User = message.User + }; + Messages.Insert(0, boostedMessage); + } + else + { + Messages.RemoveAll(m => m.MessageId == message.MessageId && m.BoostingUser != null && m.BoostingUser.UserId == CascadingState.User.Id); + } } async ValueTask OnMessageFavourite(Message message) diff --git a/Pages/Settings.razor b/Pages/Settings.razor index 7b0bed6..895ac7b 100644 --- a/Pages/Settings.razor +++ b/Pages/Settings.razor @@ -9,7 +9,7 @@

- @CascadingState.Localizer["General"] + @CascadingState.Localizer["General"]

@@ -24,7 +24,7 @@

- @CascadingState.Localizer["Profile"] + @CascadingState.Localizer["Profile"]

@@ -39,7 +39,7 @@

- @CascadingState.Localizer["Data import/export"] + @CascadingState.Localizer["Data import/export"]

@@ -54,7 +54,7 @@

- @CascadingState.Localizer["Mutes/Blocks"] + @CascadingState.Localizer["Mutes/Blocks"]

diff --git a/Services/IStorage.cs b/Services/IStorage.cs index b996a53..fb45a29 100644 --- a/Services/IStorage.cs +++ b/Services/IStorage.cs @@ -66,7 +66,8 @@ namespace decePubClient.Services Medias = new(), CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, - IsBoosted = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0, 100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { @@ -79,7 +80,8 @@ namespace decePubClient.Services Medias = new(), CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, - IsBoosted = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0, 100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { @@ -92,7 +94,8 @@ namespace decePubClient.Services Medias = new(), CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, - IsBoosted = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0, 100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { @@ -114,7 +117,8 @@ namespace decePubClient.Services }, CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, - IsBoosted = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0, 100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { @@ -136,12 +140,37 @@ namespace decePubClient.Services }, CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, - IsBoosted = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0, 100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { RootMessageId = default, - MessageId = "96025b43-5235-44e9-a3fa-98df31edfbfb", + MessageId = "277ca76b-aaad-4aa6-95fb-25f59e2fddf9", + User = Faker.GetRandomUser(), + MessageType = (MessageType)Random.Shared.Next(0, 4), + Title = default, + Content = "test audio", + Medias = new() + { + new() + { + FileName = "09bfb06d0096975f.mp3", + Url = "https://cdn.masto.host/mastodonuno/media_attachments/files/107/798/288/501/917/857/original/09bfb06d0096975f.mp3", + AltText = "09bfb06d0096975f.mp3", + ContentType = "audio/mp3" + } + }, + CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), + IsFavourite = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0, 100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, + }); + messages.Add(new() + { + BoostingUser = Faker.GetRandomBoostingUser(), + RootMessageId = default, + MessageId = "de64e520-a7d3-4f31-b5a9-ba236f3b146c", User = Faker.GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = default, @@ -172,7 +201,45 @@ namespace decePubClient.Services }, CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, - IsBoosted = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0,100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, + }); + messages.Add(new() + { + RootMessageId = default, + MessageId = "de64e520-a7d3-4f31-b5a9-ba236f3b146c", + User = Faker.GetRandomUser(), + MessageType = (MessageType)Random.Shared.Next(0, 4), + Title = default, + Content = "test immagini", + Medias = new() + { + new() + { + FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", + Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", + AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", + ContentType = "image/jpg" + }, + new() + { + FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", + Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", + AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", + ContentType = "image/jpg" + }, + new() + { + FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", + Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", + AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", + ContentType = "image/jpg" + } + }, + CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), + IsFavourite = Random.Shared.Next() % 2 == 0, + BoostsCounter = Random.Shared.Next(0,100), + IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); } diff --git a/package-lock.json b/package-lock.json index acbae05..346bfae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -86,6 +86,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -94,12 +95,14 @@ "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -169,12 +172,14 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -183,6 +188,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -197,7 +203,8 @@ "array-union": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true }, "autoprefixer": { "version": "10.4.2", @@ -216,12 +223,14 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -271,6 +280,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -286,6 +296,7 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -296,6 +307,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -303,7 +315,8 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "cosmiconfig": { "version": "7.0.1", @@ -333,7 +346,8 @@ "dependency-graph": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==" + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true }, "detective": { "version": "5.2.0", @@ -356,6 +370,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "requires": { "path-type": "^4.0.0" } @@ -375,7 +390,8 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "error-ex": { "version": "1.3.2", @@ -389,7 +405,8 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", @@ -401,6 +418,7 @@ "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -413,6 +431,7 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, "requires": { "reusify": "^1.0.4" } @@ -421,6 +440,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -435,6 +455,7 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -445,6 +466,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true }, "function-bind": { @@ -456,17 +478,20 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true }, "get-stdin": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==" + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -475,6 +500,7 @@ "version": "12.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, "requires": { "array-union": "^3.0.1", "dir-glob": "^3.0.1", @@ -487,7 +513,8 @@ "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true }, "has": { "version": "1.0.3", @@ -507,7 +534,8 @@ "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true }, "import-fresh": { "version": "3.3.0", @@ -529,6 +557,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -545,17 +574,20 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -563,7 +595,8 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "js-tokens": { "version": "4.0.0", @@ -581,6 +614,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" @@ -589,7 +623,8 @@ "lilconfig": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==" + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "dev": true }, "lines-and-columns": { "version": "1.2.4", @@ -618,12 +653,14 @@ "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.2.3" @@ -656,7 +693,8 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "normalize-range": { "version": "0.1.2", @@ -700,22 +738,26 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true }, "postcss": { "version": "8.4.6", @@ -732,6 +774,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "dev": true, "requires": { "chokidar": "^3.3.0", "dependency-graph": "^0.11.0", @@ -777,6 +820,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.1.tgz", "integrity": "sha512-c/9XYboIbSEUZpiD1UQD0IKiUe8n9WHYV7YFe7X7J+ZwCsEKkUJSFWjS9hBU1RR9THR7jMXst8sxiqP0jjo2mg==", + "dev": true, "requires": { "lilconfig": "^2.0.4", "yaml": "^1.10.2" @@ -804,6 +848,7 @@ "version": "7.0.5", "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, "requires": { "picocolors": "^1.0.0", "thenby": "^1.3.4" @@ -828,12 +873,14 @@ "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true }, "quick-lru": { "version": "5.1.1", @@ -845,6 +892,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, "requires": { "pify": "^2.3.0" } @@ -853,6 +901,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -860,7 +909,8 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "resolve": { "version": "1.22.0", @@ -882,12 +932,14 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "requires": { "queue-microtask": "^1.2.2" } @@ -895,7 +947,8 @@ "slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true }, "source-map-js": { "version": "1.0.2", @@ -907,6 +960,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -917,6 +971,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -978,12 +1033,14 @@ "thenby": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==" + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -991,7 +1048,8 @@ "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true }, "util-deprecate": { "version": "1.0.2", @@ -1003,6 +1061,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -1018,17 +1077,20 @@ "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true }, "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true }, "yargs": { "version": "17.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -1042,7 +1104,8 @@ "yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==" + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true } } } diff --git a/package.json b/package.json index 93d60dc..0d01a9f 100644 --- a/package.json +++ b/package.json @@ -12,10 +12,9 @@ }, "author": "", "license": "ISC", - "dependencies": { - "postcss-cli": "^9.1.0" - }, + "dependencies": {}, "devDependencies": { + "postcss-cli": "^9.1.0", "@tailwindcss/aspect-ratio": "^0.4.0", "@tailwindcss/forms": "^0.4.0", "@tailwindcss/line-clamp": "^0.3.0", diff --git a/tailwind.config.js b/tailwind.config.js index 8caee77..1002fe8 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -3,7 +3,7 @@ module.exports = { content: [ './**/*.cs', './**/*.html', - './**/*.razor' + './**/*.razor' ], theme: { extend: {}, diff --git a/wwwroot/css/style.min.css b/wwwroot/css/style.min.css index d8413b0..aa640b8 100644 --- a/wwwroot/css/style.min.css +++ b/wwwroot/css/style.min.css @@ -8578,6 +8578,10 @@ video{ font-size:1.125rem; line-height:1.75rem; } +.text-xl{ + font-size:1.25rem; + line-height:1.75rem; +} .text-4xl{ font-size:2.25rem; line-height:2.5rem; diff --git a/wwwroot/vendor/tailwind.css b/wwwroot/vendor/tailwind.css index 735095f..1d6228a 100644 --- a/wwwroot/vendor/tailwind.css +++ b/wwwroot/vendor/tailwind.css @@ -729,6 +729,10 @@ video{ font-size:1.125rem; line-height:1.75rem; } +.text-xl{ + font-size:1.25rem; + line-height:1.75rem; +} .text-4xl{ font-size:2.25rem; line-height:2.5rem;