@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
@@ -1,14 +1,6 @@
1
- export * from './service-client';
2
- export type { AnalyticsApiClient } from './services/analytics/client';
3
- export { AnalyticsApiError, throwIfError as throwIfAnalyticsError, useAnalyticsApiClient, } from './services/analytics/client';
4
- export type { components as AnalyticsComponents, operations as AnalyticsOperations, paths as AnalyticsPaths, } from './services/analytics/generated/v1';
5
- export * from './services/api';
6
- export type { CacheApiClient } from './services/cache/client';
7
- export { CacheApiError, throwIfError as throwIfCacheError, useCacheApiClient, } from './services/cache/client';
8
- export type { components as CacheComponents, operations as CacheOperations, paths as CachePaths, } from './services/cache/generated/v1';
9
- export type { ControlPlaneApiClient, TenantRoutingResponse, } from './services/control-plane/client';
10
- export { ControlPlaneApiError, throwIfError as throwIfControlPlaneError, useControlPlaneApiClient, } from './services/control-plane/client';
11
- export type { components as ControlPlaneComponents, operations as ControlPlaneOperations, paths as ControlPlanePaths, } from './services/control-plane/generated/v1';
12
- export type { IngestApiClient } from './services/ingest/client';
13
- export { IngestApiError, throwIfError as throwIfIngestError, useIngestApiClient, } from './services/ingest/client';
14
- export type { components as IngestComponents, operations as IngestOperations, paths as IngestPaths, } from './services/ingest/generated/v1';
1
+ import type { ApiClient } from './types';
2
+ export * from './client';
3
+ export * from './error';
4
+ export type * from './generated/v1';
5
+ export * from './types';
6
+ export type VRPlatformApi = ApiClient;
@@ -1,7 +1,4 @@
1
- export * from './service-client';
2
- export { AnalyticsApiError, throwIfError as throwIfAnalyticsError, useAnalyticsApiClient, } from './services/analytics/client';
3
- export * from './services/api';
4
- export { CacheApiError, throwIfError as throwIfCacheError, useCacheApiClient, } from './services/cache/client';
5
- export { ControlPlaneApiError, throwIfError as throwIfControlPlaneError, useControlPlaneApiClient, } from './services/control-plane/client';
6
- export { IngestApiError, throwIfError as throwIfIngestError, useIngestApiClient, } from './services/ingest/client';
1
+ export * from './client';
2
+ export * from './error';
3
+ export * from './types';
7
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACL,iBAAiB,EACjB,YAAY,IAAI,qBAAqB,EACrC,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAMrC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,YAAY,IAAI,iBAAiB,EACjC,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,EACL,oBAAoB,EACpB,YAAY,IAAI,wBAAwB,EACxC,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EACL,cAAc,EACd,YAAY,IAAI,kBAAkB,EAClC,kBAAkB,GACnB,MAAM,0BAA0B,CAAC","sourcesContent":["export * from './service-client';\nexport type { AnalyticsApiClient } from './services/analytics/client';\n\nexport {\n AnalyticsApiError,\n throwIfError as throwIfAnalyticsError,\n useAnalyticsApiClient,\n} from './services/analytics/client';\nexport type {\n components as AnalyticsComponents,\n operations as AnalyticsOperations,\n paths as AnalyticsPaths,\n} from './services/analytics/generated/v1';\nexport * from './services/api';\nexport type { CacheApiClient } from './services/cache/client';\nexport {\n CacheApiError,\n throwIfError as throwIfCacheError,\n useCacheApiClient,\n} from './services/cache/client';\nexport type {\n components as CacheComponents,\n operations as CacheOperations,\n paths as CachePaths,\n} from './services/cache/generated/v1';\nexport type {\n ControlPlaneApiClient,\n TenantRoutingResponse,\n} from './services/control-plane/client';\nexport {\n ControlPlaneApiError,\n throwIfError as throwIfControlPlaneError,\n useControlPlaneApiClient,\n} from './services/control-plane/client';\nexport type {\n components as ControlPlaneComponents,\n operations as ControlPlaneOperations,\n paths as ControlPlanePaths,\n} from './services/control-plane/generated/v1';\nexport type { IngestApiClient } from './services/ingest/client';\nexport {\n IngestApiError,\n throwIfError as throwIfIngestError,\n useIngestApiClient,\n} from './services/ingest/client';\nexport type {\n components as IngestComponents,\n operations as IngestOperations,\n paths as IngestPaths,\n} from './services/ingest/generated/v1';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":"AAEA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAExB,cAAc,SAAS,CAAC","sourcesContent":["import type { ApiClient } from './types';\n\nexport * from './client';\nexport * from './error';\nexport type * from './generated/v1';\nexport * from './types';\n\nexport type VRPlatformApi = ApiClient;\n"]}
@@ -1 +1 @@
1
- {"version":"7.0.0-dev.20251218.3","root":["../../src/cache.ts","../../src/index.ts","../../src/sec.ts","../../src/service-client.ts","../../src/analytics/client.ts","../../src/analytics/index.ts","../../src/analytics/types.ts","../../src/services/analytics/client.ts","../../src/services/analytics/generated/v1.ts","../../src/services/api/client.ts","../../src/services/api/error.ts","../../src/services/api/index.ts","../../src/services/api/types.ts","../../src/services/api/generated/v1.ts","../../src/services/cache/client.ts","../../src/services/cache/index.ts","../../src/services/cache/generated/v1.ts","../../src/services/control-plane/client.ts","../../src/services/control-plane/index.ts","../../src/services/control-plane/generated/v1.ts","../../src/services/ingest/client.ts","../../src/services/ingest/index.ts","../../src/services/ingest/generated/v1.ts"]}
1
+ {"version":"7.0.0-dev.20251218.3","root":["../../src/cache.ts","../../src/client.ts","../../src/error.ts","../../src/index.ts","../../src/sec.ts","../../src/types.ts","../../src/generated/openapi-fetch.ts","../../src/generated/v1.ts"]}
@@ -0,0 +1,61 @@
1
+ import type createClient from 'openapi-fetch';
2
+ import type { paths } from './generated/v1';
3
+ export type ApiClientAuth = {
4
+ apiKey?: string;
5
+ sec?: string;
6
+ tenantId?: string;
7
+ accessToken?: string;
8
+ };
9
+ export type ApiClient = ReturnType<typeof createClient<paths>> & {
10
+ sessionId: string;
11
+ };
12
+ type ResponseCombinations = {
13
+ [Path in keyof paths]: {
14
+ [Method in keyof paths[Path]]: paths[Path][Method] extends never ? never : paths[Path][Method] extends {
15
+ responses: {
16
+ 200: {
17
+ content: {
18
+ 'application/json': unknown;
19
+ };
20
+ };
21
+ };
22
+ } ? `${Method & string}:${Path}` : never;
23
+ }[keyof paths[Path]];
24
+ }[keyof paths];
25
+ export type ResponseData<T extends ResponseCombinations> = T extends `${infer Method}:${infer Path}` ? Path extends keyof paths ? Method extends keyof paths[Path] ? paths[Path][Method] extends {
26
+ responses: {
27
+ 200: {
28
+ content: {
29
+ 'application/json': infer Data;
30
+ };
31
+ };
32
+ };
33
+ } ? Data : never : never : never : never;
34
+ type RequestBodyCombinations = {
35
+ [Path in keyof paths]: {
36
+ [Method in keyof paths[Path]]: paths[Path][Method] extends never ? never : ExtractJsonRequestBody<paths[Path][Method]> extends never ? never : `${Method & string}:${Path}`;
37
+ }[keyof paths[Path]];
38
+ }[keyof paths];
39
+ type ExtractJsonRequestBody<T> = T extends {
40
+ requestBody?: infer RequestBody;
41
+ } ? RequestBody extends {
42
+ content: {
43
+ 'application/json': infer Data;
44
+ };
45
+ } ? Data : never : never;
46
+ export type RequestBody<T extends RequestBodyCombinations> = T extends `${infer Method}:${infer Path}` ? Path extends keyof paths ? Method extends keyof paths[Path] ? ExtractJsonRequestBody<paths[Path][Method]> : never : never : never;
47
+ type RequestParamCombinations = {
48
+ [Path in keyof paths]: {
49
+ [Method in keyof paths[Path]]: paths[Path][Method] extends never ? never : paths[Path][Method] extends {
50
+ parameters: {
51
+ query?: Record<string, unknown>;
52
+ };
53
+ } ? `${Method & string}:${Path}` : never;
54
+ }[keyof paths[Path]];
55
+ }[keyof paths];
56
+ export type RequestQuery<T extends RequestParamCombinations> = T extends `${infer Method}:${infer Path}` ? Path extends keyof paths ? Method extends keyof paths[Path] ? paths[Path][Method] extends {
57
+ parameters: {
58
+ query?: infer Data;
59
+ };
60
+ } ? Data : never : never : never : never;
61
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"src/","sources":["types.ts"],"names":[],"mappings":"","sourcesContent":["import type createClient from 'openapi-fetch';\nimport type { paths } from './generated/v1';\n\nexport type ApiClientAuth = {\n apiKey?: string;\n sec?: string;\n tenantId?: string;\n accessToken?: string;\n};\nexport type ApiClient = ReturnType<typeof createClient<paths>> & {\n sessionId: string;\n};\ntype ResponseCombinations = {\n [Path in keyof paths]: {\n [Method in keyof paths[Path]]: paths[Path][Method] extends never\n ? never\n : paths[Path][Method] extends {\n responses: {\n 200: { content: { 'application/json': unknown } };\n };\n }\n ? `${Method & string}:${Path}`\n : never;\n }[keyof paths[Path]];\n}[keyof paths];\n\nexport type ResponseData<T extends ResponseCombinations> =\n T extends `${infer Method}:${infer Path}`\n ? Path extends keyof paths\n ? Method extends keyof paths[Path]\n ? paths[Path][Method] extends {\n responses: {\n 200: { content: { 'application/json': infer Data } };\n };\n }\n ? Data\n : never\n : never\n : never\n : never;\n\ntype RequestBodyCombinations = {\n [Path in keyof paths]: {\n [Method in keyof paths[Path]]: paths[Path][Method] extends never\n ? never\n : ExtractJsonRequestBody<paths[Path][Method]> extends never\n ? never\n : `${Method & string}:${Path}`;\n }[keyof paths[Path]];\n}[keyof paths];\n\ntype ExtractJsonRequestBody<T> = T extends {\n requestBody?: infer RequestBody;\n}\n ? RequestBody extends {\n content: { 'application/json': infer Data };\n }\n ? Data\n : never\n : never;\n\nexport type RequestBody<T extends RequestBodyCombinations> =\n T extends `${infer Method}:${infer Path}`\n ? Path extends keyof paths\n ? Method extends keyof paths[Path]\n ? ExtractJsonRequestBody<paths[Path][Method]>\n : never\n : never\n : never;\n\ntype RequestParamCombinations = {\n [Path in keyof paths]: {\n [Method in keyof paths[Path]]: paths[Path][Method] extends never\n ? never\n : paths[Path][Method] extends {\n parameters: {\n query?: Record<string, unknown>;\n };\n }\n ? `${Method & string}:${Path}`\n : never;\n }[keyof paths[Path]];\n}[keyof paths];\n\nexport type RequestQuery<T extends RequestParamCombinations> =\n T extends `${infer Method}:${infer Path}`\n ? Path extends keyof paths\n ? Method extends keyof paths[Path]\n ? paths[Path][Method] extends {\n parameters: {\n query?: infer Data;\n };\n }\n ? Data\n : never\n : never\n : never\n : never;\n"]}
package/package.json CHANGED
@@ -3,43 +3,10 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.3.1-stage.2286",
6
+ "version": "1.3.1-stage.2295",
7
7
  "description": "",
8
8
  "main": "build/main/index.js",
9
9
  "module": "build/module/index.js",
10
- "typings": "build/main/index.d.ts",
11
- "exports": {
12
- ".": {
13
- "types": "./build/main/index.d.ts",
14
- "require": "./build/main/index.js",
15
- "import": "./build/module/index.js"
16
- },
17
- "./analytics": {
18
- "types": "./build/main/analytics/index.d.ts",
19
- "require": "./build/main/analytics/index.js",
20
- "import": "./build/module/analytics/index.js"
21
- },
22
- "./api": {
23
- "types": "./build/main/services/api/index.d.ts",
24
- "require": "./build/main/services/api/index.js",
25
- "import": "./build/module/services/api/index.js"
26
- },
27
- "./cache": {
28
- "types": "./build/main/services/cache/index.d.ts",
29
- "require": "./build/main/services/cache/index.js",
30
- "import": "./build/module/services/cache/index.js"
31
- },
32
- "./control-plane": {
33
- "types": "./build/main/services/control-plane/index.d.ts",
34
- "require": "./build/main/services/control-plane/index.js",
35
- "import": "./build/module/services/control-plane/index.js"
36
- },
37
- "./ingest": {
38
- "types": "./build/main/services/ingest/index.d.ts",
39
- "require": "./build/main/services/ingest/index.js",
40
- "import": "./build/module/services/ingest/index.js"
41
- }
42
- },
43
10
  "scripts": {
44
11
  "pub": "bun pm version patch --no-git-tag-version && bun run npmpub",
45
12
  "npmpub": "bun run build && bunx vrp-publish && bunx vrp-deploy --prefix npmpub",
@@ -51,15 +18,15 @@
51
18
  "dev": "NODE_ENV=generator bun --watch ./generate.ts",
52
19
  "generate-client": "bun generate:schema && bun generate:client",
53
20
  "generate:schema": "NODE_ENV=generator bun ./openapi.ts",
54
- "generate:client": "bun ./generate-clients.ts",
21
+ "generate:client": "bunx --bun openapi-typescript ./openapi.json -o ./src/generated/v1.ts",
55
22
  "tsgo": "tsgo --noEmit"
56
23
  },
57
24
  "author": "",
58
25
  "license": "ISC",
59
26
  "dependencies": {
60
- "openapi-fetch": "0.17.0",
61
- "openapi-typescript-helpers": "^0.0.15",
62
- "openapi-typescript": "^7.13.0"
27
+ "openapi-fetch": "0.15.0",
28
+ "openapi-typescript": "^7.10.1",
29
+ "openapi-typescript-helpers": "^0.0.15"
63
30
  },
64
31
  "peerDependencies": {
65
32
  "@vrplatform/utils": "*",
@@ -74,5 +41,6 @@
74
41
  "src",
75
42
  "!**/*.spec.*",
76
43
  "LICENSE"
77
- ]
44
+ ],
45
+ "typings": "build/main/index.d.ts"
78
46
  }
package/src/client.ts ADDED
@@ -0,0 +1,99 @@
1
+ import * as Sentry from '@sentry/core';
2
+ import {
3
+ type RetryableFetchParams,
4
+ useRetryableFetch,
5
+ } from '@vrplatform/utils';
6
+ import createClient from 'openapi-fetch';
7
+ import { useCache } from './cache';
8
+ import type { paths } from './generated/v1';
9
+ import { generateApiKeySec } from './sec';
10
+ import type { ApiClient, ApiClientAuth } from './types';
11
+
12
+ export function useApiClient({
13
+ baseUrl: base,
14
+ local,
15
+ auth,
16
+ sessionId: sid,
17
+ // headers: h,
18
+ testing,
19
+ headers: h,
20
+ ...retryableFetchParams
21
+ }: {
22
+ attempts?: number;
23
+ auth?: ApiClientAuth | (() => ApiClientAuth);
24
+ baseUrl?: string;
25
+ sessionId?: string;
26
+ local?: boolean | number;
27
+ headers?: Record<string, string> | (() => Record<string, string>);
28
+ testing?: {
29
+ overwriteUri?: string;
30
+ getOverwriteTimestamp?: () => number | undefined;
31
+ };
32
+ } & RetryableFetchParams) {
33
+ const baseUrl =
34
+ (local
35
+ ? `http://localhost:${typeof local === 'number' ? local : 8877}`
36
+ : base) || 'https://api.vrplatform.app';
37
+
38
+ const sessionId = sid || crypto.randomUUID();
39
+ // cache the sec key for 1 minute (its valid for 5 minutes on the API)
40
+ const cache = useCache(
41
+ async (v: string) =>
42
+ generateApiKeySec(v, testing?.getOverwriteTimestamp?.()),
43
+ 60_000
44
+ );
45
+
46
+ const retryableFetch = useRetryableFetch({
47
+ ...retryableFetchParams,
48
+ onRetry(arg) {
49
+ cache.invalidate();
50
+ if (retryableFetchParams.onRetry) retryableFetchParams.onRetry(arg);
51
+ },
52
+ });
53
+
54
+ const trace = Sentry.getTraceData();
55
+ const client = createClient<paths>({
56
+ baseUrl,
57
+ querySerializer: {
58
+ array: {
59
+ explode: false,
60
+ style: 'form',
61
+ },
62
+ },
63
+ fetch(req) {
64
+ return retryableFetch(async () => {
65
+ let clone: any = req.clone() as any;
66
+ if (testing?.overwriteUri)
67
+ clone = new Request(testing.overwriteUri, clone);
68
+
69
+ const a = (typeof auth === 'function' ? auth() : auth) || {};
70
+ if (sessionId) clone.headers.set('X-Session-Id', sessionId);
71
+ if (a.sec)
72
+ clone.headers.set('X-Api-Key', `Sec ${await cache.current(a.sec)}`);
73
+ if (a.apiKey) clone.headers.set('X-Api-Key', a.apiKey);
74
+ if (a.tenantId) clone.headers.set('X-Team-Id', a.tenantId);
75
+ if (a.accessToken)
76
+ clone.headers.set(
77
+ 'Authorization',
78
+ a.accessToken.startsWith('Bearer ')
79
+ ? a.accessToken
80
+ : `Bearer ${a.accessToken}`
81
+ );
82
+ const additionalHeaders = h ? (typeof h === 'function' ? h() : h) : {};
83
+ for (const key in additionalHeaders) {
84
+ clone.headers.set(key, additionalHeaders[key]);
85
+ }
86
+
87
+ if (trace['sentry-trace'])
88
+ clone.headers.set('sentry-trace', trace['sentry-trace']);
89
+ if (trace.baggage) clone.headers.set('baggage', trace.baggage);
90
+
91
+ return clone;
92
+ });
93
+ },
94
+ });
95
+
96
+ const sessionClient: ApiClient = client as any;
97
+ sessionClient.sessionId = sessionId;
98
+ return sessionClient;
99
+ }
package/src/error.ts ADDED
@@ -0,0 +1,71 @@
1
+ import { hasValue } from '@vrplatform/utils';
2
+ import type { FetchResponse } from './generated/openapi-fetch';
3
+
4
+ type E = {
5
+ code: string;
6
+ message: string;
7
+ issues?: {
8
+ message: string;
9
+ }[];
10
+ context?: any;
11
+ stack?: any;
12
+ };
13
+ export class ApiClientError extends Error {
14
+ code: string;
15
+ issues: {
16
+ message: string;
17
+ }[];
18
+ context: any;
19
+ constructor(public error: E) {
20
+ const message =
21
+ error.message ||
22
+ [
23
+ error.code,
24
+ error.issues
25
+ ?.map((x) =>
26
+ [x.message, (x as any).path?.join('->')]
27
+ .filter(hasValue)
28
+ .join(' on ')
29
+ )
30
+ .join(', '),
31
+ ]
32
+ .filter(hasValue)
33
+ .join(': ');
34
+ super(message);
35
+
36
+ this.code = error.code;
37
+ this.issues = error.issues || [];
38
+ this.context = error.context || {};
39
+ if (error.stack) this.stack = error.stack;
40
+ }
41
+ }
42
+ export function throwIfError<T extends FetchResponse<any, any, any>>(
43
+ response: T
44
+ ): NonNullable<T['data']>;
45
+ export function throwIfError<T extends FetchResponse<any, any, any>>(
46
+ response: Promise<T>
47
+ ): Promise<NonNullable<T['data']>>;
48
+ export function throwIfError<T extends FetchResponse<any, any, any>>(
49
+ response: Promise<T> | T
50
+ ): Promise<NonNullable<T['data']>> | NonNullable<T['data']> {
51
+ if (response instanceof Promise) {
52
+ return response.then((response) => {
53
+ if (response.response.status === 503) {
54
+ throw new ApiClientError({
55
+ code: 'SERVICE_UNAVAILABLE',
56
+ message: 'Worker resources exceeded.',
57
+ });
58
+ }
59
+
60
+ const error: E = response.error;
61
+
62
+ if (error) throw new ApiClientError(error);
63
+ return response.data;
64
+ });
65
+ }
66
+
67
+ const error: E = response.error;
68
+
69
+ if (error) throw new ApiClientError(error);
70
+ return response.data;
71
+ }