weflayr 0.24.0 → 0.26.0

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 (234) hide show
  1. package/README.md +2 -2
  2. package/dist/{api → src/api}/generated/facade.gen.d.ts +86 -12
  3. package/dist/{api → src/api}/generated/facade.gen.js +4 -2
  4. package/dist/src/api/generated/index.d.ts +2 -0
  5. package/dist/{api → src/api}/generated/index.js +3 -1
  6. package/dist/{api → src/api}/generated/sdk.gen.d.ts +11 -3
  7. package/dist/{api → src/api}/generated/sdk.gen.js +34 -4
  8. package/{src/api/generated/types.gen.ts → dist/src/api/generated/types.gen.d.ts} +436 -153
  9. package/dist/{api → src/api}/makeEndpoint.js +1 -3
  10. package/dist/src/auto-instrument.d.ts +42 -0
  11. package/dist/src/auto-instrument.js +156 -0
  12. package/dist/src/index.d.ts +9 -0
  13. package/dist/src/index.js +49 -0
  14. package/dist/src/instrumentation/anthropic/get_cache_and_reasoning_telemetry.d.ts +20 -0
  15. package/dist/src/instrumentation/anthropic/get_cache_and_reasoning_telemetry.js +114 -0
  16. package/dist/src/instrumentation/anthropic/get_cache_config_telemetry.d.ts +28 -0
  17. package/dist/src/instrumentation/anthropic/get_cache_config_telemetry.js +92 -0
  18. package/dist/src/instrumentation/anthropic/get_streaming_accumulation_telemetry.d.ts +25 -0
  19. package/dist/src/instrumentation/anthropic/get_streaming_accumulation_telemetry.js +141 -0
  20. package/dist/src/instrumentation/anthropic/get_structured_output_schema_telemetry.d.ts +9 -0
  21. package/dist/src/instrumentation/anthropic/get_structured_output_schema_telemetry.js +17 -0
  22. package/dist/src/instrumentation/anthropic/get_tool_definitions_telemetry.d.ts +15 -0
  23. package/dist/src/instrumentation/anthropic/get_tool_definitions_telemetry.js +50 -0
  24. package/dist/src/instrumentation/anthropic/set_telemetry_attributes.d.ts +15 -0
  25. package/dist/src/instrumentation/anthropic/set_telemetry_attributes.js +39 -0
  26. package/dist/src/instrumentation/bedrock/get_cache_config_telemetry.d.ts +22 -0
  27. package/dist/src/instrumentation/bedrock/get_cache_config_telemetry.js +97 -0
  28. package/dist/src/instrumentation/bedrock/get_cache_telemetry.d.ts +22 -0
  29. package/dist/src/instrumentation/bedrock/get_cache_telemetry.js +102 -0
  30. package/dist/src/instrumentation/bedrock/get_input_message_content_telemetry.d.ts +15 -0
  31. package/dist/src/instrumentation/bedrock/get_input_message_content_telemetry.js +91 -0
  32. package/dist/src/instrumentation/bedrock/get_model_id_telemetry.d.ts +21 -0
  33. package/dist/src/instrumentation/bedrock/get_model_id_telemetry.js +54 -0
  34. package/dist/src/instrumentation/bedrock/get_reasoning_output_telemetry.d.ts +19 -0
  35. package/dist/src/instrumentation/bedrock/get_reasoning_output_telemetry.js +81 -0
  36. package/dist/src/instrumentation/bedrock/get_streaming_output_message_telemetry.d.ts +27 -0
  37. package/dist/src/instrumentation/bedrock/get_streaming_output_message_telemetry.js +126 -0
  38. package/dist/src/instrumentation/bedrock/get_tool_call_output_telemetry.d.ts +17 -0
  39. package/dist/src/instrumentation/bedrock/get_tool_call_output_telemetry.js +85 -0
  40. package/dist/src/instrumentation/bedrock/get_tool_definitions_telemetry.d.ts +15 -0
  41. package/dist/src/instrumentation/bedrock/get_tool_definitions_telemetry.js +68 -0
  42. package/dist/src/instrumentation/bedrock/set_telemetry_attributes.d.ts +18 -0
  43. package/dist/src/instrumentation/bedrock/set_telemetry_attributes.js +47 -0
  44. package/dist/src/instrumentation/cohere/get_chat_telemetry.d.ts +23 -0
  45. package/dist/src/instrumentation/cohere/get_chat_telemetry.js +77 -0
  46. package/dist/src/instrumentation/cohere/get_embeddings_telemetry.d.ts +18 -0
  47. package/dist/src/instrumentation/cohere/get_embeddings_telemetry.js +88 -0
  48. package/dist/src/instrumentation/cohere/get_structured_output_schema_telemetry.d.ts +12 -0
  49. package/dist/src/instrumentation/cohere/get_structured_output_schema_telemetry.js +18 -0
  50. package/dist/src/instrumentation/cohere/get_tool_call_output_telemetry.d.ts +31 -0
  51. package/dist/src/instrumentation/cohere/get_tool_call_output_telemetry.js +106 -0
  52. package/dist/src/instrumentation/cohere/get_tool_definitions_telemetry.d.ts +27 -0
  53. package/dist/src/instrumentation/cohere/get_tool_definitions_telemetry.js +75 -0
  54. package/dist/src/instrumentation/cohere/set_telemetry_attributes.d.ts +17 -0
  55. package/dist/src/instrumentation/cohere/set_telemetry_attributes.js +44 -0
  56. package/dist/src/instrumentation/elevenlabs/full_instrumentation.d.ts +28 -0
  57. package/dist/src/instrumentation/elevenlabs/full_instrumentation.js +209 -0
  58. package/dist/src/instrumentation/google/get_audio_telemetry.d.ts +9 -0
  59. package/dist/src/instrumentation/google/get_audio_telemetry.js +28 -0
  60. package/dist/src/instrumentation/google/get_cache_operations_telemetry.d.ts +23 -0
  61. package/dist/src/instrumentation/google/get_cache_operations_telemetry.js +154 -0
  62. package/dist/src/instrumentation/google/get_cache_telemetry.d.ts +16 -0
  63. package/{src → dist/src}/instrumentation/google/get_cache_telemetry.js +18 -19
  64. package/dist/src/instrumentation/google/get_embeddings_telemetry.d.ts +12 -0
  65. package/dist/src/instrumentation/google/get_embeddings_telemetry.js +85 -0
  66. package/dist/src/instrumentation/google/get_provider_name.d.ts +11 -0
  67. package/{src → dist/src}/instrumentation/google/get_provider_name.js +11 -12
  68. package/{src/instrumentation/google/get_reasoning_telemetry.js → dist/src/instrumentation/google/get_reasoning_telemetry.d.ts} +1 -11
  69. package/dist/src/instrumentation/google/get_reasoning_telemetry.js +21 -0
  70. package/dist/src/instrumentation/google/get_structured_output_schema_telemetry.d.ts +12 -0
  71. package/dist/src/instrumentation/google/get_structured_output_schema_telemetry.js +19 -0
  72. package/dist/src/instrumentation/google/set_telemetry_attributes.d.ts +18 -0
  73. package/dist/src/instrumentation/google/set_telemetry_attributes.js +98 -0
  74. package/dist/src/instrumentation/openai/get_audio_telemetry.d.ts +25 -0
  75. package/dist/src/instrumentation/openai/get_audio_telemetry.js +123 -0
  76. package/dist/src/instrumentation/openai/get_bedrock_mantle_telemetry.d.ts +35 -0
  77. package/dist/src/instrumentation/openai/get_bedrock_mantle_telemetry.js +148 -0
  78. package/dist/src/instrumentation/openai/get_cache_and_reasoning_telemetry.d.ts +27 -0
  79. package/dist/src/instrumentation/openai/get_cache_and_reasoning_telemetry.js +72 -0
  80. package/dist/src/instrumentation/openai/get_cache_config_telemetry.d.ts +28 -0
  81. package/dist/src/instrumentation/openai/get_cache_config_telemetry.js +91 -0
  82. package/dist/src/instrumentation/openai/get_embeddings_telemetry.d.ts +18 -0
  83. package/dist/src/instrumentation/openai/get_embeddings_telemetry.js +86 -0
  84. package/dist/src/instrumentation/openai/get_streaming_usage.d.ts +21 -0
  85. package/dist/src/instrumentation/openai/get_streaming_usage.js +74 -0
  86. package/dist/src/instrumentation/openai/get_structured_output_schema_telemetry.d.ts +12 -0
  87. package/dist/src/instrumentation/openai/get_structured_output_schema_telemetry.js +20 -0
  88. package/dist/src/instrumentation/openai/set_telemetry_attributes.d.ts +17 -0
  89. package/dist/src/instrumentation/openai/set_telemetry_attributes.js +47 -0
  90. package/dist/src/instrumentation/shared/get_structured_output_schema_telemetry.d.ts +35 -0
  91. package/dist/src/instrumentation/shared/get_structured_output_schema_telemetry.js +76 -0
  92. package/dist/src/instrumentation/vercel/full_instrumentation.d.ts +3 -0
  93. package/dist/src/instrumentation/vercel/full_instrumentation.js +54 -0
  94. package/dist/src/instrumentation/vercel/get_cache_creation_telemetry.d.ts +22 -0
  95. package/dist/src/instrumentation/vercel/get_cache_creation_telemetry.js +66 -0
  96. package/dist/src/instrumentation/vercel/get_structured_output_schema_telemetry.d.ts +24 -0
  97. package/dist/src/instrumentation/vercel/get_structured_output_schema_telemetry.js +84 -0
  98. package/dist/src/logger.d.ts +1 -0
  99. package/dist/src/logger.js +6 -0
  100. package/dist/src/otel/exporter.d.ts +19 -0
  101. package/dist/src/otel/exporter.js +94 -0
  102. package/dist/src/otel/propagation.d.ts +46 -0
  103. package/dist/src/otel/propagation.js +110 -0
  104. package/dist/src/otel/span-filter.d.ts +3 -0
  105. package/dist/src/otel/span-filter.js +61 -0
  106. package/dist/src/otel/span-processor.d.ts +55 -0
  107. package/dist/src/otel/span-processor.js +169 -0
  108. package/dist/src/otel/vercel-ai-sdk-span-filter.d.ts +12 -0
  109. package/dist/src/otel/vercel-ai-sdk-span-filter.js +88 -0
  110. package/dist/src/setup.d.ts +50 -0
  111. package/dist/src/setup.js +155 -0
  112. package/package.json +11 -5
  113. package/.prettierignore +0 -2
  114. package/.prettierrc.json +0 -7
  115. package/LICENSE-MIT +0 -21
  116. package/NOTICE +0 -12
  117. package/dist/api/generated/index.d.ts +0 -2
  118. package/dist/api/generated/types.gen.d.ts +0 -1005
  119. package/eslint.config.mjs +0 -36
  120. package/index.d.ts +0 -170
  121. package/openapi-ts.config.mjs +0 -9
  122. package/scripts/generate_facade.mjs +0 -86
  123. package/src/api/caseConversion.ts +0 -58
  124. package/src/api/generated/client/client.gen.ts +0 -277
  125. package/src/api/generated/client/index.ts +0 -27
  126. package/src/api/generated/client/types.gen.ts +0 -218
  127. package/src/api/generated/client/utils.gen.ts +0 -316
  128. package/src/api/generated/client.gen.ts +0 -16
  129. package/src/api/generated/core/auth.gen.ts +0 -48
  130. package/src/api/generated/core/bodySerializer.gen.ts +0 -82
  131. package/src/api/generated/core/params.gen.ts +0 -178
  132. package/src/api/generated/core/pathSerializer.gen.ts +0 -171
  133. package/src/api/generated/core/queryKeySerializer.gen.ts +0 -117
  134. package/src/api/generated/core/serverSentEvents.gen.ts +0 -242
  135. package/src/api/generated/core/types.gen.ts +0 -110
  136. package/src/api/generated/core/utils.gen.ts +0 -140
  137. package/src/api/generated/facade.gen.ts +0 -104
  138. package/src/api/generated/index.ts +0 -4
  139. package/src/api/generated/sdk.gen.ts +0 -175
  140. package/src/api/index.ts +0 -45
  141. package/src/api/makeEndpoint.ts +0 -54
  142. package/src/auto-instrument.js +0 -172
  143. package/src/index.js +0 -19
  144. package/src/instrumentation/anthropic/get_cache_and_reasoning_telemetry.js +0 -118
  145. package/src/instrumentation/anthropic/get_cache_config_telemetry.js +0 -90
  146. package/src/instrumentation/anthropic/get_streaming_stop_reason_telemetry.js +0 -121
  147. package/src/instrumentation/anthropic/get_tool_definitions_telemetry.js +0 -55
  148. package/src/instrumentation/anthropic/set_telemetry_attributes.js +0 -39
  149. package/src/instrumentation/bedrock/get_cache_config_telemetry.js +0 -106
  150. package/src/instrumentation/bedrock/get_cache_telemetry.js +0 -109
  151. package/src/instrumentation/bedrock/get_input_message_content_telemetry.js +0 -94
  152. package/src/instrumentation/bedrock/get_streaming_output_message_telemetry.js +0 -87
  153. package/src/instrumentation/bedrock/set_telemetry_attributes.js +0 -40
  154. package/src/instrumentation/cohere/get_chat_telemetry.js +0 -88
  155. package/src/instrumentation/cohere/get_embeddings_telemetry.js +0 -107
  156. package/src/instrumentation/cohere/set_telemetry_attributes.js +0 -32
  157. package/src/instrumentation/elevenlabs/full_instrumentation.js +0 -236
  158. package/src/instrumentation/google/get_audio_telemetry.js +0 -30
  159. package/src/instrumentation/google/get_cache_operations_telemetry.js +0 -171
  160. package/src/instrumentation/google/get_embeddings_telemetry.js +0 -99
  161. package/src/instrumentation/google/set_telemetry_attributes.js +0 -104
  162. package/src/instrumentation/openai/get_audio_telemetry.js +0 -149
  163. package/src/instrumentation/openai/get_cache_and_reasoning_telemetry.js +0 -71
  164. package/src/instrumentation/openai/get_cache_config_telemetry.js +0 -63
  165. package/src/instrumentation/openai/get_embeddings_telemetry.js +0 -107
  166. package/src/instrumentation/openai/get_streaming_usage.js +0 -81
  167. package/src/instrumentation/openai/set_telemetry_attributes.js +0 -41
  168. package/src/instrumentation/vercel/full_instrumentation.js +0 -52
  169. package/src/instrumentation/vercel/get_cache_creation_telemetry.js +0 -70
  170. package/src/logger.js +0 -8
  171. package/src/otel/exporter.js +0 -108
  172. package/src/otel/propagation.js +0 -146
  173. package/src/otel/span-filter.js +0 -69
  174. package/src/otel/span-processor.js +0 -170
  175. package/src/otel/vercel-ai-sdk-span-filter.js +0 -79
  176. package/src/setup.js +0 -167
  177. package/tests/api/index.test.js +0 -437
  178. package/tests/index.test.js +0 -884
  179. package/tests/instrumentation/anthropic/get_cache_and_reasoning_telemetry.test.js +0 -181
  180. package/tests/instrumentation/anthropic/get_cache_config_telemetry.test.js +0 -92
  181. package/tests/instrumentation/anthropic/get_streaming_stop_reason_telemetry.test.js +0 -117
  182. package/tests/instrumentation/anthropic/get_tool_definitions_telemetry.test.js +0 -97
  183. package/tests/instrumentation/bedrock/get_cache_config_telemetry.test.js +0 -107
  184. package/tests/instrumentation/bedrock/get_cache_telemetry.test.js +0 -118
  185. package/tests/instrumentation/bedrock/get_input_message_content_telemetry.test.js +0 -89
  186. package/tests/instrumentation/bedrock/get_streaming_output_message_telemetry.test.js +0 -87
  187. package/tests/instrumentation/cohere/get_chat_telemetry.test.js +0 -148
  188. package/tests/instrumentation/cohere/get_embeddings_telemetry.test.js +0 -132
  189. package/tests/instrumentation/elevenlabs/full_instrumentation.test.js +0 -258
  190. package/tests/instrumentation/google/get_cache_operations_telemetry.test.js +0 -130
  191. package/tests/instrumentation/google/get_embeddings_telemetry.test.js +0 -128
  192. package/tests/instrumentation/google/get_reasoning_telemetry.test.js +0 -41
  193. package/tests/instrumentation/google/set_telemetry_attributes.test.js +0 -219
  194. package/tests/instrumentation/openai/get_audio_telemetry.test.js +0 -170
  195. package/tests/instrumentation/openai/get_cache_and_reasoning_telemetry.test.js +0 -83
  196. package/tests/instrumentation/openai/get_cache_config_telemetry.test.js +0 -83
  197. package/tests/instrumentation/openai/get_embeddings_telemetry.test.js +0 -145
  198. package/tests/instrumentation/openai/get_streaming_usage.test.js +0 -105
  199. package/tests/instrumentation/vercel/full_instrumentation.test.js +0 -16
  200. package/tests/instrumentation/vercel/get_cache_creation_telemetry.test.js +0 -96
  201. package/tests/otel/vercel-ai-sdk-span-filter.test.js +0 -159
  202. package/tsconfig.json +0 -18
  203. /package/dist/{api → src/api}/caseConversion.d.ts +0 -0
  204. /package/dist/{api → src/api}/caseConversion.js +0 -0
  205. /package/dist/{api → src/api}/generated/client/client.gen.d.ts +0 -0
  206. /package/dist/{api → src/api}/generated/client/client.gen.js +0 -0
  207. /package/dist/{api → src/api}/generated/client/index.d.ts +0 -0
  208. /package/dist/{api → src/api}/generated/client/index.js +0 -0
  209. /package/dist/{api → src/api}/generated/client/types.gen.d.ts +0 -0
  210. /package/dist/{api → src/api}/generated/client/types.gen.js +0 -0
  211. /package/dist/{api → src/api}/generated/client/utils.gen.d.ts +0 -0
  212. /package/dist/{api → src/api}/generated/client/utils.gen.js +0 -0
  213. /package/dist/{api → src/api}/generated/client.gen.d.ts +0 -0
  214. /package/dist/{api → src/api}/generated/client.gen.js +0 -0
  215. /package/dist/{api → src/api}/generated/core/auth.gen.d.ts +0 -0
  216. /package/dist/{api → src/api}/generated/core/auth.gen.js +0 -0
  217. /package/dist/{api → src/api}/generated/core/bodySerializer.gen.d.ts +0 -0
  218. /package/dist/{api → src/api}/generated/core/bodySerializer.gen.js +0 -0
  219. /package/dist/{api → src/api}/generated/core/params.gen.d.ts +0 -0
  220. /package/dist/{api → src/api}/generated/core/params.gen.js +0 -0
  221. /package/dist/{api → src/api}/generated/core/pathSerializer.gen.d.ts +0 -0
  222. /package/dist/{api → src/api}/generated/core/pathSerializer.gen.js +0 -0
  223. /package/dist/{api → src/api}/generated/core/queryKeySerializer.gen.d.ts +0 -0
  224. /package/dist/{api → src/api}/generated/core/queryKeySerializer.gen.js +0 -0
  225. /package/dist/{api → src/api}/generated/core/serverSentEvents.gen.d.ts +0 -0
  226. /package/dist/{api → src/api}/generated/core/serverSentEvents.gen.js +0 -0
  227. /package/dist/{api → src/api}/generated/core/types.gen.d.ts +0 -0
  228. /package/dist/{api → src/api}/generated/core/types.gen.js +0 -0
  229. /package/dist/{api → src/api}/generated/core/utils.gen.d.ts +0 -0
  230. /package/dist/{api → src/api}/generated/core/utils.gen.js +0 -0
  231. /package/dist/{api → src/api}/generated/types.gen.js +0 -0
  232. /package/dist/{api → src/api}/index.d.ts +0 -0
  233. /package/dist/{api → src/api}/index.js +0 -0
  234. /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
- }