@@ -57,3 +57,102 @@ export const contributorsHandler = http.get('/api/contributors', () => {
5757 } ,
5858 ] )
5959} )
60+
61+ export const pdsUsersHandler = http . get ( '/api/atproto/pds-users' , ( ) => {
62+ return HttpResponse . json ( [
63+ {
64+ did : 'did:plc:mock0001' ,
65+ handle : 'patak.dog' ,
66+ displayName : 'Patak Dog' ,
67+ avatar :
68+ 'https://cdn.bsky.app/img/avatar/plain/did:plc:zjfptjaegvgc7r2axkkyyzqn/bafkreihrcqhp575f6dph4uztbeyxfrmfnbv7x2gvovrgu4idgdsdw7wety' ,
69+ } ,
70+ {
71+ did : 'did:plc:mock0002' ,
72+ handle : 'patakllama.mockpmx.social' ,
73+ displayName : 'Patak Llama' ,
74+ avatar : 'https://api.dicebear.com/9.x/initials/svg?seed=llama' ,
75+ } ,
76+ {
77+ did : 'did:plc:mock0003' ,
78+ handle : 'patak.horse' ,
79+ displayName : 'Patak Horse' ,
80+ avatar :
81+ 'https://cdn.bsky.app/img/avatar/plain/did:plc:vqh7id7sddkrfkhgt7tstlpd/bafkreifodkgqszgpt2qnoyljnbafokr6eujqwztj2kxo473adv5b57hjse' ,
82+ } ,
83+ {
84+ did : 'did:plc:mock0004' ,
85+ handle : 'patakcatapiller.mockpmx.social' ,
86+ } ,
87+ {
88+ did : 'did:plc:mock0005' ,
89+ handle : 'patakgoat.mockpmx.social' ,
90+ displayName : 'Patak Goat' ,
91+ } ,
92+ ] )
93+ } )
94+
95+ export const i18nStatusHandler = http . get ( '/lunaria/status.json' , ( ) => {
96+ return HttpResponse . json ( {
97+ generatedAt : '2026-01-22T10:07:07.000Z' ,
98+ sourceLocale : {
99+ lang : 'en' ,
100+ label : 'English' ,
101+ totalKeys : 500 ,
102+ } ,
103+ locales : [
104+ {
105+ lang : 'en-GB' ,
106+ label : 'English (UK)' ,
107+ dir : 'ltr' ,
108+ totalKeys : 500 ,
109+ completedKeys : 423 ,
110+ percentComplete : 84 ,
111+ missingKeys : [
112+ 'settings.background_themes.label' ,
113+ 'settings.enable_graph_pulse_loop' ,
114+ 'settings.enable_graph_pulse_loop_description' ,
115+ 'settings.data_source.algolia_description' ,
116+ 'settings.data_source.npm_description' ,
117+ 'i18n.contribute_hint' ,
118+ 'i18n.copy_keys' ,
119+ ] ,
120+ githubEditUrl : 'https://github.com/npmx-dev/npmx.dev/edit/main/i18n/locales/en-GB.json' ,
121+ githubHistoryUrl :
122+ 'https://github.com/npmx-dev/npmx.dev/commits/main/i18n/locales/en-GB.json' ,
123+ } ,
124+ {
125+ lang : 'fr-FR' ,
126+ label : 'Français' ,
127+ dir : 'ltr' ,
128+ totalKeys : 500 ,
129+ completedKeys : 423 ,
130+ percentComplete : 84 ,
131+ missingKeys : [
132+ 'settings.background_themes.label' ,
133+ 'settings.enable_graph_pulse_loop' ,
134+ 'settings.enable_graph_pulse_loop_description' ,
135+ 'settings.data_source.algolia_description' ,
136+ 'settings.data_source.npm_description' ,
137+ 'i18n.contribute_hint' ,
138+ 'i18n.copy_keys' ,
139+ ] ,
140+ githubEditUrl : 'https://github.com/npmx-dev/npmx.dev/edit/main/i18n/locales/fr-FR.json' ,
141+ githubHistoryUrl :
142+ 'https://github.com/npmx-dev/npmx.dev/commits/main/i18n/locales/fr-FR.json' ,
143+ } ,
144+ {
145+ lang : 'de-DE' ,
146+ label : 'Deutsch' ,
147+ dir : 'ltr' ,
148+ totalKeys : 500 ,
149+ completedKeys : 500 ,
150+ percentComplete : 100 ,
151+ missingKeys : [ ] ,
152+ githubEditUrl : 'https://github.com/npmx-dev/npmx.dev/edit/main/i18n/locales/de-DE.json' ,
153+ githubHistoryUrl :
154+ 'https://github.com/npmx-dev/npmx.dev/commits/main/i18n/locales/de-DE.json' ,
155+ } ,
156+ ] ,
157+ } )
158+ } )
0 commit comments