UNPKG

@lemoncloud/lemon-web-core

Version:

Core Web-based Library for signing request at LEMONCLOUD

1 lines 137 kB
{"version":3,"sources":["../src/utils/local-storage.ts","../src/utils/utils.ts","../src/utils/logger-helper.service.ts","../src/utils/logger.service.ts","../src/token-storage/token-storage.service.ts","../src/token-storage/aws-storage.service.ts","../src/token-storage/azure-storage.service.ts","../src/core/aws-web.core.ts","../src/http/http-request.builder.ts","../src/http/aws-http-request.builder.ts","../src/vendor/sig-v4.service.ts","../src/http/azure-http-request.builder.ts","../src/core/azure-web.core.ts","../src/core/web-core.factory.ts"],"names":["dataMemory","MemoryStorage","key","value","LocalStorageService","exception","hmacSHA256","encBase64","createAsyncDelay","duration","resolve","isEmptyObject","obj","withRetries","attempt","nthTry","delay","args","__async","retryCount","error","hmac","message","hash","calcSignature","payload","current","userAgent","authId","accountId","identityId","identityToken","data","signature","convertCamelCaseFromSnake","part","i","convertSnakeCaseFromCamel","letter","getStorageKey","prefix","getStorageValue","storage","snakeKey","camelKey","snakeValue","calcTestSignature","format","NODE_COLORS","BROWSER_COLORS","LoggerHelperService","params","extraParams","type","name","param","LogType","LoggerService","namespace","options","__spreadValues","formattedMessage","formattedText","text","shouldFormat","typeBlank","showTimestamp","showLogType","timestampFormat","typeFormat","textFormat","namespaceFormat","timestampLog","typeLog","namespaceLog","textLog","whiteColor","typeColor","blackColor","date","zeroOrNull","dt","year","month","day","hours","minutes","seconds","dateText","hoursText","jwtDecode","USE_X_LEMON_IDENTITY_KEY","USE_X_LEMON_LANGUAGE_KEY","REGION_KEY","TokenStorageService","config","serverExpiration","jwtToken","_a","jwtExpiration","jwtIssuedAt","jwt","e","AWSStorageService","promise","item","result","expiredTime","accessKeyId","secretKey","now","noExpirationInfo","isExpired","AccessKeyId","SecretKey","SessionToken","tmp","token","credential","identityPoolId","Expiration","issuedTime","kms","kmsArn","AzureStorageService","accessToken","hostKey","clientId","axios","HttpRequestBuilder","axiosInstance","headers","method","AWS","sha256","Hex","SHA256","encHex","HmacSHA256","sigV4Client","AWS_SHA_256","AWS4_REQUEST","AWS4","X_AMZ_DATE","X_AMZ_SECURITY_TOKEN","HOST","AUTHORIZATION","hexEncode","secret","buildCanonicalRequest","path","queryParams","buildCanonicalUri","buildCanonicalQueryString","buildCanonicalHeaders","buildCanonicalSignedHeaders","hashCanonicalRequest","request","uri","UriEncode","input","encodeSlash","ch","sortedQueryParams","property","canonicalQueryString","urlencode","canonicalHeaders","sortedKeys","buildStringToSign","datetime","credentialScope","hashedCanonicalRequest","buildCredentialScope","region","service","calculateSigningKey","calculateSignature","stringToSign","buildAuthorizationHeader","accessKey","awsSigV4Client","invokeUrl","endpoint","pathComponent","verb","body","canonicalRequest","signingKey","url","queryString","AWSHttpRequestBuilder","tokenStorage","signedClient","sigendHeader","signedRequest","header","headerWithIdentity","useXLemonIdentity","__spreadProps","languageKey","language","hostname","AzureHttpRequestBuilder","code","originParams","AWSWebCore","_0","_1","builder","credentials","domain","cached","cachedCredentials","response","tokenData","refreshToken","changeSiteBody","target","tokenSignature","originToken","use","reject","AzureWebCore","webCoreMap","WebCoreFactory","cloud","ServiceConstructor"],"mappings":"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","sourcesContent":["let dataMemory: any = {};\n\nclass MemoryStorage {\n constructor() {}\n\n public setItem(key: string, value: string) {\n dataMemory[key] = value;\n return dataMemory[key];\n }\n\n public getItem(key: string) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n }\n\n public removeItem(key: string) {\n return delete dataMemory[key];\n }\n\n public clear() {\n dataMemory = {};\n return dataMemory;\n }\n}\n\nexport class LocalStorageService {\n private storage: any;\n\n constructor() {\n try {\n this.storage = window.localStorage;\n this.storage.setItem(`.test-value`, 1);\n this.storage.removeItem(`.test-value`);\n } catch (exception) {\n this.storage = new MemoryStorage();\n }\n }\n\n public setItem(key: string, value: string) {\n this.storage.setItem(key, value);\n }\n\n public getItem(key: string) {\n return this.storage.getItem(key);\n }\n\n public removeItem(key: string) {\n this.storage.removeItem(key);\n }\n}\n","import { SignaturePayload } from '../types';\nimport hmacSHA256 from 'crypto-js/hmac-sha256.js';\nimport encBase64 from 'crypto-js/enc-base64.js';\n\n/**\n * @description create delay using async/await\n * @param {number} duration (millisecond)\n * @returns {Promise}\n * @example\n * await createAsyncDelay(2000) // wait 2 seconds\n * */\nexport const createAsyncDelay = (duration: number) => {\n return new Promise<void>(resolve => setTimeout(() => resolve(), duration));\n};\n\nexport const isEmptyObject = (obj: any) => {\n if (typeof obj !== 'object') {\n return !obj;\n }\n return Object.keys(obj).length === 0;\n};\n\nexport const withRetries =\n (attempt: any, nthTry: number, delay: number) =>\n async (...args: any[]) => {\n let retryCount = 0;\n do {\n try {\n return await attempt(...args);\n } catch (error) {\n const isLastAttempt = retryCount === nthTry;\n if (isLastAttempt) {\n return Promise.reject(error);\n }\n }\n await createAsyncDelay(delay);\n } while (retryCount++ < nthTry);\n };\n\nexport const hmac = (message: string, key: string) => {\n //! INFO: lemon-account-api\n //! algorithm: sha256, encoding: base64\n const hash = hmacSHA256(message, key);\n return encBase64.stringify(hash);\n};\n\nexport const calcSignature = (\n payload: SignaturePayload,\n current: string = new Date().toISOString(),\n userAgent: string = navigator.userAgent\n) => {\n const authId = payload.authId || '';\n const accountId = payload.accountId || '';\n const identityId = payload.identityId || '';\n const identityToken = '';\n\n //! build payload to sign......\n const data = [current, accountId, identityId, identityToken, userAgent].join('&');\n //! make signature with auth-id\n const signature = hmac(hmac(hmac(data, authId), accountId), identityId);\n //! returns signature..........\n // return new Buffer(signature).toString('base64');\n return signature;\n};\n\nexport const convertCamelCaseFromSnake = (key: string) => {\n return key\n .toLowerCase()\n .split('_')\n .map((part, i) => (i > 0 ? part.charAt(0).toUpperCase() + part.slice(1) : part))\n .join('');\n};\n\nexport const convertSnakeCaseFromCamel = (key: string) => {\n return key.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);\n};\n\nexport const getStorageKey = (prefix: string, key: string) => {\n return `${prefix}.${key}`;\n};\n\nexport const getStorageValue = async (storage: any, prefix: string, key: string): Promise<string | null> => {\n const snakeKey = `${prefix}.${key}`;\n const camelKey = `${prefix}.${convertCamelCaseFromSnake(key)}`;\n\n // Try snake_case first (backward compatibility)\n const snakeValue = await storage.getItem(snakeKey);\n if (snakeValue) {\n return snakeValue;\n }\n\n // Try camelCase as fallback for backward compatibility\n const camelValue = await storage.getItem(camelKey);\n return camelValue;\n};\n\n// NOTE: for native login test\nexport const calcTestSignature = (\n payload: SignaturePayload,\n current: string = new Date().toISOString(),\n userAgent: string = navigator.userAgent\n) => {\n const authId = payload.authId || '';\n const accountId = payload.accountId || '';\n const identityId = payload.identityId || '';\n const identityToken = payload.identityToken || '';\n\n //! build payload to sign......\n const data = [current, accountId, identityId, identityToken, userAgent].join('&');\n //! make signature with auth-id\n const signature = hmac(hmac(hmac(data, authId), accountId), identityId);\n //! returns signature..........\n // return new Buffer(signature).toString('base64');\n return signature;\n};\n","import { format } from 'util';\nimport { LogType } from './logger.service';\n\nexport const NODE_COLORS = {\n Black: 0,\n Red: 1,\n Green: 2,\n Yellow: 3,\n Blue: 4,\n Magenta: 5,\n Cyan: 6,\n Grey: 7,\n White: 9,\n};\n\nexport const BROWSER_COLORS = {\n Black: 'Black',\n Red: 'IndianRed',\n Green: 'LimeGreen',\n Yellow: 'Orange',\n Blue: 'RoyalBlue',\n Magenta: 'Orchid',\n Cyan: 'SkyBlue',\n Grey: 'DimGrey',\n White: 'White',\n};\n\nexport class LoggerHelperService {\n private colorSet: any;\n private logColors: any;\n\n constructor() {\n this.colorSet = this.getColorSet();\n this.logColors = {\n DEBUG: this.colorSet.Blue,\n INFO: this.colorSet.Green,\n WARN: this.colorSet.Yellow,\n ERROR: this.colorSet.Red,\n DEFAULT: this.colorSet.Black,\n };\n }\n\n public formatMessage(message: string, params: any[]) {\n const extraParams = this.checkErrorInstance(params);\n return format(message, ...extraParams);\n }\n\n public getColorAsType(type: LogType): string {\n return this.logColors[type];\n }\n\n public getColorByName(name: string = 'Grey') {\n return this.colorSet[name];\n }\n\n public isBrowser() {\n return typeof window !== 'undefined' && typeof window.document !== 'undefined';\n }\n\n public isNode() {\n return typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n }\n\n private checkErrorInstance(params: any[]) {\n if (this.isNode()) {\n return params;\n }\n // isBrowser\n // browser에서 error message만 출력하는 이슈 해결 위해\n return params.map(param => {\n if (param instanceof Error) {\n return { error: param.message, stack: param.stack };\n } else {\n return param;\n }\n });\n }\n\n private getColorSet() {\n return this.isBrowser() ? BROWSER_COLORS : NODE_COLORS;\n }\n}\n","// refer: https://github.com/lemoncloud-io/lemon-logger-lib\n// TODO: use @lemoncloud/lemon-logger-lib\nimport { LoggerHelperService } from './logger-helper.service';\nimport { LoggerOption } from '../types';\n\nexport enum LogType {\n DEBUG = 'DEBUG',\n WARN = 'WARN',\n INFO = 'INFO',\n ERROR = 'ERROR',\n}\n\nexport interface LogInterface {\n debug(message: string, ...extraParams: any[]): void;\n warn(message: string, ...extraParams: any[]): void;\n info(message: string, ...extraParams: any[]): void;\n error(message: string, ...extraParams: any[]): void;\n}\n\nexport interface FormatInterface {\n timestampFormat: string;\n typeFormat: string;\n textFormat: string;\n namespaceFormat: string;\n}\n\nexport class LoggerService implements LogInterface {\n private utils: LoggerHelperService;\n\n private isNode: boolean;\n private isBrowser: boolean;\n\n private namespace: string;\n private options: LoggerOption = {\n showTimestamp: true,\n showLogType: true,\n };\n\n constructor(namespace: string = 'LEMON', options: LoggerOption = {}) {\n this.utils = new LoggerHelperService();\n this.namespace = namespace;\n this.options = { ...this.options, ...options };\n\n this.isNode = this.utils.isNode();\n this.isBrowser = this.utils.isBrowser();\n }\n\n log(message: string, ...extraParams: any[]) {\n const formattedMessage = this.utils.formatMessage(message, extraParams);\n this.writeLog(LogType.DEBUG, formattedMessage);\n return;\n }\n\n debug(message: string, ...extraParams: any[]) {\n const formattedMessage = this.utils.formatMessage(message, extraParams);\n this.writeLog(LogType.DEBUG, formattedMessage);\n }\n\n warn(message: string, ...extraParams: any[]) {\n const formattedMessage = this.utils.formatMessage(message, extraParams);\n this.writeLog(LogType.WARN, formattedMessage);\n }\n\n info(message: string, ...extraParams: any[]) {\n const formattedMessage = this.utils.formatMessage(message, extraParams);\n this.writeLog(LogType.INFO, formattedMessage);\n }\n\n error(message: string, ...extraParams: any[]) {\n const formattedMessage = this.utils.formatMessage(message, extraParams);\n this.writeLog(LogType.ERROR, formattedMessage);\n }\n\n private writeLog(type: LogType, message: string) {\n const format: FormatInterface = this.getFormat(type);\n const formattedText = this.createLogMessage(type, message, format);\n if (this.isNode) {\n console.log(formattedText);\n return;\n }\n\n // isBrowser\n this.logOnBrowser(type, formattedText, format);\n return;\n }\n\n private createLogMessage(type: LogType, text: string, format: FormatInterface, shouldFormat: boolean = true) {\n const typeBlank = type === LogType.INFO || type === LogType.WARN ? ' ' : '';\n const { showTimestamp, showLogType } = this.options;\n let { timestampFormat, typeFormat, textFormat, namespaceFormat } = format;\n\n if (this.isBrowser && shouldFormat) {\n timestampFormat = '%c';\n typeFormat = '%c';\n namespaceFormat = '%c';\n textFormat = ': %c';\n }\n\n const timestampLog = showTimestamp ? `${timestampFormat}${this.createTimestamp(new Date())} ` : `${timestampFormat}`; // format 정해줘야 browser에서 포맷 안깨짐\n const typeLog = showLogType ? `${typeFormat}[${type}]${typeBlank} ` : `${typeFormat}`;\n const namespaceLog = `${namespaceFormat}${this.namespace}`;\n const textLog = `${textFormat}${text}`;\n return `${timestampLog}${typeLog}${namespaceLog}${textLog}`;\n }\n\n private logOnBrowser(type: LogType, message: string, format: FormatInterface) {\n const { timestampFormat, typeFormat, namespaceFormat, textFormat } = format;\n if (type === LogType.ERROR) {\n console.error(message, timestampFormat, typeFormat, namespaceFormat, textFormat);\n } else {\n console.log(message, timestampFormat, typeFormat, namespaceFormat, textFormat);\n }\n }\n\n private getFormat(type: LogType): FormatInterface {\n if (this.isNode) {\n return this.getNodeFormat(type);\n }\n // isBrowser\n return this.getBrowserFormat(type);\n }\n\n private getNodeFormat(type: LogType): FormatInterface {\n const whiteColor = this.utils.getColorByName('White');\n const typeColor = this.utils.getColorAsType(type);\n const greyColor = this.utils.getColorByName('Grey');\n\n const timestampFormat = '\\u001b[3' + greyColor + 'm';\n const typeFormat = '\\u001b[3' + typeColor + ';22m';\n const namespaceFormat = '\\u001b[3' + whiteColor + ';1m';\n const textFormat = '\\u001b[0m: ';\n\n return { timestampFormat, typeFormat, textFormat, namespaceFormat };\n }\n\n private getBrowserFormat(type: LogType): FormatInterface {\n const blackColor = this.utils.getColorByName('Black');\n const typeColor = this.utils.getColorAsType(type);\n const greyColor = this.utils.getColorByName('Grey');\n\n const timestampFormat = 'color:' + greyColor;\n const typeFormat = 'color:' + typeColor;\n const namespaceFormat = 'color:' + blackColor + '; font-weight: bold';\n const textFormat = ': ';\n\n return { timestampFormat, typeFormat, textFormat, namespaceFormat };\n }\n\n //! timestamp like 2016-12-08 13:30:44 @lemon-engine\n private createTimestamp(date: Date) {\n const zeroOrNull = (text: number) => (text < 10 ? '0' : '');\n const dt = date || new Date();\n const [year, month, day, hours, minutes, seconds] = [\n dt.getFullYear(),\n dt.getMonth() + 1,\n dt.getDate(),\n dt.getHours(),\n dt.getMinutes(),\n dt.getSeconds(),\n ];\n\n const dateText = `${zeroOrNull(year)}${year}-${zeroOrNull(month)}${month}-${zeroOrNull(day)}${day}`; // yyyy-mm-dd\n const hoursText = `${zeroOrNull(hours)}${hours}:${zeroOrNull(minutes)}${minutes}:${zeroOrNull(seconds)}${seconds}`; //hh:mm:ss\n return `${dateText} ${hoursText}`;\n }\n}\n","import { CloudProvider, Storage, WebCoreConfig } from '../types';\nimport { LocalStorageService } from '../utils';\nimport { jwtDecode, JwtPayload } from 'jwt-decode';\n\nexport const USE_X_LEMON_IDENTITY_KEY = 'use_x_lemon_identity_key';\nexport const USE_X_LEMON_LANGUAGE_KEY = 'use_x_lemon_language_key';\nexport const REGION_KEY = 'region';\n\n/**\n * Abstract class representing a token storage service.\n * Provides methods to set and get items in storage, and abstract methods\n * to check and manage cached tokens.\n */\nexport abstract class TokenStorageService {\n protected prefix: string = 'lemon';\n protected storage: Storage = new LocalStorageService();\n\n /**\n * Constructs a TokenStorageService instance.\n * @param {WebCoreConfig<CloudProvider>} config - The configuration for the web core.\n */\n constructor(protected readonly config: WebCoreConfig<CloudProvider>) {\n this.prefix = `@${config.project}`;\n this.storage = this.config.storage || new LocalStorageService();\n }\n\n /**\n * Updates the prefix used in storage keys.\n * @param {string} prefix - The new prefix to use.\n */\n updatePrefix(prefix: string) {\n this.prefix = `@${prefix}`;\n }\n\n /**\n * Sets an item in the storage.\n * @param {string} key - The key to set.\n * @param {string} value - The value to set.\n * @returns {Promise<void>} - A promise that resolves when the item is set.\n */\n async setItem(key: string, value: string): Promise<void> {\n return await this.storage.setItem(`${this.prefix}.${key}`, value);\n }\n\n /**\n * Gets an item from the storage.\n * @param {string} key - The key to get.\n * @returns {Promise<string>} - A promise that resolves to the value of the item.\n */\n async getItem(key: string): Promise<string> {\n return await this.storage.getItem(`${this.prefix}.${key}`);\n }\n\n /**\n * Gets all items from the storage.\n * @returns {Promise<{ [key: string]: string }>} - A promise that resolves to an object containing all items.\n */\n abstract getAllItems(): Promise<{ [key: string]: string }>;\n\n /**\n * Checks if there is a cached token in the storage.\n * @returns {Promise<boolean>} - A promise that resolves to true if a cached token exists, false otherwise.\n */\n abstract hasCachedToken(): Promise<boolean>;\n\n /**\n * Checks if the cached token should be refreshed.\n * Abstract method that must be implemented by subclasses to define refresh logic.\n * @returns {Promise<boolean>} Promise that resolves to true if the token should be refreshed, false otherwise\n */\n abstract shouldRefreshToken(): Promise<boolean>;\n\n /**\n * Calculates the token expiration timestamp with built-in safety buffer.\n * Uses a priority-based approach: server expiration first, then JWT expiration, finally fallback duration.\n * Automatically applies a 5-minute safety buffer to prevent token expiry during reques