- Added Predis library for Redis connection (no PHP extension required) - Server-side SMS code generation and storage in Redis - Rate limiting and brute-force protection - Integration with n8n webhook for SMS sending - Environment variables moved to .env file - Fixed policy verification endpoint - Added file-based fallback if Redis unavailable
111 lines
2.7 KiB
JavaScript
111 lines
2.7 KiB
JavaScript
var gulp = require('gulp');
|
|
var sass = require('gulp-sass');
|
|
|
|
var gulp_concat = require('gulp-concat');
|
|
var jsmin = require('gulp-jsmin');
|
|
var cssmin = require('gulp-cssmin');
|
|
|
|
var gulp_file_include = require('gulp-file-include');
|
|
var browser_sync = require('browser-sync').create();
|
|
|
|
// SYNC HTML
|
|
gulp.task('include-html', function(){
|
|
gulp.src([
|
|
'./html/*.html'
|
|
])
|
|
.pipe(gulp_file_include())
|
|
// .pipe(htmlbeautify(options))
|
|
.pipe(gulp.dest('./public'))
|
|
.pipe(browser_sync.stream());
|
|
});
|
|
|
|
gulp.task( 'sass' , function() {
|
|
// copy old file no min
|
|
gulp.src([
|
|
'./sass/*.scss',
|
|
])
|
|
.pipe(sass())
|
|
.pipe(gulp_concat('t-datepicker.min.css'))
|
|
.pipe(cssmin())
|
|
.pipe(gulp.dest('./public/theme/css'))
|
|
|
|
gulp.src([
|
|
'./sass/**/*.scss'
|
|
])
|
|
.pipe(sass())
|
|
.pipe(gulp.dest('./public/theme/css'))
|
|
.pipe(browser_sync.stream());
|
|
})
|
|
|
|
gulp.task( 'min-css' , function() {
|
|
// Min new name file and keep old file
|
|
gulp.src([
|
|
'./sass/**/*.scss',
|
|
'!./sass/*.scss',
|
|
'!./sass/themes/t-datepicker-main.scss'
|
|
])
|
|
.pipe(sass())
|
|
.pipe(cssmin())
|
|
.pipe(gulp.dest('./public/theme/css'))
|
|
.pipe(browser_sync.stream());
|
|
})
|
|
|
|
// SYNC js
|
|
gulp.task('js', function(){
|
|
gulp.src([
|
|
'./theme/js/*.js'
|
|
])
|
|
.pipe(gulp.dest('./public/theme/js'))
|
|
|
|
gulp.src([
|
|
'./theme/js/*.js'
|
|
])
|
|
.pipe(gulp_concat('t-datepicker.min.js'))
|
|
.pipe(jsmin())
|
|
.pipe(gulp.dest('./public/theme/js'))
|
|
.pipe(browser_sync.stream());
|
|
});
|
|
|
|
// COPY js
|
|
gulp.task('js-copy', function(){
|
|
gulp.src([
|
|
'./node_modules/perfect-scrollbar/dist/perfect-scrollbar.min.js'
|
|
])
|
|
.pipe(gulp.dest('./public/theme/libs/'))
|
|
});
|
|
// COPY Css
|
|
gulp.task('css-copy', function(){
|
|
gulp.src([
|
|
'./node_modules/perfect-scrollbar/css/perfect-scrollbar.css',
|
|
'./node_modules/converthtml/sass/convert-theme-default.scss'
|
|
])
|
|
.pipe(gulp_concat('_libs.scss'))
|
|
.pipe(gulp.dest('./sass/layout'))
|
|
});
|
|
// COPY Images
|
|
gulp.task('images-copy', function(){
|
|
gulp.src([
|
|
'./theme/images/*.png',
|
|
'./theme/images/*.jpg',
|
|
'./theme/images/*.svg',
|
|
'./theme/images/*.gif',
|
|
])
|
|
.pipe(gulp.dest('./public/theme/images'))
|
|
});
|
|
|
|
|
|
gulp.task("Sync", ['include-html', 'sass', 'js', 'min-css'], function(){
|
|
browser_sync.init({
|
|
server: {
|
|
baseDir: "./public"
|
|
}
|
|
});
|
|
gulp.watch(['./html/**/*.html'], ['include-html']);
|
|
gulp.watch(['./sass/**/*.scss'], ['sass']);
|
|
gulp.watch(['./sass/**/*.scss'], ['min-css']);
|
|
|
|
gulp.watch(['./theme/js/*.js'], ['js']);
|
|
})
|
|
|
|
gulp.task('default', ['Sync', 'js-copy', 'css-copy', 'images-copy']);
|