Repository navigation
v1.0.0 Beta 30 – The Big Three-oh!
·
18 commits
to main
since this release
This release adds a number of new features, fixes a suite of bugs and adds many quality of life improvements.
Key new features include:
- A new page post type
- Support for
profilescope in authentication flows and newuserinfoendpoint - Ability to add multiple files at once, or pick from previously uploaded media files
- Select syndication targets when using the share bookmarket
It also begins adding support for Microsub, initially by providing the ability to interact with channels and timelines. Install the @indiekit/endpoint-microsub plug-in to get started (a later release will include this plug-in by default).
Much of this release wouldn’t be possible without the help of @rmdes, who incorporated many of these improvements and fixes from his fork. Thanks also goes to @aciccarello for several authorisation improvements and feedback on other issues.
💟 Indiekit is supported by its community. This release was sponsored by @abhas and @sentience.
Features
- add
fromCaughtmethod toIndiekitError(cbf3654) - add page post type (8f1fdbe), closes #954
- create-indiekit: log full error if setup cancelled (f337e01)
- create-indiekit: offer the file system content store (577ba98)
- endpoint-auth: support
profilescope and adduserinfoendpoint (7a27fa6), closes #885 - endpoint-auth: use
urlfilter for endpoint urls (07f959e) - endpoint-files: upload several files at once (0c10dc7), closes #952
- endpoint-micropub,endpoint-media: store a UUIDv7
uidon create (e1f3ae7) - endpoint-micropub: discover post type from its vocabulary (1878252), closes #950
- endpoint-micropub: filter the list of posts by text and category (b792c1a)
- endpoint-microsub: add core Microsub server with channels and timeline (b6a74a5), closes #975
- endpoint-microsub: add localised strings (e8bc4df)
- endpoint-posts: pre-fill the create form from
urlandnamequery parameters (2f89cd1) - endpoint-share: let the share form choose syndication targets (54f193e)
- endpoint-syndicate: log full error when syndicating to targets (fcbb89b)
- endpoint-syndicate: syndicate every post awaiting syndication (f8c7376)
- endpoint-webmention-io: require
token(e67466f) - frontend: choose an existing media file from the editor and file fields (4d71529)
- frontend: replace
markdown-it-prismwithmicrolighter(2d21f8c) - frontend: use
urlfilter for absolute urls in default layout (0f8640e) - indiekit: add a UUIDv7 backfill for posts without a
uid(2581772) - indiekit: backfill missing UIDs before serving requests (59b0ff2)
- indiekit: declare a collection's indexes with
addCollection(df0b8f8) - indiekit: index post and media data on
properties.uid(42fe338) - indiekit: log full error when getting
serviceworker.js(ed98b43) - indiekit: simplify homepage guidance (526ed5d)
- indiekit: show more configured endpoints in homepage guidance (5637cf4)
- store-bitbucket: require
user,repoandtoken(13275e7) - store-ftp: require
userandpassword(5d7feaf) - store-gitea: require
token(58136d3) - store-github: require
token(22c8903) - store-gitlab: require
token(65e5444) - store-s3: require
accessandsecretkeys (ffde16e) - syndicator-bluesky: make link text in post content clickable (7b38485), closes #948
- syndicator-bluesky: require
password(8c91c9f) - syndicator-internet-archive: require
accessandsecretkeys (ab5bb9f) - syndicator-mastodon: require
accesstoken (ebf6225) - util: paginate on
properties.uid(b2a1d2f) - util: provide clearer debug message when connecting to MongoDB (8b8a351)
- util: remove
getObjectIdhelper (5827617)
Bug Fixes
- only use a status code from an Indiekit error (1dfa574)
- report an invalid syndicator URL instead of throwing (f553c34), closes #930
- return 401 for
GETrequests with invalid bearer token (69910bf), closes #825 - create-indiekit: check node compatibility against major and minor version (06cab9e)
- create-indiekit: generate a
Dockerfilethat runs, on a patched MongoDB (46f17f1) - create-indiekit: handle command-line arguments (8914c57)
- create-indiekit: resolve error when getting file contents (5fe21db)
- create-indiekit: use correct character for configuration message (57204af)
- endpoint-auth: accept code exchange without
grant_typeat/auth(d649606) - endpoint-auth: bind code exchange to the code’s own claims (456cd6d)
- endpoint-auth: limit missing
response_typeto indieauth.com (fa1d368) - endpoint-auth: refuse a missing
code_verifierinstead of failing (b7ad28a) - endpoint-auth: use publication
mewhen signing authorization code (0e900a7), closes #911 - endpoint-files: look up files by
uidso older files don’t 404 (5394361), closes #924 - endpoint-files: only show a thumbnail for photos (19a0ced), closes #956
- endpoint-media: normalise caught error in action controller (ba30ff4)
- endpoint-micropub: count other posts of a type when rendering the
ntoken (2634ac0), closes #746 - endpoint-micropub: don’t let a client reassign a post’s
uid(b5a7ce1) - endpoint-micropub: drop unawaited
count()check that leaked an operation past the test (a354434) - endpoint-micropub: keep
uidwhen deleting a post (737cb1b) - endpoint-micropub: localise the database error and keep post-type errors distinct (676ed0b)
- endpoint-micropub: normalise categories on write (77a6266)
- endpoint-micropub: normalise caught error in action controller (f4430f8)
- endpoint-micropub: reject unconfigured post type on
update,deleteandundelete(057a0ac), closes #928 - endpoint-micropub: throw a clear error reading posts without a database (5d30610)
- endpoint-posts: handle non-Error value for syndication target (5d54559)
- endpoint-posts: look up posts by
uidso older posts don’t 404 (becdf26), closes #924 - endpoint-syndicate: call
Array.isArraywhen wrapping a single target (3a2b7cf) - endpoint-syndicate: ignore syndication values that aren’t URLs (9dcbc57), closes #932
- endpoint-syndicate: retry targets a post has not syndicated to yet (40647cb)
- endpoint-syndicate: syndicate posts awaiting syndication oldest first (9a4d0a4), closes #584
- endpoint-webmention-io: cope with authors without a photo or a valid URL (98dbd80), closes #934
- frontend: close the
tabindexclause in add-another's focusable selector (47b995d) - frontend: don’t drop attributes after one without a value (24b659a)
- frontend: don’t throw looking up elements that may be absent (88287f1)
- frontend: ensure photo in card layout retains 1:1 aspect ratio (d143206)
- frontend: handle missing values in components (1637377)
- frontend: handle non-Error values in component error paths (7a2170e)
- frontend: load the app script once the page is parsed (1bdd4df)
- frontend: serve cached page on a slow network, skip cross-origin and auth requests (c4619ae), closes #936
- indiekit: accept local redirect paths containing
-,.and%(f326f60) - indiekit: advertise the
userinfoendpoint as an absolute URL (fcad0d3) - indiekit: derive application URL from each request (2e20ad0)
- indiekit: make the
uidbackfill resumable and concurrency-safe (8b9fb87) - indiekit: only send stack traces and error causes in development (5df480a)
- indiekit: trace the
uidbackfill even when it’s a no-op (9058317) - preset-eleventy: write posts where the advertised URL resolves (0047ea8), closes #902
- syndicator-bluesky: remove useless
try/catch(10a6022) - syndicator-bluesky: thread replies to Bluesky posts (471577c), closes #946
- syndicator-mastodon: remove useless
try/catch(9951ad9) - syndicator-mastodon: thread replies to statuses on other servers (db3ed51), closes #926
- util: return correct page when paging backwards (38fab19)
- util: throw getting canonical URL from path without base URL (525ebe3)