build: refs #6706 Migration to pnpm #1990
10
Dockerfile
10
Dockerfile
|
@ -13,7 +13,7 @@ RUN apt-get update \
|
||||||
graphicsmagick \
|
graphicsmagick \
|
||||||
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
|
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
|
||||||
&& apt-get install -y --no-install-recommends nodejs \
|
&& apt-get install -y --no-install-recommends nodejs \
|
||||||
&& npm install -g npm@9.6.6
|
&& curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=8.15.1 sh -
|
||||||
|
|
||||||
# Puppeteer
|
# Puppeteer
|
||||||
|
|
||||||
|
@ -39,12 +39,12 @@ RUN apt-get update \
|
||||||
|
|
||||||
WORKDIR /salix
|
WORKDIR /salix
|
||||||
|
|
||||||
COPY print/package.json print/package-lock.json print/
|
COPY print/package.json print/pnpm-lock.yaml print/
|
||||||
RUN npm ci --no-audit --prefer-offline --omit=dev --prefix=print
|
RUN pnpm install --prod --prefix=print
|
||||||
|
|
||||||
COPY package.json package-lock.json ./
|
COPY package.json pnpm-lock.yaml ./
|
||||||
COPY loopback/package.json loopback/
|
COPY loopback/package.json loopback/
|
||||||
RUN npm ci --no-audit --prefer-offline --omit=dev
|
RUN pnpm install --prod
|
||||||
|
|
||||||
COPY loopback loopback
|
COPY loopback loopback
|
||||||
COPY back back
|
COPY back back
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
def PROTECTED_BRANCH
|
def PROTECTED_BRANCH
|
||||||
def FROM_GIT
|
def FROM_GIT
|
||||||
def RUN_TESTS
|
def RUN_TESTS
|
||||||
|
def RUN_BUILD
|
||||||
|
|
||||||
pre: {
|
pre: {
|
||||||
switch (env.BRANCH_NAME) {
|
switch (env.BRANCH_NAME) {
|
||||||
|
@ -27,6 +28,7 @@ pre: {
|
||||||
|
|
||||||
FROM_GIT = env.JOB_NAME.startsWith('gitea/')
|
FROM_GIT = env.JOB_NAME.startsWith('gitea/')
|
||||||
RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT
|
RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT
|
||||||
|
RUN_BUILD = PROTECTED_BRANCH && FROM_GIT
|
||||||
|
|
||||||
// Uncomment to enable debugging
|
// Uncomment to enable debugging
|
||||||
// https://loopback.io/doc/en/lb3/Setting-debug-strings.html#debug-strings-reference
|
// https://loopback.io/doc/en/lb3/Setting-debug-strings.html#debug-strings-reference
|
||||||
|
@ -45,58 +47,96 @@ pipeline {
|
||||||
STACK_NAME = "${env.PROJECT_NAME}-${env.BRANCH_NAME}"
|
STACK_NAME = "${env.PROJECT_NAME}-${env.BRANCH_NAME}"
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
stage('Install') {
|
stage('Stack') {
|
||||||
environment {
|
|
||||||
NODE_ENV = ""
|
|
||||||
}
|
|
||||||
parallel {
|
|
||||||
stage('Backend') {
|
|
||||||
steps {
|
|
||||||
sh 'npm install --no-audit --prefer-offline'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Frontend') {
|
|
||||||
when {
|
|
||||||
expression { FROM_GIT }
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
sh 'npm install --no-audit --prefer-offline --prefix=front'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Print') {
|
|
||||||
when {
|
|
||||||
expression { FROM_GIT }
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
sh 'npm install --no-audit --prefer-offline --prefix=print'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Test') {
|
|
||||||
when {
|
|
||||||
expression { RUN_TESTS }
|
|
||||||
}
|
|
||||||
environment {
|
environment {
|
||||||
NODE_ENV = ""
|
NODE_ENV = ""
|
||||||
TZ = 'Europe/Madrid'
|
TZ = 'Europe/Madrid'
|
||||||
}
|
}
|
||||||
parallel {
|
parallel {
|
||||||
stage('Backend') {
|
stage('Back') {
|
||||||
steps {
|
stages {
|
||||||
sh 'npm run test:back:ci'
|
stage('Install') {
|
||||||
|
environment {
|
||||||
|
NODE_ENV = ""
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
sh 'pnpm install --prefer-offline'
|
||||||
|
sh 'pnpm install --prefer-offline --prefix=print'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Test') {
|
||||||
|
when {
|
||||||
|
expression { RUN_TESTS }
|
||||||
|
}
|
||||||
|
environment {
|
||||||
|
NODE_ENV = ""
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
sh 'npm run test:back:ci'
|
||||||
|
}
|
||||||
|
post {
|
||||||
|
always {
|
||||||
|
script {
|
||||||
|
try {
|
||||||
|
junit 'junitresults.xml'
|
||||||
|
junit 'junit.xml'
|
||||||
|
} catch (e) {
|
||||||
|
echo e.toString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Build') {
|
||||||
|
when {
|
||||||
|
expression { RUN_BUILD }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
sh 'docker-compose build back'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Frontend') {
|
stage('Front') {
|
||||||
steps {
|
when {
|
||||||
sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=6'
|
expression { FROM_GIT }
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Install') {
|
||||||
|
environment {
|
||||||
|
NODE_ENV = ""
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
sh 'pnpm install --prefer-offline --prefix=front'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Test') {
|
||||||
|
when {
|
||||||
|
expression { RUN_TESTS }
|
||||||
|
}
|
||||||
|
environment {
|
||||||
|
NODE_ENV = ""
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=10'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Build') {
|
||||||
|
when {
|
||||||
|
expression { RUN_BUILD }
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
sh 'gulp build'
|
||||||
|
sh 'docker-compose build front'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Build') {
|
stage('Push') {
|
||||||
when {
|
when {
|
||||||
expression { PROTECTED_BRANCH && FROM_GIT }
|
expression { RUN_BUILD }
|
||||||
}
|
}
|
||||||
environment {
|
environment {
|
||||||
CREDENTIALS = credentials('docker-registry')
|
CREDENTIALS = credentials('docker-registry')
|
||||||
|
@ -106,8 +146,8 @@ pipeline {
|
||||||
def packageJson = readJSON file: 'package.json'
|
def packageJson = readJSON file: 'package.json'
|
||||||
env.VERSION = packageJson.version
|
env.VERSION = packageJson.version
|
||||||
}
|
}
|
||||||
sh 'gulp build'
|
sh 'docker login --username $CREDENTIALS_USR --password $CREDENTIALS_PSW $REGISTRY'
|
||||||
dockerBuild()
|
sh 'docker-compose push'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Deploy') {
|
stage('Deploy') {
|
||||||
|
@ -147,18 +187,6 @@ pipeline {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post {
|
post {
|
||||||
always {
|
|
||||||
script {
|
|
||||||
if (RUN_TESTS) {
|
|
||||||
try {
|
|
||||||
junit 'junitresults.xml'
|
|
||||||
junit 'junit.xml'
|
|
||||||
} catch (e) {
|
|
||||||
echo e.toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
success {
|
success {
|
||||||
script {
|
script {
|
||||||
if (env.BRANCH_NAME == 'master' && FROM_GIT) {
|
if (env.BRANCH_NAME == 'master' && FROM_GIT) {
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* eslint-disable no-console */
|
||||||
|
const app = require('vn-loopback/server/server');
|
||||||
|
let dataSources = require('../loopback/server/datasources.json');
|
||||||
|
|
||||||
|
async function init() {
|
||||||
|
console.log('Initializing backend.');
|
||||||
|
|
||||||
|
dataSources = JSON.parse(JSON.stringify(dataSources));
|
||||||
|
Object.assign(dataSources.vn, {
|
||||||
|
host: process.env.DB_HOST,
|
||||||
|
port: process.env.DB_PORT
|
||||||
|
});
|
||||||
|
|
||||||
|
const bootOptions = {dataSources};
|
||||||
|
await new Promise((resolve, reject) => {
|
||||||
|
app.boot(bootOptions,
|
||||||
|
err => err ? reject(err) : resolve());
|
||||||
|
});
|
||||||
|
// FIXME: Workaround to wait for loopback to be ready
|
||||||
|
await app.models.Application.status();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function deinit() {
|
||||||
|
console.log('Stopping backend.');
|
||||||
|
await app.disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
init,
|
||||||
|
deinit
|
||||||
|
};
|
||||||
|
|
||||||
|
if (require.main === module)
|
||||||
|
init();
|
136
back/tests.js
136
back/tests.js
|
@ -2,30 +2,21 @@
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const Myt = require('@verdnatura/myt/myt');
|
const Myt = require('@verdnatura/myt/myt');
|
||||||
const Run = require('@verdnatura/myt/myt-run');
|
const Run = require('@verdnatura/myt/myt-run');
|
||||||
let dataSources = require('../loopback/server/datasources.json');
|
const helper = require('./tests-helper');
|
||||||
|
|
||||||
let server;
|
let server;
|
||||||
|
const isCI = process.argv[2] === 'ci';
|
||||||
|
const PARALLEL = false;
|
||||||
|
const TIMEOUT = 900000;
|
||||||
|
|
||||||
process.on('warning', warning => {
|
process.on('SIGINT', teardown);
|
||||||
console.log(warning.name);
|
process.on('exit', teardown);
|
||||||
console.log(warning.message);
|
process.on('uncaughtException', onError);
|
||||||
console.log(warning.stack);
|
process.on('unhandledRejection', onError);
|
||||||
});
|
|
||||||
|
|
||||||
process.on('SIGUSR2', rmServer);
|
async function setup() {
|
||||||
process.on('exit', rmServer);
|
|
||||||
|
|
||||||
async function rmServer() {
|
|
||||||
if (!server) return;
|
|
||||||
await server.rm();
|
|
||||||
server = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function test() {
|
|
||||||
console.log('Building and running DB container.');
|
console.log('Building and running DB container.');
|
||||||
|
|
||||||
const isCI = process.argv[2] === 'ci';
|
|
||||||
|
|
||||||
const myt = new Myt();
|
const myt = new Myt();
|
||||||
await myt.init({
|
await myt.init({
|
||||||
workspace: path.join(__dirname, '..'),
|
workspace: path.join(__dirname, '..'),
|
||||||
|
@ -36,69 +27,76 @@ async function test() {
|
||||||
});
|
});
|
||||||
server = await myt.run(Run);
|
server = await myt.run(Run);
|
||||||
await myt.deinit();
|
await myt.deinit();
|
||||||
|
|
||||||
const {dbConfig} = server;
|
const {dbConfig} = server;
|
||||||
|
process.env.DB_HOST = dbConfig.host;
|
||||||
|
process.env.DB_PORT = dbConfig.port;
|
||||||
|
|
||||||
console.log('Initializing backend.');
|
if (!PARALLEL)
|
||||||
|
await helper.init();
|
||||||
|
}
|
||||||
|
|
||||||
dataSources = JSON.parse(JSON.stringify(dataSources));
|
async function teardown() {
|
||||||
Object.assign(dataSources.vn, {
|
if (!server) return;
|
||||||
host: dbConfig.host,
|
|
||||||
port: dbConfig.port
|
|
||||||
});
|
|
||||||
|
|
||||||
const bootOptions = {dataSources};
|
if (!PARALLEL)
|
||||||
const app = require('vn-loopback/server/server');
|
await helper.deinit();
|
||||||
await new Promise((resolve, reject) => {
|
|
||||||
app.boot(bootOptions,
|
|
||||||
err => err ? reject(err) : resolve());
|
|
||||||
});
|
|
||||||
// FIXME: Workaround to wait for loopback to be ready
|
|
||||||
await app.models.Application.status();
|
|
||||||
|
|
||||||
console.log('Running tests.');
|
console.log('Stopping and removing DB container.');
|
||||||
|
await server.rm();
|
||||||
|
server = null;
|
||||||
|
}
|
||||||
|
|
||||||
const Jasmine = require('jasmine');
|
async function onError(err) {
|
||||||
const jasmine = new Jasmine();
|
await teardown();
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
|
|
||||||
const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
|
async function test() {
|
||||||
jasmine.addReporter(new SpecReporter({
|
let runner;
|
||||||
spec: {
|
const config = {
|
||||||
displaySuccessful: isCI,
|
globalSetup: setup,
|
||||||
displayPending: isCI
|
globalSetupTimeout: TIMEOUT,
|
||||||
},
|
globalTeardown: teardown,
|
||||||
summary: {
|
globalTeardownTimeout: TIMEOUT,
|
||||||
displayPending: false,
|
spec_dir: '.',
|
||||||
}
|
spec_files: [
|
||||||
}));
|
'back/**/*[sS]pec.js',
|
||||||
|
'loopback/**/*[sS]pec.js',
|
||||||
|
'modules/*/back/**/*.[sS]pec.js'
|
||||||
|
],
|
||||||
|
helpers: []
|
||||||
|
};
|
||||||
|
|
||||||
|
if (PARALLEL) {
|
||||||
|
const ParallelRunner = require('jasmine/parallel');
|
||||||
|
runner = new ParallelRunner({numWorkers: 1});
|
||||||
|
config.helpers.push(`back/tests-helper.js`);
|
||||||
|
} else {
|
||||||
|
const Jasmine = require('jasmine');
|
||||||
|
runner = new Jasmine();
|
||||||
|
|
||||||
|
const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
|
||||||
|
runner.addReporter(new SpecReporter({
|
||||||
|
spec: {
|
||||||
|
displaySuccessful: isCI,
|
||||||
|
displayPending: isCI
|
||||||
|
},
|
||||||
|
summary: {
|
||||||
|
displayPending: false,
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
if (isCI) {
|
if (isCI) {
|
||||||
const JunitReporter = require('jasmine-reporters');
|
const JunitReporter = require('jasmine-reporters');
|
||||||
jasmine.addReporter(new JunitReporter.JUnitXmlReporter());
|
runner.addReporter(new JunitReporter.JUnitXmlReporter());
|
||||||
|
runner.jasmine.DEFAULT_TIMEOUT_INTERVAL = TIMEOUT;
|
||||||
jasmine.exitOnCompletion = true;
|
|
||||||
jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 900000;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const backSpecs = [
|
// runner.loadConfigFile('back/jasmine.json');
|
||||||
'./back/**/*[sS]pec.js',
|
runner.loadConfig(config);
|
||||||
'./loopback/**/*[sS]pec.js',
|
await runner.execute();
|
||||||
'./modules/*/back/**/*.[sS]pec.js'
|
|
||||||
];
|
|
||||||
|
|
||||||
jasmine.loadConfig({
|
|
||||||
spec_dir: '.',
|
|
||||||
spec_files: backSpecs,
|
|
||||||
helpers: [],
|
|
||||||
});
|
|
||||||
|
|
||||||
await jasmine.execute();
|
|
||||||
|
|
||||||
console.log('Stopping.');
|
|
||||||
|
|
||||||
if (app) await app.disconnect();
|
|
||||||
await rmServer();
|
|
||||||
|
|
||||||
console.log('Tests ended.\n');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
test();
|
test();
|
||||||
|
|
|
@ -1,258 +0,0 @@
|
||||||
{
|
|
||||||
"name": "salix-front",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"lockfileVersion": 2,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"name": "salix-front",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"license": "GPL-3.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@uirouter/angularjs": "^1.0.20",
|
|
||||||
"angular": "^1.7.5",
|
|
||||||
"angular-animate": "^1.7.8",
|
|
||||||
"angular-moment": "^1.3.0",
|
|
||||||
"angular-translate": "^2.18.1",
|
|
||||||
"angular-translate-loader-partial": "^2.18.1",
|
|
||||||
"croppie": "^2.6.5",
|
|
||||||
"js-yaml": "^3.13.1",
|
|
||||||
"mg-crud": "^1.1.2",
|
|
||||||
"oclazyload": "^0.6.3",
|
|
||||||
"require-yaml": "0.0.1",
|
|
||||||
"validator": "^6.3.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@uirouter/angularjs": {
|
|
||||||
"version": "1.0.30",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@uirouter/core": "6.0.8"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"angular": ">=1.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@uirouter/core": {
|
|
||||||
"version": "6.0.8",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/angular": {
|
|
||||||
"version": "1.8.3",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/angular-animate": {
|
|
||||||
"version": "1.8.2",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/angular-moment": {
|
|
||||||
"version": "1.3.0",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"moment": ">=2.8.0 <3.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/angular-translate": {
|
|
||||||
"version": "2.19.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/angular-translate/-/angular-translate-2.19.1.tgz",
|
|
||||||
"integrity": "sha512-SrU40ndnL422vXiVoqVveCmSnCzMcIXxQgnl7Cv9krOKUg6B8KZK3ddYzidHR/rxVuySezYHNDgRvzQNKwAdNQ==",
|
|
||||||
"deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
|
|
||||||
"dependencies": {
|
|
||||||
"angular": "^1.8.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/angular-translate-loader-partial": {
|
|
||||||
"version": "2.19.0",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"angular-translate": "~2.19.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/argparse": {
|
|
||||||
"version": "1.0.10",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"sprintf-js": "~1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/croppie": {
|
|
||||||
"version": "2.6.5",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/esprima": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"license": "BSD-2-Clause",
|
|
||||||
"bin": {
|
|
||||||
"esparse": "bin/esparse.js",
|
|
||||||
"esvalidate": "bin/esvalidate.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/js-yaml": {
|
|
||||||
"version": "3.14.1",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"argparse": "^1.0.7",
|
|
||||||
"esprima": "^4.0.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"js-yaml": "bin/js-yaml.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mg-crud": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"angular": "^1.6.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/moment": {
|
|
||||||
"version": "2.29.4",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/oclazyload": {
|
|
||||||
"version": "0.6.3",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/require-yaml": {
|
|
||||||
"version": "0.0.1",
|
|
||||||
"license": "BSD",
|
|
||||||
"dependencies": {
|
|
||||||
"js-yaml": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/require-yaml/node_modules/argparse": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"license": "Python-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/require-yaml/node_modules/js-yaml": {
|
|
||||||
"version": "4.1.0",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"argparse": "^2.0.1"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"js-yaml": "bin/js-yaml.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/sprintf-js": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"license": "BSD-3-Clause"
|
|
||||||
},
|
|
||||||
"node_modules/validator": {
|
|
||||||
"version": "6.3.0",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.10"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@uirouter/angularjs": {
|
|
||||||
"version": "1.0.30",
|
|
||||||
"requires": {
|
|
||||||
"@uirouter/core": "6.0.8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@uirouter/core": {
|
|
||||||
"version": "6.0.8"
|
|
||||||
},
|
|
||||||
"angular": {
|
|
||||||
"version": "1.8.3"
|
|
||||||
},
|
|
||||||
"angular-animate": {
|
|
||||||
"version": "1.8.2"
|
|
||||||
},
|
|
||||||
"angular-moment": {
|
|
||||||
"version": "1.3.0",
|
|
||||||
"requires": {
|
|
||||||
"moment": ">=2.8.0 <3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"angular-translate": {
|
|
||||||
"version": "2.19.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/angular-translate/-/angular-translate-2.19.1.tgz",
|
|
||||||
"integrity": "sha512-SrU40ndnL422vXiVoqVveCmSnCzMcIXxQgnl7Cv9krOKUg6B8KZK3ddYzidHR/rxVuySezYHNDgRvzQNKwAdNQ==",
|
|
||||||
"requires": {
|
|
||||||
"angular": "^1.8.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"angular-translate-loader-partial": {
|
|
||||||
"version": "2.19.0",
|
|
||||||
"requires": {
|
|
||||||
"angular-translate": "~2.19.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"argparse": {
|
|
||||||
"version": "1.0.10",
|
|
||||||
"requires": {
|
|
||||||
"sprintf-js": "~1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"croppie": {
|
|
||||||
"version": "2.6.5"
|
|
||||||
},
|
|
||||||
"esprima": {
|
|
||||||
"version": "4.0.1"
|
|
||||||
},
|
|
||||||
"js-yaml": {
|
|
||||||
"version": "3.14.1",
|
|
||||||
"requires": {
|
|
||||||
"argparse": "^1.0.7",
|
|
||||||
"esprima": "^4.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mg-crud": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"requires": {
|
|
||||||
"angular": "^1.6.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"moment": {
|
|
||||||
"version": "2.29.4"
|
|
||||||
},
|
|
||||||
"oclazyload": {
|
|
||||||
"version": "0.6.3"
|
|
||||||
},
|
|
||||||
"require-yaml": {
|
|
||||||
"version": "0.0.1",
|
|
||||||
"requires": {
|
|
||||||
"js-yaml": ""
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"argparse": {
|
|
||||||
"version": "2.0.1"
|
|
||||||
},
|
|
||||||
"js-yaml": {
|
|
||||||
"version": "4.1.0",
|
|
||||||
"requires": {
|
|
||||||
"argparse": "^2.0.1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sprintf-js": {
|
|
||||||
"version": "1.0.3"
|
|
||||||
},
|
|
||||||
"validator": {
|
|
||||||
"version": "6.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -8,6 +8,7 @@
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://gitea.verdnatura.es/verdnatura/salix"
|
"url": "https://gitea.verdnatura.es/verdnatura/salix"
|
||||||
},
|
},
|
||||||
|
"packageManager": "pnpm@8.15.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@uirouter/angularjs": "^1.0.20",
|
"@uirouter/angularjs": "^1.0.20",
|
||||||
"angular": "^1.7.5",
|
"angular": "^1.7.5",
|
||||||
|
|
|
@ -0,0 +1,156 @@
|
||||||
|
lockfileVersion: '6.0'
|
||||||
|
|
||||||
|
settings:
|
||||||
|
autoInstallPeers: true
|
||||||
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
'@uirouter/angularjs':
|
||||||
|
specifier: ^1.0.20
|
||||||
|
version: 1.1.0(@uirouter/core@6.1.0)(angular@1.8.3)
|
||||||
|
angular:
|
||||||
|
specifier: ^1.7.5
|
||||||
|
version: 1.8.3
|
||||||
|
angular-animate:
|
||||||
|
specifier: ^1.7.8
|
||||||
|
version: 1.8.3
|
||||||
|
angular-moment:
|
||||||
|
specifier: ^1.3.0
|
||||||
|
version: 1.3.0
|
||||||
|
angular-translate:
|
||||||
|
specifier: ^2.18.1
|
||||||
|
version: 2.19.1
|
||||||
|
angular-translate-loader-partial:
|
||||||
|
specifier: ^2.18.1
|
||||||
|
version: 2.19.1
|
||||||
|
croppie:
|
||||||
|
specifier: ^2.6.5
|
||||||
|
version: 2.6.5
|
||||||
|
js-yaml:
|
||||||
|
specifier: ^3.13.1
|
||||||
|
version: 3.14.1
|
||||||
|
mg-crud:
|
||||||
|
specifier: ^1.1.2
|
||||||
|
version: 1.1.2
|
||||||
|
oclazyload:
|
||||||
|
specifier: ^0.6.3
|
||||||
|
version: 0.6.3
|
||||||
|
require-yaml:
|
||||||
|
specifier: 0.0.1
|
||||||
|
version: 0.0.1
|
||||||
|
validator:
|
||||||
|
specifier: ^6.3.0
|
||||||
|
version: 6.3.0
|
||||||
|
|
||||||
|
packages:
|
||||||
|
|
||||||
|
/@uirouter/angularjs@1.1.0(@uirouter/core@6.1.0)(angular@1.8.3):
|
||||||
|
resolution: {integrity: sha512-AhgxXhMfN6FU2HxDQqwDPbzmd6kTgvYCgV/kgoCAXfxAH6cFQrifViToC90Wdg6djBynHwA3L/KYP+iOYHkw6A==}
|
||||||
|
engines: {node: '>=4.0.0'}
|
||||||
|
peerDependencies:
|
||||||
|
'@uirouter/core': ^6.0.8
|
||||||
|
angular: '>=1.2.0'
|
||||||
|
dependencies:
|
||||||
|
'@uirouter/core': 6.1.0
|
||||||
|
angular: 1.8.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@uirouter/core@6.1.0:
|
||||||
|
resolution: {integrity: sha512-WFYh5NPAqRX4L2qlI4k62tgR6pxoqOBSW1CM1uBWCau4mAmgasYd5etJ9RoSJrSnCpCQ2km2Jltf0n5ql684MQ==}
|
||||||
|
engines: {node: '>=4.0.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/angular-animate@1.8.3:
|
||||||
|
resolution: {integrity: sha512-/LtTKvy5sD6MZbV0v+nHgOIpnFF0mrUp+j5WIxVprVhcrJriYpuCZf4S7Owj1o76De/J0eRzANUozNJ6hVepnQ==}
|
||||||
|
deprecated: For the actively supported Angular, see https://www.npmjs.com/package/@angular/core. AngularJS support has officially ended. For extended AngularJS support options, see https://goo.gle/angularjs-path-forward.
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/angular-moment@1.3.0:
|
||||||
|
resolution: {integrity: sha512-KG8rvO9MoaBLwtGnxTeUveSyNtrL+RNgGl1zqWN36+HDCCVGk2DGWOzqKWB6o+eTTbO3Opn4hupWKIElc8XETA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dependencies:
|
||||||
|
moment: 2.30.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/angular-translate-loader-partial@2.19.1:
|
||||||
|
resolution: {integrity: sha512-1rDe314zG09gwl/2qsLPwrxp5yehSsRi2vNJn/UwIJq20n0E0Fia/1K0nW9QAv67UFyvFuBOhl34n59I1qEHog==}
|
||||||
|
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||||
|
dependencies:
|
||||||
|
angular-translate: 2.19.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/angular-translate@2.19.1:
|
||||||
|
resolution: {integrity: sha512-SrU40ndnL422vXiVoqVveCmSnCzMcIXxQgnl7Cv9krOKUg6B8KZK3ddYzidHR/rxVuySezYHNDgRvzQNKwAdNQ==}
|
||||||
|
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||||
|
dependencies:
|
||||||
|
angular: 1.8.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/angular@1.8.3:
|
||||||
|
resolution: {integrity: sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw==}
|
||||||
|
deprecated: For the actively supported Angular, see https://www.npmjs.com/package/@angular/core. AngularJS support has officially ended. For extended AngularJS support options, see https://goo.gle/angularjs-path-forward.
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/argparse@1.0.10:
|
||||||
|
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||||
|
dependencies:
|
||||||
|
sprintf-js: 1.0.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/argparse@2.0.1:
|
||||||
|
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/croppie@2.6.5:
|
||||||
|
resolution: {integrity: sha512-IlChnVUGG5T3w2gRZIaQgBtlvyuYnlUWs2YZIXXR3H9KrlO1PtBT3j+ykxvy9eZIWhk+V5SpBmhCQz5UXKrEKQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/esprima@4.0.1:
|
||||||
|
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
hasBin: true
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/js-yaml@3.14.1:
|
||||||
|
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
argparse: 1.0.10
|
||||||
|
esprima: 4.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/js-yaml@4.1.0:
|
||||||
|
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
argparse: 2.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mg-crud@1.1.2:
|
||||||
|
resolution: {integrity: sha512-mAR6t0aQHKnT0QHKHpLOi0kNPZfO36iMpIoiLjFHxuio6mIJyuveBJ4VNlNXJRxLh32/FLADEb41/sYo7QUKFw==}
|
||||||
|
dependencies:
|
||||||
|
angular: 1.8.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/moment@2.30.1:
|
||||||
|
resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/oclazyload@0.6.3:
|
||||||
|
resolution: {integrity: sha512-HpOSYUgjtt6sTB/C6+FWsExR+9HCnXKsUA96RWkDXfv11C8Cc9X2DlR0WIZwFIiG6FQU0pwB5dhoYyut8bFAOQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/require-yaml@0.0.1:
|
||||||
|
resolution: {integrity: sha512-M6eVEgLPRbeOhgSCnOTtdrOOEQzbXRchg24Xa13c39dMuraFKdI9emUo97Rih0YEFzSICmSKg8w4RQp+rd9pOQ==}
|
||||||
|
dependencies:
|
||||||
|
js-yaml: 4.1.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/sprintf-js@1.0.3:
|
||||||
|
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/validator@6.3.0:
|
||||||
|
resolution: {integrity: sha512-BylxTwhqwjQI5MDJF7amCy/L0ejJO+74DvCsLV52Lq3+3bhVcVMKqNqOiNcQJm2G48u9EAcw4xFERAmFbwXM9Q==}
|
||||||
|
engines: {node: '>= 0.10'}
|
||||||
|
dev: false
|
|
@ -22,7 +22,7 @@ module.exports = Self => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const modelsLocale = new Map();
|
const modelsLocale = new Map();
|
||||||
const modulesDir = path.resolve(`${__dirname}/../../../../modules`);
|
const modulesDir = path.resolve(`${process.cwd()}/modules`);
|
||||||
const modules = fs.readdirSync(modulesDir);
|
const modules = fs.readdirSync(modulesDir);
|
||||||
|
|
||||||
for (const mod of modules) {
|
for (const mod of modules) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const packageJson = require('../../../package.json');
|
const packageJson = require(`${process.cwd()}/package.json`);
|
||||||
|
|
||||||
module.exports = function(options) {
|
module.exports = function(options) {
|
||||||
return function(req, res, next) {
|
return function(req, res, next) {
|
||||||
|
|
|
@ -28,7 +28,7 @@ module.exports = app;
|
||||||
|
|
||||||
let rootDir = __dirname;
|
let rootDir = __dirname;
|
||||||
let lbDir = path.resolve(`${rootDir}/..`);
|
let lbDir = path.resolve(`${rootDir}/..`);
|
||||||
let appDir = path.resolve(`${__dirname}/../..`);
|
let appDir = process.cwd();
|
||||||
let localeDir = `${lbDir}/locale`;
|
let localeDir = `${lbDir}/locale`;
|
||||||
let modulesDir = `${appDir}/modules`;
|
let modulesDir = `${appDir}/modules`;
|
||||||
|
|
||||||
|
@ -80,13 +80,13 @@ app.boot = function(bootOptions, callback) {
|
||||||
`${__dirname}/model-config.json`
|
`${__dirname}/model-config.json`
|
||||||
];
|
];
|
||||||
let modelSources = [
|
let modelSources = [
|
||||||
`loopback/common/models`,
|
`${lbDir}/common/models`,
|
||||||
`loopback/server/models`,
|
`${lbDir}/server/models`,
|
||||||
`${__dirname}/../common/models`
|
`${__dirname}/../common/models`
|
||||||
];
|
];
|
||||||
let mixinDirs = [
|
let mixinDirs = [
|
||||||
`loopback/common/mixins`,
|
`${lbDir}/common/mixins`,
|
||||||
`loopback/server/mixins`,
|
`${lbDir}/server/mixins`,
|
||||||
`${__dirname}/../common/mixins`
|
`${__dirname}/../common/mixins`
|
||||||
];
|
];
|
||||||
let bootDirs = [
|
let bootDirs = [
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
15
package.json
15
package.json
|
@ -11,10 +11,13 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20"
|
"node": ">=20"
|
||||||
},
|
},
|
||||||
|
"packageManager": "pnpm@8.15.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.2.2",
|
"axios": "^1.2.2",
|
||||||
"base64url": "^3.0.1",
|
"base64url": "^3.0.1",
|
||||||
|
"body-parser": "^1.19.2",
|
||||||
"compression": "^1.7.3",
|
"compression": "^1.7.3",
|
||||||
|
"ejs": "2.3.1",
|
||||||
"form-data": "^4.0.0",
|
"form-data": "^4.0.0",
|
||||||
"fs-extra": "^5.0.0",
|
"fs-extra": "^5.0.0",
|
||||||
"ftps": "^1.2.0",
|
"ftps": "^1.2.0",
|
||||||
|
@ -30,18 +33,22 @@
|
||||||
"loopback-boot": "3.3.1",
|
"loopback-boot": "3.3.1",
|
||||||
"loopback-component-explorer": "^6.5.0",
|
"loopback-component-explorer": "^6.5.0",
|
||||||
"loopback-component-storage": "3.6.1",
|
"loopback-component-storage": "3.6.1",
|
||||||
"loopback-connector-mysql": "^6.2.0",
|
"loopback-connector": "4.11.1",
|
||||||
|
"loopback-connector-mysql": "6.2.0",
|
||||||
"loopback-connector-remote": "^3.4.1",
|
"loopback-connector-remote": "^3.4.1",
|
||||||
"loopback-context": "^3.5.2",
|
"loopback-context": "^3.5.2",
|
||||||
|
"loopback-datasource-juggler": "3.36.1",
|
||||||
"md5": "^2.2.1",
|
"md5": "^2.2.1",
|
||||||
|
"mysql": "2.18.1",
|
||||||
"node-ssh": "^11.0.0",
|
"node-ssh": "^11.0.0",
|
||||||
"object.pick": "^1.3.0",
|
"object.pick": "^1.3.0",
|
||||||
"puppeteer": "^21.10.0",
|
"puppeteer": "^21.10.0",
|
||||||
"require-yaml": "0.0.1",
|
"require-yaml": "0.0.1",
|
||||||
"smbhash": "0.0.1",
|
"smbhash": "0.0.1",
|
||||||
"strong-error-handler": "^2.3.2",
|
"strong-error-handler": "^2.3.2",
|
||||||
"vn-loopback": "file:./loopback",
|
"vn-loopback": "link:./loopback",
|
||||||
"vn-print": "file:./print"
|
"vn-print": "link:./print",
|
||||||
|
"xmldom": "^0.6.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.7.7",
|
"@babel/core": "^7.7.7",
|
||||||
|
@ -74,7 +81,7 @@
|
||||||
"html-loader-jest": "^0.2.1",
|
"html-loader-jest": "^0.2.1",
|
||||||
"html-webpack-plugin": "^5.5.1",
|
"html-webpack-plugin": "^5.5.1",
|
||||||
"identity-obj-proxy": "^3.0.0",
|
"identity-obj-proxy": "^3.0.0",
|
||||||
"jasmine": "^5.0.0",
|
"jasmine": "^5.0.2",
|
||||||
"jasmine-reporters": "^2.4.0",
|
"jasmine-reporters": "^2.4.0",
|
||||||
"jasmine-spec-reporter": "^7.0.0",
|
"jasmine-spec-reporter": "^7.0.0",
|
||||||
"jest": "^26.0.1",
|
"jest": "^26.0.1",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -11,7 +11,9 @@
|
||||||
"url": "https://git.verdnatura.es/salix"
|
"url": "https://git.verdnatura.es/salix"
|
||||||
},
|
},
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
|
"packageManager": "pnpm@8.15.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"express": "4.14.0",
|
||||||
"fs-extra": "^7.0.1",
|
"fs-extra": "^7.0.1",
|
||||||
"intl": "^1.2.5",
|
"intl": "^1.2.5",
|
||||||
"js-yaml": "^3.13.1",
|
"js-yaml": "^3.13.1",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue