@webbycrown/webbycommerce 1.2.1 → 2.0.0

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 (162) hide show
  1. package/README.md +21 -3
  2. package/admin/app.js +3 -0
  3. package/admin/jsconfig.json +20 -0
  4. package/admin/src/components/ApiCollectionsContent.jsx +4626 -0
  5. package/admin/src/components/CompareContent.jsx +300 -0
  6. package/admin/src/components/ConfigureContent.jsx +407 -0
  7. package/admin/src/components/Initializer.jsx +64 -0
  8. package/admin/src/components/LoginRegisterContent.jsx +280 -0
  9. package/admin/src/components/PluginIcon.jsx +6 -0
  10. package/admin/src/components/ShippingTypeContent.jsx +230 -0
  11. package/admin/src/components/SmtpContent.jsx +316 -0
  12. package/admin/src/components/WishlistContent.jsx +273 -0
  13. package/admin/src/index.js +81 -0
  14. package/admin/src/pages/ApiCollections.jsx +169 -0
  15. package/admin/src/pages/Configure.jsx +55 -0
  16. package/admin/src/pages/Settings.jsx +93 -0
  17. package/admin/src/pluginId.js +4 -0
  18. package/{dist/_chunks/en-CiQ97iC8.js → admin/src/translations/en.json} +712 -574
  19. package/bin/setup.js +50 -3
  20. package/package.json +14 -13
  21. package/server/bootstrap.js +3 -0
  22. package/server/register.js +3 -0
  23. package/server/src/bootstrap.js +3826 -0
  24. package/server/src/components/content-block.json +37 -0
  25. package/server/src/components/shipping-zone-location.json +27 -0
  26. package/server/src/config/index.js +7 -0
  27. package/server/src/content-types/address/index.js +7 -0
  28. package/server/src/content-types/address/schema.json +74 -0
  29. package/server/src/content-types/cart/index.js +61 -0
  30. package/server/src/content-types/cart-item/index.js +79 -0
  31. package/server/src/content-types/compare.js +73 -0
  32. package/server/src/content-types/coupon/index.js +7 -0
  33. package/server/src/content-types/coupon/schema.json +67 -0
  34. package/server/src/content-types/index.js +42 -0
  35. package/server/src/content-types/order/index.js +7 -0
  36. package/server/src/content-types/order/schema.json +121 -0
  37. package/server/src/content-types/payment-transaction/index.js +7 -0
  38. package/server/src/content-types/payment-transaction/schema.json +73 -0
  39. package/server/src/content-types/product/index.js +7 -0
  40. package/server/src/content-types/product/schema.json +104 -0
  41. package/server/src/content-types/product-attribute/index.js +7 -0
  42. package/server/src/content-types/product-attribute/schema.json +80 -0
  43. package/server/src/content-types/product-attribute-value/index.js +7 -0
  44. package/server/src/content-types/product-attribute-value/schema.json +52 -0
  45. package/server/src/content-types/product-category/index.js +7 -0
  46. package/server/src/content-types/product-category/schema.json +54 -0
  47. package/server/src/content-types/product-tag/index.js +7 -0
  48. package/server/src/content-types/product-tag/schema.json +38 -0
  49. package/server/src/content-types/product-variation/index.js +7 -0
  50. package/server/src/content-types/product-variation/schema.json +74 -0
  51. package/server/src/content-types/shipping-method/index.js +7 -0
  52. package/server/src/content-types/shipping-method/schema.json +91 -0
  53. package/server/src/content-types/shipping-rate/index.js +7 -0
  54. package/server/src/content-types/shipping-rate/schema.json +73 -0
  55. package/server/src/content-types/shipping-rule/index.js +7 -0
  56. package/server/src/content-types/shipping-rule/schema.json +84 -0
  57. package/server/src/content-types/shipping-zone/index.js +7 -0
  58. package/server/src/content-types/shipping-zone/schema.json +57 -0
  59. package/server/src/content-types/wishlist.js +66 -0
  60. package/server/src/controllers/address.js +374 -0
  61. package/server/src/controllers/auth.js +1409 -0
  62. package/server/src/controllers/cart.js +337 -0
  63. package/server/src/controllers/category.js +388 -0
  64. package/server/src/controllers/compare.js +246 -0
  65. package/server/src/controllers/controller.js +168 -0
  66. package/server/src/controllers/ecommerce.js +20 -0
  67. package/server/src/controllers/index.js +34 -0
  68. package/server/src/controllers/order.js +1100 -0
  69. package/server/src/controllers/payment.js +243 -0
  70. package/server/src/controllers/product.js +1006 -0
  71. package/server/src/controllers/productTag.js +370 -0
  72. package/server/src/controllers/productVariation.js +181 -0
  73. package/server/src/controllers/shipping.js +1046 -0
  74. package/server/src/controllers/wishlist.js +332 -0
  75. package/server/src/destroy.js +6 -0
  76. package/server/src/index.js +26 -0
  77. package/server/src/middlewares/index.js +4 -0
  78. package/server/src/policies/index.js +4 -0
  79. package/server/src/register.js +67 -0
  80. package/server/src/routes/index.js +1130 -0
  81. package/server/src/services/cart.js +531 -0
  82. package/server/src/services/compare.js +300 -0
  83. package/server/src/services/index.js +16 -0
  84. package/server/src/services/service.js +19 -0
  85. package/server/src/services/shipping.js +513 -0
  86. package/server/src/services/wishlist.js +238 -0
  87. package/server/src/utils/check-ecommerce-permission.js +204 -0
  88. package/server/src/utils/extend-user-schema.js +161 -0
  89. package/server/src/utils/seed-data.js +639 -0
  90. package/server/src/utils/send-email.js +98 -0
  91. package/strapi-server.js +1 -6
  92. package/dist/_chunks/Settings-Bg2JyQ4c.js +0 -31518
  93. package/dist/_chunks/Settings-BonPzbwr.mjs +0 -31499
  94. package/dist/_chunks/en-DE15m4xZ.mjs +0 -574
  95. package/dist/_chunks/index-BWVy9o1d.mjs +0 -128
  96. package/dist/_chunks/index-NRuOdjd7.js +0 -127
  97. package/dist/admin/index.js +0 -3
  98. package/dist/admin/index.mjs +0 -4
  99. package/dist/robots.txt +0 -3
  100. package/dist/server/index.js +0 -27336
  101. package/dist/uploads/.gitkeep +0 -0
  102. package/dist/uploads/accessories_category_2a5631094b.jpeg +0 -0
  103. package/dist/uploads/beauty_personal_care_category_57f8a8f1e3.jpeg +0 -0
  104. package/dist/uploads/books_category_a9a253eada.jpeg +0 -0
  105. package/dist/uploads/classic_cotton_tshirt_1_cd713425f6.png +0 -0
  106. package/dist/uploads/clothing_category_d5c60ef07b.jpeg +0 -0
  107. package/dist/uploads/daviddoe_strapi_adbcd41787.jpeg +0 -0
  108. package/dist/uploads/electronics_category_fc3e5ef571.jpeg +0 -0
  109. package/dist/uploads/ergonomic_office_chair_1_c751cffb07.png +0 -0
  110. package/dist/uploads/home_garden_category_4f6eb3f8d6.jpeg +0 -0
  111. package/dist/uploads/istockphoto_1188462138_612x612_11f295b9c0.jpg +0 -0
  112. package/dist/uploads/istockphoto_1188462138_612x612_396fb272fd.jpg +0 -0
  113. package/dist/uploads/large_daviddoe_strapi_adbcd41787.jpeg +0 -0
  114. package/dist/uploads/leather_travel_backpack_1_238bc1ae4d.png +0 -0
  115. package/dist/uploads/mechanical_keyboard_pro_1_0cd391a6ac.png +0 -0
  116. package/dist/uploads/medium_classic_cotton_tshirt_1_cd713425f6.png +0 -0
  117. package/dist/uploads/medium_daviddoe_strapi_adbcd41787.jpeg +0 -0
  118. package/dist/uploads/medium_ergonomic_office_chair_1_c751cffb07.png +0 -0
  119. package/dist/uploads/medium_leather_travel_backpack_1_238bc1ae4d.png +0 -0
  120. package/dist/uploads/medium_mechanical_keyboard_pro_1_0cd391a6ac.png +0 -0
  121. package/dist/uploads/medium_smart_watch_series_5_1_cdc2511fb7.png +0 -0
  122. package/dist/uploads/medium_smartphone_x_pro_1_c3f0cbd080.png +0 -0
  123. package/dist/uploads/medium_the_great_gatsby_special_1_2e7c76d997.png +0 -0
  124. package/dist/uploads/medium_wireless_headphones_1_fa75cd50c3.png +0 -0
  125. package/dist/uploads/medium_yoga_mat_premium_1_01f9a3b5fa.png +0 -0
  126. package/dist/uploads/predictive_maintenance_icons_industry_automation_600nw_2685943461_e18a8aa3b0.webp +0 -0
  127. package/dist/uploads/small_classic_cotton_tshirt_1_cd713425f6.png +0 -0
  128. package/dist/uploads/small_daviddoe_strapi_adbcd41787.jpeg +0 -0
  129. package/dist/uploads/small_ergonomic_office_chair_1_c751cffb07.png +0 -0
  130. package/dist/uploads/small_leather_travel_backpack_1_238bc1ae4d.png +0 -0
  131. package/dist/uploads/small_mechanical_keyboard_pro_1_0cd391a6ac.png +0 -0
  132. package/dist/uploads/small_smart_watch_series_5_1_cdc2511fb7.png +0 -0
  133. package/dist/uploads/small_smartphone_x_pro_1_c3f0cbd080.png +0 -0
  134. package/dist/uploads/small_the_great_gatsby_special_1_2e7c76d997.png +0 -0
  135. package/dist/uploads/small_wireless_headphones_1_fa75cd50c3.png +0 -0
  136. package/dist/uploads/small_yoga_mat_premium_1_01f9a3b5fa.png +0 -0
  137. package/dist/uploads/smart_watch_series_5_1_cdc2511fb7.png +0 -0
  138. package/dist/uploads/smartphone_x_pro_1_c3f0cbd080.png +0 -0
  139. package/dist/uploads/the_great_gatsby_special_1_2e7c76d997.png +0 -0
  140. package/dist/uploads/thumbnail_accessories_category_2a5631094b.jpeg +0 -0
  141. package/dist/uploads/thumbnail_beauty_personal_care_category_57f8a8f1e3.jpeg +0 -0
  142. package/dist/uploads/thumbnail_books_category_a9a253eada.jpeg +0 -0
  143. package/dist/uploads/thumbnail_classic_cotton_tshirt_1_cd713425f6.png +0 -0
  144. package/dist/uploads/thumbnail_clothing_category_d5c60ef07b.jpeg +0 -0
  145. package/dist/uploads/thumbnail_daviddoe_strapi_adbcd41787.jpeg +0 -0
  146. package/dist/uploads/thumbnail_electronics_category_fc3e5ef571.jpeg +0 -0
  147. package/dist/uploads/thumbnail_ergonomic_office_chair_1_c751cffb07.png +0 -0
  148. package/dist/uploads/thumbnail_home_garden_category_4f6eb3f8d6.jpeg +0 -0
  149. package/dist/uploads/thumbnail_istockphoto_1188462138_612x612_11f295b9c0.jpg +0 -0
  150. package/dist/uploads/thumbnail_istockphoto_1188462138_612x612_396fb272fd.jpg +0 -0
  151. package/dist/uploads/thumbnail_leather_travel_backpack_1_238bc1ae4d.png +0 -0
  152. package/dist/uploads/thumbnail_mechanical_keyboard_pro_1_0cd391a6ac.png +0 -0
  153. package/dist/uploads/thumbnail_predictive_maintenance_icons_industry_automation_600nw_2685943461_e18a8aa3b0.webp +0 -0
  154. package/dist/uploads/thumbnail_smart_watch_series_5_1_cdc2511fb7.png +0 -0
  155. package/dist/uploads/thumbnail_smartphone_x_pro_1_c3f0cbd080.png +0 -0
  156. package/dist/uploads/thumbnail_the_great_gatsby_special_1_2e7c76d997.png +0 -0
  157. package/dist/uploads/thumbnail_wireless_headphones_1_fa75cd50c3.png +0 -0
  158. package/dist/uploads/thumbnail_yoga_mat_premium_1_01f9a3b5fa.png +0 -0
  159. package/dist/uploads/webby-commerce.png +0 -0
  160. package/dist/uploads/wireless_headphones_1_fa75cd50c3.png +0 -0
  161. package/dist/uploads/yoga_mat_premium_1_01f9a3b5fa.png +0 -0
  162. /package/{dist → server/src}/data/demo-data.json +0 -0
@@ -1,128 +0,0 @@
1
- import { useRef, useEffect } from "react";
2
- import { jsx } from "react/jsx-runtime";
3
- import { ShoppingCart } from "@strapi/icons";
4
- const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
5
- const v = glob[path];
6
- if (v) {
7
- return typeof v === "function" ? v() : Promise.resolve(v);
8
- }
9
- return new Promise((_, reject) => {
10
- (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
11
- reject.bind(
12
- null,
13
- new Error(
14
- "Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
15
- )
16
- )
17
- );
18
- });
19
- };
20
- const PLUGIN_ID = "webbycommerce";
21
- const provideCheckUserHasPermissions = () => {
22
- const defaultImpl = async () => true;
23
- if (typeof window !== "undefined") {
24
- if (!window.checkUserHasPermissions) {
25
- window.checkUserHasPermissions = defaultImpl;
26
- }
27
- }
28
- if (typeof globalThis !== "undefined") {
29
- if (!globalThis.checkUserHasPermissions) {
30
- globalThis.checkUserHasPermissions = defaultImpl;
31
- }
32
- }
33
- if (typeof global !== "undefined") {
34
- if (!global.checkUserHasPermissions) {
35
- global.checkUserHasPermissions = defaultImpl;
36
- }
37
- }
38
- };
39
- provideCheckUserHasPermissions();
40
- const Initializer = () => {
41
- const hasInitialized = useRef(false);
42
- useEffect(() => {
43
- if (!hasInitialized.current) {
44
- hasInitialized.current = true;
45
- provideCheckUserHasPermissions();
46
- try {
47
- const checkInterval = setInterval(() => {
48
- if (window.strapi?.app && typeof window.strapi.app.checkUserHasPermissions === "undefined") {
49
- window.strapi.app.checkUserHasPermissions = async () => true;
50
- clearInterval(checkInterval);
51
- }
52
- }, 100);
53
- setTimeout(() => clearInterval(checkInterval), 5e3);
54
- } catch (error) {
55
- }
56
- }
57
- }, []);
58
- return null;
59
- };
60
- const PluginIcon = () => /* @__PURE__ */ jsx(ShoppingCart, {});
61
- if (typeof globalThis !== "undefined") {
62
- if (!globalThis.checkUserHasPermissions) {
63
- globalThis.checkUserHasPermissions = async () => true;
64
- }
65
- }
66
- const index = {
67
- register(app) {
68
- if (app && typeof app.checkUserHasPermissions === "undefined") {
69
- app.checkUserHasPermissions = async () => true;
70
- }
71
- app.registerPlugin({
72
- id: PLUGIN_ID,
73
- initializer: Initializer,
74
- // Use a function for isReady to ensure proper initialization order
75
- // This helps prevent conflicts with Strapi's core (tours, etc.)
76
- isReady: () => true,
77
- name: "WebbyCommerce"
78
- });
79
- app.addSettingsLink(
80
- {
81
- id: "webbycommerce",
82
- intlLabel: {
83
- id: `${PLUGIN_ID}.settings.section`,
84
- defaultMessage: "WebbyCommerce"
85
- },
86
- icon: PluginIcon
87
- },
88
- {
89
- id: `${PLUGIN_ID}.settings.configure`,
90
- intlLabel: {
91
- id: `${PLUGIN_ID}.settings.configure.title`,
92
- defaultMessage: "Configure"
93
- },
94
- to: `${PLUGIN_ID}`,
95
- Component: () => import("./Settings-BonPzbwr.mjs")
96
- }
97
- );
98
- },
99
- bootstrap(app) {
100
- if (app && typeof app.checkUserHasPermissions === "undefined") {
101
- app.checkUserHasPermissions = async () => true;
102
- }
103
- },
104
- async registerTrads({ locales }) {
105
- return Promise.all(
106
- locales.map(async (locale) => {
107
- if (locale === "en") {
108
- try {
109
- const { default: data } = await import("./en-DE15m4xZ.mjs");
110
- return { data, locale };
111
- } catch {
112
- return { data: {}, locale };
113
- }
114
- }
115
- try {
116
- const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("./en-DE15m4xZ.mjs") }), `./translations/${locale}.json`, 3);
117
- return { data, locale };
118
- } catch {
119
- return { data: {}, locale };
120
- }
121
- })
122
- );
123
- }
124
- };
125
- export {
126
- PLUGIN_ID as P,
127
- index as i
128
- };
@@ -1,127 +0,0 @@
1
- "use strict";
2
- const React = require("react");
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const icons = require("@strapi/icons");
5
- const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
6
- const v = glob[path];
7
- if (v) {
8
- return typeof v === "function" ? v() : Promise.resolve(v);
9
- }
10
- return new Promise((_, reject) => {
11
- (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
12
- reject.bind(
13
- null,
14
- new Error(
15
- "Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
16
- )
17
- )
18
- );
19
- });
20
- };
21
- const PLUGIN_ID = "webbycommerce";
22
- const provideCheckUserHasPermissions = () => {
23
- const defaultImpl = async () => true;
24
- if (typeof window !== "undefined") {
25
- if (!window.checkUserHasPermissions) {
26
- window.checkUserHasPermissions = defaultImpl;
27
- }
28
- }
29
- if (typeof globalThis !== "undefined") {
30
- if (!globalThis.checkUserHasPermissions) {
31
- globalThis.checkUserHasPermissions = defaultImpl;
32
- }
33
- }
34
- if (typeof global !== "undefined") {
35
- if (!global.checkUserHasPermissions) {
36
- global.checkUserHasPermissions = defaultImpl;
37
- }
38
- }
39
- };
40
- provideCheckUserHasPermissions();
41
- const Initializer = () => {
42
- const hasInitialized = React.useRef(false);
43
- React.useEffect(() => {
44
- if (!hasInitialized.current) {
45
- hasInitialized.current = true;
46
- provideCheckUserHasPermissions();
47
- try {
48
- const checkInterval = setInterval(() => {
49
- if (window.strapi?.app && typeof window.strapi.app.checkUserHasPermissions === "undefined") {
50
- window.strapi.app.checkUserHasPermissions = async () => true;
51
- clearInterval(checkInterval);
52
- }
53
- }, 100);
54
- setTimeout(() => clearInterval(checkInterval), 5e3);
55
- } catch (error) {
56
- }
57
- }
58
- }, []);
59
- return null;
60
- };
61
- const PluginIcon = () => /* @__PURE__ */ jsxRuntime.jsx(icons.ShoppingCart, {});
62
- if (typeof globalThis !== "undefined") {
63
- if (!globalThis.checkUserHasPermissions) {
64
- globalThis.checkUserHasPermissions = async () => true;
65
- }
66
- }
67
- const index = {
68
- register(app) {
69
- if (app && typeof app.checkUserHasPermissions === "undefined") {
70
- app.checkUserHasPermissions = async () => true;
71
- }
72
- app.registerPlugin({
73
- id: PLUGIN_ID,
74
- initializer: Initializer,
75
- // Use a function for isReady to ensure proper initialization order
76
- // This helps prevent conflicts with Strapi's core (tours, etc.)
77
- isReady: () => true,
78
- name: "WebbyCommerce"
79
- });
80
- app.addSettingsLink(
81
- {
82
- id: "webbycommerce",
83
- intlLabel: {
84
- id: `${PLUGIN_ID}.settings.section`,
85
- defaultMessage: "WebbyCommerce"
86
- },
87
- icon: PluginIcon
88
- },
89
- {
90
- id: `${PLUGIN_ID}.settings.configure`,
91
- intlLabel: {
92
- id: `${PLUGIN_ID}.settings.configure.title`,
93
- defaultMessage: "Configure"
94
- },
95
- to: `${PLUGIN_ID}`,
96
- Component: () => Promise.resolve().then(() => require("./Settings-Bg2JyQ4c.js"))
97
- }
98
- );
99
- },
100
- bootstrap(app) {
101
- if (app && typeof app.checkUserHasPermissions === "undefined") {
102
- app.checkUserHasPermissions = async () => true;
103
- }
104
- },
105
- async registerTrads({ locales }) {
106
- return Promise.all(
107
- locales.map(async (locale) => {
108
- if (locale === "en") {
109
- try {
110
- const { default: data } = await Promise.resolve().then(() => require("./en-CiQ97iC8.js"));
111
- return { data, locale };
112
- } catch {
113
- return { data: {}, locale };
114
- }
115
- }
116
- try {
117
- const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => Promise.resolve().then(() => require("./en-CiQ97iC8.js")) }), `./translations/${locale}.json`, 3);
118
- return { data, locale };
119
- } catch {
120
- return { data: {}, locale };
121
- }
122
- })
123
- );
124
- }
125
- };
126
- exports.PLUGIN_ID = PLUGIN_ID;
127
- exports.index = index;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- const index = require("../_chunks/index-NRuOdjd7.js");
3
- module.exports = index.index;
@@ -1,4 +0,0 @@
1
- import { i } from "../_chunks/index-BWVy9o1d.mjs";
2
- export {
3
- i as default
4
- };
package/dist/robots.txt DELETED
@@ -1,3 +0,0 @@
1
- # To prevent search engines from seeing the site altogether, uncomment the next two lines:
2
- # User-Agent: *
3
- # Disallow: /