| ofs | hex dump | ascii |
|---|
| 0000 | 6f 61 75 74 68 32 2d 61 75 74 6f 2d 32 30 32 35 30 36 32 34 2e 31 39 31 39 2f 00 00 00 00 00 00 | oauth2-auto-20250624.1919/...... |
| 0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0060 | 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000755.0000000.0000000.0000 |
| 0080 | 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 37 31 00 20 35 00 00 00 | 0000000.00000000000.013171..5... |
| 00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0100 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 0120 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0200 | 6f 61 75 74 68 32 2d 61 75 74 6f 2d 32 30 32 35 30 36 32 34 2e 31 39 31 39 2f 6f 61 75 74 68 32 | oauth2-auto-20250624.1919/oauth2 |
| 0220 | 2d 61 75 74 6f 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | -auto-pkg.el.................... |
| 0240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 0280 | 30 30 30 31 30 31 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 34 30 00 20 30 00 00 00 | 0001016.00000000000.016440..0... |
| 02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 0320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0400 | 3b 3b 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 3b 20 6c 65 78 69 63 | ;;.-*-.no-byte-compile:.t;.lexic |
| 0420 | 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 6e 69 6c 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b | al-binding:.nil.-*-.(define-pack |
| 0440 | 61 67 65 20 22 6f 61 75 74 68 32 2d 61 75 74 6f 22 20 22 32 30 32 35 30 36 32 34 2e 31 39 31 39 | age."oauth2-auto"."20250624.1919 |
| 0460 | 22 0a 20 20 22 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 66 72 65 73 68 69 6e 67 20 4f 41 | "..."Automatically.refreshing.OA |
| 0480 | 75 74 68 20 32 2e 30 20 74 6f 6b 65 6e 73 2e 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 36 2e | uth.2.0.tokens."...'((emacs."26. |
| 04a0 | 31 22 29 0a 20 20 20 20 28 61 69 6f 20 20 20 22 31 2e 30 22 29 0a 20 20 20 20 28 61 6c 65 72 74 | 1").....(aio..."1.0").....(alert |
| 04c0 | 20 22 31 2e 32 22 29 0a 20 20 20 20 28 64 61 73 68 20 20 22 32 2e 31 39 22 29 29 0a 20 20 3a 75 | ."1.2").....(dash.."2.19"))...:u |
| 04e0 | 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 68 61 70 73 30 64 79 2f | rl."https://github.com/rhaps0dy/ |
| 0500 | 65 6d 61 63 73 2d 6f 61 75 74 68 32 2d 61 75 74 6f 22 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 32 30 | emacs-oauth2-auto"...:commit."20 |
| 0520 | 62 33 31 35 33 64 39 63 66 62 37 61 61 66 65 36 38 61 30 31 36 38 36 34 37 61 31 37 33 37 33 61 | b3153d9cfb7aafe68a0168647a17373a |
| 0540 | 64 66 35 65 32 32 22 0a 20 20 3a 72 65 76 64 65 73 63 20 22 32 30 62 33 31 35 33 64 39 63 66 62 | df5e22"...:revdesc."20b3153d9cfb |
| 0560 | 22 0a 20 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 63 6f 6d 6d 22 20 22 6f 61 75 74 68 32 22 29 | "...:keywords.'("comm"."oauth2") |
| 0580 | 0a 20 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 41 64 72 69 c3 a0 20 47 61 72 72 69 67 61 2d 41 | ...:authors.'(("Adri...Garriga-A |
| 05a0 | 6c 6f 6e 73 6f 22 20 2e 20 22 61 64 72 69 61 2e 67 61 72 72 69 67 61 40 67 6d 61 69 6c 2e 63 6f | lonso"..."adria.garriga@gmail.co |
| 05c0 | 6d 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 20 27 28 28 22 41 64 72 69 c3 a0 20 47 | m"))...:maintainers.'(("Adri...G |
| 05e0 | 61 72 72 69 67 61 2d 41 6c 6f 6e 73 6f 22 20 2e 20 22 61 64 72 69 61 2e 67 61 72 72 69 67 61 40 | arriga-Alonso"..."adria.garriga@ |
| 0600 | 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | gmail.com")))................... |
| 0620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 06a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 06c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 06e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0800 | 6f 61 75 74 68 32 2d 61 75 74 6f 2d 32 30 32 35 30 36 32 34 2e 31 39 31 39 2f 6f 61 75 74 68 32 | oauth2-auto-20250624.1919/oauth2 |
| 0820 | 2d 61 75 74 6f 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | -auto.el........................ |
| 0840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0860 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 0880 | 30 30 36 31 36 34 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 37 36 00 20 30 00 00 00 | 0061644.00000000000.015676..0... |
| 08a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 08c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 08e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0900 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 0920 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 0940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 09a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 09c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 09e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0a00 | 3b 3b 3b 20 6f 61 75 74 68 32 2d 61 75 74 6f 2e 65 6c 20 2d 2d 2d 20 41 75 74 6f 6d 61 74 69 63 | ;;;.oauth2-auto.el.---.Automatic |
| 0a20 | 61 6c 6c 79 20 72 65 66 72 65 73 68 69 6e 67 20 4f 41 75 74 68 20 32 2e 30 20 74 6f 6b 65 6e 73 | ally.refreshing.OAuth.2.0.tokens |
| 0a40 | 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b | .-*-.lexical-binding:.t;.-*-..;; |
| 0a60 | 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 32 2d 32 30 32 33 20 41 64 72 69 c3 a0 20 | .Copyright.(C).2022-2023.Adri... |
| 0a80 | 47 61 72 72 69 67 61 2d 41 6c 6f 6e 73 6f 2c 20 52 6f 62 65 72 74 20 49 72 65 6c 61 6e 0a 0a 3b | Garriga-Alonso,.Robert.Irelan..; |
| 0aa0 | 3b 20 41 75 74 68 6f 72 3a 20 41 64 72 69 c3 a0 20 47 61 72 72 69 67 61 2d 41 6c 6f 6e 73 6f 20 | ;.Author:.Adri...Garriga-Alonso. |
| 0ac0 | 3c 61 64 72 69 61 2e 67 61 72 72 69 67 61 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 55 52 4c | <adria.garriga@gmail.com>.;;.URL |
| 0ae0 | 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 68 61 70 73 30 64 79 2f 65 6d | :.https://github.com/rhaps0dy/em |
| 0b00 | 61 63 73 2d 6f 61 75 74 68 32 2d 61 75 74 6f 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 56 65 72 73 69 | acs-oauth2-auto.;;.Package-Versi |
| 0b20 | 6f 6e 3a 20 32 30 32 35 30 36 32 34 2e 31 39 31 39 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 76 | on:.20250624.1919.;;.Package-Rev |
| 0b40 | 69 73 69 6f 6e 3a 20 32 30 62 33 31 35 33 64 39 63 66 62 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a | ision:.20b3153d9cfb.;;.Keywords: |
| 0b60 | 20 63 6f 6d 6d 20 6f 61 75 74 68 32 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 | .comm.oauth2.;;.Package-Requires |
| 0b80 | 3a 20 28 28 65 6d 61 63 73 20 22 32 36 2e 31 22 29 20 28 61 69 6f 20 22 31 2e 30 22 29 20 28 61 | :.((emacs."26.1").(aio."1.0").(a |
| 0ba0 | 6c 65 72 74 20 22 31 2e 32 22 29 20 28 64 61 73 68 20 22 32 2e 31 39 22 29 29 0a 0a 3b 3b 20 54 | lert."1.2").(dash."2.19"))..;;.T |
| 0bc0 | 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f | his.program.is.free.software;.yo |
| 0be0 | 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 | u.can.redistribute.it.and/or.mod |
| 0c00 | 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 | ify.;;.it.under.the.terms.of.the |
| 0c20 | 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 | .GNU.General.Public.License.as.p |
| 0c40 | 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 | ublished.by.;;.the.Free.Software |
| 0c60 | 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 | .Foundation,.either.version.3.of |
| 0c80 | 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 | .the.License,.or.;;.(at.your.opt |
| 0ca0 | 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 | ion).any.later.version...;;.This |
| 0cc0 | 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 | .program.is.distributed.in.the.h |
| 0ce0 | 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 | ope.that.it.will.be.useful,.;;.b |
| 0d00 | 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 | ut.WITHOUT.ANY.WARRANTY;.without |
| 0d20 | 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b | .even.the.implied.warranty.of.;; |
| 0d40 | 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 | .MERCHANTABILITY.or.FITNESS.FOR. |
| 0d60 | 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b | A.PARTICULAR.PURPOSE...See.the.; |
| 0d80 | 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 | ;.GNU.General.Public.License.for |
| 0da0 | 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 | .more.details...;;.You.should.ha |
| 0dc0 | 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 | ve.received.a.copy.of.the.GNU.Ge |
| 0de0 | 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 | neral.Public.License.;;.along.wi |
| 0e00 | 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 | th.this.program...If.not,.see.<h |
| 0e20 | 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b | ttp://www.gnu.org/licenses/>...; |
| 0e40 | 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 53 74 61 74 65 20 6d 61 63 68 69 6e 65 | ;;.Commentary:..;;.State.machine |
| 0e60 | 20 74 6f 20 66 65 74 63 68 20 4f 41 75 74 68 20 32 2e 30 20 74 6f 6b 65 6e 73 20 66 6f 72 20 76 | .to.fetch.OAuth.2.0.tokens.for.v |
| 0e80 | 61 72 69 6f 75 73 20 65 6d 61 69 6c 20 61 63 63 6f 75 6e 74 73 2e 0a 3b 3b 0a 3b 3b 20 42 61 73 | arious.email.accounts..;;.;;.Bas |
| 0ea0 | 65 64 20 6f 6e 20 7e 6d 75 74 74 5f 6f 61 75 74 68 32 2e 70 79 7e 2c 20 77 68 69 63 68 20 69 73 | ed.on.~mutt_oauth2.py~,.which.is |
| 0ec0 | 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 20 41 6c 65 78 61 6e 64 65 72 20 50 65 | .Copyright.(C).2020.Alexander.Pe |
| 0ee0 | 72 6c 69 73 2c 0a 3b 3b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 74 68 65 20 47 50 4c 76 | rlis,.;;.licensed.under.the.GPLv |
| 0f00 | 33 20 6f 72 20 6c 61 74 65 72 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 65 6e 74 72 79 20 70 6f 69 6e | 3.or.later..;;.;;.The.entry.poin |
| 0f20 | 74 73 20 61 72 65 20 60 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 69 73 74 27 20 61 6e 64 20 74 | ts.are.`oauth2-auto-plist'.and.t |
| 0f40 | 68 65 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 66 75 6e 63 74 69 6f 6e 0a 3b 3b 20 60 6f 61 75 74 | he.convenience.function.;;.`oaut |
| 0f60 | 68 32 2d 61 75 74 6f 2d 61 63 63 65 73 73 2d 74 6f 6b 65 6e 27 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 | h2-auto-access-token'...;;;.Code |
| 0f80 | 3a 0a 28 72 65 71 75 69 72 65 20 27 70 6c 73 74 6f 72 65 29 0a 28 72 65 71 75 69 72 65 20 27 61 | :.(require.'plstore).(require.'a |
| 0fa0 | 69 6f 29 20 20 20 20 20 3b 20 70 72 6f 6d 69 73 65 73 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f | io).....;.promises.(eval-when-co |
| 0fc0 | 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 64 61 73 68 29 29 20 20 20 20 3b 20 60 2d 2d 6d | mpile.(require.'dash))....;.`--m |
| 0fe0 | 61 70 27 0a 28 72 65 71 75 69 72 65 20 27 61 6c 65 72 74 29 20 20 20 3b 20 60 61 6c 65 72 74 27 | ap'.(require.'alert)...;.`alert' |
| 1000 | 20 74 6f 20 67 69 76 65 20 74 68 65 20 75 73 65 72 20 61 20 68 65 61 64 73 20 75 70 20 74 6f 20 | .to.give.the.user.a.heads.up.to. |
| 1020 | 67 6f 20 74 6f 20 74 68 65 69 72 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6c 6f 67 20 69 6e 0a 28 | go.to.their.browser.and.log.in.( |
| 1040 | 72 65 71 75 69 72 65 20 27 75 72 6c 2d 61 75 74 68 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 6f 61 | require.'url-auth)..(defgroup.oa |
| 1060 | 75 74 68 32 2d 61 75 74 6f 20 6e 69 6c 0a 20 20 22 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 | uth2-auto.nil..."Automatically.r |
| 1080 | 65 66 72 65 73 68 69 6e 67 20 4f 41 75 74 68 20 32 2e 30 20 74 6f 6b 65 6e 73 2e 22 0a 20 20 3a | efreshing.OAuth.2.0.tokens."...: |
| 10a0 | 67 72 6f 75 70 20 27 63 6f 6d 6d 29 0a 0a 0a 3b 3b 20 45 6e 64 70 6f 69 6e 74 73 20 61 6e 64 20 | group.'comm)...;;.Endpoints.and. |
| 10c0 | 63 6c 69 65 6e 74 20 73 65 63 72 65 74 2f 69 64 20 75 73 65 64 20 66 6f 72 20 76 61 72 69 6f 75 | client.secret/id.used.for.variou |
| 10e0 | 73 20 4f 41 75 74 68 32 20 70 72 6f 76 69 64 65 72 73 2e 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 | s.OAuth2.providers...(defcustom. |
| 1100 | 6f 61 75 74 68 32 2d 61 75 74 6f 2d 6d 69 63 72 6f 73 6f 66 74 2d 64 65 66 61 75 6c 74 2d 74 65 | oauth2-auto-microsoft-default-te |
| 1120 | 6e 61 6e 74 20 22 63 6f 6d 6d 6f 6e 22 0a 20 20 22 44 65 66 61 75 6c 74 20 74 65 6e 61 6e 74 20 | nant."common"..."Default.tenant. |
| 1140 | 49 44 20 66 6f 72 20 4d 69 63 72 6f 73 6f 66 74 20 4f 41 75 74 68 32 2e 22 0a 20 20 3a 67 72 6f | ID.for.Microsoft.OAuth2."...:gro |
| 1160 | 75 70 20 27 6f 61 75 74 68 32 2d 61 75 74 6f 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 | up.'oauth2-auto...:type.'string) |
| 1180 | 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 6d 69 63 72 6f 73 6f | ..(defcustom.oauth2-auto-microso |
| 11a0 | 66 74 2d 63 6c 69 65 6e 74 2d 69 64 20 22 22 0a 20 20 22 44 65 66 61 75 6c 74 20 63 6c 69 65 6e | ft-client-id.""..."Default.clien |
| 11c0 | 74 20 49 44 20 66 6f 72 20 4d 69 63 72 6f 73 6f 66 74 20 4f 41 75 74 68 32 2e 22 0a 20 20 3a 67 | t.ID.for.Microsoft.OAuth2."...:g |
| 11e0 | 72 6f 75 70 20 27 6f 61 75 74 68 32 2d 61 75 74 6f 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e | roup.'oauth2-auto...:type.'strin |
| 1200 | 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 6d 69 63 72 6f | g)..(defcustom.oauth2-auto-micro |
| 1220 | 73 6f 66 74 2d 63 6c 69 65 6e 74 2d 73 65 63 72 65 74 20 22 22 0a 20 20 22 44 65 66 61 75 6c 74 | soft-client-secret.""..."Default |
| 1240 | 20 63 6c 69 65 6e 74 20 73 65 63 72 65 74 20 66 6f 72 20 4d 69 63 72 6f 73 6f 66 74 20 4f 41 75 | .client.secret.for.Microsoft.OAu |
| 1260 | 74 68 32 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6f 61 75 74 68 32 2d 61 75 74 6f 0a 20 20 3a 74 | th2."...:group.'oauth2-auto...:t |
| 1280 | 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6f 61 75 74 68 32 2d | ype.'string)..(defcustom.oauth2- |
| 12a0 | 61 75 74 6f 2d 67 6f 6f 67 6c 65 2d 63 6c 69 65 6e 74 2d 69 64 20 22 22 0a 20 20 22 44 65 66 61 | auto-google-client-id.""..."Defa |
| 12c0 | 75 6c 74 20 63 6c 69 65 6e 74 20 49 44 20 66 6f 72 20 47 6f 6f 67 6c 65 20 4f 41 75 74 68 32 2e | ult.client.ID.for.Google.OAuth2. |
| 12e0 | 22 0a 20 20 3a 67 72 6f 75 70 20 27 6f 61 75 74 68 32 2d 61 75 74 6f 0a 20 20 3a 74 79 70 65 20 | "...:group.'oauth2-auto...:type. |
| 1300 | 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6f 61 75 74 68 32 2d 61 75 74 6f | 'string)..(defcustom.oauth2-auto |
| 1320 | 2d 67 6f 6f 67 6c 65 2d 63 6c 69 65 6e 74 2d 73 65 63 72 65 74 20 22 22 0a 20 20 22 44 65 66 61 | -google-client-secret.""..."Defa |
| 1340 | 75 6c 74 20 63 6c 69 65 6e 74 20 73 65 63 72 65 74 20 66 6f 72 20 47 6f 6f 67 6c 65 20 4f 41 75 | ult.client.secret.for.Google.OAu |
| 1360 | 74 68 32 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6f 61 75 74 68 32 2d 61 75 74 6f 0a 20 20 3a 74 | th2."...:group.'oauth2-auto...:t |
| 1380 | 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6f 61 75 74 68 32 2d | ype.'string)..(defcustom.oauth2- |
| 13a0 | 61 75 74 6f 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 70 72 6f 76 69 64 65 72 73 2d 61 6c 69 73 74 20 | auto-additional-providers-alist. |
| 13c0 | 27 28 29 0a 20 20 22 41 64 64 69 74 69 6f 6e 61 6c 20 4f 41 75 74 68 32 20 70 72 6f 76 69 64 65 | '()..."Additional.OAuth2.provide |
| 13e0 | 72 73 20 66 6f 6c 6c 6f 77 69 6e 67 20 60 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 64 65 66 61 75 | rs.following.`oauth2-auto--defau |
| 1400 | 6c 74 2d 70 72 6f 76 69 64 65 72 73 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6f 61 75 74 68 32 | lt-providers'."...:group.'oauth2 |
| 1420 | 2d 61 75 74 6f 0a 20 20 3a 74 79 70 65 20 27 61 6c 69 73 74 29 0a 0a 28 64 65 66 63 75 73 74 6f | -auto...:type.'alist)..(defcusto |
| 1440 | 6d 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 6d 61 6e 75 61 6c 6c 79 2d 61 75 74 68 20 6e 69 6c 0a | m.oauth2-auto-manually-auth.nil. |
| 1460 | 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 6e 6f 74 20 6c 61 75 6e 63 68 20 62 72 6f 77 73 65 | .."If.non-nil,.not.launch.browse |
| 1480 | 72 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6f 61 75 74 | r.automatically."...:group.'oaut |
| 14a0 | 68 32 2d 61 75 74 6f 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 75 | h2-auto...:type.'boolean)..(defu |
| 14c0 | 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 64 65 66 61 75 6c 74 2d 70 72 6f 76 69 64 65 72 73 | n.oauth2-auto--default-providers |
| 14e0 | 20 28 29 0a 20 20 22 44 65 66 61 75 6c 74 20 4f 41 75 74 68 32 20 70 72 6f 76 69 64 65 72 73 2e | .()..."Default.OAuth2.providers. |
| 1500 | 22 0a 20 20 28 6c 65 74 20 28 28 6d 73 2d 6f 61 75 74 68 32 2d 75 72 6c 20 28 63 6f 6e 63 61 74 | "...(let.((ms-oauth2-url.(concat |
| 1520 | 20 22 68 74 74 70 73 3a 2f 2f 6c 6f 67 69 6e 2e 6d 69 63 72 6f 73 6f 66 74 6f 6e 6c 69 6e 65 2e | ."https://login.microsoftonline. |
| 1540 | 63 6f 6d 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | com/"........................... |
| 1560 | 20 20 20 20 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 6d 69 63 72 6f 73 6f 66 74 2d 64 65 66 61 75 | .....oauth2-auto-microsoft-defau |
| 1580 | 6c 74 2d 74 65 6e 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lt-tenant....................... |
| 15a0 | 20 20 20 20 20 20 20 20 20 22 2f 6f 61 75 74 68 32 2f 76 32 2e 30 2f 22 29 29 29 0a 20 20 20 20 | ........."/oauth2/v2.0/")))..... |
| 15c0 | 60 28 28 67 6f 6f 67 6c 65 0a 20 20 20 20 20 20 20 28 61 75 74 68 6f 72 69 7a 65 5f 75 72 6c 20 | `((google........(authorize_url. |
| 15e0 | 2e 20 22 68 74 74 70 73 3a 2f 2f 61 63 63 6f 75 6e 74 73 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f 6f | .."https://accounts.google.com/o |
| 1600 | 2f 6f 61 75 74 68 32 2f 61 75 74 68 22 29 0a 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 5f 75 72 6c | /oauth2/auth")........(token_url |
| 1620 | 20 2e 20 22 68 74 74 70 73 3a 2f 2f 6f 61 75 74 68 32 2e 67 6f 6f 67 6c 65 61 70 69 73 2e 63 6f | ..."https://oauth2.googleapis.co |
| 1640 | 6d 2f 74 6f 6b 65 6e 22 29 0a 20 20 20 20 20 20 20 28 73 63 6f 70 65 20 2e 20 22 68 74 74 70 73 | m/token")........(scope..."https |
| 1660 | 3a 2f 2f 6d 61 69 6c 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f 20 68 74 74 70 73 3a 2f 2f 77 77 77 2e | ://mail.google.com/.https://www. |
| 1680 | 67 6f 6f 67 6c 65 61 70 69 73 2e 63 6f 6d 2f 61 75 74 68 2f 63 61 6c 65 6e 64 61 72 2e 65 76 65 | googleapis.com/auth/calendar.eve |
| 16a0 | 6e 74 73 22 29 0a 20 20 20 20 20 20 20 28 63 6c 69 65 6e 74 5f 69 64 20 2e 20 2c 6f 61 75 74 68 | nts")........(client_id...,oauth |
| 16c0 | 32 2d 61 75 74 6f 2d 67 6f 6f 67 6c 65 2d 63 6c 69 65 6e 74 2d 69 64 29 0a 20 20 20 20 20 20 20 | 2-auto-google-client-id)........ |
| 16e0 | 28 63 6c 69 65 6e 74 5f 73 65 63 72 65 74 20 2e 20 2c 6f 61 75 74 68 32 2d 61 75 74 6f 2d 67 6f | (client_secret...,oauth2-auto-go |
| 1700 | 6f 67 6c 65 2d 63 6c 69 65 6e 74 2d 73 65 63 72 65 74 29 29 0a 20 20 20 20 20 20 28 6d 69 63 72 | ogle-client-secret)).......(micr |
| 1720 | 6f 73 6f 66 74 0a 20 20 20 20 20 20 20 28 61 75 74 68 6f 72 69 7a 65 5f 75 72 6c 20 2e 20 2c 28 | osoft........(authorize_url...,( |
| 1740 | 63 6f 6e 63 61 74 20 6d 73 2d 6f 61 75 74 68 32 2d 75 72 6c 20 22 61 75 74 68 6f 72 69 7a 65 22 | concat.ms-oauth2-url."authorize" |
| 1760 | 29 29 0a 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 5f 75 72 6c 20 2e 20 2c 28 63 6f 6e 63 61 74 20 | ))........(token_url...,(concat. |
| 1780 | 6d 73 2d 6f 61 75 74 68 32 2d 75 72 6c 20 22 74 6f 6b 65 6e 22 29 29 0a 20 20 20 20 20 20 20 28 | ms-oauth2-url."token"))........( |
| 17a0 | 74 65 6e 61 6e 74 20 2e 20 2c 6f 61 75 74 68 32 2d 61 75 74 6f 2d 6d 69 63 72 6f 73 6f 66 74 2d | tenant...,oauth2-auto-microsoft- |
| 17c0 | 64 65 66 61 75 6c 74 2d 74 65 6e 61 6e 74 29 0a 20 20 20 20 20 20 20 28 73 63 6f 70 65 20 2e 20 | default-tenant)........(scope... |
| 17e0 | 22 6f 66 66 6c 69 6e 65 5f 61 63 63 65 73 73 20 68 74 74 70 73 3a 2f 2f 6f 75 74 6c 6f 6f 6b 2e | "offline_access.https://outlook. |
| 1800 | 6f 66 66 69 63 65 2e 63 6f 6d 2f 49 4d 41 50 2e 41 63 63 65 73 73 41 73 55 73 65 72 2e 41 6c 6c | office.com/IMAP.AccessAsUser.All |
| 1820 | 20 68 74 74 70 73 3a 2f 2f 6f 75 74 6c 6f 6f 6b 2e 6f 66 66 69 63 65 2e 63 6f 6d 2f 50 4f 50 2e | .https://outlook.office.com/POP. |
| 1840 | 41 63 63 65 73 73 41 73 55 73 65 72 2e 41 6c 6c 20 68 74 74 70 73 3a 2f 2f 6f 75 74 6c 6f 6f 6b | AccessAsUser.All.https://outlook |
| 1860 | 2e 6f 66 66 69 63 65 2e 63 6f 6d 2f 53 4d 54 50 2e 53 65 6e 64 22 29 0a 20 20 20 20 20 20 20 28 | .office.com/SMTP.Send")........( |
| 1880 | 63 6c 69 65 6e 74 5f 69 64 20 2e 20 2c 6f 61 75 74 68 32 2d 61 75 74 6f 2d 6d 69 63 72 6f 73 6f | client_id...,oauth2-auto-microso |
| 18a0 | 66 74 2d 63 6c 69 65 6e 74 2d 69 64 29 0a 20 20 20 20 20 20 20 28 63 6c 69 65 6e 74 5f 73 65 63 | ft-client-id)........(client_sec |
| 18c0 | 72 65 74 20 2e 20 2c 6f 61 75 74 68 32 2d 61 75 74 6f 2d 6d 69 63 72 6f 73 6f 66 74 2d 63 6c 69 | ret...,oauth2-auto-microsoft-cli |
| 18e0 | 65 6e 74 2d 73 65 63 72 65 74 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d | ent-secret)))))...(defun.oauth2- |
| 1900 | 61 75 74 6f 2d 70 72 6f 76 69 64 65 72 73 2d 61 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 72 | auto-providers-alist.()..."Retur |
| 1920 | 6e 20 61 6c 6c 20 61 76 61 69 6c 61 62 6c 65 20 4f 41 75 74 68 32 20 70 72 6f 76 69 64 65 72 73 | n.all.available.OAuth2.providers |
| 1940 | 2e 0a 54 68 69 73 20 63 6f 6d 62 69 6e 65 73 20 74 68 65 20 70 72 6f 76 69 64 65 72 73 20 73 70 | ..This.combines.the.providers.sp |
| 1960 | 65 63 69 66 69 65 64 20 69 6e 20 60 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 64 65 66 61 75 6c 74 | ecified.in.`oauth2-auto--default |
| 1980 | 2d 70 72 6f 76 69 64 65 72 73 27 20 61 6e 64 0a 60 6f 61 75 74 68 32 2d 61 75 74 6f 2d 61 64 64 | -providers'.and.`oauth2-auto-add |
| 19a0 | 69 74 69 6f 6e 61 6c 2d 70 72 6f 76 69 64 65 72 73 2d 61 6c 69 73 74 27 2e 22 0a 20 20 28 61 70 | itional-providers-alist'."...(ap |
| 19c0 | 70 65 6e 64 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 70 72 6f 76 | pend.oauth2-auto-additional-prov |
| 19e0 | 69 64 65 72 73 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 6f 61 75 74 68 32 2d 61 75 | iders-alist...........(oauth2-au |
| 1a00 | 74 6f 2d 2d 64 65 66 61 75 6c 74 2d 70 72 6f 76 69 64 65 72 73 29 29 29 0a 0a 0a 3b 3b 20 4d 61 | to--default-providers)))...;;.Ma |
| 1a20 | 69 6e 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 | in.data.structure..(defun.oauth2 |
| 1a40 | 2d 61 75 74 6f 2d 2d 6d 61 6b 65 2d 70 6c 69 73 74 20 28 72 65 73 70 6f 6e 73 65 20 70 6c 69 73 | -auto--make-plist.(response.plis |
| 1a60 | 74 29 0a 20 20 22 4d 61 6b 65 20 74 68 65 20 6d 61 69 6e 20 64 61 74 61 20 73 74 72 75 63 74 75 | t)..."Make.the.main.data.structu |
| 1a80 | 72 65 20 6f 66 20 74 68 65 20 6d 6f 64 75 6c 65 2e 0a 0a 54 68 69 73 20 64 61 74 61 20 73 74 72 | re.of.the.module...This.data.str |
| 1aa0 | 75 63 74 75 72 65 20 69 73 20 61 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 20 | ucture.is.a.plist.containing.an. |
| 1ac0 | 3a 61 63 63 65 73 73 2d 74 6f 6b 65 6e 2c 20 3a 72 65 66 72 65 73 68 2d 74 6f 6b 65 6e 2c 20 61 | :access-token,.:refresh-token,.a |
| 1ae0 | 6e 64 0a 3a 65 78 70 69 72 61 74 69 6f 6e 2e 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 | nd.:expiration...This.function.t |
| 1b00 | 61 6b 65 73 20 52 45 53 50 4f 4e 53 45 20 66 72 6f 6d 20 e2 80 98 6f 61 75 74 68 32 2d 61 75 74 | akes.RESPONSE.from....oauth2-aut |
| 1b20 | 6f 2d 2d 72 65 71 75 65 73 74 e2 80 99 2c 20 61 6e 64 20 64 61 74 61 0a 66 72 6f 6d 20 50 4c 49 | o--request...,.and.data.from.PLI |
| 1b40 | 53 54 20 69 66 20 6e 6f 6e 2d 6e 69 6c 2e 20 20 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 | ST.if.non-nil...The.return.value |
| 1b60 | 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 70 6c 73 | .is.intended.to.be.stored.in.pls |
| 1b80 | 74 6f 72 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 66 72 65 73 68 2d 74 6f 6b 65 6e 20 28 6f | tore."...(let.((refresh-token.(o |
| 1ba0 | 72 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 72 65 66 72 65 73 68 5f 74 6f 6b 65 6e 20 72 65 73 | r.(cdr.(assoc.'refresh_token.res |
| 1bc0 | 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ponse))......................... |
| 1be0 | 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 70 6c 69 73 74 20 3a 72 65 66 72 65 73 68 2d 74 6f 6b | ...(plist-get.plist.:refresh-tok |
| 1c00 | 65 6e 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 72 65 66 72 65 73 68 2d 74 6f 6b 65 6e | en)))).....(unless.refresh-token |
| 1c20 | 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 72 65 66 72 65 73 68 20 74 6f 6b 65 6e 20 | .......(error."No.refresh.token. |
| 1c40 | 69 6e 20 72 65 73 70 6f 6e 73 65 20 25 73 20 6f 72 20 70 6c 69 73 74 20 25 73 22 0a 20 20 20 20 | in.response.%s.or.plist.%s"..... |
| 1c60 | 20 20 20 20 20 20 20 20 20 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 29 | .........(pp-to-string.response) |
| 1c80 | 20 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 20 70 6c 69 73 74 29 29 29 0a 20 20 20 20 60 28 3a 61 | .(pp-to-string.plist))).....`(:a |
| 1ca0 | 63 63 65 73 73 2d 74 6f 6b 65 6e 20 2c 28 63 64 72 20 28 61 73 73 6f 63 20 27 61 63 63 65 73 73 | ccess-token.,(cdr.(assoc.'access |
| 1cc0 | 5f 74 6f 6b 65 6e 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 3a 72 65 66 72 65 73 68 | _token.response)).......:refresh |
| 1ce0 | 2d 74 6f 6b 65 6e 20 2c 72 65 66 72 65 73 68 2d 74 6f 6b 65 6e 0a 20 20 20 20 20 20 3a 65 78 70 | -token.,refresh-token.......:exp |
| 1d00 | 69 72 61 74 69 6f 6e 20 2c 28 2b 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 6e 6f 77 29 0a 20 | iration.,(+.(oauth2-auto--now).. |
| 1d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 | .....................(cdr.(assoc |
| 1d40 | 20 27 65 78 70 69 72 65 73 5f 69 6e 20 72 65 73 70 6f 6e 73 65 29 29 29 29 29 29 0a 0a 0a 3b 3b | .'expires_in.response))))))...;; |
| 1d60 | 20 43 68 65 63 6b 69 6e 67 20 74 6f 6b 65 6e 20 65 78 70 69 72 61 74 69 6f 6e 0a 0a 28 64 65 66 | .Checking.token.expiration..(def |
| 1d80 | 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 6e 6f 77 20 28 29 0a 20 20 22 43 75 72 72 65 6e | un.oauth2-auto--now.()..."Curren |
| 1da0 | 74 20 65 70 6f 63 68 20 69 6e 20 73 65 63 6f 6e 64 73 2c 20 61 73 20 61 6e 20 69 6e 74 65 67 65 | t.epoch.in.seconds,.as.an.intege |
| 1dc0 | 72 2e 22 0a 20 20 28 74 72 75 6e 63 61 74 65 20 28 66 6c 6f 61 74 2d 74 69 6d 65 29 29 29 0a 0a | r."...(truncate.(float-time))).. |
| 1de0 | 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 69 73 74 2d 6e 65 65 64 73 2d | (defun.oauth2-auto--plist-needs- |
| 1e00 | 72 65 66 72 65 73 68 69 6e 67 20 28 70 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e | refreshing.(plist)..."Return.non |
| 1e20 | 2d 6e 69 6c 20 69 66 20 74 68 65 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2d 74 6f 6b 65 6e | -nil.if.the.authentication-token |
| 1e40 | 20 69 6e 20 50 4c 49 53 54 20 6e 65 65 64 73 20 72 65 66 72 65 73 68 69 6e 67 2e 22 0a 20 20 28 | .in.PLIST.needs.refreshing."...( |
| 1e60 | 6f 72 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 20 70 6c 69 73 74 20 3a 65 78 70 69 72 61 | or.(not.(plist-get.plist.:expira |
| 1e80 | 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 28 3e 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 6e 6f | tion)).......(>.(oauth2-auto--no |
| 1ea0 | 77 29 0a 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 70 6c 69 73 74 20 3a 65 78 | w)..........(plist-get.plist.:ex |
| 1ec0 | 70 69 72 61 74 69 6f 6e 29 29 29 29 0a 0a 0a 3b 3b 20 43 61 63 68 65 20 61 6e 64 20 70 6c 73 74 | piration))))...;;.Cache.and.plst |
| 1ee0 | 6f 72 65 20 72 65 61 64 2f 77 72 69 74 65 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6f 61 75 74 68 | ore.read/write..(defcustom.oauth |
| 1f00 | 32 2d 61 75 74 6f 2d 70 6c 73 74 6f 72 65 20 28 63 6f 6e 63 61 74 20 75 73 65 72 2d 65 6d 61 63 | 2-auto-plstore.(concat.user-emac |
| 1f20 | 73 2d 64 69 72 65 63 74 6f 72 79 20 22 6f 61 75 74 68 32 2d 61 75 74 6f 2e 70 6c 69 73 74 22 29 | s-directory."oauth2-auto.plist") |
| 1f40 | 0a 20 20 22 46 69 6c 65 20 74 6f 20 73 74 6f 72 65 20 74 68 65 20 61 75 74 68 65 6e 74 69 63 61 | ..."File.to.store.the.authentica |
| 1f60 | 74 65 64 20 61 63 63 6f 75 6e 74 73 20 74 6f 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6f 61 75 74 | ted.accounts.to."...:group.'oaut |
| 1f80 | 68 32 2d 61 75 74 6f 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 29 0a 0a 3b 20 54 4f 44 4f 20 72 | h2-auto...:type.'file)..;.TODO.r |
| 1fa0 | 65 6d 6f 76 65 20 63 61 63 68 65 20 6f 72 20 69 6e 76 61 6c 69 64 61 74 65 20 69 74 20 70 72 6f | emove.cache.or.invalidate.it.pro |
| 1fc0 | 70 65 72 6c 79 20 77 68 65 6e 20 6f 74 68 65 72 20 70 72 6f 67 72 61 6d 73 20 77 72 69 74 65 20 | perly.when.other.programs.write. |
| 1fe0 | 74 6f 20 64 69 73 6b 0a 28 64 65 66 76 61 72 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 | to.disk.(defvar.oauth2-auto--pls |
| 2000 | 74 6f 72 65 2d 63 61 63 68 65 0a 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 | tore-cache...(make-hash-table.:t |
| 2020 | 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 22 43 61 63 68 65 20 74 68 65 20 76 61 6c 75 65 73 20 | est.'equal)..."Cache.the.values. |
| 2040 | 77 72 69 74 74 65 6e 20 74 6f 20 61 6e 64 20 72 65 61 64 20 66 72 6f 6d 20 74 68 65 20 70 6c 73 | written.to.and.read.from.the.pls |
| 2060 | 74 6f 72 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 63 6f 6d | tore.")..(defun.oauth2-auto--com |
| 2080 | 70 75 74 65 2d 69 64 20 28 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 29 0a 20 20 22 55 | pute-id.(username.provider)..."U |
| 20a0 | 6e 69 71 75 65 20 49 44 20 66 6f 72 20 61 20 55 53 45 52 4e 41 4d 45 20 61 6e 64 20 50 52 4f 56 | nique.ID.for.a.USERNAME.and.PROV |
| 20c0 | 49 44 45 52 2e 22 0a 20 20 28 75 72 6c 2d 68 65 78 69 66 79 2d 73 74 72 69 6e 67 20 28 70 70 2d | IDER."...(url-hexify-string.(pp- |
| 20e0 | 74 6f 2d 73 74 72 69 6e 67 20 28 6c 69 73 74 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 | to-string.(list.username.provide |
| 2100 | 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 74 6f | r))))..(defun.oauth2-auto--plsto |
| 2120 | 72 65 2d 77 72 69 74 65 20 28 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 20 70 6c 69 73 | re-write.(username.provider.plis |
| 2140 | 74 29 0a 20 20 22 53 61 76 65 20 64 61 74 61 20 50 4c 49 53 54 20 66 6f 72 20 55 53 45 52 4e 41 | t)..."Save.data.PLIST.for.USERNA |
| 2160 | 4d 45 20 61 6e 64 20 50 52 4f 56 49 44 45 52 20 74 6f 20 74 68 65 20 70 6c 73 74 6f 72 65 20 61 | ME.and.PROVIDER.to.the.plstore.a |
| 2180 | 6e 64 20 63 61 63 68 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 64 20 28 6f 61 75 74 68 32 2d 61 | nd.cache."...(let.((id.(oauth2-a |
| 21a0 | 75 74 6f 2d 2d 63 6f 6d 70 75 74 65 2d 69 64 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 | uto--compute-id.username.provide |
| 21c0 | 72 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 73 74 6f 72 65 20 28 70 6c 73 74 6f 72 65 2d 6f 70 | r)).........(plstore.(plstore-op |
| 21e0 | 65 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 73 74 6f 72 65 29 29 29 0a 20 20 20 20 28 75 | en.oauth2-auto-plstore))).....(u |
| 2200 | 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 70 6c 69 | nwind-protect.........(prog1.pli |
| 2220 | 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 76 69 63 65 2d 61 64 64 20 23 27 69 6e 73 65 72 | st...........(advice-add.#'inser |
| 2240 | 74 20 3a 62 65 66 6f 72 65 20 23 27 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 69 6e 73 65 72 74 2d | t.:before.#'oauth2-auto--insert- |
| 2260 | 62 72 65 61 6b 2d 6f 6e 2d 73 65 63 72 65 74 2d 65 6e 74 72 69 65 73 29 0a 20 20 20 20 20 20 20 | break-on-secret-entries)........ |
| 2280 | 20 20 20 28 70 6c 73 74 6f 72 65 2d 70 75 74 20 70 6c 73 74 6f 72 65 20 69 64 20 6e 69 6c 20 70 | ...(plstore-put.plstore.id.nil.p |
| 22a0 | 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 65 6d 73 20 6c 69 6b 65 20 77 65 | list)...........;;.Seems.like.we |
| 22c0 | 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 65 6e 64 20 75 70 20 77 69 74 68 20 61 20 6b 69 6c 6c | .occasionally.end.up.with.a.kill |
| 22e0 | 65 64 20 62 75 66 66 65 72 20 69 6e 20 50 4c 53 54 4f 52 45 20 2d 20 72 65 69 6e 69 74 69 61 6c | ed.buffer.in.PLSTORE.-.reinitial |
| 2300 | 69 7a 65 20 69 74 20 69 6e 20 74 68 61 74 20 63 61 73 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 | ize.it.in.that.case............( |
| 2320 | 69 66 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 70 6c 73 74 6f 72 65 2d 2d 67 65 74 2d | if.(buffer-live-p.(plstore--get- |
| 2340 | 62 75 66 66 65 72 20 70 6c 73 74 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | buffer.plstore))...............( |
| 2360 | 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 73 74 6f 72 65 2d 73 | progn.................(plstore-s |
| 2380 | 61 76 65 20 70 6c 73 74 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 | ave.plstore).................(pu |
| 23a0 | 74 68 61 73 68 20 69 64 20 70 6c 69 73 74 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 74 | thash.id.plist.oauth2-auto--plst |
| 23c0 | 6f 72 65 2d 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 73 74 6f 72 65 | ore-cache)).............(plstore |
| 23e0 | 2d 63 6c 6f 73 65 20 70 6c 73 74 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 61 75 | -close.plstore).............(oau |
| 2400 | 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 74 6f 72 65 2d 77 72 69 74 65 20 75 73 65 72 6e 61 6d 65 | th2-auto--plstore-write.username |
| 2420 | 20 70 72 6f 76 69 64 65 72 20 70 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 28 70 6c 73 74 6f 72 | .provider.plist))).......(plstor |
| 2440 | 65 2d 63 6c 6f 73 65 20 70 6c 73 74 6f 72 65 29 0a 20 20 20 20 20 20 28 61 64 76 69 63 65 2d 72 | e-close.plstore).......(advice-r |
| 2460 | 65 6d 6f 76 65 20 23 27 69 6e 73 65 72 74 20 23 27 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 69 6e | emove.#'insert.#'oauth2-auto--in |
| 2480 | 73 65 72 74 2d 62 72 65 61 6b 2d 6f 6e 2d 73 65 63 72 65 74 2d 65 6e 74 72 69 65 73 29 29 29 29 | sert-break-on-secret-entries)))) |
| 24a0 | 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 69 6e 73 65 72 74 2d 62 72 65 | ..(defun.oauth2-auto--insert-bre |
| 24c0 | 61 6b 2d 6f 6e 2d 73 65 63 72 65 74 2d 65 6e 74 72 69 65 73 20 28 26 72 65 73 74 20 61 72 67 73 | ak-on-secret-entries.(&rest.args |
| 24e0 | 29 0a 20 20 22 42 72 65 61 6b 20 69 66 20 74 72 79 69 6e 67 20 74 6f 20 69 6e 73 65 72 74 20 73 | )..."Break.if.trying.to.insert.s |
| 2500 | 65 63 72 65 74 20 65 6e 74 72 69 65 73 20 6f 75 74 73 69 64 65 20 6f 66 20 70 6c 73 74 6f 72 65 | ecret.entries.outside.of.plstore |
| 2520 | 20 62 75 66 66 65 72 2e 0a 41 52 47 53 20 61 72 65 20 74 68 6f 73 65 20 70 61 73 73 65 64 20 74 | .buffer..ARGS.are.those.passed.t |
| 2540 | 6f 20 e2 80 98 69 6e 73 65 72 74 e2 80 99 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 | o....insert......This.function.i |
| 2560 | 73 20 61 64 64 65 64 20 61 73 20 62 65 66 6f 72 65 20 61 64 76 69 63 65 20 74 6f 20 e2 80 98 69 | s.added.as.before.advice.to....i |
| 2580 | 6e 73 65 72 74 e2 80 99 20 74 6f 20 61 74 74 65 6d 70 74 20 74 6f 20 72 65 70 72 6f 64 75 63 65 | nsert....to.attempt.to.reproduce |
| 25a0 | 20 61 6e 64 0a 66 69 78 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 68 61 70 | .and.fix.https://github.com/rhap |
| 25c0 | 73 30 64 79 2f 65 6d 61 63 73 2d 6f 61 75 74 68 32 2d 61 75 74 6f 2f 69 73 73 75 65 73 2f 36 2e | s0dy/emacs-oauth2-auto/issues/6. |
| 25e0 | 22 0a 20 20 28 77 68 65 6e 0a 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 28 73 74 72 | "...(when.......(and........(str |
| 2600 | 69 6e 67 70 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 | ingp.(buffer-file-name))........ |
| 2620 | 28 6e 6f 74 20 28 66 69 6c 65 2d 65 71 75 61 6c 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | (not.(file-equal-p.............. |
| 2640 | 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 73 74 6f | (file-truename.oauth2-auto-plsto |
| 2660 | 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 | re)..............(file-truename. |
| 2680 | 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 28 65 71 | (buffer-file-name))))........(eq |
| 26a0 | 75 61 6c 20 22 3b 3b 3b 20 73 65 63 72 65 74 20 65 6e 74 72 69 65 73 5c 6e 22 20 28 6e 74 68 20 | ual.";;;.secret.entries\n".(nth. |
| 26c0 | 30 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 28 62 61 63 6b 74 72 61 63 65 2d 66 72 61 6d 65 | 0.args))........(backtrace-frame |
| 26e0 | 73 20 27 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 74 6f 72 65 2d 77 72 69 74 65 29 29 0a | s.'oauth2-auto--plstore-write)). |
| 2700 | 20 20 20 20 28 65 72 72 6f 72 20 22 42 55 47 3a 20 41 74 74 65 6d 70 74 65 64 20 74 6f 20 77 72 | ....(error."BUG:.Attempted.to.wr |
| 2720 | 69 74 65 20 e2 80 98 6f 61 75 74 68 32 2d 61 75 74 6f e2 80 99 20 6b 65 79 73 20 74 6f 20 25 73 | ite....oauth2-auto....keys.to.%s |
| 2740 | 2c 20 6e 6f 74 20 e2 80 98 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 73 74 6f 72 65 e2 80 99 20 | ,.not....oauth2-auto-plstore.... |
| 2760 | 28 25 73 29 2e 20 20 50 6c 65 61 73 65 20 72 65 70 6f 72 74 20 74 6f 20 68 74 74 70 73 3a 2f 2f | (%s)...Please.report.to.https:// |
| 2780 | 67 69 74 68 75 62 2e 63 6f 6d 2f 72 68 61 70 73 30 64 79 2f 65 6d 61 63 73 2d 6f 61 75 74 68 32 | github.com/rhaps0dy/emacs-oauth2 |
| 27a0 | 2d 61 75 74 6f 2f 69 73 73 75 65 73 2f 36 2e 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 | -auto/issues/6.%s"............(b |
| 27c0 | 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 73 | uffer-file-name).oauth2-auto-pls |
| 27e0 | 74 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 72 65 71 75 69 72 | tore............(if.(and.(requir |
| 2800 | 65 20 27 62 61 63 6b 74 72 61 63 65 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | e.'backtrace.nil.t)............. |
| 2820 | 20 20 20 20 20 20 20 20 28 66 62 6f 75 6e 64 70 20 27 62 61 63 6b 74 72 61 63 65 2d 70 72 69 6e | ........(fboundp.'backtrace-prin |
| 2840 | 74 2d 74 6f 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | t-to-string))................(co |
| 2860 | 6e 63 61 74 20 22 20 42 61 63 6b 74 72 61 63 65 3a 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 | ncat.".Backtrace:\n\n".......... |
| 2880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 74 72 61 63 65 2d 70 72 69 6e 74 2d 74 | ..............(backtrace-print-t |
| 28a0 | 6f 2d 73 74 72 69 6e 67 20 28 62 61 63 6b 74 72 61 63 65 2d 66 72 61 6d 65 73 20 27 6f 61 75 74 | o-string.(backtrace-frames.'oaut |
| 28c0 | 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 74 6f 72 65 2d 77 72 69 74 65 29 29 29 0a 20 20 20 20 20 20 | h2-auto--plstore-write)))....... |
| 28e0 | 20 20 20 20 20 20 20 22 22 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 | .......""))))...(defun.oauth2-au |
| 2900 | 74 6f 2d 2d 70 6c 73 74 6f 72 65 2d 72 65 61 64 20 28 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 | to--plstore-read.(username.provi |
| 2920 | 64 65 72 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 64 61 74 61 20 66 6f 72 20 55 53 45 52 4e 41 | der)..."Read.the.data.for.USERNA |
| 2940 | 4d 45 20 61 6e 64 20 50 52 4f 56 49 44 45 52 20 66 72 6f 6d 20 74 68 65 20 63 61 63 68 65 2c 20 | ME.and.PROVIDER.from.the.cache,. |
| 2960 | 65 6c 73 65 20 66 72 6f 6d 20 70 6c 73 74 6f 72 65 2e 0a 43 61 63 68 65 20 64 61 74 61 20 69 66 | else.from.plstore..Cache.data.if |
| 2980 | 20 61 20 6d 69 73 73 20 6f 63 63 75 72 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 64 20 28 6f 61 | .a.miss.occurs."...(let.((id.(oa |
| 29a0 | 75 74 68 32 2d 61 75 74 6f 2d 2d 63 6f 6d 70 75 74 65 2d 69 64 20 75 73 65 72 6e 61 6d 65 20 70 | uth2-auto--compute-id.username.p |
| 29c0 | 72 6f 76 69 64 65 72 29 29 29 0a 20 20 20 20 3b 20 41 73 73 75 6d 65 20 63 61 63 68 65 20 69 73 | rovider))).....;.Assume.cache.is |
| 29e0 | 20 69 6e 76 61 6c 69 64 61 74 65 64 2e 20 46 49 58 4d 45 0a 20 20 20 20 28 6f 72 20 6e 69 6c 20 | .invalidated..FIXME.....(or.nil. |
| 2a00 | 3b 28 67 65 74 68 61 73 68 20 69 64 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 74 6f 72 | ;(gethash.id.oauth2-auto--plstor |
| 2a20 | 65 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 6c 73 74 6f 72 65 20 | e-cache).........(let.((plstore. |
| 2a40 | 28 70 6c 73 74 6f 72 65 2d 6f 70 65 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 73 74 6f 72 | (plstore-open.oauth2-auto-plstor |
| 2a60 | 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 | e)))...........(unwind-protect.. |
| 2a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 69 64 0a 20 20 20 20 20 20 20 | .............(puthash.id........ |
| 2aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 70 6c 73 74 6f 72 65 2d 67 65 | ................(cdr.(plstore-ge |
| 2ac0 | 74 20 70 6c 73 74 6f 72 65 20 69 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.plstore.id)).................. |
| 2ae0 | 20 20 20 20 20 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 74 6f 72 65 2d 63 61 63 68 65 | ......oauth2-auto--plstore-cache |
| 2b00 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 73 74 6f 72 65 2d 63 6c 6f 73 65 20 70 6c 73 | ).............(plstore-close.pls |
| 2b20 | 74 6f 72 65 29 29 29 29 29 29 0a 0a 0a 0a 3b 3b 20 4d 61 69 6e 20 65 6e 74 72 79 20 70 6f 69 6e | tore))))))....;;.Main.entry.poin |
| 2b40 | 74 0a 0a 28 61 69 6f 2d 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 69 73 74 20 | t..(aio-defun.oauth2-auto-plist. |
| 2b60 | 28 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 29 0a 20 20 22 52 65 74 75 72 6e 73 20 61 | (username.provider)..."Returns.a |
| 2b80 | 6e 20 5c 5c 3d 27 6f 61 75 74 68 32 2d 74 6f 6b 65 6e 20 73 74 72 75 63 74 75 72 65 20 66 6f 72 | n.\\='oauth2-token.structure.for |
| 2ba0 | 20 55 53 45 52 4e 41 4d 45 20 61 6e 64 20 50 52 4f 56 49 44 45 52 2e 22 0a 20 20 3b 20 43 68 65 | .USERNAME.and.PROVIDER."...;.Che |
| 2bc0 | 63 6b 20 74 68 65 20 70 6c 73 74 6f 72 65 20 66 6f 72 20 74 68 65 20 72 65 71 75 65 73 74 65 64 | ck.the.plstore.for.the.requested |
| 2be0 | 20 75 73 65 72 6e 61 6d 65 20 61 6e 64 20 70 72 6f 76 69 64 65 72 0a 20 20 28 6c 65 74 20 28 28 | .username.and.provider...(let.(( |
| 2c00 | 70 6c 69 73 74 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 74 6f 72 65 2d 72 65 61 64 | plist.(oauth2-auto--plstore-read |
| 2c20 | 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e | .username.provider))).....(if.(n |
| 2c40 | 6f 74 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 69 73 74 2d 6e 65 65 64 73 2d 72 65 66 | ot.(oauth2-auto--plist-needs-ref |
| 2c60 | 72 65 73 68 69 6e 67 20 70 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 3b 20 49 66 20 65 78 70 | reshing.plist)).........;.If.exp |
| 2c80 | 69 72 61 74 69 6f 6e 20 74 69 6d 65 20 69 73 20 66 6f 75 6e 64 20 61 6e 64 20 68 61 73 6e 27 74 | iration.time.is.found.and.hasn't |
| 2ca0 | 20 68 61 70 70 65 6e 65 64 20 79 65 74 0a 20 20 20 20 20 20 20 20 70 6c 69 73 74 0a 20 20 20 20 | .happened.yet.........plist..... |
| 2cc0 | 20 20 3b 20 4f 74 68 65 72 77 69 73 65 20 72 65 66 72 65 73 68 20 6f 72 20 61 75 74 68 65 6e 74 | ..;.Otherwise.refresh.or.authent |
| 2ce0 | 69 63 61 74 65 20 74 68 65 20 75 73 65 72 2c 20 61 6e 64 20 77 72 69 74 65 20 74 68 65 20 72 65 | icate.the.user,.and.write.the.re |
| 2d00 | 73 75 6c 74 20 74 6f 0a 20 20 20 20 20 20 3b 20 70 6c 73 74 6f 72 65 2e 0a 20 20 20 20 20 20 28 | sult.to.......;.plstore........( |
| 2d20 | 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 6c 73 74 6f 72 65 2d 77 72 69 74 65 0a 20 20 20 20 20 | oauth2-auto--plstore-write...... |
| 2d40 | 20 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 0a 20 20 20 20 20 20 20 28 61 69 6f 2d | ..username.provider........(aio- |
| 2d60 | 61 77 61 69 74 0a 20 20 20 20 20 20 20 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 72 65 66 72 65 | await.........(oauth2-auto-refre |
| 2d80 | 73 68 2d 6f 72 2d 61 75 74 68 65 6e 74 69 63 61 74 65 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 | sh-or-authenticate.username.prov |
| 2da0 | 69 64 65 72 20 70 6c 69 73 74 29 29 29 29 29 29 0a 0a 28 61 69 6f 2d 64 65 66 75 6e 20 6f 61 75 | ider.plist))))))..(aio-defun.oau |
| 2dc0 | 74 68 32 2d 61 75 74 6f 2d 66 6f 72 63 65 2d 72 65 61 75 74 68 20 28 75 73 65 72 6e 61 6d 65 20 | th2-auto-force-reauth.(username. |
| 2de0 | 70 72 6f 76 69 64 65 72 29 0a 20 20 22 41 75 74 68 65 6e 74 69 63 61 74 65 73 20 55 53 45 52 4e | provider)..."Authenticates.USERN |
| 2e00 | 41 4d 45 20 77 69 74 68 20 50 52 4f 56 49 44 45 52 20 61 67 61 69 6e 20 61 6e 64 20 73 61 76 65 | AME.with.PROVIDER.again.and.save |
| 2e20 | 73 20 74 6f 20 74 68 65 20 70 6c 73 74 6f 72 65 2e 22 0a 20 20 28 6f 61 75 74 68 32 2d 61 75 74 | s.to.the.plstore."...(oauth2-aut |
| 2e40 | 6f 2d 2d 70 6c 73 74 6f 72 65 2d 77 72 69 74 65 0a 20 20 20 75 73 65 72 6e 61 6d 65 20 70 72 6f | o--plstore-write....username.pro |
| 2e60 | 76 69 64 65 72 0a 20 20 20 28 61 69 6f 2d 61 77 61 69 74 0a 20 20 20 20 28 6f 61 75 74 68 32 2d | vider....(aio-await.....(oauth2- |
| 2e80 | 61 75 74 6f 2d 61 75 74 68 65 6e 74 69 63 61 74 65 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 | auto-authenticate.username.provi |
| 2ea0 | 64 65 72 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6f 6c | der))))...(defun.oauth2-auto-pol |
| 2ec0 | 6c 2d 70 72 6f 6d 69 73 65 20 28 70 72 6f 6d 69 73 65 29 0a 20 20 22 53 79 6e 63 68 72 6f 6e 6f | l-promise.(promise)..."Synchrono |
| 2ee0 | 75 73 6c 79 20 77 61 69 74 20 66 6f 72 20 50 52 4f 4d 49 53 45 2c 20 70 6f 6c 6c 69 6e 67 20 65 | usly.wait.for.PROMISE,.polling.e |
| 2f00 | 76 65 72 79 20 53 45 43 4f 4e 44 53 20 73 65 63 6f 6e 64 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 | very.SECONDS.seconds."...(let.(( |
| 2f20 | 73 65 63 6f 6e 64 73 20 33 29 29 0a 20 20 20 28 77 68 69 6c 65 20 28 6e 75 6c 6c 20 28 61 69 6f | seconds.3))....(while.(null.(aio |
| 2f40 | 2d 72 65 73 75 6c 74 20 70 72 6f 6d 69 73 65 29 29 0a 20 20 20 20 20 28 73 6c 65 65 70 2d 66 6f | -result.promise))......(sleep-fo |
| 2f60 | 72 20 73 65 63 6f 6e 64 73 29 29 0a 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 61 69 6f 2d 72 65 73 | r.seconds))....(funcall.(aio-res |
| 2f80 | 75 6c 74 20 70 72 6f 6d 69 73 65 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a | ult.promise))))..;;;###autoload. |
| 2fa0 | 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 69 73 74 2d 73 79 6e 63 20 28 75 | (defun.oauth2-auto-plist-sync.(u |
| 2fc0 | 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 29 0a 20 20 22 53 79 6e 63 68 72 6f 6e 6f 75 73 | sername.provider)..."Synchronous |
| 2fe0 | 6c 79 20 63 61 6c 6c 20 e2 80 98 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 69 73 74 e2 80 99 20 | ly.call....oauth2-auto-plist.... |
| 3000 | 61 6e 64 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 2e 0a 46 6f 72 20 55 53 45 52 4e 41 4d 45 20 | and.return.result..For.USERNAME. |
| 3020 | 61 6e 64 20 50 52 4f 56 49 44 45 52 2c 20 73 65 65 2e 22 0a 20 20 28 6f 61 75 74 68 32 2d 61 75 | and.PROVIDER,.see."...(oauth2-au |
| 3040 | 74 6f 2d 70 6f 6c 6c 2d 70 72 6f 6d 69 73 65 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6c 69 | to-poll-promise.(oauth2-auto-pli |
| 3060 | 73 74 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 29 29 29 0a 0a 28 61 69 6f 2d 64 65 | st.username.provider)))..(aio-de |
| 3080 | 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 61 63 63 65 73 73 2d 74 6f 6b 65 6e 20 28 75 73 | fun.oauth2-auto-access-token.(us |
| 30a0 | 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 29 0a 20 20 22 52 65 74 75 72 6e 73 20 61 63 63 65 | ername.provider)..."Returns.acce |
| 30c0 | 73 73 2d 74 6f 6b 65 6e 20 73 74 72 69 6e 67 20 75 73 65 64 20 74 6f 20 61 75 74 68 65 6e 74 69 | ss-token.string.used.to.authenti |
| 30e0 | 63 61 74 65 20 55 53 45 52 4e 41 4d 45 20 74 6f 20 50 52 4f 56 49 44 45 52 2e 22 0a 20 20 28 70 | cate.USERNAME.to.PROVIDER."...(p |
| 3100 | 6c 69 73 74 2d 67 65 74 20 28 61 69 6f 2d 61 77 61 69 74 20 28 6f 61 75 74 68 32 2d 61 75 74 6f | list-get.(aio-await.(oauth2-auto |
| 3120 | 2d 70 6c 69 73 74 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 29 29 0a 20 20 20 20 20 | -plist.username.provider))...... |
| 3140 | 20 20 20 20 20 20 20 20 3a 61 63 63 65 73 73 2d 74 6f 6b 65 6e 29 29 0a 0a 3b 3b 3b 23 23 23 61 | ........:access-token))..;;;###a |
| 3160 | 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 61 63 63 65 73 | utoload.(defun.oauth2-auto-acces |
| 3180 | 73 2d 74 6f 6b 65 6e 2d 73 79 6e 63 20 28 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 29 | s-token-sync.(username.provider) |
| 31a0 | 0a 20 20 22 53 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 63 61 6c 6c 20 e2 80 98 6f 61 75 74 68 32 | ..."Synchronously.call....oauth2 |
| 31c0 | 2d 61 75 74 6f 2d 61 63 63 65 73 73 2d 74 6f 6b 65 6e e2 80 99 20 61 6e 64 20 72 65 74 75 72 6e | -auto-access-token....and.return |
| 31e0 | 20 72 65 73 75 6c 74 2e 0a 46 6f 72 20 55 53 45 52 4e 41 4d 45 20 61 6e 64 20 50 52 4f 56 49 44 | .result..For.USERNAME.and.PROVID |
| 3200 | 45 52 2c 20 73 65 65 2e 22 0a 20 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 6f 6c 6c 2d 70 72 | ER,.see."...(oauth2-auto-poll-pr |
| 3220 | 6f 6d 69 73 65 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 61 63 63 65 73 73 2d 74 6f 6b 65 6e 20 | omise.(oauth2-auto-access-token. |
| 3240 | 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 29 29 29 0a 0a 0a 3b 3b 20 4d 61 6b 69 6e 67 | username.provider)))...;;.Making |
| 3260 | 20 61 6e 64 20 65 6e 63 6f 64 69 6e 67 20 72 65 71 75 65 73 74 73 0a 0a 28 64 65 66 75 6e 20 6f | .and.encoding.requests..(defun.o |
| 3280 | 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 20 28 70 72 6f 76 69 | auth2-auto--provider-info.(provi |
| 32a0 | 64 65 72 29 0a 20 20 22 47 65 74 20 64 61 74 61 20 66 6f 72 20 50 52 4f 56 49 44 45 52 20 66 72 | der)..."Get.data.for.PROVIDER.fr |
| 32c0 | 6f 6d 20 60 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 72 6f 76 69 64 65 72 73 2d 61 6c 69 73 74 27 | om.`oauth2-auto-providers-alist' |
| 32e0 | 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 20 28 63 64 72 20 28 | ."...(let.((provider-info.(cdr.( |
| 3300 | 61 73 73 6f 63 20 70 72 6f 76 69 64 65 72 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 72 6f 76 | assoc.provider.(oauth2-auto-prov |
| 3320 | 69 64 65 72 73 2d 61 6c 69 73 74 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 | iders-alist))))).....(when.(not. |
| 3340 | 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 6f 61 75 | provider-info).......(error."oau |
| 3360 | 74 68 32 2d 61 75 74 6f 3a 20 55 6e 6b 6e 6f 77 6e 20 70 72 6f 76 69 64 65 72 3a 20 25 73 22 20 | th2-auto:.Unknown.provider:.%s". |
| 3380 | 70 72 6f 76 69 64 65 72 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 65 79 20 27 28 63 6c | provider)).....(dolist.(key.'(cl |
| 33a0 | 69 65 6e 74 5f 69 64 20 63 6c 69 65 6e 74 5f 73 65 63 72 65 74 29 29 0a 20 20 20 20 20 20 20 20 | ient_id.client_secret))......... |
| 33c0 | 28 77 68 65 6e 20 28 65 71 75 61 6c 20 22 22 20 28 63 64 72 20 28 61 73 73 6f 63 20 6b 65 79 20 | (when.(equal."".(cdr.(assoc.key. |
| 33e0 | 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 | provider-info)))..........(error |
| 3400 | 20 22 6f 61 75 74 68 32 2d 61 75 74 6f 3a 20 50 72 6f 76 69 64 65 72 20 25 73 20 77 61 73 20 72 | ."oauth2-auto:.Provider.%s.was.r |
| 3420 | 65 71 75 65 73 74 65 64 20 62 75 74 20 68 61 73 20 6e 6f 20 60 25 73 27 20 73 70 65 63 69 66 69 | equested.but.has.no.`%s'.specifi |
| 3440 | 65 64 22 20 70 72 6f 76 69 64 65 72 20 6b 65 79 29 29 29 0a 20 20 20 20 70 72 6f 76 69 64 65 72 | ed".provider.key))).....provider |
| 3460 | 2d 69 6e 66 6f 29 29 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 75 72 6c | -info))..(defun.oauth2-auto--url |
| 3480 | 69 66 79 2d 72 65 71 75 65 73 74 20 28 61 6c 69 73 74 29 0a 20 20 22 4d 61 6b 65 20 41 4c 49 53 | ify-request.(alist)..."Make.ALIS |
| 34a0 | 54 20 6f 66 20 28 73 79 6d 62 6f 6c 20 2e 20 73 74 72 69 6e 67 29 20 69 6e 74 6f 20 55 52 4c 2d | T.of.(symbol...string).into.URL- |
| 34c0 | 66 6f 72 6d 61 74 74 65 64 20 72 65 71 75 65 73 74 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 | formatted.request."...(mapconcat |
| 34e0 | 20 28 6c 61 6d 62 64 61 20 28 73 29 20 28 63 6f 6e 63 61 74 20 28 75 72 6c 2d 68 65 78 69 66 79 | .(lambda.(s).(concat.(url-hexify |
| 3500 | 2d 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 73 29 29 29 0a 20 | -string.(symbol-name.(car.s))).. |
| 3520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3540 | 22 3d 22 20 28 75 72 6c 2d 68 65 78 69 66 79 2d 73 74 72 69 6e 67 20 28 63 64 72 20 73 29 29 29 | "=".(url-hexify-string.(cdr.s))) |
| 3560 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 69 73 74 20 22 26 22 29 29 0a 0a 28 64 65 66 | )..............alist."&"))..(def |
| 3580 | 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 63 72 61 66 74 2d 72 65 71 75 65 73 74 2d 61 6c | un.oauth2-auto--craft-request-al |
| 35a0 | 69 73 74 20 28 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 20 64 61 74 61 2d 6b 65 79 73 20 65 78 74 | ist.(provider-info.data-keys.ext |
| 35c0 | 72 61 2d 61 6c 69 73 74 29 0a 20 20 22 4d 61 6b 65 20 72 65 71 75 65 73 74 20 66 6f 72 20 50 52 | ra-alist)..."Make.request.for.PR |
| 35e0 | 4f 56 49 44 45 52 2d 49 4e 46 4f 20 75 73 69 6e 67 20 74 68 65 20 69 6e 66 6f 20 69 6e 20 44 41 | OVIDER-INFO.using.the.info.in.DA |
| 3600 | 54 41 2d 4b 45 59 53 20 61 6e 64 20 45 58 54 52 41 2d 41 4c 49 53 54 2e 22 0a 20 20 28 61 70 70 | TA-KEYS.and.EXTRA-ALIST."...(app |
| 3620 | 65 6e 64 20 28 2d 2d 66 69 6c 74 65 72 20 28 6d 65 6d 71 20 28 63 61 72 20 69 74 29 20 64 61 74 | end.(--filter.(memq.(car.it).dat |
| 3640 | 61 2d 6b 65 79 73 29 20 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 29 20 65 78 74 72 61 2d 61 6c 69 | a-keys).provider-info).extra-ali |
| 3660 | 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 72 65 71 75 65 73 | st))..(defun.oauth2-auto--reques |
| 3680 | 74 2d 61 63 63 65 73 73 2d 70 61 72 73 65 20 28 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 72 | t-access-parse.()..."Parse.the.r |
| 36a0 | 65 73 75 6c 74 20 6f 66 20 61 6e 20 4f 41 75 74 68 20 72 65 71 75 65 73 74 2e 0a 0a 43 6f 64 65 | esult.of.an.OAuth.request...Code |
| 36c0 | 20 66 72 6f 6d 20 60 6f 61 75 74 68 32 2e 65 6c 27 2c 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 | .from.`oauth2.el',.licensed.unde |
| 36e0 | 72 20 47 50 4c 76 33 2b 2e 0a 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | r.GPLv3+..See.https://github.com |
| 3700 | 2f 65 6d 61 63 73 6d 69 72 72 6f 72 2f 6f 61 75 74 68 32 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 | /emacsmirror/oauth2."...(goto-ch |
| 3720 | 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d | ar.(point-min))...(when.(search- |
| 3740 | 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 20 22 5e 24 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 28 | forward-regexp."^$".nil.t).....( |
| 3760 | 6a 73 6f 6e 2d 72 65 61 64 29 29 29 0a 0a 28 61 69 6f 2d 64 65 66 75 6e 20 6f 61 75 74 68 32 2d | json-read)))..(aio-defun.oauth2- |
| 3780 | 61 75 74 6f 2d 2d 72 65 71 75 65 73 74 20 28 70 72 6f 76 69 64 65 72 20 75 72 6c 2d 6b 65 79 20 | auto--request.(provider.url-key. |
| 37a0 | 64 61 74 61 2d 6b 65 79 73 20 65 78 74 72 61 2d 61 6c 69 73 74 29 0a 20 20 22 41 73 79 6e 63 68 | data-keys.extra-alist)..."Asynch |
| 37c0 | 72 6f 6e 6f 75 73 6c 79 20 73 65 6e 64 20 61 20 50 4f 53 54 20 72 65 71 75 65 73 74 20 74 6f 20 | ronously.send.a.POST.request.to. |
| 37e0 | 4f 41 75 74 68 32 20 50 52 4f 56 49 44 45 52 2e 0a 50 52 4f 56 49 44 45 52 20 75 73 65 73 20 74 | OAuth2.PROVIDER..PROVIDER.uses.t |
| 3800 | 68 65 20 75 72 6c 20 61 6e 64 20 64 61 74 61 20 73 70 65 63 69 66 69 65 64 20 75 6e 64 65 72 20 | he.url.and.data.specified.under. |
| 3820 | 55 52 4c 2d 4b 45 59 20 61 6e 64 0a 44 41 54 41 2d 4b 45 59 53 20 69 6e 20 74 68 65 20 70 72 6f | URL-KEY.and.DATA-KEYS.in.the.pro |
| 3840 | 76 69 64 65 72 20 69 6e 66 6f 20 28 73 65 65 20 60 6f 61 75 74 68 32 2d 61 75 74 6f 2d 70 72 6f | vider.info.(see.`oauth2-auto-pro |
| 3860 | 76 69 64 65 72 73 2d 61 6c 69 73 74 27 29 2e 0a 41 6c 73 6f 20 73 65 6e 64 20 64 61 74 61 20 69 | viders-alist')..Also.send.data.i |
| 3880 | 6e 20 45 58 54 52 41 2d 41 4c 49 53 54 2e 22 0a 20 20 28 6c 65 74 2a 20 28 0a 20 20 20 20 20 20 | n.EXTRA-ALIST."...(let*.(....... |
| 38a0 | 20 20 20 3b 3b 20 43 72 61 66 74 20 74 68 65 20 72 65 71 75 65 73 74 20 66 69 72 73 74 0a 20 20 | ...;;.Craft.the.request.first... |
| 38c0 | 20 20 20 20 20 20 20 28 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 20 28 6f 61 75 74 68 32 2d 61 75 | .......(provider-info.(oauth2-au |
| 38e0 | 74 6f 2d 2d 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 20 70 72 6f 76 69 64 65 72 29 29 0a 20 20 20 | to--provider-info.provider)).... |
| 3900 | 20 20 20 20 20 20 28 75 72 6c 20 28 63 64 72 20 28 61 73 73 6f 63 20 75 72 6c 2d 6b 65 79 20 70 | ......(url.(cdr.(assoc.url-key.p |
| 3920 | 72 6f 76 69 64 65 72 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 61 2d 61 | rovider-info)))..........(data-a |
| 3940 | 6c 69 73 74 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 63 72 61 66 74 2d 72 65 71 75 65 73 74 | list.(oauth2-auto--craft-request |
| 3960 | 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f | -alist.......................pro |
| 3980 | 76 69 64 65 72 2d 69 6e 66 6f 20 64 61 74 61 2d 6b 65 79 73 20 65 78 74 72 61 2d 61 6c 69 73 74 | vider-info.data-keys.extra-alist |
| 39a0 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 61 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d | ))..........(data.(oauth2-auto-- |
| 39c0 | 75 72 6c 69 66 79 2d 72 65 71 75 65 73 74 20 64 61 74 61 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 | urlify-request.data-alist))..... |
| 39e0 | 20 20 20 20 20 3b 3b 20 50 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 60 75 72 6c 2d 72 65 74 72 | .....;;.Parameters.for.`url-retr |
| 3a00 | 69 65 76 65 27 20 69 6e 73 69 64 65 20 60 61 69 6f 2d 75 72 6c 2d 72 65 74 72 69 65 76 65 27 0a | ieve'.inside.`aio-url-retrieve'. |
| 3a20 | 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 67 69 73 74 65 72 65 64 2d 61 75 74 68 2d 73 63 | .........(url-registered-auth-sc |
| 3a40 | 68 65 6d 65 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 | hemes.nil)..........(url-request |
| 3a60 | 2d 6d 65 74 68 6f 64 20 22 50 4f 53 54 22 29 0a 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 | -method."POST")..........(url-re |
| 3a80 | 71 75 65 73 74 2d 64 61 74 61 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 | quest-data.data)..........(url-r |
| 3aa0 | 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 27 | equest-extra-headers...........' |
| 3ac0 | 28 28 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 22 20 2e 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f | (("Content-Type"..."application/ |
| 3ae0 | 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 22 29 29 29 0a 20 20 20 20 20 20 | x-www-form-urlencoded")))....... |
| 3b00 | 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 75 73 69 6e 67 20 60 61 69 6f 2d 75 72 6c 2d 72 65 74 72 69 | ...;;.TODO:.using.`aio-url-retri |
| 3b20 | 65 76 65 27 20 73 6f 6d 65 74 69 6d 65 73 20 72 65 73 75 6c 74 73 20 69 6e 20 61 20 68 75 6e 67 | eve'.sometimes.results.in.a.hung |
| 3b40 | 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 73 6f 20 77 65 20 66 | ..........;;.connection,.so.we.f |
| 3b60 | 61 6c 6c 20 62 61 63 6b 20 74 6f 20 e2 80 98 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e 63 | all.back.to....url-retrieve-sync |
| 3b80 | 68 72 6f 6e 6f 75 73 6c 79 e2 80 99 20 69 6e 73 74 65 61 64 2e 0a 20 20 20 20 20 20 20 20 20 3b | hronously....instead...........; |
| 3ba0 | 3b 20 54 68 69 73 20 6d 65 74 68 6f 64 20 73 68 6f 75 6c 64 6e e2 80 99 74 20 62 65 20 63 61 6c | ;.This.method.shouldn...t.be.cal |
| 3bc0 | 6c 65 64 20 76 65 72 79 20 6f 66 74 65 6e 2c 20 6f 6e 6c 79 20 77 68 65 6e 20 6f 62 74 61 69 6e | led.very.often,.only.when.obtain |
| 3be0 | 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 69 74 69 61 6c 20 61 63 63 65 | ing.the..........;;.initial.acce |
| 3c00 | 73 73 20 74 6f 6b 65 6e 20 61 6e 64 20 77 68 65 6e 20 72 65 66 72 65 73 68 69 6e 67 20 74 6f 6b | ss.token.and.when.refreshing.tok |
| 3c20 | 65 6e 73 2c 20 77 68 69 63 68 20 6f 6e 6c 79 20 68 61 70 70 65 6e 73 0a 20 20 20 20 20 20 20 20 | ens,.which.only.happens......... |
| 3c40 | 20 3b 3b 20 65 76 65 72 79 20 68 6f 75 72 20 6f 72 20 73 6f 2e 20 54 68 65 72 65 66 6f 72 65 20 | .;;.every.hour.or.so..Therefore. |
| 3c60 | 49 20 74 68 69 6e 6b 20 74 68 69 73 20 69 73 20 61 6e 20 61 63 63 65 70 74 61 62 6c 65 20 77 6f | I.think.this.is.an.acceptable.wo |
| 3c80 | 72 6b 61 72 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 6e 6f 77 2e 0a 20 20 | rkaround..........;;.for.now.... |
| 3ca0 | 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 2d 62 75 66 66 65 72 20 28 61 69 6f 2d 61 77 61 | .......(response-buffer.(aio-awa |
| 3cc0 | 69 74 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 75 | it.(url-retrieve-synchronously.u |
| 3ce0 | 72 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 28 77 69 74 68 2d 63 | rl)))..........(response.(with-c |
| 3d00 | 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 72 65 73 70 6f 6e 73 65 2d 62 75 66 66 65 72 0a 20 20 | urrent-buffer.response-buffer... |
| 3d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 28 6f 61 75 74 68 | ...................(prog1.(oauth |
| 3d40 | 32 2d 61 75 74 6f 2d 2d 72 65 71 75 65 73 74 2d 61 63 63 65 73 73 2d 70 61 72 73 65 29 0a 20 20 | 2-auto--request-access-parse)... |
| 3d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 | .....................(kill-buffe |
| 3d80 | 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 63 | r.(current-buffer)))))).......(c |
| 3da0 | 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 61 73 73 6f 63 20 27 65 72 72 6f 72 20 72 65 73 70 6f 6e | ond........((assoc.'error.respon |
| 3dc0 | 73 65 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4f 41 75 74 68 20 65 72 72 6f 72 2e | se).........(error."OAuth.error. |
| 3de0 | 20 20 52 65 71 75 65 73 74 3a 20 25 73 2e 20 20 52 65 73 70 6f 6e 73 65 3a 20 25 73 22 0a 20 20 | ..Request:.%s...Response:.%s"... |
| 3e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 20 64 61 74 61 2d | .............(pp-to-string.data- |
| 3e20 | 61 6c 69 73 74 29 20 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 29 29 29 | alist).(pp-to-string.response))) |
| 3e40 | 0a 20 20 20 20 20 20 20 28 74 20 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 0a 0a 3b 3b 20 42 61 72 | ........(t.response))))...;;.Bar |
| 3e60 | 65 62 6f 6e 65 73 20 48 54 54 50 20 73 65 72 76 65 72 20 74 6f 20 72 65 63 65 69 76 65 20 74 68 | ebones.HTTP.server.to.receive.th |
| 3e80 | 65 20 74 6f 6b 65 6e 73 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 68 74 | e.tokens..(defun.oauth2-auto--ht |
| 3ea0 | 74 70 64 2d 72 65 73 70 6f 6e 64 20 28 70 72 6f 63 65 73 73 20 72 65 73 70 6f 6e 73 65 29 0a 20 | tpd-respond.(process.response).. |
| 3ec0 | 20 22 53 65 6e 64 20 72 65 73 70 6f 6e 73 65 20 66 6f 72 20 4f 41 75 74 68 32 20 63 68 61 6c 6c | ."Send.response.for.OAuth2.chall |
| 3ee0 | 65 6e 67 65 2d 72 65 73 70 6f 6e 73 65 2e 0a 50 52 4f 43 45 53 53 20 69 73 20 74 68 65 20 73 65 | enge-response..PROCESS.is.the.se |
| 3f00 | 72 76 65 72 20 70 72 6f 63 65 73 73 20 63 72 65 61 74 65 64 20 69 6e 20 e2 80 98 6f 61 75 74 68 | rver.process.created.in....oauth |
| 3f20 | 32 2d 61 75 74 6f 2d 2d 62 72 6f 77 73 65 72 2d 72 65 71 75 65 73 74 e2 80 99 2e 0a 52 45 53 50 | 2-auto--browser-request.....RESP |
| 3f40 | 4f 4e 53 45 20 69 73 20 74 68 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 20 62 6f 64 79 20 74 | ONSE.is.the.HTTP.response.body.t |
| 3f60 | 6f 20 73 65 6e 64 2e 22 0a 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 73 74 72 69 6e 67 0a | o.send."...(process-send-string. |
| 3f80 | 20 20 20 70 72 6f 63 65 73 73 20 28 63 6f 6e 63 61 74 20 22 48 54 54 50 2f 31 2e 30 20 32 30 30 | ...process.(concat."HTTP/1.0.200 |
| 3fa0 | 20 4f 4b 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 6e 74 65 | .OK\n"...................."Conte |
| 3fc0 | 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 75 74 66 | nt-Type:.text/plain;.charset=utf |
| 3fe0 | 2d 38 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 | -8\n"....................(format |
| 4000 | 20 22 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a 20 25 69 5c 6e 5c 6e 22 20 28 6c 65 6e 67 74 | ."Content-Length:.%i\n\n".(lengt |
| 4020 | 68 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | h.response)).................... |
| 4040 | 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c | response...................."\n\ |
| 4060 | 6e 22 29 29 0a 20 20 28 70 72 6f 63 65 73 73 2d 73 65 6e 64 2d 65 6f 66 20 70 72 6f 63 65 73 73 | n"))...(process-send-eof.process |
| 4080 | 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 71 75 65 72 79 | ))..(defmacro.oauth2-auto--query |
| 40a0 | 2d 63 61 73 65 20 28 26 72 65 73 74 20 63 61 73 65 73 29 0a 20 20 22 48 61 6e 64 6c 65 20 48 54 | -case.(&rest.cases)..."Handle.HT |
| 40c0 | 54 50 20 71 75 65 72 69 65 73 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 6b 65 79 73 20 70 72 65 | TP.queries.based.on.the.keys.pre |
| 40e0 | 73 65 6e 74 20 69 6e 20 e2 80 98 71 75 65 72 79 2d 61 6c 69 73 74 e2 80 99 2e 0a e2 80 98 71 75 | sent.in....query-alist........qu |
| 4100 | 65 72 79 2d 61 6c 69 73 74 e2 80 99 20 69 73 20 61 20 66 72 65 65 20 76 61 72 69 61 62 6c 65 2c | ery-alist....is.a.free.variable, |
| 4120 | 20 62 6f 75 6e 64 20 62 79 20 74 68 65 20 63 61 6c 6c 65 72 20 6f 66 20 74 68 69 73 20 6d 61 63 | .bound.by.the.caller.of.this.mac |
| 4140 | 72 6f 2e 20 20 45 61 63 68 0a 65 6c 65 6d 65 6e 74 20 6f 66 20 43 41 53 45 53 20 68 61 73 20 74 | ro...Each.element.of.CASES.has.t |
| 4160 | 68 65 20 66 6f 72 6d 61 74 20 e2 80 98 28 73 79 6d 62 6f 6c 73 20 6d 73 67 20 62 6f 64 79 29 27 | he.format....(symbols.msg.body)' |
| 4180 | 2e 20 20 46 6f 72 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 0a 43 41 53 45 53 3a 0a 0a 2d | ...For.each.element.of.CASES:..- |
| 41a0 | 20 e2 80 98 73 79 6d 62 6f 6c 73 27 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 74 20 6c 65 61 | ....symbols'.is.a.list.of.at.lea |
| 41c0 | 73 74 20 6f 6e 65 20 73 79 6d 62 6f 6c 2c 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 62 65 20 6b | st.one.symbol,.which.should.be.k |
| 41e0 | 65 79 73 20 69 6e 0a 20 20 e2 80 98 71 75 65 72 79 2d 61 6c 69 73 74 e2 80 99 2e 0a 2d 20 45 78 | eys.in......query-alist.....-.Ex |
| 4200 | 74 72 61 63 74 20 61 6e 64 20 62 69 6e 64 20 6b 65 79 73 20 60 73 79 6d 62 6f 6c 73 27 20 66 72 | tract.and.bind.keys.`symbols'.fr |
| 4220 | 6f 6d 20 60 71 75 65 72 79 2d 61 6c 69 73 74 27 2e 0a 2d 20 49 66 20 61 6c 6c 20 6f 66 20 74 68 | om.`query-alist'..-.If.all.of.th |
| 4240 | 65 6d 20 61 72 65 20 70 72 65 73 65 6e 74 2c 20 72 65 73 70 6f 6e 64 20 77 69 74 68 20 60 6d 73 | em.are.present,.respond.with.`ms |
| 4260 | 67 27 20 61 6e 64 20 72 75 6e 73 20 60 62 6f 64 79 27 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 | g'.and.runs.`body'...For.example |
| 4280 | 20 6f 66 20 75 73 61 67 65 20 73 65 65 20 e2 80 98 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 68 74 | .of.usage.see....oauth2-auto--ht |
| 42a0 | 74 70 64 2d 66 69 6c 74 65 72 e2 80 99 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 0a 20 20 20 28 64 | tpd-filter...."...(declare....(d |
| 42c0 | 65 62 75 67 20 28 26 72 65 73 74 20 28 28 73 79 6d 62 6f 6c 70 20 26 72 65 73 74 20 73 79 6d 62 | ebug.(&rest.((symbolp.&rest.symb |
| 42e0 | 6f 6c 70 29 20 66 6f 72 6d 20 26 72 65 73 74 20 66 6f 72 6d 29 29 29 29 0a 20 20 60 28 63 6f 6e | olp).form.&rest.form))))...`(con |
| 4300 | 64 0a 20 20 20 20 2c 40 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 63 61 73 65 29 0a 20 | d.....,@(mapcar.(lambda.(case).. |
| 4320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 79 6d 62 6f 6c 73 20 28 63 | ...............(let.((symbols.(c |
| 4340 | 61 72 20 63 61 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ar.case))....................... |
| 4360 | 28 6d 73 67 20 28 63 61 64 72 20 63 61 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (msg.(cadr.case))............... |
| 4380 | 20 20 20 20 20 20 20 20 28 62 6f 64 79 20 28 63 64 64 72 20 63 61 73 65 29 29 29 0a 20 20 20 20 | ........(body.(cddr.case)))..... |
| 43a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 61 6e 64 20 2c 40 28 2d 2d 6d 61 70 20 60 28 | ..............`((and.,@(--map.`( |
| 43c0 | 63 64 72 20 28 61 73 73 6f 63 20 27 2c 69 74 20 71 75 65 72 79 2d 61 6c 69 73 74 29 29 20 73 79 | cdr.(assoc.',it.query-alist)).sy |
| 43e0 | 6d 62 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 | mbols)).....................(let |
| 4400 | 2a 20 28 2c 40 28 2d 2d 6d 61 70 20 60 28 2c 69 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 2c | *.(,@(--map.`(,it.(cdr.(assoc.', |
| 4420 | 69 74 20 71 75 65 72 79 2d 61 6c 69 73 74 29 29 29 20 73 79 6d 62 6f 6c 73 29 0a 20 20 20 20 20 | it.query-alist))).symbols)...... |
| 4440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 73 67 20 2c 6d 73 67 29 | ......................(msg.,msg) |
| 4460 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 e2 80 98 69 67 | ).......................;;....ig |
| 4480 | 6e 6f 72 65 e2 80 99 20 73 75 70 70 72 65 73 73 65 73 20 62 79 74 65 20 63 6f 6d 70 69 6c 65 72 | nore....suppresses.byte.compiler |
| 44a0 | 20 77 61 72 6e 69 6e 67 73 20 69 66 20 74 68 65 20 6d 61 63 72 6f 0a 20 20 20 20 20 20 20 20 20 | .warnings.if.the.macro.......... |
| 44c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 61 6c 6c 65 72 20 64 6f 65 73 6e e2 80 99 74 | .............;;.caller.doesn...t |
| 44e0 | 20 75 73 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 20 64 65 63 6c 61 72 65 64 20 69 6e 20 74 | .use.the.variables.declared.in.t |
| 4500 | 68 65 20 e2 80 98 6c 65 74 2a e2 80 99 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | he....let*...................... |
| 4520 | 20 20 20 20 3b 3b 20 61 62 6f 76 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....;;.above.................... |
| 4540 | 20 20 20 20 28 69 67 6e 6f 72 65 20 6d 73 67 20 2c 40 73 79 6d 62 6f 6c 73 29 0a 20 20 20 20 20 | ....(ignore.msg.,@symbols)...... |
| 4560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 68 | .................(oauth2-auto--h |
| 4580 | 74 74 70 64 2d 72 65 73 70 6f 6e 64 20 70 72 6f 63 65 73 73 20 6d 73 67 29 0a 20 20 20 20 20 20 | ttpd-respond.process.msg)....... |
| 45a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 62 6f 64 79 29 29 29 29 0a 20 20 20 20 20 | ................,@body))))...... |
| 45c0 | 20 20 20 20 20 20 20 20 20 63 61 73 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 | .........cases)))..(defun.oauth2 |
| 45e0 | 2d 61 75 74 6f 2d 2d 68 74 74 70 64 2d 66 69 6c 74 65 72 20 28 70 72 6f 63 65 73 73 20 69 6e 70 | -auto--httpd-filter.(process.inp |
| 4600 | 75 74 29 0a 20 20 22 54 68 65 20 48 54 54 50 20 68 61 6e 64 6c 65 72 20 66 6f 72 20 74 68 65 20 | ut)..."The.HTTP.handler.for.the. |
| 4620 | 4f 41 75 74 68 32 20 63 68 61 6c 6c 65 6e 67 65 2d 72 65 73 70 6f 6e 73 65 20 73 65 72 76 65 72 | OAuth2.challenge-response.server |
| 4640 | 2e 0a 50 52 4f 43 45 53 53 20 69 73 20 74 68 65 20 73 65 72 76 65 72 20 70 72 6f 63 65 73 73 20 | ..PROCESS.is.the.server.process. |
| 4660 | 63 72 65 61 74 65 64 20 69 6e 20 e2 80 98 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 62 72 6f 77 73 | created.in....oauth2-auto--brows |
| 4680 | 65 72 2d 72 65 71 75 65 73 74 e2 80 99 2e 0a 49 4e 50 55 54 20 69 73 20 74 68 65 20 72 61 77 20 | er-request.....INPUT.is.the.raw. |
| 46a0 | 48 54 54 50 20 72 65 71 75 65 73 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 71 75 65 72 79 2d 61 6c | HTTP.request."...(let.((query-al |
| 46c0 | 69 73 74 0a 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 | ist..........(with-temp-buffer.. |
| 46e0 | 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 69 6e 70 75 74 29 0a 20 20 20 20 20 20 20 | ..........(insert.input)........ |
| 4700 | 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 | ....(goto-char.(point-min))..... |
| 4720 | 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 | .......(re-search-forward....... |
| 4740 | 20 20 20 20 20 20 22 5e 5b 5b 3a 73 70 61 63 65 3a 5d 5d 2a 47 45 54 5b 5b 3a 73 70 61 63 65 3a | ......"^[[:space:]]*GET[[:space: |
| 4760 | 5d 5d 2b 5b 2f 3f 5d 2b 5c 5c 28 5b 5b 3a 67 72 61 70 68 3a 5d 5d 2a 5c 5c 29 5b 5b 3a 73 70 61 | ]]+[/?]+\\([[:graph:]]*\\)[[:spa |
| 4780 | 63 65 3a 5d 5d 2b 48 54 54 50 2f 5b 30 2d 39 2e 5d 2b 5b 5b 3a 73 70 61 63 65 3a 5d 5d 2a 24 22 | ce:]]+HTTP/[0-9.]+[[:space:]]*$" |
| 47a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 | )............(mapcar............ |
| 47c0 | 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 63 6f 6e 73 20 28 69 6e 74 65 72 6e 20 28 63 61 72 | .(lambda.(it).(cons.(intern.(car |
| 47e0 | 20 69 74 29 29 20 28 63 61 64 72 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 | .it)).(cadr.it))).............(u |
| 4800 | 72 6c 2d 70 61 72 73 65 2d 71 75 65 72 79 2d 73 74 72 69 6e 67 20 28 6d 61 74 63 68 2d 73 74 72 | rl-parse-query-string.(match-str |
| 4820 | 69 6e 67 20 31 29 29 29 29 29 29 0a 20 20 20 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 71 75 | ing.1)))))).....(oauth2-auto--qu |
| 4840 | 65 72 79 2d 63 61 73 65 0a 20 20 20 20 20 28 28 65 72 72 6f 72 20 65 72 72 6f 72 5f 64 65 73 63 | ery-case......((error.error_desc |
| 4860 | 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 45 72 72 6f 72 20 25 73 | ription).......(format."Error.%s |
| 4880 | 3a 20 25 73 22 20 65 72 72 6f 72 20 65 72 72 6f 72 5f 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 | :.%s".error.error_description).. |
| 48a0 | 20 20 20 20 20 28 65 72 72 6f 72 20 6d 73 67 29 0a 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 | .....(error.msg).......nil)..... |
| 48c0 | 20 28 28 63 6f 64 65 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 22 41 75 74 68 65 6e 74 69 63 61 | .((code.state)......."Authentica |
| 48e0 | 74 69 6f 6e 20 74 6f 6b 65 6e 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 6f 62 74 61 69 6e 65 64 | tion.token.successfully.obtained |
| 4900 | 20 62 79 20 45 6d 61 63 73 21 20 59 6f 75 20 6d 61 79 20 63 6c 6f 73 65 20 74 68 69 73 20 70 61 | .by.Emacs!.You.may.close.this.pa |
| 4920 | 67 65 20 6e 6f 77 2e 22 0a 20 20 20 20 20 20 71 75 65 72 79 2d 61 6c 69 73 74 29 0a 20 20 20 20 | ge.now.".......query-alist)..... |
| 4940 | 20 28 28 66 61 76 69 63 6f 6e 2e 69 63 6f 29 0a 20 20 20 20 20 20 22 22 0a 20 20 20 20 20 20 6e | .((favicon.ico)......."".......n |
| 4960 | 69 6c 29 20 20 3b 20 6a 75 73 74 20 72 65 74 75 72 6e 20 65 6d 70 74 79 20 6c 69 73 74 20 69 66 | il)..;.just.return.empty.list.if |
| 4980 | 20 66 61 76 69 63 6f 6e 2e 69 63 6f 20 69 73 20 72 65 71 75 65 73 74 65 64 0a 20 20 20 20 20 28 | .favicon.ico.is.requested......( |
| 49a0 | 28 29 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 | ().......(format."Could.not.pars |
| 49c0 | 65 20 71 75 65 72 79 20 73 74 72 69 6e 67 20 25 73 22 20 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 | e.query.string.%s".(pp-to-string |
| 49e0 | 20 71 75 65 72 79 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 6d 73 67 29 | .query-alist)).......(error.msg) |
| 4a00 | 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a 0a 28 61 69 6f 2d 64 65 66 75 6e 20 6f 61 75 74 68 | .......nil))))..(aio-defun.oauth |
| 4a20 | 32 2d 61 75 74 6f 2d 2d 62 72 6f 77 73 65 72 2d 72 65 71 75 65 73 74 20 28 70 72 6f 76 69 64 65 | 2-auto--browser-request.(provide |
| 4a40 | 72 20 75 72 6c 2d 6b 65 79 20 64 61 74 61 2d 6b 65 79 73 20 65 78 74 72 61 2d 61 6c 69 73 74 20 | r.url-key.data-keys.extra-alist. |
| 4a60 | 26 6f 70 74 69 6f 6e 61 6c 20 71 75 69 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 | &optional.quiet)............(if. |
| 4a80 | 6f 61 75 74 68 32 2d 61 75 74 6f 2d 6d 61 6e 75 61 6c 6c 79 2d 61 75 74 68 0a 20 20 20 20 20 20 | oauth2-auto-manually-auth....... |
| 4aa0 | 20 20 20 20 20 20 20 20 20 28 61 69 6f 2d 61 77 61 69 74 20 28 6f 61 75 74 68 32 2d 61 75 74 6f | .........(aio-await.(oauth2-auto |
| 4ac0 | 2d 2d 62 72 6f 77 73 65 72 2d 72 65 71 75 65 73 74 2d 6d 61 6e 75 61 6c 6c 79 20 70 72 6f 76 69 | --browser-request-manually.provi |
| 4ae0 | 64 65 72 20 75 72 6c 2d 6b 65 79 20 64 61 74 61 2d 6b 65 79 73 20 65 78 74 72 61 2d 61 6c 69 73 | der.url-key.data-keys.extra-alis |
| 4b00 | 74 20 71 75 69 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 69 6f 2d 61 77 61 69 | t.quiet))..............(aio-awai |
| 4b20 | 74 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 62 72 6f 77 73 65 72 2d 72 65 71 75 65 73 74 2d | t.(oauth2-auto--browser-request- |
| 4b40 | 61 75 74 6f 20 70 72 6f 76 69 64 65 72 20 75 72 6c 2d 6b 65 79 20 64 61 74 61 2d 6b 65 79 73 20 | auto.provider.url-key.data-keys. |
| 4b60 | 65 78 74 72 61 2d 61 6c 69 73 74 20 71 75 69 65 74 29 29 29 29 0a 0a 0a 28 61 69 6f 2d 64 65 66 | extra-alist.quiet))))...(aio-def |
| 4b80 | 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 62 72 6f 77 73 65 72 2d 72 65 71 75 65 73 74 2d | un.oauth2-auto--browser-request- |
| 4ba0 | 61 75 74 6f 20 28 70 72 6f 76 69 64 65 72 20 75 72 6c 2d 6b 65 79 20 64 61 74 61 2d 6b 65 79 73 | auto.(provider.url-key.data-keys |
| 4bc0 | 20 65 78 74 72 61 2d 61 6c 69 73 74 20 26 6f 70 74 69 6f 6e 61 6c 20 71 75 69 65 74 29 0a 20 20 | .extra-alist.&optional.quiet)... |
| 4be0 | 22 4f 70 65 6e 20 62 72 6f 77 73 65 72 20 66 6f 72 20 74 68 65 20 4f 41 75 74 68 32 20 50 52 4f | "Open.browser.for.the.OAuth2.PRO |
| 4c00 | 56 49 44 45 52 2e 0a 42 72 6f 77 73 65 72 20 69 73 20 6f 70 65 6e 65 64 20 61 74 20 75 72 6c 20 | VIDER..Browser.is.opened.at.url. |
| 4c20 | 61 6e 64 20 70 61 72 61 6d 65 74 65 72 73 20 67 69 76 65 6e 20 62 79 20 74 61 6b 69 6e 67 20 55 | and.parameters.given.by.taking.U |
| 4c40 | 52 4c 2d 4b 45 59 20 61 6e 64 20 44 41 54 41 2d 4b 45 59 53 0a 66 72 6f 6d 20 74 68 65 20 64 61 | RL-KEY.and.DATA-KEYS.from.the.da |
| 4c60 | 74 61 20 6f 66 20 74 68 65 20 50 52 4f 56 49 44 45 52 2c 20 61 6e 64 20 61 64 64 69 6e 67 20 45 | ta.of.the.PROVIDER,.and.adding.E |
| 4c80 | 58 54 52 41 2d 41 4c 49 53 54 2e 20 20 54 68 65 6e 20 77 65 20 6c 69 73 74 65 6e 20 74 6f 20 74 | XTRA-ALIST...Then.we.listen.to.t |
| 4ca0 | 68 65 0a 72 65 64 69 72 65 63 74 20 72 65 73 70 6f 6e 73 65 20 61 6e 64 20 72 65 74 75 72 6e 20 | he.redirect.response.and.return. |
| 4cc0 | 69 74 2e 0a 0a 49 66 20 51 55 49 45 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 75 70 70 72 65 | it...If.QUIET.is.non-nil,.suppre |
| 4ce0 | 73 73 20 61 6c 65 72 74 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 3b 20 46 69 72 73 74 20 6f 70 65 | ss.alerts."...(let*.(;.First.ope |
| 4d00 | 6e 20 6c 69 73 74 65 6e 65 72 20 74 6f 20 73 6f 6d 65 20 70 6f 72 74 20 69 6e 20 6c 6f 63 61 6c | n.listener.to.some.port.in.local |
| 4d20 | 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 28 73 65 72 76 65 72 2d 70 72 6f 63 2d 66 69 6c 74 65 | host..........(server-proc-filte |
| 4d40 | 72 20 28 61 69 6f 2d 6d 61 6b 65 2d 63 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 | r.(aio-make-callback)).......... |
| 4d60 | 28 73 65 72 76 65 72 2d 70 72 6f 63 20 28 6d 61 6b 65 2d 6e 65 74 77 6f 72 6b 2d 70 72 6f 63 65 | (server-proc.(make-network-proce |
| 4d80 | 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 | ss........................:name. |
| 4da0 | 20 20 20 22 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 68 74 74 70 64 22 0a 20 20 20 20 20 20 20 20 | ..."oauth2-auto--httpd"......... |
| 4dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 72 76 69 63 65 20 74 0a 20 20 20 20 20 20 | ...............:service.t....... |
| 4de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 72 76 65 72 20 20 74 0a 20 20 20 20 | .................:server..t..... |
| 4e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 20 20 20 27 6c 6f 63 | ...................:host....'loc |
| 4e20 | 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 61 6d 69 6c | al........................:famil |
| 4e40 | 79 20 20 27 69 70 76 34 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y..'ipv4........................ |
| 4e60 | 3a 66 69 6c 74 65 72 20 20 28 63 61 72 20 73 65 72 76 65 72 2d 70 72 6f 63 2d 66 69 6c 74 65 72 | :filter..(car.server-proc-filter |
| 4e80 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 64 69 6e 67 | )........................:coding |
| 4ea0 | 20 20 27 62 69 6e 61 72 79 29 29 29 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 | ..'binary))).....(unwind-protect |
| 4ec0 | 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 65 72 76 65 72 2d 70 72 6f 6d 69 73 65 20 | .........(let*.((server-promise. |
| 4ee0 | 28 63 64 72 20 73 65 72 76 65 72 2d 70 72 6f 63 2d 66 69 6c 74 65 72 29 29 0a 20 20 20 20 20 20 | (cdr.server-proc-filter))....... |
| 4f00 | 20 20 20 20 20 20 20 20 20 28 73 65 72 76 65 72 2d 75 72 6c 20 28 66 6f 72 6d 61 74 20 22 68 74 | .........(server-url.(format."ht |
| 4f20 | 74 70 3a 2f 2f 6c 6f 63 61 6c 68 6f 73 74 3a 25 69 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tp://localhost:%i/"............. |
| 4f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 64 72 20 28 70 72 | .......................(cadr.(pr |
| 4f60 | 6f 63 65 73 73 2d 63 6f 6e 74 61 63 74 20 73 65 72 76 65 72 2d 70 72 6f 63 29 29 29 29 0a 20 20 | ocess-contact.server-proc))))... |
| 4f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 64 69 72 65 63 74 2d 75 72 69 2d 65 6c 74 20 28 | .............(redirect-uri-elt.( |
| 4fa0 | 63 6f 6e 73 20 27 72 65 64 69 72 65 63 74 5f 75 72 69 20 73 65 72 76 65 72 2d 75 72 6c 29 29 0a | cons.'redirect_uri.server-url)). |
| 4fc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 43 72 61 66 74 20 61 20 72 65 71 75 65 73 | ................;.Craft.a.reques |
| 4fe0 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 72 79 2d 65 78 74 72 61 2d 61 6c 69 | t................(very-extra-ali |
| 5000 | 73 74 20 28 63 6f 6e 73 20 72 65 64 69 72 65 63 74 2d 75 72 69 2d 65 6c 74 20 65 78 74 72 61 2d | st.(cons.redirect-uri-elt.extra- |
| 5020 | 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 76 65 72 79 2d | alist))................;;.(very- |
| 5040 | 65 78 74 72 61 2d 61 6c 69 73 74 20 65 78 74 72 61 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 | extra-alist.extra-alist)........ |
| 5060 | 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 6d 6f 73 74 20 73 61 6d 65 20 63 6f 64 65 20 61 73 20 62 | ........;;.almost.same.code.as.b |
| 5080 | 65 67 69 6e 6e 69 6e 67 20 6f 66 20 60 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 72 65 71 75 65 73 | eginning.of.`oauth2-auto--reques |
| 50a0 | 74 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f | t'................(provider-info |
| 50c0 | 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 20 70 72 6f | .(oauth2-auto--provider-info.pro |
| 50e0 | 76 69 64 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 74 61 2d 61 6c 69 | vider))................(data-ali |
| 5100 | 73 74 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 63 72 61 66 74 2d 72 65 71 75 65 73 74 2d 61 | st.(oauth2-auto--craft-request-a |
| 5120 | 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | list............................ |
| 5140 | 20 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 20 64 61 74 61 2d 6b 65 79 73 20 76 65 72 79 2d 65 78 | .provider-info.data-keys.very-ex |
| 5160 | 74 72 61 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 74 61 | tra-alist))................(data |
| 5180 | 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 75 72 6c 69 66 79 2d 72 65 71 75 65 73 74 20 64 61 | .(oauth2-auto--urlify-request.da |
| 51a0 | 74 61 2d 61 6c 69 73 74 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 72 6c 20 | ta-alist)).................(url. |
| 51c0 | 28 63 64 72 20 28 61 73 73 6f 63 20 75 72 6c 2d 6b 65 79 20 70 72 6f 76 69 64 65 72 2d 69 6e 66 | (cdr.(assoc.url-key.provider-inf |
| 51e0 | 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6f 70 65 6e 20 61 75 74 68 6f | o)))................;.open.autho |
| 5200 | 72 69 7a 61 74 69 6f 6e 20 55 52 4c 20 69 6e 20 62 72 6f 77 73 65 72 0a 20 20 20 20 20 20 20 20 | rization.URL.in.browser......... |
| 5220 | 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 2d 61 6c 69 73 74 20 6e 69 6c 29 29 0a 20 20 20 | .......(response-alist.nil)).... |
| 5240 | 20 20 20 20 20 20 20 28 62 72 6f 77 73 65 2d 75 72 6c 20 28 63 6f 6e 63 61 74 20 75 72 6c 20 22 | .......(browse-url.(concat.url." |
| 5260 | 3f 22 20 64 61 74 61 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 71 75 69 | ?".data))............(unless.qui |
| 5280 | 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 65 72 74 20 22 4c 6f 67 20 69 6e 20 74 6f | et.............(alert."Log.in.to |
| 52a0 | 20 79 6f 75 72 20 61 63 63 6f 75 6e 74 20 66 6f 72 20 45 6d 61 63 73 20 69 6e 20 79 6f 75 72 20 | .your.account.for.Emacs.in.your. |
| 52c0 | 62 72 6f 77 73 65 72 20 77 69 6e 64 6f 77 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | browser.window"................. |
| 52e0 | 20 20 20 3a 74 69 74 6c 65 20 22 45 6d 61 63 73 20 4f 41 75 74 68 32 20 6c 6f 67 69 6e 22 0a 20 | ...:title."Emacs.OAuth2.login".. |
| 5300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 74 65 67 6f 72 79 20 27 6f 61 75 | ..................:category.'oau |
| 5320 | 74 68 32 2d 61 75 74 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 20 57 61 69 74 20 75 6e 74 69 | th2-auto))...........;.Wait.unti |
| 5340 | 6c 20 77 65 20 67 65 74 20 61 20 72 65 70 6c 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 27 63 6f 64 | l.we.get.a.reply.containing.'cod |
| 5360 | 65 20 61 6e 64 20 27 73 74 61 74 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 | e.and.'state............(while.( |
| 5380 | 6e 6f 74 20 72 65 73 70 6f 6e 73 65 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | not.response-alist)............. |
| 53a0 | 28 73 65 74 71 20 72 65 73 70 6f 6e 73 65 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 | (setq.response-alist............ |
| 53c0 | 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 68 74 74 | .......(apply.#'oauth2-auto--htt |
| 53e0 | 70 64 2d 66 69 6c 74 65 72 20 28 61 69 6f 2d 63 68 61 69 6e 20 73 65 72 76 65 72 2d 70 72 6f 6d | pd-filter.(aio-chain.server-prom |
| 5400 | 69 73 65 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 74 75 72 6e 20 74 68 65 20 | ise))))............;.return.the. |
| 5420 | 72 65 73 70 6f 6e 73 65 2c 20 77 69 74 68 20 74 68 65 20 27 72 65 64 69 72 65 63 74 5f 75 72 69 | response,.with.the.'redirect_uri |
| 5440 | 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 72 65 64 69 72 65 63 74 2d 75 72 69 2d 65 6c | ...........(cons.redirect-uri-el |
| 5460 | 74 20 72 65 73 70 6f 6e 73 65 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 3b 20 41 6c 77 61 79 | t.response-alist)).......;.Alway |
| 5480 | 73 20 6b 69 6c 6c 20 73 65 72 76 65 72 2d 70 72 6f 63 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 | s.kill.server-proc.......(delete |
| 54a0 | 2d 70 72 6f 63 65 73 73 20 73 65 72 76 65 72 2d 70 72 6f 63 29 29 29 29 0a 0a 28 61 69 6f 2d 64 | -process.server-proc))))..(aio-d |
| 54c0 | 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 62 72 6f 77 73 65 72 2d 72 65 71 75 65 73 | efun.oauth2-auto--browser-reques |
| 54e0 | 74 2d 6d 61 6e 75 61 6c 6c 79 20 28 70 72 6f 76 69 64 65 72 20 75 72 6c 2d 6b 65 79 20 64 61 74 | t-manually.(provider.url-key.dat |
| 5500 | 61 2d 6b 65 79 73 20 65 78 74 72 61 2d 61 6c 69 73 74 20 26 6f 70 74 69 6f 6e 61 6c 20 71 75 69 | a-keys.extra-alist.&optional.qui |
| 5520 | 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 62 72 6f 77 73 65 72 20 66 6f 72 | et)............"Open.browser.for |
| 5540 | 20 74 68 65 20 4f 41 75 74 68 32 20 50 52 4f 56 49 44 45 52 2e 0a 49 6e 73 74 65 61 64 20 6f 66 | .the.OAuth2.PROVIDER..Instead.of |
| 5560 | 20 6f 70 65 6e 69 6e 67 20 62 72 6f 77 73 65 72 2c 20 64 69 73 70 6c 61 79 20 74 68 65 20 61 75 | .opening.browser,.display.the.au |
| 5580 | 74 68 6f 72 69 7a 61 74 69 6f 6e 20 55 52 4c 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 75 73 65 | thorization.URL.and.wait.for.use |
| 55a0 | 72 20 74 6f 20 69 6e 70 75 74 20 74 68 65 20 63 6f 64 65 2e 0a 42 72 6f 77 73 65 72 20 55 52 4c | r.to.input.the.code..Browser.URL |
| 55c0 | 20 69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 75 72 6c 20 61 6e 64 20 70 61 72 | .is.constructed.from.url.and.par |
| 55e0 | 61 6d 65 74 65 72 73 20 67 69 76 65 6e 20 62 79 20 74 61 6b 69 6e 67 20 55 52 4c 2d 4b 45 59 20 | ameters.given.by.taking.URL-KEY. |
| 5600 | 61 6e 64 20 44 41 54 41 2d 4b 45 59 53 0a 66 72 6f 6d 20 74 68 65 20 64 61 74 61 20 6f 66 20 74 | and.DATA-KEYS.from.the.data.of.t |
| 5620 | 68 65 20 50 52 4f 56 49 44 45 52 2c 20 61 6e 64 20 61 64 64 69 6e 67 20 45 58 54 52 41 2d 41 4c | he.PROVIDER,.and.adding.EXTRA-AL |
| 5640 | 49 53 54 2e 0a 0a 49 66 20 51 55 49 45 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 75 70 70 72 | IST...If.QUIET.is.non-nil,.suppr |
| 5660 | 65 73 73 20 61 6c 65 72 74 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 | ess.alerts."............(let*.(( |
| 5680 | 72 65 64 69 72 65 63 74 2d 75 72 69 20 22 68 74 74 70 3a 2f 2f 6c 6f 63 61 6c 68 6f 73 74 3a 38 | redirect-uri."http://localhost:8 |
| 56a0 | 30 38 30 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 64 69 72 65 63 | 080")...................(redirec |
| 56c0 | 74 2d 75 72 69 2d 65 6c 74 20 28 63 6f 6e 73 20 27 72 65 64 69 72 65 63 74 5f 75 72 69 20 72 65 | t-uri-elt.(cons.'redirect_uri.re |
| 56e0 | 64 69 72 65 63 74 2d 75 72 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | direct-uri))...................( |
| 5700 | 76 65 72 79 2d 65 78 74 72 61 2d 61 6c 69 73 74 20 28 63 6f 6e 73 20 72 65 64 69 72 65 63 74 2d | very-extra-alist.(cons.redirect- |
| 5720 | 75 72 69 2d 65 6c 74 20 65 78 74 72 61 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 | uri-elt.extra-alist))........... |
| 5740 | 20 20 20 20 20 20 20 20 28 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 20 28 6f 61 75 74 68 32 2d 61 | ........(provider-info.(oauth2-a |
| 5760 | 75 74 6f 2d 2d 70 72 6f 76 69 64 65 72 2d 69 6e 66 6f 20 70 72 6f 76 69 64 65 72 29 29 0a 20 20 | uto--provider-info.provider))... |
| 5780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 74 61 2d 61 6c 69 73 74 20 28 6f 61 75 | ................(data-alist.(oau |
| 57a0 | 74 68 32 2d 61 75 74 6f 2d 2d 63 72 61 66 74 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 74 0a 20 20 | th2-auto--craft-request-alist... |
| 57c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f | .............................pro |
| 57e0 | 76 69 64 65 72 2d 69 6e 66 6f 20 64 61 74 61 2d 6b 65 79 73 20 76 65 72 79 2d 65 78 74 72 61 2d | vider-info.data-keys.very-extra- |
| 5800 | 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 74 61 20 | alist))...................(data. |
| 5820 | 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 75 72 6c 69 66 79 2d 72 65 71 75 65 73 74 20 64 61 74 | (oauth2-auto--urlify-request.dat |
| 5840 | 61 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 72 6c | a-alist))...................(url |
| 5860 | 20 28 63 64 72 20 28 61 73 73 6f 63 20 75 72 6c 2d 6b 65 79 20 70 72 6f 76 69 64 65 72 2d 69 6e | .(cdr.(assoc.url-key.provider-in |
| 5880 | 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 75 74 68 2d 75 72 | fo)))...................(auth-ur |
| 58a0 | 6c 20 28 63 6f 6e 63 61 74 20 75 72 6c 20 22 3f 22 20 64 61 74 61 29 29 29 0a 0a 20 20 20 20 20 | l.(concat.url."?".data)))....... |
| 58c0 | 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 74 65 61 64 20 6f 66 20 6f 70 65 6e 69 6e 67 20 62 72 | ........;;.Instead.of.opening.br |
| 58e0 | 6f 77 73 65 72 2c 20 73 68 6f 77 20 55 52 4c 20 61 6e 64 20 77 61 69 74 20 66 6f 72 20 63 6f 64 | owser,.show.URL.and.wait.for.cod |
| 5900 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 71 75 69 65 74 0a 20 20 20 | e..............(unless.quiet.... |
| 5920 | 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 65 72 74 20 28 66 6f 72 6d 61 74 20 22 50 6c 65 61 | ............(alert.(format."Plea |
| 5940 | 73 65 20 76 69 73 69 74 20 74 68 69 73 20 55 52 4c 20 74 6f 20 61 75 74 68 6f 72 69 7a 65 3a 5c | se.visit.this.URL.to.authorize:\ |
| 5960 | 6e 25 73 5c 6e 5c 6e 41 66 74 65 72 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 2c 20 63 6f 70 79 | n%s\n\nAfter.authorization,.copy |
| 5980 | 20 74 68 65 20 27 63 6f 64 65 27 20 70 61 72 61 6d 65 74 65 72 20 66 72 6f 6d 20 74 68 65 20 72 | .the.'code'.parameter.from.the.r |
| 59a0 | 65 64 69 72 65 63 74 20 55 52 4c 20 61 6e 64 20 70 61 73 74 65 20 69 74 20 62 65 6c 6f 77 3a 22 | edirect.URL.and.paste.it.below:" |
| 59c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 | ...............................a |
| 59e0 | 75 74 68 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | uth-url).......................: |
| 5a00 | 74 69 74 6c 65 20 22 45 6d 61 63 73 20 4f 41 75 74 68 32 20 6c 6f 67 69 6e 22 0a 20 20 20 20 20 | title."Emacs.OAuth2.login"...... |
| 5a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 74 65 67 6f 72 79 20 27 6f 61 75 74 | .................:category.'oaut |
| 5a40 | 68 32 2d 61 75 74 6f 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 61 69 74 20 | h2-auto))...............;;.Wait. |
| 5a60 | 66 6f 72 20 75 73 65 72 20 74 6f 20 69 6e 70 75 74 20 74 68 65 20 63 6f 64 65 0a 20 20 20 20 20 | for.user.to.input.the.code...... |
| 5a80 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 64 65 20 28 72 65 61 64 2d 73 74 72 69 6e 67 | ........(let.((code.(read-string |
| 5aa0 | 20 28 66 6f 72 6d 61 74 20 22 50 6c 65 61 73 65 20 76 69 73 69 74 20 74 68 69 73 20 55 52 4c 20 | .(format."Please.visit.this.URL. |
| 5ac0 | 74 6f 20 61 75 74 68 6f 72 69 7a 65 3a 5c 6e 25 73 5c 6e 5c 6e 41 66 74 65 72 20 61 75 74 68 6f | to.authorize:\n%s\n\nAfter.autho |
| 5ae0 | 72 69 7a 61 74 69 6f 6e 2c 20 63 6f 70 79 20 74 68 65 20 63 6f 64 65 20 66 72 6f 6d 20 74 68 65 | rization,.copy.the.code.from.the |
| 5b00 | 20 72 65 64 69 72 65 63 74 20 55 52 4c 20 61 6e 64 20 70 61 73 74 65 20 69 74 20 68 65 72 65 2e | .redirect.URL.and.paste.it.here. |
| 5b20 | 5c 6e 45 6e 74 65 72 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 63 6f 64 65 3a 20 22 20 61 75 | \nEnter.authorization.code:.".au |
| 5b40 | 74 68 2d 75 72 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 74 | th-url))))................;;.ret |
| 5b60 | 75 72 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2c 20 77 69 74 68 20 74 68 65 20 27 72 65 64 69 | urn.the.response,.with.the.'redi |
| 5b80 | 72 65 63 74 5f 75 72 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 72 65 | rect_uri................(cons.re |
| 5ba0 | 64 69 72 65 63 74 2d 75 72 69 2d 65 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | direct-uri-elt.................. |
| 5bc0 | 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 27 63 6f 64 65 20 63 6f 64 65 29 0a 20 20 20 20 | ....(list.(cons.'code.code)..... |
| 5be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 72 65 | .......................(cons.'re |
| 5c00 | 64 69 72 65 63 74 5f 75 72 69 20 72 65 64 69 72 65 63 74 2d 75 72 69 29 0a 20 20 20 20 20 20 20 | direct_uri.redirect-uri)........ |
| 5c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 73 74 61 74 65 | ....................(cons.'state |
| 5c40 | 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 73 74 61 74 65 20 64 61 74 61 2d 61 6c 69 73 74 29 29 | .(cdr.(assoc.'state.data-alist)) |
| 5c60 | 29 29 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 75 | ))))))..(defconst.oauth2-auto--u |
| 5c80 | 72 6c 2d 75 6e 72 65 73 65 72 76 65 64 0a 20 20 22 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f | rl-unreserved..."abcdefghijklmno |
| 5ca0 | 70 71 72 73 74 75 76 77 78 79 7a 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 | pqrstuvwxyzABCDEFGHIJKLMNOPQRSTU |
| 5cc0 | 56 57 58 59 30 31 32 33 34 35 36 37 38 39 2d 5f 22 0a 20 20 22 4c 69 73 74 20 6f 66 20 76 61 6c | VWXY0123456789-_"..."List.of.val |
| 5ce0 | 69 64 20 6e 6f 6e 2d 70 61 64 64 69 6e 67 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 42 61 73 | id.non-padding.characters.in.Bas |
| 5d00 | 65 36 34 20 55 52 4c 20 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 2e 22 29 0a 0a 28 64 65 66 75 | e64.URL.encoded.string.")..(defu |
| 5d20 | 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 72 61 6e 64 6f 6d 2d 73 74 72 69 6e 67 20 28 6c 65 | n.oauth2-auto--random-string.(le |
| 5d40 | 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 72 61 6e 64 6f 6d 20 73 74 72 69 6e 67 20 6f 66 20 | n)..."Return.a.random.string.of. |
| 5d60 | 6c 65 6e 67 74 68 20 4c 45 4e 2e 0a 55 73 65 73 20 6f 6e 6c 79 20 63 68 61 72 61 63 74 65 72 73 | length.LEN..Uses.only.characters |
| 5d80 | 20 76 61 6c 69 64 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 60 62 61 73 65 36 34 75 | .valid.in.the.output.of.`base64u |
| 5da0 | 72 6c 2d 65 6e 63 6f 64 65 2d 73 74 72 69 6e 67 27 2e 22 0a 20 20 3b 20 69 6e 73 70 69 72 65 64 | rl-encode-string'."...;.inspired |
| 5dc0 | 20 62 79 20 68 74 74 70 3a 2f 2f 78 61 68 6c 65 65 2e 69 6e 66 6f 2f 65 6d 61 63 73 2f 65 6d 61 | .by.http://xahlee.info/emacs/ema |
| 5de0 | 63 73 2f 65 6c 69 73 70 5f 69 6e 73 65 72 74 5f 72 61 6e 64 6f 6d 5f 6e 75 6d 62 65 72 5f 73 74 | cs/elisp_insert_random_number_st |
| 5e00 | 72 69 6e 67 2e 68 74 6d 6c 0a 20 20 28 6c 65 74 20 28 28 72 61 6e 64 2d 6c 65 6e 20 28 6c 65 6e | ring.html...(let.((rand-len.(len |
| 5e20 | 67 74 68 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 75 72 6c 2d 75 6e 72 65 73 65 72 76 65 64 29 | gth.oauth2-auto--url-unreserved) |
| 5e40 | 29 29 0a 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 28 64 6f | ))....(with-temp-buffer......(do |
| 5e60 | 74 69 6d 65 73 20 28 5f 6c 20 6c 65 6e 29 0a 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 65 | times.(_l.len)........(insert.(e |
| 5e80 | 6c 74 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 75 72 6c 2d 75 6e 72 65 73 65 72 76 65 64 20 28 | lt.oauth2-auto--url-unreserved.( |
| 5ea0 | 72 61 6e 64 6f 6d 20 72 61 6e 64 2d 6c 65 6e 29 29 29 29 0a 20 20 20 20 20 28 62 75 66 66 65 72 | random.rand-len))))......(buffer |
| 5ec0 | 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d | -string))))..(defun.oauth2-auto- |
| 5ee0 | 2d 62 61 73 65 36 34 75 72 6c 2d 65 6e 63 6f 64 65 2d 73 74 72 69 6e 67 20 28 73 74 72 69 6e 67 | -base64url-encode-string.(string |
| 5f00 | 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 2d 70 61 64 29 0a 20 20 22 50 61 63 6b 61 67 65 2d 6c 6f | .&optional.no-pad)..."Package-lo |
| 5f20 | 63 61 6c 20 76 65 72 73 69 6f 6e 20 6f 66 20 e2 80 98 62 61 73 65 36 34 75 72 6c 2d 65 6e 63 6f | cal.version.of....base64url-enco |
| 5f40 | 64 65 2d 73 74 72 69 6e 67 e2 80 99 2e 0a 0a 42 61 73 65 36 34 75 72 6c 2d 65 6e 63 6f 64 65 20 | de-string......Base64url-encode. |
| 5f60 | 53 54 52 49 4e 47 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 2e 0a 0a 4f | STRING.and.return.the.result...O |
| 5f80 | 70 74 69 6f 6e 61 6c 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 4e 4f 2d 50 41 44 20 6d | ptional.second.argument.NO-PAD.m |
| 5fa0 | 65 61 6e 73 20 64 6f 20 6e 6f 74 20 61 64 64 20 70 61 64 64 69 6e 67 20 63 68 61 72 20 3d 2e 0a | eans.do.not.add.padding.char.=.. |
| 5fc0 | 0a 54 68 69 73 20 70 72 6f 64 75 63 65 73 20 74 68 65 20 55 52 4c 20 76 61 72 69 61 6e 74 20 6f | .This.produces.the.URL.variant.o |
| 5fe0 | 66 20 62 61 73 65 20 36 34 20 65 6e 63 6f 64 69 6e 67 20 64 65 66 69 6e 65 64 20 69 6e 20 52 46 | f.base.64.encoding.defined.in.RF |
| 6000 | 43 20 34 36 34 38 2e 0a 0a 45 78 69 73 74 73 20 62 65 63 61 75 73 65 20 74 68 69 73 20 70 61 63 | C.4648...Exists.because.this.pac |
| 6020 | 6b 61 67 65 20 69 73 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 45 6d 61 63 73 20 32 36 | kage.is.compatible.with.Emacs.26 |
| 6040 | 2e 31 2c 20 62 75 74 0a e2 80 98 62 61 73 65 36 34 75 72 6c 2d 65 6e 63 6f 64 65 2d 73 74 72 69 | .1,.but....base64url-encode-stri |
| 6060 | 6e 67 e2 80 99 20 77 61 73 20 6f 6e 6c 79 20 61 64 64 65 64 20 69 6e 20 45 6d 61 63 73 20 32 37 | ng....was.only.added.in.Emacs.27 |
| 6080 | 2e 31 2e 22 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 62 61 73 65 36 34 75 72 6c 2d 65 | .1."...(if.(fboundp.'base64url-e |
| 60a0 | 6e 63 6f 64 65 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 3b 3b 20 55 73 65 20 66 75 6e 63 61 | ncode-string).......;;.Use.funca |
| 60c0 | 6c 6c 20 74 6f 20 73 69 6c 65 6e 63 65 20 66 6c 79 63 68 65 63 6b 2e 0a 20 20 20 20 20 20 28 66 | ll.to.silence.flycheck........(f |
| 60e0 | 75 6e 63 61 6c 6c 20 27 62 61 73 65 36 34 75 72 6c 2d 65 6e 63 6f 64 65 2d 73 74 72 69 6e 67 20 | uncall.'base64url-encode-string. |
| 6100 | 73 74 72 69 6e 67 20 6e 6f 2d 70 61 64 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 65 6e 63 20 28 | string.no-pad).....(let*.((enc.( |
| 6120 | 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 2d 73 74 72 69 6e 67 20 73 74 72 69 6e 67 20 74 29 29 0a | base64-encode-string.string.t)). |
| 6140 | 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d | ...........(enc.(replace-regexp- |
| 6160 | 69 6e 2d 73 74 72 69 6e 67 20 22 2b 22 20 22 2d 22 20 65 6e 63 29 29 0a 20 20 20 20 20 20 20 20 | in-string."+"."-".enc))......... |
| 6180 | 20 20 20 28 65 6e 63 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e | ...(enc.(replace-regexp-in-strin |
| 61a0 | 67 20 22 2f 22 20 22 5f 22 20 65 6e 63 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 6e 6f 2d 70 61 | g."/"."_".enc))).......(if.no-pa |
| 61c0 | 64 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 | d...........(replace-regexp-in-s |
| 61e0 | 74 72 69 6e 67 20 22 3d 22 20 22 22 20 65 6e 63 29 0a 20 20 20 20 20 20 20 20 65 6e 63 29 29 29 | tring."="."".enc).........enc))) |
| 6200 | 29 0a 0a 3b 3b 20 43 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 | )..;;.Control.flow.to.authentica |
| 6220 | 74 65 20 63 6c 69 65 6e 74 20 74 6f 20 74 68 65 20 4f 41 75 74 68 32 20 70 72 6f 76 69 64 65 72 | te.client.to.the.OAuth2.provider |
| 6240 | 73 0a 0a 0a 28 61 69 6f 2d 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 72 65 66 72 65 | s...(aio-defun.oauth2-auto-refre |
| 6260 | 73 68 2d 6f 72 2d 61 75 74 68 65 6e 74 69 63 61 74 65 20 28 75 73 65 72 6e 61 6d 65 20 70 72 6f | sh-or-authenticate.(username.pro |
| 6280 | 76 69 64 65 72 20 70 6c 69 73 74 29 0a 20 20 22 54 72 79 20 74 6f 20 72 65 66 72 65 73 68 2c 20 | vider.plist)..."Try.to.refresh,. |
| 62a0 | 61 6e 64 20 69 66 20 72 65 66 72 65 73 68 69 6e 67 20 66 61 69 6c 73 2c 20 61 75 74 68 65 6e 74 | and.if.refreshing.fails,.authent |
| 62c0 | 69 63 61 74 65 2e 0a 46 6f 72 20 55 53 45 52 4e 41 4d 45 2c 20 50 52 4f 56 49 44 45 52 2c 20 61 | icate..For.USERNAME,.PROVIDER,.a |
| 62e0 | 6e 64 20 50 4c 49 53 54 20 73 65 65 20 e2 80 98 6f 61 75 74 68 32 2d 61 75 74 6f 2d 72 65 66 72 | nd.PLIST.see....oauth2-auto-refr |
| 6300 | 65 73 68 e2 80 99 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6d 69 73 65 20 28 6f 61 75 74 | esh...."...(let*.((promise.(oaut |
| 6320 | 68 32 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 | h2-auto-refresh.username.provide |
| 6340 | 72 20 70 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 20 28 61 69 6f 2d | r.plist))..........(result.(aio- |
| 6360 | 61 77 61 69 74 20 28 61 69 6f 2d 63 61 74 63 68 20 70 72 6f 6d 69 73 65 29 29 29 29 0a 20 20 20 | await.(aio-catch.promise)))).... |
| 6380 | 20 28 69 66 20 28 65 71 20 28 63 61 72 20 72 65 73 75 6c 74 29 20 3a 73 75 63 63 65 73 73 29 0a | .(if.(eq.(car.result).:success). |
| 63a0 | 20 20 20 20 20 20 20 20 3b 20 49 66 20 73 75 63 63 65 65 64 65 64 2c 20 72 65 74 75 72 6e 20 74 | ........;.If.succeeded,.return.t |
| 63c0 | 68 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 28 63 64 72 20 72 65 73 75 6c 74 29 0a 20 | he.result.........(cdr.result).. |
| 63e0 | 20 20 20 20 20 3b 20 49 66 20 66 61 69 6c 65 64 2c 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 69 | .....;.If.failed,.authenticate.i |
| 6400 | 6e 73 74 65 61 64 0a 20 20 20 20 20 20 28 61 69 6f 2d 61 77 61 69 74 20 28 6f 61 75 74 68 32 2d | nstead.......(aio-await.(oauth2- |
| 6420 | 61 75 74 6f 2d 61 75 74 68 65 6e 74 69 63 61 74 65 20 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 | auto-authenticate.username.provi |
| 6440 | 64 65 72 29 29 29 29 29 0a 0a 28 61 69 6f 2d 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f | der)))))..(aio-defun.oauth2-auto |
| 6460 | 2d 61 75 74 68 65 6e 74 69 63 61 74 65 20 28 75 73 65 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 | -authenticate.(username.provider |
| 6480 | 29 0a 20 20 22 41 75 74 68 65 6e 74 69 63 61 74 65 73 20 55 53 45 52 4e 41 4d 45 20 75 73 69 6e | )..."Authenticates.USERNAME.usin |
| 64a0 | 67 20 50 52 4f 56 49 44 45 52 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 70 6c 69 73 74 2e 22 | g.PROVIDER.and.returns.a.plist." |
| 64c0 | 0a 20 20 28 6c 65 74 2a 20 28 28 73 74 61 74 65 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 72 | ...(let*.((state.(oauth2-auto--r |
| 64e0 | 61 6e 64 6f 6d 2d 73 74 72 69 6e 67 20 38 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 64 65 2d | andom-string.8))..........(code- |
| 6500 | 76 65 72 69 66 69 65 72 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 72 61 6e 64 6f 6d 2d 73 74 | verifier.(oauth2-auto--random-st |
| 6520 | 72 69 6e 67 20 34 33 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 69 6e 61 72 79 2d 63 6f 64 65 2d | ring.43))..........(binary-code- |
| 6540 | 63 68 61 6c 6c 65 6e 67 65 20 28 73 65 63 75 72 65 2d 68 61 73 68 20 27 73 68 61 32 35 36 20 63 | challenge.(secure-hash.'sha256.c |
| 6560 | 6f 64 65 2d 76 65 72 69 66 69 65 72 20 6e 69 6c 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 | ode-verifier.nil.nil.t))........ |
| 6580 | 20 20 28 72 65 73 70 6f 6e 73 65 20 28 61 69 6f 2d 61 77 61 69 74 0a 20 20 20 20 20 20 20 20 20 | ..(response.(aio-await.......... |
| 65a0 | 20 20 20 20 20 20 20 20 20 20 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 62 72 6f 77 73 65 72 | ...........(oauth2-auto--browser |
| 65c0 | 2d 72 65 71 75 65 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 | -request......................pr |
| 65e0 | 6f 76 69 64 65 72 20 27 61 75 74 68 6f 72 69 7a 65 5f 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 | ovider.'authorize_url........... |
| 6600 | 20 20 20 20 20 20 20 20 20 20 20 27 28 63 6c 69 65 6e 74 5f 69 64 20 74 65 6e 61 6e 74 20 73 63 | ...........'(client_id.tenant.sc |
| 6620 | 6f 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 6c 6f 67 | ope)......................`((log |
| 6640 | 69 6e 5f 68 69 6e 74 20 2e 20 2c 75 73 65 72 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 | in_hint...,username)............ |
| 6660 | 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 5f 74 79 70 65 20 2e 20 22 63 6f | ............(response_type..."co |
| 6680 | 64 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 | de")........................(res |
| 66a0 | 70 6f 6e 73 65 5f 6d 6f 64 65 20 2e 20 22 71 75 65 72 79 22 29 20 3b 3b 20 6d 69 63 72 6f 73 6f | ponse_mode..."query").;;.microso |
| 66c0 | 66 74 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ft-only........................( |
| 66e0 | 61 63 63 65 73 73 5f 74 79 70 65 20 2e 20 22 6f 66 66 6c 69 6e 65 22 29 20 3b 3b 20 67 6f 6f 67 | access_type..."offline").;;.goog |
| 6700 | 6c 65 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | le-only........................( |
| 6720 | 73 74 61 74 65 20 2e 20 2c 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | state...,state)................. |
| 6740 | 20 20 20 20 20 20 20 28 63 6f 64 65 5f 63 68 61 6c 6c 65 6e 67 65 20 2e 20 2c 28 6f 61 75 74 68 | .......(code_challenge...,(oauth |
| 6760 | 32 2d 61 75 74 6f 2d 2d 62 61 73 65 36 34 75 72 6c 2d 65 6e 63 6f 64 65 2d 73 74 72 69 6e 67 20 | 2-auto--base64url-encode-string. |
| 6780 | 62 69 6e 61 72 79 2d 63 6f 64 65 2d 63 68 61 6c 6c 65 6e 67 65 20 74 29 29 0a 20 20 20 20 20 20 | binary-code-challenge.t))....... |
| 67a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 64 65 5f 63 68 61 6c 6c 65 6e 67 65 | .................(code_challenge |
| 67c0 | 5f 6d 65 74 68 6f 64 20 2e 20 22 53 32 35 36 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 | _method..."S256")))))..........( |
| 67e0 | 72 65 73 70 6f 6e 73 65 2d 73 74 61 74 65 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 73 74 61 74 | response-state.(cdr.(assoc.'stat |
| 6800 | 65 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 64 69 72 65 63 74 | e.response)))..........(redirect |
| 6820 | 2d 75 72 69 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 72 65 64 69 72 65 63 74 5f 75 72 69 20 72 | -uri.(cdr.(assoc.'redirect_uri.r |
| 6840 | 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 64 65 20 28 63 64 72 20 28 | esponse)))..........(code.(cdr.( |
| 6860 | 61 73 73 6f 63 20 27 63 6f 64 65 20 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 0a 20 20 20 20 3b 20 | assoc.'code.response))))......;. |
| 6880 | 56 65 72 69 66 79 20 74 68 61 74 20 74 68 65 20 72 65 74 75 72 6e 20 73 74 61 74 65 20 6d 61 74 | Verify.that.the.return.state.mat |
| 68a0 | 63 68 65 73 2e 0a 20 20 20 20 3b 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 6d 69 63 72 6f 73 6f | ches......;.https://docs.microso |
| 68c0 | 66 74 2e 63 6f 6d 2f 65 6e 2d 75 73 2f 61 7a 75 72 65 2f 61 63 74 69 76 65 2d 64 69 72 65 63 74 | ft.com/en-us/azure/active-direct |
| 68e0 | 6f 72 79 2f 64 65 76 65 6c 6f 70 2f 76 32 2d 6f 61 75 74 68 32 2d 61 75 74 68 2d 63 6f 64 65 2d | ory/develop/v2-oauth2-auth-code- |
| 6900 | 66 6c 6f 77 23 73 75 63 63 65 73 73 66 75 6c 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 28 75 6e | flow#successful-response.....(un |
| 6920 | 6c 65 73 73 20 28 65 71 75 61 6c 20 73 74 61 74 65 20 72 65 73 70 6f 6e 73 65 2d 73 74 61 74 65 | less.(equal.state.response-state |
| 6940 | 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 22 53 74 61 74 65 20 73 65 6e | ).......(error........"State.sen |
| 6960 | 74 20 61 6e 64 20 72 65 74 75 72 6e 65 64 20 64 6f 20 6e 6f 74 20 6d 61 74 63 68 20 2d 20 73 65 | t.and.returned.do.not.match.-.se |
| 6980 | 63 75 72 69 74 79 20 72 69 73 6b 3a 20 73 74 61 74 65 3d 25 73 20 72 65 73 70 6f 6e 73 65 5f 73 | curity.risk:.state=%s.response_s |
| 69a0 | 74 61 74 65 3d 25 73 22 0a 20 20 20 20 20 20 20 73 74 61 74 65 20 72 65 73 70 6f 6e 73 65 2d 73 | tate=%s"........state.response-s |
| 69c0 | 74 61 74 65 29 29 0a 0a 20 20 20 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 6d 61 6b 65 2d 70 | tate))......(oauth2-auto--make-p |
| 69e0 | 6c 69 73 74 0a 20 20 20 20 20 28 61 69 6f 2d 61 77 61 69 74 0a 20 20 20 20 20 20 28 6f 61 75 74 | list......(aio-await.......(oaut |
| 6a00 | 68 32 2d 61 75 74 6f 2d 2d 72 65 71 75 65 73 74 0a 20 20 20 20 20 20 20 70 72 6f 76 69 64 65 72 | h2-auto--request........provider |
| 6a20 | 20 27 74 6f 6b 65 6e 5f 75 72 6c 0a 20 20 20 20 20 20 20 27 28 63 6c 69 65 6e 74 5f 69 64 20 74 | .'token_url........'(client_id.t |
| 6a40 | 65 6e 61 6e 74 20 63 6c 69 65 6e 74 5f 73 65 63 72 65 74 29 0a 20 20 20 20 20 20 20 60 28 28 72 | enant.client_secret)........`((r |
| 6a60 | 65 64 69 72 65 63 74 5f 75 72 69 20 2e 20 2c 72 65 64 69 72 65 63 74 2d 75 72 69 29 0a 20 20 20 | edirect_uri...,redirect-uri).... |
| 6a80 | 20 20 20 20 20 20 28 63 6f 64 65 20 2e 20 2c 63 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 67 | ......(code...,code)..........(g |
| 6aa0 | 72 61 6e 74 5f 74 79 70 65 20 2e 20 22 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 5f 63 6f 64 65 22 | rant_type..."authorization_code" |
| 6ac0 | 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 64 65 5f 76 65 72 69 66 69 65 72 20 2e 20 2c 63 6f 64 | )..........(code_verifier...,cod |
| 6ae0 | 65 2d 76 65 72 69 66 69 65 72 29 29 29 29 0a 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 61 69 6f | e-verifier))))......nil)))..(aio |
| 6b00 | 2d 64 65 66 75 6e 20 6f 61 75 74 68 32 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 20 28 5f 75 73 65 | -defun.oauth2-auto-refresh.(_use |
| 6b20 | 72 6e 61 6d 65 20 70 72 6f 76 69 64 65 72 20 70 6c 69 73 74 29 0a 20 20 22 52 65 66 72 65 73 68 | rname.provider.plist)..."Refresh |
| 6b40 | 20 61 63 63 65 73 73 20 6f 66 20 55 53 45 52 4e 41 4d 45 20 75 73 69 6e 67 20 50 52 4f 56 49 44 | .access.of.USERNAME.using.PROVID |
| 6b60 | 45 52 20 75 73 69 6e 67 20 74 68 65 20 72 65 66 72 65 73 68 2d 74 6f 6b 65 6e 20 69 6e 20 50 4c | ER.using.the.refresh-token.in.PL |
| 6b80 | 49 53 54 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 72 65 66 72 65 73 68 65 64 20 70 6c 69 73 74 2e | IST..Return.the.refreshed.plist. |
| 6ba0 | 22 0a 20 20 28 6c 65 74 20 28 28 72 65 66 72 65 73 68 2d 74 6f 6b 65 6e 20 28 70 6c 69 73 74 2d | "...(let.((refresh-token.(plist- |
| 6bc0 | 67 65 74 20 70 6c 69 73 74 20 3a 72 65 66 72 65 73 68 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 | get.plist.:refresh-token)))..... |
| 6be0 | 28 75 6e 6c 65 73 73 20 72 65 66 72 65 73 68 2d 74 6f 6b 65 6e 0a 20 20 20 20 20 20 28 65 72 72 | (unless.refresh-token.......(err |
| 6c00 | 6f 72 20 22 52 65 66 72 65 73 68 20 74 6f 6b 65 6e 20 69 73 20 6e 69 6c 20 69 6e 20 70 6c 69 73 | or."Refresh.token.is.nil.in.plis |
| 6c20 | 74 3d 25 73 22 20 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 20 70 6c 69 73 74 29 29 29 0a 0a 20 20 | t=%s".(pp-to-string.plist))).... |
| 6c40 | 20 20 3b 20 52 65 66 72 65 73 68 20 61 6e 20 6f 61 75 74 68 32 2d 74 6f 6b 65 6e 0a 20 20 20 20 | ..;.Refresh.an.oauth2-token..... |
| 6c60 | 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 6d 61 6b 65 2d 70 6c 69 73 74 0a 20 20 20 20 20 28 61 | (oauth2-auto--make-plist......(a |
| 6c80 | 69 6f 2d 61 77 61 69 74 20 28 6f 61 75 74 68 32 2d 61 75 74 6f 2d 2d 72 65 71 75 65 73 74 0a 20 | io-await.(oauth2-auto--request.. |
| 6ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 76 69 64 65 72 20 27 74 6f 6b 65 6e 5f | ................provider.'token_ |
| 6cc0 | 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 63 6c 69 65 6e 74 5f 69 64 | url..................'(client_id |
| 6ce0 | 20 74 65 6e 61 6e 74 20 63 6c 69 65 6e 74 5f 73 65 63 72 65 74 29 0a 20 20 20 20 20 20 20 20 20 | .tenant.client_secret).......... |
| 6d00 | 20 20 20 20 20 20 20 20 60 28 28 72 65 66 72 65 73 68 5f 74 6f 6b 65 6e 20 2e 20 2c 72 65 66 72 | ........`((refresh_token...,refr |
| 6d20 | 65 73 68 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | esh-token)....................(g |
| 6d40 | 72 61 6e 74 5f 74 79 70 65 20 2e 20 22 72 65 66 72 65 73 68 5f 74 6f 6b 65 6e 22 29 29 29 29 0a | rant_type..."refresh_token")))). |
| 6d60 | 20 20 20 20 20 70 6c 69 73 74 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6f 61 75 74 68 32 2d | .....plist)))..(provide.'oauth2- |
| 6d80 | 61 75 74 6f 29 0a 0a 3b 3b 3b 20 6f 61 75 74 68 32 2d 61 75 74 6f 2e 65 6c 20 65 6e 64 73 20 68 | auto)..;;;.oauth2-auto.el.ends.h |
| 6da0 | 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ere............................. |
| 6dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 71a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 71c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 71e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 72a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 72c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 72e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 73a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 73c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 73e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 75a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 75c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 75e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 76a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 76c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 76e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |