innetjs 1.12.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +0 -3
  2. package/bin/innet +202 -85
  3. package/constants.d.ts +3 -0
  4. package/declaration.d.ts +39 -0
  5. package/extract.d.ts +1 -0
  6. package/helpers.d.ts +5 -0
  7. package/index.d.ts +6 -2
  8. package/index.es6.js +222 -108
  9. package/index.js +201 -84
  10. package/package.json +19 -14
  11. package/templates/be/.env +0 -1
  12. package/templates/be/README.md +0 -15
  13. package/templates/be/package.json +0 -13
  14. package/templates/be/src/controller/index.tsx +0 -7
  15. package/templates/be/src/declaration.d.ts +0 -4
  16. package/templates/be/src/index.tsx +0 -6
  17. package/templates/be/src/view/App/App.css +0 -12
  18. package/templates/be/src/view/App/App.tsx +0 -15
  19. package/templates/be/src/view/App/index.ts +0 -1
  20. package/templates/be/src/view/Page/Page.css +0 -7
  21. package/templates/be/src/view/Page/Page.tsx +0 -24
  22. package/templates/be/src/view/Page/index.ts +0 -1
  23. package/templates/be/src/view/index.ts +0 -2
  24. package/templates/be/tsconfig.json +0 -31
  25. package/templates/fe/.env +0 -1
  26. package/templates/fe/README.md +0 -84
  27. package/templates/fe/package.json +0 -16
  28. package/templates/fe/public/favicon.ico +0 -0
  29. package/templates/fe/public/index.html +0 -14
  30. package/templates/fe/src/App.scss +0 -48
  31. package/templates/fe/src/App.tsx +0 -36
  32. package/templates/fe/src/componenst/Page/Page.scss +0 -22
  33. package/templates/fe/src/componenst/Page/Page.tsx +0 -18
  34. package/templates/fe/src/componenst/Page/index.ts +0 -1
  35. package/templates/fe/src/declaration.d.ts +0 -9
  36. package/templates/fe/src/index.tsx +0 -6
  37. package/templates/fe/src/pages/HomePage/HomePage.scss +0 -25
  38. package/templates/fe/src/pages/HomePage/HomePage.tsx +0 -24
  39. package/templates/fe/src/pages/HomePage/index.ts +0 -1
  40. package/templates/fe/tsconfig.json +0 -30
package/index.js CHANGED
@@ -1,18 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var path = require('path');
3
+ var path$1 = require('path');
4
4
  var fs = require('fs-extra');
5
5
  var http = require('http');
6
6
  var https = require('https');
7
+ var util = require('util');
8
+ var axios = require('axios');
7
9
  var logger = require('@cantinc/logger');
8
10
  var chalk = require('chalk');
9
- var util = require('util');
10
11
  var rollup = require('rollup');
11
12
  var commonjs = require('@rollup/plugin-commonjs');
12
13
  var pluginNodeResolve = require('@rollup/plugin-node-resolve');
13
14
  var rollupPluginTerser = require('rollup-plugin-terser');
14
15
  var typescript = require('rollup-plugin-typescript2');
15
- var postcss = require('rollup-plugin-postcss');
16
+ var styles = require('rollup-plugin-styles');
16
17
  var autoprefixer = require('autoprefixer');
17
18
  var express = require('express');
18
19
  var json = require('@rollup/plugin-json');
@@ -21,19 +22,24 @@ var proxy = require('express-http-proxy');
21
22
  var selector = require('cli-select');
22
23
  var jsx = require('rollup-plugin-innet-jsx');
23
24
  var filesize = require('rollup-plugin-filesize');
25
+ var image = require('@rollup/plugin-image');
26
+ var eslint = require('@rollup/plugin-eslint');
27
+ var linesAndColumns = require('lines-and-columns');
28
+ var unzipper = require('unzipper');
24
29
 
25
30
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
31
 
27
- var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
32
+ var path__default = /*#__PURE__*/_interopDefaultLegacy(path$1);
28
33
  var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
29
34
  var http__default = /*#__PURE__*/_interopDefaultLegacy(http);
30
35
  var https__default = /*#__PURE__*/_interopDefaultLegacy(https);
36
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
31
37
  var logger__default = /*#__PURE__*/_interopDefaultLegacy(logger);
32
38
  var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
33
39
  var rollup__default = /*#__PURE__*/_interopDefaultLegacy(rollup);
34
40
  var commonjs__default = /*#__PURE__*/_interopDefaultLegacy(commonjs);
35
41
  var typescript__default = /*#__PURE__*/_interopDefaultLegacy(typescript);
36
- var postcss__default = /*#__PURE__*/_interopDefaultLegacy(postcss);
42
+ var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
37
43
  var autoprefixer__default = /*#__PURE__*/_interopDefaultLegacy(autoprefixer);
38
44
  var express__default = /*#__PURE__*/_interopDefaultLegacy(express);
39
45
  var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
@@ -42,8 +48,10 @@ var proxy__default = /*#__PURE__*/_interopDefaultLegacy(proxy);
42
48
  var selector__default = /*#__PURE__*/_interopDefaultLegacy(selector);
43
49
  var jsx__default = /*#__PURE__*/_interopDefaultLegacy(jsx);
44
50
  var filesize__default = /*#__PURE__*/_interopDefaultLegacy(filesize);
51
+ var image__default = /*#__PURE__*/_interopDefaultLegacy(image);
52
+ var eslint__default = /*#__PURE__*/_interopDefaultLegacy(eslint);
45
53
 
46
- /*! *****************************************************************************
54
+ /******************************************************************************
47
55
  Copyright (c) Microsoft Corporation.
48
56
 
49
57
  Permission to use, copy, modify, and/or distribute this software for any
@@ -68,12 +76,77 @@ function __awaiter(thisArg, _arguments, P, generator) {
68
76
  });
69
77
  }
70
78
 
71
- const livereload = require('rollup-plugin-livereload');
72
- const { string } = require('rollup-plugin-string');
73
- const { exec, spawn } = require('child_process');
74
- const readline = require('readline');
75
- const execAsync = util.promisify(exec);
76
- require('dotenv').config();
79
+ const Writer = require('fstream').Writer;
80
+ const path = require('path');
81
+ const stream = require('stream');
82
+ const duplexer2 = require('duplexer2');
83
+ const Promise$1 = require('bluebird');
84
+ function Extract(opts, template) {
85
+ const reduceCount = 19 + template.length;
86
+ // make sure path is normalized before using it
87
+ opts.path = path.resolve(path.normalize(opts.path));
88
+ // @ts-ignore
89
+ const parser = new unzipper.Parse(opts);
90
+ const outStream = new stream.Writable({ objectMode: true });
91
+ outStream._write = function (entry, encoding, cb) {
92
+ if (entry.type === 'Directory')
93
+ return cb();
94
+ const extractPath = path.join(opts.path, entry.path.slice(reduceCount));
95
+ if (extractPath.indexOf(opts.path) !== 0) {
96
+ return cb();
97
+ }
98
+ const writer = opts.getWriter ? opts.getWriter({ path: extractPath }) : Writer({ path: extractPath });
99
+ entry.pipe(writer)
100
+ .on('error', cb)
101
+ .on('close', cb);
102
+ };
103
+ const extract = duplexer2(parser, outStream);
104
+ parser.once('crx-header', function (crxHeader) {
105
+ extract.crxHeader = crxHeader;
106
+ });
107
+ parser
108
+ .pipe(outStream)
109
+ .on('finish', function () {
110
+ extract.emit('close');
111
+ });
112
+ extract.promise = function () {
113
+ return new Promise$1(function (resolve, reject) {
114
+ extract.on('close', resolve);
115
+ extract.on('error', reject);
116
+ });
117
+ };
118
+ return extract;
119
+ }
120
+
121
+ const lintIncludeDom = [
122
+ '**/*.ts',
123
+ '**/*.tsx',
124
+ '**/*.js',
125
+ '**/*.jsx',
126
+ ];
127
+ const stringExcludeDom = [
128
+ '**/*.ts',
129
+ '**/*.tsx',
130
+ '**/*.js',
131
+ '**/*.jsx',
132
+ '**/*.json',
133
+ '**/*.css',
134
+ '**/*.scss',
135
+ '**/*.webp',
136
+ '**/*.gif',
137
+ '**/*.png',
138
+ '**/*.jpeg',
139
+ '**/*.jpg',
140
+ '**/*.svg',
141
+ ];
142
+ const stringExcludeNode = [
143
+ '**/*.ts',
144
+ '**/*.tsx',
145
+ '**/*.js',
146
+ '**/*.jsx',
147
+ '**/*.json',
148
+ ];
149
+
77
150
  function getFile(file) {
78
151
  file = path__default["default"].resolve(file);
79
152
  if (!fs__default["default"].existsSync(file)) {
@@ -96,16 +169,35 @@ function getFile(file) {
96
169
  }
97
170
  return file;
98
171
  }
172
+ function convertIndexFile(data, version) {
173
+ return __awaiter(this, void 0, void 0, function* () {
174
+ return data
175
+ .toString()
176
+ .replace('</head>', `<script type="module" defer src="index.js${version ? `?v=${version}` : ''}"></script></head>`);
177
+ });
178
+ }
99
179
  const reporter = (options, outputOptions, info) => {
100
180
  logger__default["default"].log(`${chalk__default["default"].yellow(info.fileName)} ${chalk__default["default"].green(info.bundleSize)} [ gzip: ${chalk__default["default"].green(info.gzipSize)} ]`);
101
181
  return '';
102
- };
182
+ };
183
+
184
+ const livereload = require('rollup-plugin-livereload');
185
+ const { string } = require('rollup-plugin-string');
186
+ const { exec, spawn } = require('child_process');
187
+ const readline = require('readline');
188
+ const execAsync = util.promisify(exec);
189
+ const copyFiles = util.promisify(fs__default["default"].copy);
190
+ require('dotenv').config();
103
191
  class InnetJS {
104
- constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || path__default["default"].join('public', 'build'), srcFolder = process.env.SRC_FOLDER || 'src', sourcemap = process.env.SOURCEMAP ? process.env.SOURCEMAP === 'true' : false, cssModules = process.env.CSS_MODULES ? process.env.CSS_MODULES === 'true' : false, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : false, sslKey = process.env.SSL_KEY || 'localhost.key', sslCrt = process.env.SSL_CRT || 'localhost.crt', proxy = process.env.PROXY || '', port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '*', } = {}) {
192
+ constructor({ projectFolder = process.env.PROJECT_FOLDER || '', publicFolder = process.env.PUBLIC_FOLDER || 'public', buildFolder = process.env.BUILD_FOLDER || 'build', srcFolder = process.env.SRC_FOLDER || 'src', sourcemap = process.env.SOURCEMAP ? process.env.SOURCEMAP === 'true' : false, cssModules = process.env.CSS_MODULES ? process.env.CSS_MODULES === 'true' : true, cssInJs = process.env.CSS_IN_JS ? process.env.CSS_IN_JS === 'true' : true, sslKey = process.env.SSL_KEY || 'localhost.key', sslCrt = process.env.SSL_CRT || 'localhost.crt', proxy = process.env.PROXY || '', port = process.env.PORT ? +process.env.PORT : 3000, api = process.env.API || '*', } = {}) {
105
193
  this.projectFolder = path__default["default"].resolve(projectFolder);
106
194
  this.publicFolder = path__default["default"].resolve(publicFolder);
107
195
  this.buildFolder = path__default["default"].resolve(buildFolder);
108
196
  this.srcFolder = path__default["default"].resolve(srcFolder);
197
+ this.publicIndexFile = path__default["default"].join(publicFolder, 'index.html');
198
+ this.buildIndexFile = path__default["default"].join(buildFolder, 'index.html');
199
+ this.devBuildFolder = path__default["default"].resolve(projectFolder, 'node_modules', '.cache', 'innetjs', 'build');
200
+ this.devBuildIndexFile = path__default["default"].join(this.devBuildFolder, 'index.html');
109
201
  this.sourcemap = sourcemap;
110
202
  this.cssModules = cssModules;
111
203
  this.cssInJs = cssInJs;
@@ -119,14 +211,18 @@ class InnetJS {
119
211
  init(appName, { template, force = false } = {}) {
120
212
  return __awaiter(this, void 0, void 0, function* () {
121
213
  const appPath = path__default["default"].resolve(appName);
122
- if (!template) {
214
+ const { data } = yield logger__default["default"].start('Get templates list', () => __awaiter(this, void 0, void 0, function* () { return yield axios__default["default"].get('https://api.github.com/repos/d8corp/innetjs-templates/branches'); }));
215
+ const templates = data.map(({ name }) => name).filter(name => name !== 'main');
216
+ if (!template || !templates.includes(template)) {
123
217
  logger__default["default"].log(chalk__default["default"].green(`Select one of those templates`));
124
218
  const { value } = yield selector__default["default"]({
125
- values: ['fe', 'be']
219
+ values: templates
126
220
  });
127
221
  template = value;
128
222
  readline.moveCursor(process.stdout, 0, -1);
129
- logger__default["default"].log(`Selected ${value} template`);
223
+ const text = `Selected template: ${chalk__default["default"].white(value)}`;
224
+ logger__default["default"].start(text);
225
+ logger__default["default"].end(text);
130
226
  }
131
227
  if (!force) {
132
228
  yield logger__default["default"].start('Check if app folder is available', () => __awaiter(this, void 0, void 0, function* () {
@@ -146,14 +242,16 @@ class InnetJS {
146
242
  }
147
243
  }));
148
244
  }
149
- const libPath = path__default["default"].resolve(__dirname, '..');
150
- const templatePath = path__default["default"].resolve(libPath, 'templates', template);
151
- yield logger__default["default"].start('Check if the template exists', () => __awaiter(this, void 0, void 0, function* () {
152
- if (!fs__default["default"].existsSync(templatePath)) {
153
- throw Error(`The template '${template}' is not exist`);
154
- }
245
+ yield logger__default["default"].start('Download template', () => __awaiter(this, void 0, void 0, function* () {
246
+ const { data } = yield axios__default["default"].get(`https://github.com/d8corp/innetjs-templates/archive/refs/heads/${template}.zip`, {
247
+ responseType: 'stream'
248
+ });
249
+ yield new Promise((resolve, reject) => {
250
+ data.pipe(Extract({
251
+ path: appPath,
252
+ }, template)).on('finish', resolve).on('error', reject);
253
+ });
155
254
  }));
156
- yield logger__default["default"].start('Copy files', () => fs__default["default"].copy(templatePath, appPath));
157
255
  yield logger__default["default"].start('Install packages', () => execAsync(`cd ${appPath} && npm i`));
158
256
  });
159
257
  }
@@ -164,6 +262,7 @@ class InnetJS {
164
262
  const pkg = node && (yield this.getPackage());
165
263
  const inputOptions = {
166
264
  input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
265
+ preserveEntrySignatures: 'strict',
167
266
  plugins: [
168
267
  commonjs__default["default"](),
169
268
  json__default["default"](),
@@ -182,34 +281,30 @@ class InnetJS {
182
281
  moduleDirectories: [path__default["default"].resolve(this.buildFolder, 'node_modules')]
183
282
  }), string({
184
283
  include: '**/*.*',
185
- exclude: [
186
- '**/*.ts',
187
- '**/*.tsx',
188
- '**/*.js',
189
- '**/*.jsx',
190
- '**/*.json',
191
- ]
284
+ exclude: stringExcludeNode,
192
285
  }));
193
286
  }
194
287
  else {
195
- inputOptions.plugins.push(pluginNodeResolve.nodeResolve(), string({
196
- include: '**/*.*',
197
- exclude: [
198
- '**/*.ts',
199
- '**/*.tsx',
200
- '**/*.js',
201
- '**/*.jsx',
202
- '**/*.json',
203
- '**/*.css',
204
- '**/*.scss',
205
- ]
206
- }), postcss__default["default"]({
207
- plugins: [autoprefixer__default["default"]()],
208
- extract: !this.cssInJs,
209
- modules: this.cssModules,
210
- sourceMap: this.sourcemap,
211
- minimize: true
212
- }));
288
+ inputOptions.plugins = [
289
+ eslint__default["default"]({
290
+ include: lintIncludeDom,
291
+ }),
292
+ ...inputOptions.plugins,
293
+ pluginNodeResolve.nodeResolve(),
294
+ image__default["default"](),
295
+ styles__default["default"]({
296
+ mode: this.cssInJs ? 'inject' : 'extract',
297
+ url: true,
298
+ plugins: [autoprefixer__default["default"]()],
299
+ modules: this.cssModules,
300
+ sourceMap: this.sourcemap,
301
+ minimize: true,
302
+ }),
303
+ string({
304
+ include: '**/*.*',
305
+ exclude: stringExcludeDom,
306
+ }),
307
+ ];
213
308
  outputOptions.format = 'es';
214
309
  outputOptions.plugins = [
215
310
  rollupPluginTerser.terser(),
@@ -222,6 +317,12 @@ class InnetJS {
222
317
  const bundle = yield rollup__default["default"].rollup(inputOptions);
223
318
  yield bundle.write(outputOptions);
224
319
  yield bundle.close();
320
+ if (!node) {
321
+ yield copyFiles(this.publicFolder, this.buildFolder);
322
+ const data = yield fs.promises.readFile(this.publicIndexFile);
323
+ const pkg = yield this.getPackage();
324
+ yield fs.promises.writeFile(this.buildIndexFile, yield convertIndexFile(data, pkg.version));
325
+ }
225
326
  }));
226
327
  if (pkg) {
227
328
  yield logger__default["default"].start('Copy package.json', () => __awaiter(this, void 0, void 0, function* () {
@@ -242,12 +343,13 @@ class InnetJS {
242
343
  start({ node = false, error = false } = {}) {
243
344
  return __awaiter(this, void 0, void 0, function* () {
244
345
  const indexExtension = yield this.getProjectExtension();
245
- const pkg = node && (yield this.getPackage());
246
- yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.buildFolder));
346
+ const pkg = yield this.getPackage();
347
+ yield logger__default["default"].start('Remove build', () => fs__default["default"].remove(this.devBuildFolder));
247
348
  const options = {
248
349
  input: path__default["default"].resolve(this.srcFolder, `index.${indexExtension}`),
350
+ preserveEntrySignatures: 'strict',
249
351
  output: {
250
- dir: this.buildFolder,
352
+ dir: this.devBuildFolder,
251
353
  sourcemap: true
252
354
  },
253
355
  plugins: [
@@ -270,13 +372,7 @@ class InnetJS {
270
372
  moduleDirectories: [path__default["default"].resolve(this.srcFolder, 'node_modules')]
271
373
  }), string({
272
374
  include: '**/*.*',
273
- exclude: [
274
- '**/*.ts',
275
- '**/*.tsx',
276
- '**/*.js',
277
- '**/*.jsx',
278
- '**/*.json',
279
- ]
375
+ exclude: stringExcludeNode,
280
376
  }), this.createServer(options.external));
281
377
  }
282
378
  else {
@@ -291,28 +387,42 @@ class InnetJS {
291
387
  ? fs__default["default"].readFileSync(this.sslCrt)
292
388
  : undefined;
293
389
  options.output.format = 'es';
294
- options.plugins.push(pluginNodeResolve.nodeResolve(), string({
295
- include: '**/*.*',
296
- exclude: [
297
- '**/*.ts',
298
- '**/*.tsx',
299
- '**/*.js',
300
- '**/*.jsx',
301
- '**/*.json',
302
- '**/*.css',
303
- '**/*.scss',
304
- ]
305
- }), postcss__default["default"]({
306
- plugins: [autoprefixer__default["default"]()],
307
- modules: this.cssModules,
308
- sourceMap: true,
309
- extract: !this.cssInJs,
310
- }), this.createClient(key, cert), livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {}))));
390
+ options.plugins = [
391
+ eslint__default["default"]({
392
+ include: lintIncludeDom,
393
+ }),
394
+ ...options.plugins,
395
+ pluginNodeResolve.nodeResolve(),
396
+ image__default["default"](),
397
+ styles__default["default"]({
398
+ mode: this.cssInJs ? 'inject' : 'extract',
399
+ url: true,
400
+ plugins: [autoprefixer__default["default"]()],
401
+ modules: this.cssModules,
402
+ sourceMap: true,
403
+ }),
404
+ string({
405
+ include: '**/*.*',
406
+ exclude: stringExcludeDom,
407
+ }),
408
+ this.createClient(key, cert, pkg),
409
+ livereload(Object.assign({ watch: this.publicFolder, verbose: false }, (key && cert ? { https: { key, cert } } : {})))
410
+ ];
311
411
  }
312
412
  const watcher = rollup__default["default"].watch(options);
313
- watcher.on('event', e => {
413
+ watcher.on('event', (e) => __awaiter(this, void 0, void 0, function* () {
314
414
  if (e.code == 'ERROR') {
315
- logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
415
+ if (e.error.code === 'UNRESOLVED_IMPORT') {
416
+ const [, importer, file] = e.error.message.match(/^Could not resolve '(.+)' from (.+)$/);
417
+ const text = (yield fs__default["default"].readFile(file)).toString();
418
+ const lines = new linesAndColumns.LinesAndColumns(text);
419
+ const { line, column } = lines.locationForIndex(text.indexOf(importer));
420
+ logger__default["default"].end('Bundling', e.error.message);
421
+ console.log(`ERROR in ${file}:${line + 1}:${column + 1}`);
422
+ }
423
+ else {
424
+ logger__default["default"].end('Bundling', error ? e.error.stack : e.error.message);
425
+ }
316
426
  }
317
427
  else if (e.code === 'BUNDLE_START') {
318
428
  logger__default["default"].start('Bundling');
@@ -320,7 +430,7 @@ class InnetJS {
320
430
  else if (e.code === 'BUNDLE_END') {
321
431
  logger__default["default"].end('Bundling');
322
432
  }
323
- });
433
+ }));
324
434
  });
325
435
  }
326
436
  run(file) {
@@ -412,14 +522,21 @@ class InnetJS {
412
522
  return this.package;
413
523
  });
414
524
  }
415
- createClient(key, cert) {
525
+ createClient(key, cert, pkg) {
416
526
  let app;
417
527
  return {
418
- writeBundle: () => {
528
+ writeBundle: () => __awaiter(this, void 0, void 0, function* () {
419
529
  var _a;
420
530
  if (!app) {
421
- const httpsUsing = !!(cert && key);
422
531
  app = express__default["default"]();
532
+ const update = () => __awaiter(this, void 0, void 0, function* () {
533
+ const data = yield fs.promises.readFile(this.publicIndexFile);
534
+ yield fs.promises.writeFile(this.devBuildIndexFile, yield convertIndexFile(data, pkg.version));
535
+ });
536
+ fs__default["default"].watch(this.publicIndexFile, update);
537
+ yield update();
538
+ const httpsUsing = !!(cert && key);
539
+ app.use(express__default["default"].static(this.devBuildFolder));
423
540
  app.use(express__default["default"].static(this.publicFolder));
424
541
  if ((_a = this.proxy) === null || _a === void 0 ? void 0 : _a.startsWith('http')) {
425
542
  app.use(this.api, proxy__default["default"](this.proxy, {
@@ -428,14 +545,14 @@ class InnetJS {
428
545
  }));
429
546
  }
430
547
  app.use(/^[^.]+$/, (req, res) => {
431
- res.sendFile(this.publicFolder + '/index.html');
548
+ res.sendFile(this.devBuildFolder + '/index.html');
432
549
  });
433
550
  const server = httpsUsing ? https__default["default"].createServer({ key, cert }, app) : http__default["default"].createServer(app);
434
551
  server.listen(this.port, () => {
435
552
  console.log(`${chalk__default["default"].green('➤')} Server started on http${httpsUsing ? 's' : ''}://localhost:${this.port}`);
436
553
  });
437
554
  }
438
- }
555
+ })
439
556
  };
440
557
  }
441
558
  createServer(external) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "innetjs",
3
- "version": "1.12.1",
3
+ "version": "2.0.2",
4
4
  "description": "CLI for innet boilerplate",
5
5
  "homepage": "https://github.com/d8corp/innetjs",
6
6
  "author": "Mikhail Lysikov <d8corp@mail.ru>",
@@ -32,28 +32,33 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@cantinc/logger": "^1.1.0",
35
- "@rollup/plugin-commonjs": "^21.0.2",
35
+ "@rollup/plugin-commonjs": "^22.0.2",
36
+ "@rollup/plugin-eslint": "^8.0.2",
37
+ "@rollup/plugin-image": "^2.1.1",
36
38
  "@rollup/plugin-json": "^4.1.0",
37
- "@rollup/plugin-node-resolve": "^13.1.3",
38
- "autoprefixer": "^10.4.4",
39
+ "@rollup/plugin-node-resolve": "^13.3.0",
40
+ "autoprefixer": "^10.4.8",
41
+ "axios": "^0.27.2",
39
42
  "chalk": "^4.1.2",
40
43
  "cli-select": "^1.1.2",
41
- "commander": "^9.1.0",
42
- "dotenv": "^16.0.0",
43
- "express": "^4.17.3",
44
+ "commander": "^9.4.0",
45
+ "dotenv": "^16.0.1",
46
+ "express": "^4.18.1",
44
47
  "express-http-proxy": "^1.6.3",
45
- "fs-extra": "^10.0.1",
48
+ "fs-extra": "^10.1.0",
49
+ "lines-and-columns": "^2.0.3",
46
50
  "node-sass": "^7.0.1",
47
- "postcss": "^8.4.12",
48
- "rollup": "^2.70.1",
51
+ "postcss": "^8.4.16",
52
+ "rollup": "^2.77.2",
49
53
  "rollup-plugin-filesize": "^9.1.2",
50
- "rollup-plugin-innet-jsx": "^1.2.0",
54
+ "rollup-plugin-innet-jsx": "^1.3.0",
51
55
  "rollup-plugin-livereload": "^2.0.5",
52
- "rollup-plugin-postcss": "^4.0.2",
53
56
  "rollup-plugin-string": "^3.0.0",
57
+ "rollup-plugin-styles": "^4.0.0",
54
58
  "rollup-plugin-terser": "^7.0.2",
55
- "rollup-plugin-typescript2": "^0.31.2",
59
+ "rollup-plugin-typescript2": "^0.32.1",
56
60
  "tmp": "^0.2.1",
57
- "typescript": "^4.6.2"
61
+ "typescript": "^4.7.4",
62
+ "unzipper": "^0.10.11"
58
63
  }
59
64
  }
package/templates/be/.env DELETED
@@ -1 +0,0 @@
1
- BUILD_FOLDER=build
@@ -1,15 +0,0 @@
1
- # be
2
-
3
- This is the simplest template of innet.js using for server side.
4
-
5
- To start development run:
6
- ```shell
7
- npm start
8
- ```
9
-
10
- To build the application run:
11
- ```shell
12
- npm run build
13
- ```
14
-
15
-
@@ -1,13 +0,0 @@
1
- {
2
- "scripts": {
3
- "start": "innetjs start -n",
4
- "build": "innetjs build -n"
5
- },
6
- "dependencies": {
7
- "@innet/server": "^1.1.0",
8
- "innet": "^1.0.0"
9
- },
10
- "devDependencies": {
11
- "innetjs": "^1.12.1"
12
- }
13
- }
@@ -1,7 +0,0 @@
1
- import { App } from '/view'
2
-
3
- export default (
4
- <server onStart={url => console.log(`open: ${url}`)}>
5
- <App />
6
- </server>
7
- )
@@ -1,4 +0,0 @@
1
- declare module '*.css' {
2
- const content: Record<string, string>
3
- export default content
4
- }
@@ -1,6 +0,0 @@
1
- import innet from 'innet'
2
- import server from '@innet/server'
3
-
4
- import app from '/controller'
5
-
6
- innet(app, server)
@@ -1,12 +0,0 @@
1
- .root {
2
- position: absolute;
3
- top: 50%;
4
- left: 50%;
5
- transform: translate(-50%, -50%);
6
- }
7
-
8
- .header {
9
- text-align: center;
10
- font-family: sans-serif;
11
- font-size: 40px;
12
- }
@@ -1,15 +0,0 @@
1
- import { Page } from '../Page'
2
-
3
- import appStyles from './App.css'
4
-
5
- export function App () {
6
- return (
7
- <Page title='innetjs application' styles={appStyles}>
8
- <div class='root'>
9
- <h1 class='header'>
10
- Welcome to the innet application!
11
- </h1>
12
- </div>
13
- </Page>
14
- )
15
- }
@@ -1 +0,0 @@
1
- export * from './App'
@@ -1,7 +0,0 @@
1
- html, body {
2
- margin: 0;
3
- padding: 0;
4
- height: 100vh;
5
- background: #2B2B2B;
6
- color: #F7B756;
7
- }
@@ -1,24 +0,0 @@
1
- import pageStyles from './Page.css'
2
-
3
- export function Page ({ title, styles }, children) {
4
- return (
5
- <header name='content-type' value='text/html; charset=utf-8'>
6
- <html lang='ru'>
7
- <head>
8
- <meta charset="UTF-8"/>
9
- <meta
10
- name="viewport"
11
- content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
12
- />
13
- <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
14
- <style>{pageStyles}</style>
15
- <style>{styles}</style>
16
- <title>{title}</title>
17
- </head>
18
- <body>
19
- {children}
20
- </body>
21
- </html>
22
- </header>
23
- )
24
- }
@@ -1 +0,0 @@
1
- export * from './Page'
@@ -1,2 +0,0 @@
1
- export * from './App'
2
- export * from './Page'