@selwise/widget 0.0.1 → 0.0.3
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/LICENSE +21 -0
- package/README.md +71 -0
- package/dist/npm/cjs/index.js +50 -5
- package/dist/npm/cjs/index.js.map +1 -1
- package/dist/npm/cjs/modules/contract/recommendation-contract.js +1 -1
- package/dist/npm/cjs/modules/contract/search-contract.js +1 -1
- package/dist/npm/cjs/modules/contract/tracking-contract.js +1 -1
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js +164 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js +21 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js +3 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js +107 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js +404 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js +21 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js +8 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js +126 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js +133 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js +21 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js +3 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js +154 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js +1481 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js +22 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js +21 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js +8 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js +139 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js.map +1 -0
- package/dist/npm/cjs/modules/contract/widget-contract.js +1 -1
- package/dist/npm/cjs/selwise.js +15 -9
- package/dist/npm/cjs/selwise.js.map +1 -1
- package/dist/npm/esm/index.d.ts +5 -2
- package/dist/npm/esm/index.js +15 -2
- package/dist/npm/esm/index.js.map +1 -1
- package/dist/npm/esm/modules/contract/recommendation-contract.d.ts +2 -2
- package/dist/npm/esm/modules/contract/recommendation-contract.js +1 -1
- package/dist/npm/esm/modules/contract/search-contract.d.ts +1 -1
- package/dist/npm/esm/modules/contract/search-contract.js +1 -1
- package/dist/npm/esm/modules/contract/tracking-contract.d.ts +1 -1
- package/dist/npm/esm/modules/contract/tracking-contract.js +1 -1
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.d.ts +8 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js +160 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.d.ts +3 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js +5 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.d.ts +56 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js +2 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.d.ts +3 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js +103 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/configs.d.ts +35 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js +396 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/index.d.ts +3 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/index.js +5 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/index.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/types.d.ts +119 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/types.js +7 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/types.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/validators.d.ts +22 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js +118 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.d.ts +7 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js +130 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.d.ts +3 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js +5 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.d.ts +37 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js +2 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.d.ts +6 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js +147 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.d.ts +22 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js +1472 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/index.d.ts +4 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js +6 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.d.ts +14 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js +18 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/types.d.ts +128 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js +7 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.d.ts +11 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js +132 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js.map +1 -0
- package/dist/npm/esm/modules/contract/widget-contract.d.ts +1 -1
- package/dist/npm/esm/modules/contract/widget-contract.js +1 -1
- package/dist/npm/esm/selwise.d.ts +28 -2
- package/dist/npm/esm/selwise.js +15 -9
- package/dist/npm/esm/selwise.js.map +1 -1
- package/package.json +25 -9
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Selwise
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# @selwise/widget
|
|
2
|
+
|
|
3
|
+
Selwise storefront widget runtime for e-commerce personalization and tracking.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @selwise/widget
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start (npm)
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import Selwise from '@selwise/widget';
|
|
15
|
+
|
|
16
|
+
const widget = new Selwise();
|
|
17
|
+
await widget.init({
|
|
18
|
+
siteKey: 'YOUR_SITE_KEY',
|
|
19
|
+
apiUrl: 'https://api.selwise.com/api/v1',
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Important:
|
|
24
|
+
|
|
25
|
+
- Package import is side-effect free.
|
|
26
|
+
- `window.Selwise` is auto-bound after `init()`.
|
|
27
|
+
|
|
28
|
+
## CDN Script Tag
|
|
29
|
+
|
|
30
|
+
```html
|
|
31
|
+
<script
|
|
32
|
+
src="https://widget.selwise.com/client.js"
|
|
33
|
+
data-site-key="YOUR_SITE_KEY"
|
|
34
|
+
data-api-url="https://api.selwise.com/api/v1"
|
|
35
|
+
></script>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Public API
|
|
39
|
+
|
|
40
|
+
Instance and `window.Selwise` after initialization:
|
|
41
|
+
|
|
42
|
+
- `init(config)`
|
|
43
|
+
- `destroy()`
|
|
44
|
+
- `track(name, args?)`
|
|
45
|
+
- `trackOrder(order)`
|
|
46
|
+
- `identify(userId, metadata?)`
|
|
47
|
+
- `setTraits(traits)`
|
|
48
|
+
- `getVisitorId()`
|
|
49
|
+
- `getSessionId()`
|
|
50
|
+
- `getJourneyId()`
|
|
51
|
+
- `getJourneyState()`
|
|
52
|
+
- `endJourney()`
|
|
53
|
+
- `getVariant(experimentId)`
|
|
54
|
+
- `getExperimentVariant(experimentId)`
|
|
55
|
+
- `getActiveExperiments()`
|
|
56
|
+
- `pushDataLayer(data)`
|
|
57
|
+
- `getDataLayer()`
|
|
58
|
+
- `getConsentState()`
|
|
59
|
+
- `grantConsent(categories?)`
|
|
60
|
+
- `revokeConsent(categories?)`
|
|
61
|
+
|
|
62
|
+
## Docs
|
|
63
|
+
|
|
64
|
+
- https://docs.selwise.com/getting-started/npm-integration/
|
|
65
|
+
- https://docs.selwise.com/client-api/public-api/
|
|
66
|
+
- https://docs.selwise.com/client-api/data-layer/
|
|
67
|
+
- https://docs.selwise.com/client-api/consent-management/
|
|
68
|
+
|
|
69
|
+
## License
|
|
70
|
+
|
|
71
|
+
MIT, see [LICENSE](./LICENSE).
|
package/dist/npm/cjs/index.js
CHANGED
|
@@ -1,10 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
36
|
+
exports.resolveApiUrl = exports.Selwise = void 0;
|
|
37
|
+
const selwise_1 = require("./selwise");
|
|
38
|
+
const npmModuleLoaders = {
|
|
39
|
+
loadSearchModule: () => Promise.resolve().then(() => __importStar(require(
|
|
40
|
+
/* webpackMode: "eager" */
|
|
41
|
+
'./modules/search'))),
|
|
42
|
+
loadRecommendationModule: () => Promise.resolve().then(() => __importStar(require(
|
|
43
|
+
/* webpackMode: "eager" */
|
|
44
|
+
'./modules/recommendation'))),
|
|
45
|
+
};
|
|
46
|
+
class Selwise extends selwise_1.Selwise {
|
|
47
|
+
constructor() {
|
|
48
|
+
super(npmModuleLoaders);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.Selwise = Selwise;
|
|
6
52
|
var api_url_1 = require("./utils/api-url");
|
|
7
53
|
Object.defineProperty(exports, "resolveApiUrl", { enumerable: true, get: function () { return api_url_1.resolveApiUrl; } });
|
|
8
|
-
|
|
9
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return selwise_2.Selwise; } });
|
|
54
|
+
exports.default = Selwise;
|
|
10
55
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA8E;AAE9E,MAAM,gBAAgB,GAAyB;IAC7C,gBAAgB,EAAE,GAAG,EAAE;IAEnB,0BAA0B;IAC1B,kBAAkB,GACnB;IACH,wBAAwB,EAAE,GAAG,EAAE;IAE3B,0BAA0B;IAC1B,0BAA0B,GAC3B;CACJ,CAAC;AAEF,MAAa,OAAQ,SAAQ,iBAAW;IACtC;QACE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC1B,CAAC;CACF;AAJD,0BAIC;AAED,2CAAgD;AAAvC,wGAAA,aAAa,OAAA;AAGtB,kBAAe,OAAO,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sanitizeRecommendationConfig = exports.validateRecommendationConfig = exports.getDefaultRecommendationConfig = exports.RECOMMENDATION_STYLE_CONFIGS = exports.RECOMMENDATION_PLATFORMS = exports.RECOMMENDATION_INSERT_POSITIONS = exports.RECOMMENDATION_TRIGGERS = exports.RECOMMENDATION_DISPLAY_TYPES = exports.RECOMMENDATION_STRATEGIES = void 0;
|
|
4
4
|
exports.resolveRecommendationConfig = resolveRecommendationConfig;
|
|
5
|
-
const recommendation_contract_1 = require("
|
|
5
|
+
const recommendation_contract_1 = require("./vendor/recommendation-contract");
|
|
6
6
|
Object.defineProperty(exports, "RECOMMENDATION_STRATEGIES", { enumerable: true, get: function () { return recommendation_contract_1.RECOMMENDATION_STRATEGIES; } });
|
|
7
7
|
Object.defineProperty(exports, "RECOMMENDATION_DISPLAY_TYPES", { enumerable: true, get: function () { return recommendation_contract_1.RECOMMENDATION_DISPLAY_TYPES; } });
|
|
8
8
|
Object.defineProperty(exports, "RECOMMENDATION_TRIGGERS", { enumerable: true, get: function () { return recommendation_contract_1.RECOMMENDATION_TRIGGERS; } });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sanitizeSuggestionStyles = exports.sanitizeSearchStyles = exports.validateSearchStyles = exports.validateSearchConfig = exports.getAllowedSuggestionStyleKeys = exports.getAllowedSearchStyleKeys = exports.getDefaultSuggestionStyles = exports.getDefaultSearchStyles = exports.SUGGESTION_STYLE_CONFIGS = exports.SEARCH_STYLE_CONFIGS = exports.CATEGORY_DISPLAY_MODES = exports.SEARCH_FLOATING_POSITIONS = exports.SEARCH_POSITIONS = void 0;
|
|
4
|
-
var search_contract_1 = require("
|
|
4
|
+
var search_contract_1 = require("./vendor/search-contract");
|
|
5
5
|
Object.defineProperty(exports, "SEARCH_POSITIONS", { enumerable: true, get: function () { return search_contract_1.SEARCH_POSITIONS; } });
|
|
6
6
|
Object.defineProperty(exports, "SEARCH_FLOATING_POSITIONS", { enumerable: true, get: function () { return search_contract_1.SEARCH_FLOATING_POSITIONS; } });
|
|
7
7
|
Object.defineProperty(exports, "CATEGORY_DISPLAY_MODES", { enumerable: true, get: function () { return search_contract_1.CATEGORY_DISPLAY_MODES; } });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateFrequencyCapPayload = exports.validateFrequencyInterval = exports.sanitizeDataLayerConfig = exports.validateDataLayerConfig = exports.validateCanonicalEvent = exports.FREQUENCY_CAP_INTERVALS = exports.COOKIE_CONSENT_DEFAULTS = exports.TRACKING_MODULES = exports.DEFAULT_PAGE_TYPE_PATTERNS = exports.EVENT_CATEGORIES = exports.CANONICAL_EVENTS = void 0;
|
|
4
|
-
var tracking_contract_1 = require("
|
|
4
|
+
var tracking_contract_1 = require("./vendor/tracking-contract");
|
|
5
5
|
Object.defineProperty(exports, "CANONICAL_EVENTS", { enumerable: true, get: function () { return tracking_contract_1.CANONICAL_EVENTS; } });
|
|
6
6
|
Object.defineProperty(exports, "EVENT_CATEGORIES", { enumerable: true, get: function () { return tracking_contract_1.EVENT_CATEGORIES; } });
|
|
7
7
|
Object.defineProperty(exports, "DEFAULT_PAGE_TYPE_PATTERNS", { enumerable: true, get: function () { return tracking_contract_1.DEFAULT_PAGE_TYPE_PATTERNS; } });
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RECOMMENDATION_STYLE_CONFIGS = exports.RECOMMENDATION_PLATFORMS = exports.RECOMMENDATION_INSERT_POSITIONS = exports.RECOMMENDATION_TRIGGERS = exports.RECOMMENDATION_DISPLAY_TYPES = exports.RECOMMENDATION_STRATEGIES = void 0;
|
|
4
|
+
exports.getDefaultRecommendationConfig = getDefaultRecommendationConfig;
|
|
5
|
+
exports.RECOMMENDATION_STRATEGIES = [
|
|
6
|
+
'manual',
|
|
7
|
+
'category_based',
|
|
8
|
+
'bestsellers',
|
|
9
|
+
'new_arrivals',
|
|
10
|
+
'on_sale',
|
|
11
|
+
'viewed_together',
|
|
12
|
+
'bought_together',
|
|
13
|
+
'user_history',
|
|
14
|
+
'similar_products',
|
|
15
|
+
'trending',
|
|
16
|
+
'ai_personalized',
|
|
17
|
+
'custom_query',
|
|
18
|
+
];
|
|
19
|
+
exports.RECOMMENDATION_DISPLAY_TYPES = [
|
|
20
|
+
'slider',
|
|
21
|
+
'grid',
|
|
22
|
+
'carousel',
|
|
23
|
+
'list',
|
|
24
|
+
'masonry',
|
|
25
|
+
];
|
|
26
|
+
exports.RECOMMENDATION_TRIGGERS = [
|
|
27
|
+
'page_load',
|
|
28
|
+
'scroll',
|
|
29
|
+
'exit_intent',
|
|
30
|
+
'time_delay',
|
|
31
|
+
'add_to_cart',
|
|
32
|
+
'custom',
|
|
33
|
+
];
|
|
34
|
+
exports.RECOMMENDATION_INSERT_POSITIONS = [
|
|
35
|
+
'append',
|
|
36
|
+
'prepend',
|
|
37
|
+
'before',
|
|
38
|
+
'after',
|
|
39
|
+
'replace',
|
|
40
|
+
];
|
|
41
|
+
exports.RECOMMENDATION_PLATFORMS = [
|
|
42
|
+
'custom',
|
|
43
|
+
'shopify',
|
|
44
|
+
'woocommerce',
|
|
45
|
+
'magento',
|
|
46
|
+
'prestashop',
|
|
47
|
+
'akinon',
|
|
48
|
+
'custom_api',
|
|
49
|
+
];
|
|
50
|
+
exports.RECOMMENDATION_STYLE_CONFIGS = {
|
|
51
|
+
arrowStyles: {
|
|
52
|
+
id: 'arrowStyles',
|
|
53
|
+
title: 'Arrows',
|
|
54
|
+
fields: [
|
|
55
|
+
{ key: 'enabled', label: 'Enabled', type: 'toggle', default: true },
|
|
56
|
+
{ key: 'style', label: 'Style', type: 'select', default: 'circle', options: ['circle', 'square', 'minimal'] },
|
|
57
|
+
{ key: 'size', label: 'Size', type: 'number', default: 40, min: 20, max: 120 },
|
|
58
|
+
{ key: 'color', label: 'Color', type: 'color', default: '#333333' },
|
|
59
|
+
{ key: 'backgroundColor', label: 'Background', type: 'color', default: '#ffffff' },
|
|
60
|
+
{ key: 'borderColor', label: 'Border Color', type: 'color', default: '#e5e5e5' },
|
|
61
|
+
{ key: 'borderWidth', label: 'Border Width', type: 'number', default: 1, min: 0, max: 10 },
|
|
62
|
+
{ key: 'borderRadius', label: 'Border Radius', type: 'number', default: 50, min: 0, max: 200 },
|
|
63
|
+
{ key: 'iconSize', label: 'Icon Size', type: 'number', default: 16, min: 8, max: 64 },
|
|
64
|
+
{ key: 'hoverColor', label: 'Hover Color', type: 'color', default: '#000000' },
|
|
65
|
+
{ key: 'hoverBackgroundColor', label: 'Hover Background', type: 'color', default: '#f5f5f5' },
|
|
66
|
+
{ key: 'position', label: 'Position', type: 'select', default: 'outside', options: ['inside', 'outside'] },
|
|
67
|
+
{ key: 'offset', label: 'Offset', type: 'number', default: -20, min: -200, max: 200 },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
dotStyles: {
|
|
71
|
+
id: 'dotStyles',
|
|
72
|
+
title: 'Dots',
|
|
73
|
+
fields: [
|
|
74
|
+
{ key: 'enabled', label: 'Enabled', type: 'toggle', default: true },
|
|
75
|
+
{ key: 'style', label: 'Style', type: 'select', default: 'circle', options: ['circle', 'bar', 'line'] },
|
|
76
|
+
{ key: 'size', label: 'Size', type: 'number', default: 10, min: 2, max: 40 },
|
|
77
|
+
{ key: 'color', label: 'Color', type: 'color', default: '#cccccc' },
|
|
78
|
+
{ key: 'activeColor', label: 'Active Color', type: 'color', default: '#333333' },
|
|
79
|
+
{ key: 'gap', label: 'Gap', type: 'number', default: 8, min: 0, max: 64 },
|
|
80
|
+
{ key: 'position', label: 'Position', type: 'select', default: 'bottom', options: ['bottom', 'below'] },
|
|
81
|
+
{ key: 'offset', label: 'Offset', type: 'number', default: 20, min: -200, max: 200 },
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
titleStyles: {
|
|
85
|
+
id: 'titleStyles',
|
|
86
|
+
title: 'Title',
|
|
87
|
+
fields: [
|
|
88
|
+
{ key: 'enabled', label: 'Enabled', type: 'toggle', default: true },
|
|
89
|
+
{ key: 'fontSize', label: 'Font Size', type: 'number', default: 24, min: 8, max: 96 },
|
|
90
|
+
{ key: 'fontWeight', label: 'Font Weight', type: 'select', default: 'bold', options: ['normal', 'medium', 'semibold', 'bold'] },
|
|
91
|
+
{ key: 'color', label: 'Color', type: 'color', default: '#111111' },
|
|
92
|
+
{ key: 'textAlign', label: 'Text Align', type: 'select', default: 'left', options: ['left', 'center', 'right'] },
|
|
93
|
+
{ key: 'marginBottom', label: 'Margin Bottom', type: 'number', default: 16, min: 0, max: 200 },
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
subtitleStyles: {
|
|
97
|
+
id: 'subtitleStyles',
|
|
98
|
+
title: 'Subtitle',
|
|
99
|
+
fields: [
|
|
100
|
+
{ key: 'enabled', label: 'Enabled', type: 'toggle', default: false },
|
|
101
|
+
{ key: 'fontSize', label: 'Font Size', type: 'number', default: 14, min: 8, max: 96 },
|
|
102
|
+
{ key: 'fontWeight', label: 'Font Weight', type: 'select', default: 'normal', options: ['normal', 'medium', 'semibold', 'bold'] },
|
|
103
|
+
{ key: 'color', label: 'Color', type: 'color', default: '#666666' },
|
|
104
|
+
{ key: 'textAlign', label: 'Text Align', type: 'select', default: 'left', options: ['left', 'center', 'right'] },
|
|
105
|
+
{ key: 'marginBottom', label: 'Margin Bottom', type: 'number', default: 24, min: 0, max: 200 },
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
containerStyles: {
|
|
109
|
+
id: 'containerStyles',
|
|
110
|
+
title: 'Container',
|
|
111
|
+
fields: [
|
|
112
|
+
{ key: 'backgroundColor', label: 'Background', type: 'color', default: 'transparent' },
|
|
113
|
+
{ key: 'padding', label: 'Padding', type: 'text', default: '40px 20px' },
|
|
114
|
+
{ key: 'borderRadius', label: 'Border Radius', type: 'number', default: 0, min: 0, max: 120 },
|
|
115
|
+
{ key: 'maxWidth', label: 'Max Width', type: 'text', default: '1200px' },
|
|
116
|
+
{ key: 'margin', label: 'Margin', type: 'text', default: '0 auto' },
|
|
117
|
+
],
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
function getDefaultStyleBlock(sectionKey) {
|
|
121
|
+
const section = exports.RECOMMENDATION_STYLE_CONFIGS[sectionKey];
|
|
122
|
+
if (!section) {
|
|
123
|
+
return {};
|
|
124
|
+
}
|
|
125
|
+
return section.fields.reduce((acc, field) => {
|
|
126
|
+
acc[field.key] = field.default;
|
|
127
|
+
return acc;
|
|
128
|
+
}, {});
|
|
129
|
+
}
|
|
130
|
+
function getDefaultRecommendationConfig() {
|
|
131
|
+
return {
|
|
132
|
+
strategy: 'bestsellers',
|
|
133
|
+
displayType: 'slider',
|
|
134
|
+
trigger: 'page_load',
|
|
135
|
+
insertPosition: 'append',
|
|
136
|
+
cartPlatform: 'custom',
|
|
137
|
+
maxProducts: 12,
|
|
138
|
+
productsPerRow: 4,
|
|
139
|
+
autoplay: false,
|
|
140
|
+
autoplaySpeed: 3000,
|
|
141
|
+
loop: true,
|
|
142
|
+
pauseOnHover: true,
|
|
143
|
+
slidesPerView: 4,
|
|
144
|
+
slidesPerViewTablet: 3,
|
|
145
|
+
slidesPerViewMobile: 2,
|
|
146
|
+
slideGap: 16,
|
|
147
|
+
title: 'Recommended for You',
|
|
148
|
+
subtitle: '',
|
|
149
|
+
excludeOutOfStock: true,
|
|
150
|
+
showOnAllPages: true,
|
|
151
|
+
includeUrls: [],
|
|
152
|
+
excludeUrls: [],
|
|
153
|
+
containerSelector: '',
|
|
154
|
+
addToCartEnabled: false,
|
|
155
|
+
addToCartConfig: {},
|
|
156
|
+
triggerConfig: {},
|
|
157
|
+
arrowStyles: getDefaultStyleBlock('arrowStyles'),
|
|
158
|
+
dotStyles: getDefaultStyleBlock('dotStyles'),
|
|
159
|
+
titleStyles: getDefaultStyleBlock('titleStyles'),
|
|
160
|
+
subtitleStyles: getDefaultStyleBlock('subtitleStyles'),
|
|
161
|
+
containerStyles: getDefaultStyleBlock('containerStyles'),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=configs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configs.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/recommendation-contract/configs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// AUTO-GENERATED FROM packages/recommendation-contract/src/index.ts. DO NOT EDIT DIRECTLY.
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./configs"), exports);
|
|
20
|
+
__exportStar(require("./validators"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/recommendation-contract/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2FAA2F;AAC3F,0CAAwB;AACxB,4CAA0B;AAC1B,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/recommendation-contract/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateRecommendationConfig = validateRecommendationConfig;
|
|
4
|
+
exports.sanitizeRecommendationConfig = sanitizeRecommendationConfig;
|
|
5
|
+
// AUTO-GENERATED FROM packages/recommendation-contract/src/validators.ts. DO NOT EDIT DIRECTLY.
|
|
6
|
+
const configs_1 = require("./configs");
|
|
7
|
+
function isRecord(value) {
|
|
8
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
9
|
+
}
|
|
10
|
+
function sanitizeUrlPatterns(value) {
|
|
11
|
+
if (!Array.isArray(value))
|
|
12
|
+
return [];
|
|
13
|
+
const seen = new Set();
|
|
14
|
+
const patterns = [];
|
|
15
|
+
for (const raw of value) {
|
|
16
|
+
if (typeof raw !== 'string')
|
|
17
|
+
continue;
|
|
18
|
+
const pattern = raw.trim();
|
|
19
|
+
if (!pattern)
|
|
20
|
+
continue;
|
|
21
|
+
if (seen.has(pattern))
|
|
22
|
+
continue;
|
|
23
|
+
seen.add(pattern);
|
|
24
|
+
patterns.push(pattern);
|
|
25
|
+
}
|
|
26
|
+
return patterns;
|
|
27
|
+
}
|
|
28
|
+
function validateStyleBlock(blockName, value) {
|
|
29
|
+
if (value === undefined) {
|
|
30
|
+
return { valid: true };
|
|
31
|
+
}
|
|
32
|
+
if (!isRecord(value)) {
|
|
33
|
+
return { valid: false, message: `invalid ${blockName} payload` };
|
|
34
|
+
}
|
|
35
|
+
const section = configs_1.RECOMMENDATION_STYLE_CONFIGS[blockName];
|
|
36
|
+
const allowedKeys = new Set(section.fields.map((field) => field.key));
|
|
37
|
+
const invalidKeys = Object.keys(value).filter((key) => !allowedKeys.has(key));
|
|
38
|
+
if (invalidKeys.length > 0) {
|
|
39
|
+
return {
|
|
40
|
+
valid: false,
|
|
41
|
+
message: `invalid style key: ${invalidKeys.join(', ')}`,
|
|
42
|
+
invalidKeys,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return { valid: true };
|
|
46
|
+
}
|
|
47
|
+
function validateRecommendationConfig(config) {
|
|
48
|
+
if (!isRecord(config)) {
|
|
49
|
+
return { valid: false, message: 'invalid recommendation payload' };
|
|
50
|
+
}
|
|
51
|
+
if (config.strategy !== undefined && !configs_1.RECOMMENDATION_STRATEGIES.includes(config.strategy)) {
|
|
52
|
+
return { valid: false, message: 'invalid recommendation strategy' };
|
|
53
|
+
}
|
|
54
|
+
if (config.displayType !== undefined && !configs_1.RECOMMENDATION_DISPLAY_TYPES.includes(config.displayType)) {
|
|
55
|
+
return { valid: false, message: 'invalid display type' };
|
|
56
|
+
}
|
|
57
|
+
if (config.trigger !== undefined && !configs_1.RECOMMENDATION_TRIGGERS.includes(config.trigger)) {
|
|
58
|
+
return { valid: false, message: 'invalid trigger type' };
|
|
59
|
+
}
|
|
60
|
+
if (config.insertPosition !== undefined &&
|
|
61
|
+
!configs_1.RECOMMENDATION_INSERT_POSITIONS.includes(config.insertPosition)) {
|
|
62
|
+
return { valid: false, message: 'invalid insert position' };
|
|
63
|
+
}
|
|
64
|
+
if (config.cartPlatform !== undefined && !configs_1.RECOMMENDATION_PLATFORMS.includes(config.cartPlatform)) {
|
|
65
|
+
return { valid: false, message: 'invalid cart platform' };
|
|
66
|
+
}
|
|
67
|
+
const blocks = ['arrowStyles', 'dotStyles', 'titleStyles', 'subtitleStyles', 'containerStyles'];
|
|
68
|
+
for (const block of blocks) {
|
|
69
|
+
const validation = validateStyleBlock(block, config[block]);
|
|
70
|
+
if (!validation.valid) {
|
|
71
|
+
return validation;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return { valid: true };
|
|
75
|
+
}
|
|
76
|
+
function sanitizeRecommendationConfig(config) {
|
|
77
|
+
const defaults = (0, configs_1.getDefaultRecommendationConfig)();
|
|
78
|
+
if (!isRecord(config)) {
|
|
79
|
+
return defaults;
|
|
80
|
+
}
|
|
81
|
+
const styleBlockNames = ['arrowStyles', 'dotStyles', 'titleStyles', 'subtitleStyles', 'containerStyles'];
|
|
82
|
+
const sanitized = {
|
|
83
|
+
...defaults,
|
|
84
|
+
...config,
|
|
85
|
+
};
|
|
86
|
+
sanitized.showOnAllPages =
|
|
87
|
+
config.showOnAllPages === undefined ? defaults.showOnAllPages : Boolean(config.showOnAllPages);
|
|
88
|
+
sanitized.includeUrls = sanitizeUrlPatterns(config.includeUrls);
|
|
89
|
+
sanitized.excludeUrls = sanitizeUrlPatterns(config.excludeUrls);
|
|
90
|
+
for (const blockName of styleBlockNames) {
|
|
91
|
+
const section = configs_1.RECOMMENDATION_STYLE_CONFIGS[blockName];
|
|
92
|
+
const base = section.fields.reduce((acc, field) => {
|
|
93
|
+
acc[field.key] = field.default;
|
|
94
|
+
return acc;
|
|
95
|
+
}, {});
|
|
96
|
+
const input = isRecord(config[blockName]) ? config[blockName] : {};
|
|
97
|
+
const allowed = new Set(section.fields.map((field) => field.key));
|
|
98
|
+
for (const [key, value] of Object.entries(input)) {
|
|
99
|
+
if (allowed.has(key)) {
|
|
100
|
+
base[key] = value;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
sanitized[blockName] = base;
|
|
104
|
+
}
|
|
105
|
+
return sanitized;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/recommendation-contract/validators.ts"],"names":[],"mappings":"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"}
|