@vrplatform/api 1.3.1-stage.2286 → 1.3.1-stage.2295

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.
Files changed (171) hide show
  1. package/build/main/{services/api/client.js → client.js} +27 -44
  2. package/build/main/client.js.map +1 -0
  3. package/build/main/error.d.ts +22 -0
  4. package/build/main/{services/api/error.js → error.js} +8 -12
  5. package/build/main/error.js.map +1 -0
  6. package/build/main/generated/openapi-fetch.d.ts +224 -0
  7. package/build/main/generated/openapi-fetch.js +14 -0
  8. package/build/main/generated/openapi-fetch.js.map +1 -0
  9. package/build/{module/services/api → main}/generated/v1.d.ts +185 -1168
  10. package/build/main/{services/api/generated → generated}/v1.js.map +1 -1
  11. package/build/main/index.d.ts +6 -14
  12. package/build/main/index.js +3 -19
  13. package/build/main/index.js.map +1 -1
  14. package/build/main/tsconfig.main.tsbuildinfo +1 -1
  15. package/build/main/types.d.ts +61 -0
  16. package/build/main/types.js.map +1 -0
  17. package/build/module/client.js +66 -0
  18. package/build/module/client.js.map +1 -0
  19. package/build/module/error.d.ts +22 -0
  20. package/build/module/{services/api/error.js → error.js} +8 -12
  21. package/build/module/error.js.map +1 -0
  22. package/build/module/generated/openapi-fetch.d.ts +224 -0
  23. package/build/module/generated/openapi-fetch.js +2 -0
  24. package/build/module/generated/openapi-fetch.js.map +1 -0
  25. package/build/{main/services/api → module}/generated/v1.d.ts +185 -1168
  26. package/build/module/{services/api/generated → generated}/v1.js.map +1 -1
  27. package/build/module/index.d.ts +6 -14
  28. package/build/module/index.js +3 -6
  29. package/build/module/index.js.map +1 -1
  30. package/build/module/tsconfig.esm.tsbuildinfo +1 -1
  31. package/build/module/types.d.ts +61 -0
  32. package/build/module/types.js.map +1 -0
  33. package/package.json +7 -39
  34. package/src/client.ts +99 -0
  35. package/src/error.ts +71 -0
  36. package/src/generated/openapi-fetch.ts +433 -0
  37. package/src/{services/api/generated → generated}/v1.ts +185 -1168
  38. package/src/index.ts +7 -49
  39. package/src/types.ts +98 -0
  40. package/build/main/analytics/client.d.ts +0 -16
  41. package/build/main/analytics/client.js +0 -81
  42. package/build/main/analytics/client.js.map +0 -1
  43. package/build/main/analytics/index.d.ts +0 -2
  44. package/build/main/analytics/index.js +0 -19
  45. package/build/main/analytics/index.js.map +0 -1
  46. package/build/main/analytics/types.d.ts +0 -77
  47. package/build/main/analytics/types.js.map +0 -1
  48. package/build/main/service-client.d.ts +0 -15
  49. package/build/main/service-client.js +0 -90
  50. package/build/main/service-client.js.map +0 -1
  51. package/build/main/services/analytics/client.d.ts +0 -16
  52. package/build/main/services/analytics/client.js +0 -33
  53. package/build/main/services/analytics/client.js.map +0 -1
  54. package/build/main/services/analytics/generated/v1.d.ts +0 -359
  55. package/build/main/services/analytics/generated/v1.js.map +0 -1
  56. package/build/main/services/api/client.js.map +0 -1
  57. package/build/main/services/api/error.d.ts +0 -22
  58. package/build/main/services/api/error.js.map +0 -1
  59. package/build/main/services/api/generated/v1.js +0 -7
  60. package/build/main/services/api/index.d.ts +0 -6
  61. package/build/main/services/api/index.js +0 -20
  62. package/build/main/services/api/index.js.map +0 -1
  63. package/build/main/services/api/types.d.ts +0 -128
  64. package/build/main/services/api/types.js +0 -3
  65. package/build/main/services/api/types.js.map +0 -1
  66. package/build/main/services/cache/client.d.ts +0 -16
  67. package/build/main/services/cache/client.js +0 -33
  68. package/build/main/services/cache/client.js.map +0 -1
  69. package/build/main/services/cache/generated/v1.d.ts +0 -1009
  70. package/build/main/services/cache/generated/v1.js +0 -7
  71. package/build/main/services/cache/generated/v1.js.map +0 -1
  72. package/build/main/services/cache/index.d.ts +0 -2
  73. package/build/main/services/cache/index.js +0 -18
  74. package/build/main/services/cache/index.js.map +0 -1
  75. package/build/main/services/control-plane/client.d.ts +0 -17
  76. package/build/main/services/control-plane/client.js +0 -33
  77. package/build/main/services/control-plane/client.js.map +0 -1
  78. package/build/main/services/control-plane/generated/v1.d.ts +0 -2123
  79. package/build/main/services/control-plane/generated/v1.js +0 -7
  80. package/build/main/services/control-plane/generated/v1.js.map +0 -1
  81. package/build/main/services/control-plane/index.d.ts +0 -2
  82. package/build/main/services/control-plane/index.js +0 -18
  83. package/build/main/services/control-plane/index.js.map +0 -1
  84. package/build/main/services/ingest/client.d.ts +0 -16
  85. package/build/main/services/ingest/client.js +0 -33
  86. package/build/main/services/ingest/client.js.map +0 -1
  87. package/build/main/services/ingest/generated/v1.d.ts +0 -1920
  88. package/build/main/services/ingest/generated/v1.js +0 -7
  89. package/build/main/services/ingest/generated/v1.js.map +0 -1
  90. package/build/main/services/ingest/index.d.ts +0 -2
  91. package/build/main/services/ingest/index.js +0 -18
  92. package/build/main/services/ingest/index.js.map +0 -1
  93. package/build/module/analytics/client.d.ts +0 -16
  94. package/build/module/analytics/client.js +0 -39
  95. package/build/module/analytics/client.js.map +0 -1
  96. package/build/module/analytics/index.d.ts +0 -2
  97. package/build/module/analytics/index.js +0 -3
  98. package/build/module/analytics/index.js.map +0 -1
  99. package/build/module/analytics/types.d.ts +0 -77
  100. package/build/module/analytics/types.js.map +0 -1
  101. package/build/module/service-client.d.ts +0 -15
  102. package/build/module/service-client.js +0 -51
  103. package/build/module/service-client.js.map +0 -1
  104. package/build/module/services/analytics/client.d.ts +0 -16
  105. package/build/module/services/analytics/client.js +0 -24
  106. package/build/module/services/analytics/client.js.map +0 -1
  107. package/build/module/services/analytics/generated/v1.d.ts +0 -359
  108. package/build/module/services/analytics/generated/v1.js.map +0 -1
  109. package/build/module/services/api/client.js +0 -83
  110. package/build/module/services/api/client.js.map +0 -1
  111. package/build/module/services/api/error.d.ts +0 -22
  112. package/build/module/services/api/error.js.map +0 -1
  113. package/build/module/services/api/generated/v1.js +0 -6
  114. package/build/module/services/api/index.d.ts +0 -6
  115. package/build/module/services/api/index.js +0 -4
  116. package/build/module/services/api/index.js.map +0 -1
  117. package/build/module/services/api/types.d.ts +0 -128
  118. package/build/module/services/api/types.js +0 -2
  119. package/build/module/services/api/types.js.map +0 -1
  120. package/build/module/services/cache/client.d.ts +0 -16
  121. package/build/module/services/cache/client.js +0 -24
  122. package/build/module/services/cache/client.js.map +0 -1
  123. package/build/module/services/cache/generated/v1.d.ts +0 -1009
  124. package/build/module/services/cache/generated/v1.js +0 -6
  125. package/build/module/services/cache/generated/v1.js.map +0 -1
  126. package/build/module/services/cache/index.d.ts +0 -2
  127. package/build/module/services/cache/index.js +0 -2
  128. package/build/module/services/cache/index.js.map +0 -1
  129. package/build/module/services/control-plane/client.d.ts +0 -17
  130. package/build/module/services/control-plane/client.js +0 -24
  131. package/build/module/services/control-plane/client.js.map +0 -1
  132. package/build/module/services/control-plane/generated/v1.d.ts +0 -2123
  133. package/build/module/services/control-plane/generated/v1.js +0 -6
  134. package/build/module/services/control-plane/generated/v1.js.map +0 -1
  135. package/build/module/services/control-plane/index.d.ts +0 -2
  136. package/build/module/services/control-plane/index.js +0 -2
  137. package/build/module/services/control-plane/index.js.map +0 -1
  138. package/build/module/services/ingest/client.d.ts +0 -16
  139. package/build/module/services/ingest/client.js +0 -24
  140. package/build/module/services/ingest/client.js.map +0 -1
  141. package/build/module/services/ingest/generated/v1.d.ts +0 -1920
  142. package/build/module/services/ingest/generated/v1.js +0 -6
  143. package/build/module/services/ingest/generated/v1.js.map +0 -1
  144. package/build/module/services/ingest/index.d.ts +0 -2
  145. package/build/module/services/ingest/index.js +0 -2
  146. package/build/module/services/ingest/index.js.map +0 -1
  147. package/src/analytics/client.ts +0 -81
  148. package/src/analytics/index.ts +0 -2
  149. package/src/analytics/types.ts +0 -83
  150. package/src/service-client.ts +0 -80
  151. package/src/services/analytics/client.ts +0 -44
  152. package/src/services/analytics/generated/v1.ts +0 -360
  153. package/src/services/api/client.ts +0 -146
  154. package/src/services/api/error.ts +0 -82
  155. package/src/services/api/index.ts +0 -8
  156. package/src/services/api/types.ts +0 -212
  157. package/src/services/cache/client.ts +0 -44
  158. package/src/services/cache/generated/v1.ts +0 -1010
  159. package/src/services/cache/index.ts +0 -2
  160. package/src/services/control-plane/client.ts +0 -46
  161. package/src/services/control-plane/generated/v1.ts +0 -2124
  162. package/src/services/control-plane/index.ts +0 -2
  163. package/src/services/ingest/client.ts +0 -44
  164. package/src/services/ingest/generated/v1.ts +0 -1921
  165. package/src/services/ingest/index.ts +0 -2
  166. /package/build/main/{services/api/client.d.ts → client.d.ts} +0 -0
  167. /package/build/main/{services/analytics/generated → generated}/v1.js +0 -0
  168. /package/build/main/{analytics/types.js → types.js} +0 -0
  169. /package/build/module/{services/api/client.d.ts → client.d.ts} +0 -0
  170. /package/build/module/{services/analytics/generated → generated}/v1.js +0 -0
  171. /package/build/module/{analytics/types.js → types.js} +0 -0
package/src/index.ts CHANGED
@@ -1,50 +1,8 @@
1
- export * from './service-client';
2
- export type { AnalyticsApiClient } from './services/analytics/client';
1
+ import type { ApiClient } from './types';
3
2
 
4
- export {
5
- AnalyticsApiError,
6
- throwIfError as throwIfAnalyticsError,
7
- useAnalyticsApiClient,
8
- } from './services/analytics/client';
9
- export type {
10
- components as AnalyticsComponents,
11
- operations as AnalyticsOperations,
12
- paths as AnalyticsPaths,
13
- } from './services/analytics/generated/v1';
14
- export * from './services/api';
15
- export type { CacheApiClient } from './services/cache/client';
16
- export {
17
- CacheApiError,
18
- throwIfError as throwIfCacheError,
19
- useCacheApiClient,
20
- } from './services/cache/client';
21
- export type {
22
- components as CacheComponents,
23
- operations as CacheOperations,
24
- paths as CachePaths,
25
- } from './services/cache/generated/v1';
26
- export type {
27
- ControlPlaneApiClient,
28
- TenantRoutingResponse,
29
- } from './services/control-plane/client';
30
- export {
31
- ControlPlaneApiError,
32
- throwIfError as throwIfControlPlaneError,
33
- useControlPlaneApiClient,
34
- } from './services/control-plane/client';
35
- export type {
36
- components as ControlPlaneComponents,
37
- operations as ControlPlaneOperations,
38
- paths as ControlPlanePaths,
39
- } from './services/control-plane/generated/v1';
40
- export type { IngestApiClient } from './services/ingest/client';
41
- export {
42
- IngestApiError,
43
- throwIfError as throwIfIngestError,
44
- useIngestApiClient,
45
- } from './services/ingest/client';
46
- export type {
47
- components as IngestComponents,
48
- operations as IngestOperations,
49
- paths as IngestPaths,
50
- } from './services/ingest/generated/v1';
3
+ export * from './client';
4
+ export * from './error';
5
+ export type * from './generated/v1';
6
+ export * from './types';
7
+
8
+ export type VRPlatformApi = ApiClient;
package/src/types.ts ADDED
@@ -0,0 +1,98 @@
1
+ import type createClient from 'openapi-fetch';
2
+ import type { paths } from './generated/v1';
3
+
4
+ export type ApiClientAuth = {
5
+ apiKey?: string;
6
+ sec?: string;
7
+ tenantId?: string;
8
+ accessToken?: string;
9
+ };
10
+ export type ApiClient = ReturnType<typeof createClient<paths>> & {
11
+ sessionId: string;
12
+ };
13
+ type ResponseCombinations = {
14
+ [Path in keyof paths]: {
15
+ [Method in keyof paths[Path]]: paths[Path][Method] extends never
16
+ ? never
17
+ : paths[Path][Method] extends {
18
+ responses: {
19
+ 200: { content: { 'application/json': unknown } };
20
+ };
21
+ }
22
+ ? `${Method & string}:${Path}`
23
+ : never;
24
+ }[keyof paths[Path]];
25
+ }[keyof paths];
26
+
27
+ export type ResponseData<T extends ResponseCombinations> =
28
+ T extends `${infer Method}:${infer Path}`
29
+ ? Path extends keyof paths
30
+ ? Method extends keyof paths[Path]
31
+ ? paths[Path][Method] extends {
32
+ responses: {
33
+ 200: { content: { 'application/json': infer Data } };
34
+ };
35
+ }
36
+ ? Data
37
+ : never
38
+ : never
39
+ : never
40
+ : never;
41
+
42
+ type RequestBodyCombinations = {
43
+ [Path in keyof paths]: {
44
+ [Method in keyof paths[Path]]: paths[Path][Method] extends never
45
+ ? never
46
+ : ExtractJsonRequestBody<paths[Path][Method]> extends never
47
+ ? never
48
+ : `${Method & string}:${Path}`;
49
+ }[keyof paths[Path]];
50
+ }[keyof paths];
51
+
52
+ type ExtractJsonRequestBody<T> = T extends {
53
+ requestBody?: infer RequestBody;
54
+ }
55
+ ? RequestBody extends {
56
+ content: { 'application/json': infer Data };
57
+ }
58
+ ? Data
59
+ : never
60
+ : never;
61
+
62
+ export type RequestBody<T extends RequestBodyCombinations> =
63
+ T extends `${infer Method}:${infer Path}`
64
+ ? Path extends keyof paths
65
+ ? Method extends keyof paths[Path]
66
+ ? ExtractJsonRequestBody<paths[Path][Method]>
67
+ : never
68
+ : never
69
+ : never;
70
+
71
+ type RequestParamCombinations = {
72
+ [Path in keyof paths]: {
73
+ [Method in keyof paths[Path]]: paths[Path][Method] extends never
74
+ ? never
75
+ : paths[Path][Method] extends {
76
+ parameters: {
77
+ query?: Record<string, unknown>;
78
+ };
79
+ }
80
+ ? `${Method & string}:${Path}`
81
+ : never;
82
+ }[keyof paths[Path]];
83
+ }[keyof paths];
84
+
85
+ export type RequestQuery<T extends RequestParamCombinations> =
86
+ T extends `${infer Method}:${infer Path}`
87
+ ? Path extends keyof paths
88
+ ? Method extends keyof paths[Path]
89
+ ? paths[Path][Method] extends {
90
+ parameters: {
91
+ query?: infer Data;
92
+ };
93
+ }
94
+ ? Data
95
+ : never
96
+ : never
97
+ : never
98
+ : never;
@@ -1,16 +0,0 @@
1
- import { type RetryableFetchParams } from '@vrplatform/utils';
2
- import { type ServiceFetchResponse } from '../service-client';
3
- import type { AnalyticsClient, AnalyticsClientAuth } from './types';
4
- export declare class AnalyticsApiClientError extends Error {
5
- constructor(message: string);
6
- }
7
- export declare function throwIfAnalyticsError<T extends ServiceFetchResponse>(responsePromise: Promise<T> | T): Promise<{
8
- data: NonNullable<T['data']>;
9
- headers: Headers;
10
- }>;
11
- export declare function useAnalyticsClient({ baseUrl, auth, headers: h, ...retryableFetchParams }: {
12
- attempts?: number;
13
- auth?: AnalyticsClientAuth | (() => AnalyticsClientAuth);
14
- baseUrl?: string;
15
- headers?: Record<string, string> | (() => Record<string, string>);
16
- } & RetryableFetchParams): AnalyticsClient;
@@ -1,81 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.AnalyticsApiClientError = void 0;
40
- exports.throwIfAnalyticsError = throwIfAnalyticsError;
41
- exports.useAnalyticsClient = useAnalyticsClient;
42
- const Sentry = __importStar(require("@sentry/core"));
43
- const utils_1 = require("@vrplatform/utils");
44
- const openapi_fetch_1 = __importDefault(require("openapi-fetch"));
45
- const service_client_1 = require("../service-client");
46
- class AnalyticsApiClientError extends Error {
47
- constructor(message) {
48
- super(message);
49
- this.name = 'AnalyticsApiClientError';
50
- }
51
- }
52
- exports.AnalyticsApiClientError = AnalyticsApiClientError;
53
- async function throwIfAnalyticsError(responsePromise) {
54
- return (0, service_client_1.throwIfServiceError)(responsePromise, (message) => new AnalyticsApiClientError(message), 'Analytics request failed');
55
- }
56
- function useAnalyticsClient({ baseUrl, auth, headers: h, ...retryableFetchParams }) {
57
- const retryableFetch = (0, utils_1.useRetryableFetch)(retryableFetchParams);
58
- const trace = Sentry.getTraceData();
59
- const client = (0, openapi_fetch_1.default)({
60
- baseUrl: baseUrl ?? 'https://analytics.edge.vrplatform.app',
61
- fetch(req) {
62
- return retryableFetch(async () => {
63
- const clone = new Request(req);
64
- const resolvedAuth = typeof auth === 'function' ? auth() : auth;
65
- if (resolvedAuth?.accessToken) {
66
- clone.headers.set('Authorization', resolvedAuth.accessToken.startsWith('Bearer ')
67
- ? resolvedAuth.accessToken
68
- : `Bearer ${resolvedAuth.accessToken}`);
69
- }
70
- const additionalHeaders = h ? (typeof h === 'function' ? h() : h) : {};
71
- for (const key in additionalHeaders) {
72
- clone.headers.set(key, additionalHeaders[key]);
73
- }
74
- (0, service_client_1.applySentryTraceHeaders)(clone.headers, trace);
75
- return clone;
76
- });
77
- },
78
- });
79
- return client;
80
- }
81
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"src/","sources":["analytics/client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAY,MAAM,yCAAqB;AACvC,6CAG2B;AAC3B,kEAAyC;AACzC,sDAI2B;AAO3B,6BAAqC,SAAQ,KAAK;IAChD,YAAY,OAAe,EAAE;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IAAA,CACvC;CACF;;AAEM,KAAK,gCACV,eAA+B,EAI9B;IACD,OAAO,IAAA,oCAAmB,EACxB,eAAe,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,EACjD,0BAA0B,CAC3B,CAAC;AAAA,CACH;AAED,4BAAmC,EACjC,OAAO,EACP,IAAI,EACJ,OAAO,EAAE,CAAC,EACV,GAAG,oBAAoB,EAMD,EAAmB;IACzC,MAAM,cAAc,GAAG,IAAA,yBAAiB,EAAC,oBAAoB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAEpC,MAAM,MAAM,GAAG,IAAA,uBAAY,EAAiB;QAC1C,OAAO,EAAE,OAAO,IAAI,uCAAuC;QAC3D,KAAK,CAAC,GAAG,EAAE;YACT,OAAO,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,YAAY,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAEhE,IAAI,YAAY,EAAE,WAAW,EAAE,CAAC;oBAC9B,KAAK,CAAC,OAAO,CAAC,GAAG,CACf,eAAe,EACf,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;wBAC5C,CAAC,CAAC,YAAY,CAAC,WAAW;wBAC1B,CAAC,CAAC,UAAU,YAAY,CAAC,WAAW,EAAE,CACzC,CAAC;gBACJ,CAAC;gBAED,MAAM,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;oBACpC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjD,CAAC;gBAED,IAAA,wCAAuB,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAE9C,OAAO,KAAK,CAAC;YAAA,CACd,CAAC,CAAC;QAAA,CACJ;KACF,CAAC,CAAC;IAEH,OAAO,MAAyB,CAAC;AAAA,CAClC","sourcesContent":["import * as Sentry from '@sentry/core';\nimport {\n type RetryableFetchParams,\n useRetryableFetch,\n} from '@vrplatform/utils';\nimport createClient from 'openapi-fetch';\nimport {\n applySentryTraceHeaders,\n type ServiceFetchResponse,\n throwIfServiceError,\n} from '../service-client';\nimport type {\n AnalyticsClient,\n AnalyticsClientAuth,\n AnalyticsPaths,\n} from './types';\n\nexport class AnalyticsApiClientError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AnalyticsApiClientError';\n }\n}\n\nexport async function throwIfAnalyticsError<T extends ServiceFetchResponse>(\n responsePromise: Promise<T> | T\n): Promise<{\n data: NonNullable<T['data']>;\n headers: Headers;\n}> {\n return throwIfServiceError(\n responsePromise,\n (message) => new AnalyticsApiClientError(message),\n 'Analytics request failed'\n );\n}\n\nexport function useAnalyticsClient({\n baseUrl,\n auth,\n headers: h,\n ...retryableFetchParams\n}: {\n attempts?: number;\n auth?: AnalyticsClientAuth | (() => AnalyticsClientAuth);\n baseUrl?: string;\n headers?: Record<string, string> | (() => Record<string, string>);\n} & RetryableFetchParams): AnalyticsClient {\n const retryableFetch = useRetryableFetch(retryableFetchParams);\n const trace = Sentry.getTraceData();\n\n const client = createClient<AnalyticsPaths>({\n baseUrl: baseUrl ?? 'https://analytics.edge.vrplatform.app',\n fetch(req) {\n return retryableFetch(async () => {\n const clone = new Request(req);\n const resolvedAuth = typeof auth === 'function' ? auth() : auth;\n\n if (resolvedAuth?.accessToken) {\n clone.headers.set(\n 'Authorization',\n resolvedAuth.accessToken.startsWith('Bearer ')\n ? resolvedAuth.accessToken\n : `Bearer ${resolvedAuth.accessToken}`\n );\n }\n\n const additionalHeaders = h ? (typeof h === 'function' ? h() : h) : {};\n for (const key in additionalHeaders) {\n clone.headers.set(key, additionalHeaders[key]);\n }\n\n applySentryTraceHeaders(clone.headers, trace);\n\n return clone;\n });\n },\n });\n\n return client as AnalyticsClient;\n}\n"]}
@@ -1,2 +0,0 @@
1
- export * from './client';
2
- export * from './types';
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./client"), exports);
18
- __exportStar(require("./types"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["analytics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB","sourcesContent":["export * from './client';\nexport * from './types';\n"]}
@@ -1,77 +0,0 @@
1
- import type createClient from 'openapi-fetch';
2
- type OpenApiHeaders = {
3
- [name: string]: unknown;
4
- };
5
- type OpenApiNoParameters = {
6
- query?: never;
7
- header?: never;
8
- path?: never;
9
- cookie?: never;
10
- };
11
- type OpenApiJsonResponse<T> = {
12
- headers: OpenApiHeaders;
13
- content: {
14
- 'application/json': T;
15
- };
16
- };
17
- export type UiAnalyticsEventInput = {
18
- anonymousId?: string | null;
19
- event: string;
20
- properties?: Record<string, unknown> | null;
21
- };
22
- export interface AnalyticsPaths {
23
- '/analytics/events': {
24
- parameters: OpenApiNoParameters;
25
- get?: never;
26
- put?: never;
27
- post: {
28
- parameters: OpenApiNoParameters;
29
- requestBody: {
30
- content: {
31
- 'application/json': UiAnalyticsEventInput;
32
- };
33
- };
34
- responses: {
35
- 200: OpenApiJsonResponse<{
36
- id: string;
37
- }>;
38
- };
39
- };
40
- delete?: never;
41
- options?: never;
42
- head?: never;
43
- patch?: never;
44
- trace?: never;
45
- };
46
- '/analytics/events/batch': {
47
- parameters: OpenApiNoParameters;
48
- get?: never;
49
- put?: never;
50
- post: {
51
- parameters: OpenApiNoParameters;
52
- requestBody: {
53
- content: {
54
- 'application/json': {
55
- events: UiAnalyticsEventInput[];
56
- };
57
- };
58
- };
59
- responses: {
60
- 200: OpenApiJsonResponse<{
61
- ids: string[];
62
- total: number;
63
- }>;
64
- };
65
- };
66
- delete?: never;
67
- options?: never;
68
- head?: never;
69
- patch?: never;
70
- trace?: never;
71
- };
72
- }
73
- export type AnalyticsClientAuth = {
74
- accessToken?: string;
75
- };
76
- export type AnalyticsClient = ReturnType<typeof createClient<AnalyticsPaths>>;
77
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"src/","sources":["analytics/types.ts"],"names":[],"mappings":"","sourcesContent":["import type createClient from 'openapi-fetch';\n\ntype OpenApiHeaders = {\n [name: string]: unknown;\n};\n\ntype OpenApiNoParameters = {\n query?: never;\n header?: never;\n path?: never;\n cookie?: never;\n};\n\ntype OpenApiJsonResponse<T> = {\n headers: OpenApiHeaders;\n content: {\n 'application/json': T;\n };\n};\n\nexport type UiAnalyticsEventInput = {\n anonymousId?: string | null;\n event: string;\n properties?: Record<string, unknown> | null;\n};\n\nexport interface AnalyticsPaths {\n '/analytics/events': {\n parameters: OpenApiNoParameters;\n get?: never;\n put?: never;\n post: {\n parameters: OpenApiNoParameters;\n requestBody: {\n content: {\n 'application/json': UiAnalyticsEventInput;\n };\n };\n responses: {\n 200: OpenApiJsonResponse<{\n id: string;\n }>;\n };\n };\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n '/analytics/events/batch': {\n parameters: OpenApiNoParameters;\n get?: never;\n put?: never;\n post: {\n parameters: OpenApiNoParameters;\n requestBody: {\n content: {\n 'application/json': {\n events: UiAnalyticsEventInput[];\n };\n };\n };\n responses: {\n 200: OpenApiJsonResponse<{\n ids: string[];\n total: number;\n }>;\n };\n };\n delete?: never;\n options?: never;\n head?: never;\n patch?: never;\n trace?: never;\n };\n}\n\nexport type AnalyticsClientAuth = {\n accessToken?: string;\n};\n\nexport type AnalyticsClient = ReturnType<typeof createClient<AnalyticsPaths>>;\n"]}
@@ -1,15 +0,0 @@
1
- import * as Sentry from '@sentry/core';
2
- export type ServiceFetchResponse<TData = unknown, TError = unknown> = {
3
- data?: TData;
4
- error?: TError;
5
- response: Response;
6
- };
7
- export declare function createTraceparentHeader(sentryTrace: string | undefined): string | null;
8
- export declare function applySentryTraceHeaders(headers: Headers, trace: ReturnType<typeof Sentry.getTraceData>): void;
9
- export declare function withSentryTrace(request: Request): Request<unknown, CfProperties<unknown>>;
10
- export declare function throwIfServiceError<T extends ServiceFetchResponse>(responsePromise: Promise<T> | T, createError: (message: string) => Error, defaultMessage: string, options?: {
11
- serviceUnavailableMessage?: string;
12
- }): Promise<{
13
- data: NonNullable<T['data']>;
14
- headers: Headers;
15
- }>;
@@ -1,90 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.createTraceparentHeader = createTraceparentHeader;
37
- exports.applySentryTraceHeaders = applySentryTraceHeaders;
38
- exports.withSentryTrace = withSentryTrace;
39
- exports.throwIfServiceError = throwIfServiceError;
40
- const Sentry = __importStar(require("@sentry/core"));
41
- function createTraceparentHeader(sentryTrace) {
42
- if (!sentryTrace) {
43
- return null;
44
- }
45
- const [traceId, spanId, sampled] = sentryTrace.split('-');
46
- if (!traceId ||
47
- !spanId ||
48
- traceId.length !== 32 ||
49
- spanId.length !== 16 ||
50
- !/^[0-9a-f]+$/i.test(traceId) ||
51
- !/^[0-9a-f]+$/i.test(spanId)) {
52
- return null;
53
- }
54
- return `00-${traceId}-${spanId}-${sampled === '1' ? '01' : '00'}`;
55
- }
56
- function applySentryTraceHeaders(headers, trace) {
57
- if (trace['sentry-trace']) {
58
- headers.set('sentry-trace', trace['sentry-trace']);
59
- const traceparent = createTraceparentHeader(trace['sentry-trace']);
60
- if (traceparent) {
61
- headers.set('traceparent', traceparent);
62
- }
63
- else {
64
- headers.delete('traceparent');
65
- }
66
- }
67
- if (trace.baggage) {
68
- headers.set('baggage', trace.baggage);
69
- }
70
- }
71
- function withSentryTrace(request) {
72
- applySentryTraceHeaders(request.headers, Sentry.getTraceData());
73
- return request;
74
- }
75
- async function throwIfServiceError(responsePromise, createError, defaultMessage, options) {
76
- const response = await responsePromise;
77
- if (response.response.status === 503 &&
78
- options?.serviceUnavailableMessage !== undefined) {
79
- throw createError(options.serviceUnavailableMessage);
80
- }
81
- const error = response.error;
82
- if (error) {
83
- throw createError(error.message ?? defaultMessage);
84
- }
85
- return {
86
- data: response.data,
87
- headers: response.response.headers,
88
- };
89
- }
90
- //# sourceMappingURL=service-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-client.js","sourceRoot":"src/","sources":["service-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAY,MAAM,yCAAqB;AAQvC,iCAAwC,WAA+B,EAAE;IACvE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,IACE,CAAC,OAAO;QACR,CAAC,MAAM;QACP,OAAO,CAAC,MAAM,KAAK,EAAE;QACrB,MAAM,CAAC,MAAM,KAAK,EAAE;QACpB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,OAAO,IAAI,MAAM,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAAA,CACnE;AAED,iCACE,OAAgB,EAChB,KAA6C,EAC7C;IACA,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,uBAAuB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACnE,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;AAAA,CACF;AAED,yBAAgC,OAAgB,EAAE;IAChD,uBAAuB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhE,OAAO,OAAO,CAAC;AAAA,CAChB;AAEM,KAAK,8BACV,eAA+B,EAC/B,WAAuC,EACvC,cAAsB,EACtB,OAEC,EAC4D;IAC7D,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;IAEvC,IACE,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG;QAChC,OAAO,EAAE,yBAAyB,KAAK,SAAS,EAChD,CAAC;QACD,MAAM,WAAW,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAyC,CAAC;IACjE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAA8B;QAC7C,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO;KACnC,CAAC;AAAA,CACH","sourcesContent":["import * as Sentry from '@sentry/core';\n\nexport type ServiceFetchResponse<TData = unknown, TError = unknown> = {\n data?: TData;\n error?: TError;\n response: Response;\n};\n\nexport function createTraceparentHeader(sentryTrace: string | undefined) {\n if (!sentryTrace) {\n return null;\n }\n\n const [traceId, spanId, sampled] = sentryTrace.split('-');\n if (\n !traceId ||\n !spanId ||\n traceId.length !== 32 ||\n spanId.length !== 16 ||\n !/^[0-9a-f]+$/i.test(traceId) ||\n !/^[0-9a-f]+$/i.test(spanId)\n ) {\n return null;\n }\n\n return `00-${traceId}-${spanId}-${sampled === '1' ? '01' : '00'}`;\n}\n\nexport function applySentryTraceHeaders(\n headers: Headers,\n trace: ReturnType<typeof Sentry.getTraceData>\n) {\n if (trace['sentry-trace']) {\n headers.set('sentry-trace', trace['sentry-trace']);\n const traceparent = createTraceparentHeader(trace['sentry-trace']);\n if (traceparent) {\n headers.set('traceparent', traceparent);\n } else {\n headers.delete('traceparent');\n }\n }\n\n if (trace.baggage) {\n headers.set('baggage', trace.baggage);\n }\n}\n\nexport function withSentryTrace(request: Request) {\n applySentryTraceHeaders(request.headers, Sentry.getTraceData());\n\n return request;\n}\n\nexport async function throwIfServiceError<T extends ServiceFetchResponse>(\n responsePromise: Promise<T> | T,\n createError: (message: string) => Error,\n defaultMessage: string,\n options?: {\n serviceUnavailableMessage?: string;\n }\n): Promise<{ data: NonNullable<T['data']>; headers: Headers }> {\n const response = await responsePromise;\n\n if (\n response.response.status === 503 &&\n options?.serviceUnavailableMessage !== undefined\n ) {\n throw createError(options.serviceUnavailableMessage);\n }\n\n const error = response.error as { message?: string } | undefined;\n if (error) {\n throw createError(error.message ?? defaultMessage);\n }\n\n return {\n data: response.data as NonNullable<T['data']>,\n headers: response.response.headers,\n };\n}\n"]}
@@ -1,16 +0,0 @@
1
- import createClient from 'openapi-fetch';
2
- import { type ServiceFetchResponse } from '../../service-client';
3
- import type { paths } from './generated/v1';
4
- export declare class AnalyticsApiError extends Error {
5
- constructor(message: string);
6
- }
7
- export type AnalyticsApiClient = ReturnType<typeof createClient<paths>>;
8
- export declare function throwIfError<T extends ServiceFetchResponse>(responsePromise: Promise<T> | T): Promise<{
9
- data: NonNullable<T['data']>;
10
- headers: Headers;
11
- }>;
12
- export declare function useAnalyticsApiClient(args: {
13
- env: {
14
- ANALYTICS?: Fetcher;
15
- };
16
- }): AnalyticsApiClient;
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AnalyticsApiError = void 0;
7
- exports.throwIfError = throwIfError;
8
- exports.useAnalyticsApiClient = useAnalyticsApiClient;
9
- const openapi_fetch_1 = __importDefault(require("openapi-fetch"));
10
- const service_client_1 = require("../../service-client");
11
- class AnalyticsApiError extends Error {
12
- constructor(message) {
13
- super(message);
14
- this.name = 'AnalyticsApiError';
15
- }
16
- }
17
- exports.AnalyticsApiError = AnalyticsApiError;
18
- async function throwIfError(responsePromise) {
19
- return (0, service_client_1.throwIfServiceError)(responsePromise, (message) => new AnalyticsApiError(message), 'Analytics request failed');
20
- }
21
- function useAnalyticsApiClient(args) {
22
- const binding = args.env.ANALYTICS;
23
- if (!binding) {
24
- throw new AnalyticsApiError('Analytics worker not found');
25
- }
26
- return (0, openapi_fetch_1.default)({
27
- baseUrl: 'http://stub.local',
28
- fetch(request) {
29
- return binding.fetch((0, service_client_1.withSentryTrace)(request));
30
- },
31
- });
32
- }
33
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"src/","sources":["services/analytics/client.ts"],"names":[],"mappings":";;;;;;;;AAAA,kEAAyC;AACzC,yDAI8B;AAG9B,uBAA+B,SAAQ,KAAK;IAC1C,YAAY,OAAe,EAAE;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAAA,CACjC;CACF;;AAIM,KAAK,uBACV,eAA+B,EAC8B;IAC7D,OAAO,IAAA,oCAAmB,EACxB,eAAe,EACf,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAC3C,0BAA0B,CAC3B,CAAC;AAAA,CACH;AAED,+BAAsC,IAIrC,EAAsB;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,IAAA,uBAAY,EAAQ;QACzB,OAAO,EAAE,mBAAmB;QAC5B,KAAK,CAAC,OAAO,EAAE;YACb,OAAO,OAAO,CAAC,KAAK,CAAC,IAAA,gCAAe,EAAC,OAAO,CAAC,CAAC,CAAC;QAAA,CAChD;KACF,CAAC,CAAC;AAAA,CACJ","sourcesContent":["import createClient from 'openapi-fetch';\nimport {\n type ServiceFetchResponse,\n throwIfServiceError,\n withSentryTrace,\n} from '../../service-client';\nimport type { paths } from './generated/v1';\n\nexport class AnalyticsApiError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AnalyticsApiError';\n }\n}\n\nexport type AnalyticsApiClient = ReturnType<typeof createClient<paths>>;\n\nexport async function throwIfError<T extends ServiceFetchResponse>(\n responsePromise: Promise<T> | T\n): Promise<{ data: NonNullable<T['data']>; headers: Headers }> {\n return throwIfServiceError(\n responsePromise,\n (message) => new AnalyticsApiError(message),\n 'Analytics request failed'\n );\n}\n\nexport function useAnalyticsApiClient(args: {\n env: {\n ANALYTICS?: Fetcher;\n };\n}): AnalyticsApiClient {\n const binding = args.env.ANALYTICS;\n if (!binding) {\n throw new AnalyticsApiError('Analytics worker not found');\n }\n\n return createClient<paths>({\n baseUrl: 'http://stub.local',\n fetch(request) {\n return binding.fetch(withSentryTrace(request));\n },\n });\n}\n"]}