weflayr 0.24.0 → 0.26.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.
Files changed (235) hide show
  1. package/README.md +2 -2
  2. package/dist/package.json +51 -0
  3. package/dist/{api → src/api}/generated/facade.gen.d.ts +86 -12
  4. package/dist/{api → src/api}/generated/facade.gen.js +4 -2
  5. package/dist/src/api/generated/index.d.ts +2 -0
  6. package/dist/{api → src/api}/generated/index.js +3 -1
  7. package/dist/{api → src/api}/generated/sdk.gen.d.ts +11 -3
  8. package/dist/{api → src/api}/generated/sdk.gen.js +34 -4
  9. package/{src/api/generated/types.gen.ts → dist/src/api/generated/types.gen.d.ts} +436 -153
  10. package/dist/{api → src/api}/makeEndpoint.js +1 -3
  11. package/dist/src/auto-instrument.d.ts +42 -0
  12. package/dist/src/auto-instrument.js +156 -0
  13. package/dist/src/index.d.ts +9 -0
  14. package/dist/src/index.js +49 -0
  15. package/dist/src/instrumentation/anthropic/get_cache_and_reasoning_telemetry.d.ts +20 -0
  16. package/dist/src/instrumentation/anthropic/get_cache_and_reasoning_telemetry.js +114 -0
  17. package/dist/src/instrumentation/anthropic/get_cache_config_telemetry.d.ts +28 -0
  18. package/dist/src/instrumentation/anthropic/get_cache_config_telemetry.js +92 -0
  19. package/dist/src/instrumentation/anthropic/get_streaming_accumulation_telemetry.d.ts +25 -0
  20. package/dist/src/instrumentation/anthropic/get_streaming_accumulation_telemetry.js +141 -0
  21. package/dist/src/instrumentation/anthropic/get_structured_output_schema_telemetry.d.ts +9 -0
  22. package/dist/src/instrumentation/anthropic/get_structured_output_schema_telemetry.js +17 -0
  23. package/dist/src/instrumentation/anthropic/get_tool_definitions_telemetry.d.ts +15 -0
  24. package/dist/src/instrumentation/anthropic/get_tool_definitions_telemetry.js +50 -0
  25. package/dist/src/instrumentation/anthropic/set_telemetry_attributes.d.ts +15 -0
  26. package/dist/src/instrumentation/anthropic/set_telemetry_attributes.js +39 -0
  27. package/dist/src/instrumentation/bedrock/get_cache_config_telemetry.d.ts +22 -0
  28. package/dist/src/instrumentation/bedrock/get_cache_config_telemetry.js +97 -0
  29. package/dist/src/instrumentation/bedrock/get_cache_telemetry.d.ts +22 -0
  30. package/dist/src/instrumentation/bedrock/get_cache_telemetry.js +102 -0
  31. package/dist/src/instrumentation/bedrock/get_input_message_content_telemetry.d.ts +15 -0
  32. package/dist/src/instrumentation/bedrock/get_input_message_content_telemetry.js +91 -0
  33. package/dist/src/instrumentation/bedrock/get_model_id_telemetry.d.ts +21 -0
  34. package/dist/src/instrumentation/bedrock/get_model_id_telemetry.js +54 -0
  35. package/dist/src/instrumentation/bedrock/get_reasoning_output_telemetry.d.ts +19 -0
  36. package/dist/src/instrumentation/bedrock/get_reasoning_output_telemetry.js +81 -0
  37. package/dist/src/instrumentation/bedrock/get_streaming_output_message_telemetry.d.ts +27 -0
  38. package/dist/src/instrumentation/bedrock/get_streaming_output_message_telemetry.js +126 -0
  39. package/dist/src/instrumentation/bedrock/get_tool_call_output_telemetry.d.ts +17 -0
  40. package/dist/src/instrumentation/bedrock/get_tool_call_output_telemetry.js +85 -0
  41. package/dist/src/instrumentation/bedrock/get_tool_definitions_telemetry.d.ts +15 -0
  42. package/dist/src/instrumentation/bedrock/get_tool_definitions_telemetry.js +68 -0
  43. package/dist/src/instrumentation/bedrock/set_telemetry_attributes.d.ts +18 -0
  44. package/dist/src/instrumentation/bedrock/set_telemetry_attributes.js +47 -0
  45. package/dist/src/instrumentation/cohere/get_chat_telemetry.d.ts +23 -0
  46. package/dist/src/instrumentation/cohere/get_chat_telemetry.js +77 -0
  47. package/dist/src/instrumentation/cohere/get_embeddings_telemetry.d.ts +18 -0
  48. package/dist/src/instrumentation/cohere/get_embeddings_telemetry.js +88 -0
  49. package/dist/src/instrumentation/cohere/get_structured_output_schema_telemetry.d.ts +12 -0
  50. package/dist/src/instrumentation/cohere/get_structured_output_schema_telemetry.js +18 -0
  51. package/dist/src/instrumentation/cohere/get_tool_call_output_telemetry.d.ts +31 -0
  52. package/dist/src/instrumentation/cohere/get_tool_call_output_telemetry.js +106 -0
  53. package/dist/src/instrumentation/cohere/get_tool_definitions_telemetry.d.ts +27 -0
  54. package/dist/src/instrumentation/cohere/get_tool_definitions_telemetry.js +75 -0
  55. package/dist/src/instrumentation/cohere/set_telemetry_attributes.d.ts +17 -0
  56. package/dist/src/instrumentation/cohere/set_telemetry_attributes.js +44 -0
  57. package/dist/src/instrumentation/elevenlabs/full_instrumentation.d.ts +28 -0
  58. package/dist/src/instrumentation/elevenlabs/full_instrumentation.js +209 -0
  59. package/dist/src/instrumentation/google/get_audio_telemetry.d.ts +9 -0
  60. package/dist/src/instrumentation/google/get_audio_telemetry.js +28 -0
  61. package/dist/src/instrumentation/google/get_cache_operations_telemetry.d.ts +23 -0
  62. package/dist/src/instrumentation/google/get_cache_operations_telemetry.js +154 -0
  63. package/dist/src/instrumentation/google/get_cache_telemetry.d.ts +16 -0
  64. package/{src → dist/src}/instrumentation/google/get_cache_telemetry.js +18 -19
  65. package/dist/src/instrumentation/google/get_embeddings_telemetry.d.ts +12 -0
  66. package/dist/src/instrumentation/google/get_embeddings_telemetry.js +85 -0
  67. package/dist/src/instrumentation/google/get_provider_name.d.ts +11 -0
  68. package/{src → dist/src}/instrumentation/google/get_provider_name.js +11 -12
  69. package/{src/instrumentation/google/get_reasoning_telemetry.js → dist/src/instrumentation/google/get_reasoning_telemetry.d.ts} +1 -11
  70. package/dist/src/instrumentation/google/get_reasoning_telemetry.js +21 -0
  71. package/dist/src/instrumentation/google/get_structured_output_schema_telemetry.d.ts +12 -0
  72. package/dist/src/instrumentation/google/get_structured_output_schema_telemetry.js +19 -0
  73. package/dist/src/instrumentation/google/set_telemetry_attributes.d.ts +18 -0
  74. package/dist/src/instrumentation/google/set_telemetry_attributes.js +98 -0
  75. package/dist/src/instrumentation/openai/get_audio_telemetry.d.ts +25 -0
  76. package/dist/src/instrumentation/openai/get_audio_telemetry.js +123 -0
  77. package/dist/src/instrumentation/openai/get_bedrock_mantle_telemetry.d.ts +35 -0
  78. package/dist/src/instrumentation/openai/get_bedrock_mantle_telemetry.js +148 -0
  79. package/dist/src/instrumentation/openai/get_cache_and_reasoning_telemetry.d.ts +27 -0
  80. package/dist/src/instrumentation/openai/get_cache_and_reasoning_telemetry.js +72 -0
  81. package/dist/src/instrumentation/openai/get_cache_config_telemetry.d.ts +28 -0
  82. package/dist/src/instrumentation/openai/get_cache_config_telemetry.js +91 -0
  83. package/dist/src/instrumentation/openai/get_embeddings_telemetry.d.ts +18 -0
  84. package/dist/src/instrumentation/openai/get_embeddings_telemetry.js +86 -0
  85. package/dist/src/instrumentation/openai/get_streaming_usage.d.ts +21 -0
  86. package/dist/src/instrumentation/openai/get_streaming_usage.js +74 -0
  87. package/dist/src/instrumentation/openai/get_structured_output_schema_telemetry.d.ts +12 -0
  88. package/dist/src/instrumentation/openai/get_structured_output_schema_telemetry.js +20 -0
  89. package/dist/src/instrumentation/openai/set_telemetry_attributes.d.ts +17 -0
  90. package/dist/src/instrumentation/openai/set_telemetry_attributes.js +47 -0
  91. package/dist/src/instrumentation/shared/get_structured_output_schema_telemetry.d.ts +35 -0
  92. package/dist/src/instrumentation/shared/get_structured_output_schema_telemetry.js +76 -0
  93. package/dist/src/instrumentation/vercel/full_instrumentation.d.ts +3 -0
  94. package/dist/src/instrumentation/vercel/full_instrumentation.js +54 -0
  95. package/dist/src/instrumentation/vercel/get_cache_creation_telemetry.d.ts +22 -0
  96. package/dist/src/instrumentation/vercel/get_cache_creation_telemetry.js +66 -0
  97. package/dist/src/instrumentation/vercel/get_structured_output_schema_telemetry.d.ts +24 -0
  98. package/dist/src/instrumentation/vercel/get_structured_output_schema_telemetry.js +84 -0
  99. package/dist/src/logger.d.ts +1 -0
  100. package/dist/src/logger.js +6 -0
  101. package/dist/src/otel/exporter.d.ts +19 -0
  102. package/dist/src/otel/exporter.js +94 -0
  103. package/dist/src/otel/propagation.d.ts +46 -0
  104. package/dist/src/otel/propagation.js +110 -0
  105. package/dist/src/otel/span-filter.d.ts +3 -0
  106. package/dist/src/otel/span-filter.js +61 -0
  107. package/dist/src/otel/span-processor.d.ts +55 -0
  108. package/dist/src/otel/span-processor.js +169 -0
  109. package/dist/src/otel/vercel-ai-sdk-span-filter.d.ts +12 -0
  110. package/dist/src/otel/vercel-ai-sdk-span-filter.js +88 -0
  111. package/dist/src/setup.d.ts +50 -0
  112. package/dist/src/setup.js +155 -0
  113. package/package.json +12 -5
  114. package/.prettierignore +0 -2
  115. package/.prettierrc.json +0 -7
  116. package/LICENSE-MIT +0 -21
  117. package/NOTICE +0 -12
  118. package/dist/api/generated/index.d.ts +0 -2
  119. package/dist/api/generated/types.gen.d.ts +0 -1005
  120. package/eslint.config.mjs +0 -36
  121. package/index.d.ts +0 -170
  122. package/openapi-ts.config.mjs +0 -9
  123. package/scripts/generate_facade.mjs +0 -86
  124. package/src/api/caseConversion.ts +0 -58
  125. package/src/api/generated/client/client.gen.ts +0 -277
  126. package/src/api/generated/client/index.ts +0 -27
  127. package/src/api/generated/client/types.gen.ts +0 -218
  128. package/src/api/generated/client/utils.gen.ts +0 -316
  129. package/src/api/generated/client.gen.ts +0 -16
  130. package/src/api/generated/core/auth.gen.ts +0 -48
  131. package/src/api/generated/core/bodySerializer.gen.ts +0 -82
  132. package/src/api/generated/core/params.gen.ts +0 -178
  133. package/src/api/generated/core/pathSerializer.gen.ts +0 -171
  134. package/src/api/generated/core/queryKeySerializer.gen.ts +0 -117
  135. package/src/api/generated/core/serverSentEvents.gen.ts +0 -242
  136. package/src/api/generated/core/types.gen.ts +0 -110
  137. package/src/api/generated/core/utils.gen.ts +0 -140
  138. package/src/api/generated/facade.gen.ts +0 -104
  139. package/src/api/generated/index.ts +0 -4
  140. package/src/api/generated/sdk.gen.ts +0 -175
  141. package/src/api/index.ts +0 -45
  142. package/src/api/makeEndpoint.ts +0 -54
  143. package/src/auto-instrument.js +0 -172
  144. package/src/index.js +0 -19
  145. package/src/instrumentation/anthropic/get_cache_and_reasoning_telemetry.js +0 -118
  146. package/src/instrumentation/anthropic/get_cache_config_telemetry.js +0 -90
  147. package/src/instrumentation/anthropic/get_streaming_stop_reason_telemetry.js +0 -121
  148. package/src/instrumentation/anthropic/get_tool_definitions_telemetry.js +0 -55
  149. package/src/instrumentation/anthropic/set_telemetry_attributes.js +0 -39
  150. package/src/instrumentation/bedrock/get_cache_config_telemetry.js +0 -106
  151. package/src/instrumentation/bedrock/get_cache_telemetry.js +0 -109
  152. package/src/instrumentation/bedrock/get_input_message_content_telemetry.js +0 -94
  153. package/src/instrumentation/bedrock/get_streaming_output_message_telemetry.js +0 -87
  154. package/src/instrumentation/bedrock/set_telemetry_attributes.js +0 -40
  155. package/src/instrumentation/cohere/get_chat_telemetry.js +0 -88
  156. package/src/instrumentation/cohere/get_embeddings_telemetry.js +0 -107
  157. package/src/instrumentation/cohere/set_telemetry_attributes.js +0 -32
  158. package/src/instrumentation/elevenlabs/full_instrumentation.js +0 -236
  159. package/src/instrumentation/google/get_audio_telemetry.js +0 -30
  160. package/src/instrumentation/google/get_cache_operations_telemetry.js +0 -171
  161. package/src/instrumentation/google/get_embeddings_telemetry.js +0 -99
  162. package/src/instrumentation/google/set_telemetry_attributes.js +0 -104
  163. package/src/instrumentation/openai/get_audio_telemetry.js +0 -149
  164. package/src/instrumentation/openai/get_cache_and_reasoning_telemetry.js +0 -71
  165. package/src/instrumentation/openai/get_cache_config_telemetry.js +0 -63
  166. package/src/instrumentation/openai/get_embeddings_telemetry.js +0 -107
  167. package/src/instrumentation/openai/get_streaming_usage.js +0 -81
  168. package/src/instrumentation/openai/set_telemetry_attributes.js +0 -41
  169. package/src/instrumentation/vercel/full_instrumentation.js +0 -52
  170. package/src/instrumentation/vercel/get_cache_creation_telemetry.js +0 -70
  171. package/src/logger.js +0 -8
  172. package/src/otel/exporter.js +0 -108
  173. package/src/otel/propagation.js +0 -146
  174. package/src/otel/span-filter.js +0 -69
  175. package/src/otel/span-processor.js +0 -170
  176. package/src/otel/vercel-ai-sdk-span-filter.js +0 -79
  177. package/src/setup.js +0 -167
  178. package/tests/api/index.test.js +0 -437
  179. package/tests/index.test.js +0 -884
  180. package/tests/instrumentation/anthropic/get_cache_and_reasoning_telemetry.test.js +0 -181
  181. package/tests/instrumentation/anthropic/get_cache_config_telemetry.test.js +0 -92
  182. package/tests/instrumentation/anthropic/get_streaming_stop_reason_telemetry.test.js +0 -117
  183. package/tests/instrumentation/anthropic/get_tool_definitions_telemetry.test.js +0 -97
  184. package/tests/instrumentation/bedrock/get_cache_config_telemetry.test.js +0 -107
  185. package/tests/instrumentation/bedrock/get_cache_telemetry.test.js +0 -118
  186. package/tests/instrumentation/bedrock/get_input_message_content_telemetry.test.js +0 -89
  187. package/tests/instrumentation/bedrock/get_streaming_output_message_telemetry.test.js +0 -87
  188. package/tests/instrumentation/cohere/get_chat_telemetry.test.js +0 -148
  189. package/tests/instrumentation/cohere/get_embeddings_telemetry.test.js +0 -132
  190. package/tests/instrumentation/elevenlabs/full_instrumentation.test.js +0 -258
  191. package/tests/instrumentation/google/get_cache_operations_telemetry.test.js +0 -130
  192. package/tests/instrumentation/google/get_embeddings_telemetry.test.js +0 -128
  193. package/tests/instrumentation/google/get_reasoning_telemetry.test.js +0 -41
  194. package/tests/instrumentation/google/set_telemetry_attributes.test.js +0 -219
  195. package/tests/instrumentation/openai/get_audio_telemetry.test.js +0 -170
  196. package/tests/instrumentation/openai/get_cache_and_reasoning_telemetry.test.js +0 -83
  197. package/tests/instrumentation/openai/get_cache_config_telemetry.test.js +0 -83
  198. package/tests/instrumentation/openai/get_embeddings_telemetry.test.js +0 -145
  199. package/tests/instrumentation/openai/get_streaming_usage.test.js +0 -105
  200. package/tests/instrumentation/vercel/full_instrumentation.test.js +0 -16
  201. package/tests/instrumentation/vercel/get_cache_creation_telemetry.test.js +0 -96
  202. package/tests/otel/vercel-ai-sdk-span-filter.test.js +0 -159
  203. package/tsconfig.json +0 -18
  204. /package/dist/{api → src/api}/caseConversion.d.ts +0 -0
  205. /package/dist/{api → src/api}/caseConversion.js +0 -0
  206. /package/dist/{api → src/api}/generated/client/client.gen.d.ts +0 -0
  207. /package/dist/{api → src/api}/generated/client/client.gen.js +0 -0
  208. /package/dist/{api → src/api}/generated/client/index.d.ts +0 -0
  209. /package/dist/{api → src/api}/generated/client/index.js +0 -0
  210. /package/dist/{api → src/api}/generated/client/types.gen.d.ts +0 -0
  211. /package/dist/{api → src/api}/generated/client/types.gen.js +0 -0
  212. /package/dist/{api → src/api}/generated/client/utils.gen.d.ts +0 -0
  213. /package/dist/{api → src/api}/generated/client/utils.gen.js +0 -0
  214. /package/dist/{api → src/api}/generated/client.gen.d.ts +0 -0
  215. /package/dist/{api → src/api}/generated/client.gen.js +0 -0
  216. /package/dist/{api → src/api}/generated/core/auth.gen.d.ts +0 -0
  217. /package/dist/{api → src/api}/generated/core/auth.gen.js +0 -0
  218. /package/dist/{api → src/api}/generated/core/bodySerializer.gen.d.ts +0 -0
  219. /package/dist/{api → src/api}/generated/core/bodySerializer.gen.js +0 -0
  220. /package/dist/{api → src/api}/generated/core/params.gen.d.ts +0 -0
  221. /package/dist/{api → src/api}/generated/core/params.gen.js +0 -0
  222. /package/dist/{api → src/api}/generated/core/pathSerializer.gen.d.ts +0 -0
  223. /package/dist/{api → src/api}/generated/core/pathSerializer.gen.js +0 -0
  224. /package/dist/{api → src/api}/generated/core/queryKeySerializer.gen.d.ts +0 -0
  225. /package/dist/{api → src/api}/generated/core/queryKeySerializer.gen.js +0 -0
  226. /package/dist/{api → src/api}/generated/core/serverSentEvents.gen.d.ts +0 -0
  227. /package/dist/{api → src/api}/generated/core/serverSentEvents.gen.js +0 -0
  228. /package/dist/{api → src/api}/generated/core/types.gen.d.ts +0 -0
  229. /package/dist/{api → src/api}/generated/core/types.gen.js +0 -0
  230. /package/dist/{api → src/api}/generated/core/utils.gen.d.ts +0 -0
  231. /package/dist/{api → src/api}/generated/core/utils.gen.js +0 -0
  232. /package/dist/{api → src/api}/generated/types.gen.js +0 -0
  233. /package/dist/{api → src/api}/index.d.ts +0 -0
  234. /package/dist/{api → src/api}/index.js +0 -0
  235. /package/dist/{api → src/api}/makeEndpoint.d.ts +0 -0
@@ -1,110 +0,0 @@
1
- // This file is auto-generated by @hey-api/openapi-ts
2
-
3
- import type { Auth, AuthToken } from './auth.gen.js';
4
- import type { BodySerializer, QuerySerializer, QuerySerializerOptions } from './bodySerializer.gen.js';
5
-
6
- export type HttpMethod =
7
- | 'connect'
8
- | 'delete'
9
- | 'get'
10
- | 'head'
11
- | 'options'
12
- | 'patch'
13
- | 'post'
14
- | 'put'
15
- | 'trace';
16
-
17
- export type Client<
18
- RequestFn = never,
19
- Config = unknown,
20
- MethodFn = never,
21
- BuildUrlFn = never,
22
- SseFn = never,
23
- > = {
24
- /**
25
- * Returns the final request URL.
26
- */
27
- buildUrl: BuildUrlFn;
28
- getConfig: () => Config;
29
- request: RequestFn;
30
- setConfig: (config: Config) => Config;
31
- } & {
32
- [K in HttpMethod]: MethodFn;
33
- } & ([SseFn] extends [never] ? { sse?: never } : { sse: { [K in HttpMethod]: SseFn } });
34
-
35
- export interface Config {
36
- /**
37
- * Auth token or a function returning auth token. The resolved value will be
38
- * added to the request payload as defined by its `security` array.
39
- */
40
- auth?: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken;
41
- /**
42
- * A function for serializing request body parameter. By default,
43
- * {@link JSON.stringify()} will be used.
44
- */
45
- bodySerializer?: BodySerializer | null;
46
- /**
47
- * An object containing any HTTP headers that you want to pre-populate your
48
- * `Headers` object with.
49
- *
50
- * {@link https://developer.mozilla.org/docs/Web/API/Headers/Headers#init See more}
51
- */
52
- headers?:
53
- | RequestInit['headers']
54
- | Record<
55
- string,
56
- string | number | boolean | (string | number | boolean)[] | null | undefined | unknown
57
- >;
58
- /**
59
- * The request method.
60
- *
61
- * {@link https://developer.mozilla.org/docs/Web/API/fetch#method See more}
62
- */
63
- method?: Uppercase<HttpMethod>;
64
- /**
65
- * A function for serializing request query parameters. By default, arrays
66
- * will be exploded in form style, objects will be exploded in deepObject
67
- * style, and reserved characters are percent-encoded.
68
- *
69
- * This method will have no effect if the native `paramsSerializer()` Axios
70
- * API function is used.
71
- *
72
- * {@link https://swagger.io/docs/specification/serialization/#query View examples}
73
- */
74
- querySerializer?: QuerySerializer | QuerySerializerOptions;
75
- /**
76
- * A function validating request data. This is useful if you want to ensure
77
- * the request conforms to the desired shape, so it can be safely sent to
78
- * the server.
79
- */
80
- requestValidator?: (data: unknown) => Promise<unknown>;
81
- /**
82
- * A function transforming response data before it's returned. This is useful
83
- * for post-processing data, e.g., converting ISO strings into Date objects.
84
- */
85
- responseTransformer?: (data: unknown) => Promise<unknown>;
86
- /**
87
- * A function validating response data. This is useful if you want to ensure
88
- * the response conforms to the desired shape, so it can be safely passed to
89
- * the transformers and returned to the user.
90
- */
91
- responseValidator?: (data: unknown) => Promise<unknown>;
92
- }
93
-
94
- /**
95
- * Arbitrary metadata passed through the `meta` request option.
96
- */
97
- // eslint-disable-next-line @typescript-eslint/no-empty-object-type
98
- export interface ClientMeta {}
99
-
100
- type IsExactlyNeverOrNeverUndefined<T> = [T] extends [never]
101
- ? true
102
- : [T] extends [never | undefined]
103
- ? [undefined] extends [T]
104
- ? false
105
- : true
106
- : false;
107
-
108
- export type OmitNever<T extends Record<string, unknown>> = {
109
- [K in keyof T as IsExactlyNeverOrNeverUndefined<T[K]> extends true ? never : K]: T[K];
110
- };
@@ -1,140 +0,0 @@
1
- // This file is auto-generated by @hey-api/openapi-ts
2
-
3
- import type { BodySerializer, QuerySerializer } from './bodySerializer.gen.js';
4
- import {
5
- type ArraySeparatorStyle,
6
- serializeArrayParam,
7
- serializeObjectParam,
8
- serializePrimitiveParam,
9
- } from './pathSerializer.gen.js';
10
-
11
- export interface PathSerializer {
12
- path: Record<string, unknown>;
13
- url: string;
14
- }
15
-
16
- export const PATH_PARAM_RE: RegExp = /\{[^{}]+\}/g;
17
-
18
- export const defaultPathSerializer = ({ path, url: _url }: PathSerializer): string => {
19
- let url = _url;
20
- const matches = _url.match(PATH_PARAM_RE);
21
- if (matches) {
22
- for (const match of matches) {
23
- let explode = false;
24
- let name = match.substring(1, match.length - 1);
25
- let style: ArraySeparatorStyle = 'simple';
26
-
27
- if (name.endsWith('*')) {
28
- explode = true;
29
- name = name.substring(0, name.length - 1);
30
- }
31
-
32
- if (name.startsWith('.')) {
33
- name = name.substring(1);
34
- style = 'label';
35
- } else if (name.startsWith(';')) {
36
- name = name.substring(1);
37
- style = 'matrix';
38
- }
39
-
40
- const value = path[name];
41
-
42
- if (value === undefined || value === null) {
43
- continue;
44
- }
45
-
46
- if (Array.isArray(value)) {
47
- url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
48
- continue;
49
- }
50
-
51
- if (typeof value === 'object') {
52
- url = url.replace(
53
- match,
54
- serializeObjectParam({
55
- explode,
56
- name,
57
- style,
58
- value: value as Record<string, unknown>,
59
- valueOnly: true,
60
- }),
61
- );
62
- continue;
63
- }
64
-
65
- if (style === 'matrix') {
66
- url = url.replace(
67
- match,
68
- `;${serializePrimitiveParam({
69
- name,
70
- value: value as string,
71
- })}`,
72
- );
73
- continue;
74
- }
75
-
76
- const replaceValue = encodeURIComponent(
77
- style === 'label' ? `.${value as string}` : (value as string),
78
- );
79
- url = url.replace(match, replaceValue);
80
- }
81
- }
82
- return url;
83
- };
84
-
85
- export const getUrl = ({
86
- baseUrl,
87
- path,
88
- query,
89
- querySerializer,
90
- url: _url,
91
- }: {
92
- baseUrl?: string;
93
- path?: Record<string, unknown>;
94
- query?: Record<string, unknown>;
95
- querySerializer: QuerySerializer;
96
- url: string;
97
- }): string => {
98
- const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;
99
- let url = (baseUrl ?? '') + pathUrl;
100
- if (path) {
101
- url = defaultPathSerializer({ path, url });
102
- }
103
- let search = query ? querySerializer(query) : '';
104
- if (search.startsWith('?')) {
105
- search = search.substring(1);
106
- }
107
- if (search) {
108
- url += `?${search}`;
109
- }
110
- return url;
111
- };
112
-
113
- export function getValidRequestBody(options: {
114
- body?: unknown;
115
- bodySerializer?: BodySerializer | null;
116
- serializedBody?: unknown;
117
- }): unknown {
118
- const hasBody = options.body !== undefined;
119
- const isSerializedBody = hasBody && options.bodySerializer;
120
-
121
- if (isSerializedBody) {
122
- if ('serializedBody' in options) {
123
- const hasSerializedBody =
124
- options.serializedBody !== undefined && options.serializedBody !== '';
125
-
126
- return hasSerializedBody ? options.serializedBody : null;
127
- }
128
-
129
- // not all clients implement a serializedBody property (i.e., client-axios)
130
- return options.body !== '' ? options.body : null;
131
- }
132
-
133
- // plain/text body
134
- if (hasBody) {
135
- return options.body;
136
- }
137
-
138
- // no body was provided
139
- return undefined;
140
- }
@@ -1,104 +0,0 @@
1
- // Generated by services/sdk_node_js/scripts/generate_facade.mjs from
2
- // sdk.gen.ts. Do not edit by hand.
3
-
4
- import { makeEndpoint } from '../makeEndpoint.js';
5
- import type { CamelCaseDeep } from '../caseConversion.js';
6
- import * as generated from './sdk.gen.js';
7
- import type * as generatedTypes from './types.gen.js';
8
-
9
-
10
- export const getMargin = makeEndpoint<
11
- CamelCaseDeep<Omit<generatedTypes.GetMarginData, 'url'>>,
12
- CamelCaseDeep<generatedTypes.GetMarginResponse>,
13
- CamelCaseDeep<generatedTypes.GetMarginError>
14
- >(generated.getMargin);
15
-
16
- export const deleteRevenue = makeEndpoint<
17
- CamelCaseDeep<Omit<generatedTypes.DeleteRevenueData, 'url'>>,
18
- CamelCaseDeep<generatedTypes.DeleteRevenueResponse>,
19
- CamelCaseDeep<generatedTypes.DeleteRevenueError>
20
- >(generated.deleteRevenue);
21
-
22
- export const getRevenue = makeEndpoint<
23
- CamelCaseDeep<Omit<generatedTypes.GetRevenueData, 'url'>>,
24
- CamelCaseDeep<generatedTypes.GetRevenueResponse>,
25
- CamelCaseDeep<generatedTypes.GetRevenueError>
26
- >(generated.getRevenue);
27
-
28
- export const setRevenue = makeEndpoint<
29
- CamelCaseDeep<Omit<generatedTypes.SetRevenueData, 'url'>>,
30
- CamelCaseDeep<generatedTypes.SetRevenueResponse>,
31
- CamelCaseDeep<generatedTypes.SetRevenueError>
32
- >(generated.setRevenue);
33
-
34
- export const deleteKeyMetrics = makeEndpoint<
35
- CamelCaseDeep<Omit<generatedTypes.DeleteKeyMetricsData, 'url'>>,
36
- CamelCaseDeep<generatedTypes.DeleteKeyMetricsResponse>,
37
- CamelCaseDeep<generatedTypes.DeleteKeyMetricsError>
38
- >(generated.deleteKeyMetrics);
39
-
40
- export const getKeyMetrics = makeEndpoint<
41
- CamelCaseDeep<Omit<generatedTypes.GetKeyMetricsData, 'url'>>,
42
- CamelCaseDeep<generatedTypes.GetKeyMetricsResponse>,
43
- CamelCaseDeep<generatedTypes.GetKeyMetricsError>
44
- >(generated.getKeyMetrics);
45
-
46
- export const setKeyMetrics = makeEndpoint<
47
- CamelCaseDeep<Omit<generatedTypes.SetKeyMetricsData, 'url'>>,
48
- CamelCaseDeep<generatedTypes.SetKeyMetricsResponse>,
49
- CamelCaseDeep<generatedTypes.SetKeyMetricsError>
50
- >(generated.setKeyMetrics);
51
-
52
- export const deleteCustomersTags = makeEndpoint<
53
- CamelCaseDeep<Omit<generatedTypes.DeleteCustomersTagsData, 'url'>>,
54
- CamelCaseDeep<generatedTypes.DeleteCustomersTagsResponse>,
55
- CamelCaseDeep<generatedTypes.DeleteCustomersTagsError>
56
- >(generated.deleteCustomersTags);
57
-
58
- export const getCustomersTags = makeEndpoint<
59
- CamelCaseDeep<Omit<generatedTypes.GetCustomersTagsData, 'url'>>,
60
- CamelCaseDeep<generatedTypes.GetCustomersTagsResponse>,
61
- CamelCaseDeep<generatedTypes.GetCustomersTagsError>
62
- >(generated.getCustomersTags);
63
-
64
- export const setCustomersTags = makeEndpoint<
65
- CamelCaseDeep<Omit<generatedTypes.SetCustomersTagsData, 'url'>>,
66
- CamelCaseDeep<generatedTypes.SetCustomersTagsResponse>,
67
- CamelCaseDeep<generatedTypes.SetCustomersTagsError>
68
- >(generated.setCustomersTags);
69
-
70
- export const getProject = makeEndpoint<
71
- CamelCaseDeep<Omit<generatedTypes.GetProjectData, 'url'>>,
72
- CamelCaseDeep<generatedTypes.GetProjectResponse>,
73
- CamelCaseDeep<generatedTypes.GetProjectError>
74
- >(generated.getProject);
75
-
76
- export const getTags = makeEndpoint<
77
- CamelCaseDeep<Omit<generatedTypes.GetTagsData, 'url'>>,
78
- CamelCaseDeep<generatedTypes.GetTagsResponse>,
79
- CamelCaseDeep<generatedTypes.GetTagsError>
80
- >(generated.getTags);
81
-
82
- export const getModels = makeEndpoint<
83
- CamelCaseDeep<Omit<generatedTypes.GetModelsData, 'url'>>,
84
- CamelCaseDeep<generatedTypes.GetModelsResponse>,
85
- CamelCaseDeep<generatedTypes.GetModelsError>
86
- >(generated.getModels);
87
-
88
- export const getProviders = makeEndpoint<
89
- CamelCaseDeep<Omit<generatedTypes.GetProvidersData, 'url'>>,
90
- CamelCaseDeep<generatedTypes.GetProvidersResponse>,
91
- CamelCaseDeep<generatedTypes.GetProvidersError>
92
- >(generated.getProviders);
93
-
94
- export const getCustomers = makeEndpoint<
95
- CamelCaseDeep<Omit<generatedTypes.GetCustomersData, 'url'>>,
96
- CamelCaseDeep<generatedTypes.GetCustomersResponse>,
97
- CamelCaseDeep<generatedTypes.GetCustomersError>
98
- >(generated.getCustomers);
99
-
100
- export const getFeatures = makeEndpoint<
101
- CamelCaseDeep<Omit<generatedTypes.GetFeaturesData, 'url'>>,
102
- CamelCaseDeep<generatedTypes.GetFeaturesResponse>,
103
- CamelCaseDeep<generatedTypes.GetFeaturesError>
104
- >(generated.getFeatures);
@@ -1,4 +0,0 @@
1
- // This file is auto-generated by @hey-api/openapi-ts
2
-
3
- export { deleteCustomersTags, deleteKeyMetrics, deleteRevenue, getCustomers, getCustomersTags, getFeatures, getKeyMetrics, getMargin, getModels, getProject, getProviders, getRevenue, getTags, type Options, setCustomersTags, setKeyMetrics, setRevenue } from './sdk.gen.js';
4
- export type { AllCustomerTagsOutput, ApiErrorOutput, ClientOptions, CustomerMarginRow, CustomerOutput, CustomersOutput, CustomersUpdatedOutput, CustomerTags, CustomerTagsOutput, DeleteCustomersTagsData, DeleteCustomersTagsError, DeleteCustomersTagsErrors, DeleteCustomersTagsResponse, DeleteCustomersTagsResponses, DeleteKeyMetricsData, DeleteKeyMetricsError, DeleteKeyMetricsErrors, DeleteKeyMetricsResponse, DeleteKeyMetricsResponses, DeleteRevenueData, DeleteRevenueError, DeleteRevenueErrors, DeleteRevenueResponse, DeleteRevenueResponses, FeaturesOutput, GetCustomersData, GetCustomersError, GetCustomersErrors, GetCustomersResponse, GetCustomersResponses, GetCustomersTagsData, GetCustomersTagsError, GetCustomersTagsErrors, GetCustomersTagsResponse, GetCustomersTagsResponses, GetFeaturesData, GetFeaturesError, GetFeaturesErrors, GetFeaturesResponse, GetFeaturesResponses, GetKeyMetricsData, GetKeyMetricsError, GetKeyMetricsErrors, GetKeyMetricsResponse, GetKeyMetricsResponses, GetMarginData, GetMarginError, GetMarginErrors, GetMarginResponse, GetMarginResponses, GetModelsData, GetModelsError, GetModelsErrors, GetModelsResponse, GetModelsResponses, GetProjectData, GetProjectError, GetProjectErrors, GetProjectResponse, GetProjectResponses, GetProvidersData, GetProvidersError, GetProvidersErrors, GetProvidersResponse, GetProvidersResponses, GetRevenueData, GetRevenueError, GetRevenueErrors, GetRevenueResponse, GetRevenueResponses, GetTagsData, GetTagsError, GetTagsErrors, GetTagsResponse, GetTagsResponses, InvalidFieldDetail, InvalidPayloadOutput, KeyMetricOutput, KeyMetricRow, KeyMetricRowOutput, MarginListOutput, ModelsOutput, ProjectOutput, ProvidersOutput, RevenueOrKeyMetricDeletedRowOutput, RevenueOrKeyMetricImportedRowOutput, RevenueOutput, RevenueRow, RevenueRowOutput, SetCustomersTagsData, SetCustomersTagsError, SetCustomersTagsErrors, SetCustomersTagsResponse, SetCustomersTagsResponses, SetCustomerTagsInput, SetKeyMetricsData, SetKeyMetricsError, SetKeyMetricsErrors, SetKeyMetricsInput, SetKeyMetricsResponse, SetKeyMetricsResponses, SetRevenueData, SetRevenueError, SetRevenueErrors, SetRevenueInput, SetRevenueResponse, SetRevenueResponses, TagsDeletedOutput, TagsOutput } from './types.gen.js';
@@ -1,175 +0,0 @@
1
- // This file is auto-generated by @hey-api/openapi-ts
2
-
3
- import { client } from './client.gen.js';
4
- import type { Client, ClientMeta, Options as Options2, RequestResult, TDataShape } from './client/index.js';
5
- import type { DeleteCustomersTagsData, DeleteCustomersTagsErrors, DeleteCustomersTagsResponses, DeleteKeyMetricsData, DeleteKeyMetricsErrors, DeleteKeyMetricsResponses, DeleteRevenueData, DeleteRevenueErrors, DeleteRevenueResponses, GetCustomersData, GetCustomersErrors, GetCustomersResponses, GetCustomersTagsData, GetCustomersTagsErrors, GetCustomersTagsResponses, GetFeaturesData, GetFeaturesErrors, GetFeaturesResponses, GetKeyMetricsData, GetKeyMetricsErrors, GetKeyMetricsResponses, GetMarginData, GetMarginErrors, GetMarginResponses, GetModelsData, GetModelsErrors, GetModelsResponses, GetProjectData, GetProjectErrors, GetProjectResponses, GetProvidersData, GetProvidersErrors, GetProvidersResponses, GetRevenueData, GetRevenueErrors, GetRevenueResponses, GetTagsData, GetTagsErrors, GetTagsResponses, SetCustomersTagsData, SetCustomersTagsErrors, SetCustomersTagsResponses, SetKeyMetricsData, SetKeyMetricsErrors, SetKeyMetricsResponses, SetRevenueData, SetRevenueErrors, SetRevenueResponses } from './types.gen.js';
6
-
7
- export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
8
- /**
9
- * You can provide a client instance returned by `createClient()` instead of
10
- * individual options. This might be also useful if you want to implement a
11
- * custom client.
12
- */
13
- client?: Client;
14
- /**
15
- * You can pass arbitrary values through the `meta` object. This can be
16
- * used to access values that aren't defined as part of the SDK function.
17
- */
18
- meta?: keyof ClientMeta extends never ? Record<string, unknown> : ClientMeta;
19
- };
20
-
21
- /**
22
- * Per-customer gross margin, sorted by customer_name ascending; pass customer_names to narrow to specific customers, omit it for every customer's.
23
- */
24
- export const getMargin = <ThrowOnError extends boolean = false>(options?: Options<GetMarginData, ThrowOnError>): RequestResult<GetMarginResponses, GetMarginErrors, ThrowOnError> => (options?.client ?? client).get<GetMarginResponses, GetMarginErrors, ThrowOnError>({
25
- security: [{ scheme: 'bearer', type: 'http' }],
26
- url: '/margin/',
27
- ...options
28
- });
29
-
30
- /**
31
- * Delete the given customers' API-uploaded revenue values.
32
- */
33
- export const deleteRevenue = <ThrowOnError extends boolean = false>(options: Options<DeleteRevenueData, ThrowOnError>): RequestResult<DeleteRevenueResponses, DeleteRevenueErrors, ThrowOnError> => (options.client ?? client).delete<DeleteRevenueResponses, DeleteRevenueErrors, ThrowOnError>({
34
- security: [{ scheme: 'bearer', type: 'http' }],
35
- url: '/revenue/',
36
- ...options
37
- });
38
-
39
- /**
40
- * The project's revenue values, one row per booked value; pass customer_names to narrow to specific customers, omit it for every customer's.
41
- */
42
- export const getRevenue = <ThrowOnError extends boolean = false>(options?: Options<GetRevenueData, ThrowOnError>): RequestResult<GetRevenueResponses, GetRevenueErrors, ThrowOnError> => (options?.client ?? client).get<GetRevenueResponses, GetRevenueErrors, ThrowOnError>({
43
- security: [{ scheme: 'bearer', type: 'http' }],
44
- url: '/revenue/',
45
- ...options
46
- });
47
-
48
- /**
49
- * Book revenue values; set upsert=true to overwrite rows whose id already exists.
50
- */
51
- export const setRevenue = <ThrowOnError extends boolean = false>(options: Options<SetRevenueData, ThrowOnError>): RequestResult<SetRevenueResponses, SetRevenueErrors, ThrowOnError> => (options.client ?? client).post<SetRevenueResponses, SetRevenueErrors, ThrowOnError>({
52
- security: [{ scheme: 'bearer', type: 'http' }],
53
- url: '/revenue/',
54
- ...options,
55
- headers: {
56
- 'Content-Type': 'application/json',
57
- ...options.headers
58
- }
59
- });
60
-
61
- /**
62
- * Delete the given users' API-uploaded key-metric values.
63
- */
64
- export const deleteKeyMetrics = <ThrowOnError extends boolean = false>(options: Options<DeleteKeyMetricsData, ThrowOnError>): RequestResult<DeleteKeyMetricsResponses, DeleteKeyMetricsErrors, ThrowOnError> => (options.client ?? client).delete<DeleteKeyMetricsResponses, DeleteKeyMetricsErrors, ThrowOnError>({
65
- security: [{ scheme: 'bearer', type: 'http' }],
66
- url: '/key-metrics/',
67
- ...options
68
- });
69
-
70
- /**
71
- * The project's key-metric values, one row per booked value; pass user_names to narrow to specific users, omit it for every user's.
72
- */
73
- export const getKeyMetrics = <ThrowOnError extends boolean = false>(options?: Options<GetKeyMetricsData, ThrowOnError>): RequestResult<GetKeyMetricsResponses, GetKeyMetricsErrors, ThrowOnError> => (options?.client ?? client).get<GetKeyMetricsResponses, GetKeyMetricsErrors, ThrowOnError>({
74
- security: [{ scheme: 'bearer', type: 'http' }],
75
- url: '/key-metrics/',
76
- ...options
77
- });
78
-
79
- /**
80
- * Book key-metric values; set upsert=true to overwrite rows whose id already exists.
81
- */
82
- export const setKeyMetrics = <ThrowOnError extends boolean = false>(options: Options<SetKeyMetricsData, ThrowOnError>): RequestResult<SetKeyMetricsResponses, SetKeyMetricsErrors, ThrowOnError> => (options.client ?? client).post<SetKeyMetricsResponses, SetKeyMetricsErrors, ThrowOnError>({
83
- security: [{ scheme: 'bearer', type: 'http' }],
84
- url: '/key-metrics/',
85
- ...options,
86
- headers: {
87
- 'Content-Type': 'application/json',
88
- ...options.headers
89
- }
90
- });
91
-
92
- /**
93
- * Delete every tag of the given customers.
94
- */
95
- export const deleteCustomersTags = <ThrowOnError extends boolean = false>(options: Options<DeleteCustomersTagsData, ThrowOnError>): RequestResult<DeleteCustomersTagsResponses, DeleteCustomersTagsErrors, ThrowOnError> => (options.client ?? client).delete<DeleteCustomersTagsResponses, DeleteCustomersTagsErrors, ThrowOnError>({
96
- security: [{ scheme: 'bearer', type: 'http' }],
97
- url: '/customer-tags/',
98
- ...options
99
- });
100
-
101
- /**
102
- * Every known customer of the project with its tags (possibly empty); pass customer_names to narrow to specific customers, omit it for every customer's.
103
- */
104
- export const getCustomersTags = <ThrowOnError extends boolean = false>(options?: Options<GetCustomersTagsData, ThrowOnError>): RequestResult<GetCustomersTagsResponses, GetCustomersTagsErrors, ThrowOnError> => (options?.client ?? client).get<GetCustomersTagsResponses, GetCustomersTagsErrors, ThrowOnError>({
105
- security: [{ scheme: 'bearer', type: 'http' }],
106
- url: '/customer-tags/',
107
- ...options
108
- });
109
-
110
- /**
111
- * Merge-set customer tags; set upsert=true to overwrite tags that already exist.
112
- */
113
- export const setCustomersTags = <ThrowOnError extends boolean = false>(options: Options<SetCustomersTagsData, ThrowOnError>): RequestResult<SetCustomersTagsResponses, SetCustomersTagsErrors, ThrowOnError> => (options.client ?? client).post<SetCustomersTagsResponses, SetCustomersTagsErrors, ThrowOnError>({
114
- security: [{ scheme: 'bearer', type: 'http' }],
115
- url: '/customer-tags/',
116
- ...options,
117
- headers: {
118
- 'Content-Type': 'application/json',
119
- ...options.headers
120
- }
121
- });
122
-
123
- /**
124
- * Static identity of the project: name, type, key metrics, environment and creation date.
125
- */
126
- export const getProject = <ThrowOnError extends boolean = false>(options?: Options<GetProjectData, ThrowOnError>): RequestResult<GetProjectResponses, GetProjectErrors, ThrowOnError> => (options?.client ?? client).get<GetProjectResponses, GetProjectErrors, ThrowOnError>({
127
- security: [{ scheme: 'bearer', type: 'http' }],
128
- url: '/project/',
129
- ...options
130
- });
131
-
132
- /**
133
- * {key: [values]} facets for run tags and customer tags; pass include_run_tags/include_customer_tags=false to skip either one.
134
- */
135
- export const getTags = <ThrowOnError extends boolean = false>(options?: Options<GetTagsData, ThrowOnError>): RequestResult<GetTagsResponses, GetTagsErrors, ThrowOnError> => (options?.client ?? client).get<GetTagsResponses, GetTagsErrors, ThrowOnError>({
136
- security: [{ scheme: 'bearer', type: 'http' }],
137
- url: '/tags/',
138
- ...options
139
- });
140
-
141
- /**
142
- * Every distinct model name seen for the project.
143
- */
144
- export const getModels = <ThrowOnError extends boolean = false>(options?: Options<GetModelsData, ThrowOnError>): RequestResult<GetModelsResponses, GetModelsErrors, ThrowOnError> => (options?.client ?? client).get<GetModelsResponses, GetModelsErrors, ThrowOnError>({
145
- security: [{ scheme: 'bearer', type: 'http' }],
146
- url: '/models/',
147
- ...options
148
- });
149
-
150
- /**
151
- * Every distinct provider name seen for the project.
152
- */
153
- export const getProviders = <ThrowOnError extends boolean = false>(options?: Options<GetProvidersData, ThrowOnError>): RequestResult<GetProvidersResponses, GetProvidersErrors, ThrowOnError> => (options?.client ?? client).get<GetProvidersResponses, GetProvidersErrors, ThrowOnError>({
154
- security: [{ scheme: 'bearer', type: 'http' }],
155
- url: '/providers/',
156
- ...options
157
- });
158
-
159
- /**
160
- * Every known customer of the project; pass include_customer_tags=false to omit each customer's tags.
161
- */
162
- export const getCustomers = <ThrowOnError extends boolean = false>(options?: Options<GetCustomersData, ThrowOnError>): RequestResult<GetCustomersResponses, GetCustomersErrors, ThrowOnError> => (options?.client ?? client).get<GetCustomersResponses, GetCustomersErrors, ThrowOnError>({
163
- security: [{ scheme: 'bearer', type: 'http' }],
164
- url: '/customers/',
165
- ...options
166
- });
167
-
168
- /**
169
- * Every distinct feature tag seen for the project.
170
- */
171
- export const getFeatures = <ThrowOnError extends boolean = false>(options?: Options<GetFeaturesData, ThrowOnError>): RequestResult<GetFeaturesResponses, GetFeaturesErrors, ThrowOnError> => (options?.client ?? client).get<GetFeaturesResponses, GetFeaturesErrors, ThrowOnError>({
172
- security: [{ scheme: 'bearer', type: 'http' }],
173
- url: '/features/',
174
- ...options
175
- });
package/src/api/index.ts DELETED
@@ -1,45 +0,0 @@
1
- /**
2
- * Entry point for the Weflayr public API (revenue, key metrics, customer tags).
3
- *
4
- * The endpoint functions and types under ./generated are produced from the
5
- * platform's OpenAPI spec (`make generate-sdk-api-clients`) and speak the
6
- * wire's snake_case, same as the Python SDK. generated/facade.gen.ts (also
7
- * produced by that command, via scripts/generate_facade.mjs) wraps every
8
- * endpoint so JS callers use camelCase instead - see ./caseConversion and
9
- * ./makeEndpoint. This module is the handwritten front door that configures
10
- * their client:
11
- *
12
- * const weflayr = require('weflayr');
13
- *
14
- * const apiClient = weflayr.client({ apiKey: 'wf-...' });
15
- * const { data } = await weflayr.api.getRevenue({ client: apiClient, throwOnError: true });
16
- */
17
-
18
- import { type Client, createClient, createConfig } from './generated/client';
19
-
20
- export const DEFAULT_BASE_URL = 'https://app.weflayr.com/api';
21
-
22
- export interface ApiClientOptions {
23
- /** A project API key, created in the Weflayr dashboard. Defaults to the `WEFLAYR_API_KEY` environment variable. */
24
- apiKey?: string;
25
- /** Where the API lives — override for local or self-hosted deployments. */
26
- baseUrl?: string;
27
- }
28
-
29
- /** A client for the public API, authenticated with a project API key. */
30
- export function client(options: ApiClientOptions = {}): Client {
31
- const apiKey = options.apiKey || process.env.WEFLAYR_API_KEY;
32
- if (!apiKey) {
33
- throw new Error(
34
- 'weflayr.client: `apiKey` is required (pass it explicitly or set WEFLAYR_API_KEY)'
35
- );
36
- }
37
- return createClient(
38
- createConfig({
39
- baseUrl: options.baseUrl ?? DEFAULT_BASE_URL,
40
- auth: () => apiKey,
41
- })
42
- );
43
- }
44
-
45
- export * from './generated/facade.gen';
@@ -1,54 +0,0 @@
1
- /**
2
- * Wraps a generated public-API endpoint function so its `body`/`path`/`query`
3
- * are converted from camelCase to the wire's snake_case on the way out, and
4
- * its `data`/`error` are converted back to camelCase on the way in.
5
- *
6
- * Instantiated once per endpoint in generated/facade.gen.ts, produced by
7
- * scripts/generate_facade.mjs - see that script for how the per-endpoint
8
- * type arguments are derived.
9
- */
10
-
11
- import { toCamelCaseDeep, toSnakeCaseDeep } from './caseConversion';
12
- import type { Client } from './generated/client';
13
-
14
- export interface ClientOption {
15
- client: Client;
16
- throwOnError?: boolean;
17
- headers?: HeadersInit;
18
- }
19
-
20
- export interface CallResult<TData, TError> {
21
- data?: TData;
22
- error?: TError;
23
- request?: Request;
24
- response?: Response;
25
- }
26
-
27
- type WireResult = { data?: unknown; error?: unknown };
28
-
29
- export function makeEndpoint<TParams extends object, TData, TError>(
30
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
- wireFn: (options: any) => Promise<WireResult>
32
- ): (options: ClientOption & TParams) => Promise<CallResult<TData, TError>> {
33
- return async (options) => {
34
- const wireOptions = { ...options } as Record<string, unknown>;
35
- for (const key of ['body', 'path', 'query']) {
36
- if (wireOptions[key] !== undefined) {
37
- wireOptions[key] = toSnakeCaseDeep(wireOptions[key]);
38
- }
39
- }
40
-
41
- let result: WireResult;
42
- try {
43
- result = await wireFn(wireOptions);
44
- } catch (error) {
45
- throw toCamelCaseDeep(error as object);
46
- }
47
-
48
- return {
49
- ...result,
50
- data: result.data !== undefined ? (toCamelCaseDeep(result.data) as TData) : undefined,
51
- error: result.error !== undefined ? (toCamelCaseDeep(result.error) as TError) : undefined,
52
- };
53
- };
54
- }