@repobit/dex-store-elements 1.4.3 → 1.4.5
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/CHANGELOG.md +17 -0
- package/dist/src/renders/attributes/discount.js +12 -12
- package/dist/src/renders/attributes/discount.js.map +1 -1
- package/dist/src/renders/attributes/price.js +8 -8
- package/dist/src/renders/attributes/price.js.map +1 -1
- package/dist/src/renders/attributes/utilty.js +3 -1
- package/dist/src/renders/attributes/utilty.js.map +1 -1
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.4.5](https://github.com/bitdefender/dex-core/compare/@repobit/dex-store-elements@1.4.4...@repobit/dex-store-elements@1.4.5) (2026-03-19)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @repobit/dex-store-elements
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [1.4.4](https://github.com/bitdefender/dex-core/compare/@repobit/dex-store-elements@1.4.3...@repobit/dex-store-elements@1.4.4) (2026-03-19)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **DEX-26778:** fix no discount price ([f08d636](https://github.com/bitdefender/dex-core/commit/f08d63626a15f536bfdbd4f6f47bc4f3fcabab97))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
6
23
|
## [1.4.3](https://github.com/bitdefender/dex-core/compare/@repobit/dex-store-elements@1.4.2...@repobit/dex-store-elements@1.4.3) (2026-03-03)
|
|
7
24
|
|
|
8
25
|
|
|
@@ -18,20 +18,20 @@ const OPTION_DISCOUNT_AVAILABLE = {
|
|
|
18
18
|
'percentage-monthly': (option) => isPresent(option.getDiscount({ symbol: false, percentage: true, monthly: true }))
|
|
19
19
|
};
|
|
20
20
|
const OPTION_DISCOUNT_RENDER = {
|
|
21
|
-
'value': (option) =>
|
|
22
|
-
'percentage': (option) =>
|
|
23
|
-
'value-monthly': (option) =>
|
|
24
|
-
'percentage-monthly': (option) =>
|
|
21
|
+
'value': (option) => option.getDiscount({ percentage: false }),
|
|
22
|
+
'percentage': (option) => option.getDiscount({ percentage: true }),
|
|
23
|
+
'value-monthly': (option) => option.getDiscount({ percentage: false, monthly: true }),
|
|
24
|
+
'percentage-monthly': (option) => option.getDiscount({ percentage: true, monthly: true })
|
|
25
25
|
};
|
|
26
26
|
const STATE_DISCOUNT_AVAILABLE = {
|
|
27
|
-
'min-value': (state) =>
|
|
28
|
-
'max-value': (state) =>
|
|
29
|
-
'min-value-monthly': (state) =>
|
|
30
|
-
'max-value-monthly': (state) =>
|
|
31
|
-
'min-percentage': (state) =>
|
|
32
|
-
'max-percentage': (state) =>
|
|
33
|
-
'min-percentage-monthly': (state) =>
|
|
34
|
-
'max-percentage-monthly': (state) =>
|
|
27
|
+
'min-value': (state) => Boolean(state.discount.min.fmt),
|
|
28
|
+
'max-value': (state) => Boolean(state.discount.max.fmt),
|
|
29
|
+
'min-value-monthly': (state) => Boolean(state.discount.monthly.min.fmt),
|
|
30
|
+
'max-value-monthly': (state) => Boolean(state.discount.monthly.max.fmt),
|
|
31
|
+
'min-percentage': (state) => Boolean(state.discount.percentage.min.fmt),
|
|
32
|
+
'max-percentage': (state) => Boolean(state.discount.percentage.max.fmt),
|
|
33
|
+
'min-percentage-monthly': (state) => Boolean(state.discount.percentage.monthly.min.fmt),
|
|
34
|
+
'max-percentage-monthly': (state) => Boolean(state.discount.percentage.monthly.max.fmt)
|
|
35
35
|
};
|
|
36
36
|
const STATE_DISCOUNT_RENDER = {
|
|
37
37
|
'min-value': (state) => state.discount.min.fmt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discount.js","sourceRoot":"","sources":["../../../../src/renders/attributes/discount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,oBAAoB,CAAU,CAAC;AAIvG,MAAM,qBAAqB,GAAG;IAC5B,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,wBAAwB;IACxB,wBAAwB;CAChB,CAAC;AAIX,MAAM,yBAAyB,GAAG;IAChC,OAAO,EAAe,CAAC,MAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAChH,YAAY,EAAU,CAAC,MAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/G,eAAe,EAAO,CAAC,MAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/H,oBAAoB,EAAE,CAAC,MAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;CACzD,CAAC;AAExE,MAAM,sBAAsB,GAAG;IAC7B,OAAO,EAAe,CAAC,MAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"discount.js","sourceRoot":"","sources":["../../../../src/renders/attributes/discount.ts"],"names":[],"mappings":"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","sourcesContent":["import { Compiler } from '@/dsl/compilers';\nimport type { UnifiedContext } from '../context';\nimport { isPresent } from './utilty';\n\nconst OPTION_DISCOUNT_TOKENS = ['value', 'percentage', 'value-monthly', 'percentage-monthly'] as const;\ntype OptionDiscountToken = typeof OPTION_DISCOUNT_TOKENS[number];\ntype OptionCtx = NonNullable<UnifiedContext['option']>;\n\nconst STATE_DISCOUNT_TOKENS = [\n 'min-value',\n 'max-value',\n 'min-percentage',\n 'max-percentage',\n 'min-value-monthly',\n 'max-value-monthly',\n 'min-percentage-monthly',\n 'max-percentage-monthly'\n] as const;\ntype StateDiscountToken = typeof STATE_DISCOUNT_TOKENS[number];\ntype StateCtx = NonNullable<UnifiedContext['state']>;\n\nconst OPTION_DISCOUNT_AVAILABLE = {\n 'value' : (option: OptionCtx) => isPresent(option.getDiscount({ symbol: false, percentage: false })),\n 'percentage' : (option: OptionCtx) => isPresent(option.getDiscount({ symbol: false, percentage: true })),\n 'value-monthly' : (option: OptionCtx) => isPresent(option.getDiscount({ symbol: false, percentage: false, monthly: true })),\n 'percentage-monthly': (option: OptionCtx) => isPresent(option.getDiscount({ symbol: false, percentage: true, monthly: true }))\n} satisfies Record<OptionDiscountToken, (option: OptionCtx) => boolean>;\n\nconst OPTION_DISCOUNT_RENDER = {\n 'value' : (option: OptionCtx) => option.getDiscount({ percentage: false }),\n 'percentage' : (option: OptionCtx) => option.getDiscount({ percentage: true }),\n 'value-monthly' : (option: OptionCtx) => option.getDiscount({ percentage: false, monthly: true }),\n 'percentage-monthly': (option: OptionCtx) => option.getDiscount({ percentage: true, monthly: true })\n} satisfies Record<OptionDiscountToken, (option: OptionCtx) => string>;\n\nconst STATE_DISCOUNT_AVAILABLE = {\n 'min-value' : (state: StateCtx) => Boolean(state.discount.min.fmt),\n 'max-value' : (state: StateCtx) => Boolean(state.discount.max.fmt),\n 'min-value-monthly' : (state: StateCtx) => Boolean(state.discount.monthly.min.fmt),\n 'max-value-monthly' : (state: StateCtx) => Boolean(state.discount.monthly.max.fmt),\n 'min-percentage' : (state: StateCtx) => Boolean(state.discount.percentage.min.fmt),\n 'max-percentage' : (state: StateCtx) => Boolean(state.discount.percentage.max.fmt),\n 'min-percentage-monthly': (state: StateCtx) => Boolean(state.discount.percentage.monthly.min.fmt),\n 'max-percentage-monthly': (state: StateCtx) => Boolean(state.discount.percentage.monthly.max.fmt)\n} satisfies Record<StateDiscountToken, (state: StateCtx) => boolean>;\n\nconst STATE_DISCOUNT_RENDER = {\n 'min-value' : (state: StateCtx) => state.discount.min.fmt,\n 'max-value' : (state: StateCtx) => state.discount.max.fmt,\n 'min-value-monthly' : (state: StateCtx) => state.discount.monthly.min.fmt,\n 'max-value-monthly' : (state: StateCtx) => state.discount.monthly.max.fmt,\n 'min-percentage' : (state: StateCtx) => state.discount.percentage.min.fmt,\n 'max-percentage' : (state: StateCtx) => state.discount.percentage.max.fmt,\n 'min-percentage-monthly': (state: StateCtx) => state.discount.percentage.monthly.min.fmt,\n 'max-percentage-monthly': (state: StateCtx) => state.discount.percentage.monthly.max.fmt\n} satisfies Record<StateDiscountToken, (state: StateCtx) => string>;\n\n// Handles both data-store-discount (option-level) and data-store-context-discount (state-level)\nexport const handleDiscount = (el: HTMLElement, ctx: UnifiedContext) => {\n const { storeDiscount, storeContextDiscount } = el.dataset;\n const option = ctx.option;\n\n // Option-level discount\n if (storeDiscount && option) {\n const chosen = Compiler.enum<OptionDiscountToken>({\n expr : storeDiscount,\n allowed : OPTION_DISCOUNT_TOKENS,\n isAvailable: (token) => OPTION_DISCOUNT_AVAILABLE[token](option)\n });\n\n if (chosen) {\n el.textContent = OPTION_DISCOUNT_RENDER[chosen](option);\n return;\n }\n }\n\n const state = ctx.state;\n\n // State-level discount\n if (storeContextDiscount && state) {\n const chosen = Compiler.enum<StateDiscountToken>({\n expr : storeContextDiscount,\n allowed : STATE_DISCOUNT_TOKENS,\n isAvailable: (token) => STATE_DISCOUNT_AVAILABLE[token](state)\n });\n\n if (chosen) {\n el.textContent = STATE_DISCOUNT_RENDER[chosen](state);\n }\n }\n};\n"]}
|
|
@@ -24,14 +24,14 @@ const OPTION_PRICE_RENDER = {
|
|
|
24
24
|
'discounted-monthly': (option) => option.getDiscountedPrice({ monthly: true })
|
|
25
25
|
};
|
|
26
26
|
const STATE_PRICE_AVAILABLE = {
|
|
27
|
-
'min-full': (state) =>
|
|
28
|
-
'max-full': (state) =>
|
|
29
|
-
'min-full-monthly': (state) =>
|
|
30
|
-
'max-full-monthly': (state) =>
|
|
31
|
-
'min-discounted': (state) =>
|
|
32
|
-
'max-discounted': (state) =>
|
|
33
|
-
'min-discounted-monthly': (state) =>
|
|
34
|
-
'max-discounted-monthly': (state) =>
|
|
27
|
+
'min-full': (state) => Boolean(state.price.min.fmt),
|
|
28
|
+
'max-full': (state) => Boolean(state.price.max.fmt),
|
|
29
|
+
'min-full-monthly': (state) => Boolean(state.price.monthly.min.fmt),
|
|
30
|
+
'max-full-monthly': (state) => Boolean(state.price.monthly.max.fmt),
|
|
31
|
+
'min-discounted': (state) => Boolean(state.discountedPrice.min.fmt),
|
|
32
|
+
'max-discounted': (state) => Boolean(state.discountedPrice.max.fmt),
|
|
33
|
+
'min-discounted-monthly': (state) => Boolean(state.discountedPrice.monthly.min.fmt),
|
|
34
|
+
'max-discounted-monthly': (state) => Boolean(state.discountedPrice.monthly.max.fmt)
|
|
35
35
|
};
|
|
36
36
|
const STATE_PRICE_RENDER = {
|
|
37
37
|
'min-full': (state) => state.price.min.fmt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../src/renders/attributes/price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,CAAU,CAAC;AAIlG,MAAM,kBAAkB,GAAG;IACzB,UAAU;IACV,UAAU;IACV,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,wBAAwB;IACxB,wBAAwB;CAChB,CAAC;AAIX,MAAM,sBAAsB,GAAG;IAC7B,MAAM,EAAgB,CAAC,MAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5F,YAAY,EAAU,CAAC,MAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACtG,cAAc,EAAQ,CAAC,MAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3G,oBAAoB,EAAE,CAAC,MAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;CACnD,CAAC;AAErE,MAAM,mBAAmB,GAAG;IAC1B,MAAM,EAAgB,CAAC,MAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC9D,YAAY,EAAU,CAAC,MAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE;IACxE,cAAc,EAAQ,CAAC,MAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC/E,oBAAoB,EAAE,CAAC,MAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;CACxB,CAAC;AAEpE,MAAM,qBAAqB,GAAG;IAC5B,UAAU,EAAgB,CAAC,KAAe,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../src/renders/attributes/price.ts"],"names":[],"mappings":"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","sourcesContent":["import { Compiler } from '@/dsl/compilers';\nimport type { UnifiedContext } from '../context';\nimport { isPresent } from './utilty';\n\nconst OPTION_PRICE_TOKENS = ['full', 'discounted', 'full-monthly', 'discounted-monthly'] as const;\ntype OptionPriceToken = typeof OPTION_PRICE_TOKENS[number];\ntype OptionCtx = NonNullable<UnifiedContext['option']>;\n\nconst STATE_PRICE_TOKENS = [\n 'min-full',\n 'max-full',\n 'min-discounted',\n 'max-discounted',\n 'min-full-monthly',\n 'max-full-monthly',\n 'min-discounted-monthly',\n 'max-discounted-monthly'\n] as const;\ntype StatePriceToken = typeof STATE_PRICE_TOKENS[number];\ntype StateCtx = NonNullable<UnifiedContext['state']>;\n\nconst OPTION_PRICE_AVAILABLE = {\n 'full' : (option: OptionCtx) => isPresent(option.getPrice({ currency: false })),\n 'discounted' : (option: OptionCtx) => isPresent(option.getDiscountedPrice({ currency: false })),\n 'full-monthly' : (option: OptionCtx) => isPresent(option.getPrice({ currency: false, monthly: true })),\n 'discounted-monthly': (option: OptionCtx) => isPresent(option.getDiscountedPrice({ currency: false, monthly: true }))\n} satisfies Record<OptionPriceToken, (option: OptionCtx) => boolean>;\n\nconst OPTION_PRICE_RENDER = {\n 'full' : (option: OptionCtx) => option.getPrice(),\n 'discounted' : (option: OptionCtx) => option.getDiscountedPrice(),\n 'full-monthly' : (option: OptionCtx) => option.getPrice({ monthly: true }),\n 'discounted-monthly': (option: OptionCtx) => option.getDiscountedPrice({ monthly: true })\n} satisfies Record<OptionPriceToken, (option: OptionCtx) => string>;\n\nconst STATE_PRICE_AVAILABLE = {\n 'min-full' : (state: StateCtx) => Boolean(state.price.min.fmt),\n 'max-full' : (state: StateCtx) => Boolean(state.price.max.fmt),\n 'min-full-monthly' : (state: StateCtx) => Boolean(state.price.monthly.min.fmt),\n 'max-full-monthly' : (state: StateCtx) => Boolean(state.price.monthly.max.fmt),\n 'min-discounted' : (state: StateCtx) => Boolean(state.discountedPrice.min.fmt),\n 'max-discounted' : (state: StateCtx) => Boolean(state.discountedPrice.max.fmt),\n 'min-discounted-monthly': (state: StateCtx) => Boolean(state.discountedPrice.monthly.min.fmt),\n 'max-discounted-monthly': (state: StateCtx) => Boolean(state.discountedPrice.monthly.max.fmt)\n} satisfies Record<StatePriceToken, (state: StateCtx) => boolean>;\n\nconst STATE_PRICE_RENDER = {\n 'min-full' : (state: StateCtx) => state.price.min.fmt,\n 'max-full' : (state: StateCtx) => state.price.max.fmt,\n 'min-full-monthly' : (state: StateCtx) => state.price.monthly.min.fmt,\n 'max-full-monthly' : (state: StateCtx) => state.price.monthly.max.fmt,\n 'min-discounted' : (state: StateCtx) => state.discountedPrice.min.fmt,\n 'max-discounted' : (state: StateCtx) => state.discountedPrice.max.fmt,\n 'min-discounted-monthly': (state: StateCtx) => state.discountedPrice.monthly.min.fmt,\n 'max-discounted-monthly': (state: StateCtx) => state.discountedPrice.monthly.max.fmt\n} satisfies Record<StatePriceToken, (state: StateCtx) => string>;\n\n// Handles both data-store-price (option-level) and data-store-context-price (state-level)\nexport const handlePrice = (el: HTMLElement, ctx: UnifiedContext) => {\n const { storePrice, storeContextPrice } = el.dataset;\n const option = ctx.option;\n\n // Option-level price\n if (storePrice && option) {\n const chosen = Compiler.enum<OptionPriceToken>({\n expr : storePrice,\n allowed : OPTION_PRICE_TOKENS,\n isAvailable: (token) => OPTION_PRICE_AVAILABLE[token](option)\n });\n\n if (chosen) {\n el.textContent = OPTION_PRICE_RENDER[chosen](option);\n return;\n }\n }\n\n const state = ctx.state;\n\n // State-level price\n if (storeContextPrice && state) {\n const chosen = Compiler.enum<StatePriceToken>({\n expr : storeContextPrice,\n allowed : STATE_PRICE_TOKENS,\n isAvailable: (token) => STATE_PRICE_AVAILABLE[token](state)\n });\n\n if (chosen) {\n el.textContent = STATE_PRICE_RENDER[chosen](state);\n }\n }\n};\n"]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export const isPresent = (value) => value !== null
|
|
1
|
+
export const isPresent = (value) => value !== null
|
|
2
|
+
&& value !== undefined
|
|
3
|
+
&& (typeof value !== 'number' || Number.isFinite(value));
|
|
2
4
|
export const resolveAnchor = (el) => el instanceof HTMLAnchorElement ? el : el.querySelector('a');
|
|
3
5
|
//# sourceMappingURL=utilty.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilty.js","sourceRoot":"","sources":["../../../../src/renders/attributes/utilty.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"utilty.js","sourceRoot":"","sources":["../../../../src/renders/attributes/utilty.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAW,EAAE,CACnD,KAAK,KAAK,IAAI;OACX,KAAK,KAAK,SAAS;OACnB,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAe,EAA4B,EAAE,CACzE,EAAE,YAAY,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAoB,GAAG,CAAC,CAAC","sourcesContent":["export const isPresent = (value: unknown): boolean =>\n value !== null\n && value !== undefined\n && (typeof value !== 'number' || Number.isFinite(value));\n\nexport const resolveAnchor = (el: HTMLElement): HTMLAnchorElement | null =>\n el instanceof HTMLAnchorElement ? el : el.querySelector<HTMLAnchorElement>('a');\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@repobit/dex-store-elements",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5",
|
|
4
4
|
"description": "HTML elements layer for pricings",
|
|
5
5
|
"author": "Buga Adrian Alexandru <abuga@bitdefender.com>",
|
|
6
6
|
"homepage": "https://github.com/bitdefender/dex-core#readme",
|
|
@@ -40,20 +40,20 @@
|
|
|
40
40
|
"url": "https://github.com/bitdefender/dex-core/issues"
|
|
41
41
|
},
|
|
42
42
|
"volta": {
|
|
43
|
-
"node": "
|
|
43
|
+
"node": "24.14.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"lit": "^3.
|
|
46
|
+
"lit": "^3.3.2"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@repobit/dex-store": "
|
|
50
|
-
"deepmerge": "^4.
|
|
49
|
+
"@repobit/dex-store": "^1.3.10",
|
|
50
|
+
"deepmerge": "^4.3.1",
|
|
51
51
|
"lit": "^3.0.0"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@lit/context": "^1.1.
|
|
55
|
-
"@lit/task": "^1.0.
|
|
56
|
-
"eta": "^4.
|
|
54
|
+
"@lit/context": "^1.1.6",
|
|
55
|
+
"@lit/task": "^1.0.3",
|
|
56
|
+
"eta": "^4.5.1",
|
|
57
57
|
"nanomorph": "^5.4.3"
|
|
58
58
|
},
|
|
59
59
|
"contributes": {
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
]
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "9792ae8c968ed6411c532e76e18dd4c1e0029371"
|
|
67
67
|
}
|