this repo has no description
32
fork

Configure Feed

Select the types of activity you want to include in your feed.

Tighten example configs and adapter exports

alice 8e94abb3 f47e720c

+22 -6
+5 -4
src/adapters/adapter-builder.mjs
··· 31 31 }; 32 32 33 33 const createExampleConfig = ({ mode }) => { 34 + const { primaryHandle, secondaryHandle, ...configBase } = exampleBase; 34 35 const base = { 35 - ...exampleBase, 36 + ...configBase, 36 37 artifactsDir: `data/browser-smoke/${name}-${mode}`, 37 38 }; 38 39 ··· 41 42 ...base, 42 43 editProfile: true, 43 44 account: { 44 - handle: exampleBase.primaryHandle, 45 + handle: primaryHandle, 45 46 password: 'replace-me', 46 47 }, 47 48 }; ··· 50 51 return { 51 52 ...base, 52 53 primary: { 53 - handle: exampleBase.primaryHandle, 54 + handle: primaryHandle, 54 55 password: 'replace-me', 55 56 }, 56 57 secondary: { 57 - handle: exampleBase.secondaryHandle, 58 + handle: secondaryHandle, 58 59 password: 'replace-me-too', 59 60 }, 60 61 };
+2
src/browser/lib/dual-actions/profile.mjs
··· 45 45 pdsHost: account.pdsHost || config.pdsHost, 46 46 loginIdentifier, 47 47 password: account.password, 48 + notes: summary.notes, 49 + noteTarget: account.handle, 48 50 }); 49 51 }; 50 52
+11
src/browser/lib/runtime-utils.mjs
··· 114 114 pdsHost, 115 115 loginIdentifier, 116 116 password, 117 + notes, 118 + noteTarget, 117 119 }) => { 120 + let loginPath = 'legacy-service-picker'; 118 121 const activeScope = () => page.locator('[role="dialog"]').last(); 119 122 120 123 const clickNamedControl = async (name) => { ··· 143 146 const serviceButton = page.getByTestId('selectServiceButton').first(); 144 147 const currentService = await buttonText(serviceButton).catch(() => ''); 145 148 if (!(new RegExp(pdsHost.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'i')).test(currentService)) { 149 + loginPath = 'inline-provider-switcher'; 146 150 await serviceButton.click({ noWaitAfter: true, force: true }); 147 151 await page.waitForTimeout(500); 148 152 await clickNamedControl('Custom'); ··· 150 154 await page.getByPlaceholder('my-server.com').fill(pdsHost); 151 155 await page.getByRole('button', { name: 'Done' }).click({ noWaitAfter: true }); 152 156 await page.waitForTimeout(500); 157 + } else { 158 + loginPath = 'inline-provider-already-selected'; 153 159 } 154 160 } else { 161 + loginPath = 'legacy-service-picker'; 155 162 await clickNamedControl('Bluesky Social'); 156 163 await page.waitForTimeout(500); 157 164 await clickNamedControl('Custom'); ··· 170 177 await page.getByPlaceholder('Password').fill(password); 171 178 await page.getByTestId('loginNextButton').click({ noWaitAfter: true }); 172 179 await page.waitForTimeout(3000); 180 + if (Array.isArray(notes)) { 181 + notes.push(`login path for ${noteTarget || pdsHost}: ${loginPath}`); 182 + } 183 + return { loginPath }; 173 184 }; 174 185 175 186 export const pollJsonUntil = async ({
+2
src/browser/lib/single-actions/auth.mjs
··· 15 15 pdsHost: config.pdsHost, 16 16 loginIdentifier, 17 17 password: config.password, 18 + notes: summary.notes, 19 + noteTarget: config.handle, 18 20 }); 19 21 }; 20 22
+1 -2
src/browser/run-dual.mjs
··· 1 1 import fs from 'node:fs/promises'; 2 2 import path from 'node:path'; 3 3 import { fileURLToPath } from 'node:url'; 4 - import { setupDualBrowser, createDualStepHelpers } from './lib/dual-browser.mjs'; 5 - import { finalizeDualSummary } from './lib/dual-browser.mjs'; 4 + import { setupDualBrowser, createDualStepHelpers, finalizeDualSummary } from './lib/dual-browser.mjs'; 6 5 import { createDualApiHelpers } from './lib/dual-api.mjs'; 7 6 import { createListHelpers } from './lib/lists.mjs'; 8 7 import { createSettingsHelpers } from './lib/settings.mjs';
+1
src/index.mjs
··· 1 1 export * from './config.mjs'; 2 2 export * from './adapters/bring-your-own.mjs'; 3 3 export * from './adapters/perlsky.mjs'; 4 + export * from './adapters/tranquil-pds.mjs'; 4 5 export * from './adapters/registry.mjs'; 5 6 export * from './adapters/loader.mjs'; 6 7 export * from './lab/pdslab-targets.mjs';