UNPKG

appsapp-cli

Version:

This command line program is the important counterpart of appsapp-module for connecting built-in or custom backend services.

86 lines (61 loc) 2.31 kB
var chalk = require('chalk'); var clear = require('clear'); var CLI = require('clui'); var figlet = require('figlet'); var Spinner = CLI.Spinner; var fs = require('fs'); var glob = require('glob'); var files = require('../lib/files'); var replace = require('replace-in-file'); var sha1 = require('sha1'); var admin = require("firebase-admin"); var executeAppsAppEncryption = function (files) { var replacements = {}; const options = { files: files, from: /\{\{\{[^}]+?\}\}\}/mg, to: (data) => { var hash = sha1(data); replacements[hash] = data.substr(3,data.length-6); return '{sha1://' + hash + '}'; }, }; try { const changes = replace.sync(options); } catch (error) { console.error('Error occurred:', error); } return replacements; }; encryption = function() { return new Promise(function (resolve, reject) { var replaceBuildFiles = function (callback) { glob(files.getBuildFile(), callback); }; replaceBuildFiles(function (err, res) { var status = new Spinner('Perform sha1 hash encryption for build files, please wait...'); status.start(); if (err || res.length == 0) { status.stop(); reject('No build files found. Enter something linke "npm run" or "ionic serve" or "ng build" first.'); } else { let replacements = executeAppsAppEncryption(res); if (Object.keys(replacements).length) { var db = admin.database(); var ref = db.ref('_sha1'); ref.set(replacements).then(() => { status.stop(); resolve(chalk.green('Build encryption sucessfully done.')); }); } else { setTimeout(function () { status.stop(); resolve(chalk.green('Sucessfully done. ') + chalk('Nothing to do. There are no more replacements for encryption found. Add any new {{{your-secure-string}}} to your *.ts files.')); }, 2000); } } }); }); } module.exports = encryption;