@servicetitan/web-components 30.1.2 → 30.2.1

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 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG,MAAM,CACpC,MAAM,EACN;IACI,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB,CACJ,CAAC;AAEF,MAAM,WAAW,2BAA2B;IACxC,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;CAC7D;AAED,eAAO,MAAM,cAAc,uDAAwC,CAAC;AACpE,eAAO,MAAM,0BAA0B,oEAEtC,CAAC;AACF,eAAO,MAAM,mCAAmC,4EAE/C,CAAC;AACF,eAAO,MAAM,sBAAsB,wDAAiD,CAAC;AACrF,eAAO,MAAM,iBAAiB,2DAA+C,CAAC;AAE9E,MAAM,WAAW,OAAO;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAe,SAAQ,WAAW;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,GAAG,EACjC,GAAG,EAAE,MAAM,EACX,EAAE,OAAW,EAAE,UAAiB,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,GAAE,cAAmB,GACnF,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAiDrD;AAED,wBAAgB,cAAc,oBAE7B"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG,MAAM,CACpC,MAAM,EACN;IACI,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB,CACJ,CAAC;AAEF,MAAM,WAAW,2BAA2B;IACxC,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;CAC7D;AAED,eAAO,MAAM,cAAc,uDAAwC,CAAC;AACpE,eAAO,MAAM,0BAA0B,oEAEtC,CAAC;AACF,eAAO,MAAM,mCAAmC,4EAE/C,CAAC;AACF,eAAO,MAAM,sBAAsB,wDAAiD,CAAC;AACrF,eAAO,MAAM,iBAAiB,2DAA+C,CAAC;AAE9E,MAAM,WAAW,OAAO;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAe,SAAQ,WAAW;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9C;AAUD,wBAAsB,OAAO,CAAC,CAAC,GAAG,GAAG,EACjC,GAAG,EAAE,MAAM,EACX,EAAE,OAAW,EAAE,UAAiB,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,GAAE,cAAmB,GACnF,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAiDrD;AAED,wBAAgB,cAAc,oBAE7B"}
package/dist/common.js CHANGED
@@ -5,6 +5,11 @@ export const EXPOSED_DEPENDENCIES_TOKEN = symbolToken('EXPOSED_DEPENDENCIES_TOKE
5
5
  export const EXPOSED_INSTANCE_DEPENDENCIES_TOKEN = symbolToken('EXPOSED_INSTANCE_DEPENDENCIES_TOKEN');
6
6
  export const IS_WEB_COMPONENT_TOKEN = symbolToken('IS_WEB_COMPONENT_TOKEN');
7
7
  export const RENDER_ROOT_TOKEN = symbolToken('RENDER_ROOT_TOKEN');
8
+ function createNetworkError(message) {
9
+ const error = new Error(message);
10
+ error.name = 'NetworkError';
11
+ return error;
12
+ }
8
13
  export async function getJson(url, { retries = 5, retryDelay = 1000, onRequestError, ...config } = {}) {
9
14
  var _a, _b;
10
15
  let response;
@@ -31,7 +36,7 @@ export async function getJson(url, { retries = 5, retryDelay = 1000, onRequestEr
31
36
  signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', abortHandler);
32
37
  });
33
38
  }
34
- throw new Error(`Failed to fetch: "${url}".`);
39
+ throw createNetworkError(`Failed to fetch: "${url}".`);
35
40
  }
36
41
  const responseJSON = await response.json().catch(() => ({}));
37
42
  if (!response.ok) {
@@ -45,7 +50,7 @@ export async function getJson(url, { retries = 5, retryDelay = 1000, onRequestEr
45
50
  json: responseJSON,
46
51
  body: await response.text().catch(() => ''),
47
52
  });
48
- throw new Error(message);
53
+ throw createNetworkError(message);
49
54
  }
50
55
  return { data: responseJSON, headers: response.headers, url: (_b = response.url) !== null && _b !== void 0 ? _b : url };
51
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAmBtD,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAS,gBAAgB,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CACjD,4BAA4B,CAC/B,CAAC;AACF,MAAM,CAAC,MAAM,mCAAmC,GAAG,WAAW,CAC1D,qCAAqC,CACxC,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAU,wBAAwB,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAa,mBAAmB,CAAC,CAAC;AA8B9E,SAAS,kBAAkB,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAEjC,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC;IAE5B,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,GAAW,EACX,EAAE,OAAO,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,KAAqB,EAAE;;IAElF,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACD,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,WAAM,CAAC;QACL,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,OAAO,CAAA,EAAE,CAAC;YACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;gBAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;oBACrC,OAAO,CAAC,GAAG,EAAE;wBACT,GAAG,MAAM;wBACT,cAAc;wBACd,OAAO,EAAE,OAAO,GAAG,CAAC;wBACpB,UAAU,EAAE,UAAU,GAAG,CAAC;qBAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7B,CAAC,EAAE,UAAU,CAAC,CAAC;gBAEf,MAAM,YAAY,GAAG,GAAG,EAAE;oBACtB,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC/B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;oBACnD,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,CAAC;gBAC3B,CAAC,CAAC;gBAEF,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,kBAAkB,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,OAAO,GAAG,eAAe,GAAG,6BAA6B,QAAQ,CAAC,MAAM,GAAG,CAAC;QAEhF,IAAI,CAAC;YACD,OAAO,IAAI,aAAa,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;QACrD,CAAC;QAAC,WAAM,CAAC,CAAA,CAAC,CAAC,+BAA+B;QAE1C,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG;YACb,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,MAAA,QAAQ,CAAC,GAAG,mCAAI,GAAG,EAAE,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,cAAc;IAC1B,OAAO,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC;AACjD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/web-components",
3
- "version": "30.1.2",
3
+ "version": "30.2.1",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,17 +15,17 @@
15
15
  "src"
16
16
  ],
17
17
  "dependencies": {
18
- "@servicetitan/error-boundary": "30.1.2",
18
+ "@servicetitan/error-boundary": "30.2.1",
19
19
  "lodash.get": "~4.4.2",
20
20
  "mitt": "~3.0.1",
21
- "semver": "~7.7.1"
21
+ "semver": "~7.7.2"
22
22
  },
23
23
  "devDependencies": {
24
- "@servicetitan/anvil2": "^1.31.3",
24
+ "@servicetitan/anvil2": "^1.33.1",
25
25
  "@servicetitan/design-system": "~14.5.2",
26
- "@servicetitan/launchdarkly-service": "30.1.2",
27
- "@servicetitan/log-service": "30.1.2",
28
- "@servicetitan/react-ioc": "30.1.2",
26
+ "@servicetitan/launchdarkly-service": "30.2.1",
27
+ "@servicetitan/log-service": "30.2.1",
28
+ "@servicetitan/react-ioc": "30.2.1",
29
29
  "@testing-library/dom": "^10.4.0",
30
30
  "@testing-library/jest-dom": "^6.6.3",
31
31
  "@testing-library/react": "^16.3.0",
@@ -33,7 +33,7 @@
33
33
  "@types/lodash.get": "~4.4.6",
34
34
  "@types/react": "~18.3.3",
35
35
  "@types/react-dom": "~18.3.0",
36
- "@types/semver": "~7.5.8",
36
+ "@types/semver": "~7.7.0",
37
37
  "history": "~4.10.1",
38
38
  "launchdarkly-react-client-sdk": "^3.6.1",
39
39
  "react": "~18.3.1",
@@ -41,11 +41,11 @@
41
41
  "shadow-dom-testing-library": "^1.12.0"
42
42
  },
43
43
  "peerDependencies": {
44
- "@servicetitan/anvil2": ">=1.31.3",
44
+ "@servicetitan/anvil2": ">=1.33.1",
45
45
  "@servicetitan/design-system": ">=14.5.2",
46
- "@servicetitan/launchdarkly-service": "30.1.2",
47
- "@servicetitan/log-service": "30.1.2",
48
- "@servicetitan/react-ioc": "30.1.2",
46
+ "@servicetitan/launchdarkly-service": "30.2.1",
47
+ "@servicetitan/log-service": "30.2.1",
48
+ "@servicetitan/react-ioc": "30.2.1",
49
49
  "history": "~4.10.1",
50
50
  "react": ">=17.0.2",
51
51
  "react-dom": ">=17.0.2"
@@ -67,5 +67,5 @@
67
67
  "cli": {
68
68
  "webpack": false
69
69
  },
70
- "gitHead": "76e26006c94d59038b9719ede1fa416d84d4a2c3"
70
+ "gitHead": "297a0bb448afa86cf35e80c5d9a7613d8f86b0a3"
71
71
  }
@@ -95,7 +95,10 @@ describe('[web-components] common', () => {
95
95
 
96
96
  test('throws an error', async () => {
97
97
  await expect(subject()).rejects.toThrow(
98
- `Requesting "${mockUrl}" failed with status code ${fetchResponse.status}. Details: ${fetchResponseText}.`
98
+ expect.objectContaining({
99
+ name: 'NetworkError',
100
+ message: `Requesting "${mockUrl}" failed with status code ${fetchResponse.status}. Details: ${fetchResponseText}.`,
101
+ })
99
102
  );
100
103
  });
101
104
 
@@ -155,7 +158,12 @@ describe('[web-components] common', () => {
155
158
  test('retries the specified number of times before throwing error', async () => {
156
159
  const result = subject();
157
160
  await flushMicrotasksAndRunAllTimersTimes(getJsonOptions.retries!);
158
- await expect(result).rejects.toThrow(`Failed to fetch: "${mockUrl}".`);
161
+ await expect(result).rejects.toThrow(
162
+ expect.objectContaining({
163
+ name: 'NetworkError',
164
+ message: `Failed to fetch: "${mockUrl}".`,
165
+ })
166
+ );
159
167
  const expectedTimesCalled = getJsonOptions.retries! + 1;
160
168
  expect(spyFetch).toHaveBeenCalledTimes(expectedTimesCalled);
161
169
  });
package/src/common.ts CHANGED
@@ -57,6 +57,14 @@ interface GetJsonOptions extends RequestInit {
57
57
  onRequestError?(error: GetJsonError): void;
58
58
  }
59
59
 
60
+ function createNetworkError(message: string) {
61
+ const error = new Error(message);
62
+
63
+ error.name = 'NetworkError';
64
+
65
+ return error;
66
+ }
67
+
60
68
  export async function getJson<T = any>(
61
69
  url: string,
62
70
  { retries = 5, retryDelay = 1000, onRequestError, ...config }: GetJsonOptions = {}
@@ -88,7 +96,7 @@ export async function getJson<T = any>(
88
96
  });
89
97
  }
90
98
 
91
- throw new Error(`Failed to fetch: "${url}".`);
99
+ throw createNetworkError(`Failed to fetch: "${url}".`);
92
100
  }
93
101
 
94
102
  const responseJSON = await response.json().catch(() => ({}));
@@ -105,7 +113,7 @@ export async function getJson<T = any>(
105
113
  json: responseJSON,
106
114
  body: await response.text().catch(() => ''),
107
115
  });
108
- throw new Error(message);
116
+ throw createNetworkError(message);
109
117
  }
110
118
 
111
119
  return { data: responseJSON, headers: response.headers, url: response.url ?? url };