@examplary/sdk 0.0.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 (36) hide show
  1. package/README.md +25 -0
  2. package/dist/generated/client/client/client.gen.d.ts +2 -0
  3. package/dist/generated/client/client/client.gen.js +204 -0
  4. package/dist/generated/client/client/index.d.ts +8 -0
  5. package/dist/generated/client/client/index.js +16 -0
  6. package/dist/generated/client/client/types.gen.d.ts +88 -0
  7. package/dist/generated/client/client/types.gen.js +3 -0
  8. package/dist/generated/client/client/utils.gen.d.ts +14 -0
  9. package/dist/generated/client/client/utils.gen.js +326 -0
  10. package/dist/generated/client/client.gen.d.ts +12 -0
  11. package/dist/generated/client/client.gen.js +6 -0
  12. package/dist/generated/client/core/auth.gen.d.ts +18 -0
  13. package/dist/generated/client/core/auth.gen.js +69 -0
  14. package/dist/generated/client/core/bodySerializer.gen.d.ts +25 -0
  15. package/dist/generated/client/core/bodySerializer.gen.js +80 -0
  16. package/dist/generated/client/core/params.gen.d.ts +43 -0
  17. package/dist/generated/client/core/params.gen.js +191 -0
  18. package/dist/generated/client/core/pathSerializer.gen.d.ts +33 -0
  19. package/dist/generated/client/core/pathSerializer.gen.js +147 -0
  20. package/dist/generated/client/core/queryKeySerializer.gen.d.ts +18 -0
  21. package/dist/generated/client/core/queryKeySerializer.gen.js +140 -0
  22. package/dist/generated/client/core/serverSentEvents.gen.d.ts +71 -0
  23. package/dist/generated/client/core/serverSentEvents.gen.js +282 -0
  24. package/dist/generated/client/core/types.gen.d.ts +78 -0
  25. package/dist/generated/client/core/types.gen.js +3 -0
  26. package/dist/generated/client/core/utils.gen.d.ts +19 -0
  27. package/dist/generated/client/core/utils.gen.js +117 -0
  28. package/dist/generated/client/index.d.ts +2 -0
  29. package/dist/generated/client/index.js +31 -0
  30. package/dist/generated/client/sdk.gen.d.ts +685 -0
  31. package/dist/generated/client/sdk.gen.js +1295 -0
  32. package/dist/generated/client/types.gen.d.ts +1777 -0
  33. package/dist/generated/client/types.gen.js +3 -0
  34. package/dist/src/index.d.ts +14 -0
  35. package/dist/src/index.js +81 -0
  36. package/package.json +37 -0
package/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # Examplary API SDK for TypeScript
2
+
3
+ This package provides a TypeScript client for the Examplary API, allowing you to interact with the API in a type-safe manner. It includes methods for all API endpoints, as well as type definitions for request and response data.
4
+
5
+ ## Installation
6
+
7
+ You can install the SDK using npm or yarn:
8
+
9
+ ```bash
10
+ yarn add @examplary/sdk
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ To use the SDK, you need to create an instance of the `ExamplaryClient` class and provide your API key:
16
+
17
+ ```typescript
18
+ import { createExamplaryClient } from "@examplary/sdk";
19
+
20
+ const client = createExamplaryClient({
21
+ apiKey: "my-api-key-or-oauth-access-token",
22
+ });
23
+
24
+ const { data } = await client.questionTypes.listPublic();
25
+ ```
@@ -0,0 +1,2 @@
1
+ import type { Client, Config } from './types.gen';
2
+ export declare const createClient: (config?: Config) => Client;
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ // This file is auto-generated by @hey-api/openapi-ts
3
+ var __assign = (this && this.__assign) || function () {
4
+ __assign = Object.assign || function(t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
+ t[p] = s[p];
9
+ }
10
+ return t;
11
+ };
12
+ return __assign.apply(this, arguments);
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ var __generator = (this && this.__generator) || function (thisArg, body) {
24
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
25
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
26
+ function verb(n) { return function (v) { return step([n, v]); }; }
27
+ function step(op) {
28
+ if (f) throw new TypeError("Generator is already executing.");
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
31
+ if (y = 0, t) op = [op[0] & 2, t.value];
32
+ switch (op[0]) {
33
+ case 0: case 1: t = op; break;
34
+ case 4: _.label++; return { value: op[1], done: false };
35
+ case 5: _.label++; y = op[1]; op = [0]; continue;
36
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
37
+ default:
38
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
39
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
40
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
41
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
42
+ if (t[2]) _.ops.pop();
43
+ _.trys.pop(); continue;
44
+ }
45
+ op = body.call(thisArg, _);
46
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
47
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
48
+ }
49
+ };
50
+ var __rest = (this && this.__rest) || function (s, e) {
51
+ var t = {};
52
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
53
+ t[p] = s[p];
54
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
55
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
56
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
57
+ t[p[i]] = s[p[i]];
58
+ }
59
+ return t;
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ exports.createClient = void 0;
63
+ var axios_1 = require("axios");
64
+ var serverSentEvents_gen_1 = require("../core/serverSentEvents.gen");
65
+ var utils_gen_1 = require("../core/utils.gen");
66
+ var utils_gen_2 = require("./utils.gen");
67
+ var createClient = function (config) {
68
+ if (config === void 0) { config = {}; }
69
+ var _config = (0, utils_gen_2.mergeConfigs)((0, utils_gen_2.createConfig)(), config);
70
+ var instance;
71
+ if (_config.axios && !('Axios' in _config.axios)) {
72
+ instance = _config.axios;
73
+ }
74
+ else {
75
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
76
+ var auth = _config.auth, configWithoutAuth = __rest(_config, ["auth"]);
77
+ instance = axios_1.default.create(configWithoutAuth);
78
+ }
79
+ var getConfig = function () { return (__assign({}, _config)); };
80
+ var setConfig = function (config) {
81
+ _config = (0, utils_gen_2.mergeConfigs)(_config, config);
82
+ instance.defaults = __assign(__assign(__assign({}, instance.defaults), _config), {
83
+ // @ts-ignore
84
+ headers: (0, utils_gen_2.mergeHeaders)(instance.defaults.headers, _config.headers) });
85
+ return getConfig();
86
+ };
87
+ var beforeRequest = function (options) { return __awaiter(void 0, void 0, void 0, function () {
88
+ var opts, url;
89
+ var _a, _b;
90
+ return __generator(this, function (_c) {
91
+ switch (_c.label) {
92
+ case 0:
93
+ opts = __assign(__assign(__assign({}, _config), options), { axios: (_b = (_a = options.axios) !== null && _a !== void 0 ? _a : _config.axios) !== null && _b !== void 0 ? _b : instance, headers: (0, utils_gen_2.mergeHeaders)(_config.headers, options.headers) });
94
+ if (!opts.security) return [3 /*break*/, 2];
95
+ return [4 /*yield*/, (0, utils_gen_2.setAuthParams)(__assign(__assign({}, opts), { security: opts.security }))];
96
+ case 1:
97
+ _c.sent();
98
+ _c.label = 2;
99
+ case 2:
100
+ if (!opts.requestValidator) return [3 /*break*/, 4];
101
+ return [4 /*yield*/, opts.requestValidator(opts)];
102
+ case 3:
103
+ _c.sent();
104
+ _c.label = 4;
105
+ case 4:
106
+ if (opts.body !== undefined && opts.bodySerializer) {
107
+ opts.body = opts.bodySerializer(opts.body);
108
+ }
109
+ url = (0, utils_gen_2.buildUrl)(opts);
110
+ return [2 /*return*/, { opts: opts, url: url }];
111
+ }
112
+ });
113
+ }); };
114
+ // @ts-ignore
115
+ var request = function (options) { return __awaiter(void 0, void 0, void 0, function () {
116
+ var _a, opts, url, _axios, auth, optsWithoutAuth, response, data, error_1, e;
117
+ var _b, _c;
118
+ return __generator(this, function (_d) {
119
+ switch (_d.label) {
120
+ case 0: return [4 /*yield*/, beforeRequest(options)];
121
+ case 1:
122
+ _a = _d.sent(), opts = _a.opts, url = _a.url;
123
+ _d.label = 2;
124
+ case 2:
125
+ _d.trys.push([2, 8, , 9]);
126
+ _axios = opts.axios;
127
+ auth = opts.auth, optsWithoutAuth = __rest(opts, ["auth"]);
128
+ return [4 /*yield*/, _axios(__assign(__assign({}, optsWithoutAuth), { baseURL: '', data: (0, utils_gen_1.getValidRequestBody)(opts), headers: opts.headers,
129
+ // let `paramsSerializer()` handle query params if it exists
130
+ params: opts.paramsSerializer ? opts.query : undefined, url: url }))];
131
+ case 3:
132
+ response = _d.sent();
133
+ data = response.data;
134
+ if (!(opts.responseType === 'json')) return [3 /*break*/, 7];
135
+ if (!opts.responseValidator) return [3 /*break*/, 5];
136
+ return [4 /*yield*/, opts.responseValidator(data)];
137
+ case 4:
138
+ _d.sent();
139
+ _d.label = 5;
140
+ case 5:
141
+ if (!opts.responseTransformer) return [3 /*break*/, 7];
142
+ return [4 /*yield*/, opts.responseTransformer(data)];
143
+ case 6:
144
+ data = _d.sent();
145
+ _d.label = 7;
146
+ case 7: return [2 /*return*/, __assign(__assign({}, response), { data: data !== null && data !== void 0 ? data : {} })];
147
+ case 8:
148
+ error_1 = _d.sent();
149
+ e = error_1;
150
+ if (opts.throwOnError) {
151
+ throw e;
152
+ }
153
+ // @ts-ignore
154
+ e.error = (_c = (_b = e.response) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : {};
155
+ return [2 /*return*/, e];
156
+ case 9: return [2 /*return*/];
157
+ }
158
+ });
159
+ }); };
160
+ var makeMethodFn = function (method) { return function (options) {
161
+ return request(__assign(__assign({}, options), { method: method }));
162
+ }; };
163
+ var makeSseFn = function (method) { return function (options) { return __awaiter(void 0, void 0, void 0, function () {
164
+ var _a, opts, url;
165
+ return __generator(this, function (_b) {
166
+ switch (_b.label) {
167
+ case 0: return [4 /*yield*/, beforeRequest(options)];
168
+ case 1:
169
+ _a = _b.sent(), opts = _a.opts, url = _a.url;
170
+ return [2 /*return*/, (0, serverSentEvents_gen_1.createSseClient)(__assign(__assign({}, opts), { body: opts.body, headers: opts.headers, method: method, serializedBody: (0, utils_gen_1.getValidRequestBody)(opts),
171
+ // @ts-ignore
172
+ signal: opts.signal, url: url }))];
173
+ }
174
+ });
175
+ }); }; };
176
+ return {
177
+ buildUrl: utils_gen_2.buildUrl,
178
+ connect: makeMethodFn('CONNECT'),
179
+ delete: makeMethodFn('DELETE'),
180
+ get: makeMethodFn('GET'),
181
+ getConfig: getConfig,
182
+ head: makeMethodFn('HEAD'),
183
+ instance: instance,
184
+ options: makeMethodFn('OPTIONS'),
185
+ patch: makeMethodFn('PATCH'),
186
+ post: makeMethodFn('POST'),
187
+ put: makeMethodFn('PUT'),
188
+ request: request,
189
+ setConfig: setConfig,
190
+ sse: {
191
+ connect: makeSseFn('CONNECT'),
192
+ delete: makeSseFn('DELETE'),
193
+ get: makeSseFn('GET'),
194
+ head: makeSseFn('HEAD'),
195
+ options: makeSseFn('OPTIONS'),
196
+ patch: makeSseFn('PATCH'),
197
+ post: makeSseFn('POST'),
198
+ put: makeSseFn('PUT'),
199
+ trace: makeSseFn('TRACE'),
200
+ },
201
+ trace: makeMethodFn('TRACE'),
202
+ };
203
+ };
204
+ exports.createClient = createClient;
@@ -0,0 +1,8 @@
1
+ export type { Auth } from '../core/auth.gen';
2
+ export type { QuerySerializerOptions } from '../core/bodySerializer.gen';
3
+ export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer, } from '../core/bodySerializer.gen';
4
+ export { buildClientParams } from '../core/params.gen';
5
+ export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen';
6
+ export { createClient } from './client.gen';
7
+ export type { Client, ClientOptions, Config, CreateClientConfig, Options, RequestOptions, RequestResult, TDataShape, } from './types.gen';
8
+ export { createConfig } from './utils.gen';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ // This file is auto-generated by @hey-api/openapi-ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createConfig = exports.createClient = exports.serializeQueryKeyValue = exports.buildClientParams = exports.urlSearchParamsBodySerializer = exports.jsonBodySerializer = exports.formDataBodySerializer = void 0;
5
+ var bodySerializer_gen_1 = require("../core/bodySerializer.gen");
6
+ Object.defineProperty(exports, "formDataBodySerializer", { enumerable: true, get: function () { return bodySerializer_gen_1.formDataBodySerializer; } });
7
+ Object.defineProperty(exports, "jsonBodySerializer", { enumerable: true, get: function () { return bodySerializer_gen_1.jsonBodySerializer; } });
8
+ Object.defineProperty(exports, "urlSearchParamsBodySerializer", { enumerable: true, get: function () { return bodySerializer_gen_1.urlSearchParamsBodySerializer; } });
9
+ var params_gen_1 = require("../core/params.gen");
10
+ Object.defineProperty(exports, "buildClientParams", { enumerable: true, get: function () { return params_gen_1.buildClientParams; } });
11
+ var queryKeySerializer_gen_1 = require("../core/queryKeySerializer.gen");
12
+ Object.defineProperty(exports, "serializeQueryKeyValue", { enumerable: true, get: function () { return queryKeySerializer_gen_1.serializeQueryKeyValue; } });
13
+ var client_gen_1 = require("./client.gen");
14
+ Object.defineProperty(exports, "createClient", { enumerable: true, get: function () { return client_gen_1.createClient; } });
15
+ var utils_gen_1 = require("./utils.gen");
16
+ Object.defineProperty(exports, "createConfig", { enumerable: true, get: function () { return utils_gen_1.createConfig; } });
@@ -0,0 +1,88 @@
1
+ import type { AxiosError, AxiosInstance, AxiosRequestHeaders, AxiosResponse, AxiosStatic, CreateAxiosDefaults } from 'axios';
2
+ import type { Auth } from '../core/auth.gen';
3
+ import type { ServerSentEventsOptions, ServerSentEventsResult } from '../core/serverSentEvents.gen';
4
+ import type { Client as CoreClient, Config as CoreConfig } from '../core/types.gen';
5
+ export interface Config<T extends ClientOptions = ClientOptions> extends Omit<CreateAxiosDefaults, 'auth' | 'baseURL' | 'headers' | 'method'>, CoreConfig {
6
+ /**
7
+ * Axios implementation. You can use this option to provide either an
8
+ * `AxiosStatic` or an `AxiosInstance`.
9
+ *
10
+ * @default axios
11
+ */
12
+ axios?: AxiosStatic | AxiosInstance;
13
+ /**
14
+ * Base URL for all requests made by this client.
15
+ */
16
+ baseURL?: T['baseURL'];
17
+ /**
18
+ * An object containing any HTTP headers that you want to pre-populate your
19
+ * `Headers` object with.
20
+ *
21
+ * {@link https://developer.mozilla.org/docs/Web/API/Headers/Headers#init See more}
22
+ */
23
+ headers?: AxiosRequestHeaders | Record<string, string | number | boolean | (string | number | boolean)[] | null | undefined | unknown>;
24
+ /**
25
+ * Throw an error instead of returning it in the response?
26
+ *
27
+ * @default false
28
+ */
29
+ throwOnError?: T['throwOnError'];
30
+ }
31
+ export interface RequestOptions<TData = unknown, ThrowOnError extends boolean = boolean, Url extends string = string> extends Config<{
32
+ throwOnError: ThrowOnError;
33
+ }>, Pick<ServerSentEventsOptions<TData>, 'onSseError' | 'onSseEvent' | 'sseDefaultRetryDelay' | 'sseMaxRetryAttempts' | 'sseMaxRetryDelay'> {
34
+ /**
35
+ * Any body that you want to add to your request.
36
+ *
37
+ * {@link https://developer.mozilla.org/docs/Web/API/fetch#body}
38
+ */
39
+ body?: unknown;
40
+ path?: Record<string, unknown>;
41
+ query?: Record<string, unknown>;
42
+ /**
43
+ * Security mechanism(s) to use for the request.
44
+ */
45
+ security?: ReadonlyArray<Auth>;
46
+ url: Url;
47
+ }
48
+ export interface ClientOptions {
49
+ baseURL?: string;
50
+ throwOnError?: boolean;
51
+ }
52
+ export type RequestResult<TData = unknown, TError = unknown, ThrowOnError extends boolean = boolean> = ThrowOnError extends true ? Promise<AxiosResponse<TData extends Record<string, unknown> ? TData[keyof TData] : TData>> : Promise<(AxiosResponse<TData extends Record<string, unknown> ? TData[keyof TData] : TData> & {
53
+ error: undefined;
54
+ }) | (AxiosError<TError extends Record<string, unknown> ? TError[keyof TError] : TError> & {
55
+ data: undefined;
56
+ error: TError extends Record<string, unknown> ? TError[keyof TError] : TError;
57
+ })>;
58
+ type MethodFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false>(options: Omit<RequestOptions<TData, ThrowOnError>, 'method'>) => RequestResult<TData, TError, ThrowOnError>;
59
+ type SseFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false>(options: Omit<RequestOptions<TData, ThrowOnError>, 'method'>) => Promise<ServerSentEventsResult<TData, TError>>;
60
+ type RequestFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false>(options: Omit<RequestOptions<TData, ThrowOnError>, 'method'> & Pick<Required<RequestOptions<TData, ThrowOnError>>, 'method'>) => RequestResult<TData, TError, ThrowOnError>;
61
+ type BuildUrlFn = <TData extends {
62
+ body?: unknown;
63
+ path?: Record<string, unknown>;
64
+ query?: Record<string, unknown>;
65
+ url: string;
66
+ }>(options: TData & Options<TData>) => string;
67
+ export type Client = CoreClient<RequestFn, Config, MethodFn, BuildUrlFn, SseFn> & {
68
+ instance: AxiosInstance;
69
+ };
70
+ /**
71
+ * The `createClientConfig()` function will be called on client initialization
72
+ * and the returned object will become the client's initial configuration.
73
+ *
74
+ * You may want to initialize your client this way instead of calling
75
+ * `setConfig()`. This is useful for example if you're using Next.js
76
+ * to ensure your client always has the correct values.
77
+ */
78
+ export type CreateClientConfig<T extends ClientOptions = ClientOptions> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;
79
+ export interface TDataShape {
80
+ body?: unknown;
81
+ headers?: unknown;
82
+ path?: unknown;
83
+ query?: unknown;
84
+ url: string;
85
+ }
86
+ type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>;
87
+ export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = OmitKeys<RequestOptions<TResponse, ThrowOnError>, 'body' | 'path' | 'query' | 'url'> & ([TData] extends [never] ? unknown : Omit<TData, 'url'>);
88
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file is auto-generated by @hey-api/openapi-ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,14 @@
1
+ import type { QuerySerializerOptions } from '../core/bodySerializer.gen';
2
+ import type { Client, ClientOptions, Config, RequestOptions } from './types.gen';
3
+ export declare const createQuerySerializer: <T = unknown>({ parameters, ...args }?: QuerySerializerOptions) => (queryParams: T) => string;
4
+ export declare const setAuthParams: ({ security, ...options }: Pick<Required<RequestOptions>, "security"> & Pick<RequestOptions, "auth" | "query"> & {
5
+ headers: Record<any, unknown>;
6
+ }) => Promise<void>;
7
+ export declare const buildUrl: Client['buildUrl'];
8
+ export declare const mergeConfigs: (a: Config, b: Config) => Config;
9
+ /**
10
+ * Special Axios headers keywords allowing to set headers by request method.
11
+ */
12
+ export declare const axiosHeadersKeywords: readonly ["common", "delete", "get", "head", "patch", "post", "put"];
13
+ export declare const mergeHeaders: (...headers: Array<Required<Config>["headers"] | undefined>) => Record<any, unknown>;
14
+ export declare const createConfig: <T extends ClientOptions = ClientOptions>(override?: Config<Omit<ClientOptions, keyof T> & T>) => Config<Omit<ClientOptions, keyof T> & T>;