@pageloop/external
v0.6.1
Published
`ExternalIntegrationAdapter` implementations for the [PageLoop](https://github.com/rw3iss/pageloop) server — pull (or accept pushes of) content from third-party note/doc sources into a project. One subpath per provider; none pulls a heavyweight SDK (they
Readme
@pageloop/external
ExternalIntegrationAdapter implementations for the
PageLoop server — pull (or accept pushes
of) content from third-party note/doc sources into a project. One subpath per
provider; none pulls a heavyweight SDK (they talk HTTP / parse files).
Install
pnpm add @pageloop/externalExports
| Subpath | Provider | Auth mode |
|---|---|---|
| . | re-exports every provider factory below | — |
| /notion | createNotionAdapter(config) — Notion | oauth-pull |
| /evernote | createEvernoteAdapter(config) — Evernote | oauth-pull (OAuth 1.0a) |
| /obsidian | createObsidianAdapter() — Obsidian | plugin-push |
Each factory returns an ExternalIntegrationAdapter you register with the
Application's integration registry.
Notion is the only provider with a working content-fetch path today; Evernote and Obsidian are Phase 2 skeletons (auth/fetch methods throw
not yet implemented). The adapter shape and registration wiring are stable.
. — all providers
import { createNotionAdapter, createObsidianAdapter } from '@pageloop/external';/notion — OAuth 2.0 pull
import { createNotionAdapter } from '@pageloop/external/notion';
const notion = createNotionAdapter({
clientId: process.env.PAGELOOP_NOTION_CLIENT_ID!,
clientSecret: process.env.PAGELOOP_NOTION_CLIENT_SECRET!,
// redirectUri defaults to the Application's baseUrl + the OAuth callback path
});/evernote — OAuth 1.0a pull
import { createEvernoteAdapter } from '@pageloop/external/evernote';
const evernote = createEvernoteAdapter({
consumerKey: process.env.PAGELOOP_EVERNOTE_CONSUMER_KEY!,
consumerSecret: process.env.PAGELOOP_EVERNOTE_CONSUMER_SECRET!,
env: 'sandbox', // 'production' once Evernote promotes the key
});/obsidian — plugin push
No server config — the first-party Obsidian Sync plugin POSTs note changes with a user-minted Personal Access Token:
import { createObsidianAdapter } from '@pageloop/external/obsidian';
const obsidian = createObsidianAdapter();