@swan-admin/swan-ai-measurements 1.0.52 → 1.0.53

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/auth.js CHANGED
@@ -1,12 +1,6 @@
1
- import axios from "axios";
2
- import {
3
- API_ENDPOINTS,
4
- APP_AUTH_BASE_URL,
5
- APP_AUTH_WEBSOCKET_URL,
6
- APP_BASE_URL,
7
- REQUIRED_MESSAGE,
8
- } from "./constants.js";
9
- import { checkParameters } from "./utils.js";
1
+ const axios = require("axios");
2
+ const { API_ENDPOINTS, APP_AUTH_BASE_URL, APP_AUTH_WEBSOCKET_URL, APP_BASE_URL, REQUIRED_MESSAGE } = require("./constants.js");
3
+ const { checkParameters } = require("./utils.js");
10
4
 
11
5
  class Auth {
12
6
  #socketRef;
@@ -96,4 +90,4 @@ class Auth {
96
90
  };
97
91
  }
98
92
 
99
- export default Auth;
93
+ module.exports = Auth;
package/constants.js CHANGED
@@ -1,19 +1,18 @@
1
- export const APP_BASE_URL = "https://fitview-server-staging.ft2a64raup4pg.us-east-1.cs.amazonlightsail.com";
2
- export const APP_AUTH_BASE_URL = "https://staging.api.getswan.co";
3
- export const APP_AUTH_WEBSOCKET_URL = "wss://staging.wsnotify.api.getswan.co";
4
- export const APP_TRY_ON_WEBSOCKET_URL = "wss://bucbzczxjk.execute-api.ap-south-1.amazonaws.com";
5
- export const APP_RECOMMENDATION_WEBSOCKET_URL = "wss://staging.wsnotify.api.getswan.co/scanning";
6
- export const APP_POSE_DETECTION_WEbSOCKET_URL =
7
- "https://posedetect-service-staging.ft2a64raup4pg.us-east-1.cs.amazonlightsail.com";
1
+ const APP_BASE_URL = "https://fitview-server-staging.ft2a64raup4pg.us-east-1.cs.amazonlightsail.com";
2
+ const APP_AUTH_BASE_URL = "https://staging.api.getswan.co";
3
+ const APP_AUTH_WEBSOCKET_URL = "wss://staging.wsnotify.api.getswan.co";
4
+ const APP_TRY_ON_WEBSOCKET_URL = "wss://bucbzczxjk.execute-api.ap-south-1.amazonaws.com";
5
+ const APP_RECOMMENDATION_WEBSOCKET_URL = "wss://staging.wsnotify.api.getswan.co/scanning";
6
+ const APP_POSE_DETECTION_WEbSOCKET_URL = "https://posedetect-service-staging.ft2a64raup4pg.us-east-1.cs.amazonlightsail.com";
8
7
 
9
- export const UPPY_FILE_UPLOAD_ENDPOINT = {
8
+ const UPPY_FILE_UPLOAD_ENDPOINT = {
10
9
  UPLOAD_START: "/upload/start",
11
10
  UPLOAD_COMPLETE: "/upload/complete",
12
11
  UPLOAD_SIGN_PART: "/upload/signpart",
13
12
  UPLOAD_ABORT: "/upload/abort",
14
13
  };
15
14
 
16
- export const API_ENDPOINTS = {
15
+ const API_ENDPOINTS = {
17
16
  GET_USER_DETAIL: "/api/user",
18
17
  REGISTER_USER: "/auth/register",
19
18
  VERIFY_USER: "/auth/verify",
@@ -28,16 +27,20 @@ export const API_ENDPOINTS = {
28
27
  TRY_ON: "/tryon",
29
28
  AUTH: "/auth",
30
29
  };
31
- export const requiredMetaData = [
32
- "gender",
33
- "scan_id",
34
- "email",
35
- "focal_length",
36
- "height",
37
- "customer_store_url",
38
- "scan_type",
39
- "callback_url",
40
- "clothes_fit",
41
- ];
42
- export const REQUIRED_MESSAGE = "Please verify required parameters";
43
- export const REQUIRED_MESSAGE_FOR_META_DATA = "Please verify required parameters in meta data";
30
+ const requiredMetaData = ["gender", "scan_id", "email", "focal_length", "height", "customer_store_url", "scan_type", "callback_url", "clothes_fit"];
31
+ const REQUIRED_MESSAGE = "Please verify required parameters";
32
+ const REQUIRED_MESSAGE_FOR_META_DATA = "Please verify required parameters in meta data";
33
+
34
+ module.exports = {
35
+ APP_BASE_URL,
36
+ APP_AUTH_BASE_URL,
37
+ APP_AUTH_WEBSOCKET_URL,
38
+ APP_TRY_ON_WEBSOCKET_URL,
39
+ APP_RECOMMENDATION_WEBSOCKET_URL,
40
+ APP_POSE_DETECTION_WEbSOCKET_URL,
41
+ REQUIRED_MESSAGE_FOR_META_DATA,
42
+ REQUIRED_MESSAGE,
43
+ requiredMetaData,
44
+ API_ENDPOINTS,
45
+ UPPY_FILE_UPLOAD_ENDPOINT,
46
+ };
package/custom.js CHANGED
@@ -1,8 +1,8 @@
1
- import axios from "axios";
2
- import { API_ENDPOINTS, APP_AUTH_BASE_URL, REQUIRED_MESSAGE } from "./constants.js";
3
- import { checkParameters } from "./utils.js";
1
+ const axios = require("axios");
2
+ const { API_ENDPOINTS, APP_AUTH_BASE_URL, REQUIRED_MESSAGE } = require("./constants.js");
3
+ const { checkParameters } = require("./utils.js");
4
4
 
5
- export default class Custom {
5
+ class Custom {
6
6
  getCustomCustomerConfig = (store_url, accessKey) => {
7
7
  if (checkParameters(store_url, accessKey) === false) {
8
8
  throw new Error(REQUIRED_MESSAGE);
@@ -20,3 +20,5 @@ export default class Custom {
20
20
  return axios.get(`${APP_AUTH_BASE_URL}${API_ENDPOINTS.MODEL}/${id}`, { headers: { "X-Api-Key": accessKey } });
21
21
  };
22
22
  }
23
+
24
+ module.exports = Custom;
package/fileUpload.js CHANGED
@@ -1,24 +1,38 @@
1
- import AwsS3Multipart from "@uppy/aws-s3-multipart";
2
- import Uppy from "@uppy/core";
3
- import { REQUIRED_MESSAGE, REQUIRED_MESSAGE_FOR_META_DATA, UPPY_FILE_UPLOAD_ENDPOINT } from "./constants.js";
4
- import { checkMetaDataValue, checkParameters, fetchData } from "./utils.js";
1
+ const { REQUIRED_MESSAGE, REQUIRED_MESSAGE_FOR_META_DATA, UPPY_FILE_UPLOAD_ENDPOINT } = require("./constants.js");
2
+ const { checkMetaDataValue, checkParameters, fetchData } = require("./utils.js");
5
3
 
6
- export default class FileUpload {
4
+ class FileUpload {
7
5
  #uppyIns;
6
+ #Uppy;
7
+ #AwsS3Multipart;
8
8
 
9
- uploadFile({ file, objMetaData, scanId, accessKey }) {
9
+ constructor() {
10
+ this.initializeModules();
11
+ }
12
+
13
+ async initializeModules() {
14
+ this.#Uppy = (await import("@uppy/core")).default;
15
+ this.#AwsS3Multipart = (await import("@uppy/aws-s3-multipart")).default;
16
+ }
17
+
18
+ async uploadFile({ file, objMetaData, scanId, accessKey }) {
10
19
  if (checkParameters(file, objMetaData, scanId, accessKey) === false) {
11
20
  throw new Error(REQUIRED_MESSAGE);
12
21
  }
13
22
  if (checkMetaDataValue(objMetaData) === false) {
14
23
  throw new Error(REQUIRED_MESSAGE_FOR_META_DATA);
15
24
  }
25
+
26
+ if (!this.#Uppy || !this.#AwsS3Multipart) {
27
+ await this.initializeModules();
28
+ }
29
+
16
30
  return new Promise((resolve, reject) => {
17
31
  if (this.#uppyIns) {
18
32
  this.#uppyIns.close();
19
33
  }
20
- this.#uppyIns = new Uppy({ autoProceed: true });
21
- this.#uppyIns.use(AwsS3Multipart, {
34
+ this.#uppyIns = new this.#Uppy({ autoProceed: true });
35
+ this.#uppyIns.use(this.#AwsS3Multipart, {
22
36
  limit: 10,
23
37
  retryDelays: [0, 1000, 3000, 5000],
24
38
  getChunkSize: () => 5 * 1024 * 1024,
@@ -45,7 +59,6 @@ export default class FileUpload {
45
59
  originalFileName: file.name,
46
60
  },
47
61
  }),
48
-
49
62
  signPart: (file, partData) =>
50
63
  fetchData({
51
64
  path: UPPY_FILE_UPLOAD_ENDPOINT.UPLOAD_SIGN_PART,
@@ -56,7 +69,6 @@ export default class FileUpload {
56
69
  partNumber: partData.partNumber,
57
70
  },
58
71
  }),
59
-
60
72
  abortMultipartUpload: (file, { uploadId, key }) =>
61
73
  fetchData({
62
74
  path: UPPY_FILE_UPLOAD_ENDPOINT.UPLOAD_ABORT,
@@ -90,3 +102,5 @@ export default class FileUpload {
90
102
  });
91
103
  }
92
104
  }
105
+
106
+ module.exports = FileUpload;
package/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import Auth from "./auth.js";
2
- import Custom from "./custom.js";
3
- import FileUpload from "./fileUpload.js";
4
- import Measurement from "./measurement.js";
5
- import PoseDetection from "./poseDetection.js";
6
- import TryOn from "./tryOn.js";
7
- export default class Swan {
1
+ const Auth = require("./auth.js");
2
+ const Custom = require("./custom.js");
3
+ const FileUpload = require("./fileUpload.js");
4
+ const Measurement = require("./measurement.js");
5
+ const PoseDetection = require("./poseDetection.js");
6
+ const TryOn = require("./tryOn.js");
7
+ class Swan {
8
8
  auth = new Auth();
9
9
 
10
10
  custom = new Custom();
@@ -17,3 +17,5 @@ export default class Swan {
17
17
 
18
18
  tryOn = new TryOn();
19
19
  }
20
+
21
+ module.exports = Swan;
package/measurement.js CHANGED
@@ -1,19 +1,14 @@
1
- import axios from "axios";
2
- import {
3
- API_ENDPOINTS,
4
- APP_AUTH_BASE_URL,
5
- APP_RECOMMENDATION_WEBSOCKET_URL,
6
- APP_TRY_ON_WEBSOCKET_URL,
7
- REQUIRED_MESSAGE,
8
- } from "./constants.js";
9
- import { checkParameters } from "./utils.js";
10
-
11
- export default class Measurement {
1
+ const axios = require("axios");
2
+ const { API_ENDPOINTS, APP_AUTH_BASE_URL, APP_RECOMMENDATION_WEBSOCKET_URL, APP_TRY_ON_WEBSOCKET_URL, REQUIRED_MESSAGE } = require("./constants.js");
3
+ const { checkParameters } = require("./utils.js");
4
+
5
+ class Measurement {
12
6
  #tryOnSocketRef = null;
13
7
  #measurementSocketRef = null;
14
8
  #timerPollingRef = null;
15
9
  #timerWaitingRef = null;
16
10
  #count = 1;
11
+
17
12
  getMeasurementStatus(scanId, accessKey) {
18
13
  if (checkParameters(scanId, accessKey) === false) {
19
14
  throw new Error(REQUIRED_MESSAGE);
@@ -75,7 +70,7 @@ export default class Measurement {
75
70
  } else {
76
71
  this.#count = 1;
77
72
  clearInterval(this.#timerPollingRef);
78
- onError?.({ scanStatus: "failed", message: "Scan not found" });
73
+ onError?.({ scanStatus: "failed", message: "Scan not found", isMeasured: false });
79
74
  }
80
75
  }
81
76
  } catch (e) {
@@ -112,7 +107,6 @@ export default class Measurement {
112
107
  this.#disconnectSocket();
113
108
  const url = `${APP_RECOMMENDATION_WEBSOCKET_URL}?scanId=${scanId}`;
114
109
  this.#measurementSocketRef = new WebSocket(url);
115
-
116
110
  this.#measurementSocketRef.onopen = () => {
117
111
  onOpen?.();
118
112
  this.#handleTimeOut({ scanId, onSuccess, onError, accessKey });
@@ -138,3 +132,5 @@ export default class Measurement {
138
132
  }, 5000);
139
133
  };
140
134
  }
135
+
136
+ module.exports = Measurement;
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "@swan-admin/swan-ai-measurements",
3
- "version": "1.0.52",
3
+ "version": "1.0.53",
4
4
  "description": "provides ai measurement suggestion",
5
5
  "main": "index.js",
6
- "type": "module",
7
6
  "dependencies": {
8
7
  "@uppy/aws-s3-multipart": "^3.10.2",
9
8
  "@uppy/core": "^3.9.3",
package/poseDetection.js CHANGED
@@ -1,7 +1,7 @@
1
- import { APP_POSE_DETECTION_WEbSOCKET_URL, REQUIRED_MESSAGE } from "./constants.js";
2
- import { io } from "socket.io-client";
1
+ const { APP_POSE_DETECTION_WEbSOCKET_URL, REQUIRED_MESSAGE } = require("./constants.js");
2
+ const { io } = require("socket.io-client");
3
3
 
4
- export default class PoseDetection {
4
+ class PoseDetection {
5
5
  #socketRef = null;
6
6
 
7
7
  connect(accessKey) {
@@ -51,3 +51,5 @@ export default class PoseDetection {
51
51
  return !!this.#socketRef?.connected;
52
52
  }
53
53
  }
54
+
55
+ module.exports = PoseDetection;
package/tryOn.js CHANGED
@@ -1,6 +1,6 @@
1
- import axios from "axios";
2
- import { API_ENDPOINTS, APP_AUTH_BASE_URL, APP_AUTH_WEBSOCKET_URL, REQUIRED_MESSAGE } from "./constants.js";
3
- import { checkParameters } from "./utils.js";
1
+ const axios = require("axios");
2
+ const { API_ENDPOINTS, APP_AUTH_BASE_URL, APP_AUTH_WEBSOCKET_URL, REQUIRED_MESSAGE } = require("./constants.js");
3
+ const { checkParameters } = require("./utils.js");
4
4
 
5
5
  class TryOn {
6
6
  #tryOnSocketRef = null;
@@ -155,4 +155,4 @@ class TryOn {
155
155
  };
156
156
  }
157
157
 
158
- export default TryOn;
158
+ module.exports = TryOn;
package/utils.js CHANGED
@@ -1,6 +1,6 @@
1
- import { APP_AUTH_BASE_URL, requiredMetaData } from "./constants.js";
2
- import axios from "axios";
3
- export async function fetchData({
1
+ const { APP_AUTH_BASE_URL, requiredMetaData } = require("./constants.js");
2
+ const axios = require("axios");
3
+ async function fetchData({
4
4
  path,
5
5
  body,
6
6
  queryParams,
@@ -22,7 +22,7 @@ export async function fetchData({
22
22
  }
23
23
  }
24
24
 
25
- export const checkParameters = (...args) => {
25
+ const checkParameters = (...args) => {
26
26
  for (const element of args) {
27
27
  if (!element) {
28
28
  return false;
@@ -31,17 +31,11 @@ export const checkParameters = (...args) => {
31
31
  return true;
32
32
  };
33
33
 
34
- export const checkMetaDataValue = (arr) => {
34
+ const checkMetaDataValue = (arr) => {
35
35
  for (const key of requiredMetaData) {
36
36
  let hasRequiredKey = false;
37
37
  inner: for (const obj of arr) {
38
- if (
39
- obj.hasOwnProperty(key) &&
40
- obj[key] !== undefined &&
41
- obj[key] !== null &&
42
- obj[key] !== "" &&
43
- typeof obj[key] !== "number"
44
- ) {
38
+ if (obj.hasOwnProperty(key) && obj[key] !== undefined && obj[key] !== null && obj[key] !== "" && typeof obj[key] !== "number") {
45
39
  hasRequiredKey = true;
46
40
  break inner;
47
41
  }
@@ -61,3 +55,5 @@ export const checkMetaDataValue = (arr) => {
61
55
  }
62
56
  return true;
63
57
  };
58
+
59
+ module.exports = { checkMetaDataValue, checkParameters, fetchData };