lucy-cli 0.0.4

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 (96) hide show
  1. package/.drone/.drone.yml +156 -0
  2. package/.drone/mail_prod_build.hbs +319 -0
  3. package/.drone/mail_prod_deploy.hbs +309 -0
  4. package/.drone/mail_satges.hbs +309 -0
  5. package/.drone/telegram_prod_build.tpl +23 -0
  6. package/.drone/telegram_prod_deploy.tpl +20 -0
  7. package/.drone/telegram_stages.tpl +20 -0
  8. package/.eslintrc.cjs +96 -0
  9. package/.eslintrc.json +3 -0
  10. package/.nvmrc +1 -0
  11. package/.yarnrc.yml +5 -0
  12. package/README.md +1 -0
  13. package/dist/Gulpfile.d.ts +28 -0
  14. package/dist/Gulpfile.js +179 -0
  15. package/dist/cli.d.ts +2 -0
  16. package/dist/cli.js +44 -0
  17. package/dist/dev.d.ts +1 -0
  18. package/dist/dev.js +14 -0
  19. package/dist/gulp/backend copy.d.ts +4 -0
  20. package/dist/gulp/backend copy.js +50 -0
  21. package/dist/gulp/backend.d.ts +4 -0
  22. package/dist/gulp/backend.js +49 -0
  23. package/dist/gulp/checks.d.ts +3 -0
  24. package/dist/gulp/checks.js +119 -0
  25. package/dist/gulp/clean copy.d.ts +2 -0
  26. package/dist/gulp/clean copy.js +19 -0
  27. package/dist/gulp/clean.d.ts +1 -0
  28. package/dist/gulp/clean.js +14 -0
  29. package/dist/gulp/copy.d.ts +3 -0
  30. package/dist/gulp/copy.js +22 -0
  31. package/dist/gulp/pages copy.d.ts +3 -0
  32. package/dist/gulp/pages copy.js +22 -0
  33. package/dist/gulp/pages.d.ts +3 -0
  34. package/dist/gulp/pages.js +22 -0
  35. package/dist/gulp/public.d.ts +4 -0
  36. package/dist/gulp/public.js +50 -0
  37. package/dist/gulp/styles.d.ts +3 -0
  38. package/dist/gulp/styles.js +17 -0
  39. package/dist/gulp/templates.d.ts +1 -0
  40. package/dist/gulp/templates.js +21 -0
  41. package/dist/gulp/types.d.ts +5 -0
  42. package/dist/gulp/types.js +73 -0
  43. package/dist/index.d.ts +2 -0
  44. package/dist/index.js +88 -0
  45. package/dist/init.d.ts +7 -0
  46. package/dist/init.js +176 -0
  47. package/dist/settings.json +91 -0
  48. package/files/.drone/.drone.yml +156 -0
  49. package/files/.drone/mail_prod_build.hbs +319 -0
  50. package/files/.drone/mail_prod_deploy.hbs +309 -0
  51. package/files/.drone/mail_satges.hbs +309 -0
  52. package/files/.drone/telegram_prod_build.tpl +23 -0
  53. package/files/.drone/telegram_prod_deploy.tpl +20 -0
  54. package/files/.drone/telegram_stages.tpl +20 -0
  55. package/files/.eslintrc.cjs +96 -0
  56. package/files/.eslintrc.json +3 -0
  57. package/files/.nvmrc +1 -0
  58. package/files/.yarnrc.yml +5 -0
  59. package/files/currents.config.js +5 -0
  60. package/files/cypress.config.ts +12 -0
  61. package/files/docs.tsconfig.json +37 -0
  62. package/files/jest.config.ts +28 -0
  63. package/files/lucy.json +5 -0
  64. package/files/tsconfig.json +51 -0
  65. package/files/typedoc.json +19 -0
  66. package/files/typescript/.eslintrc.json +35 -0
  67. package/files/typescript/__mocks__/.gitkeep +0 -0
  68. package/files/typescript/backend/index.ts +0 -0
  69. package/files/typescript/backend/permissions.json +0 -0
  70. package/files/typescript/pages/.gitkeep +0 -0
  71. package/files/typescript/public/index.ts +0 -0
  72. package/files/typescript/styles/.gitkeep +0 -0
  73. package/files/typescript/styles/global.scss +0 -0
  74. package/files/typescript/tsconfig.json +45 -0
  75. package/files/typescript/types/.gitkeep +0 -0
  76. package/package.json +83 -0
  77. package/settings/backend-settings.json +19 -0
  78. package/settings/master-settings.json +17 -0
  79. package/settings/page-settings.json +18 -0
  80. package/settings/public-settings.json +21 -0
  81. package/src/Gulpfile.ts +271 -0
  82. package/src/dev.ts +20 -0
  83. package/src/gulp/backend.ts +52 -0
  84. package/src/gulp/checks.ts +127 -0
  85. package/src/gulp/clean.ts +21 -0
  86. package/src/gulp/copy.ts +26 -0
  87. package/src/gulp/pages.ts +25 -0
  88. package/src/gulp/public.ts +56 -0
  89. package/src/gulp/styles.ts +20 -0
  90. package/src/gulp/templates.ts +25 -0
  91. package/src/gulp/types.ts +87 -0
  92. package/src/index.ts +132 -0
  93. package/src/init.ts +191 -0
  94. package/src/settings.json +91 -0
  95. package/src/types.d.ts +5 -0
  96. package/tsconfig.json +34 -0
@@ -0,0 +1,87 @@
1
+ import chalk from 'chalk';
2
+ import gulp from 'gulp';
3
+ import { createGulpEsbuild } from 'gulp-esbuild';
4
+ import rename from 'gulp-rename';
5
+ import * as path from 'path';
6
+ import { File, TaskOptions } from '../Gulpfile';
7
+ import clean from 'gulp-clean';
8
+ import replace from 'gulp-string-replace';
9
+ import foreach from 'gulp-foreach';
10
+ import jeditor from 'gulp-json-editor';
11
+ import merge from 'merge-stream';
12
+ import * as insert from 'gulp-insert';
13
+
14
+ export function updateWixTypes(options: TaskOptions) {
15
+ const { publicSettings, backendSettings, masterSettings, pageSettings, replaceOpions } = options;
16
+ let count = 0;
17
+ return () => {
18
+ return gulp.src(['./.wix/types/*/*.json', '!./.wix/types/wix-code-types/*.json'])
19
+ .pipe(foreach(function(stream: NodeJS.ReadableStream, file: File) {
20
+ count ++;
21
+ if (file.dirname.endsWith('public')) return stream.pipe(jeditor(publicSettings));
22
+ if (file.dirname.endsWith('backend')) return stream.pipe(jeditor(backendSettings));
23
+ if (file.dirname.endsWith('masterPage')) return stream.pipe(jeditor(masterSettings));
24
+
25
+ return stream.pipe(jeditor(pageSettings));
26
+ }))
27
+ .pipe(replace('masterPage.masterPage.js', 'masterPage.ts', replaceOpions))
28
+ .pipe(replace('/src/', '/typescript/', replaceOpions))
29
+ .pipe(replace('.js"', '.ts"', replaceOpions))
30
+ // .pipe(tap(function(file) { // tap into the stream to log the output
31
+ // console.log(file.contents?.toString() ?? 'no content');
32
+ // }))
33
+ .pipe(gulp.dest((file: File) => {
34
+ const filePath = file.dirname;
35
+ const outputDir = path.dirname(filePath);
36
+
37
+ return path.join(outputDir);
38
+ }))
39
+ .on('error', function () {
40
+ console.log(chalk.red.underline.bold('Modification of WIX configs failed!'));
41
+ this.emit('end');
42
+ })
43
+ .on('end', function() { console.log(chalk.blueBright.underline(`Modification of ${count} WIX configs succeeded!`)); });
44
+ }
45
+ }
46
+
47
+
48
+ export function addTypes(options: TaskOptions, done: gulp.TaskFunctionCallback): NodeJS.ReadWriteStream {
49
+ const { replaceOpions, cwd } = options;
50
+ console.log('CWD', cwd);
51
+ const processPages = gulp.src(['./.wix/types/wix-code-types/dist/types/page/$w.d.ts'])
52
+ .pipe(replace('declare namespace \\$w {', ' declare namespace $w{\nconst api: $w.Api;\n', replaceOpions))
53
+ .pipe(gulp.dest('./.wix/types/wix-code-types/dist/types/page/'));
54
+
55
+ const exportTypes = gulp.src(['./.wix/types/wix-code-types/dist/types/common/*.d.ts', '!./.wix/types/wix-code-types/dist/types/common/$w.d.ts'])
56
+ .pipe(replace('interface ', 'export interface ', replaceOpions))
57
+ .pipe(replace('enum ', 'export enum ', replaceOpions))
58
+ .pipe(replace('type ', 'export type ', replaceOpions))
59
+ .pipe(gulp.dest('./.wix/types/wix-code-types/dist/types/common/'));
60
+
61
+ const exportTypesBeta = gulp.src(['./.wix/types/wix-code-types/dist/types/beta/common/*.d.ts', '!./.wix/types/wix-code-types/dist/types/beta/common/$w.d.ts'])
62
+ .pipe(replace('interface ', 'export interface ', replaceOpions))
63
+ .pipe(replace('enum ', 'export enum ', replaceOpions))
64
+ .pipe(replace('type ', 'export type ', replaceOpions))
65
+ .pipe(gulp.dest('./.wix/types/wix-code-types/dist/types/beta/common/'));
66
+
67
+ const processCommon = gulp.src(['./.wix/types/wix-code-types/dist/types/common/$w.d.ts'])
68
+ .pipe(insert.prepend("import { FrontendAPISchema } from '../../../../../../typescript/public/models/common/frontendApi.model';\nimport '@total-typescript/ts-reset';\n"))
69
+ .pipe(replace('namespace \\$w {', 'declare namespace $w{\ntype Api = FrontendAPISchema;\n', replaceOpions))
70
+ .pipe(gulp.dest('./.wix/types/wix-code-types/dist/types/common/'));
71
+
72
+ return merge(
73
+ processPages,
74
+ processCommon,
75
+ exportTypesBeta,
76
+ exportTypes,
77
+ )
78
+ .on('error', function() {
79
+ console.log(chalk.red.underline.bold('Add of new Types (store & Global) failed!'));
80
+ this.emit('end');
81
+ done();
82
+ })
83
+ .on('end', function() {
84
+ console.log(chalk.blueBright.underline('Add of new Types (store & Global) succeeded!'));
85
+ done();
86
+ });
87
+ };
package/src/index.ts ADDED
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env node
2
+ import { dirname } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ import { spawnSync } from 'child_process';
5
+ import { existsSync, mkdirSync, promises as fsPromises } from 'fs';
6
+ import chalk from 'chalk';
7
+ import settings from './settings.json' assert { type: 'json' };
8
+
9
+ import { join } from 'path';
10
+ import fs from 'fs/promises';
11
+
12
+ import { init } from './init.js';
13
+ import { dev } from './dev.js';
14
+
15
+ type ModuleSettings = {
16
+ packageRoot: string;
17
+ targetFolder: string;
18
+ args: string[];
19
+ wixConfigPath: string;
20
+ lucyConfigPath: string;
21
+ }
22
+
23
+ type ProjectSettings = {
24
+ packages?: Record<string, string>;
25
+ modules?: Record<string, string>;
26
+ }
27
+
28
+ // eslint-disable-next-line @typescript-eslint/naming-convention
29
+ const __filename = fileURLToPath(import.meta.url);
30
+ // eslint-disable-next-line @typescript-eslint/naming-convention
31
+ const __dirname = dirname(__filename);
32
+
33
+
34
+
35
+ /**
36
+ *
37
+ */
38
+ async function main() {
39
+
40
+ const moduleSettings: ModuleSettings = {
41
+ packageRoot: dirname(__dirname),
42
+ targetFolder: process.cwd(),
43
+ args: process.argv.slice(2),
44
+ wixConfigPath: join(process.cwd(), 'wix.config.json'),
45
+ lucyConfigPath: join(process.cwd(), 'lucy.json')
46
+ }
47
+
48
+ let projectSettings: ProjectSettings | undefined;
49
+
50
+ if (!existsSync(moduleSettings.wixConfigPath)) {
51
+ console.log(chalk.red.underline.bold(`This is not a WIX project ${moduleSettings.targetFolder}`));
52
+ return;
53
+ }
54
+
55
+ const packageJSONraw = await fs.readFile(join(moduleSettings.targetFolder, 'package.json'), 'utf8');
56
+ const packageJSON = JSON.parse(packageJSONraw);
57
+
58
+ if(existsSync(moduleSettings.lucyConfigPath)) {
59
+ try {
60
+ const data = await fs.readFile(moduleSettings.lucyConfigPath, 'utf8');
61
+ projectSettings = JSON.parse(data);
62
+ } catch (parseError) {
63
+ console.error(chalk.red.underline.bold('Error parsing Lucy.json', parseError));
64
+ }
65
+ } else {
66
+ console.log(chalk.blueBright.underline.bold('Project not Intialized!'));
67
+ return;
68
+ }
69
+
70
+
71
+
72
+ if(packageJSON?.wixLucy?.intialized && ! args.includes('-f')) {
73
+ console.error(chalk.red.underline.bold(`This project is already initialized ${moduleSettings.targetFolder}`));
74
+ return;
75
+ }
76
+
77
+ console.log({ args, cwd });
78
+ if(args.includes('help') || args.includes('-h')){
79
+ console.log('Help is on the way!');
80
+
81
+ return;
82
+ }
83
+ if(args.includes('version') || args.includes('-v')){
84
+ console.log('1.0.0');
85
+
86
+ return;
87
+ }
88
+
89
+ if(args.includes('init')){
90
+ init(cwd, packageRoot, args);
91
+
92
+ return;
93
+ }
94
+
95
+ if(args.includes('dev')){
96
+ dev(cwd, args);
97
+
98
+ return;
99
+ }
100
+
101
+ if(args.includes('sync')){
102
+ console.log('Hello serve');
103
+
104
+ return;
105
+ }
106
+
107
+ }
108
+
109
+ main();
110
+
111
+ // const fs = require("fs"),
112
+ // path = require("path")
113
+
114
+ // /** Parse the command line */
115
+ // var args = process.argv.slice(2);
116
+
117
+ // // Validate input
118
+ // if (args.length !== 2) {
119
+ // console.log("Warning: Requires 2 arguments");
120
+ // console.log("node index.js [path/source.html] [targetfile]");
121
+ // process.exit();
122
+ // }
123
+
124
+ // const src = args[0];
125
+ // const target = args[1];
126
+ // const dirsrc = path.dirname(src);
127
+
128
+ // if (!fs.existsSync(src)) {
129
+ // console.log("Error: Source file doesn't exist. Given: ", src);
130
+ // process.exit();
131
+ // }
132
+
package/src/init.ts ADDED
@@ -0,0 +1,191 @@
1
+ import chalk from 'chalk';
2
+ import { existsSync, mkdirSync, promises as fsPromises } from 'fs';
3
+ import fse from 'fs-extra';
4
+ import { join } from 'path';
5
+ import { simpleGit, SimpleGit, SimpleGitOptions } from 'simple-git';
6
+ import fs from 'fs/promises';
7
+ import { spawnSync } from 'child_process';
8
+ import settings from './settings.json' assert { type: 'json' };
9
+ import path from 'path';
10
+
11
+
12
+ type ProjectSettings = {
13
+ packages?: Record<string, string>;
14
+ modules?: Record<string, string>;
15
+ }
16
+
17
+ /**
18
+ * Init Lucy project
19
+ * @param {string} cwd Current working directory
20
+ * @param {string} packageRoot Package root directory
21
+ * @returns {void}
22
+ */
23
+ export async function init(cwd: string, packageRoot:string, args: string[]) {
24
+ const sourceFolder = join(packageRoot, 'files');
25
+ const targetFolder = cwd;
26
+ let projectSettings: ProjectSettings|undefined;
27
+
28
+ if(existsSync(join(targetFolder, 'lucy.json'))) {
29
+ try {
30
+ const lucyConfig = join(targetFolder, 'lucy.json');
31
+ const data = await fs.readFile(lucyConfig, 'utf8');
32
+ projectSettings = JSON.parse(data);
33
+ } catch (parseError) {
34
+ console.error(chalk.red.underline.bold('Error parsinc Lucy.json', parseError));
35
+ }
36
+ } else {
37
+ const lucyConfig = {
38
+ packages: settings.packages,
39
+ modules: settings.modules
40
+ }
41
+ await fs.writeFile(join(targetFolder, 'lucy.json'), JSON.stringify(lucyConfig, null, 2), 'utf8');
42
+ console.log(chalk.blueBright.underline.bold('Created Lucy config file!'));
43
+ }
44
+
45
+ const wixConfigPath = join(targetFolder, 'wix.config.json');
46
+ const packageJSONraw = await fs.readFile(join(targetFolder, 'package.json'), 'utf8');
47
+ const packageJSON = JSON.parse(packageJSONraw);
48
+
49
+ if(packageJSON?.wixLucy?.intialized && ! args.includes('-f')) {
50
+ console.error(chalk.red.underline.bold(`This project is already initialized ${targetFolder}`));
51
+ return;
52
+ }
53
+
54
+ if (!existsSync(wixConfigPath)) {
55
+ console.error(chalk.red.underline.bold(`This is not a WIX project ${targetFolder}`));
56
+ return;
57
+ }
58
+
59
+ await copyFolder(sourceFolder, targetFolder);
60
+
61
+ await editJson(join(targetFolder, 'package.json'), ['type', 'scripts', 'wixLucy'], ['module', settings.scripts, settings.lucySettings ]);
62
+ await stringReplace(join(targetFolder, 'currents.config.js'), ['__ProjectName__'], [path.basename(targetFolder)]);
63
+
64
+ await installPackages(projectSettings?.packages ? projectSettings?.packages : settings.packages, targetFolder);
65
+
66
+ await editJson(join(targetFolder, 'jsconfig.json'), ['compilerOptions', 'exclude'], [settings.wixSettings.compilerOptions, settings.wixSettings.exclude]);
67
+ await editJson(join(targetFolder, 'typedoc.json'), ['name'], [path.basename(targetFolder)]);
68
+
69
+ await gitInit(targetFolder, projectSettings?.modules ? projectSettings?.modules : settings.modules);
70
+ console.log(chalk.blueBright.underline.bold('Done!'));
71
+ }
72
+
73
+ /**
74
+ * Copy files from source to target
75
+ * @param {string} source Source folder
76
+ * @param {string} target Target folder
77
+ * @returns {Promise<void>}
78
+ */
79
+ async function copyFolder(source: string, target: string): Promise<void> {
80
+ if (!existsSync(target)){
81
+ console.error(chalk.red.underline.bold(`Target folder doesn't exist: ${target}`));
82
+ return;
83
+ }
84
+
85
+ try {
86
+ const files = await fsPromises.readdir(source);
87
+ for (const file of files){
88
+ const sourcePath = join(source, file);
89
+ const targetPath = join(target, file);
90
+
91
+ if (file === 'lucy.json' && existsSync(targetPath)){
92
+ continue;
93
+ }
94
+ const stats = await fsPromises.stat(sourcePath);
95
+ if (stats.isDirectory()){
96
+ if (!existsSync(file)){
97
+ mkdirSync(file);
98
+ }
99
+ await fse.copySync(sourcePath, targetPath, { overwrite: true });
100
+ } else {
101
+ fse.copySync(sourcePath, targetPath, { overwrite: true });
102
+ }
103
+ }
104
+ } catch (err){
105
+ console.error(chalk.red.underline.bold(err));
106
+ } finally {
107
+ console.log(chalk.blueBright.underline.bold('Copy files completed!'));
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Edit Json files
113
+ * @param {string} filePath File path
114
+ * @param {string[]} keys Keys to edit
115
+ * @param {string[]} values Values to edit
116
+ * @returns {void}
117
+ */
118
+ async function editJson(filePath: string, keys: string[], values: string[] | Object[] ) {
119
+ try {
120
+ const data = await fs.readFile(filePath, 'utf8');
121
+
122
+ let jsonData;
123
+ try {
124
+ jsonData = JSON.parse(data);
125
+ } catch (parseError) {
126
+ console.error(chalk.red.underline.bold('Error parsing JSON:', parseError));
127
+ return;
128
+ }
129
+
130
+ for (const key of keys){
131
+ const index = keys.indexOf(key);
132
+ const value = values[index];
133
+ jsonData[key] = value;
134
+ }
135
+
136
+ const updatedJsonData = JSON.stringify(jsonData, null, 2);
137
+ await fs.writeFile(filePath, updatedJsonData, 'utf8');
138
+ } catch (err) {
139
+ console.log(chalk.red.underline.bold(err));
140
+ } finally {
141
+ console.log(chalk.blueBright.underline.bold(`File ${filePath} updated successfully!`));
142
+ }
143
+ }
144
+
145
+ async function stringReplace(filePath: string, keys: string[], values: string[]) {
146
+ try {
147
+ let modifiedContent: string = '';
148
+ const data = await fs.readFile(filePath, 'utf8');
149
+
150
+ for (const key of keys){
151
+ const index = keys.indexOf(key);
152
+ const value = values[index];
153
+ const regex = new RegExp(`${key}`, 'g');
154
+ modifiedContent = data.replace(regex, `${value}`);
155
+ }
156
+
157
+ await fs.writeFile(filePath, modifiedContent, 'utf8');
158
+ } catch (err) {
159
+ console.log(chalk.red.underline.bold(err));
160
+ } finally {
161
+ console.log(chalk.blueBright.underline.bold(`File ${filePath} updated successfully!`));
162
+ }
163
+ }
164
+
165
+ async function installPackages(packages: Record<string, string>, cwd: string) {
166
+ const packageNames = Object.keys(packages);
167
+ const packageVersions = Object.values(packages);
168
+ const packageNamesAndVersions = packageNames.map((name, index) => `${name}@${packageVersions[index]}`);
169
+ const command = `yarn add ${packageNamesAndVersions.join(' ')}`;
170
+ const result = spawnSync(command, { shell: true, stdio: 'inherit' });
171
+ if (result.error) {
172
+ console.error(chalk.red.underline.bold(`Command failed: ${result.error.message}`));
173
+ } else {
174
+ console.log(chalk.blueBright.underline.bold(`Command succeeded: ${result.stdout}`));
175
+ }
176
+ }
177
+
178
+ async function gitInit(cwd: string, modules: Record<string, string>) {
179
+ const git = simpleGit({ baseDir: cwd });
180
+ for (const [name, url] of Object.entries(modules)) {
181
+ console.log(chalk.green.underline.bold(`Cloning ${name}`));
182
+ try {
183
+ await git.submoduleAdd(url, name)
184
+ } catch (e) {
185
+ console.error(chalk.red.underline.bold(`Command failed: ${e}`));
186
+ } finally {
187
+ console.log(chalk.blueBright.underline.bold(`Cloned ${name}`));
188
+ }
189
+ }
190
+ console.log(chalk.blueBright.underline.bold(`All Modules cloned!`));
191
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "modules": {
3
+ "wix-lucy-lib": "git@github.com:Integral-Systems/wix-lucy-lib.git"
4
+ },
5
+ "wixSettings": {
6
+ "compilerOptions": {
7
+ "composite": true,
8
+ "noEmit": false,
9
+ "lib": [
10
+ "DOM"
11
+ ],
12
+ "jsx": "react"
13
+ },
14
+ "exclude": [
15
+ "**/*.js"
16
+ ]
17
+ },
18
+ "lucySettings": {
19
+ "intialized": true,
20
+ },
21
+ "packages": {
22
+ "@danpercic86/helpful-decorators": "^2.4.0",
23
+ "@js-joda/core": "5.5.3",
24
+ "@js-joda/locale": "4.8.10",
25
+ "@js-joda/locale_de": "4.8.10",
26
+ "@js-joda/locale_en": "4.8.10",
27
+ "@js-joda/timezone": "2.18.0",
28
+ "@react-pdf/renderer": "2.0.17",
29
+ "@total-typescript/ts-reset": "^0.4.2",
30
+ "@types/i18n": "^0.13.6",
31
+ "@types/jest": "^29.5.3",
32
+ "@types/node": "^20.5.7",
33
+ "@types/nodemailer": "^6.4.10",
34
+ "@types/react": "^18.2.21",
35
+ "@typescript-eslint/eslint-plugin": "^5.61.0",
36
+ "@typescript-eslint/parser": "^5.61.0",
37
+ "@typescript-eslint/utils": "^5.61.0",
38
+ "@wix/cli": "1.0.83",
39
+ "@wix/eslint-plugin-cli": "^1.0.1",
40
+ "@wix/image": "1.96.0",
41
+ "@wix/velo-bind": "1.0.8",
42
+ "add": "^2.0.6",
43
+ "await-semaphore": "0.1.3",
44
+ "axios": "1.4.0",
45
+ "crypto-js": "4.1.1",
46
+ "cypress": "^12.17.2",
47
+ "cypress-cloud": "^1.9.3",
48
+ "esbuild": "^0.18.11",
49
+ "eslint": "^8.25.0",
50
+ "eslint-plugin-import": "^2.27.5",
51
+ "eslint-plugin-jsdoc": "^46.4.3",
52
+ "eslint-plugin-named-import-spacing": "^1.0.3",
53
+ "eslint-plugin-simple-import-sort": "^10.0.0",
54
+ "eventemitter3": "4.0.7",
55
+ "gsap": "3.11.4",
56
+ "helpful-decorators": "^2.1.0",
57
+ "i18next": "22.4.7",
58
+ "jest": "^29.6.1",
59
+ "merge-stream": "^2.0.0",
60
+ "mobx": "6.8.0",
61
+ "mobx-utils": "6.0.3",
62
+ "node-cache": "5.1.2",
63
+ "nodemailer": "6.9.3",
64
+ "payment": "2.3.0",
65
+ "prettier": "^3.0.3",
66
+ "react": "18.2.0",
67
+ "react-dom": "18.1.0",
68
+ "react-transition-group": "4.4.5",
69
+ "sass": "^1.65.1",
70
+ "ts-jest": "^29.1.1",
71
+ "ts-node": "^10.9.1",
72
+ "tsx": "^3.13.0",
73
+ "typedoc": "^0.25.1",
74
+ "typedoc-theme-hierarchy": "^4.0.0",
75
+ "typescript": "^5.1.6",
76
+ "uuid": "9.0.0",
77
+ "zod": "3.22.2"
78
+ },
79
+ "scripts": {
80
+ "postinstall": "wix sync-types",
81
+ "wix:dev": "wix dev",
82
+ "dev": "gulp dev",
83
+ "lint": "eslint .",
84
+ "docs": "typedoc --tsconfig typescript/tsconfig.json --skipErrorChecking",
85
+ "build": "gulp build-prod",
86
+ "fix-wix": "gulp fix-wix",
87
+ "tsc": "tsc -p ./typescript/tsconfig.json --noEmit",
88
+ "test": "jest --config jest.config.ts --passWithNoTests",
89
+ "test:watch": "jest --config jest.config.ts --watch"
90
+ }
91
+ }
package/src/types.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ declare module 'gulp-exec';
2
+ declare module 'gulp-clean';
3
+ declare module 'gulp-foreach';
4
+ declare module 'gulp-string-replace';
5
+ declare module 'gulp-wait';
package/tsconfig.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "typeAcquisition": {
3
+ "enable": true
4
+ },
5
+ "compilerOptions": {
6
+ "outDir": "./dist",
7
+ "rootDir": "./src",
8
+ "target": "ES2020",
9
+ "build": true,
10
+ "module": "ESNext",
11
+ "moduleResolution": "Node",
12
+ "preserveConstEnums": true,
13
+ "allowSyntheticDefaultImports": true,
14
+ "skipLibCheck": true,
15
+ "declaration": true,
16
+ "strict": true,
17
+ "noEmitOnError": false,
18
+ "strictNullChecks": true,
19
+ "noImplicitAny": true,
20
+ "noImplicitReturns": true,
21
+ "noUncheckedIndexedAccess": true,
22
+ "noImplicitThis": false,
23
+ "strictBindCallApply": false,
24
+ "strictFunctionTypes": true,
25
+ "strictPropertyInitialization": true,
26
+ "experimentalDecorators": true,
27
+ "esModuleInterop": true,
28
+ "resolveJsonModule": true,
29
+ },
30
+ "exclude": ["../node_modules"],
31
+ "include":[
32
+ "src/**/*.ts"
33
+ ],
34
+ }