@fudrouter/fsrouter 0.6.60 → 0.6.62

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/bin/copyJs.js CHANGED
@@ -42,17 +42,25 @@ function rewriteImports(content, filePath, isJsCopy = false) {
42
42
  updated = updated.replace(/from\s+['"]@\/utils\/([^'"]+)['"]/g, (m, impPath) => `from '${relToDist}/utils/${impPath}'`);
43
43
  updated = updated.replace(/require\(['"]@\/utils\/([^'"]+)['"]\)/g, (m, impPath) => `require('${relToDist}/utils/${impPath}')`);
44
44
 
45
- // 2. Fix open-sse bare imports to use relative imports from package root
46
45
  // Rel to root points to package root. open-sse is at package root.
47
- // Wait, if files are under dist/ (e.g. dist/lib/mcp/stdioSseBridge.js), the package root is relToRoot/.. because processed dir is inside dist.
48
- // Wait, copyFiles writes directly to dist. So path.relative(dir, distDir) will resolve back to dist.
49
- // Package root is parent of dist. So we can use:
50
- const relToPkgRoot = isJsCopy ? path.relative(dir, process.cwd()).replace(/\\/g, '/') : relToRoot;
46
+ const relToPkgRoot = relToRoot;
51
47
 
52
- updated = updated.replace(/from\s+['"]open-sse\/([^'"]+)['"]/g, (m, impPath) => `from '${relToPkgRoot}/open-sse/${impPath}'`);
53
- updated = updated.replace(/from\s+['"]open-sse['"]/g, `from '${relToPkgRoot}/open-sse/index.js'`);
54
- updated = updated.replace(/import\s+['"]open-sse\/([^'"]+)['"]/g, (m, impPath) => `import '${relToPkgRoot}/open-sse/${impPath}'`);
55
- updated = updated.replace(/import\s+['"]open-sse['"]/g, `import '${relToPkgRoot}/open-sse/index.js'`);
48
+ updated = updated.replace(/from\s+['"]open-sse\/([^'"]+)['"]/g, (m, impPath) => {
49
+ if (isJsCopy) return `from './dist/open-sse/${impPath}'`;
50
+ return `from '${relToPkgRoot}/open-sse/${impPath}'`;
51
+ });
52
+ updated = updated.replace(/from\s+['"]open-sse['"]/g, (m) => {
53
+ if (isJsCopy) return `from './dist/open-sse/index.js'`;
54
+ return `from '${relToPkgRoot}/open-sse/index.js'`;
55
+ });
56
+ updated = updated.replace(/import\s+['"]open-sse\/([^'"]+)['"]/g, (m, impPath) => {
57
+ if (isJsCopy) return `import './dist/open-sse/${impPath}'`;
58
+ return `import '${relToPkgRoot}/open-sse/${impPath}'`;
59
+ });
60
+ updated = updated.replace(/import\s+['"]open-sse['"]/g, (m) => {
61
+ if (isJsCopy) return `import './dist/open-sse/index.js'`;
62
+ return `import '${relToPkgRoot}/open-sse/index.js'`;
63
+ });
56
64
 
57
65
  // 3. Fix local relative imports that mistakenly double dist
58
66
  updated = updated.replace(/\.\.\/\.\.\/\.\.\/src\//g, '../../../');
@@ -2,8 +2,8 @@
2
2
  * OAuth Configuration Constants — static data lives in registry, re-exported here for consumers.
3
3
  */
4
4
  import { platform, arch } from "os";
5
- import { ANTIGRAVITY_OAUTH_CLIENT, GOOGLE_OAUTH_CLIENT } from '../../../../open-sse/providers/shared.js';
6
- import { PROVIDER_OAUTH, PROVIDERS as REGISTRY_PROVIDERS } from '../../../../open-sse/providers/index.js';
5
+ import { ANTIGRAVITY_OAUTH_CLIENT, GOOGLE_OAUTH_CLIENT } from './dist/open-sse/providers/shared.js';
6
+ import { PROVIDER_OAUTH, PROVIDERS as REGISTRY_PROVIDERS } from './dist/open-sse/providers/index.js';
7
7
 
8
8
  /**
9
9
  * Get the platform enum value based on the current OS.
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  // Ensure outbound fetch respects HTTP(S)_PROXY/ALL_PROXY in Node runtime
7
- import '../../../open-sse/index.js';
7
+ import './dist/open-sse/index.js';
8
8
  import crypto from "crypto";
9
9
 
10
10
  import { generatePKCE, generateState } from "./utils/pkce";
@@ -3,12 +3,12 @@ import { resolveConnectionProxyConfig } from '../../../../lib/network/connection
3
3
  import { testProxyUrl } from '../../../../lib/network/proxyTest.js';
4
4
  import { isOpenAICompatibleProvider, isAnthropicCompatibleProvider } from '../../../../shared/constants/providers.js';
5
5
  import { PROVIDER_ENDPOINTS } from '../../../../shared/constants/config.js';
6
- import { getDefaultModel } from '../../../../../open-sse/config/providerModels.js';
7
- import { resolveOllamaLocalHost } from '../../../../../open-sse/config/providers.js';
6
+ import { getDefaultModel } from './dist/open-sse/config/providerModels.js';
7
+ import { resolveOllamaLocalHost } from './dist/open-sse/config/providers.js';
8
8
  import {
9
9
  refreshProviderCredentials,
10
10
  shouldRefreshCredentials,
11
- } from '../../../../../open-sse/services/oauthCredentialManager.js';
11
+ } from './dist/open-sse/services/oauthCredentialManager.js';
12
12
  import {
13
13
  GEMINI_CONFIG,
14
14
  ANTIGRAVITY_CONFIG,
@@ -11,10 +11,10 @@ export {
11
11
  getModelsByProviderId,
12
12
  getModelUpstreamId,
13
13
  getModelQuotaFamily
14
- } from '../../../open-sse/config/providerModels.js';
14
+ } from './dist/open-sse/config/providerModels.js';
15
15
 
16
16
  import { AI_PROVIDERS, isOpenAICompatibleProvider } from "./providers.js";
17
- import { PROVIDER_MODELS as MODELS } from '../../../open-sse/config/providerModels.js';
17
+ import { PROVIDER_MODELS as MODELS } from './dist/open-sse/config/providerModels.js';
18
18
 
19
19
  // Providers that accept any model (passthrough)
20
20
  const PASSTHROUGH_PROVIDERS = new Set(
@@ -1,4 +1,4 @@
1
- import '../../../open-sse/index.js';
1
+ import './dist/open-sse/index.js';
2
2
 
3
3
  import {
4
4
  getProviderCredentials,
@@ -7,20 +7,20 @@ import {
7
7
  extractApiKey,
8
8
  isValidApiKey,
9
9
  } from "../services/auth.js";
10
- import { cacheClaudeHeaders } from '../../../open-sse/utils/claudeHeaderCache.js';
10
+ import { cacheClaudeHeaders } from './dist/open-sse/utils/claudeHeaderCache.js';
11
11
  import { getSettings } from "../../lib/localDb.js";
12
12
  import { getModelInfo, getComboModels } from "../services/model.js";
13
- import { getModelType } from '../../../open-sse/config/providerModels.js';
13
+ import { getModelType } from './dist/open-sse/config/providerModels.js';
14
14
  import { handleImageGeneration } from "./imageGeneration.js";
15
- import { handleChatCore } from '../../../open-sse/handlers/chatCore.js';
16
- import { errorResponse, unavailableResponse } from '../../../open-sse/utils/error.js';
17
- import { handleComboChat, handleFusionChat } from '../../../open-sse/services/combo.js';
18
- import { handleBypassRequest } from '../../../open-sse/utils/bypassHandler.js';
19
- import { HTTP_STATUS } from '../../../open-sse/config/runtimeConfig.js';
20
- import { detectFormatByEndpoint } from '../../../open-sse/translator/formats.js';
15
+ import { handleChatCore } from './dist/open-sse/handlers/chatCore.js';
16
+ import { errorResponse, unavailableResponse } from './dist/open-sse/utils/error.js';
17
+ import { handleComboChat, handleFusionChat } from './dist/open-sse/services/combo.js';
18
+ import { handleBypassRequest } from './dist/open-sse/utils/bypassHandler.js';
19
+ import { HTTP_STATUS } from './dist/open-sse/config/runtimeConfig.js';
20
+ import { detectFormatByEndpoint } from './dist/open-sse/translator/formats.js';
21
21
  import * as log from "../utils/logger.js";
22
22
  import { updateProviderCredentials, checkAndRefreshToken } from "../services/tokenRefresh.js";
23
- import { getProjectIdForConnection } from '../../../open-sse/services/projectId.js';
23
+ import { getProjectIdForConnection } from './dist/open-sse/services/projectId.js';
24
24
 
25
25
  /**
26
26
  * Handle chat completion request
@@ -7,9 +7,9 @@ import {
7
7
  } from "../services/auth.js";
8
8
  import { getSettings } from "../../lib/localDb.js";
9
9
  import { getModelInfo } from "../services/model.js";
10
- import { handleEmbeddingsCore } from '../../../open-sse/handlers/embeddingsCore.js';
11
- import { errorResponse, unavailableResponse } from '../../../open-sse/utils/error.js';
12
- import { HTTP_STATUS } from '../../../open-sse/config/runtimeConfig.js';
10
+ import { handleEmbeddingsCore } from './dist/open-sse/handlers/embeddingsCore.js';
11
+ import { errorResponse, unavailableResponse } from './dist/open-sse/utils/error.js';
12
+ import { HTTP_STATUS } from './dist/open-sse/config/runtimeConfig.js';
13
13
  import * as log from "../utils/logger.js";
14
14
  import { updateProviderCredentials, checkAndRefreshToken } from "../services/tokenRefresh.js";
15
15
 
@@ -7,12 +7,12 @@ import {
7
7
  } from "../services/auth.js";
8
8
  import { getSettings, getCombos } from "../../lib/localDb.js";
9
9
  import { AI_PROVIDERS, resolveProviderId } from "../../shared/constants/providers.js";
10
- import { handleFetchCore } from '../../../open-sse/handlers/fetch/index.js';
11
- import { errorResponse, unavailableResponse } from '../../../open-sse/utils/error.js';
12
- import { HTTP_STATUS } from '../../../open-sse/config/runtimeConfig.js';
10
+ import { handleFetchCore } from './dist/open-sse/handlers/fetch/index.js';
11
+ import { errorResponse, unavailableResponse } from './dist/open-sse/utils/error.js';
12
+ import { HTTP_STATUS } from './dist/open-sse/config/runtimeConfig.js';
13
13
  import * as log from "../utils/logger.js";
14
14
  import { updateProviderCredentials, checkAndRefreshToken } from "../services/tokenRefresh.js";
15
- import { handleComboChat, getComboModelsFromData } from '../../../open-sse/services/combo.js';
15
+ import { handleComboChat, getComboModelsFromData } from './dist/open-sse/services/combo.js';
16
16
 
17
17
  /**
18
18
  * Handle web fetch (URL extraction) request for the SSE/Next.js server.
@@ -7,12 +7,12 @@ import {
7
7
  } from "../services/auth.js";
8
8
  import { getSettings } from "../../lib/localDb.js";
9
9
  import { getModelInfo, getComboModels } from "../services/model.js";
10
- import { handleImageGenerationCore } from '../../../open-sse/handlers/imageGenerationCore.js';
11
- import { errorResponse, unavailableResponse } from '../../../open-sse/utils/error.js';
12
- import { HTTP_STATUS } from '../../../open-sse/config/runtimeConfig.js';
10
+ import { handleImageGenerationCore } from './dist/open-sse/handlers/imageGenerationCore.js';
11
+ import { errorResponse, unavailableResponse } from './dist/open-sse/utils/error.js';
12
+ import { HTTP_STATUS } from './dist/open-sse/config/runtimeConfig.js';
13
13
  import { updateProviderCredentials, checkAndRefreshToken } from "../services/tokenRefresh.js";
14
- import { handleComboChat } from '../../../open-sse/services/combo.js';
15
- import { saveUsageStats, buildRequestDetail } from '../../../open-sse/handlers/chatCore/requestDetail.js';
14
+ import { handleComboChat } from './dist/open-sse/services/combo.js';
15
+ import { saveUsageStats, buildRequestDetail } from './dist/open-sse/handlers/chatCore/requestDetail.js';
16
16
  import { saveRequestDetail } from "../../lib/usageDb.js";
17
17
  import * as log from "../utils/logger.js";
18
18
 
@@ -7,12 +7,12 @@ import {
7
7
  } from "../services/auth.js";
8
8
  import { getSettings, getCombos } from "../../lib/localDb.js";
9
9
  import { AI_PROVIDERS, resolveProviderId } from "../../shared/constants/providers.js";
10
- import { handleSearchCore } from '../../../open-sse/handlers/search/index.js';
11
- import { errorResponse, unavailableResponse } from '../../../open-sse/utils/error.js';
12
- import { HTTP_STATUS } from '../../../open-sse/config/runtimeConfig.js';
10
+ import { handleSearchCore } from './dist/open-sse/handlers/search/index.js';
11
+ import { errorResponse, unavailableResponse } from './dist/open-sse/utils/error.js';
12
+ import { HTTP_STATUS } from './dist/open-sse/config/runtimeConfig.js';
13
13
  import * as log from "../utils/logger.js";
14
14
  import { updateProviderCredentials, checkAndRefreshToken } from "../services/tokenRefresh.js";
15
- import { handleComboChat, getComboModelsFromData } from '../../../open-sse/services/combo.js';
15
+ import { handleComboChat, getComboModelsFromData } from './dist/open-sse/services/combo.js';
16
16
 
17
17
  /**
18
18
  * Handle web search request for the SSE/Next.js server.
@@ -4,9 +4,9 @@ import {
4
4
  } from "../services/auth.js";
5
5
  import { getSettings } from "../../lib/localDb.js";
6
6
  import { getModelInfo } from "../services/model.js";
7
- import { handleSttCore } from '../../../open-sse/handlers/sttCore.js';
8
- import { errorResponse, unavailableResponse } from '../../../open-sse/utils/error.js';
9
- import { HTTP_STATUS } from '../../../open-sse/config/runtimeConfig.js';
7
+ import { handleSttCore } from './dist/open-sse/handlers/sttCore.js';
8
+ import { errorResponse, unavailableResponse } from './dist/open-sse/utils/error.js';
9
+ import { HTTP_STATUS } from './dist/open-sse/config/runtimeConfig.js';
10
10
  import { AI_PROVIDERS } from "../../shared/constants/providers.js";
11
11
  import * as log from "../utils/logger.js";
12
12
 
@@ -4,11 +4,11 @@ import {
4
4
  } from "../services/auth.js";
5
5
  import { getSettings } from "../../lib/localDb.js";
6
6
  import { getModelInfo, getComboModels } from "../services/model.js";
7
- import { handleTtsCore } from '../../../open-sse/handlers/ttsCore.js';
8
- import { errorResponse, unavailableResponse } from '../../../open-sse/utils/error.js';
9
- import { HTTP_STATUS } from '../../../open-sse/config/runtimeConfig.js';
7
+ import { handleTtsCore } from './dist/open-sse/handlers/ttsCore.js';
8
+ import { errorResponse, unavailableResponse } from './dist/open-sse/utils/error.js';
9
+ import { HTTP_STATUS } from './dist/open-sse/config/runtimeConfig.js';
10
10
  import { AI_PROVIDERS } from "../../shared/constants/providers.js";
11
- import { handleComboChat } from '../../../open-sse/services/combo.js';
11
+ import { handleComboChat } from './dist/open-sse/services/combo.js';
12
12
  import * as log from "../utils/logger.js";
13
13
 
14
14
  // Derived from providers.js: any TTS provider not noAuth requires stored credentials
@@ -7,11 +7,11 @@ import {
7
7
  } from "../services/auth.js";
8
8
  import { getSettings } from "../../lib/localDb.js";
9
9
  import { getModelInfo } from "../services/model.js";
10
- import { handleVideoGenerationCore } from '../../../open-sse/handlers/videoGenerationCore.js';
11
- import { errorResponse, unavailableResponse } from '../../../open-sse/utils/error.js';
12
- import { HTTP_STATUS } from '../../../open-sse/config/runtimeConfig.js';
10
+ import { handleVideoGenerationCore } from './dist/open-sse/handlers/videoGenerationCore.js';
11
+ import { errorResponse, unavailableResponse } from './dist/open-sse/utils/error.js';
12
+ import { HTTP_STATUS } from './dist/open-sse/config/runtimeConfig.js';
13
13
  import { checkAndRefreshToken, updateProviderCredentials } from "../services/tokenRefresh.js";
14
- import { saveUsageStats, buildRequestDetail } from '../../../open-sse/handlers/chatCore/requestDetail.js';
14
+ import { saveUsageStats, buildRequestDetail } from './dist/open-sse/handlers/chatCore/requestDetail.js';
15
15
  import { saveRequestDetail } from "../../lib/usageDb.js";
16
16
  import * as log from "../utils/logger.js";
17
17
 
@@ -1,7 +1,7 @@
1
1
  import { getProviderConnections, validateApiKey, updateProviderConnection, getSettings } from "../../lib/localDb.js";
2
2
  import { resolveConnectionProxyConfig } from "../../lib/network/connectionProxy.js";
3
- import { formatRetryAfter, checkFallbackError, isModelLockActive, buildModelLockUpdate, getEarliestModelLockUntil } from '../../../open-sse/services/accountFallback.js';
4
- import { MAX_RATE_LIMIT_COOLDOWN_MS } from '../../../open-sse/config/errorConfig.js';
3
+ import { formatRetryAfter, checkFallbackError, isModelLockActive, buildModelLockUpdate, getEarliestModelLockUntil } from './dist/open-sse/services/accountFallback.js';
4
+ import { MAX_RATE_LIMIT_COOLDOWN_MS } from './dist/open-sse/config/errorConfig.js';
5
5
  import { resolveProviderId, FREE_PROVIDERS } from "../../shared/constants/providers.js";
6
6
  import * as log from "../utils/logger.js";
7
7
 
@@ -1,6 +1,6 @@
1
1
  // Re-export from open-sse with localDb integration
2
2
  import { getModelAliases, getComboByName, getProviderNodes } from "../../lib/localDb.js";
3
- import { parseModel as parseModelCore, resolveModelAliasFromMap, getModelInfoCore } from '../../../open-sse/services/model.js';
3
+ import { parseModel as parseModelCore, resolveModelAliasFromMap, getModelInfoCore } from './dist/open-sse/services/model.js';
4
4
 
5
5
  // Local provider alias overrides (HMR-friendly, applied on top of open-sse map)
6
6
  const LOCAL_PROVIDER_ALIASES = {
@@ -5,7 +5,7 @@ import {
5
5
  getProjectIdForConnection,
6
6
  invalidateProjectId,
7
7
  removeConnection,
8
- } from '../../../open-sse/services/projectId.js';
8
+ } from './dist/open-sse/services/projectId.js';
9
9
  import {
10
10
  TOKEN_EXPIRY_BUFFER_MS as BUFFER_MS,
11
11
  refreshAccessToken as _refreshAccessToken,
@@ -22,11 +22,11 @@ import {
22
22
  getAllAccessTokens as _getAllAccessTokens,
23
23
  refreshKiroToken as _refreshKiroToken,
24
24
  getRefreshLeadMs as _getRefreshLeadMs
25
- } from '../../../open-sse/services/tokenRefresh.js';
25
+ } from './dist/open-sse/services/tokenRefresh.js';
26
26
  import {
27
27
  refreshProviderCredentials as _refreshProviderCredentials,
28
28
  shouldRefreshCredentials as _shouldRefreshCredentials,
29
- } from '../../../open-sse/services/oauthCredentialManager.js';
29
+ } from './dist/open-sse/services/oauthCredentialManager.js';
30
30
 
31
31
  export const TOKEN_EXPIRY_BUFFER_MS = BUFFER_MS;
32
32
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fudrouter/fsrouter",
3
- "version": "0.6.60",
3
+ "version": "0.6.62",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "9Router v2 \u2014 Express Backend (API, SSE, DB, Auth, MITM)",