@escapenavigator/utils 2.0.9 → 2.0.11

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.
@@ -1,6 +1,7 @@
1
1
  export declare const IMAGE_CDN_HOST_COM = "d2z3luly8bezbw.cloudfront.net";
2
2
  export declare const IMAGE_CDN_HOST_RU = "picture.escapenavigator.ru";
3
- export declare const imageResizeSizes: {
3
+ /** @see en-ui/src/image/utils.ts keep in sync */
4
+ export declare const imageSizes: {
4
5
  readonly xs: "300x300";
5
6
  readonly s: "300x300";
6
7
  readonly m: "300x300";
@@ -9,10 +10,24 @@ export declare const imageResizeSizes: {
9
10
  readonly xxl: "640x640";
10
11
  readonly auto: "640x640";
11
12
  };
12
- export type ImageResizeSize = keyof typeof imageResizeSizes | (string & {});
13
+ export type ImageResizeSize = keyof typeof imageSizes | (string & {});
13
14
  export declare const GALLERY_IMAGE_SIZE = "1280x1280";
15
+ /** Default CDN resize box when size is omitted. */
16
+ export declare const DEFAULT_IMAGE_DIMENSIONS = "300x300";
17
+ export declare const isRuImageRegion: () => boolean;
14
18
  export declare const getImageCdnHost: () => string;
15
19
  export declare const extractStoragePath: (src: string) => string | null;
16
20
  export declare const isEscapenavigatorImage: (src: string) => boolean;
17
- /** @see en-ui/src/image/utils.ts keep logic in sync */
21
+ export declare const resolveImageDimensions: (size?: ImageResizeSize) => string;
22
+ /** @see en-ui getImageSrc — same logic, for raw `<img>` outside @alphakits/ui Image */
18
23
  export declare const getImageUrl: (src?: string, size?: ImageResizeSize) => string | undefined;
24
+ /** @deprecated use imageSizes */
25
+ export declare const imageResizeSizes: {
26
+ readonly xs: "300x300";
27
+ readonly s: "300x300";
28
+ readonly m: "300x300";
29
+ readonly l: "300x300";
30
+ readonly xl: "300x300";
31
+ readonly xxl: "640x640";
32
+ readonly auto: "640x640";
33
+ };
package/dist/image-url.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getImageUrl = exports.isEscapenavigatorImage = exports.extractStoragePath = exports.getImageCdnHost = exports.GALLERY_IMAGE_SIZE = exports.imageResizeSizes = exports.IMAGE_CDN_HOST_RU = exports.IMAGE_CDN_HOST_COM = void 0;
4
- const is_ru_1 = require("./is-ru");
3
+ exports.imageResizeSizes = exports.getImageUrl = exports.resolveImageDimensions = exports.isEscapenavigatorImage = exports.extractStoragePath = exports.getImageCdnHost = exports.isRuImageRegion = exports.DEFAULT_IMAGE_DIMENSIONS = exports.GALLERY_IMAGE_SIZE = exports.imageSizes = exports.IMAGE_CDN_HOST_RU = exports.IMAGE_CDN_HOST_COM = void 0;
5
4
  exports.IMAGE_CDN_HOST_COM = 'd2z3luly8bezbw.cloudfront.net';
6
5
  exports.IMAGE_CDN_HOST_RU = 'picture.escapenavigator.ru';
7
6
  const S3_BUCKET_MARKER = 'escapenavigator-images.s3';
8
7
  const CDN_HOSTS = [exports.IMAGE_CDN_HOST_COM, exports.IMAGE_CDN_HOST_RU];
9
- exports.imageResizeSizes = {
8
+ /** @see en-ui/src/image/utils.ts keep in sync */
9
+ exports.imageSizes = {
10
10
  xs: '300x300',
11
11
  s: '300x300',
12
12
  m: '300x300',
@@ -16,25 +16,36 @@ exports.imageResizeSizes = {
16
16
  auto: '640x640',
17
17
  };
18
18
  exports.GALLERY_IMAGE_SIZE = '1280x1280';
19
- const getImageCdnHost = () => ((0, is_ru_1.isRu)() ? exports.IMAGE_CDN_HOST_RU : exports.IMAGE_CDN_HOST_COM);
19
+ /** Default CDN resize box when size is omitted. */
20
+ exports.DEFAULT_IMAGE_DIMENSIONS = '300x300';
21
+ const isRuImageRegion = () => process.env.REACT_APP_REGION === 'ru';
22
+ exports.isRuImageRegion = isRuImageRegion;
23
+ const getImageCdnHost = () => (0, exports.isRuImageRegion)() ? exports.IMAGE_CDN_HOST_RU : exports.IMAGE_CDN_HOST_COM;
20
24
  exports.getImageCdnHost = getImageCdnHost;
21
25
  const extractStoragePath = (src) => {
22
26
  if (src.includes('amazonaws.com/')) {
23
27
  return src.split('amazonaws.com/')[1]?.split('?')[0] ?? null;
24
28
  }
25
- const match = src.match(/fit-in\/\d+x\d+\/(.+?)(?:\?|$)/);
29
+ const match = src.match(/fit-in\/[^/]+\/(.+?)(?:\?|$)/);
26
30
  return match?.[1] ?? null;
27
31
  };
28
32
  exports.extractStoragePath = extractStoragePath;
29
33
  const isEscapenavigatorImage = (src) => src.includes(S3_BUCKET_MARKER) || CDN_HOSTS.some((host) => src.includes(host));
30
34
  exports.isEscapenavigatorImage = isEscapenavigatorImage;
31
- /** @see en-ui/src/image/utils.ts keep logic in sync */
32
- const getImageUrl = (src, size = 'm') => {
35
+ const resolveImageDimensions = (size) => {
36
+ if (!size)
37
+ return exports.DEFAULT_IMAGE_DIMENSIONS;
38
+ if (size in exports.imageSizes) {
39
+ return exports.imageSizes[size];
40
+ }
41
+ return size;
42
+ };
43
+ exports.resolveImageDimensions = resolveImageDimensions;
44
+ /** @see en-ui getImageSrc — same logic, for raw `<img>` outside @alphakits/ui Image */
45
+ const getImageUrl = (src, size) => {
33
46
  if (!src || src.startsWith('data:'))
34
47
  return src;
35
- const dimensions = size in exports.imageResizeSizes
36
- ? exports.imageResizeSizes[size]
37
- : size;
48
+ const dimensions = (0, exports.resolveImageDimensions)(size);
38
49
  if (!(0, exports.isEscapenavigatorImage)(src))
39
50
  return src;
40
51
  const path = (0, exports.extractStoragePath)(src);
@@ -43,3 +54,5 @@ const getImageUrl = (src, size = 'm') => {
43
54
  return `https://${(0, exports.getImageCdnHost)()}/fit-in/${dimensions}/${path}`;
44
55
  };
45
56
  exports.getImageUrl = getImageUrl;
57
+ /** @deprecated use imageSizes */
58
+ exports.imageResizeSizes = exports.imageSizes;
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from './get-full-name';
14
14
  export * from './get-handled-error-message';
15
15
  export * from './get-order-cancelation-state';
16
16
  export * from './get-service-error';
17
+ export * from './image-url';
17
18
  export * from './is-axios-error';
18
19
  export * from './is-network-error';
19
20
  export * from './is-stale-chunk-error';
@@ -34,4 +35,3 @@ export * from './utm-touchpoints';
34
35
  export * from './validate-by-dto';
35
36
  export * from './validate-promocode';
36
37
  export * from './widget-chat-attention';
37
- export * from './image-url';
package/dist/index.js CHANGED
@@ -30,6 +30,7 @@ __exportStar(require("./get-full-name"), exports);
30
30
  __exportStar(require("./get-handled-error-message"), exports);
31
31
  __exportStar(require("./get-order-cancelation-state"), exports);
32
32
  __exportStar(require("./get-service-error"), exports);
33
+ __exportStar(require("./image-url"), exports);
33
34
  __exportStar(require("./is-axios-error"), exports);
34
35
  __exportStar(require("./is-network-error"), exports);
35
36
  __exportStar(require("./is-stale-chunk-error"), exports);
@@ -50,4 +51,3 @@ __exportStar(require("./utm-touchpoints"), exports);
50
51
  __exportStar(require("./validate-by-dto"), exports);
51
52
  __exportStar(require("./validate-promocode"), exports);
52
53
  __exportStar(require("./widget-chat-attention"), exports);
53
- __exportStar(require("./image-url"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@escapenavigator/utils",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -14,7 +14,7 @@
14
14
  "test": "jest"
15
15
  },
16
16
  "dependencies": {
17
- "@escapenavigator/types": "^2.0.9",
17
+ "@escapenavigator/types": "^2.0.10",
18
18
  "axios": "^0.21.4",
19
19
  "class-transformer": "^0.5.1",
20
20
  "class-validator": "^0.13.2",
@@ -29,5 +29,5 @@
29
29
  "ts-jest": "^29.1.1",
30
30
  "typescript": "^5.6"
31
31
  },
32
- "gitHead": "eb29688633048e8011bc07e280dcaa84a2c61244"
32
+ "gitHead": "f2969a35bebc2dac1fb8fc3c6b2ec2f6943eb282"
33
33
  }