@monokle/synchronizer
Advanced tools
Comparing version
@@ -0,5 +1,6 @@ | ||
import { ClientConfig } from './handlers/apiHandler.js'; | ||
import { StorageHandlerAuth } from './handlers/storageHandlerAuth.js'; | ||
import { Authenticator } from './utils/authenticator.js'; | ||
import { OriginConfig } from './handlers/configHandler.js'; | ||
export declare function createMonokleAuthenticatorFromOrigin(authClientId: string, origin?: string, storageHandler?: StorageHandlerAuth): Promise<Authenticator>; | ||
export declare function createMonokleAuthenticatorFromConfig(authClientId: string, config: OriginConfig, storageHandler?: StorageHandlerAuth): Authenticator; | ||
export declare function createMonokleAuthenticatorFromOrigin(authClientId: string, clientConfig: ClientConfig, origin?: string, storageHandler?: StorageHandlerAuth): Promise<Authenticator>; | ||
export declare function createMonokleAuthenticatorFromConfig(authClientId: string, clientConfig: ClientConfig, originConfig: OriginConfig, storageHandler?: StorageHandlerAuth): Authenticator; |
@@ -19,7 +19,7 @@ "use strict"; | ||
const configHandler_js_1 = require("./handlers/configHandler.js"); | ||
function createMonokleAuthenticatorFromOrigin(authClientId, origin = constants_js_1.DEFAULT_ORIGIN, storageHandler = new storageHandlerAuth_js_1.StorageHandlerAuth()) { | ||
function createMonokleAuthenticatorFromOrigin(authClientId, clientConfig, origin = constants_js_1.DEFAULT_ORIGIN, storageHandler = new storageHandlerAuth_js_1.StorageHandlerAuth()) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
try { | ||
const originConfig = yield (0, configHandler_js_1.fetchOriginConfig)(origin); | ||
return createMonokleAuthenticatorFromConfig(authClientId, originConfig, storageHandler); | ||
return createMonokleAuthenticatorFromConfig(authClientId, clientConfig, originConfig, storageHandler); | ||
} | ||
@@ -32,13 +32,13 @@ catch (err) { | ||
exports.createMonokleAuthenticatorFromOrigin = createMonokleAuthenticatorFromOrigin; | ||
function createMonokleAuthenticatorFromConfig(authClientId, config, storageHandler = new storageHandlerAuth_js_1.StorageHandlerAuth()) { | ||
function createMonokleAuthenticatorFromConfig(authClientId, clientConfig, originConfig, storageHandler = new storageHandlerAuth_js_1.StorageHandlerAuth()) { | ||
if (!authClientId) { | ||
throw new Error(`No auth clientId provided.`); | ||
} | ||
if (!(config === null || config === void 0 ? void 0 : config.apiOrigin)) { | ||
if (!(originConfig === null || originConfig === void 0 ? void 0 : originConfig.apiOrigin)) { | ||
throw new Error(`No api origin found in origin config from ${origin}.`); | ||
} | ||
if (!(config === null || config === void 0 ? void 0 : config.authOrigin)) { | ||
if (!(originConfig === null || originConfig === void 0 ? void 0 : originConfig.authOrigin)) { | ||
throw new Error(`No auth origin found in origin config from ${origin}.`); | ||
} | ||
return new authenticator_js_1.Authenticator(storageHandler, new apiHandler_js_1.ApiHandler(config), new deviceFlowHandler_js_1.DeviceFlowHandler(config.authOrigin, { | ||
return new authenticator_js_1.Authenticator(storageHandler, new apiHandler_js_1.ApiHandler(originConfig, clientConfig), new deviceFlowHandler_js_1.DeviceFlowHandler(originConfig.authOrigin, { | ||
client_id: authClientId, | ||
@@ -45,0 +45,0 @@ client_secret: constants_js_1.DEFAULT_DEVICE_FLOW_CLIENT_SECRET, |
@@ -0,4 +1,5 @@ | ||
import { ClientConfig } from './handlers/apiHandler.js'; | ||
import { OriginConfig } from './handlers/configHandler.js'; | ||
import { Fetcher } from './utils/fetcher.js'; | ||
export declare function createMonokleFetcherFromOrigin(origin?: string): Promise<Fetcher>; | ||
export declare function createMonokleFetcherFromConfig(config: OriginConfig): Fetcher; | ||
export declare function createMonokleFetcherFromOrigin(clientConfig: ClientConfig, origin?: string): Promise<Fetcher>; | ||
export declare function createMonokleFetcherFromConfig(clientConfig: ClientConfig, originConfig: OriginConfig): Fetcher; |
@@ -17,7 +17,7 @@ "use strict"; | ||
const fetcher_js_1 = require("./utils/fetcher.js"); | ||
function createMonokleFetcherFromOrigin(origin = constants_js_1.DEFAULT_ORIGIN) { | ||
function createMonokleFetcherFromOrigin(clientConfig, origin = constants_js_1.DEFAULT_ORIGIN) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
try { | ||
const originConfig = yield (0, configHandler_js_1.fetchOriginConfig)(origin); | ||
return createMonokleFetcherFromConfig(originConfig); | ||
return createMonokleFetcherFromConfig(clientConfig, originConfig); | ||
} | ||
@@ -30,8 +30,8 @@ catch (err) { | ||
exports.createMonokleFetcherFromOrigin = createMonokleFetcherFromOrigin; | ||
function createMonokleFetcherFromConfig(config) { | ||
if (!(config === null || config === void 0 ? void 0 : config.apiOrigin)) { | ||
function createMonokleFetcherFromConfig(clientConfig, originConfig) { | ||
if (!(originConfig === null || originConfig === void 0 ? void 0 : originConfig.apiOrigin)) { | ||
throw new Error(`No api origin found in origin config from ${origin}.`); | ||
} | ||
return new fetcher_js_1.Fetcher(new apiHandler_js_1.ApiHandler(config)); | ||
return new fetcher_js_1.Fetcher(new apiHandler_js_1.ApiHandler(originConfig, clientConfig)); | ||
} | ||
exports.createMonokleFetcherFromConfig = createMonokleFetcherFromConfig; |
@@ -0,1 +1,2 @@ | ||
import { ClientConfig } from './handlers/apiHandler.js'; | ||
import { OriginConfig } from './handlers/configHandler.js'; | ||
@@ -5,3 +6,3 @@ import { GitHandler } from './handlers/gitHandler.js'; | ||
import { Synchronizer } from './utils/synchronizer.js'; | ||
export declare function createMonokleSynchronizerFromOrigin(origin?: string, storageHandler?: StorageHandlerPolicy, gitHandler?: GitHandler): Promise<Synchronizer>; | ||
export declare function createMonokleSynchronizerFromConfig(config: OriginConfig, storageHandler?: StorageHandlerPolicy, gitHandler?: GitHandler): Synchronizer; | ||
export declare function createMonokleSynchronizerFromOrigin(clientConfig: ClientConfig, origin?: string, storageHandler?: StorageHandlerPolicy, gitHandler?: GitHandler): Promise<Synchronizer>; | ||
export declare function createMonokleSynchronizerFromConfig(clientConfig: ClientConfig, originConfig: OriginConfig, storageHandler?: StorageHandlerPolicy, gitHandler?: GitHandler): Synchronizer; |
@@ -19,7 +19,7 @@ "use strict"; | ||
const synchronizer_js_1 = require("./utils/synchronizer.js"); | ||
function createMonokleSynchronizerFromOrigin(origin = constants_js_1.DEFAULT_ORIGIN, storageHandler = new storageHandlerPolicy_js_1.StorageHandlerPolicy(), gitHandler = new gitHandler_js_1.GitHandler()) { | ||
function createMonokleSynchronizerFromOrigin(clientConfig, origin = constants_js_1.DEFAULT_ORIGIN, storageHandler = new storageHandlerPolicy_js_1.StorageHandlerPolicy(), gitHandler = new gitHandler_js_1.GitHandler()) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
try { | ||
const originConfig = yield (0, configHandler_js_1.fetchOriginConfig)(origin); | ||
return createMonokleSynchronizerFromConfig(originConfig, storageHandler, gitHandler); | ||
return createMonokleSynchronizerFromConfig(clientConfig, originConfig, storageHandler, gitHandler); | ||
} | ||
@@ -32,8 +32,8 @@ catch (err) { | ||
exports.createMonokleSynchronizerFromOrigin = createMonokleSynchronizerFromOrigin; | ||
function createMonokleSynchronizerFromConfig(config, storageHandler = new storageHandlerPolicy_js_1.StorageHandlerPolicy(), gitHandler = new gitHandler_js_1.GitHandler()) { | ||
if (!(config === null || config === void 0 ? void 0 : config.apiOrigin)) { | ||
function createMonokleSynchronizerFromConfig(clientConfig, originConfig, storageHandler = new storageHandlerPolicy_js_1.StorageHandlerPolicy(), gitHandler = new gitHandler_js_1.GitHandler()) { | ||
if (!(originConfig === null || originConfig === void 0 ? void 0 : originConfig.apiOrigin)) { | ||
throw new Error(`No api origin found in origin config from ${origin}.`); | ||
} | ||
return new synchronizer_js_1.Synchronizer(storageHandler, new apiHandler_js_1.ApiHandler(config), gitHandler); | ||
return new synchronizer_js_1.Synchronizer(storageHandler, new apiHandler_js_1.ApiHandler(originConfig, clientConfig), gitHandler); | ||
} | ||
exports.createMonokleSynchronizerFromConfig = createMonokleSynchronizerFromConfig; |
@@ -76,8 +76,15 @@ import { SuppressionStatus } from '@monokle/types'; | ||
}; | ||
export declare type ClientConfig = { | ||
name: string; | ||
version: string; | ||
os?: string; | ||
additionalData?: Record<string, string>; | ||
}; | ||
export declare class ApiHandler { | ||
private _apiUrl; | ||
private _clientConfig; | ||
private _originConfig?; | ||
constructor(); | ||
constructor(_apiUrl: string); | ||
constructor(_originConfig: OriginConfig); | ||
constructor(_apiUrl: string, clientConfig?: ClientConfig); | ||
constructor(_originConfig: OriginConfig, clientConfig?: ClientConfig); | ||
get apiUrl(): string; | ||
@@ -93,2 +100,3 @@ getUser(tokenInfo: TokenInfo): Promise<ApiUserData | undefined>; | ||
private formatAuthorizationHeader; | ||
private formatUserAgentHeader; | ||
} |
@@ -106,3 +106,3 @@ "use strict"; | ||
class ApiHandler { | ||
constructor(_apiUrlOrOriginConfig = constants_js_1.DEFAULT_API_URL) { | ||
constructor(_apiUrlOrOriginConfig = constants_js_1.DEFAULT_API_URL, clientConfig) { | ||
if (typeof _apiUrlOrOriginConfig === 'string') { | ||
@@ -123,2 +123,8 @@ this._apiUrl = _apiUrlOrOriginConfig; | ||
} | ||
this._clientConfig = { | ||
name: (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.name) || 'unknown', | ||
version: (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.version) || 'unknown', | ||
os: (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.os) || '', | ||
additionalData: (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.additionalData) || {}, | ||
}; | ||
} | ||
@@ -197,2 +203,3 @@ get apiUrl() { | ||
Authorization: this.formatAuthorizationHeader(tokenInfo), | ||
'User-Agent': this.formatUserAgentHeader(this._clientConfig), | ||
}, | ||
@@ -214,3 +221,14 @@ body: JSON.stringify({ | ||
} | ||
formatUserAgentHeader(clientConfig) { | ||
const product = `${clientConfig.name}/${clientConfig.version}`; | ||
const comment = []; | ||
if (clientConfig.os) { | ||
comment.push(clientConfig.os); | ||
} | ||
if (clientConfig.additionalData) { | ||
comment.push(Object.entries(clientConfig.additionalData).map(([key, value]) => `${key}=${value}`)); | ||
} | ||
return `${product}${comment.length > 0 ? ` (${comment.join('; ')})` : ''}`; | ||
} | ||
} | ||
exports.ApiHandler = ApiHandler; |
@@ -85,3 +85,4 @@ "use strict"; | ||
// and authenticator is querying different one. | ||
if ((options === null || options === void 0 ? void 0 : options.logoutOnFail) || (options === null || options === void 0 ? void 0 : options.logoutOnInvalidGrant) && err.message.toLowerCase().includes('invalid_grant')) { | ||
if ((options === null || options === void 0 ? void 0 : options.logoutOnFail) || | ||
((options === null || options === void 0 ? void 0 : options.logoutOnInvalidGrant) && err.message.toLowerCase().includes('invalid_grant'))) { | ||
yield this._storageHandler.emptyStoreData(); | ||
@@ -88,0 +89,0 @@ this._user = new user_js_1.User(null); |
@@ -0,5 +1,6 @@ | ||
import { ClientConfig } from './handlers/apiHandler.js'; | ||
import { StorageHandlerAuth } from './handlers/storageHandlerAuth.js'; | ||
import { Authenticator } from './utils/authenticator.js'; | ||
import { OriginConfig } from './handlers/configHandler.js'; | ||
export declare function createMonokleAuthenticatorFromOrigin(authClientId: string, origin?: string, storageHandler?: StorageHandlerAuth): Promise<Authenticator>; | ||
export declare function createMonokleAuthenticatorFromConfig(authClientId: string, config: OriginConfig, storageHandler?: StorageHandlerAuth): Authenticator; | ||
export declare function createMonokleAuthenticatorFromOrigin(authClientId: string, clientConfig: ClientConfig, origin?: string, storageHandler?: StorageHandlerAuth): Promise<Authenticator>; | ||
export declare function createMonokleAuthenticatorFromConfig(authClientId: string, clientConfig: ClientConfig, originConfig: OriginConfig, storageHandler?: StorageHandlerAuth): Authenticator; |
@@ -7,6 +7,6 @@ import { ApiHandler } from './handlers/apiHandler.js'; | ||
import { fetchOriginConfig } from './handlers/configHandler.js'; | ||
export async function createMonokleAuthenticatorFromOrigin(authClientId, origin = DEFAULT_ORIGIN, storageHandler = new StorageHandlerAuth()) { | ||
export async function createMonokleAuthenticatorFromOrigin(authClientId, clientConfig, origin = DEFAULT_ORIGIN, storageHandler = new StorageHandlerAuth()) { | ||
try { | ||
const originConfig = await fetchOriginConfig(origin); | ||
return createMonokleAuthenticatorFromConfig(authClientId, originConfig, storageHandler); | ||
return createMonokleAuthenticatorFromConfig(authClientId, clientConfig, originConfig, storageHandler); | ||
} | ||
@@ -17,13 +17,13 @@ catch (err) { | ||
} | ||
export function createMonokleAuthenticatorFromConfig(authClientId, config, storageHandler = new StorageHandlerAuth()) { | ||
export function createMonokleAuthenticatorFromConfig(authClientId, clientConfig, originConfig, storageHandler = new StorageHandlerAuth()) { | ||
if (!authClientId) { | ||
throw new Error(`No auth clientId provided.`); | ||
} | ||
if (!config?.apiOrigin) { | ||
if (!originConfig?.apiOrigin) { | ||
throw new Error(`No api origin found in origin config from ${origin}.`); | ||
} | ||
if (!config?.authOrigin) { | ||
if (!originConfig?.authOrigin) { | ||
throw new Error(`No auth origin found in origin config from ${origin}.`); | ||
} | ||
return new Authenticator(storageHandler, new ApiHandler(config), new DeviceFlowHandler(config.authOrigin, { | ||
return new Authenticator(storageHandler, new ApiHandler(originConfig, clientConfig), new DeviceFlowHandler(originConfig.authOrigin, { | ||
client_id: authClientId, | ||
@@ -30,0 +30,0 @@ client_secret: DEFAULT_DEVICE_FLOW_CLIENT_SECRET, |
@@ -0,4 +1,5 @@ | ||
import { ClientConfig } from './handlers/apiHandler.js'; | ||
import { OriginConfig } from './handlers/configHandler.js'; | ||
import { Fetcher } from './utils/fetcher.js'; | ||
export declare function createMonokleFetcherFromOrigin(origin?: string): Promise<Fetcher>; | ||
export declare function createMonokleFetcherFromConfig(config: OriginConfig): Fetcher; | ||
export declare function createMonokleFetcherFromOrigin(clientConfig: ClientConfig, origin?: string): Promise<Fetcher>; | ||
export declare function createMonokleFetcherFromConfig(clientConfig: ClientConfig, originConfig: OriginConfig): Fetcher; |
@@ -5,6 +5,6 @@ import { DEFAULT_ORIGIN } from './constants.js'; | ||
import { Fetcher } from './utils/fetcher.js'; | ||
export async function createMonokleFetcherFromOrigin(origin = DEFAULT_ORIGIN) { | ||
export async function createMonokleFetcherFromOrigin(clientConfig, origin = DEFAULT_ORIGIN) { | ||
try { | ||
const originConfig = await fetchOriginConfig(origin); | ||
return createMonokleFetcherFromConfig(originConfig); | ||
return createMonokleFetcherFromConfig(clientConfig, originConfig); | ||
} | ||
@@ -15,7 +15,7 @@ catch (err) { | ||
} | ||
export function createMonokleFetcherFromConfig(config) { | ||
if (!config?.apiOrigin) { | ||
export function createMonokleFetcherFromConfig(clientConfig, originConfig) { | ||
if (!originConfig?.apiOrigin) { | ||
throw new Error(`No api origin found in origin config from ${origin}.`); | ||
} | ||
return new Fetcher(new ApiHandler(config)); | ||
return new Fetcher(new ApiHandler(originConfig, clientConfig)); | ||
} |
@@ -0,1 +1,2 @@ | ||
import { ClientConfig } from './handlers/apiHandler.js'; | ||
import { OriginConfig } from './handlers/configHandler.js'; | ||
@@ -5,3 +6,3 @@ import { GitHandler } from './handlers/gitHandler.js'; | ||
import { Synchronizer } from './utils/synchronizer.js'; | ||
export declare function createMonokleSynchronizerFromOrigin(origin?: string, storageHandler?: StorageHandlerPolicy, gitHandler?: GitHandler): Promise<Synchronizer>; | ||
export declare function createMonokleSynchronizerFromConfig(config: OriginConfig, storageHandler?: StorageHandlerPolicy, gitHandler?: GitHandler): Synchronizer; | ||
export declare function createMonokleSynchronizerFromOrigin(clientConfig: ClientConfig, origin?: string, storageHandler?: StorageHandlerPolicy, gitHandler?: GitHandler): Promise<Synchronizer>; | ||
export declare function createMonokleSynchronizerFromConfig(clientConfig: ClientConfig, originConfig: OriginConfig, storageHandler?: StorageHandlerPolicy, gitHandler?: GitHandler): Synchronizer; |
@@ -7,6 +7,6 @@ import { DEFAULT_ORIGIN } from './constants.js'; | ||
import { Synchronizer } from './utils/synchronizer.js'; | ||
export async function createMonokleSynchronizerFromOrigin(origin = DEFAULT_ORIGIN, storageHandler = new StorageHandlerPolicy(), gitHandler = new GitHandler()) { | ||
export async function createMonokleSynchronizerFromOrigin(clientConfig, origin = DEFAULT_ORIGIN, storageHandler = new StorageHandlerPolicy(), gitHandler = new GitHandler()) { | ||
try { | ||
const originConfig = await fetchOriginConfig(origin); | ||
return createMonokleSynchronizerFromConfig(originConfig, storageHandler, gitHandler); | ||
return createMonokleSynchronizerFromConfig(clientConfig, originConfig, storageHandler, gitHandler); | ||
} | ||
@@ -17,7 +17,7 @@ catch (err) { | ||
} | ||
export function createMonokleSynchronizerFromConfig(config, storageHandler = new StorageHandlerPolicy(), gitHandler = new GitHandler()) { | ||
if (!config?.apiOrigin) { | ||
export function createMonokleSynchronizerFromConfig(clientConfig, originConfig, storageHandler = new StorageHandlerPolicy(), gitHandler = new GitHandler()) { | ||
if (!originConfig?.apiOrigin) { | ||
throw new Error(`No api origin found in origin config from ${origin}.`); | ||
} | ||
return new Synchronizer(storageHandler, new ApiHandler(config), gitHandler); | ||
return new Synchronizer(storageHandler, new ApiHandler(originConfig, clientConfig), gitHandler); | ||
} |
@@ -76,8 +76,15 @@ import { SuppressionStatus } from '@monokle/types'; | ||
}; | ||
export declare type ClientConfig = { | ||
name: string; | ||
version: string; | ||
os?: string; | ||
additionalData?: Record<string, string>; | ||
}; | ||
export declare class ApiHandler { | ||
private _apiUrl; | ||
private _clientConfig; | ||
private _originConfig?; | ||
constructor(); | ||
constructor(_apiUrl: string); | ||
constructor(_originConfig: OriginConfig); | ||
constructor(_apiUrl: string, clientConfig?: ClientConfig); | ||
constructor(_originConfig: OriginConfig, clientConfig?: ClientConfig); | ||
get apiUrl(): string; | ||
@@ -93,2 +100,3 @@ getUser(tokenInfo: TokenInfo): Promise<ApiUserData | undefined>; | ||
private formatAuthorizationHeader; | ||
private formatUserAgentHeader; | ||
} |
@@ -92,4 +92,5 @@ import normalizeUrl from 'normalize-url'; | ||
_apiUrl; | ||
_clientConfig; | ||
_originConfig; | ||
constructor(_apiUrlOrOriginConfig = DEFAULT_API_URL) { | ||
constructor(_apiUrlOrOriginConfig = DEFAULT_API_URL, clientConfig) { | ||
if (typeof _apiUrlOrOriginConfig === 'string') { | ||
@@ -110,2 +111,8 @@ this._apiUrl = _apiUrlOrOriginConfig; | ||
} | ||
this._clientConfig = { | ||
name: clientConfig?.name || 'unknown', | ||
version: clientConfig?.version || 'unknown', | ||
os: clientConfig?.os || '', | ||
additionalData: clientConfig?.additionalData || {}, | ||
}; | ||
} | ||
@@ -169,2 +176,3 @@ get apiUrl() { | ||
Authorization: this.formatAuthorizationHeader(tokenInfo), | ||
'User-Agent': this.formatUserAgentHeader(this._clientConfig), | ||
}, | ||
@@ -184,2 +192,13 @@ body: JSON.stringify({ | ||
} | ||
formatUserAgentHeader(clientConfig) { | ||
const product = `${clientConfig.name}/${clientConfig.version}`; | ||
const comment = []; | ||
if (clientConfig.os) { | ||
comment.push(clientConfig.os); | ||
} | ||
if (clientConfig.additionalData) { | ||
comment.push(Object.entries(clientConfig.additionalData).map(([key, value]) => `${key}=${value}`)); | ||
} | ||
return `${product}${comment.length > 0 ? ` (${comment.join('; ')})` : ''}`; | ||
} | ||
} |
@@ -69,3 +69,4 @@ import { EventEmitter } from 'events'; | ||
// and authenticator is querying different one. | ||
if (options?.logoutOnFail || options?.logoutOnInvalidGrant && err.message.toLowerCase().includes('invalid_grant')) { | ||
if (options?.logoutOnFail || | ||
(options?.logoutOnInvalidGrant && err.message.toLowerCase().includes('invalid_grant'))) { | ||
await this._storageHandler.emptyStoreData(); | ||
@@ -72,0 +73,0 @@ this._user = new User(null); |
{ | ||
"name": "@monokle/synchronizer", | ||
"version": "0.12.5", | ||
"version": "0.13.0", | ||
"description": "Monokle Cloud synchronizer", | ||
@@ -5,0 +5,0 @@ "author": "Kubeshop", |
217928
1.74%4801
1.29%