Commit Graph

81 Commits (8253ac25d1570a21bee52d4dfa7d62ed239fc7f0)

Author SHA1 Message Date
surfdude29 b4724b93e8
Update `blueskyweb.xyz` links to `bsky.social` (#2830)
* Update blogpost link to bsky.social and remove unnecessary localisation params at end of Play Store URL in README.md

* Update privacy policy link to bsky.social in PrivacyPolicy.tsx

* Update TOS link to bsky.social in TermsOfService.tsx

* Update links to bsky.social in Links.tsx

* Update links to bsky.social in SplashScreen.web.tsx

* Update link to bsky.social in base.html

* Update links to bsky.social in HomeLoggedOutCTA.tsx

* Update links to bsky.social in RightNav.tsx

* Update links to bsky.social in Drawer.tsx

* Update DMCA link to bsky.social in Modal.tsx

* Update link to copyright policy on bsky.social in CopyrightPolicy.tsx

* Update link to bsky.social in CommunityGuidelines.tsx

* Update links to bsky.social in Settings.tsx

* Update to bsky.social in Typography.tsx
2024-02-12 15:38:45 +00:00
Liberal dev de705606d0
fix google translate appear (#2784) 2024-02-08 12:04:36 -08:00
Eric Bailey 541eb8ded1
Update open graph data (#2760)
* Update open graph data

* Format

* Fix typo
2024-02-06 18:52:04 -08:00
Hailey ec86282403
Options for selecting dark theme, fix some white flashes when in dark mode (#2722)
* add dark theme selection to settings/schema

* use `useThemePrefs` where needed

* adjust theme providers to support various themes

* update storybook

* handle web themes

* better themeing for web

* dont show dark theme prefs when color mode is light

* drop the inverted text change on oled theme

* get the color mode inside of `useColorModeTheme`

* use `ThemeName` type everywhere

* typo

* use dim/dark instead of dark/oled

* prevent any fickers on web

* fix styles

* use `dim` for dark default

* more cleanup

* 🤔

* set system background color

* ts
2024-02-06 11:43:51 -08:00
Hailey 856f80fc6d
fix some youtube videos not properly loading (#2726)
* add player iframe to bskyweb

* iframe for youtube content

* update tests

* ts error
2024-02-06 11:05:17 -08:00
Jaz 3ed1877e4b Support previews for links using DIDs and not just handles 2024-02-03 22:24:54 -08:00
Eric Bailey 08a11f628e
Revert text selection bg color change (#2689) 2024-01-30 15:48:18 -08:00
Eric Bailey 68639db76f
Fix chrome font weight rendering (#2694) 2024-01-30 15:09:43 -08:00
Eric Bailey 3371038f7d
New Onboarding (#2596)
* Add round and square buttons

* Allow some style for buttons, add icons

* Change text selection color

* Center button text, whoops

* Outer layout, some primitive updates

* WIP

* onboarding feed prefs (#2590)

* add `style` to toggle label to modify text style

* Revert "add `style` to toggle label to modify text style"

This reverts commit 8f4b517b8585ca64a4bf44f6cb40ac070ece8932.

* following feed prefs

* remove unnecessary memo

* reusable divider component

* org imports

* add finished screen

* Theme SelectedAccountCard

* Require at least 3 interests

* Placeholder save logic

* WIP algo feeds

* Improve lineHeight handling, add RichText, improve Link by adding InlineLink

* Inherit lineHeight in heading comps

* Algo feeds mostly good

* Topical feeds ish

* Layout cleanup

* Improve button styles

* moderation prefs for onboarding (#2594)

* WIP algo feeds

* modify controlalbelgroup typing for easy .map()

* adjust padding on button

* add moderation screen

* add moderation screen

* add moderation screen

---------

Co-authored-by: Eric Bailey <git@esb.lol>

* Fix toggle button styles

* A11y props on outer portal

* Put it all on red

* New data shape

* Handle mock data

* Bulk write (not yet)

* Remove interests validation

* Clean up interests

* i18n layout and first step

* Clean up suggested follows screen

* Clean up following step

* Clean up algo feeds step

* Clean up topical feeds

* Add skeleton for feed card

* WIP moderation step

* cleanup moderation styles (#2605)

* cleanup moderation styles

* fix(?) toggle button group styles

* adjust toggle to fit any screen

* Some more cleanup

* Icons

* ToggleButton tweaks

* Reset

* Hook up data

* Better suggestions

* Bulk write

* Some logging

* Use new api

* Concat topical feeds

* Metrics

* Disable links in RichText, feedcards

* Tweak primary feed cards

* Update metrics

* Fix layout shift

* Fix ToggleButton again, whoops

* Error state

* Bump api package, ensure interests are saved

* Better fix for autofill

* i18n, button positions

* Remove unused export

* Add default prefs object

* Fix overflow in user cards

* Add 2 lines of bios to suggested accounts cards

* Nits

* Don't resolve facets by default

* Update storybook

* Disable flag for now

* Remove age dialog from moderations step

* Improvements and tweaks to new onboarding

---------

Co-authored-by: Hailey <153161762+haileyok@users.noreply.github.com>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2024-01-25 20:22:40 -08:00
bnewbold a2f49bb08c
more social card tweaks, and include in RSS as well (#2599)
* move link expander to new file, add test, refactor a bit

* text formatting: include indication if a quote post exists

* rss: include expanded links
2024-01-23 13:16:32 -08:00
Zach Lipton c58e65000d
Include expanded urls in social cards (#2427)
* include expanded urls in social cards (#2427)

* break expandPostLinks into its own function, add bounds checking
2024-01-23 13:04:22 -08:00
Gargaj cdbdb37aac
Ensure OG:Image is filled when post contains a record (#2586) 2024-01-23 13:02:53 -08:00
dan f015229acf
New Web Layout (#2126)
* Rip out virtualization on the web

* Screw around with layout

* onEndReached

* scrollToOffset

* Fix background

* onScroll

* Shell bars

* More scroll

* Fixes

* position: sticky

* Clean up 1

* Clean up 2

* Undo PagerWithHeader changes and fork it

* Trim down both versions

* Cleanup 3

* Memoize, lint

* Don't scroll away modal or lightbox

* Add content-visibility for rows

* Fix composer

* Fix types

* Fix borked scroll animation

* Fixes to layout

* More FlatList parity

* Layout fixes

* Fix more layout

* More layout

* More layouts

* Fix profile layout

* Remove onScroll

* Display: none inactive pages

* Add an intermediate List component

* Fix type

* Add onScrolledDownChange

* Port pager to use onScrolledDownChange

* Fix on mobile

* Don't pass down onScroll (replacement TBD)

* Remove resetMainScroll

* Replace onMainScroll with MainScrollProvider

* Hook ScrollProvider to pager

* Fix the remaining special case

* Optimize a bit

* Enforce that onScroll cannot be passed

* Keep value updated even if no handler

* Also memo it

* Move the fork to List.web

* Add scroll handler

* Consolidate List props a bit

* More stuff

* Rm unused

* Simplify

* Make isScrolledDown work

* Oops

* Fixes

* Hook up context scroll handlers

* Scroll restore for tabs

* Route scroll restoration POC

* Fix some issues with restoration

* Remove bad idea

* Fix pager scroll restoration

* Undo accidental locale changes

* onContentSizeChange

* Scroll to post

* Better positioning

* Layout fixes

* Factor out navigation stuff

* Cleanup

* Oops

* Cleanup

* Fixes and types

* Naming etc

* Fix crash

* Match FL semantics

* Snap the header scroll on the web

* Add body scroll lock

* Scroll to top on search

* Fix types

* Typos

* Fix Safari overflow

* Fix search positioning

* Add border

* Patch react navigation

* Revert "Patch react navigation"

This reverts commit 62516ed9c20410d166e1582b43b656c819495ddc.

* fixes

* scroll

* scrollbar

* cleanup unrelated

* undo unrel

* flatter

* Fix css

* twk
2024-01-22 14:46:32 -08:00
Eric Bailey 9803e17449
Use new palette values for main palette (#2566)
* Use new palette values for main palette

* Drawer bg in dark mode
2024-01-18 20:54:20 -08:00
Eric Bailey 66b8774ecb
New component library based on ALF (#2459)
* Install on native as well

* Add button and link components

* Comments

* Use new prop

* Add some form elements

* Add labels to input

* Fix line height, add suffix

* Date inputs

* Autofill styles

* Clean up InputDate types

* Improve types for InputText, value handling

* Enforce a11y props on buttons

* Add Dialog, Portal

* Dialog contents

* Native dialog

* Clean up

* Fix animations

* Improvements to web modal, exiting still broken

* Clean up dialog types

* Add Prompt, Dialog refinement, mobile refinement

* Integrate new design tokens, reorg storybook

* Button colors

* Dim mode

* Reorg

* Some styles

* Toggles

* Improve a11y

* Autosize dialog, handle max height, Dialog.ScrolLView not working

* Try to use BottomSheet's own APIs

* Scrollable dialogs

* Add web shadow

* Handle overscroll

* Styles

* Dialog text input

* Shadows

* Button focus states

* Button pressed states

* Gradient poc

* Gradient colors and hovers

* Add hrefAttrs to Link

* Some more a11y

* Toggle invalid states

* Update dialog descriptions for demo

* Icons

* WIP Toggle cleanup

* Refactor toggle to not rely on immediate children

* Make Toggle controlled

* Clean up Toggles storybook

* ToggleButton styles

* Improve a11y labels

* ToggleButton hover darkmode

* Some i18n

* Refactor input

* Allow extension of input

* Remove old input

* Improve icons, add CalendarDays

* Refactor DateField, web done

* Add label example

* Clean up old InputDate, DateField android, text area example

* Consistent imports

* Button context, icons

* Add todo

* Add closeAllDialogs control

* Alignment

* Expand color palette

* Hitslops, add shortcut to Storybook in dev

* Fix multiline on ios

* Mark dialog close button as unused
2024-01-18 20:28:04 -06:00
bnewbold 1d3e20220d
rss: filter out replies server-side (#2518) 2024-01-15 13:13:15 -08:00
Mary 0442dcc1a0
fix: add the appropriate color-scheme for dark mode (#2480) 2024-01-10 20:56:21 -08:00
Paul Frazee 0dae24e78f
Additional embed sources and external-media consent controls (#2424)
* add apple music embed

* add vimeo embed

* add logic for tenor and giphy embeds

* keep it simple, use playerUri for images too

* add gif embed player

* lint, fix tests

* remove links that can't produce a thumb

* Revert "remove links that can't produce a thumb"

This reverts commit 985b92b4e622db936bb0c79fdf324099b9c8fcd8.

* Revert "Revert "remove links that can't produce a thumb""

This reverts commit 4895ded8b5120c4fc52b43ae85c9a01ea0b1a733.

* Revert "Revert "Revert "remove links that can't produce a thumb"""

This reverts commit 36d04b517ba5139e1639f2eda28d7f9aaa2dbfb6.

* properly obtain giphy metadata regardless of used url

* test fixes

* adjust gif player

* add all twitch embed types

* support m.youtube links

* few logic adjustments

* adjust spotify player height

* prefetch gif before showing

* use memory-disk cache policy on gifs

* use `disk` cachePolicy on ios - can't start/stop animation

* support pause/play on web

* onLoad fix

* remove extra pressable, add accessibility, fix scale issues

* improve size of embed

* add settings

* fix(?) settings

* add source to embed player params

* update tests

* better naming and settings options

* consent modal

* fix test id

* why is webstorm adding .tsx

* web modal

* simplify types

* adjust snap points

* remove unnecessary yt embed library. just use the webview always

* remove now useless WebGifStill 😭

* more type cleanup

* more type cleanup

* combine parse and prefs check in one memo

* improve dimensions of youtube shorts

* oops didn't commit the test 🫥

* add shorts as separate embed type

* fix up schema

* shorts modal

* hide gif details

* support localized spotify embeds

* more cleanup

* improve look and accessibility of gif embeds

* Update routing for the external embeds settings page

* Update and simplify the external embed preferences screen

* Update copy in embedconsent modal and add 'allow all' button

---------

Co-authored-by: Hailey <me@haileyok.com>
2024-01-04 17:37:36 -08:00
snek 929987f806
support multiple og:image tags (#2305) 2023-12-27 18:13:53 +01:00
Paul Frazee bc5e28057a
Update some brand assets (#2301) 2023-12-24 14:32:23 -08:00
bnewbold b922b83820
yet more RSS tweaks (#2289)
* rss: full URL in RSS link; use request Host in URLs

Full URL syntax on request from third parties.

Using the actual request host should fix issues with non-bsky-production
deployments. It is HTTPS-only, so doesn't work perfectly for local dev.

* rss: make /profile/{handle}/rss an HTTP redirect

Motivation is easier discoverability of RSS feed.
2023-12-23 12:38:21 -08:00
bnewbold ee20092735
rss: isPermaLink (case-sensitive) (#2271) 2023-12-22 13:06:52 -08:00
bnewbold a5c151c041
bskyweb: iterate on RSS format, based on feedback (#2269)
Thanks to Dave Winer (@scripting)!
2023-12-22 17:07:25 +01:00
bnewbold 3e3a72a366
basic public RSS feed for profiles (#2229)
* web: initial implementation of profile RSS feed

* re-work RSS feed to use DID in URL, not handle

Shouldn't have RSS feeds break when folks change handle.

* rss: tweak XML
2023-12-18 23:52:39 +04:00
bnewbold 8da5a375a5
tweak social card meta yet again (#2228)
- handle missing content (PWI opt-out) better
- use opengraph "article" and "profile" types, not just website for everything
- fix timestamps, and used indexed at not created at
2023-12-18 20:24:25 +04:00
bnewbold 0c47f6dc98
bskyweb: update golang indigo dep (from May!), and some small devex tweaks (#2227)
* bskyweb: update deps to current indigo

* bskyweb: refactor handles to flatten control flow, and update to current indigo

* go Makefile: remove --debug (not working)

* bskyweb: default to public appview API instance

* make: do internationalization build as part of build-web
2023-12-18 19:31:48 +04:00
Jaz bc42747297
Don't create embeds of profiles/posts from users who ask not to be sh… (#2189)
* Don't create embeds of profiles/posts from users who ask not to be shown in public views

* Formatting cleanup

* Bump workflow file to build an image for this branch
2023-12-12 13:10:13 -08:00
Eric Bailey cdc1d08267
Apply color theme to HTML page itself (#2132) 2023-12-07 11:00:44 -08:00
Noritada Kobayashi 7158157f5f
Correct meta tag attributes (#1829) 2023-11-07 09:56:44 -08:00
Paul Frazee f57a8cf8ba
Lists updates: curate lists and blocklists (#1689)
* Add lists screen

* Update Lists screen and List create/edit modal to support curate lists

* Rework the ProfileList screen and add curatelist support

* More ProfileList progress

* Update list modals

* Rename mutelists to modlists

* Layout updates/fixes

* More layout fixes

* Modal fixes

* List list screen updates

* Update feed page to give more info

* Layout fixes to ListAddUser modal

* Layout fixes to FlatList and Feed on desktop

* Layout fix to LoadLatestBtn on Web

* Handle did resolution before showing the ProfileList screen

* Rename the CustomFeed routes to ProfileFeed for consistency

* Fix layout issues with the pager and feeds

* Factor out some common code

* Fix UIs for mobile

* Fix user list rendering

* Fix: dont bubble custom feed errors in the merge feed

* Refactor feed models to reduce usage of the SavedFeeds model

* Replace CustomFeedModel with FeedSourceModel which abstracts feed-generators and lists

* Add the ability to pin lists

* Add pinned lists to mobile

* Remove dead code

* Rework the ProfileScreenHeader to create more real-estate for action buttons

* Improve layout behavior on web mobile breakpoints

* Refactor feed & list pages to use new Tabs layout component

* Refactor to ProfileSubpageHeader

* Implement modlist block and mute

* Switch to new api and just modify state on modlist actions

* Fix some UI overflows

* Fix: dont show edit buttons on lists you dont own

* Fix alignment issue on long titles

* Improve loading and error states for feeds & lists

* Update list dropdown icons for ios

* Fetch feed display names in the mergefeed

* Improve rendering off offline feeds in the feed-listing page

* Update Feeds listing UI to react to changes in saved/pinned state

* Refresh list and feed on posts tab press

* Fix pinned feed ordering UI

* Fixes to list pinning

* Remove view=simple qp

* Add list to feed tuners

* Render richtext

* Add list href

* Add 'view avatar'

* Remove unused import

* Fix missing import

* Correctly reflect block by list state

* Replace the <Tabs> component with the more effective <PagerWithHeader> component

* Improve the responsiveness of the PagerWithHeader

* Fix visual jank in the feed loading state

* Improve performance of the PagerWithHeader

* Fix a case that would cause the header to animate too aggressively

* Add the ability to scroll to top by tapping the selected tab

* Fix unit test runner

* Update modlists test

* Add curatelist tests

* Fix: remove link behavior in ListAddUser modal

* Fix some layout jank in the PagerWithHeader on iOS

* Simplify ListItems header rendering

* Wait for the appview to recognize the list before proceeding with list creation

* Fix glitch in the onPageSelecting index of the Pager

* Fix until()

* Copy fix

Co-authored-by: Eric Bailey <git@esb.lol>

---------

Co-authored-by: Eric Bailey <git@esb.lol>
2023-11-01 16:15:40 -07:00
dan f9944b55e2
Simplify loading emoji data (#1790) 2023-11-01 17:49:07 +00:00
Jake Gold d98e3a8b45 bskyweb: add rate limiting to reduce DoSability 2023-10-11 13:00:59 -07:00
Paul Frazee 88b95df200
Update backend routes to match frontend (#1515) 2023-09-22 17:04:36 -07:00
Paul Frazee 2963fb4c6d
Fix scrollbar gutters on web (#1401)
* Fix scrollbar gutters on web

* Fix typecheck
2023-09-07 09:32:14 -07:00
Ansh 9446c67880
Move `PreferencesHomeFeed` to a screen instead of a modal (#1335)
* move `PreferencesHomeFeed` to a screen instead of a modal

* add web route for home feed preferences

* upgrade `@miblanchard/react-native-slider` to fix lint

* fix web route naming

* fix desktop web styling

* add `react-native-slider` mock
2023-08-30 15:21:12 -07:00
bnewbold 461c1da6de
update golang to v1.21; set GOEXPERIMENT=loopvar (#1256)
* golang: update to v1.21, and set GOEXPERIMENT=loopvar

* golang: go mod tidy
2023-08-28 19:35:23 -07:00
Paul Frazee cc2838761b
Replace web editor link behavior (#1319)
* Replace web editor link behavior (close #1293) (close #1292)

* Update link decorator to match rich text link detector
2023-08-28 18:40:45 -07:00
bnewbold a115c17a09
bskyweb: switch from PDS backend to AppView backend (#1065)
* bskyweb: replace PDS with AppView (no auth)

* bskyweb: update example .env files for appview
2023-08-24 16:00:45 -07:00
Ansh 6487a87542
[APP-836] Emoji picker for web (#1254)
* add emoji-mart package for emoji dropdown picker

* remove emoji picker modal

* load emoji mart data not as part of the main bundle

* remove @emoji-mart/data

* setup emoji insertion with events

* get emoji data from local static assets

* close emoji picker after one emoji has been inserted

* Switch emoji picker trigger to an icon

* Update emoji-mart-data.js

* make grabbing emoji data work on more browsers

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-08-23 16:29:23 -07:00
Jake Gold b4931fa185 bskyweb: cache /static/{images,js} for 1 week, other files for 1 hour 2023-08-23 09:23:09 -07:00
Eric Bailey 548ec6c82d
add title attr to text text links (#1228)
* add title attr to text text links

* Revert "add title attr to text text links"

This reverts commit c028cd184efd3b2788d8f46134eecf521e5d7b07.

* use css tooltips

* add to expanded post state

* handle theming

* add to bskyweb
2023-08-22 11:04:17 -07:00
Jake Gold 3ae5a6b631 bskyweb: publish Bluesky IPs 2023-08-03 11:02:34 -07:00
Jonty Wareing f05c2f06d6
Fix missing post text in noscript post view (#981) 2023-07-06 12:12:00 -05:00
Ansh 0be14a1b46
[APP-680] Allow users to add details when reporting (#854)
* allow user to add text when reporting post

* add DMCA override

* increase modal size

* fix dark mode text color

* re-organize components

* add details option when reporting account

* hard-code modal size so it works on smaller devices

* fix modal on web

* Remove outline from textarea focus

* Tweak some styles

* Fix lint

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-06-07 11:11:04 -05:00
Keith Cirkel a67eaa6ace
remove X-UA-Compatible meta tag (#857)
This meta tag allows Internet Explorer 7 through 11 to change which document mode they would use. As of 2013, however, [Microsoft Edge would ignore this value except under strict circumstances](https://learn.microsoft.com/en-gb/archive/blogs/ie/living-on-the-edge-our-next-step-in-helping-the-web-just-work). This meta tag is ignored in modern versions of Edge (Chromium based).

[Internet Explorer 11 reached EOL in June 2022](https://blogs.windows.com/windowsexperience/2022/06/15/internet-explorer-11-has-retired-and-is-officially-out-of-support-what-you-need-to-know/) and today makes up an exceedingly small proportion of internet traffic.

It's unlikely that anyone is browsing on Internet Explorer, and less
likely that they're browsing on IE<11, which makes this tag redundant.

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
2023-06-06 09:33:23 -05:00
Keith Cirkel b33626c3c7
remove trailing / on meta tags (#856)
* remove trailing / on meta tags

Meta tags are [void elements](https://html.spec.whatwg.org/multipage/syntax.html#void-elements) which means they are self closing, and do not require a closing tag, nor a trailing `/`.

The trailing `/` is something that was required in XHTML but [is ignored
in HTML](https://html.spec.whatwg.org/multipage/syntax.html#start-tags). Quoth the spec:

> On void elements, [the trailing slash] does not mark the start tag as self-closing but instead is unnecessary and has no effect of any kind. For such void elements, it should be used only with caution — especially since, if directly preceded by an unquoted attribute value, it becomes part of the attribute value rather than being discarded by the parser.

* remove trailing / on link tags
2023-06-06 09:32:30 -05:00
Jake Gold f416798c5f bskyweb: add security.txt 2023-06-01 11:47:59 -07:00
Jake Gold 49840f3a27
bskyweb: gzip HTTP responses + some other minor improvements (#826)
* bskyweb: gzip HTTP responses + JSON logging + minor refactoring

* reduce timeout and max header size

* add a security.txt
2023-06-01 10:22:02 -05:00
bnewbold 31a41d9b09
bskyweb: run-dev-bskyweb in debug mode (#827) 2023-05-31 20:44:50 -07:00
Josh Soref c808721938
Spelling (#772)
* spelling: account

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: activated

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: additional

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: appropriate

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: bskyweb

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: description

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: display

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: highlighted

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: javascript

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: locally-hosted

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: notification

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: occurring

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: parenthetical

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: preexisting

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: prefetched

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: punctuation

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: simplicity

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

---------

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-05-30 14:46:43 -05:00