{"version":3,"file":"thinglogix-ngx-foundry-core.mjs","sources":["../../../../projects/@thinglogix/ngx-foundry-core/src/storage.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/api-client/sigV4Client.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/foundry-api.module.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/cache.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/broadcast-channel.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/browser-id.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/auth.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/api-client/api-gateway.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-account/fndy-account.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-certificates/certificates.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-export-config/fndy-export-config.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-iam-credentials/fndy-iam-credentials.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-oauth/fndy-oauth.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-object-search/object-search.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-object/fndy-object.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-page/fndy-page-menu.model.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-page/fndy-page.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-quicksight/fndy-quicksight.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-s3/s3.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-saved-search/fndy-saved-search.model.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-saved-search/fndy-saved-search.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-sfdc/fndy-sfdc.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-user/fndy-secret/fndy-user-secret.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/foundry-api/fndy-user/fndy-user.service.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/index.ts","../../../../projects/@thinglogix/ngx-foundry-core/src/thinglogix-ngx-foundry-core.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FNDY_STORAGE_SERVICE = new InjectionToken<StorageService>('FNDY_STORAGE_SERVICE');\n\nexport interface StorageService {\n    /**\n     * Checks if the value is present in storage\n     * @param key The key of the stored value\n     * @returns {Promise} True if exists, false if not\n     */\n    check(key: string): Promise<boolean>;\n\n    /**\n     * Gets a key / value pair from storage\n     * @param key Key to get\n     * @returns resolves with the result\n     */\n    get(key: string): Promise<any>;\n\n    /**\n     * Gets a key / value pair from storage\n     * @param key Key to get\n     * @returns resolves with the result\n     */\n    getAll(): Promise<any>;\n\n    /**\n     * Stores a new / existing key / value pair in storage\n     * @param key Key for value to store\n     * @param value The value\n     * @returns Resolves when complete\n     */\n    set(key: string, value: any, opts?: any): Promise<any>;\n\n    /**\n     * Removes a key / value pair from storage\n     * @param key The key to remove\n     * @returns Resolves when done removing\n     */\n    remove(key: string, opts?: any): Promise<any>;\n\n    /**\n     * Clears the entirety of the storage\n     * @returns resolves when finishes clearing\n     */\n    clear(): Promise<any>;\n}\n","import { Injectable } from '@angular/core';\nimport axios from 'axios';\nimport { enc, HmacSHA256, SHA256 } from 'crypto-js';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class SigV4Client {\n    sigV4Client = {};\n\n    awsSigV4Client = {};\n\n    AWS_SHA_256 = 'AWS4-HMAC-SHA256';\n\n    AWS4_REQUEST = 'aws4_request';\n\n    AWS4 = 'AWS4';\n\n    X_AMZ_DATE = 'x-amz-date';\n\n    X_AMZ_SECURITY_TOKEN = 'x-amz-security-token';\n\n    HOST = 'host';\n\n    AUTHORIZATION = 'Authorization';\n\n    \n\n    newClient(config: any): any {\n        if (config.accessKey === undefined || config.secretKey === undefined) {\n            return this.awsSigV4Client;\n        }\n        this.awsSigV4Client['accessKey'] = config.accessKey;\n        this.awsSigV4Client['secretKey'] = config.secretKey;\n        this.awsSigV4Client['sessionToken'] = config.sessionToken;\n        this.awsSigV4Client['serviceName'] = config.serviceName || 'execute-api';\n        this.awsSigV4Client['region'] = config.region || 'us-east-1';\n        this.awsSigV4Client['defaultAcceptType'] = config.defaultAcceptType || 'application/json';\n        this.awsSigV4Client['defaultContentType'] = config.defaultContentType || 'application/json';\n\n        const invokeUrl = config.endpoint;\n        const endpoint = /(^https?:\\/\\/[^/]+)/g.exec(invokeUrl)[1];\n        const pathComponent = invokeUrl.substring(endpoint.length);\n\n        this.awsSigV4Client['endpoint'] = endpoint;\n        this.awsSigV4Client['pathComponent'] = pathComponent;\n\n        this.awsSigV4Client['Get'] = (path: string, query: any, header: any): any => {\n            if (header === undefined) {\n                header = {};\n            }\n            if (query === undefined) {\n                query = {};\n            }\n            const getRequest = {\n                method: 'get'.toUpperCase(),\n                path,\n                headers: header,\n                queryParams: query,\n                body: {},\n            };\n\n            return axios(this.signRequest(getRequest));\n        };\n\n        this.awsSigV4Client['Delete'] = (path: any, query: any, body: any, header: any): any => {\n            if (body === undefined) {\n                body = { action: 'delete' };\n            }\n            if (query === undefined) {\n                query = {};\n            }\n            if (header === undefined) {\n                header = {};\n            }\n\n            const deleteRequest = {\n                method: 'delete'.toUpperCase(),\n                path,\n                headers: header,\n                queryParams: query,\n                body,\n            };\n\n            return axios(this.signRequest(deleteRequest));\n        };\n\n        this.awsSigV4Client['Put'] = (path: any, query: any, body: any, header: any): any => {\n            if (body === undefined) {\n                body = {};\n            }\n            if (query === undefined) {\n                query = {};\n            }\n            if (header === undefined) {\n                header = {};\n            }\n\n            const putRequest = {\n                method: 'put'.toUpperCase(),\n                path,\n                headers: header,\n                queryParams: query,\n                body,\n            };\n\n            return axios(this.signRequest(putRequest));\n        };\n\n        this.awsSigV4Client['Post'] = (path: any, query: any, body: any, header: any): any => {\n            if (body === undefined) {\n                body = {};\n            }\n            if (query === undefined) {\n                query = {};\n            }\n            if (header === undefined) {\n                header = {};\n            }\n\n            const postRequest = {\n                method: 'post'.toUpperCase(),\n                path,\n                headers: header,\n                queryParams: query,\n                body,\n            };\n\n            return axios(this.signRequest(postRequest));\n        };\n        return this.awsSigV4Client;\n    }\n\n    hash(value: any): any {\n        return SHA256(value); // eslint-disable-line\n    }\n\n    hexEncode(value: any): any {\n        return value.toString(enc.Hex);\n    }\n\n    hmac(secret: any, value: any): any {\n        return HmacSHA256(value, secret, { asBytes: true }); // eslint-disable-line\n    }\n\n    buildCanonicalRequest(method: any, path: any, queryParams: any, headers: any, payload: any): string {\n        return `${method}\\n${this.buildCanonicalUri(path)}\\n${this.buildCanonicalQueryString(\n            queryParams\n        )}\\n${this.buildCanonicalHeaders(headers)}\\n${this.buildCanonicalSignedHeaders(headers)}\\n${this.hexEncode(\n            this.hash(payload)\n        )}`;\n    }\n\n    hashCanonicalRequest(request: any): any {\n        return this.hexEncode(this.hash(request));\n    }\n\n    buildCanonicalUri(uri: string): string {\n        return encodeURI(uri);\n    }\n\n    buildCanonicalQueryString(queryParams: any): string {\n        if (Object.keys(queryParams).length < 1) {\n            return '';\n        }\n\n        const sortedQueryParams = [];\n        for (const property in queryParams) {\n            if (queryParams.hasOwnProperty(property)) {\n                sortedQueryParams.push(property);\n            }\n        }\n        sortedQueryParams.sort();\n\n        let canonicalQueryString = '';\n        // eslint-disable-next-line @typescript-eslint/prefer-for-of\n        for (let i = 0; i < sortedQueryParams.length; i++) {\n            canonicalQueryString += `${sortedQueryParams[i]}=${encodeURIComponent(queryParams[sortedQueryParams[i]])}&`;\n        }\n        return canonicalQueryString.substr(0, canonicalQueryString.length - 1);\n    }\n\n    buildCanonicalHeaders(headers: any): string {\n        let canonicalHeaders = '';\n        const sortedKeys = [];\n        for (const property in headers) {\n            if (headers.hasOwnProperty(property)) {\n                sortedKeys.push(property);\n            }\n        }\n        sortedKeys.sort();\n\n        // eslint-disable-next-line @typescript-eslint/prefer-for-of\n        for (let i = 0; i < sortedKeys.length; i++) {\n            canonicalHeaders += `${sortedKeys[i].toLowerCase()}:${headers[sortedKeys[i]]}\\n`;\n        }\n        return canonicalHeaders;\n    }\n\n    buildCanonicalSignedHeaders(headers: any): string {\n        const sortedKeys = [];\n        for (const property in headers) {\n            if (headers.hasOwnProperty(property)) {\n                sortedKeys.push(property.toLowerCase());\n            }\n        }\n        sortedKeys.sort();\n\n        return sortedKeys.join(';');\n    }\n\n    buildStringToSign(datetime: any, credentialScope: any, hashedCanonicalRequest: any): string {\n        return `${this.AWS_SHA_256}\\n${datetime}\\n${credentialScope}\\n${hashedCanonicalRequest}`;\n    }\n\n    buildCredentialScope(datetime: string, region: string, service: string): string {\n        return (\n            // eslint-disable-next-line no-magic-numbers\n            `${datetime.substr(0, 8)}/${region}/${service}/${this.AWS4_REQUEST}`\n        );\n    }\n\n    calculateSigningKey(secretKey: string, datetime: string, region: string, service: string): string {\n        return this.hmac(\n            this.hmac(\n                this.hmac(\n                    // eslint-disable-next-line no-magic-numbers\n                    this.hmac(this.AWS4 + secretKey, datetime.substr(0, 8)),\n                    region\n                ),\n                service\n            ),\n            this.AWS4_REQUEST\n        );\n    }\n\n    calculateSignature(key: string, stringToSign: string): string {\n        return this.hexEncode(this.hmac(key, stringToSign));\n    }\n\n    extractHostname(url: string): string {\n        let hostname;\n\n        if (url.indexOf('://') > -1) {\n            // eslint-disable-next-line no-magic-numbers\n            hostname = url.split('/')[2];\n        } else {\n            hostname = url.split('/')[0];\n        }\n\n        hostname = hostname.split(':')[0];\n        hostname = hostname.split('?')[0];\n\n        return hostname;\n    }\n\n    buildAuthorizationHeader(accessKey: string, credentialScope: string, headers: any, signature: string): string {\n        return `${\n            this.AWS_SHA_256\n        } Credential=${accessKey}/${credentialScope}, SignedHeaders=${this.buildCanonicalSignedHeaders(\n            headers\n        )}, Signature=${signature}`;\n    }\n\n    signRequest(\n        request: any\n    ): {\n        method: string;\n        headers: any;\n        url: string;\n        data: any;\n    } {\n        const verb = request.method.toUpperCase();\n        const path = this.awsSigV4Client['pathComponent'] + request.path;\n        const queryParams = { ...request.queryParams };\n        const headers = { ...request.headers };\n\n        // If the user has not specified an override for Content type the use default\n        if (headers['Content-Type'] === undefined) {\n            headers['Content-Type'] = this.awsSigV4Client['defaultContentType'];\n        }\n\n        // If the user has not specified an override for Accept type the use default\n        if (headers['Accept'] === undefined) {\n            headers['Accept'] = this.awsSigV4Client['defaultAcceptType'];\n        }\n\n        let body = { ...request.body };\n        // override request body and set to empty when signing GET requests\n        if (request.body === undefined || verb === 'GET') {\n            body = '';\n        } else {\n            body = JSON.stringify(body);\n        }\n\n        // If there is no body remove the content-type header so it is not\n        // included in SigV4 calculation\n        if (body === '' || body === undefined || body === null) {\n            delete headers['Content-Type'];\n        }\n\n        const datetime = new Date()\n            .toISOString()\n            .replace(/\\.\\d{3}Z$/, 'Z')\n            .replace(/[:-]|\\.\\d{3}/g, '');\n        headers[this.X_AMZ_DATE] = datetime;\n        headers[this.HOST] = this.extractHostname(this.awsSigV4Client['endpoint']);\n\n        const canonicalRequest = this.buildCanonicalRequest(verb, path, queryParams, headers, body);\n        const hashedCanonicalRequest = this.hashCanonicalRequest(canonicalRequest);\n        const credentialScope = this.buildCredentialScope(\n            datetime,\n            this.awsSigV4Client['region'],\n            this.awsSigV4Client['serviceName']\n        );\n        const stringToSign = this.buildStringToSign(datetime, credentialScope, hashedCanonicalRequest);\n        const signingKey = this.calculateSigningKey(\n            this.awsSigV4Client['secretKey'],\n            datetime,\n            this.awsSigV4Client['region'],\n            this.awsSigV4Client['serviceName']\n        );\n        const signature = this.calculateSignature(signingKey, stringToSign);\n        headers[this.AUTHORIZATION] = this.buildAuthorizationHeader(\n            this.awsSigV4Client['accessKey'],\n            credentialScope,\n            headers,\n            signature\n        );\n        if (this.awsSigV4Client['sessionToken'] !== undefined && this.awsSigV4Client['sessionToken'] !== '') {\n            headers[this.X_AMZ_SECURITY_TOKEN] = this.awsSigV4Client['sessionToken'];\n        }\n        delete headers[this.HOST];\n\n        let url = this.awsSigV4Client['endpoint'] + path;\n        const queryString = this.buildCanonicalQueryString(queryParams);\n        if (queryString !== '') {\n            url += `?${queryString}`;\n        }\n\n        // Need to re-attach Content-Type if it is not specified at this point\n        if (headers['Content-Type'] === undefined) {\n            headers['Content-Type'] = this.awsSigV4Client['defaultContentType'];\n        }\n\n        return {\n            method: verb,\n            headers,\n            url,\n            data: body,\n        };\n    }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { IFoundryApiConfigModel } from './foundry-api-config.model';\n\nexport const FOUNDRY_API_CONFIG = new InjectionToken('FOUNDRY_API_CONFIG');\n\n@NgModule()\nexport class FoundryApiModule {\n    static forRoot(foundryApiConfig: IFoundryApiConfigModel): ModuleWithProviders<FoundryApiModule> {\n        return {\n            ngModule: FoundryApiModule,\n            providers: [\n                {\n                    provide: FOUNDRY_API_CONFIG,\n                    useValue: foundryApiConfig,\n                },\n            ],\n        };\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { shareReplay, tap } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class CacheService {\n    cache = new Map<string, Observable<any>>();\n\n    getValue(key: string, fallback$: Observable<any>, putInWebStorage = false): Observable<any> {\n        const prefixedKey = `fndy-cache-${key}`;\n        if (!this.cache.has(prefixedKey)) {\n            let cachedFallback$;\n\n            const valueStr = localStorage.getItem(prefixedKey);\n            if (putInWebStorage && valueStr) {\n                cachedFallback$ = of(JSON.parse(valueStr));\n            } else {\n                cachedFallback$ = fallback$.pipe(\n                    shareReplay(1),\n                    tap((value) => {\n                        if (putInWebStorage) {\n                            try {\n                                localStorage.setItem(prefixedKey, JSON.stringify(value));\n                            } catch {\n                                console.error('Unable to put in local storage');\n                            }\n                        }\n                    })\n                );\n            }\n            this.cache.set(prefixedKey, cachedFallback$);\n        }\n        return this.cache.get(prefixedKey);\n    }\n\n    invalidate(key: string): void {\n        const prefixedKey = key.startsWith('fndy-cache') ? key : `fndy-cache-${key}`;\n\n        this.cache.delete(prefixedKey);\n        localStorage.removeItem(prefixedKey);\n    }\n\n    invalidateRange(keyPrefix: string): void {\n        const prefixedKey = keyPrefix.startsWith('fndy-cache') ? keyPrefix : `fndy-cache-${keyPrefix}`;\n\n        this.cache.forEach((_, key) => {\n            if (key.startsWith(prefixedKey)) {\n                this.invalidate(key);\n            }\n        });\n    }\n\n    clear(): void {\n        this.invalidateRange('fndy-cache');\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { BroadcastChannel } from 'broadcast-channel';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class BroadcastChannelService {\n    private channels = new Map<string, any>();\n\n    createChannel(name: string): any {\n        return new BroadcastChannel(name);\n    }\n\n    subscribe(channelName: string): Observable<any> {\n        const channel = this.createOrGetChannel(channelName);\n\n        return Observable.create((observer: any) => {\n            channel.addEventListener('message', (message: any) => {\n                observer.next(message);\n            });\n        });\n    }\n\n    unsubscribe(channelName: string): void {\n        if (this.channels.has(channelName)) {\n            const channel = this.channels.get(channelName);\n            channel.removeEventListener(channelName, () => {\n                channel.close();\n                this.channels.delete(channelName);\n            });\n        }\n    }\n\n    postMessage(channelName: any, message: any): void {\n        const channel = this.createOrGetChannel(channelName);\n        channel.postMessage(message);\n    }\n\n    private createOrGetChannel(channelName: string): any {\n        if (this.channels.has(channelName)) {\n            return this.channels.get(channelName);\n        }\n        const channel = this.createChannel(channelName);\n        this.channels.set(channelName, channel);\n        return channel;\n    }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { addDays } from 'date-fns';\nimport { v1 } from 'uuid';\nimport { FNDY_STORAGE_SERVICE, StorageService } from './storage.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BrowserIdService {\n    browserId: string;\n\n    constructor(@Inject(FNDY_STORAGE_SERVICE) private storageService: StorageService) {}\n\n    async setBrowserId(expiration_days: number): Promise<void> {\n        this.browserId = v1();\n        const expireDate = addDays(new Date(), expiration_days).valueOf();\n        await this.storageService.set('mfaExpireDays', String(expiration_days), {\n            expires: expireDate,\n            path: '/',\n            domain: undefined,\n            secure: false,\n            sameSite: 'Lax',\n        });\n        await this.storageService.set('browserId', this.browserId, {\n            expires: expireDate,\n            path: '/',\n            domain: undefined,\n            secure: false,\n            sameSite: 'Lax',\n        });\n    }\n\n    async getBrowserId(expiration_days: number): Promise<string> {\n        if (await this.storageService.check('browserId')) {\n            this.browserId = await this.storageService.get('browserId');\n            const mfaExpireDays = Number.parseInt(await this.storageService.get('mfaExpireDays'), 10);\n            if (mfaExpireDays !== expiration_days || expiration_days === 0) {\n                this.setBrowserId(expiration_days);\n            }\n        } else {\n            this.setBrowserId(expiration_days);\n        }\n        return this.browserId;\n    }\n\n    async deleteCookies(): Promise<void> {\n        await this.storageService.remove('browserId');\n        await this.storageService.remove('mfaExpireDays');\n    }\n\n    getBrowserName(): string {\n        const magicTwo = 2;\n\n        const ua = navigator.userAgent;\n        let tem;\n        let M: string[] = /(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/.exec(ua) || [];\n\n        if (/trident/i.test(M[1])) {\n            tem = /\\brv[ :]+(\\d+)/g.exec(ua) || [];\n            return `IE ${tem[1] || ''}`;\n        }\n        if (M[1] === 'Chrome') {\n            tem = /\\bOPR\\/(\\d+)/.exec(ua);\n            if (tem != null) {\n                return `Opera ${tem[1]}`;\n            }\n        }\n        M = M[magicTwo] ? [M[1], M[magicTwo]] : [navigator.appName, navigator.appVersion, '-?'];\n        tem = /version\\/(\\d+)/.exec(ua);\n        if (tem !== null) {\n            M.splice(1, 1, tem[1]);\n        }\n        return `${M[0]} ${M[1]}`;\n    }\n\n    getOSName(): string {\n        let OSName = 'Unknown OS';\n        if (navigator.appVersion.indexOf('Win') !== -1) {\n            OSName = 'Windows';\n        }\n        if (navigator.appVersion.indexOf('Mac') !== -1) {\n            OSName = 'MacOS';\n        }\n        if (navigator.appVersion.indexOf('X11') !== -1) {\n            OSName = 'UNIX';\n        }\n        if (navigator.appVersion.indexOf('Linux') !== -1) {\n            OSName = 'Linux';\n        }\n        return OSName;\n    }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport * as FoundryAuth from '@thinglogix/foundry-auth';\nimport AsyncLock from 'async-lock';\nimport { CognitoIdentityCredentials, config } from 'aws-sdk/global';\nimport { addYears } from 'date-fns';\nimport { BehaviorSubject, from, Observable, Observer, of, throwError } from 'rxjs';\nimport { filter, first, map, mergeMap, tap } from 'rxjs/operators';\nimport { BroadcastChannelService } from './broadcast-channel.service';\nimport { BrowserIdService } from './browser-id.service';\nimport { CacheService } from './cache.service';\nimport { IFndyAccountPreferencesModel } from './foundry-api/fndy-account/fndy-account-preferences.model';\nimport { IFndyUser } from './foundry-api/fndy-user/fndy-user.model';\nimport { IFoundryApiConfigModel } from './foundry-api/foundry-api-config.model';\nimport { FOUNDRY_API_CONFIG } from './foundry-api/foundry-api.module';\nimport { ISignupParamsModel } from './signup-params.model';\nimport { FNDY_STORAGE_SERVICE, StorageService } from './storage.service';\n\nconst cognitoAuth = new FoundryAuth.CognitoAuth();\n\ninterface ICognitoDataModel {\n    owner_id: string;\n    api_gateway_endpoint: string;\n    cognito_identity_pool_id: string;\n    cognito_developer_provider_name: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AuthService {\n    get user(): IFndyUser {\n        return this._user ? this._user : JSON.parse(localStorage.getItem('user'));\n    }\n\n    set user(user: IFndyUser) {\n        this._user = user;\n        if (user) {\n            if (user.password) {\n                delete user.password;\n            }\n            const userToSave = JSON.stringify(user);\n            localStorage.setItem(`${user.id}_user`, userToSave);\n            localStorage.setItem('user', userToSave);\n        }\n    }\n\n    passwordPolicies = [\n        {\n            name: 'Any characters',\n            regex: '.',\n            pattern: /./,\n        },\n        {\n            name: 'One capital letter and one number',\n            regex: '(?=.*\\\\d)(?=.*[A-Z])',\n            pattern: /(?=.*\\d)(?=.*[A-Z])/,\n        },\n        {\n            name: 'One capital letter and one special character',\n            regex: '(?=.*[$@$!%*?&])(?=.*[A-Z])',\n            pattern: /(?=.*[$@$!%*?&])(?=.*[A-Z])/,\n        },\n        {\n            name: 'One capital letter, one number and one special character',\n            regex: '(?=.*[$@$!%*?&])(?=.*[A-Z])(?=.*\\\\d)',\n            pattern: /(?=.*[$@$!%*?&])(?=.*[A-Z])(?=.*\\d)/,\n        },\n        {\n            name: 'Minimum 8 characters at least one capital letter and one number',\n            regex: '((?=.*[A-Z])(?=.*\\\\d)).{8,}',\n            pattern: /((?=.*[A-Z])(?=.*\\d)).{8,}/,\n        },\n        {\n            name: 'Minimum 8 characters at least one capital letter and one special character',\n            regex: '(?=.*[$@$!%*?&])(?=.*[A-Z]).{8,}',\n            pattern: /(?=.*[$@$!%*?&])(?=.*[A-Z]).{8,}/,\n        },\n        {\n            name: 'Minimum 8 characters at least one capital letter, one number and one special character',\n            regex: '(?=.*[$@$!%*?&])(?=.*[A-Z])(?=.*\\\\d).{8,}',\n            pattern: /(?=.*[$@$!%*?&])(?=.*[A-Z])(?=.*\\d).{8,}/,\n        },\n    ];\n\n    authStateChange$ = new BehaviorSubject<{ state: string; user: IFndyUser }>({\n        state: null,\n        user: null,\n    });\n\n    private _awsConfigRefreshed$ = new BehaviorSubject(null);\n\n    awsConfigRefreshed$ = this._awsConfigRefreshed$.asObservable().pipe(filter((awsConfig) => awsConfig !== null));\n\n    private tmpUser: IFndyUser;\n\n    private _user: IFndyUser;\n\n    private _storedUsers$ = new BehaviorSubject<IFndyUser[]>([]);\n\n    private lock = new AsyncLock();\n\n    storedUsers$ = this._storedUsers$.asObservable();\n\n    constructor(\n        private httpClient: HttpClient,\n        private cacheService: CacheService,\n        private broadcastService: BroadcastChannelService,\n        @Inject(FOUNDRY_API_CONFIG)\n        private foundryApiConfig: IFoundryApiConfigModel,\n        @Inject(FNDY_STORAGE_SERVICE)\n        private storageService: StorageService,\n        private browserIdService: BrowserIdService\n    ) {\n        this.watchAuthStateChange();\n        if (this.user) {\n            this.authStateChange$.next({\n                state: 'signedIn',\n                user: this.user,\n            });\n        }\n    }\n\n    clearCognitoData(): void {\n        this.clearCookies();\n        this.cacheService.invalidateRange('cognitoData');\n    }\n\n    getCognitoData(account: string, domain?: string): Observable<ICognitoDataModel> {\n        const apiConfig = this.foundryApiConfig;\n        if (apiConfig.cognitoData) {\n            const { cognitoData } = apiConfig;\n            return of({\n                owner_id: cognitoData.foundryAccountId,\n                api_gateway_endpoint: cognitoData.foundryApiGatewayEndpoint,\n                cognito_identity_pool_id: cognitoData.foundryCognitoIdentityPoolId,\n                cognito_developer_provider_name: cognitoData.foundryCognitoDeveloperProviderName,\n            });\n        }\n\n        if (!apiConfig.rootApi) {\n            return throwError('No api config provided!');\n        }\n\n        let params;\n        if (domain) {\n            params = { domain };\n        } else {\n            params = { account };\n        }\n\n        const options = {\n            headers: new HttpHeaders({\n                'x-api-key': apiConfig.rootApi.foundryApiKey,\n            }),\n            params,\n        };\n\n        const url = `${apiConfig.rootApi.foundryApiEndpoint}/foundry/cognito-data`;\n\n        const key = `cognitoData#id#${account}`;\n\n        return this.cacheService.getValue(key, this.httpClient.get<any>(url, options));\n    }\n\n    refreshAWSConfig(): Observable<boolean> {\n        return new Observable((observer: Observer<boolean>) => {\n            void this.lock.acquire('key', async (done: any) => {\n                const { user } = this;\n                if (!user) {\n                    done();\n                    observer.next(false);\n                    observer.complete();\n                    return;\n                }\n                const cognitoConfig = {\n                    apiGatewayEndpoint: `${user.cognito.api_gateway_endpoint}/foundry`,\n                    cognitoDeveloperProviderName: user.cognito.cognito_developer_provider_name,\n                    cognitoIdentityPoolId: user.cognito.cognito_identity_pool_id,\n                };\n                const uid = await this.storageService.get(`${this.user.id}_uid`);\n                const key = await this.storageService.get(`${this.user.id}_key`);\n                cognitoAuth\n                    .refreshAWSConfig(uid, key, this.user.username, { config: cognitoConfig })\n                    .then((configData: any) => {\n                        config.region = configData.config.region;\n                        config.credentials = configData.config.credentials;\n\n                        if (configData.refreshed || !this._awsConfigRefreshed$.getValue()) {\n                            this._awsConfigRefreshed$.next(configData.config);\n                        }\n                        observer.next(true);\n                    })\n                    .catch((err: any) => {\n                        observer.error(err);\n                        observer.next(false);\n                    })\n                    .finally(() => {\n                        observer.complete();\n                        done();\n                    });\n            });\n        });\n    }\n\n    clearAWSCredentials(): void {\n        config.credentials = new CognitoIdentityCredentials({} as any);\n    }\n\n    authorize(\n        account: string,\n        username: string,\n        password: string,\n        ignoreApiUserOnly = false,\n        parentAccountId: string = undefined,\n        recaptchaToken: string = undefined\n    ): Observable<any> {\n        return this.getCognitoData(account).pipe(\n            mergeMap((cognitoData) => {\n                const cognitoConfig = {\n                    apiGatewayEndpoint: `${cognitoData.api_gateway_endpoint}/foundry`,\n                    cognitoDeveloperProviderName: cognitoData.cognito_developer_provider_name,\n                    cognitoIdentityPoolId: cognitoData.cognito_identity_pool_id,\n                };\n\n                return from(\n                    cognitoAuth.authorize(account, username, password, {\n                        config: cognitoConfig,\n                        parentAccountId,\n                        recaptchaToken,\n                    })\n                ).pipe(\n                    mergeMap(async (data: any) => {\n                        const { user, decryptKey, uid }: { user: IFndyUser; decryptKey: string; uid: string } = data;\n                        const awsConfig = data.config;\n                        config.credentials = awsConfig.credentials;\n\n                        localStorage.setItem('apiVersion', data.apiVersion);\n\n                        if (!user.active) {\n                            throw new Error('User is not active');\n                        }\n                        if (user.api_user_only && !ignoreApiUserOnly) {\n                            throw new Error('Authentication error. User can not access Foundry UI.');\n                        }\n\n                        user.cognito = cognitoData;\n                        if (!user.use_mfa) {\n                            this.user = user;\n                            this.authStateChange$.next({\n                                state: 'signedIn',\n                                user: this.user,\n                            });\n                        }\n                        const date = new Date();\n                        await this.storageService.set(`${user.id}_uid`, uid, {\n                            expires: addYears(date, 1),\n                            path: '/',\n                            domain: undefined,\n                            secure: false,\n                            sameSite: 'Lax',\n                        });\n                        await this.storageService.set(`${user.id}_key`, decryptKey, {\n                            expires: addYears(date, 1),\n                            path: '/',\n                            domain: undefined,\n                            secure: false,\n                            sameSite: 'Lax',\n                        });\n\n                        this.tmpUser = user;\n                        return user;\n                    })\n                );\n            })\n        );\n    }\n\n    getAccountMetadata(accountId: string): Observable<IFndyAccountPreferencesModel> {\n        const apiConfig = this.foundryApiConfig;\n        if (!apiConfig.rootApi) {\n            return throwError('No api config provided!');\n        }\n        const headers = {\n            headers: new HttpHeaders({\n                'x-api-key': apiConfig.rootApi.foundryApiKey,\n            }),\n        };\n\n        return this.cacheService.getValue(\n            `account-metadata#${accountId}`,\n            this.httpClient\n                .get<any>(\n                    apiConfig.rootApi.foundryApiEndpoint.concat(`/foundry/account/${accountId}/metadata`),\n                    headers\n                )\n                .pipe(\n                    map((result) => {\n                        return result;\n                    })\n                )\n        );\n    }\n\n    forgotPassword(email: string, account: string, recaptchaToken?: string): Observable<any> {\n        return this.getCognitoData(account).pipe(\n            mergeMap((cognitoData) => {\n                const params = {\n                    email,\n                    host: `${window.location.origin}/auth`,\n                    account_id: cognitoData.owner_id,\n                    root_account_id: cognitoData.owner_id,\n                    recaptchaToken,\n                };\n                return from(\n                    this.httpClient.post(cognitoData.api_gateway_endpoint.concat('/foundry/forgot-password'), params)\n                );\n            }),\n            first()\n        );\n    }\n\n    checkResetPassword(account: string, user_id: string, token: string): Observable<any> {\n        return this.getCognitoData(account).pipe(\n            mergeMap((cognitoData) => {\n                return from(\n                    this.httpClient.get(\n                        cognitoData.api_gateway_endpoint.concat(\n                            `/foundry/forgot-password?user_id=${user_id}&token=${token}`\n                        )\n                    )\n                );\n            }),\n            first()\n        );\n    }\n\n    loginWithSalesforce(code: string, url: string, account: string): Observable<any> {\n        return this.getCognitoData(account).pipe(\n            mergeMap((cognitoData) => {\n                const body = {\n                    code,\n                    redirect_uri: `${window.location.origin}/auth/salesforce`,\n                    url,\n                };\n                return from(\n                    this.httpClient.post(cognitoData.api_gateway_endpoint.concat('/foundry/login/salesforce'), body)\n                );\n            }),\n            first()\n        );\n    }\n\n    activateUser(account_id: string, user_id: string): Observable<any> {\n        return this.getCognitoData(account_id).pipe(\n            mergeMap((cognitoData) => {\n                return from(\n                    this.httpClient.put(\n                        cognitoData.api_gateway_endpoint.concat(`/foundry/user/${user_id}/activate`),\n                        {}\n                    )\n                );\n            }),\n            first()\n        );\n    }\n\n    setNewPassword(\n        account: string,\n        user_id: string,\n        token: string,\n        passwordMD5: string,\n        password_type?: number,\n        recaptchaToken?: string\n    ): Observable<any> {\n        return this.getCognitoData(account).pipe(\n            mergeMap((cognitoData) => {\n                const params = {\n                    userId: user_id,\n                    token,\n                    passwordMD5,\n                    password_type,\n                    recaptchaToken,\n                };\n                return from(\n                    this.httpClient.put(cognitoData.api_gateway_endpoint.concat('/foundry/forgot-password'), params)\n                );\n            }),\n            first()\n        );\n    }\n\n    changePassword(account: string, username: string, oldPassword: string, newPassword: string): Observable<any> {\n        return this.getCognitoData(account).pipe(\n            mergeMap((cognitoData) => {\n                const params = {\n                    username,\n                    oldPassword,\n                    newPassword,\n                };\n\n                return from(\n                    this.httpClient.post(cognitoData.api_gateway_endpoint.concat('/foundry/change-password'), params)\n                );\n            }),\n            first()\n        );\n    }\n\n    verifyBrowser(account: string, browser_id: string, user_id: string): Observable<any> {\n        return this.getCognitoData(account).pipe(\n            mergeMap((cognitoData) => {\n                const params = {\n                    user_id,\n                    browser_id,\n                    browser_name: this.browserIdService.getBrowserName(),\n                    operating_system: this.browserIdService.getOSName(),\n                };\n                return from(\n                    this.httpClient.post(cognitoData.api_gateway_endpoint.concat('/foundry/user/verify'), params)\n                );\n            }),\n            mergeMap((data: any) => {\n                if (data.success === 'Verified') {\n                    this.setUserDataForMFA();\n                    return of(null);\n                }\n                if (data.success === 'Email is sent') {\n                    this.signOutUser();\n                    return of(data);\n                }\n                return of(null);\n            }),\n            first()\n        );\n    }\n\n    verifyCode(account: string, browser_id: string, user_id: string, code: string): Observable<any> {\n        return this.getCognitoData(account).pipe(\n            mergeMap((cognitoData) => {\n                const params = {\n                    user_id,\n                    browser_id,\n                    code,\n                };\n                return from(\n                    this.httpClient.put(cognitoData.api_gateway_endpoint.concat('/foundry/user/verify'), params)\n                );\n            }),\n            tap((data: any) => {\n                if (data.success === 'Verified') {\n                    this.setUserDataForMFA();\n                }\n            }),\n            first()\n        );\n    }\n\n    signUp(account: string, params: ISignupParamsModel): Observable<any> {\n        return this.getCognitoData(account).pipe(\n            mergeMap((cognitoData) => {\n                return from(this.httpClient.post(cognitoData.api_gateway_endpoint.concat('/foundry/signup2'), params));\n            }),\n            first()\n        );\n    }\n\n    signOutUser(suppressEvent?: boolean): void {\n        if (!suppressEvent) {\n            this.broadcastService.postMessage('logout', true);\n        }\n\n        const oldUser = this.user;\n\n        this.user = null;\n        this.cacheService.clear();\n\n        this.clearCookies(oldUser);\n        this.clearLocalStorage();\n        this.authStateChange$.next({ state: 'signedOut', user: null });\n    }\n\n    switchUser(user: IFndyUser): void {\n        this.user = user;\n        this.authStateChange$.next({ state: 'switchUser', user });\n    }\n\n    clearLocalStorage(): void {\n        // easier to clear everything and set the values back\n        const storedUsers = this._storedUsers$.value;\n        localStorage.clear();\n        storedUsers.forEach((user) => {\n            localStorage.setItem(`${user.id}_user`, JSON.stringify(user));\n        });\n    }\n\n    getStoredUsers(): void {\n        const users = Object.keys(localStorage)\n            .filter((k) => k.includes('_user'))\n            .map((k) => {\n                return JSON.parse(localStorage.getItem(k));\n            })\n            .filter((user) => !this.user || user.id !== this.user.id);\n\n        this._storedUsers$.next(users);\n    }\n\n    private async clearCookies(user?: IFndyUser): Promise<void> {\n        if (user) {\n            await this.storageService.remove(`${user.id}_uid`);\n            await this.storageService.remove(`${user.id}_key`);\n        } else {\n            await this.storageService.clear();\n        }\n    }\n\n    private setUserDataForMFA(): void {\n        this.user = this.tmpUser;\n        this.authStateChange$.next({ state: 'signedIn', user: this.user });\n    }\n\n    private watchAuthStateChange(): void {\n        this.authStateChange$.subscribe(({ state }) => {\n            if (state === 'signedOut') {\n                this.clearAWSCredentials();\n            }\n        });\n    }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { config } from 'aws-sdk/global';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { AuthService } from '../auth.service';\nimport { FNDY_STORAGE_SERVICE, StorageService } from '../storage.service';\nimport { SigV4Client } from './sigV4Client.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ApiGatewayService {\n    constructor(\n        private sigV4Client: SigV4Client,\n        private authService: AuthService,\n        @Inject(FNDY_STORAGE_SERVICE) private storageService: StorageService\n    ) {}\n\n    getApiClient(endpoint = `${this.authService.user.cognito.api_gateway_endpoint}/foundry`): Observable<any> {\n        return this.authService.refreshAWSConfig().pipe(\n            map(() => {\n                const apiConfig = {\n                    accessKey: config.credentials.accessKeyId,\n                    secretKey: config.credentials.secretAccessKey,\n                    sessionToken: config.credentials.sessionToken,\n                    endpoint,\n                    region: config.region,\n                };\n                return this.sigV4Client.newClient(apiConfig);\n            }),\n            catchError(async (err) => {\n                await this.storageService.remove(`${this.authService.user.id}_key`);\n                console.error(err);\n\n                return of(err);\n            })\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { inflate } from 'pako';\nimport { from, Observable, of } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\nimport { CacheService } from '../../cache.service';\nimport { IFileModel } from '../file.model';\nimport { IFndyAccountAcl } from './fndy-account-acl.model';\nimport { IFndyAccountPreferencesModel } from './fndy-account-preferences.model';\nimport { IFndyAccount } from './fndy-account.model';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class FndyAccountService {\n    private tabMapping = {\n        attributeView: 'DeviceAttributes',\n        attributeList: 'DeviceData',\n        history: 'DeviceHistory',\n        parents: 'DeviceGroups',\n        refList: 'References',\n        postedData: 'DeviceMqttHistory',\n    };\n\n    constructor(private apiGatewayService: ApiGatewayService, private cacheService: CacheService) {}\n\n    getSubAccounts(accountId: string, oneLevel: boolean, fields: string[]): Observable<IFndyAccount[]> {\n        return this.cacheService.getValue(\n            `accounts#${accountId}#${oneLevel}#${fields.toString()}`,\n            this.apiGatewayService.getApiClient().pipe(\n                mergeMap((apiClient) => {\n                    const query = {\n                        account_id: accountId,\n                        one_level: oneLevel,\n                        fields,\n                    };\n                    return from(apiClient.Get('/accounts', query));\n                }),\n                map((result: any) => result.data),\n                // Respose {format: string, zip: string} when zipped\n                map((result: any): IFndyAccount[] =>\n                    result.format === 'gzip'\n                        ? JSON.parse(\n                              inflate(Buffer.from(result.zip, 'base64'), {\n                                  to: 'string',\n                              })\n                          )\n                        : result\n                ),\n                first()\n            )\n        );\n    }\n\n    getAccount(accountId: string): Observable<IFndyAccount> {\n        if (accountId === null) {\n            return of(null);\n        }\n        return this.cacheService.getValue(\n            `account#${accountId}`,\n            this.apiGatewayService.getApiClient().pipe(\n                mergeMap((apiClient) => {\n                    return from(apiClient.Get(`/account/${accountId}`));\n                }),\n                map((result: any) => result.data),\n                first()\n            )\n        );\n    }\n\n    getAccountForceFully(accountId: string): Observable<IFndyAccount> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Get(`/account/${accountId}`));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    getAccountAcl(accountId: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const getAccountAclQuery = {\n                    account_id: accountId,\n                };\n                return from(apiClient.Get('/account/acl', getAccountAclQuery));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    createAccountAcl(acl: IFndyAccountAcl): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = { inherit: acl.inherit };\n                delete acl.inherit;\n                const body = acl;\n                return from(apiClient.Post('/account/acl', query, body));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    updateAccountAcl(acl: IFndyAccountAcl): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = { inherit: acl.inherit };\n                delete acl.inherit;\n                const body = acl;\n                return from(apiClient.Put('/account/acl', query, body));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    deleteAccountAcl(acl_id: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = { action: 'delete' };\n                return from(apiClient.Delete(`/account/acl/${acl_id}`, {}, query));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    updateAccount(account: IFndyAccount): Observable<IFndyAccount> {\n        this.cacheService.invalidateRange('accounts');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put('/account', {}, account));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    updateAccountPicture(file: IFileModel, accountId: string): Observable<any> {\n        this.cacheService.invalidate(`account#${accountId}`);\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const payload = {\n                    data: file.data,\n                    type: file.type,\n                    account_id: accountId,\n                };\n                return from(apiClient.Post('/account/picture', {}, payload));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    createAccount(account: IFndyAccount): Observable<IFndyAccount> {\n        this.cacheService.invalidateRange('accounts');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/account', {}, account));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    deleteAccount(accountId: string): Observable<any> {\n        this.cacheService.invalidateRange('accounts');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Delete(`/account/${accountId}`));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    getAccountPreferences(accountId: string): Observable<IFndyAccountPreferencesModel> {\n        return this.cacheService.getValue(\n            `preferences#${accountId}`,\n            this.apiGatewayService.getApiClient().pipe(\n                mergeMap((apiClient) => {\n                    return from(apiClient.Get(`/account/${accountId}/preferences`));\n                }),\n                map((result: any) => {\n                    return result.data;\n                }),\n                map((settings: IFndyAccountPreferencesModel) => {\n                    settings.deviceTabs = this.mapLegacyTabsToNewTabs(settings.deviceTabs);\n                    return settings;\n                }),\n                first()\n            ),\n            true\n        );\n    }\n\n    updateAccountPreferences(\n        accountId: string,\n        settings: IFndyAccountPreferencesModel\n    ): Observable<IFndyAccountPreferencesModel> {\n        this.cacheService.invalidateRange('preferences');\n        const mergedTabs = this.mapNewTabsToLegacyTabs(settings.deviceTabs);\n        settings.deviceTabs = mergedTabs;\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put(`/account/${accountId}/preferences`, {}, settings));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    updateAccountMetadata(accountId: string, metadata: any): Observable<IFndyAccountPreferencesModel> {\n        this.cacheService.invalidateRange('account-metadata');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put(`/account/${accountId}/metadata`, {}, metadata));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    checkAccountEmpty(accountId: string): Observable<{ account_is_empty: boolean }> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    account_id: accountId,\n                };\n\n                return from(apiClient.Get('/account-is-empty', query));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    private mapLegacyTabsToNewTabs(objectTabs: any): any {\n        const mappedTabs: any = { ...objectTabs };\n        for (const newTab of Object.keys(this.tabMapping)) {\n            const legacyTab = this.tabMapping[newTab];\n            if (legacyTab in objectTabs) {\n                mappedTabs[newTab] = objectTabs[legacyTab];\n            }\n        }\n        return mappedTabs;\n    }\n\n    private mapNewTabsToLegacyTabs(objectTabs: any): any {\n        const mappedTabs: any = { ...objectTabs };\n        for (const newTab of Object.keys(this.tabMapping)) {\n            const legacyTab = this.tabMapping[newTab];\n            if (newTab in objectTabs) {\n                mappedTabs[legacyTab] = objectTabs[newTab];\n            }\n        }\n        return mappedTabs;\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\nimport { IFndyCertificate } from './certificate.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AWSCertificateService {\n    constructor(private apiGatewayService: ApiGatewayService) {}\n\n    getCertificates(): Observable<IFndyCertificate[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {};\n\n                return from(apiClient.Get('/iot-certificate', query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    createCertificate(query: any): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/iot-certificate', {}, query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    updateCertificate(certificateId: string, newStatus: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    certificateId,\n                    newStatus,\n                };\n                return from(apiClient.Put('/iot-certificate', {}, query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteCertificate(certificate: IFndyCertificate): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    certificateArn: certificate.certificateArn,\n                    certificateId: certificate.certificateId,\n                };\n                return from(apiClient.Delete('/iot-certificate', {}, query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class FndyExportService {\n    constructor(private apiGatewayService: ApiGatewayService) {}\n\n    callExport(body: any): Observable<any> {\n        const params = body;\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => from(apiClient.Post('/export-config', {}, params))),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\nimport { ICredentialModel } from './fndy-iam-credentials.model';\n\n@Injectable({ providedIn: 'root' })\nexport class IAMCredentialsService {\n    constructor(private apiGatewayService: ApiGatewayService) {}\n\n    getIAMCredentials(accountId: string, defaultOnly: boolean): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    owner_id: accountId,\n                    default_only: defaultOnly,\n                };\n\n                return from(apiClient.Get('/iam-credentials', query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    createIAMCredentials(body: ICredentialModel): Observable<ICredentialModel> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/iam-credentials', {}, body));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    updateIAMCredentials(body: ICredentialModel): Observable<ICredentialModel> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put('/iam-credentials', {}, body));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteIAMCredentials(credentialId: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Delete(`/iam-credentials/${credentialId}`));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class FndyOAuthService {\n    constructor(private apiGatewayService: ApiGatewayService) {}\n\n    getTokens(accountId: string, platform: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    accountId,\n                    platform,\n                };\n                return from(apiClient.Get('/o-auth', query));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    // eslint-disable-next-line max-len\n    // Here the parameter token is an array containing json key value pair, example [{account_id: a, token_key: b, token_value: c, platform:e}, {...}, {...}]\n    postTokens(tokens: any): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const body = { tokens };\n                return from(apiClient.Post('/o-auth', {}, body));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    deleteTokens(accountId: string, platform: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    accountId,\n                    platform,\n                };\n                return from(apiClient.Delete('/o-auth', query));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    // eslint-disable-next-line max-len\n    // Here the parameter token is an array containing json key value pair, example [{account_id: a, token_key: b, token_value: c, platform:e}, {...}, {...}]\n    putTokens(tokens: any): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const body = { tokens };\n                return from(apiClient.Put('/o-auth', {}, body));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\nimport { IObjectSearchBodyModel } from './object-search-body.model';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class ObjectSearchService {\n    constructor(private apiGatewayService: ApiGatewayService) {}\n\n    search(searchBody: IObjectSearchBodyModel): Observable<any> {\n        return this.objectSearchApi('/object-search', searchBody);\n    }\n\n    exportSearch(searchBody: IObjectSearchBodyModel): Observable<any> {\n        return this.objectSearchApi('/object-search/export', searchBody);\n    }\n\n    private objectSearchApi(path: string, searchBody: IObjectSearchBodyModel): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post(path, {}, searchBody));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, EMPTY, from, Observable, of, Subject } from 'rxjs';\nimport { catchError, delay, expand, first, map, mergeMap, reduce, takeUntil, toArray } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\nimport { CacheService } from '../../cache.service';\nimport { IAttributeGroupModel } from './fndy-attribute-group.model';\nimport { IFndyGlobalActionModel } from './fndy-global-action.model';\nimport { IObjectJunctionModel } from './fndy-object-junction.model';\nimport { IFndyObjectTypeAttribute } from './fndy-object-type-attribute.model';\nimport { IFndyObjectType } from './fndy-object-type.model';\nimport { IFndyObject } from './fndy-object.model';\nimport { IFndyProvisioningRule } from './fndy-provisioning-rule.model';\n\nconst CON_REQUEST_COUNT = 10;\nconst EXPORT_PAGE_INTERVAL = 1000;\nconst thinglogixRootGlobalActionTypeId = 'a5J60000000DnaLEAS';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class FndyObjectService {\n    /* eslint-disable @typescript-eslint/member-ordering */\n    private _historyIsExporting$ = new BehaviorSubject<boolean>(false);\n\n    public historyIsExporting$ = this._historyIsExporting$.asObservable();\n\n    constructor(\n        private apiGatewayService: ApiGatewayService,\n        private cacheService: CacheService,\n        private httpClient: HttpClient\n    ) {}\n\n    getObjects(accountId: string): Observable<IFndyObject[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    account_id: accountId,\n                };\n\n                return from(apiClient.Get('/devices', query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getObjectTypes(accountId: string, oneLevel?: boolean): Observable<IFndyObjectType[]> {\n        let level = oneLevel;\n        if (!level) {\n            level = false;\n        }\n        return this.cacheService.getValue(\n            `objectTypes#${accountId}`,\n            this.apiGatewayService.getApiClient().pipe(\n                mergeMap((apiClient) => {\n                    const query = {\n                        account_id: accountId,\n                        one_level: level,\n                    };\n\n                    return from(apiClient.Get('/device-types', query));\n                }),\n                map((result: any) => {\n                    return result.data;\n                }),\n                first()\n            )\n        );\n    }\n\n    getObjectTypeMap(accountId: string, oneLevel?: boolean): Observable<Map<string, IFndyObjectType>> {\n        return this.getObjectTypes(accountId, oneLevel).pipe(\n            mergeMap((objectTypes) => objectTypes),\n            reduce((acc, objectType) => {\n                acc.set(objectType.typeId, objectType);\n                return acc;\n            }, new Map())\n        );\n    }\n\n    downloadObjectType(typeId: string, name: string, templates: IFndyObjectTypeAttribute[]): Observable<string> {\n        const params = { typeId, name, templates };\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/device-type/download', {}, params));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteObjectType(typeId: string): Observable<any> {\n        this.cacheService.invalidateRange('objectTypes');\n        this.cacheService.invalidate(`objectType#${typeId}`);\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Delete(`/device-type/${typeId}`));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getObject(objectId: string, withReferences = false): Observable<IFndyObject> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    withReferences,\n                };\n\n                return from(apiClient.Get(`/device/${encodeURIComponent(objectId)}`, query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteObjectAttributes(objectId: string, attributesToDelete: string[]): Observable<IFndyObject> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const deletePayload = {\n                    deviceId: objectId,\n                    deleted: attributesToDelete,\n                };\n                return from(apiClient.Put('/device-attributes', {}, deletePayload));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getObjectsByType(typeId: string): Observable<IFndyObject[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    type_id: typeId,\n                };\n\n                return from(apiClient.Get('/devices/by-type', query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getGlobalActions(): Observable<IFndyObject[]> {\n        return this.cacheService.getValue('globalActions#', this.getObjectsByType(thinglogixRootGlobalActionTypeId));\n    }\n\n    getWorkflows(): Observable<IFndyObject[]> {\n        return this.getObjectsByType(thinglogixRootGlobalActionTypeId).pipe(\n            map((objectTypes) => {\n                return objectTypes.filter((objectType) => objectType.isParent);\n            })\n        );\n    }\n\n    getAttributeGroups(accountId: string): Observable<IAttributeGroupModel[]> {\n        return this.cacheService.getValue(\n            `attributeGroups#${accountId}`,\n            this.apiGatewayService.getApiClient().pipe(\n                mergeMap((apiClient) => {\n                    const attributeQuery = {\n                        account_id: accountId,\n                    };\n\n                    return from(apiClient.Get('/group-attributes', attributeQuery));\n                }),\n                map((result: any) => {\n                    return result.data;\n                }),\n                first()\n            )\n        );\n    }\n\n    createAttributeGroup(attributeGroup: IAttributeGroupModel): Observable<IAttributeGroupModel> {\n        this.cacheService.invalidateRange('attributeGroups');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/group-attribute', {}, attributeGroup));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    updateAttributeGroup(attributeGroup: IAttributeGroupModel): Observable<IAttributeGroupModel> {\n        this.cacheService.invalidateRange('attributeGroups');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put('/group-attribute', {}, attributeGroup));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteAttributeGroup(groupId: string): Observable<IAttributeGroupModel> {\n        this.cacheService.invalidateRange('attributeGroups');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Delete(`/group-attribute/${groupId}`));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteObject(objectId: string): Observable<IFndyObject> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Delete(`/device/${encodeURIComponent(objectId)}`));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getObjectHistory(\n        objectId: string,\n        limit: number,\n        start: number,\n        end: number,\n        type: 'history' | 'mqtt'\n    ): Observable<IFndyObject[]> {\n        return this.getObjectHistoryPage(objectId, limit, start, end, type).pipe(\n            expand((objectHistory: IFndyObject[]) => {\n                if (objectHistory.length === limit) {\n                    return this.getObjectHistoryPage(\n                        encodeURIComponent(objectId),\n                        limit,\n                        objectHistory[objectHistory.length - 1].epochTime,\n                        end,\n                        type\n                    );\n                }\n                return EMPTY;\n            })\n        );\n    }\n\n    exportObjectHistory(\n        data: {\n            columns: any[];\n            device_id: string;\n            end: number;\n            start: number;\n            fields: string[];\n            filter: string;\n            sort_by: string;\n            sort_dir: string;\n            timezone: number;\n            type: 'csv' | 'pdf';\n            type_id: string;\n        },\n        type: 'posted_data' | 'history'\n    ): void {\n        const unsubscribe$ = new Subject();\n        let exportUrl: string;\n        const successCode = 200;\n\n        this._historyIsExporting$.next(true);\n        this.export(data, type)\n            .pipe(\n                expand((url: string) => {\n                    return this.httpClient.get(url).pipe(\n                        mergeMap(() => of(url)),\n                        catchError((err: any) => {\n                            if (err.status === successCode) {\n                                unsubscribe$.next();\n                            }\n                            return of(url);\n                        }),\n                        delay(EXPORT_PAGE_INTERVAL)\n                    );\n                }),\n                takeUntil(unsubscribe$)\n            )\n            .subscribe(\n                (url) => {\n                    exportUrl = url;\n                },\n                () => {},\n                () => {\n                    this._historyIsExporting$.next(false);\n                    window.location.href = exportUrl;\n                }\n            );\n    }\n\n    updateObject(fndyObject: IFndyObject): Observable<IFndyObject> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put('/device', {}, fndyObject));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    updateObjectType(fndyObjectType: IFndyObjectType): Observable<IFndyObjectType> {\n        this.cacheService.invalidateRange('objectTypes');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put('/device-type', {}, fndyObjectType));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    createObjectType(fndyObjectType: IFndyObjectType): Observable<IFndyObjectType> {\n        this.cacheService.invalidateRange('objectTypes');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/device-type', {}, fndyObjectType));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    createObject(fndyObject: IFndyObject): Observable<IFndyObject> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/device', {}, fndyObject));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    createObjects(fndyObjects: IFndyObject[]): Observable<IFndyObject[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/devices', {}, { devices: fndyObjects }));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getObjectType(typeId: string): Observable<IFndyObjectType> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Get(`/device-type/${typeId}`));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getReferencesTo(objectId: string, with_type: boolean): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    with_types: with_type,\n                };\n                return from(apiClient.Get(`/reference/${encodeURIComponent(objectId)}/to`, query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteReference(refTo: string, refFrom: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    refTo,\n                    refFrom,\n                };\n                return from(apiClient.Delete('/reference', query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getObjectsByName(accountId: string, searchText: string, groupsOnly?: boolean): Observable<IFndyObject[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    account_id: accountId,\n                    groups_only: groupsOnly,\n                    search: searchText,\n                    search_field: 'a.name',\n                };\n\n                return from(apiClient.Get('/devices/search-service', query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getParents(objectId: string): Observable<IObjectJunctionModel[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Get(`/device/${encodeURIComponent(objectId)}/parents`));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getChildren(objectId: string): Observable<IFndyObject[]> {\n        let client: any;\n        const orderMap = {};\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                client = { ...apiClient };\n                return from(apiClient.Get(`/device/${encodeURIComponent(objectId)}/children`));\n            }),\n            map((result: any) => result.data),\n            mergeMap((children) => {\n                return children;\n            }),\n            mergeMap((child) => {\n                orderMap[child['deviceId']] = child['order'];\n                if (child['typeId']) {\n                    return of(child);\n                }\n                return from(client.Get(`/device/${encodeURIComponent(child['deviceId'])}`)).pipe(\n                    catchError((error) => {\n                        console.error(error);\n                        return of(null);\n                    })\n                );\n            }, CON_REQUEST_COUNT),\n            map((result: any) => {\n                if (result && result.data) {\n                    return result.data;\n                }\n                if (result) {\n                    return result;\n                }\n\n                return null;\n            }),\n            toArray(),\n            map((children) => {\n                const filteredChildren = children.filter((child) => child != null);\n                return filteredChildren.sort((child1, child2) => {\n                    return orderMap[child1.deviceId] - orderMap[child2.deviceId];\n                });\n            })\n        );\n    }\n\n    createDeviceJunction(deviceId: string, parentId: string, order?: number): Observable<IFndyObject> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    parentId,\n                    deviceId,\n                    order,\n                };\n                return from(apiClient.Post('/device/junction', {}, query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteDeviceJunction(deviceId: string, parentId: string): Observable<IFndyObject> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const body = {\n                    parent_id: parentId,\n                    device_id: deviceId,\n                };\n                return from(apiClient.Delete('/device/junction', body));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getProvisioningRules(accountId: string): Observable<IFndyProvisioningRule[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    userId: accountId,\n                };\n                return from(apiClient.Get('/iot-rules', query));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    createProvisioningRule(rule: IFndyProvisioningRule): Observable<IFndyProvisioningRule> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/iot-rules', {}, rule));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    updateProvisioningRule(rule: IFndyProvisioningRule): Observable<IFndyProvisioningRule> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put('/iot-rules/details', {}, rule));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    deleteProvisioningRule(accountId: string, ruleName: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const body = {\n                    userId: accountId,\n                    ruleName,\n                };\n                return from(apiClient.Delete('/iot-rules', {}, body));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n    // Invoke Global Action\n\n    invokeGlobalAction(deviceId: string, actionId: string): Observable<IFndyObject> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const body = {\n                    objectId: deviceId,\n                    actionId,\n                };\n                return from(apiClient.Post('/action', {}, body));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    invokeFoundryAction(actionType: string, actionEndpoint: string, payload: string): Observable<any> {\n        const body: any = {\n            payload,\n        };\n        if (actionType === 'lambda') {\n            body.lambdaArn = actionEndpoint;\n        }\n        if (actionType === 'httpPost') {\n            body.httpUrl = actionEndpoint;\n        }\n        if (actionType === 'mqttTopic') {\n            body.mqtttTopic = actionEndpoint;\n        }\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/action/no-device-id', {}, body));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    saveScheduledGADevices(account_id: string, devices: IFndyGlobalActionModel[]): Observable<IFndyObject> {\n        const params = {\n            account_id,\n            devices,\n        };\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/devices/scheduled', {}, params));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    private export(data: any, type: 'posted_data' | 'history'): Observable<string> {\n        const URL = type === 'history' ? '/device/history/export' : '/device/history/mqtt/export';\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post(URL, {}, data));\n            }),\n            map((result: any) => {\n                return result.data as string;\n            }),\n            first()\n        );\n    }\n\n    private getObjectHistoryPage(\n        objectId: string,\n        limit: number,\n        start: number,\n        end: number,\n        historyType: 'history' | 'mqtt'\n    ): Observable<IFndyObject[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    device_id: encodeURIComponent(objectId),\n                    limit,\n                    start,\n                    end,\n                };\n\n                return from(\n                    apiClient.Get(historyType === 'history' ? '/device/history' : '/device/history/mqtt', query)\n                );\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n}\n","import { IFndyPageMenuItem } from './fndy-page-menu-item.model';\n\nexport class FndyPageMenu {\n    items: IFndyPageMenuItem[];\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\nimport { CacheService } from '../../cache.service';\nimport { IFndyPageMenuItem } from './fndy-page-menu-item.model';\nimport { IFndyPage } from './fndy-page.model';\n\n@Injectable({ providedIn: 'root' })\nexport class FndyPageService {\n    constructor(private apiGatewayService: ApiGatewayService, private cacheService: CacheService) {}\n\n    getPortalPages(accountId: string): Observable<IFndyPage[]> {\n        return this.cacheService.getValue(\n            `portalPages#${accountId}`,\n            this.apiGatewayService.getApiClient().pipe(\n                mergeMap((apiClient) => {\n                    const query = {\n                        account_id: accountId,\n                    };\n                    return from(apiClient.Get('/portal-pages', query));\n                }),\n                map((result: any) => {\n                    return result.data;\n                }),\n                first()\n            ),\n            true\n        );\n    }\n\n    createPortalPage(page: IFndyPage): Observable<IFndyPageMenuItem[]> {\n        this.cacheService.invalidateRange('portalPages');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/portal-page', {}, page));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    updatePortalPage(page: IFndyPage): Observable<IFndyPageMenuItem[]> {\n        this.cacheService.invalidateRange('portalPages');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put('/portal-page', {}, page));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deletePortalPage(pageId: string): Observable<IFndyPageMenuItem[]> {\n        this.cacheService.invalidateRange('portalPages');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Delete(`/portal-page/${pageId}`));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\n\n@Injectable({ providedIn: 'root' })\nexport class FndyQuickSightService {\n    constructor(private apiGatewayService: ApiGatewayService) {}\n\n    getEmbedUrl(dashboardId?: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                if (dashboardId) {\n                    return from(apiClient.Get(`/quicksight/embed-url/${dashboardId}`, {}, {}));\n                }\n                return from(apiClient.Get(`/quicksight/embed-url`, {}, {}));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\nimport { IFileModel } from '../file.model';\nimport { IS3ObjectModel } from './s3-object.model';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class S3Service {\n    constructor(private apiGatewayService: ApiGatewayService) {}\n\n    uploadFile(fileToUpload: IFileModel): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const params = {\n                    file: fileToUpload.data,\n                    name: fileToUpload.name,\n                    type: fileToUpload.type,\n                    size: fileToUpload.size,\n                    s3AccessLevel: fileToUpload.s3AccessLevel,\n                };\n                return from(apiClient.Post('/s3', {}, params));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    getBucketList(): Observable<any[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {};\n\n                return from(apiClient.Get('/s3/bucket', query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    getObjectsList(bucketName: string): Observable<any[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    bucket: bucketName,\n                };\n\n                return from(apiClient.Get('/s3', query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    createBucket(bucketName: string): Observable<any> {\n        const query = {\n            bucket: bucketName,\n        };\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/s3/bucket', {}, query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    putObject(object: IS3ObjectModel): Observable<IS3ObjectModel> {\n        const query = {\n            bucket: object.bucket,\n            file: object.file,\n            name: object.name,\n            originalName: true,\n            size: object.Size,\n        };\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/s3', {}, query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteObject(object: IS3ObjectModel): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    bucket: object.bucket,\n                    key: object.Key,\n                };\n                return from(apiClient.Delete('/s3', query));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n}\n","import { IObjectSearchCriteriaModel } from '../fndy-object-search/object-search-criteria.model';\nimport { ISearchTableColumnModel } from './search-table-column.model';\nimport { ISearchCriterionModel } from './search-criterion.model';\n\nexport enum SearchType {\n    AdvancedSearch = 'AdvancedSearch',\n    ObjectSearch = 'ObjectSearch',\n}\n\nexport interface ISavedSearchModel {\n    id?: string;\n    userId: string;\n    name: string;\n    withAction: boolean;\n    withCriteria: boolean;\n    searchType: SearchType;\n    viewType: 'List' | 'Map';\n    criteria: ISearchCriterionModel[] | IObjectSearchCriteriaModel[];\n    openColumns?: ISearchTableColumnModel[];\n    sortColumnKey?: string;\n    sortDirection?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { forkJoin, from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\nimport { CacheService } from '../../cache.service';\nimport { ISavedSearchModel } from './fndy-saved-search.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SavedSearchService {\n    constructor(private apiGatewayService: ApiGatewayService, private cacheService: CacheService) {}\n\n    getSavedSearches(id: string): Observable<ISavedSearchModel[]> {\n        return this.cacheService.getValue(\n            `savedSearches#${id}`,\n            this.apiGatewayService.getApiClient().pipe(\n                mergeMap((apiClient) => {\n                    const params = {\n                        userId: id,\n                    };\n                    return from(apiClient.Get('/saved-search', params));\n                }),\n                map((result: any) => {\n                    return result.data;\n                }),\n                first()\n            )\n        );\n    }\n\n    getAllSavedSearches(userId: string, accountId: string): Observable<ISavedSearchModel[]> {\n        const userSavedSearches$ = this.getSavedSearches(userId);\n        const accountSavedSearches$ = this.getSavedSearches(accountId);\n        return forkJoin([userSavedSearches$, accountSavedSearches$]).pipe(\n            map(([userSavedSearches, accountSavedSearches]) => {\n                return [...userSavedSearches, ...accountSavedSearches];\n            })\n        );\n    }\n\n    getSavedSearch(searchId: string, userId: string): Observable<ISavedSearchModel> {\n        return this.cacheService.getValue(\n            `savedSearch#${userId}#${searchId}`,\n            this.apiGatewayService.getApiClient().pipe(\n                mergeMap((apiClient) => {\n                    const params = {\n                        userId,\n                    };\n                    return from(apiClient.Get(`/saved-search/${searchId}`, params));\n                }),\n                map((result: any) => {\n                    return result.data;\n                }),\n                first()\n            )\n        );\n    }\n\n    createSavedSearch(savedSearch: ISavedSearchModel): Observable<ISavedSearchModel> {\n        this.cacheService.invalidateRange('savedSearch');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/saved-search', {}, savedSearch));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    updateSavedSearch(savedSearch: ISavedSearchModel): Observable<ISavedSearchModel> {\n        this.cacheService.invalidateRange('savedSearch');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put('/saved-search', {}, savedSearch));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n\n    deleteSavedSearch(searchId: string): Observable<any> {\n        this.cacheService.invalidateRange('savedSearch');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Delete(`/saved-search/${searchId}`));\n            }),\n            map((result: any) => {\n                return result.data;\n            }),\n            first()\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\n\n@Injectable({ providedIn: 'root' })\nexport class FndySfdcService {\n    constructor(private apiGatewayService: ApiGatewayService) {}\n\n    getUserDetail(accessToken: string, identity_url: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    access_token: accessToken,\n                    identityUrl: identity_url,\n                };\n                return from(apiClient.Post('/sfdc/user-details', {}, query));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    getToken(code: string, service_type: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    code,\n                    service_type,\n                };\n                return from(apiClient.Get('/sfdc/tokens', query));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    getIdentityUrl(refresh_token: string, service_type: string): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                const query = {\n                    refresh_token,\n                    service_type,\n                };\n                return from(apiClient.Get('/sfdc/identity-url', query));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../../api-client/api-gateway.service';\nimport { IFndyUserSecret } from './fndy-user-secret.model';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class FndyUserSecretService {\n    constructor(private apiGatewayService: ApiGatewayService) {}\n\n    getSecrets(userId: string): Observable<IFndyUserSecret[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => from(apiClient.Get('/user/secrets', { userId }))),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    createSecret(userId: string): Observable<IFndyUserSecret> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => from(apiClient.Post('/user/secret', {}, { user_id: userId }))),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    deleteSecret(secret: IFndyUserSecret): Observable<any> {\n        const query = {\n            apiKeyId: secret.api_key_id,\n            userId: secret.user_id,\n        };\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => from(apiClient.Delete('/user/secret', query))),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    updateSecretStatus(secret: IFndyUserSecret): Observable<IFndyUserSecret> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => from(apiClient.Put('/user/secret', {}, secret))),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\nimport { ApiGatewayService } from '../../api-client/api-gateway.service';\nimport { CacheService } from '../../cache.service';\nimport { IFndyUserSecret } from './fndy-secret/fndy-user-secret.model';\nimport { IFndyUser } from './fndy-user.model';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class FndyUserService {\n    constructor(private apiGatewayService: ApiGatewayService, private cacheService: CacheService) {}\n\n    getUsers(accountId: string, oneLevel = true): Observable<IFndyUser[]> {\n        return this.cacheService.getValue(\n            `users#${accountId}#${oneLevel.toString()}`,\n            this.apiGatewayService.getApiClient().pipe(\n                mergeMap((apiClient) => {\n                    const query = {\n                        account_id: accountId,\n                        one_level: oneLevel,\n                    };\n                    return from(apiClient.Get('/users', query));\n                }),\n                map((result: any) => result.data),\n                first()\n            )\n        );\n    }\n\n    exportUsers(): Observable<any> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/users/export', {}, {}));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    getUser(userId: string, withObjects: boolean = false): Observable<IFndyUser> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Get(`/user/${userId}`, { withObjects }));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    updateUser(user: IFndyUser): Observable<IFndyUser> {\n        this.cacheService.invalidateRange('users');\n        if (user.full_name) {\n            delete user.full_name;\n        }\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Put('/user', {}, user));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    createUser(user: IFndyUser): Observable<IFndyUser> {\n        this.cacheService.invalidateRange('users');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                user.host = `${window.location.origin}/auth`;\n                return from(apiClient.Post('/user', {}, user));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    deleteUser(userId: string): Observable<any> {\n        this.cacheService.invalidateRange('users');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Delete(`/user/${userId}`));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    resendActivationEmail(username: string, rootAccount: string): Observable<any> {\n        const params = {\n            username,\n            host: `${window.location.origin}/auth`,\n            root_account_id: rootAccount,\n        };\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => {\n                return from(apiClient.Post('/user/resend-activation', {}, params));\n            }),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    getSecrets(userId: string): Observable<IFndyUserSecret[]> {\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => from(apiClient.Get('/user/secrets', { user_id: userId }))),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    createSecret(userId: string): Observable<IFndyUserSecret> {\n        // this.cacheService.invalidateRange('users');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => from(apiClient.Post('/user/secret', {}, { user_id: userId }))),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    deleteSecret(apiKeyId: string): Observable<any> {\n        // this.cacheService.invalidateRange('users');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => from(apiClient.Delete('/user/secret ', { api_key_id: apiKeyId }))),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n\n    updateSecret(secret: IFndyUserSecret): Observable<IFndyUserSecret> {\n        // this.cacheService.invalidateRange('users');\n        return this.apiGatewayService.getApiClient().pipe(\n            mergeMap((apiClient) => from(apiClient.Put('/user/secret', {}, secret))),\n            map((result: any) => result.data),\n            first()\n        );\n    }\n}\n","// core services\nexport * from './api-client/api-gateway.service';\nexport * from './api-client/sigV4Client.service';\nexport * from './auth.service';\nexport * from './broadcast-channel.service';\nexport * from './browser-id.service';\nexport * from './cache.service';\nexport * from './foundry-api/file.model';\n// foundry api\nexport * from './foundry-api/fndy-account/fndy-account-acl.model';\nexport * from './foundry-api/fndy-account/fndy-account-preferences.model';\nexport * from './foundry-api/fndy-account/fndy-account.model';\nexport * from './foundry-api/fndy-account/fndy-account.service';\nexport * from './foundry-api/fndy-account/layout.model';\nexport * from './foundry-api/fndy-account/object-tabs.model';\nexport * from './foundry-api/fndy-certificates/certificate.model';\nexport * from './foundry-api/fndy-certificates/certificates.service';\nexport * from './foundry-api/fndy-export-config/fndy-export-config.service';\nexport * from './foundry-api/fndy-iam-credentials/fndy-iam-credentials.model';\nexport * from './foundry-api/fndy-iam-credentials/fndy-iam-credentials.service';\nexport * from './foundry-api/fndy-oauth/fndy-oauth.service';\nexport * from './foundry-api/fndy-object-search/object-search-body.model';\nexport * from './foundry-api/fndy-object-search/object-search-criteria.model';\nexport * from './foundry-api/fndy-object-search/object-search.service';\nexport * from './foundry-api/fndy-object/fndy-attribute-group.model';\nexport * from './foundry-api/fndy-object/fndy-global-action.model';\nexport * from './foundry-api/fndy-object/fndy-object-attribute.model';\nexport * from './foundry-api/fndy-object/fndy-object-junction.model';\nexport * from './foundry-api/fndy-object/fndy-object-type-attribute.model';\nexport * from './foundry-api/fndy-object/fndy-object-type.model';\nexport * from './foundry-api/fndy-object/fndy-object.model';\nexport * from './foundry-api/fndy-object/fndy-object.service';\nexport * from './foundry-api/fndy-object/fndy-provisioning-rule.model';\nexport * from './foundry-api/fndy-page/fndy-page-menu-item.model';\nexport * from './foundry-api/fndy-page/fndy-page-menu.model';\nexport * from './foundry-api/fndy-page/fndy-page.model';\nexport * from './foundry-api/fndy-page/fndy-page.service';\nexport * from './foundry-api/fndy-quicksight/fndy-quicksight.service';\nexport * from './foundry-api/fndy-s3/s3-object.model';\nexport * from './foundry-api/fndy-s3/s3.service';\nexport * from './foundry-api/fndy-saved-search/fndy-saved-search.model';\nexport * from './foundry-api/fndy-saved-search/fndy-saved-search.service';\nexport * from './foundry-api/fndy-sfdc/fndy-sfdc.service';\nexport * from './foundry-api/fndy-user/fndy-secret/fndy-user-secret.model';\nexport * from './foundry-api/fndy-user/fndy-secret/fndy-user-secret.service';\nexport * from './foundry-api/fndy-user/fndy-user.model';\nexport * from './foundry-api/fndy-user/fndy-user.service';\nexport * from './foundry-api/foundry-api-config.model';\nexport * from './foundry-api/foundry-api.module';\nexport * from './iframe/fndy-iframe-event.model';\nexport * from './signup-params.model';\nexport * from './storage.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.CacheService","i3.BroadcastChannelService","i4.BrowserIdService","i1.ApiGatewayService","i3"],"mappings":"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"}