shoplazza-cli 0.0.1
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.
- package/.editorconfig +28 -0
- package/.prettierrc +9 -0
- package/LICENSE +21 -0
- package/README.md +208 -0
- package/bin/shoplazza +117 -0
- package/fixtures/assets/blog.scss +74 -0
- package/fixtures/assets/cart_modal.scss +450 -0
- package/fixtures/assets/collection_detail.js +234 -0
- package/fixtures/assets/collection_detail.scss +345 -0
- package/fixtures/assets/collection_list.scss +11 -0
- package/fixtures/assets/collection_slider.scss +169 -0
- package/fixtures/assets/feature_columns.scss +26 -0
- package/fixtures/assets/feature_product.scss +109 -0
- package/fixtures/assets/footer.js +58 -0
- package/fixtures/assets/footer.scss +337 -0
- package/fixtures/assets/four_images.scss +29 -0
- package/fixtures/assets/gallery.scss +55 -0
- package/fixtures/assets/header.js +178 -0
- package/fixtures/assets/header.scss +929 -0
- package/fixtures/assets/image_text.scss +72 -0
- package/fixtures/assets/logo_bar.scss +11 -0
- package/fixtures/assets/newsletter.scss +90 -0
- package/fixtures/assets/not_found.scss +39 -0
- package/fixtures/assets/page_detail.scss +16 -0
- package/fixtures/assets/pagination.scss +150 -0
- package/fixtures/assets/postcss.config.js +6 -0
- package/fixtures/assets/product_description.scss +88 -0
- package/fixtures/assets/product_detail.js +634 -0
- package/fixtures/assets/product_detail.scss +1106 -0
- package/fixtures/assets/relative_product.scss +45 -0
- package/fixtures/assets/reviews.scss +70 -0
- package/fixtures/assets/rich_text.scss +71 -0
- package/fixtures/assets/search.js +87 -0
- package/fixtures/assets/search.scss +67 -0
- package/fixtures/assets/slide.scss +51 -0
- package/fixtures/assets/slider.scss +141 -0
- package/fixtures/assets/theme.css +976 -0
- package/fixtures/assets/theme.scss +1100 -0
- package/fixtures/assets/three_images.scss +20 -0
- package/fixtures/assets/tools.scss +23 -0
- package/fixtures/assets/two_images.scss +24 -0
- package/fixtures/assets/video.scss +45 -0
- package/fixtures/assets/video_text.scss +63 -0
- package/fixtures/config/settings_data.json +107 -0
- package/fixtures/config/settings_schema.json +690 -0
- package/fixtures/layout/theme.liquid +76 -0
- package/fixtures/locales/ar-SA.json +212 -0
- package/fixtures/locales/de-DE.json +290 -0
- package/fixtures/locales/en-US.json +290 -0
- package/fixtures/locales/es-ES.json +290 -0
- package/fixtures/locales/fr-FR.json +290 -0
- package/fixtures/locales/id-ID.json +212 -0
- package/fixtures/locales/it-IT.json +212 -0
- package/fixtures/locales/ja-JP.json +289 -0
- package/fixtures/locales/ko-KR.json +290 -0
- package/fixtures/locales/nl-NL.json +290 -0
- package/fixtures/locales/pl-PL.json +290 -0
- package/fixtures/locales/pt-PT.json +212 -0
- package/fixtures/locales/ru-RU.json +212 -0
- package/fixtures/locales/th-TH.json +212 -0
- package/fixtures/locales/zh-CN.json +290 -0
- package/fixtures/locales/zh-TW.json +290 -0
- package/fixtures/sections/apps.liquid +47 -0
- package/fixtures/sections/blog.liquid +137 -0
- package/fixtures/sections/collection_desc.liquid +34 -0
- package/fixtures/sections/collection_detail.liquid +436 -0
- package/fixtures/sections/collection_image.liquid +104 -0
- package/fixtures/sections/collection_list.liquid +161 -0
- package/fixtures/sections/collection_name.liquid +34 -0
- package/fixtures/sections/collection_slider.liquid +330 -0
- package/fixtures/sections/feature_columns.liquid +275 -0
- package/fixtures/sections/feature_product.liquid +227 -0
- package/fixtures/sections/footer.liquid +488 -0
- package/fixtures/sections/four_images.liquid +160 -0
- package/fixtures/sections/gallery.liquid +258 -0
- package/fixtures/sections/header.liquid +1157 -0
- package/fixtures/sections/html.liquid +40 -0
- package/fixtures/sections/image_text.liquid +350 -0
- package/fixtures/sections/instagram_plus.liquid +393 -0
- package/fixtures/sections/logo_bar.liquid +183 -0
- package/fixtures/sections/newsletter.liquid +225 -0
- package/fixtures/sections/not_found.liquid +39 -0
- package/fixtures/sections/overlay_image.liquid +648 -0
- package/fixtures/sections/page_detail.liquid +39 -0
- package/fixtures/sections/photo_collection.liquid +433 -0
- package/fixtures/sections/product_description.liquid +208 -0
- package/fixtures/sections/product_detail.liquid +611 -0
- package/fixtures/sections/products.liquid +216 -0
- package/fixtures/sections/relative_product.liquid +121 -0
- package/fixtures/sections/reviews.liquid +115 -0
- package/fixtures/sections/rich_text.liquid +157 -0
- package/fixtures/sections/search.liquid +163 -0
- package/fixtures/sections/slide.liquid +719 -0
- package/fixtures/sections/three_images.liquid +157 -0
- package/fixtures/sections/two_images.liquid +125 -0
- package/fixtures/sections/video.liquid +95 -0
- package/fixtures/sections/video_text.liquid +128 -0
- package/fixtures/snippets/bgset.liquid +21 -0
- package/fixtures/snippets/card_title.liquid +8 -0
- package/fixtures/snippets/cart_modal.liquid +74 -0
- package/fixtures/snippets/collection.liquid +77 -0
- package/fixtures/snippets/collection_filter_modal.liquid +56 -0
- package/fixtures/snippets/default_image_4.liquid +14 -0
- package/fixtures/snippets/default_image_6.liquid +18 -0
- package/fixtures/snippets/default_image_8.liquid +23 -0
- package/fixtures/snippets/four_images_item.liquid +8 -0
- package/fixtures/snippets/header_ads.liquid +95 -0
- package/fixtures/snippets/hero_image.liquid +94 -0
- package/fixtures/snippets/icon_video_play_large.liquid +1 -0
- package/fixtures/snippets/icon_video_play_medium.liquid +4 -0
- package/fixtures/snippets/icon_video_play_small.liquid +4 -0
- package/fixtures/snippets/lazyimg.liquid +22 -0
- package/fixtures/snippets/lazyimg_art.liquid +36 -0
- package/fixtures/snippets/lazysizes.liquid +41 -0
- package/fixtures/snippets/link.liquid +2 -0
- package/fixtures/snippets/pagination.liquid +48 -0
- package/fixtures/snippets/product.liquid +126 -0
- package/fixtures/snippets/product_art_tpl.liquid +152 -0
- package/fixtures/snippets/product_info_body.liquid +337 -0
- package/fixtures/snippets/product_info_tpl.liquid +423 -0
- package/fixtures/snippets/product_label.liquid +46 -0
- package/fixtures/snippets/settings.liquid +295 -0
- package/fixtures/snippets/social-meta-tags.liquid +106 -0
- package/fixtures/snippets/video_html.liquid +11 -0
- package/fixtures/snippets/video_source.liquid +98 -0
- package/fixtures/snippets/video_thumb_icon.liquid +2 -0
- package/fixtures/templates/404.liquid +1 -0
- package/fixtures/templates/collection.liquid +92 -0
- package/fixtures/templates/index.liquid +206 -0
- package/fixtures/templates/page.liquid +1 -0
- package/fixtures/templates/product.liquid +99 -0
- package/fixtures/templates/search.liquid +1 -0
- package/jest.config.js +192 -0
- package/lib/__tests__/log.test.js +15 -0
- package/lib/__tests__/utils.test.js +69 -0
- package/lib/auth/__mocks__/getCode.js +7 -0
- package/lib/auth/__mocks__/index.js +0 -0
- package/lib/auth/child.js +23 -0
- package/lib/auth/getCode.js +35 -0
- package/lib/auth/index.js +91 -0
- package/lib/commands/__tests__/login.test.js +77 -0
- package/lib/commands/__tests__/logout.test.js +29 -0
- package/lib/commands/__tests__/store.test.js +44 -0
- package/lib/commands/__tests__/switch.test.js +45 -0
- package/lib/commands/login.js +99 -0
- package/lib/commands/logout.js +14 -0
- package/lib/commands/store.js +14 -0
- package/lib/commands/switch.js +52 -0
- package/lib/commands/theme/__tests__/delete.test.js +49 -0
- package/lib/commands/theme/__tests__/init.test.js +21 -0
- package/lib/commands/theme/__tests__/list.test.js +80 -0
- package/lib/commands/theme/__tests__/package.test.js +17 -0
- package/lib/commands/theme/__tests__/publish.test.js +61 -0
- package/lib/commands/theme/__tests__/pull.test.js +69 -0
- package/lib/commands/theme/__tests__/push.test.js +63 -0
- package/lib/commands/theme/__tests__/serve.test.js +107 -0
- package/lib/commands/theme/delete.js +64 -0
- package/lib/commands/theme/init.js +51 -0
- package/lib/commands/theme/list.js +28 -0
- package/lib/commands/theme/package.js +37 -0
- package/lib/commands/theme/publish.js +56 -0
- package/lib/commands/theme/pull.js +62 -0
- package/lib/commands/theme/push.js +106 -0
- package/lib/commands/theme/serve.js +153 -0
- package/lib/commands/theme/share.js +20 -0
- package/lib/commands/version.js +6 -0
- package/lib/config.js +5 -0
- package/lib/db/__mocks__/index.js +9 -0
- package/lib/db/__tests__/analytics.test.js +19 -0
- package/lib/db/__tests__/user.test.js +20 -0
- package/lib/db/analytics.js +48 -0
- package/lib/db/index.js +9 -0
- package/lib/db/user.js +68 -0
- package/lib/log.js +13 -0
- package/lib/openAPI/__mocks__/index.js +20 -0
- package/lib/openAPI/api.js +76 -0
- package/lib/openAPI/index.js +46 -0
- package/lib/report.js +37 -0
- package/lib/tracing.js +50 -0
- package/lib/utils.js +48 -0
- package/package.json +54 -0
package/lib/tracing.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const axios = require('axios');
|
|
2
|
+
const Sentry = require('@sentry/node');
|
|
3
|
+
const Tracing = require('@sentry/tracing');
|
|
4
|
+
|
|
5
|
+
const map = new Map();
|
|
6
|
+
const generatorTransactionName = (config) => {
|
|
7
|
+
try {
|
|
8
|
+
return `${config.method.toUpperCase()}-${config.url}-${JSON.stringify(config.params)}-${JSON.stringify(
|
|
9
|
+
config.data
|
|
10
|
+
)}`;
|
|
11
|
+
} catch (err) {
|
|
12
|
+
Sentry.captureException(err);
|
|
13
|
+
return `${config.method.toUpperCase()}-${config.url}`;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
axios.interceptors.request.use((config) => {
|
|
18
|
+
try {
|
|
19
|
+
Sentry.configureScope((scope) => {
|
|
20
|
+
const transaction = Sentry.startTransaction({
|
|
21
|
+
op: 'transaction',
|
|
22
|
+
name: generatorTransactionName(config)
|
|
23
|
+
});
|
|
24
|
+
map.set(generatorTransactionName(config), transaction);
|
|
25
|
+
scope.setSpan(transaction);
|
|
26
|
+
});
|
|
27
|
+
} catch (err) {
|
|
28
|
+
Sentry.captureException(err);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return config;
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
axios.interceptors.response.use(
|
|
35
|
+
function (response) {
|
|
36
|
+
try {
|
|
37
|
+
const key = generatorTransactionName(response.config);
|
|
38
|
+
const transaction = map.get(key);
|
|
39
|
+
transaction.finish();
|
|
40
|
+
map.delete(key);
|
|
41
|
+
} catch (err) {
|
|
42
|
+
Sentry.captureException(err);
|
|
43
|
+
}
|
|
44
|
+
return response;
|
|
45
|
+
},
|
|
46
|
+
function (error) {
|
|
47
|
+
Sentry.captureException(error);
|
|
48
|
+
return Promise.reject(error);
|
|
49
|
+
}
|
|
50
|
+
);
|
package/lib/utils.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const fs = require('fs-extra');
|
|
3
|
+
const AdmZip = require('adm-zip');
|
|
4
|
+
const chalk = require('chalk');
|
|
5
|
+
|
|
6
|
+
exports.unzipTheme = (zipPath, outputPath) => {
|
|
7
|
+
const zip = new AdmZip(zipPath);
|
|
8
|
+
const zipEntries = zip.getEntries();
|
|
9
|
+
const innerName = zipEntries[0].entryName.split('/')[0];
|
|
10
|
+
fs.emptyDirSync(outputPath);
|
|
11
|
+
zipEntries.forEach((entry) => {
|
|
12
|
+
zip.extractEntryTo(
|
|
13
|
+
entry,
|
|
14
|
+
path.join(outputPath, entry.entryName.replace(`${innerName}`, '').replace(path.basename(entry.entryName), '')),
|
|
15
|
+
false,
|
|
16
|
+
true
|
|
17
|
+
);
|
|
18
|
+
});
|
|
19
|
+
fs.removeSync(zipPath);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.zipTheme = (filePath, themeName) => {
|
|
23
|
+
const zip = new AdmZip();
|
|
24
|
+
zip.addLocalFolder(filePath, themeName);
|
|
25
|
+
zip.writeZip(`${process.cwd()}/${themeName}.zip`);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.getThemeFilenameTypeAndLocation = (filename) => {
|
|
29
|
+
const result = filename.split(path.sep);
|
|
30
|
+
const location = result.pop();
|
|
31
|
+
const type = result.pop();
|
|
32
|
+
return {
|
|
33
|
+
type,
|
|
34
|
+
location
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.formatThemeList = (themes, defaultThemeId) => {
|
|
39
|
+
return themes.map((theme) => ({
|
|
40
|
+
...theme,
|
|
41
|
+
name: `${theme.name} (${theme.id ? chalk.green(theme.id) : ''}) ${
|
|
42
|
+
theme.id === defaultThemeId ? chalk.green('[live]') : chalk.yellow('[unpublished]')
|
|
43
|
+
}`,
|
|
44
|
+
value: theme.id
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
exports.sleep = (time) => new Promise((resolve) => setTimeout(resolve, time));
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "shoplazza-cli",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"title": "Shoplazza CLI",
|
|
5
|
+
"description": "Shoplazza CLI is a command-line interface tool that helps you build Shoplazza themes. It quickly generates Shoplazza themes. You can also use it to automate many common development tasks.",
|
|
6
|
+
"main": "bin/shoplazza",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=14.14.0"
|
|
9
|
+
},
|
|
10
|
+
"bin": {
|
|
11
|
+
"shoplazza": "bin/shoplazza"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"prettier": "prettier --write ./lib",
|
|
15
|
+
"test": "jest --runInBand --forceExit"
|
|
16
|
+
},
|
|
17
|
+
"homepage": "https://github.com/Shoplazza/shoplazza-cli",
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "https://github.com/Shoplazza/shoplazza-cli"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"shoplazza",
|
|
24
|
+
"cli",
|
|
25
|
+
"developer",
|
|
26
|
+
"theme"
|
|
27
|
+
],
|
|
28
|
+
"author": "Shoplazza",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"axios-mock-adapter": "^1.20.0",
|
|
32
|
+
"jest": "^28.1.0",
|
|
33
|
+
"prettier": "2.6.2"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@sentry/node": "^6.19.7",
|
|
37
|
+
"@sentry/tracing": "^6.19.7",
|
|
38
|
+
"adm-zip": "^0.5.9",
|
|
39
|
+
"axios": "^0.27.1",
|
|
40
|
+
"better-sqlite3": "^7.5.1",
|
|
41
|
+
"chalk": "^4.1.2",
|
|
42
|
+
"commander": "^9.2.0",
|
|
43
|
+
"execa": "^5.1.1",
|
|
44
|
+
"form-data": "^4.0.0",
|
|
45
|
+
"fs-extra": "^10.1.0",
|
|
46
|
+
"inquirer": "^8.2.3",
|
|
47
|
+
"livereload": "^0.9.3",
|
|
48
|
+
"node-watch": "^0.7.3",
|
|
49
|
+
"open": "^8.4.0",
|
|
50
|
+
"ora": "^5.4.1",
|
|
51
|
+
"update-notifier": "^5.1.0",
|
|
52
|
+
"yargs": "^17.5.0"
|
|
53
|
+
}
|
|
54
|
+
}
|