Files
vitanovaPackages/dist/fesm2022/marketplaces-auth.mjs.map

1 line
114 KiB
Plaintext
Raw Permalink Normal View History

{"version":3,"file":"marketplaces-auth.mjs","sources":["../../src/config.ts","../../src/marketplace-context.ts","../../src/util/guid.util.ts","../../src/telegram/telegram-session-api.service.ts","../../src/telegram/admin-auth.service.ts","../../src/telegram/auth.service.ts","../../src/ui/auth.gateway.ts","../../src/ui/auth.component.ts","../../src/telegram/admin-auth.guard.ts","../../src/telegram/admin-auth-headers.interceptor.ts","../../src/ed25519/models/auth-error.model.ts","../../src/ed25519/auth-api.service.ts","../../src/ed25519/ed25519-keypair.service.ts","../../src/ed25519/jwt.service.ts","../../src/ed25519/session.service.ts","../../src/ed25519/auth.service.ts","../../src/ed25519/models/permission.model.ts","../../src/ed25519/permission.service.ts","../../src/ed25519/auth-facade.service.ts","../../src/ed25519/ed25519-verification.model.ts","../../src/ed25519/noop-ed25519-verification.service.ts","../../src/index.ts","../../src/marketplaces-auth.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nexport interface MarketplacesAuthConfig {\n /** Central auth service URL. It is not the tenant API URL. */\n apiUrl: string;\n /** Override only for SSR/custom-domain integrations. Browser default is location.hostname. */\n marketplaceDomain?: string | (() => string);\n telegramBotUsername?: string;\n credentialsPath?: string;\n yandexStartPath?: string;\n yandexSessionPath?: string;\n pollIntervalMs?: number;\n}\n\r\n/** Base URL for the auth backend, e.g. `https://api.example.com`. Provide from the consuming app's environment config. */\r\nexport const AUTH_API_URL = new InjectionToken<string>('@marketplaces/auth AUTH_API_URL');\r\n\r\n/** Telegram bot username used to build QR/deep-link login URLs. Optional — falls back to a default if not provided. */\r\nexport const TELEGRAM_BOT_USERNAME = new InjectionToken<string>('@marketplaces/auth TELEGRAM_BOT_USERNAME');\n\nexport const MARKETPLACES_AUTH_CONFIG = new InjectionToken<MarketplacesAuthConfig>('@marketplaces/auth config');\n\nexport function provideMarketplacesAuth(config: MarketplacesAuthConfig): EnvironmentProviders {\n const normalized: MarketplacesAuthConfig = {\n ...config,\n apiUrl: config.apiUrl.replace(/\\/$/, ''),\n credentialsPath: config.credentialsPath ?? '/auth/credentials/login',\n yandexStartPath: config.yandexStartPath ?? '/auth/yandex/sessions',\n yandexSessionPath: config.yandexSessionPath ?? '/auth/yandex/sessions',\n pollIntervalMs: config.pollIntervalMs ?? 1500,\n };\n return makeEnvironmentProviders([\n { provide: MARKETPLACES_AUTH_CONFIG, useValue: normalized },\n { provide: AUTH_API_URL, useValue: normalized.apiUrl },\n ...(normalized.telegramBotUsername\n ? [{ provide: TELEGRAM_BOT_USERNAME, useValue: normalized.telegramBotUsername }]\n : []),\n ]);\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { MARKETPLACES_AUTH_CONFIG } from './config';\n\nexport const MARKETPLACE_DOMAIN_HEADER = 'X-Marketplace-Domain';\n\nexport function normalizeMarketplaceDomain(domain: string): string {\n return domain.trim().toLowerCase().replace(/\\.$/, '');\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AuthMarketplaceContext {\n private readonly config = inject(MARKETPLACES_AUTH_CONFIG, { optional: true });\n\n domain(): string {\n const configured = this.config?.marketplaceDomain;\n const domain = typeof configured === 'function'\n ? configured()\n : configured ?? (typeof location === 'undefined' ? '' : location.hostname);\n return normalizeMarketplaceDomain(domain);\n }\n\n headers(extra?: Record<string, string>): HttpHeaders {\n const domain = this.domain();\n if (!domain) throw new Error('Marketplace domain cannot be resolved');\n return new HttpHeaders({ [MARKETPLACE_DOMAIN_HEADER]: domain, ...extra });\n }\n}\n","/** RFC4122 v4-ish GUID, using crypto when available. Shared by customer and admin session creation. */\r\nex