Bump version to 0.8.3 * url-http-oauth.el: Bump version to 0.8.3. * NEWS: Document 0.8.3 changes. * README: New file.
Import url-http-oauth-demo.el from its own repo * url-http-oauth-demo.el: New file. * url-http-oauth.el: Mention url-http-oauth-demo.el in comment header.
Add autoloads and configuration validation * url-http-oauth.el: Update commentary. (url-http-oauth-interpose) (url-http-oauth-uninterpose, url-http-oauth-interposed-p): Autoload. (url-http-oauth-interpose): Use let, not let*. Validate client-identifier field.
Fix compatibility with Emacs 27.1 * url-http-oauth.el (url-http-oauth--netrc-delete): Use line-beginning-position and line-end-position for compatibility.
Bump version to 0.8.2 * url-http-oauth.el: Bump version to 0.8.2. * NEWS: Document 0.8.2 change.
Fix url-http-oauth-interposed-p for default case * url-http-oauth.el (url-http-oauth-interposed-p): Check if regexp is nil.
Fix a typo * NEWS: Fix a typo.
Bump version to 0.8.1 * url-http-oauth.el, NEWS: Bump version to 0.8.1.
Remove a debugging message * url-http-oauth.el (url-http-oauth--parse-grant): Remove debugging message.
Bump version to 0.8.0 * url-http-oauth.el: Bump version to 0.8.0. * NEWS: New file.
Retest against sourcehut, fix new issues * url-http-oauth.el (url-http-oauth--update-regexp): Check for nil resource-url and resource-url-prefixes entries. (url-http-oauth--get-access-token-grant): Add missing nil argument to url-http-oauth--auth-source-search call. Make last argument to apply a list. Do not include client identifier in request body if it is already in the authorization header. (url-http-oauth--expiry-string): Handle expiry being a number instead of a string.
Use relative expiry time in seconds * url-http-oauth.el (url-http-oauth--expiry-string): Use expires_in, not expires_on.
Allow per-provider user-agent interaction function * url-http-oauth.el (url-http-oauth-interpose): Document authorization-code-function. (url-http-oauth--retrieve-and-save-bearer): Use authorization-code-function if it is provided in settings.
Make message formatting consistent * url-http-oauth.el (url-http-oauth-interpose) (url-http-oauth--parse-grant, url-http-oauth--expiry-string) (url-http-oauth--url-build-refresh, url-oauth-auth): Add package name herald to error message. (url-http-oauth--netrc-delete): Remove a message.
Make functions private, fix some bugs * url-http-oauth.el (url-http-oauth--url-string) (url-http-oauth--url-object, url-http-oauth--url-no-query) (url-http-oauth--settings, url-http-oauth--update-regexp) (url-http-oauth--port, url-http-oauth--auth-info-password) (url-http-oauth--json-parse-buffer) (url-http-oauth--auth-source-search) (url-http-oauth--parse-grant) (url-http-oauth--get-access-token-grant) (url-http-oauth--expiry-string) (url-http-oauth--refresh-token-string) (url-http-oauth--extract-authorization-code) (url-http-oauth--authorization-url) (url-http-oauth--url-build-refresh) (url-http-oauth--netrc-delete, url-http-oauth--save-bearer) (url-http-oauth--refresh-access-token-grant) (url-http-oauth--retrieve-and-save-bearer) (url-http-oauth--get-bearer): Rename to indicate private scope. (url-http-oauth--parse-grant): Dump grant buffer contents to messages buffer. Fix downcase typo. Fix error message format. (url-http-oauth--get-access-token-grant): Save access-token-url to auth-sources. Fix access-token-object typo. (url-http-oauth--expiry-string): Use "expires_on" for absolute expiry time. (url-http-oauth--refresh-token-string): Fix copy-n-paste error. (url-http-oauth--authorization-url): Wrap a long line. (url-http-oauth--url-build-refresh): Wrap some long lines. (url-http-oauth--netrc-delete): Use pos-bol and pos-eol. (url-http-oauth--refresh-access-token-grant): Update docstring. (url-http-oauth--retrieve-and-save-bearer): Fix docstring. (url-http-oauth-get-bearer): Simplify resource-url handling.
Complete regexp, list and token refresh design * url-http-oauth.el (url-http-oauth--interposed): Update docstring. (url-http-oauth--interposed-regexp): New variable. (url-http-oauth-url-string): Update docstring. (url-http-oauth-url-object): Likewise. (url-http-oauth-url-no-query): New function. (url-http-oauth-settings): Change implementation to be list-based. (url-http-oauth-update-regexp): New function. (url-http-oauth-interpose): Expand docstring. Change implementation to be list-based. (url-http-oauth-uninterpose): Likewise. (url-http-oauth-interposed-p): New function. (url-http-oauth-port): Allow URL string arguments. (url-http-oauth-auth-source-search): Reimplement to put entire non-query URL string in :host field. (url-http-oauth--parse-grant): New function. (url-http-oauth-refresh-token-string): New function. (url-http-oauth-url-build-refresh): Likewise. (url-http-oauth--netrc-delete): Likewise. (url-http-oauth-save-bearer): Likewise. (url-http-oauth-refresh-access-token-grant): Likewise. (url-http-oauth-retrieve-and-save-bearer): Likewise. (url-http-oauth-get-bearer): Reimplement using new function. (url-oauth-auth): Check URL argument against regexp before proceeding.
Make some adjustments based on testing * url-http-oauth.el (url-http-oauth-get-access-token-grant): Omit authorization header if it is not required. Include client_id and redirect_uri in request data. Downcase token_type value. (url-http-oauth-get-bearer): Encode scope for auth-source search.
Fix auth-source lookup conflicts and config cdrs * url-http-oauth.el (url-http-oauth-interpose): Change url to urls. Assume conses, not lists in url-settings. (url-http-oauth-uninterpose): Likewise. (url-http-no-retry): Define special variable. (url-http-oauth-auth-source-search): Do not warn on zero results. (url-http-oauth-encode-scope): New function. (url-http-oauth-auth-info-password): Likewise. (url-http-oauth-json-parse-buffer): Likewise. (url-http-oauth-get-access-token-grant): Assume conses, not lists in url-settings. Do not set auth-source-do-cache to nil. Simplify url-http-oauth-auth-source-search call. Encode scope with no spaces for authinfo storage. Use url-http-oauth-json-parse-buffer instead of json-parse-buffer (url-http-oauth-authorization-url): Assume conses, not lists in url-settings. Apply list instead of using macro for url-build-query-string argument. (url-http-oauth-get-bearer): Use dummy "BEARER" user name. Simplify call to auth-source-search.
Fix auth-source-search for path and scope * url-http-oauth.el(url-http-oauth-port): Fix whitespace. (url-http-oauth-auth-source-search): New function. (url-http-oauth-get-access-token-grant): Search using new function before saving client secret. (url-http-oauth-port): Fix whitespace. (url-http-oauth-get-bearer): Make use of new function.
Fix auth-source lookups * url-http-oauth.el (url-http-oauth-port): Always return the port as a string. (url-http-oauth-get-bearer): Use empty string for null user.