feed-common 1.10.5 → 1.10.6

Sign up to get free protection for your applications and to get access to all the features.
package/.prettierrc ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "semi": true,
3
+ "singleQuote": true,
4
+ "printWidth": 120,
5
+ "tabWidth": 4,
6
+ "useTabs": false,
7
+ "trailingComma": "es5",
8
+ "bracketSpacing": true,
9
+ "arrowParens": "avoid"
10
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
3
+ }
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.10.6](https://github.com/advertikon/package-maxify-feed-common/compare/v1.10.5...v1.10.6) (2024-05-26)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add tests ([cf05aad](https://github.com/advertikon/package-maxify-feed-common/commit/cf05aad1a48e7b5a93845475ff9d77c8b6139a98))
7
+
1
8
  ## [1.10.5](https://github.com/advertikon/package-maxify-feed-common/compare/v1.10.4...v1.10.5) (2024-05-21)
2
9
 
3
10
 
@@ -1,4 +1,4 @@
1
- import { ProductUploadRuleFilters, ProductUploadMappings, RuleOperators } from "../constants/profile.constants.js";
1
+ import { ProductUploadRuleFilters, ProductUploadMappings, RuleOperators } from '../constants/profile.constants.js';
2
2
  export type SelectItem = {
3
3
  label: string;
4
4
  value: string;
@@ -26,9 +26,9 @@ export type ProductUploadMapSource = {
26
26
  required: boolean;
27
27
  label: string;
28
28
  attribute: string;
29
- type: "select" | "multiselect" | "text" | "number";
29
+ type: 'select' | 'multiselect' | 'text' | 'number';
30
30
  choices?: OptionType[];
31
- rules: ProductUploadRuleFilterType["value"][];
31
+ rules: ProductUploadRuleFilterType['value'][];
32
32
  description?: string;
33
33
  defaultValue?: ValueType;
34
34
  };
@@ -38,15 +38,15 @@ export type ProductUploadMapping = {
38
38
  rules: {
39
39
  sections: {
40
40
  ruleItems: {
41
- attribute: (typeof ProductUploadRuleFilters)[number]["value"];
42
- operator: ProductUploadRuleOperatorType["value"];
41
+ attribute: (typeof ProductUploadRuleFilters)[number]['value'];
42
+ operator: ProductUploadRuleOperatorType['value'];
43
43
  value: string | string[] | number[] | number | boolean;
44
44
  id: string;
45
45
  }[];
46
46
  }[];
47
47
  };
48
48
  };
49
- type MappingFields = (typeof ProductUploadMappings)[number]["attribute"];
49
+ type MappingFields = (typeof ProductUploadMappings)[number]['attribute'];
50
50
  export type ProductUploadProfile = {
51
51
  id: string;
52
52
  profileIdTemplate: string;
@@ -1,7 +1,23 @@
1
- import { OptionType, OptionTypeItem, OptionTypeGroup, ProductUploadProfile, ProductUploadMapping, ProductUploadRuleFilterType, ProductUploadRuleItem, ProductUploadRuleSection, ProductUploadRules } from '../types/profile.types.js';
1
+ import { OptionType, OptionTypeItem, OptionTypeGroup, ProductUploadProfile, ProductUploadMapping, ProductUploadRuleFilterType, RuleOperatorsType, ProductUploadRuleItem, ProductUploadRuleSection, ProductUploadRules } from '../types/profile.types.js';
2
+ /**
3
+ * Check for rules duplication
4
+ * @param rules
5
+ * @returns
6
+ */
2
7
  export declare function checkRuleDuplication(rules: ProductUploadRuleItem[]): string[];
8
+ /**
9
+ * Check if rules mutually exclusive
10
+ * @param rules
11
+ * @returns
12
+ */
3
13
  export declare function checkRuleAlwaysness(rules: ProductUploadRuleItem[]): string[];
4
- export declare function checkRuleDeadlocks(sections: ProductUploadRuleSection[]): string[];
14
+ /**
15
+ * Checks for contradictions in rules, e.g A == 1 and A != 1
16
+ * @param sections
17
+ * @returns
18
+ */
19
+ export declare function checkRuleDeadlocks(input: ProductUploadRuleSection[]): string[];
20
+ export declare function getOperatorCounterpart(operator: keyof RuleOperatorsType): keyof RuleOperatorsType;
5
21
  export declare function getEmptyRuleItem(attribute?: ProductUploadRuleFilterType['value']): ProductUploadRuleItem;
6
22
  export declare function sortMappings(a: ProductUploadMapping, b: ProductUploadMapping): number;
7
23
  export declare function hasRules(rules: ProductUploadRules): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAE3B,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAInC,wBAAgB,oBAAoB,CAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAgB9E;AAED,wBAAgB,mBAAmB,CAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAW7E;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,wBAAwB,EAAE,GACnC,MAAM,EAAE,CA4BV;AAoDD,wBAAgB,gBAAgB,CAC9B,SAAS,GAAE,2BAA2B,CAAC,OAAO,CAAM,GACnD,qBAAqB,CAEvB;AAED,wBAAgB,YAAY,CAC1B,CAAC,EAAE,oBAAoB,EACvB,CAAC,EAAE,oBAAoB,GACtB,MAAM,CAiCR;AAED,wBAAgB,QAAQ,CAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAK5D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,CAAC,GAAE,kBAAqC,EACxC,CAAC,GAAE,kBAAqC,GACvC,OAAO,CA4CT;AAUD,wBAAgB,eAAe,CAC7B,CAAC,EAAE,oBAAoB,EAAE,EACzB,CAAC,EAAE,oBAAoB,EAAE,GACxB,OAAO,CA6BT;AACD,wBAAgB,cAAc,CAAE,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,MAAM,CAEpE;AAED,wBAAgB,YAAY,CAAE,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,cAAc,CAE1E;AAED,wBAAgB,aAAa,CAAE,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,eAAe,CAE5E;AACD,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,oBAAoB,EACvB,CAAC,EAAE,oBAAoB,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,CAwCnE;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,oBAAoB,GAC5B,oBAAoB,CAkBtB"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"AACA,OAAO,EACH,UAAU,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EACrB,MAAM,2BAA2B,CAAC;AAInC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAgB7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAW5E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,EAAE,GAAG,MAAM,EAAE,CAwB9E;AAWD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAiCjG;AAED,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,2BAA2B,CAAC,OAAO,CAAM,GAAG,qBAAqB,CAE5G;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,oBAAoB,GAAG,MAAM,CA6BrF;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CACxB,CAAC,GAAE,kBAAqC,EACxC,CAAC,GAAE,kBAAqC,GACzC,OAAO,CAmCT;AAUD,wBAAgB,eAAe,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,CAAC,EAAE,oBAAoB,EAAE,GAAG,OAAO,CA6B7F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,MAAM,CAEnE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,cAAc,CAEzE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,eAAe,CAE3E;AAED,wBAAgB,mBAAmB,CAC/B,CAAC,EAAE,oBAAoB,EACvB,CAAC,EAAE,oBAAoB,GACxB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,CAkCnE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAczF"}
@@ -1,8 +1,13 @@
1
1
  import { ProductUploadMappings } from '../constants/profile.constants.js';
2
2
  import { code } from './utils.js';
3
+ /**
4
+ * Check for rules duplication
5
+ * @param rules
6
+ * @returns
7
+ */
3
8
  export function checkRuleDuplication(rules) {
4
9
  return rules
5
- .map((r) => {
10
+ .map(r => {
6
11
  for (const rule of rules) {
7
12
  if (r.id !== rule.id &&
8
13
  r.attribute === rule.attribute &&
@@ -15,11 +20,16 @@ export function checkRuleDuplication(rules) {
15
20
  })
16
21
  .filter(Boolean);
17
22
  }
23
+ /**
24
+ * Check if rules mutually exclusive
25
+ * @param rules
26
+ * @returns
27
+ */
18
28
  export function checkRuleAlwaysness(rules) {
19
29
  return rules
20
- .map((r) => {
30
+ .map(r => {
21
31
  for (const rule of rules) {
22
- if (isExlusive(r, rule)) {
32
+ if (isExclusive(r, rule)) {
23
33
  return r.id;
24
34
  }
25
35
  }
@@ -27,38 +37,40 @@ export function checkRuleAlwaysness(rules) {
27
37
  })
28
38
  .filter(Boolean);
29
39
  }
30
- export function checkRuleDeadlocks(sections) {
31
- let totalList = [];
32
- for (let i = 0; i < sections.length; i++) {
40
+ /**
41
+ * Checks for contradictions in rules, e.g A == 1 and A != 1
42
+ * @param sections
43
+ * @returns
44
+ */
45
+ export function checkRuleDeadlocks(input) {
46
+ const totalList = [];
47
+ const sections = structuredClone(input);
48
+ for (let i = 0; i < sections.length - 1; i++) {
33
49
  const currentSection = sections[i];
34
- const currentList = [];
35
- for (let y = 0; y < sections.length; y++) {
36
- if (i === y) {
37
- continue;
38
- }
39
- from_start: for (const ruleA of currentSection.ruleItems) {
40
- for (const ruleB of sections[y].ruleItems) {
41
- if (isExlusive(ruleA, ruleB)) {
42
- currentList.push(ruleA.id);
50
+ for (let y = i + 1; y < sections.length; y++) {
51
+ from_start: for (let x = 0; x < currentSection.ruleItems.length; x++) {
52
+ const ruleA = currentSection.ruleItems[x];
53
+ for (let z = 0; z < sections[y].ruleItems.length; z++) {
54
+ const ruleB = sections[y].ruleItems[z];
55
+ if (isExclusive(ruleA, ruleB)) {
56
+ totalList.push([ruleA.id, ruleB.id]);
57
+ currentSection.ruleItems.splice(x, 1);
58
+ sections[y].ruleItems.splice(z, 1);
43
59
  continue from_start;
44
60
  }
45
61
  }
46
62
  }
47
63
  }
48
- if (currentList.length === currentSection.ruleItems.length) {
49
- totalList = [...totalList, ...currentList];
50
- }
51
64
  }
52
- return totalList;
65
+ return sections.some(s => s.ruleItems.length === 0) ? totalList.flat() : [];
53
66
  }
54
- function isExlusive(rule1, rule2) {
67
+ function isExclusive(rule1, rule2) {
55
68
  return (rule1.id !== rule2.id &&
56
69
  rule1.attribute === rule2.attribute &&
57
- rule1.operator ===
58
- getOperatorCounterpart(rule2.operator) &&
70
+ rule1.operator === getOperatorCounterpart(rule2.operator) &&
59
71
  rule1.value === rule2.value);
60
72
  }
61
- function getOperatorCounterpart(operator) {
73
+ export function getOperatorCounterpart(operator) {
62
74
  switch (operator) {
63
75
  case 'equals':
64
76
  return 'notEquals';
@@ -102,8 +114,8 @@ export function sortMappings(a, b) {
102
114
  if (!b.attribute) {
103
115
  return -1;
104
116
  }
105
- const sourceA = ProductUploadMappings.find((m) => m.attribute === a.attribute);
106
- const sourceB = ProductUploadMappings.find((m) => m.attribute === b.attribute);
117
+ const sourceA = ProductUploadMappings.find(m => m.attribute === a.attribute);
118
+ const sourceB = ProductUploadMappings.find(m => m.attribute === b.attribute);
107
119
  if (sourceA?.required && !sourceB?.required) {
108
120
  return -1;
109
121
  }
@@ -119,8 +131,7 @@ export function sortMappings(a, b) {
119
131
  return 0;
120
132
  }
121
133
  export function hasRules(rules) {
122
- return (Array.isArray(rules?.sections) &&
123
- rules.sections.some((section) => section.ruleItems.length > 0));
134
+ return Array.isArray(rules?.sections) && rules.sections.some(section => section.ruleItems.length > 0);
124
135
  }
125
136
  /**
126
137
  * Checks if two rules are the same
@@ -131,12 +142,10 @@ export function hasRules(rules) {
131
142
  export function compareRules(a = { sections: [] }, b = { sections: [] }) {
132
143
  const matchedSections = [];
133
144
  const sameRule = (rA, rB) => {
134
- return (rA.attribute === rB.attribute &&
135
- rA.operator === rB.operator &&
136
- compareValues(rA.value, rB.value));
145
+ return rA.attribute === rB.attribute && rA.operator === rB.operator && compareValues(rA.value, rB.value);
137
146
  };
138
- a.sections = a.sections.filter((s) => s.ruleItems.length > 0);
139
- b.sections = b.sections.filter((s) => s.ruleItems.length > 0);
147
+ a.sections = a.sections.filter(s => s.ruleItems.length > 0);
148
+ b.sections = b.sections.filter(s => s.ruleItems.length > 0);
140
149
  if (a.sections.length !== b.sections.length) {
141
150
  return false;
142
151
  }
@@ -150,7 +159,7 @@ export function compareRules(a = { sections: [] }, b = { sections: [] }) {
150
159
  if (rulesA.length !== rulesB.length) {
151
160
  continue;
152
161
  }
153
- if (rulesA.every((ruleA) => rulesB.some((ruleB) => sameRule(ruleA, ruleB)))) {
162
+ if (rulesA.every(ruleA => rulesB.some(ruleB => sameRule(ruleA, ruleB)))) {
154
163
  matchedSections.push(j);
155
164
  break;
156
165
  }
@@ -160,7 +169,7 @@ export function compareRules(a = { sections: [] }, b = { sections: [] }) {
160
169
  }
161
170
  function compareValues(a, b) {
162
171
  if (Array.isArray(a) && Array.isArray(b)) {
163
- return a.length === b.length && a.every((i) => b.includes(i));
172
+ return a.length === b.length && a.every(i => b.includes(i));
164
173
  }
165
174
  return a === b;
166
175
  }
@@ -205,18 +214,19 @@ export function detectProfileChange(a, b) {
205
214
  if (a.name !== b.name) {
206
215
  changes.name = true;
207
216
  }
208
- if (a.mappings !== b.mappings) {
209
- const mappingsA = a.mappings?.filter((m) => m.attribute !== 'targetCountry' && m.attribute !== 'contentLanguage');
210
- const mappingsB = b.mappings?.filter((m) => m.attribute !== 'targetCountry' && m.attribute !== 'contentLanguage');
211
- changes.mappings = !compareMappings(mappingsA, mappingsB);
212
- }
213
- if (['targetCountry', 'contentLanguage'].some((key) => {
214
- const mappingA = a.mappings?.filter((m) => m.attribute === key) ?? [];
215
- const mappingB = b.mappings?.filter((m) => m.attribute === key) ?? [];
217
+ if (ProductUploadMappings.filter(m => m.required)
218
+ .map(m => m.attribute)
219
+ .some(key => {
220
+ const mappingA = a.mappings?.filter(m => m.attribute === key) ?? [];
221
+ const mappingB = b.mappings?.filter(m => m.attribute === key) ?? [];
216
222
  return !compareMappings(mappingA, mappingB);
217
223
  })) {
218
224
  changes.id = true;
219
225
  }
226
+ const requiredAttrs = ProductUploadMappings.filter(m => m.required).map(m => m.attribute);
227
+ const mappingsA = a.mappings?.filter(m => !requiredAttrs.includes(m.attribute));
228
+ const mappingsB = b.mappings?.filter(m => !requiredAttrs.includes(m.attribute));
229
+ changes.mappings = !compareMappings(mappingsA, mappingsB);
220
230
  if (!compareRules(a.rules, b.rules)) {
221
231
  changes.rules = true;
222
232
  }
@@ -224,11 +234,11 @@ export function detectProfileChange(a, b) {
224
234
  }
225
235
  export function sanitizeUploadProfile(profile) {
226
236
  if (profile.rules?.sections) {
227
- profile.rules.sections = profile.rules.sections.filter((section) => section.ruleItems.length > 0);
237
+ profile.rules.sections = profile.rules.sections.filter(section => section.ruleItems.length > 0);
228
238
  }
229
- profile.mappings = profile.mappings?.map((mapping) => {
239
+ profile.mappings = profile.mappings?.map(mapping => {
230
240
  if (mapping.rules?.sections) {
231
- mapping.rules.sections = mapping.rules.sections.filter((section) => section.ruleItems.length > 0);
241
+ mapping.rules.sections = mapping.rules.sections.filter(section => section.ruleItems.length > 0);
232
242
  }
233
243
  return mapping;
234
244
  });
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,UAAU,oBAAoB,CAAE,KAA8B;IAClE,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IACE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;gBAChB,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;gBAC9B,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAC5B,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EACtB,CAAC;gBACD,OAAO,CAAC,CAAC,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAa,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAE,KAA8B;IACjE,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,CAAC,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAa,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAoC;IAEpC,IAAI,SAAS,GAAG,EAAc,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,EAAc,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,UAAU,EAAE,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;gBACzD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC1C,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;wBAC7B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC3B,SAAS,UAAU,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC3D,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CACjB,KAA4B,EAC5B,KAA4B;IAE5B,OAAO,CACL,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;QACrB,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QACnC,KAAK,CAAC,QAAQ;YACZ,sBAAsB,CAAC,KAAK,CAAC,QAAmC,CAAC;QACnE,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAC5B,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAAiC;IAEjC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC;QACrB,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,aAAa,CAAC;QACvB,KAAK,aAAa;YAChB,OAAO,UAAU,CAAC;QACpB,KAAK,YAAY;YACf,OAAO,eAAe,CAAC;QACzB,KAAK,eAAe;YAClB,OAAO,YAAY,CAAC;QACtB,KAAK,UAAU;YACb,OAAO,aAAa,CAAC;QACvB,KAAK,aAAa;YAChB,OAAO,UAAU,CAAC;QACpB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,gBAAgB;YACnB,OAAO,aAAa,CAAC;QACvB,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC;QAC1B;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,YAAkD,EAAE;IAEpD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,CAAuB,EACvB,CAAuB;IAEvB,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CACnC,CAAC;IACF,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CACnC,CAAC;IAEF,IAAI,OAAO,EAAE,QAAQ,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC5C,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,EAAE,QAAQ,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC5C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,QAAQ,CAAE,KAAyB;IACjD,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAwB,EAAE,QAAQ,EAAE,EAAE,EAAE,EACxC,IAAwB,EAAE,QAAQ,EAAE,EAAE,EAAE;IAExC,MAAM,eAAe,GAAG,EAAc,CAAC;IACvC,MAAM,QAAQ,GAAG,CACf,EAAyB,EACzB,EAAyB,EAChB,EAAE;QACX,OAAO,CACL,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS;YAC7B,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ;YAC3B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAClC,CAAC;IACJ,CAAC,CAAC;IAEF,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE9D,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEvC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpC,SAAS;YACX,CAAC;YAED,IACE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACvE,CAAC;gBACD,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CAAE,CAAM,EAAE,CAAM;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,CAAyB,EACzB,CAAyB;IAEzB,MAAM,eAAe,GAAG,EAAc,CAAC;IAEvC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtB,IACE,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;gBACzC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;gBAC7C,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAC5C,CAAC;gBACD,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC;AAC7C,CAAC;AACD,MAAM,UAAU,cAAc,CAAE,MAAkB;IAChD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,YAAY,CAAE,MAAkB;IAC9C,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAAE,MAAkB;IAC/C,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,MAAM,CAAC;AAC3D,CAAC;AACD,MAAM,UAAU,mBAAmB,CACjC,CAAuB,EACvB,CAAuB;IAEvB,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,EAAE,EAAE,KAAK;KACV,CAAC;IAEF,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,SAAS,KAAK,eAAe,IAAI,CAAC,CAAC,SAAS,KAAK,iBAAiB,CACvE,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,SAAS,KAAK,eAAe,IAAI,CAAC,CAAC,SAAS,KAAK,iBAAiB,CACvE,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,IACE,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QAEtE,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,EACF,CAAC;QACD,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA6B;IAE7B,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CACpD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACnD,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CACpD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAC1C,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/utils/profile.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "feed-common",
3
- "version": "1.10.5",
3
+ "version": "1.10.6",
4
4
  "description": "Maxify feed common library",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "scripts": {
8
8
  "build": "tsc",
9
- "install-local": "scripts/install.sh"
9
+ "install-local": "scripts/install.sh",
10
+ "test": "vitest"
10
11
  },
11
12
  "devDependencies": {
12
13
  "@semantic-release/changelog": "^6.0.1",
@@ -19,9 +20,12 @@
19
20
  "@types/express": "^4.17.13",
20
21
  "@typescript-eslint/eslint-plugin": "^5.18.0",
21
22
  "@typescript-eslint/parser": "^5.18.0",
23
+ "@vitest/coverage-istanbul": "^1.6.0",
22
24
  "semantic-release": "^19.0.5",
23
25
  "semantic-release-slack-bot": "^4.0.2",
24
- "typescript": "^5.3.3"
26
+ "simple-git-hooks": "^2.11.1",
27
+ "typescript": "^5.3.3",
28
+ "vitest": "^1.6.0"
25
29
  },
26
30
  "peerDependencies": {
27
31
  "@shopify/shopify-api": "^9.2.0"
@@ -35,5 +39,8 @@
35
39
  "bugs": {
36
40
  "url": "https://github.com/advertikon/package-maxify-feed-common/issues"
37
41
  },
38
- "homepage": "https://github.com/advertikon/package-maxify-feed-common#readme"
42
+ "homepage": "https://github.com/advertikon/package-maxify-feed-common#readme",
43
+ "simple-git-hooks": {
44
+ "pre-commit": "npm run test"
45
+ }
39
46
  }
@@ -2,7 +2,7 @@ import {
2
2
  ProductUploadRuleFilters,
3
3
  ProductUploadMappings,
4
4
  RuleOperators,
5
- } from "../constants/profile.constants.js";
5
+ } from '../constants/profile.constants.js';
6
6
 
7
7
  export type SelectItem = { label: string; value: string };
8
8
 
@@ -25,9 +25,9 @@ export type ProductUploadMapSource = {
25
25
  required: boolean;
26
26
  label: string;
27
27
  attribute: string;
28
- type: "select" | "multiselect" | "text" | "number";
28
+ type: 'select' | 'multiselect' | 'text' | 'number';
29
29
  choices?: OptionType[];
30
- rules: ProductUploadRuleFilterType["value"][];
30
+ rules: ProductUploadRuleFilterType['value'][];
31
31
  description?: string;
32
32
  defaultValue?: ValueType;
33
33
  };
@@ -38,8 +38,8 @@ export type ProductUploadMapping = {
38
38
  rules: {
39
39
  sections: {
40
40
  ruleItems: {
41
- attribute: (typeof ProductUploadRuleFilters)[number]["value"];
42
- operator: ProductUploadRuleOperatorType["value"];
41
+ attribute: (typeof ProductUploadRuleFilters)[number]['value'];
42
+ operator: ProductUploadRuleOperatorType['value'];
43
43
  value: string | string[] | number[] | number | boolean;
44
44
  id: string;
45
45
  }[];
@@ -47,7 +47,7 @@ export type ProductUploadMapping = {
47
47
  };
48
48
  };
49
49
 
50
- type MappingFields = (typeof ProductUploadMappings)[number]["attribute"];
50
+ type MappingFields = (typeof ProductUploadMappings)[number]['attribute'];
51
51
 
52
52
  export type ProductUploadProfile = {
53
53
  id: string;