UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

116 lines 6.89 kB
import { SPECIAL_USERS } from './default-config'; /** * Utility class to build a configuration */ export class TapConfiguratorConfigBuilder { constructor(_schema) { this._schema = _schema; } get configData() { if (!this._schema.config.data) { this._schema.config.data = {}; } return this._schema.config.data; } get profiles() { if (!this.configData.profiles) { this.configData.profiles = []; } return this.configData.profiles; } get tapConfig() { if (!this._schema.config.tap) { this._schema.config.tap = {}; } return this._schema.config.tap; } /** * @deprecated * TODO move from here as factory method should not polute the class */ static default() { return new TapConfiguratorConfigBuilder({ meta: {}, config: { application: { name: 'TAP', }, version: '1.0.0', tap: { security: { disableHardwareFactoryReset: false, hashPassword: true, disableLoginWithUID: false, disableResourceFactoryReset: false, scramActivated: false, }, scram: { hashIteration: 5000, }, }, data: { profiles: SPECIAL_USERS, }, }, }); } /** * Set application name * @param appName */ appName(appName) { if (!this._schema.config.application) { this._schema.config.application = {}; } this._schema.config.application.name = appName; return this; } /** * Edit user identified by username * If user does not it will be created with default values * @param username * @param editor */ user(username, editor) { const userDataIndex = this.profiles.findIndex((p) => p.username === username); let userData = userDataIndex >= 0 ? this.profiles[userDataIndex] : undefined; if (!userData) { // TODO check SpecialProfileConfig userData = { username, lifeTime: 300, password: username, }; } userData = editor(userData); this.profiles[userDataIndex] = userData; return this; } /** * Enable/disable scram * @param enabled true to enable scram */ scram(enabled) { // TODO hash iteration count ? if (!this.tapConfig.security) { this.tapConfig.security = { scramActivated: false, disableHardwareFactoryReset: false, hashPassword: true, disableResourceFactoryReset: false, disableLoginWithUID: false, }; } else { this.tapConfig.security.scramActivated = enabled; if (enabled) { this.tapConfig.security.hashPassword = true; } } return this; } build() { return this._schema; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWNvbmZpZy1zY2hlbWEtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRvci9zcmMvbGliL3RhcC1jb25maWctc2NoZW1hLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBT2pEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUFvQixPQUE4QjtRQUE5QixZQUFPLEdBQVAsT0FBTyxDQUF1QjtJQUFHLENBQUM7SUFFdEQsSUFBWSxVQUFVO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUMvQjtRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFZLFFBQVE7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUMvQjtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVksU0FBUztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDOUI7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTyxJ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