@anymux/connect 0.1.0 → 0.2.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.
- package/dist/GitBrowser-BFyS9qJb.js +3 -0
- package/dist/{GitBrowser-BLgTNQyd.js → GitBrowser-C0L48q3x.js} +5 -5
- package/dist/GitBrowser-C0L48q3x.js.map +1 -0
- package/dist/index.d.ts +52 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +161 -44
- package/dist/index.js.map +1 -1
- package/dist/registry.js +1 -1
- package/dist/{scope-labels-B4VAwoL6.js → scope-labels-C7KX6ju6.js} +266 -2
- package/dist/scope-labels-C7KX6ju6.js.map +1 -0
- package/dist/scope-labels-DvdJLcSL.d.ts.map +1 -1
- package/package.json +10 -8
- package/src/adapters/adapter-registry.ts +45 -9
- package/src/components/CapabilityPanel.tsx +6 -5
- package/src/components/ConnectButton.tsx +2 -2
- package/src/components/CredentialForm.tsx +60 -4
- package/src/components/GitBrowser.tsx +5 -5
- package/src/index.ts +7 -0
- package/src/models/ConnectionManagerModel.ts +6 -3
- package/src/models/CredentialFormModel.ts +28 -11
- package/src/registry/service-registry.ts +12 -0
- package/src/registry/services/backblaze-b2.ts +21 -0
- package/src/registry/services/cloudflare-r2.ts +21 -0
- package/src/registry/services/imgur.ts +21 -0
- package/src/registry/services/pexels.ts +21 -0
- package/src/registry/services/unsplash.ts +21 -0
- package/src/registry/services/wasabi.ts +21 -0
- package/src/types/optional-deps.d.ts +9 -9
- package/dist/GitBrowser-BLgTNQyd.js.map +0 -1
- package/dist/GitBrowser-CIyWiuX-.js +0 -3
- package/dist/scope-labels-B4VAwoL6.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scope-labels-B4VAwoL6.js","names":["googleService: ServiceDefinition","dropboxService: ServiceDefinition","githubService: ServiceDefinition","s3Service: ServiceDefinition","webdavService: ServiceDefinition","gitlabService: ServiceDefinition","bitbucketService: ServiceDefinition","giteaService: ServiceDefinition","browserFsService: ServiceDefinition","indexeddbService: ServiceDefinition","boxService: ServiceDefinition","service: ServiceDefinition","id: string","capability: CapabilityId","SCOPE_LABELS: Record<string, string>","scope: string","segment: string","scopes: string[]"],"sources":["../src/registry/services/google.ts","../src/registry/services/dropbox.ts","../src/registry/services/github.ts","../src/registry/services/s3.ts","../src/registry/services/webdav.ts","../src/registry/services/gitlab.ts","../src/registry/services/bitbucket.ts","../src/registry/services/gitea.ts","../src/registry/services/browser-fs.ts","../src/registry/services/indexeddb.ts","../src/registry/services/box.ts","../src/registry/service-registry.ts","../src/utils/scope-labels.ts"],"sourcesContent":["import type { ServiceDefinition } from '../../types/service';\n\nexport const googleService: ServiceDefinition = {\n id: 'google',\n name: 'Google',\n icon: 'Cloud',\n color: '#4285F4',\n authProvider: 'google',\n grantsUrl: 'https://myaccount.google.com/permissions',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: false },\n { id: 'git-host', supported: false },\n { id: 'media', supported: false },\n { id: 'contacts', supported: true },\n { id: 'calendar', supported: true },\n ],\n scopes: {\n 'file-system': ['https://www.googleapis.com/auth/drive'],\n 'calendar': ['https://www.googleapis.com/auth/calendar.readonly'],\n 'contacts': ['https://www.googleapis.com/auth/contacts.readonly'],\n },\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const dropboxService: ServiceDefinition = {\n id: 'dropbox',\n name: 'Dropbox',\n icon: 'Box',\n color: '#0061FF',\n authProvider: 'dropbox',\n grantsUrl: 'https://www.dropbox.com/account/connected_apps',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: false },\n { id: 'git-host', supported: false },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {\n 'file-system': ['files.metadata.read', 'files.content.read', 'files.content.write'],\n },\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const githubService: ServiceDefinition = {\n id: 'github',\n name: 'GitHub',\n icon: 'Github',\n color: '#24292F',\n authProvider: 'github',\n grantsUrl: 'https://github.com/settings/applications',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: true },\n { id: 'git-host', supported: true },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {\n 'file-system': ['repo'],\n 'git-repo': ['repo'],\n 'git-host': ['repo'],\n },\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const s3Service: ServiceDefinition = {\n id: 's3',\n name: 'Amazon S3',\n icon: 'Database',\n color: '#FF9900',\n authProvider: 's3',\n capabilities: [\n { id: 'file-system', supported: false },\n { id: 'object-storage', supported: true },\n { id: 'git-repo', supported: false },\n { id: 'git-host', supported: false },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {\n 'object-storage': ['s3:GetObject', 's3:PutObject', 's3:ListBucket'],\n },\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const webdavService: ServiceDefinition = {\n id: 'webdav',\n name: 'WebDAV',\n icon: 'Server',\n color: '#6B7280',\n authProvider: 'webdav',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: false },\n { id: 'git-host', supported: false },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {\n 'file-system': [],\n },\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const gitlabService: ServiceDefinition = {\n id: 'gitlab',\n name: 'GitLab',\n icon: 'GitBranch',\n color: '#FC6D26',\n authProvider: 'gitlab',\n grantsUrl: 'https://gitlab.com/-/user_settings/applications',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: true },\n { id: 'git-host', supported: true },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {\n 'file-system': ['read_api'],\n 'git-repo': ['read_api'],\n 'git-host': ['read_api'],\n },\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const bitbucketService: ServiceDefinition = {\n id: 'bitbucket',\n name: 'Bitbucket',\n icon: 'GitBranch',\n color: '#0052CC',\n authProvider: 'bitbucket',\n grantsUrl: 'https://bitbucket.org/account/settings/app-authorizations/',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: true },\n { id: 'git-host', supported: true },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {\n 'file-system': ['repository'],\n 'git-repo': ['repository'],\n 'git-host': ['repository', 'pullrequest'],\n },\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const giteaService: ServiceDefinition = {\n id: 'gitea',\n name: 'Gitea',\n icon: 'GitBranch',\n color: '#609926',\n authProvider: 'gitea',\n grantsUrl: 'https://gitea.io/en-us/user_settings/applications',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: true },\n { id: 'git-host', supported: true },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {\n 'file-system': ['read:repository'],\n 'git-repo': ['read:repository'],\n 'git-host': ['read:repository', 'read:user'],\n },\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const browserFsService: ServiceDefinition = {\n id: 'browser-fs',\n name: 'Local Files',\n icon: 'FolderOpen',\n color: '#4CAF50',\n authProvider: 'browser-fs',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: false },\n { id: 'git-host', supported: false },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {},\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const indexeddbService: ServiceDefinition = {\n id: 'indexeddb',\n name: 'IndexedDB',\n icon: 'Database',\n color: '#FF9800',\n authProvider: 'indexeddb',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: false },\n { id: 'git-host', supported: false },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {},\n};\n","import type { ServiceDefinition } from '../../types/service';\n\nexport const boxService: ServiceDefinition = {\n id: 'box',\n name: 'Box',\n icon: 'Box',\n color: '#0061D5',\n authProvider: 'box',\n grantsUrl: 'https://app.box.com/account/security',\n capabilities: [\n { id: 'file-system', supported: true },\n { id: 'object-storage', supported: false },\n { id: 'git-repo', supported: false },\n { id: 'git-host', supported: false },\n { id: 'media', supported: false },\n { id: 'contacts', supported: false },\n { id: 'calendar', supported: false },\n ],\n scopes: {\n 'file-system': ['root_readwrite'],\n },\n};\n","import type { CapabilityId, ServiceDefinition } from '../types/service';\nimport { googleService } from './services/google';\nimport { dropboxService } from './services/dropbox';\nimport { githubService } from './services/github';\nimport { s3Service } from './services/s3';\nimport { webdavService } from './services/webdav';\nimport { gitlabService } from './services/gitlab';\nimport { bitbucketService } from './services/bitbucket';\nimport { giteaService } from './services/gitea';\nimport { browserFsService } from './services/browser-fs';\nimport { indexeddbService } from './services/indexeddb';\nimport { boxService } from './services/box';\n\nconst services = new Map<string, ServiceDefinition>();\n\nfunction register(service: ServiceDefinition) {\n services.set(service.id, service);\n}\n\nregister(googleService);\nregister(dropboxService);\nregister(githubService);\nregister(s3Service);\nregister(webdavService);\nregister(gitlabService);\nregister(bitbucketService);\nregister(giteaService);\nregister(browserFsService);\nregister(indexeddbService);\nregister(boxService);\n\nexport const serviceRegistry = {\n get(id: string): ServiceDefinition | undefined {\n return services.get(id);\n },\n\n getAll(): ServiceDefinition[] {\n return Array.from(services.values());\n },\n\n getByCapability(capability: CapabilityId): ServiceDefinition[] {\n return Array.from(services.values()).filter((s) =>\n s.capabilities.some((c) => c.id === capability && c.supported)\n );\n },\n};\n","/**\n * Maps raw OAuth scope strings to human-readable descriptions.\n * Falls back to a cleaned-up version of the scope string for unknown scopes.\n */\n\nconst SCOPE_LABELS: Record<string, string> = {\n // GitHub\n 'repo': 'Repository access',\n 'read:user': 'Read user profile',\n 'user:email': 'Read email address',\n 'gist': 'Gist access',\n 'read:org': 'Read organizations',\n\n // Google\n 'https://www.googleapis.com/auth/drive': 'Google Drive',\n 'https://www.googleapis.com/auth/drive.readonly': 'Google Drive (read-only)',\n 'https://www.googleapis.com/auth/calendar.readonly': 'Calendar (read-only)',\n 'https://www.googleapis.com/auth/calendar': 'Calendar',\n 'https://www.googleapis.com/auth/contacts.readonly': 'Contacts (read-only)',\n 'https://www.googleapis.com/auth/contacts': 'Contacts',\n\n // Microsoft\n 'Files.ReadWrite.All': 'File read/write',\n 'Files.Read.All': 'File read',\n 'Contacts.Read': 'Contacts (read-only)',\n 'Calendars.Read': 'Calendar (read-only)',\n 'User.Read': 'User profile',\n\n // GitLab\n 'read_api': 'API read access',\n 'read_repository': 'Repository read access',\n 'api': 'Full API access',\n 'read_user': 'Read user profile',\n\n // Bitbucket\n 'repository': 'Repository access',\n 'pullrequest': 'Pull request access',\n 'account': 'Account access',\n\n // Dropbox\n 'files.metadata.read': 'Read file metadata',\n 'files.content.read': 'Read file content',\n 'files.content.write': 'Write file content',\n\n // S3\n 's3:GetObject': 'Read objects',\n 's3:PutObject': 'Write objects',\n 's3:ListBucket': 'List buckets',\n\n // Box\n 'root_readwrite': 'Read & write all files',\n\n // Gitea\n 'read:repository': 'Repository read access',\n 'write:repository': 'Repository write access',\n};\n\n/**\n * Returns a human-readable label for a scope string.\n * Unknown scopes get cleaned up: URL paths are extracted, dots/underscores become spaces.\n */\nexport function getScopeLabel(scope: string): string {\n if (SCOPE_LABELS[scope]) {\n return SCOPE_LABELS[scope];\n }\n\n // Google-style URL scopes: extract the last path segment\n if (scope.startsWith('https://')) {\n const last = scope.split('/').pop() ?? scope;\n return formatScopeSegment(last);\n }\n\n return formatScopeSegment(scope);\n}\n\n/** Turn a scope segment like \"files.content.read\" into \"Files content read\" */\nfunction formatScopeSegment(segment: string): string {\n return segment\n .replace(/[._:]/g, ' ')\n .replace(/\\b\\w/g, c => c.toUpperCase())\n .trim();\n}\n\n/**\n * Deduplicate and label a list of scope strings.\n * Returns unique human-readable labels sorted alphabetically.\n */\nexport function getScopeLabels(scopes: string[]): string[] {\n const unique = [...new Set(scopes)];\n return unique.map(getScopeLabel).sort();\n}\n"],"mappings":"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"}
|