@pedrohnas/opencode-telegram 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-41-55-194Z.yml +36 -0
  2. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-42-17-115Z.yml +36 -0
  3. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-43-15-988Z.yml +26 -0
  4. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-43-26-107Z.yml +26 -0
  5. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-45-03-139Z.yml +29 -0
  6. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-45-21-579Z.yml +29 -0
  7. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-45-48-051Z.yml +30 -0
  8. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-46-27-632Z.yml +33 -0
  9. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-46-46-519Z.yml +33 -0
  10. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-47-28-491Z.yml +349 -0
  11. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-47-34-834Z.yml +349 -0
  12. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-47-54-066Z.yml +168 -0
  13. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-48-19-667Z.yml +219 -0
  14. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-49-32-311Z.yml +221 -0
  15. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-49-57-109Z.yml +230 -0
  16. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-50-24-052Z.yml +235 -0
  17. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-50-41-148Z.yml +248 -0
  18. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-51-10-916Z.yml +234 -0
  19. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-51-28-271Z.yml +234 -0
  20. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-52-32-324Z.yml +234 -0
  21. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-52-47-801Z.yml +196 -0
  22. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-56-07-361Z.yml +203 -0
  23. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-56-35-534Z.yml +49 -0
  24. package/.claude/skills/playwright-cli/data/page-2026-02-09T01-57-04-658Z.yml +52 -0
  25. package/docs/AUDIT.md +193 -0
  26. package/docs/PROGRESS.md +188 -0
  27. package/docs/plans/phase-5.md +410 -0
  28. package/docs/plans/phase-6.5.md +426 -0
  29. package/docs/plans/phase-6.md +349 -0
  30. package/e2e/helpers.ts +34 -0
  31. package/e2e/phase-5.test.ts +295 -0
  32. package/e2e/phase-6.5.test.ts +239 -0
  33. package/e2e/phase-6.test.ts +302 -0
  34. package/package.json +6 -3
  35. package/src/api-server.test.ts +309 -0
  36. package/src/api-server.ts +201 -0
  37. package/src/bot.test.ts +354 -0
  38. package/src/bot.ts +200 -2
  39. package/src/config.test.ts +16 -0
  40. package/src/config.ts +4 -0
  41. package/src/event-bus.test.ts +337 -1
  42. package/src/event-bus.ts +83 -3
  43. package/src/handlers/agents.test.ts +122 -0
  44. package/src/handlers/agents.ts +93 -0
  45. package/src/handlers/media.test.ts +264 -0
  46. package/src/handlers/media.ts +168 -0
  47. package/src/handlers/models.test.ts +319 -0
  48. package/src/handlers/models.ts +191 -0
  49. package/src/index.ts +15 -0
  50. package/src/send/draft-stream.test.ts +76 -0
  51. package/src/send/draft-stream.ts +13 -1
  52. package/src/session-manager.test.ts +46 -0
  53. package/src/session-manager.ts +10 -1
@@ -0,0 +1,234 @@
1
+ - generic [ref=e1]:
2
+ - generic [ref=e3]:
3
+ - region "Site notifications" [ref=e4]:
4
+ - generic [ref=e8]:
5
+ - generic [ref=e9]: ⚠️
6
+ - alert [ref=e11]:
7
+ - text: "Security Update: Classic tokens have been revoked. Granular tokens are now limited to 90 days and require 2FA by default. Update your CI/CD workflows to avoid disruption."
8
+ - link "Learn more about npm authentication changes" [ref=e12] [cursor=pointer]:
9
+ - /url: https://gh.io/all-npm-classic-tokens-revoked
10
+ - text: Learn more
11
+ - text: .
12
+ - button "Close notification" [ref=e13] [cursor=pointer]: ×
13
+ - generic [ref=e14]:
14
+ - banner [ref=e15]:
15
+ - generic [ref=e16]:
16
+ - generic [ref=e17]:
17
+ - text: "skip to:"
18
+ - link "skip to content" [ref=e18] [cursor=pointer]:
19
+ - /url: "#main"
20
+ - text: content
21
+ - link "skip to package search" [ref=e19] [cursor=pointer]:
22
+ - /url: "#search"
23
+ - text: package search
24
+ - generic [ref=e20]:
25
+ - generic [ref=e21]: ❤
26
+ - navigation "Product Navigation" [ref=e22]:
27
+ - list [ref=e23]:
28
+ - listitem [ref=e24]:
29
+ - link "Pro" [ref=e25] [cursor=pointer]:
30
+ - /url: /products/pro
31
+ - listitem [ref=e26]:
32
+ - link "Teams" [ref=e27] [cursor=pointer]:
33
+ - /url: /products/teams
34
+ - listitem [ref=e28]:
35
+ - link "Pricing" [ref=e29] [cursor=pointer]:
36
+ - /url: /products
37
+ - listitem [ref=e30]:
38
+ - link "Documentation" [ref=e31] [cursor=pointer]:
39
+ - /url: https://docs.npmjs.com
40
+ - generic [ref=e33]:
41
+ - generic [ref=e34]: npm
42
+ - link "Npm" [ref=e36] [cursor=pointer]:
43
+ - /url: /
44
+ - img [ref=e37]
45
+ - generic [ref=e40]:
46
+ - generic [ref=e42]:
47
+ - img [ref=e44]
48
+ - combobox "Search packages" [ref=e50]
49
+ - button "Search" [ref=e52]
50
+ - navigation [ref=e54]:
51
+ - button "Profile menu" [ref=e55]:
52
+ - generic [ref=e56]: Menu
53
+ - img [ref=e57]
54
+ - img [ref=e59]
55
+ - main [ref=e62]:
56
+ - generic [ref=e63]:
57
+ - complementary [ref=e64]:
58
+ - heading "Sidebar" [level=2] [ref=e65]
59
+ - generic [ref=e66]:
60
+ - navigation "Settings navigation" [ref=e67]:
61
+ - list [ref=e68]:
62
+ - listitem [ref=e69]:
63
+ - link "Profile" [ref=e70] [cursor=pointer]:
64
+ - /url: /~pedrohnas
65
+ - img [ref=e71]
66
+ - text: Profile
67
+ - listitem [ref=e73]:
68
+ - link "Packages" [ref=e74] [cursor=pointer]:
69
+ - /url: /settings/pedrohnas/packages
70
+ - img [ref=e75]
71
+ - text: Packages
72
+ - listitem [ref=e77]:
73
+ - link "Account" [ref=e78] [cursor=pointer]:
74
+ - /url: /settings/pedrohnas/profile
75
+ - img [ref=e79]
76
+ - text: Account
77
+ - listitem [ref=e81]:
78
+ - link "Billing Info" [ref=e82] [cursor=pointer]:
79
+ - /url: /settings/pedrohnas/billing
80
+ - img [ref=e83]
81
+ - text: Billing Info
82
+ - listitem [ref=e85]:
83
+ - link "Access Tokens" [ref=e86] [cursor=pointer]:
84
+ - /url: /settings/pedrohnas/tokens
85
+ - img [ref=e87]
86
+ - text: Access Tokens
87
+ - generic [ref=e89]:
88
+ - heading "Organizations" [level=3] [ref=e90]
89
+ - link "Create New Organization" [ref=e91] [cursor=pointer]:
90
+ - /url: /org/create
91
+ - text: +
92
+ - generic [ref=e92]: Create New Organization
93
+ - paragraph [ref=e93]: None
94
+ - generic [ref=e169]:
95
+ - generic [ref=e170]:
96
+ - generic [ref=e171]:
97
+ - heading "New Granular Access Token" [level=1] [ref=e172]
98
+ - link "View token documentation" [ref=e173] [cursor=pointer]:
99
+ - /url: https://docs.npmjs.com/creating-and-viewing-access-tokens#creating-granular-access-tokens-on-the-website
100
+ - paragraph [ref=e176]:
101
+ - link "Granular access tokens" [ref=e177] [cursor=pointer]:
102
+ - /url: https://docs.npmjs.com/about-access-tokens#about-granular-access-tokens
103
+ - text: provide the most control by allowing you to configure fine-grained, tightly scoped permissions for your packages and organizations.
104
+ - generic [ref=e178]:
105
+ - generic [ref=e179]:
106
+ - heading "General" [level=2] [ref=e180]
107
+ - generic [ref=e182]:
108
+ - generic [ref=e183]: Token name *
109
+ - caption [ref=e184]: Provide a unique name.
110
+ - textbox "Token name" [ref=e186]: opencode-telegram-publish
111
+ - generic [ref=e187]:
112
+ - generic [ref=e189]: Description (optional)
113
+ - caption [ref=e190]: What is this token for?
114
+ - textbox "Description (optional)" [ref=e192]: Publish @pedrohnas/opencode-telegram from dev machine
115
+ - generic [ref=e193]:
116
+ - generic [ref=e195]:
117
+ - checkbox "Bypass two-factor authentication (2FA) for this token" [checked] [ref=e196]
118
+ - generic [ref=e197]: Bypass two-factor authentication (2FA)
119
+ - paragraph [ref=e256]: There are security risks with this option. For automation or CI/CD uses, please use Trusted Publishing instead.
120
+ - group "Allowed IP ranges (optional) Must be valid CIDR notation." [ref=e198]:
121
+ - generic [ref=e199]:
122
+ - generic [ref=e200]: Allowed IP ranges (optional)
123
+ - caption [ref=e201]:
124
+ - text: Must be valid
125
+ - link "CIDR notation" [ref=e202] [cursor=pointer]:
126
+ - /url: https://docs.npmjs.com/creating-and-viewing-access-tokens/#cidr-restricted-token-errors
127
+ - text: .
128
+ - generic [ref=e204]:
129
+ - text: Input Range 1
130
+ - textbox "Input Range 1" [ref=e205]
131
+ - button "Add IP Range" [ref=e206]
132
+ - generic [ref=e207]:
133
+ - heading "Packages and scopes" [level=2] [ref=e208]
134
+ - generic [ref=e210]:
135
+ - paragraph [ref=e211]: Permissions
136
+ - group [ref=e212]:
137
+ - generic "Packages and scopes Permissions" [ref=e213] [cursor=pointer]:
138
+ - text: Read and write
139
+ - img [ref=e215]
140
+ - group "Select packages" [ref=e267]:
141
+ - generic [ref=e269]: Select packages
142
+ - generic [ref=e270]:
143
+ - generic [ref=e271]:
144
+ - radio "All packages" [checked] [active] [ref=e273]
145
+ - generic [ref=e274]:
146
+ - text: All packages
147
+ - paragraph [ref=e275]: Applies to current and future packages.
148
+ - generic [ref=e276]:
149
+ - radio "Only select packages and scopes" [ref=e278]
150
+ - generic [ref=e279]:
151
+ - text: Only select packages and scopes
152
+ - paragraph [ref=e280]: Select at least one. Max 50.
153
+ - paragraph
154
+ - generic [ref=e218]:
155
+ - heading "Organizations" [level=2] [ref=e219]
156
+ - generic [ref=e221]:
157
+ - paragraph [ref=e222]: Permissions
158
+ - group [ref=e223]:
159
+ - generic "Organizations Permissions" [ref=e224] [cursor=pointer]:
160
+ - text: No access
161
+ - img [ref=e226]
162
+ - paragraph
163
+ - generic [ref=e229]:
164
+ - heading "Expiration" [level=2] [ref=e230]
165
+ - generic [ref=e232]:
166
+ - generic [ref=e233]: Expiration Date
167
+ - group [ref=e236]:
168
+ - generic "Expiration Date" [ref=e237] [cursor=pointer]:
169
+ - text: 90 days
170
+ - img [ref=e239]
171
+ - generic [ref=e242]:
172
+ - heading "Summary" [level=2] [ref=e243]
173
+ - generic [ref=e245]:
174
+ - paragraph [ref=e246]: "This token will:"
175
+ - list [ref=e247]:
176
+ - listitem [ref=e248]: Provide read and write access to all packages
177
+ - listitem [ref=e249]: Provide no access to organizations
178
+ - listitem [ref=e250]: Expires on Saturday, May 9, 2026
179
+ - generic [ref=e252]:
180
+ - button "Generate token" [ref=e253]
181
+ - button "Cancel" [ref=e254]
182
+ - contentinfo [ref=e123]:
183
+ - heading "Footer" [level=2] [ref=e124]
184
+ - generic [ref=e125]:
185
+ - generic [ref=e126]:
186
+ - link "Visit npm GitHub page" [ref=e128] [cursor=pointer]:
187
+ - /url: https://github.com/npm
188
+ - img [ref=e129]
189
+ - link "GitHub" [ref=e133] [cursor=pointer]:
190
+ - /url: https://github.com
191
+ - img [ref=e134]
192
+ - generic [ref=e136]:
193
+ - heading "Support" [level=3] [ref=e137]
194
+ - list "Support" [ref=e138]:
195
+ - listitem [ref=e139]:
196
+ - link "Help" [ref=e140] [cursor=pointer]:
197
+ - /url: https://docs.npmjs.com
198
+ - listitem [ref=e141]:
199
+ - link "Advisories" [ref=e142] [cursor=pointer]:
200
+ - /url: https://github.com/advisories
201
+ - listitem [ref=e143]:
202
+ - link "Status" [ref=e144] [cursor=pointer]:
203
+ - /url: http://status.npmjs.org/
204
+ - listitem [ref=e145]:
205
+ - link "Contact npm" [ref=e146] [cursor=pointer]:
206
+ - /url: /support
207
+ - generic [ref=e147]:
208
+ - heading "Company" [level=3] [ref=e148]
209
+ - list "Company" [ref=e149]:
210
+ - listitem [ref=e150]:
211
+ - link "About" [ref=e151] [cursor=pointer]:
212
+ - /url: /about
213
+ - listitem [ref=e152]:
214
+ - link "Blog" [ref=e153] [cursor=pointer]:
215
+ - /url: https://github.blog/tag/npm/
216
+ - listitem [ref=e154]:
217
+ - link "Press" [ref=e155] [cursor=pointer]:
218
+ - /url: /press
219
+ - generic [ref=e156]:
220
+ - heading "Terms & Policies" [level=3] [ref=e157]
221
+ - list "Terms & Policies" [ref=e158]:
222
+ - listitem [ref=e159]:
223
+ - link "Policies" [ref=e160] [cursor=pointer]:
224
+ - /url: /policies/
225
+ - listitem [ref=e161]:
226
+ - link "Terms of Use" [ref=e162] [cursor=pointer]:
227
+ - /url: /policies/terms
228
+ - listitem [ref=e163]:
229
+ - link "Code of Conduct" [ref=e164] [cursor=pointer]:
230
+ - /url: /policies/conduct
231
+ - listitem [ref=e165]:
232
+ - link "Privacy" [ref=e166] [cursor=pointer]:
233
+ - /url: /policies/privacy
234
+ - generic [ref=e168]: New Granular Access Token
@@ -0,0 +1,196 @@
1
+ - generic [active] [ref=e1]:
2
+ - generic [ref=e3]:
3
+ - region "Site notifications" [ref=e4]:
4
+ - generic [ref=e8]:
5
+ - generic [ref=e9]: ⚠️
6
+ - alert [ref=e11]:
7
+ - text: "Security Update: Classic tokens have been revoked. Granular tokens are now limited to 90 days and require 2FA by default. Update your CI/CD workflows to avoid disruption."
8
+ - link "Learn more about npm authentication changes" [ref=e12] [cursor=pointer]:
9
+ - /url: https://gh.io/all-npm-classic-tokens-revoked
10
+ - text: Learn more
11
+ - text: .
12
+ - button "Close notification" [ref=e13] [cursor=pointer]: ×
13
+ - generic [ref=e14]:
14
+ - banner [ref=e15]:
15
+ - generic [ref=e16]:
16
+ - generic [ref=e17]:
17
+ - text: "skip to:"
18
+ - link "skip to content" [ref=e18] [cursor=pointer]:
19
+ - /url: "#main"
20
+ - text: content
21
+ - link "skip to package search" [ref=e19] [cursor=pointer]:
22
+ - /url: "#search"
23
+ - text: package search
24
+ - generic [ref=e20]:
25
+ - generic [ref=e21]: ❤
26
+ - navigation "Product Navigation" [ref=e22]:
27
+ - list [ref=e23]:
28
+ - listitem [ref=e24]:
29
+ - link "Pro" [ref=e25] [cursor=pointer]:
30
+ - /url: /products/pro
31
+ - listitem [ref=e26]:
32
+ - link "Teams" [ref=e27] [cursor=pointer]:
33
+ - /url: /products/teams
34
+ - listitem [ref=e28]:
35
+ - link "Pricing" [ref=e29] [cursor=pointer]:
36
+ - /url: /products
37
+ - listitem [ref=e30]:
38
+ - link "Documentation" [ref=e31] [cursor=pointer]:
39
+ - /url: https://docs.npmjs.com
40
+ - generic [ref=e33]:
41
+ - generic [ref=e34]: npm
42
+ - link "Npm" [ref=e36] [cursor=pointer]:
43
+ - /url: /
44
+ - img [ref=e37]
45
+ - generic [ref=e40]:
46
+ - generic [ref=e42]:
47
+ - img [ref=e44]
48
+ - combobox "Search packages" [ref=e50]
49
+ - button "Search" [ref=e52]
50
+ - navigation [ref=e54]:
51
+ - button "Profile menu" [ref=e55]:
52
+ - generic [ref=e56]: Menu
53
+ - img [ref=e57]
54
+ - img [ref=e59]
55
+ - main [ref=e62]:
56
+ - generic [ref=e63]:
57
+ - complementary [ref=e64]:
58
+ - heading "Sidebar" [level=2] [ref=e65]
59
+ - generic [ref=e66]:
60
+ - navigation "Settings navigation" [ref=e67]:
61
+ - list [ref=e68]:
62
+ - listitem [ref=e69]:
63
+ - link "Profile" [ref=e70] [cursor=pointer]:
64
+ - /url: /~pedrohnas
65
+ - img [ref=e71]
66
+ - text: Profile
67
+ - listitem [ref=e73]:
68
+ - link "Packages" [ref=e74] [cursor=pointer]:
69
+ - /url: /settings/pedrohnas/packages
70
+ - img [ref=e75]
71
+ - text: Packages
72
+ - listitem [ref=e77]:
73
+ - link "Account" [ref=e78] [cursor=pointer]:
74
+ - /url: /settings/pedrohnas/profile
75
+ - img [ref=e79]
76
+ - text: Account
77
+ - listitem [ref=e81]:
78
+ - link "Billing Info" [ref=e82] [cursor=pointer]:
79
+ - /url: /settings/pedrohnas/billing
80
+ - img [ref=e83]
81
+ - text: Billing Info
82
+ - listitem [ref=e85]:
83
+ - link "Access Tokens" [ref=e86] [cursor=pointer]:
84
+ - /url: /settings/pedrohnas/tokens
85
+ - img [ref=e87]
86
+ - text: Access Tokens
87
+ - generic [ref=e89]:
88
+ - heading "Organizations" [level=3] [ref=e90]
89
+ - link "Create New Organization" [ref=e91] [cursor=pointer]:
90
+ - /url: /org/create
91
+ - text: +
92
+ - generic [ref=e92]: Create New Organization
93
+ - paragraph [ref=e93]: None
94
+ - generic [ref=e297]:
95
+ - generic [ref=e298]:
96
+ - generic [ref=e299]:
97
+ - heading "Access Tokens" [level=1] [ref=e300]
98
+ - link "Generate New Token" [ref=e302] [cursor=pointer]:
99
+ - /url: /settings/pedrohnas/tokens/granular-access-tokens/new
100
+ - button "Delete Selected Tokens" [ref=e304]
101
+ - generic [ref=e305]:
102
+ - alert [ref=e306]:
103
+ - paragraph [ref=e307]: Token successfully generated
104
+ - paragraph [ref=e308]: Make sure to copy your token. It will never be displayed again.
105
+ - paragraph [ref=e309]: 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
106
+ - generic [ref=e310]:
107
+ - textbox "Newly generated token" [ref=e311]: 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
108
+ - button "Copy" [ref=e312]:
109
+ - img [ref=e313]
110
+ - table [ref=e317]:
111
+ - rowgroup [ref=e318]:
112
+ - row "Select all Name Bypass 2FA Created Last used Expires Delete" [ref=e319]:
113
+ - columnheader "Select all" [ref=e320]:
114
+ - checkbox "Select all" [ref=e321]
115
+ - columnheader "Name" [ref=e322]
116
+ - columnheader "Bypass 2FA" [ref=e323]
117
+ - columnheader "Created" [ref=e324]
118
+ - columnheader "Last used" [ref=e325]
119
+ - columnheader "Expires" [ref=e326]
120
+ - columnheader "Delete" [ref=e327]:
121
+ - generic [ref=e328]: Delete
122
+ - rowgroup [ref=e329]:
123
+ - row "label for npm_lnKY......xEQP opencode-telegram-publish npm_lnKY......xEQP Feb 8, 2026 May 9, 2026 Delete token ending in xEQP" [ref=e330]:
124
+ - cell "label for npm_lnKY......xEQP" [ref=e331]:
125
+ - checkbox "label for npm_lnKY......xEQP" [ref=e332]
126
+ - cell "opencode-telegram-publish npm_lnKY......xEQP" [ref=e333]:
127
+ - generic [ref=e334]:
128
+ - link "opencode-telegram-publish" [ref=e335] [cursor=pointer]:
129
+ - /url: /settings/pedrohnas/tokens/granular-access-tokens/bf8d7249-7e9a-4049-aa51-39107aab4de3
130
+ - code [ref=e337]: npm_lnKY......xEQP
131
+ - cell [ref=e338]:
132
+ - img [ref=e340]
133
+ - cell "Feb 8, 2026" [ref=e342]:
134
+ - time [ref=e343]: Feb 8, 2026
135
+ - cell [ref=e344]
136
+ - cell "May 9, 2026" [ref=e345]:
137
+ - time [ref=e346]: May 9, 2026
138
+ - cell "Delete token ending in xEQP" [ref=e347]:
139
+ - button "Delete token ending in xEQP" [ref=e349] [cursor=pointer]: ×
140
+ - generic [ref=e352]: Rows 1 to 1 of 1
141
+ - paragraph [ref=e353]:
142
+ - link "📋 Read the Documentation" [ref=e354] [cursor=pointer]:
143
+ - /url: https://docs.npmjs.com/about-authentication-tokens
144
+ - contentinfo [ref=e123]:
145
+ - heading "Footer" [level=2] [ref=e124]
146
+ - generic [ref=e125]:
147
+ - generic [ref=e126]:
148
+ - link "Visit npm GitHub page" [ref=e128] [cursor=pointer]:
149
+ - /url: https://github.com/npm
150
+ - img [ref=e129]
151
+ - link "GitHub" [ref=e133] [cursor=pointer]:
152
+ - /url: https://github.com
153
+ - img [ref=e134]
154
+ - generic [ref=e136]:
155
+ - heading "Support" [level=3] [ref=e137]
156
+ - list "Support" [ref=e138]:
157
+ - listitem [ref=e139]:
158
+ - link "Help" [ref=e140] [cursor=pointer]:
159
+ - /url: https://docs.npmjs.com
160
+ - listitem [ref=e141]:
161
+ - link "Advisories" [ref=e142] [cursor=pointer]:
162
+ - /url: https://github.com/advisories
163
+ - listitem [ref=e143]:
164
+ - link "Status" [ref=e144] [cursor=pointer]:
165
+ - /url: http://status.npmjs.org/
166
+ - listitem [ref=e145]:
167
+ - link "Contact npm" [ref=e146] [cursor=pointer]:
168
+ - /url: /support
169
+ - generic [ref=e147]:
170
+ - heading "Company" [level=3] [ref=e148]
171
+ - list "Company" [ref=e149]:
172
+ - listitem [ref=e150]:
173
+ - link "About" [ref=e151] [cursor=pointer]:
174
+ - /url: /about
175
+ - listitem [ref=e152]:
176
+ - link "Blog" [ref=e153] [cursor=pointer]:
177
+ - /url: https://github.blog/tag/npm/
178
+ - listitem [ref=e154]:
179
+ - link "Press" [ref=e155] [cursor=pointer]:
180
+ - /url: /press
181
+ - generic [ref=e156]:
182
+ - heading "Terms & Policies" [level=3] [ref=e157]
183
+ - list "Terms & Policies" [ref=e158]:
184
+ - listitem [ref=e159]:
185
+ - link "Policies" [ref=e160] [cursor=pointer]:
186
+ - /url: /policies/
187
+ - listitem [ref=e161]:
188
+ - link "Terms of Use" [ref=e162] [cursor=pointer]:
189
+ - /url: /policies/terms
190
+ - listitem [ref=e163]:
191
+ - link "Code of Conduct" [ref=e164] [cursor=pointer]:
192
+ - /url: /policies/conduct
193
+ - listitem [ref=e165]:
194
+ - link "Privacy" [ref=e166] [cursor=pointer]:
195
+ - /url: /policies/privacy
196
+ - generic [ref=e168]: New Granular Access Token
@@ -0,0 +1,203 @@
1
+ - generic [ref=e3]:
2
+ - region "Site notifications" [ref=e4]:
3
+ - generic [ref=e8]:
4
+ - generic [ref=e9]: ⚠️
5
+ - alert [ref=e11]:
6
+ - text: "Security Update: Classic tokens have been revoked. Granular tokens are now limited to 90 days and require 2FA by default. Update your CI/CD workflows to avoid disruption."
7
+ - link "Learn more about npm authentication changes" [ref=e12] [cursor=pointer]:
8
+ - /url: https://gh.io/all-npm-classic-tokens-revoked
9
+ - text: Learn more
10
+ - text: .
11
+ - button "Close notification" [ref=e13] [cursor=pointer]: ×
12
+ - generic [ref=e14]:
13
+ - banner [ref=e15]:
14
+ - generic [ref=e16]:
15
+ - generic [ref=e17]:
16
+ - text: "skip to:"
17
+ - link "skip to content" [ref=e18] [cursor=pointer]:
18
+ - /url: "#main"
19
+ - text: content
20
+ - link "skip to package search" [ref=e19] [cursor=pointer]:
21
+ - /url: "#search"
22
+ - text: package search
23
+ - generic [ref=e20]:
24
+ - generic [ref=e21]: ❤
25
+ - navigation "Product Navigation" [ref=e22]:
26
+ - list [ref=e23]:
27
+ - listitem [ref=e24]:
28
+ - link "Pro" [ref=e25] [cursor=pointer]:
29
+ - /url: /products/pro
30
+ - listitem [ref=e26]:
31
+ - link "Teams" [ref=e27] [cursor=pointer]:
32
+ - /url: /products/teams
33
+ - listitem [ref=e28]:
34
+ - link "Pricing" [ref=e29] [cursor=pointer]:
35
+ - /url: /products
36
+ - listitem [ref=e30]:
37
+ - link "Documentation" [ref=e31] [cursor=pointer]:
38
+ - /url: https://docs.npmjs.com
39
+ - generic [ref=e33]:
40
+ - generic [ref=e34]: npm
41
+ - link "Npm" [ref=e36] [cursor=pointer]:
42
+ - /url: /
43
+ - img [ref=e37]
44
+ - generic [ref=e40]:
45
+ - generic [ref=e42]:
46
+ - img [ref=e44]
47
+ - combobox "Search packages" [ref=e50]
48
+ - button "Search" [ref=e52]
49
+ - navigation [ref=e54]:
50
+ - button "Profile menu" [ref=e55]:
51
+ - generic [ref=e56]: Menu
52
+ - img [ref=e57]
53
+ - img [ref=e59]
54
+ - main [ref=e62]:
55
+ - generic [ref=e63]:
56
+ - complementary [ref=e64]:
57
+ - heading "Sidebar" [level=2] [ref=e65]
58
+ - generic [ref=e66]:
59
+ - navigation "Settings navigation" [ref=e67]:
60
+ - list [ref=e68]:
61
+ - listitem [ref=e69]:
62
+ - link "Profile" [ref=e70] [cursor=pointer]:
63
+ - /url: /~pedrohnas
64
+ - img [ref=e71]
65
+ - text: Profile
66
+ - listitem [ref=e73]:
67
+ - link "Packages" [ref=e74] [cursor=pointer]:
68
+ - /url: /settings/pedrohnas/packages
69
+ - img [ref=e75]
70
+ - text: Packages
71
+ - listitem [ref=e77]:
72
+ - link "Account" [ref=e78] [cursor=pointer]:
73
+ - /url: /settings/pedrohnas/profile
74
+ - img [ref=e79]
75
+ - text: Account
76
+ - listitem [ref=e81]:
77
+ - link "Billing Info" [ref=e82] [cursor=pointer]:
78
+ - /url: /settings/pedrohnas/billing
79
+ - img [ref=e83]
80
+ - text: Billing Info
81
+ - listitem [ref=e85]:
82
+ - link "Access Tokens" [ref=e86] [cursor=pointer]:
83
+ - /url: /settings/pedrohnas/tokens
84
+ - img [ref=e87]
85
+ - text: Access Tokens
86
+ - generic [ref=e89]:
87
+ - heading "Organizations" [level=3] [ref=e90]
88
+ - link "Create New Organization" [ref=e91] [cursor=pointer]:
89
+ - /url: /org/create
90
+ - text: +
91
+ - generic [ref=e92]: Create New Organization
92
+ - paragraph [ref=e93]: None
93
+ - generic [ref=e96]:
94
+ - generic [ref=e97]:
95
+ - heading "Manage Two-Factor Authentication" [level=1] [ref=e98]
96
+ - paragraph [ref=e99]: Enable an extra layer of security and customize the context where two-factor authentication will be required.
97
+ - generic [ref=e100]:
98
+ - heading "Manage Security Keys" [level=2] [ref=e101]
99
+ - generic [ref=e103]:
100
+ - table "List of registered security keys" [ref=e105]:
101
+ - rowgroup [ref=e106]:
102
+ - row "Security Key Created Remove" [ref=e107]:
103
+ - columnheader "Security Key" [ref=e108]:
104
+ - generic [ref=e109]: Security Key
105
+ - columnheader "Created" [ref=e110]:
106
+ - generic [ref=e111]: Created
107
+ - columnheader "Remove" [ref=e112]:
108
+ - generic [ref=e113]: Remove
109
+ - rowgroup [ref=e114]:
110
+ - row "pedro2 a day ago Delete security key pedro2" [ref=e115]:
111
+ - cell "pedro2" [ref=e116]:
112
+ - generic [ref=e117]: pedro2
113
+ - cell "a day ago" [ref=e118]:
114
+ - time [ref=e119]: a day ago
115
+ - cell "Delete security key pedro2" [ref=e120]:
116
+ - button "Delete security key pedro2" [ref=e122] [cursor=pointer]: ×
117
+ - row "OpenCode-Virtual a day ago Delete security key OpenCode-Virtual" [ref=e123]:
118
+ - cell "OpenCode-Virtual" [ref=e124]:
119
+ - generic [ref=e125]: OpenCode-Virtual
120
+ - cell "a day ago" [ref=e126]:
121
+ - time [ref=e127]: a day ago
122
+ - cell "Delete security key OpenCode-Virtual" [ref=e128]:
123
+ - button "Delete security key OpenCode-Virtual" [ref=e130] [cursor=pointer]: ×
124
+ - row "Asus 5 months ago Delete security key Asus" [ref=e131]:
125
+ - cell "Asus" [ref=e132]:
126
+ - generic [ref=e133]: Asus
127
+ - cell "5 months ago" [ref=e134]:
128
+ - time [ref=e135]: 5 months ago
129
+ - cell "Delete security key Asus" [ref=e136]:
130
+ - button "Delete security key Asus" [ref=e138] [cursor=pointer]: ×
131
+ - link "Add Security Key" [ref=e140] [cursor=pointer]:
132
+ - /url: manageTfa?action=register-key
133
+ - generic [ref=e141]:
134
+ - heading "Recovery Codes" [level=2] [ref=e142]
135
+ - generic [ref=e144]:
136
+ - generic [ref=e145]: Use recovery codes to access your account in the event you lose access to your 2FA devices.
137
+ - link "Manage Recovery Codes" [ref=e147] [cursor=pointer]:
138
+ - /url: /settings/pedrohnas/recovery-codes/
139
+ - generic [ref=e148]:
140
+ - heading "Additional Options" [level=2] [ref=e149]
141
+ - generic [ref=e151]:
142
+ - generic [ref=e152]:
143
+ - checkbox "Require two-factor authentication for write actions" [checked] [ref=e153]
144
+ - generic [ref=e154]: Require two-factor authentication for write actions
145
+ - generic [ref=e155]:
146
+ - button "Update Preferences" [disabled]
147
+ - generic [ref=e156]:
148
+ - heading "Disable Two-Factor Authentication" [level=2] [ref=e157]
149
+ - generic [ref=e159]:
150
+ - generic [ref=e160]: We strongly recommend using two-factor authentication to secure your account. If you need to disable 2FA, we recommend re-enabling it as soon as possible.
151
+ - button "Disable 2FA" [ref=e162]
152
+ - contentinfo [ref=e163]:
153
+ - heading "Footer" [level=2] [ref=e164]
154
+ - generic [ref=e165]:
155
+ - generic [ref=e166]:
156
+ - link "Visit npm GitHub page" [ref=e168] [cursor=pointer]:
157
+ - /url: https://github.com/npm
158
+ - img [ref=e169]
159
+ - link "GitHub" [ref=e173] [cursor=pointer]:
160
+ - /url: https://github.com
161
+ - img [ref=e174]
162
+ - generic [ref=e176]:
163
+ - heading "Support" [level=3] [ref=e177]
164
+ - list "Support" [ref=e178]:
165
+ - listitem [ref=e179]:
166
+ - link "Help" [ref=e180] [cursor=pointer]:
167
+ - /url: https://docs.npmjs.com
168
+ - listitem [ref=e181]:
169
+ - link "Advisories" [ref=e182] [cursor=pointer]:
170
+ - /url: https://github.com/advisories
171
+ - listitem [ref=e183]:
172
+ - link "Status" [ref=e184] [cursor=pointer]:
173
+ - /url: http://status.npmjs.org/
174
+ - listitem [ref=e185]:
175
+ - link "Contact npm" [ref=e186] [cursor=pointer]:
176
+ - /url: /support
177
+ - generic [ref=e187]:
178
+ - heading "Company" [level=3] [ref=e188]
179
+ - list "Company" [ref=e189]:
180
+ - listitem [ref=e190]:
181
+ - link "About" [ref=e191] [cursor=pointer]:
182
+ - /url: /about
183
+ - listitem [ref=e192]:
184
+ - link "Blog" [ref=e193] [cursor=pointer]:
185
+ - /url: https://github.blog/tag/npm/
186
+ - listitem [ref=e194]:
187
+ - link "Press" [ref=e195] [cursor=pointer]:
188
+ - /url: /press
189
+ - generic [ref=e196]:
190
+ - heading "Terms & Policies" [level=3] [ref=e197]
191
+ - list "Terms & Policies" [ref=e198]:
192
+ - listitem [ref=e199]:
193
+ - link "Policies" [ref=e200] [cursor=pointer]:
194
+ - /url: /policies/
195
+ - listitem [ref=e201]:
196
+ - link "Terms of Use" [ref=e202] [cursor=pointer]:
197
+ - /url: /policies/terms
198
+ - listitem [ref=e203]:
199
+ - link "Code of Conduct" [ref=e204] [cursor=pointer]:
200
+ - /url: /policies/conduct
201
+ - listitem [ref=e205]:
202
+ - link "Privacy" [ref=e206] [cursor=pointer]:
203
+ - /url: /policies/privacy