diff --git a/package.json b/package.json index 344c1368..f12b949d 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,8 @@ "devDependencies": { "@types/eslint-plugin-mocha": "^10", "eslint-plugin-mocha": "^11.2.0", - "eslint-plugin-prettier": "^5.5.4" + "eslint-plugin-prettier": "^5.5.4", + "prettier": "^3.6.2" }, "resolutions": { "form-data": ">=4.0.4", diff --git a/packages/enums/src/dictionary.ts b/packages/enums/src/dictionary.ts index 584b1d86..2176f83e 100644 --- a/packages/enums/src/dictionary.ts +++ b/packages/enums/src/dictionary.ts @@ -54,7 +54,7 @@ export const MESSAGES = { SEGMENTATION_NOT_RESTRICTED: 'Segmentation not restricted', RULE_NOT_MATCH: 'Rule does not match', RULE_MATCH: 'Found matched rule at OR block #', - RULE_MATCH_AND: 'AND block rule macthed', + RULE_MATCH_AND: 'AND block rule matched', RULE_MATCH_START: 'About to evaluate rule #', LOCATION_ACTIVATED: 'Location # activated', LOCATION_DEACTIVATED: 'Location # deactivated', diff --git a/packages/enums/src/segments/source-type.ts b/packages/enums/src/segments/source-type.ts index 97c6fdff..2dec6fe8 100644 --- a/packages/enums/src/segments/source-type.ts +++ b/packages/enums/src/segments/source-type.ts @@ -8,5 +8,6 @@ export enum SourceType { CAMPAIGN = 'campaign', SEARCH = 'search', REFERRAL = 'referral', - DIRECT = 'direct' + DIRECT = 'direct', + AI_TOOL = 'ai_tool' } diff --git a/packages/js-sdk/README.md b/packages/js-sdk/README.md index 8bb947bb..0f361737 100644 --- a/packages/js-sdk/README.md +++ b/packages/js-sdk/README.md @@ -981,7 +981,6 @@ Additionally, you can even include this repository as part of your own `TypeScri ``` 2. Choose one of the following methods: - - **Workspaces**: Add the following `workspaces` to your `package.json` (_assuming that the submodule is located under your repository root_): ```json @@ -1075,4 +1074,4 @@ Happy converting! ## Credits -Copyright © 2024 Convert Insights, Inc. +Copyright © 2025 Convert Insights, Inc. diff --git a/packages/rules/src/rule-manager.ts b/packages/rules/src/rule-manager.ts index 31e1a877..4422ebeb 100644 --- a/packages/rules/src/rule-manager.ts +++ b/packages/rules/src/rule-manager.ts @@ -195,17 +195,16 @@ export class RuleManager implements RuleManagerInterface { ) { for (let i = 0, l = rulesSubset.AND.length; i < l; i++) { match = this._processORWHEN(data, rulesSubset.AND[i]); - if (match === false) { - return false; + // AND requires ALL to explicitly return true + if (match !== true) { + return match; } } - if (match !== false) { - this._loggerManager?.info?.( - 'RuleManager._processAND()', - MESSAGES.RULE_MATCH_AND - ); - } - return match; + this._loggerManager?.info?.( + 'RuleManager._processAND()', + MESSAGES.RULE_MATCH_AND + ); + return true; } else { this._loggerManager?.warn?.( 'RuleManager._processAND()', diff --git a/packages/types/src/config/types.gen.ts b/packages/types/src/config/types.gen.ts index 486eb9db..52935bc9 100644 --- a/packages/types/src/config/types.gen.ts +++ b/packages/types/src/config/types.gen.ts @@ -778,11 +778,11 @@ export type RuleObjectAudience = { */ OR?: Array<{ /** - * An array of OR_WHEN-blocks. + * This describes a colections of logical blocks which are evaluated using AND's between them */ AND?: Array<{ /** - * An array of individual rule elements that do not involve URL matching. + * This describes a colections of logical blocks which are evaluated using OR's between them */ OR_WHEN?: Array; }>; @@ -1816,6 +1816,10 @@ export type ConfigExperience = { */ products_ordered_count?: (NumericOutlier); }; + /** + * List of placeholders used by this experience (from changes, global_js, and global_css) + */ + placeholders?: Array<(string)>; /** * A couple of settings only applicable to Split URL experiments */ @@ -2171,6 +2175,10 @@ export type ClicksElementGoalSettings = { * Css selector that identifies the DOM element(s) on which will track clicks in order to fire the goal. */ selector: string; + /** + * If true, triggers only on pages where the associated experience runs (Experience Location). Does not apply sitewide or to unrelated pages. + */ + only_where_experience_runs?: boolean; }; /** @@ -2485,6 +2493,10 @@ export type ConfigProject = { * List of active placeholders which are used in experiences for the project */ placeholders?: Array<(string)>; + /** + * List of placeholders used in project's Global JavaScript (convertPlaceholders.) + */ + global_javascript_placeholders?: Array<(string)>; } & ConfigProjectMinimalSettings); }; diff --git a/yarn.lock b/yarn.lock index abee415c..90f8c33b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26013,6 +26013,7 @@ __metadata: "@types/eslint-plugin-mocha": "npm:^10" eslint-plugin-mocha: "npm:^11.2.0" eslint-plugin-prettier: "npm:^5.5.4" + prettier: "npm:^3.6.2" languageName: unknown linkType: soft