@harnessio/react-intelligence-service-client 0.1.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 (27) hide show
  1. package/dist/fetcher/index.d.ts +17 -0
  2. package/dist/fetcher/index.js +65 -0
  3. package/dist/intelligence-service/src/index.d.ts +6 -0
  4. package/dist/intelligence-service/src/index.js +10 -0
  5. package/dist/intelligence-service/src/services/helpers.d.ts +14 -0
  6. package/dist/intelligence-service/src/services/helpers.js +1 -0
  7. package/dist/intelligence-service/src/services/hooks/useGeneratePipelineStepMutation.d.ts +21 -0
  8. package/dist/intelligence-service/src/services/hooks/useGeneratePipelineStepMutation.js +14 -0
  9. package/dist/intelligence-service/src/services/hooks/useUpdatePipelineStepMutation.d.ts +17 -0
  10. package/dist/intelligence-service/src/services/hooks/useUpdatePipelineStepMutation.js +14 -0
  11. package/dist/intelligence-service/src/services/index.d.ts +12 -0
  12. package/dist/intelligence-service/src/services/index.js +2 -0
  13. package/dist/intelligence-service/src/services/schemas/TypesGeneratePipelineStepInput.d.ts +4 -0
  14. package/dist/intelligence-service/src/services/schemas/TypesGeneratePipelineStepInput.js +4 -0
  15. package/dist/intelligence-service/src/services/schemas/TypesGeneratePipelineStepOutput.d.ts +5 -0
  16. package/dist/intelligence-service/src/services/schemas/TypesGeneratePipelineStepOutput.js +1 -0
  17. package/dist/intelligence-service/src/services/schemas/TypesPipelineData.d.ts +3 -0
  18. package/dist/intelligence-service/src/services/schemas/TypesPipelineData.js +4 -0
  19. package/dist/intelligence-service/src/services/schemas/TypesPipelineStepData.d.ts +3 -0
  20. package/dist/intelligence-service/src/services/schemas/TypesPipelineStepData.js +4 -0
  21. package/dist/intelligence-service/src/services/schemas/TypesUpdatePipelineInput.d.ts +5 -0
  22. package/dist/intelligence-service/src/services/schemas/TypesUpdatePipelineInput.js +4 -0
  23. package/dist/intelligence-service/src/services/schemas/TypesUpdatePipelineOutput.d.ts +5 -0
  24. package/dist/intelligence-service/src/services/schemas/TypesUpdatePipelineOutput.js +1 -0
  25. package/dist/intelligence-service/src/services/schemas/UsererrorError.d.ts +6 -0
  26. package/dist/intelligence-service/src/services/schemas/UsererrorError.js +4 -0
  27. package/package.json +31 -0
@@ -0,0 +1,17 @@
1
+ import type { IStringifyOptions } from 'qs';
2
+ export interface FetcherOptions<TQueryParams = never, TBody = never, THeaderParams = HeadersInit> extends Omit<RequestInit, 'body' | 'headers'> {
3
+ url: string;
4
+ queryParams?: TQueryParams extends never ? undefined : TQueryParams;
5
+ body?: TBody extends never ? undefined : TBody;
6
+ stringifyQueryParamsOptions?: IStringifyOptions;
7
+ headers?: THeaderParams;
8
+ }
9
+ export interface ClientCallbacks {
10
+ responseInterceptor?: (response: Response) => Response;
11
+ requestInterceptor?: (request: Request) => Request;
12
+ urlInterceptor?: (url: string) => string;
13
+ getRequestHeaders?: () => Record<string, any>;
14
+ }
15
+ export declare function setupClient(callbacks: ClientCallbacks): void;
16
+ export declare const updateClientHeaders: (headers: Record<string, any>) => void;
17
+ export declare function fetcher<TResponse = unknown, TQueryParams = never, TBody = never, THeaderParams = HeadersInit>(options: FetcherOptions<TQueryParams, TBody, THeaderParams>): Promise<TResponse>;
@@ -0,0 +1,65 @@
1
+ import { __awaiter, __rest } from "tslib";
2
+ import { stringify } from 'qs';
3
+ const JSON_CONTENT_TYPES = ['application/json'];
4
+ let APIClientInitialized = false;
5
+ let fetcherCallbacks;
6
+ let customHeaders = {
7
+ 'Content-Type': JSON_CONTENT_TYPES[0],
8
+ };
9
+ export function setupClient(callbacks) {
10
+ fetcherCallbacks = callbacks;
11
+ customHeaders = Object.assign(Object.assign({}, customHeaders), ((fetcherCallbacks === null || fetcherCallbacks === void 0 ? void 0 : fetcherCallbacks.getRequestHeaders) ? fetcherCallbacks === null || fetcherCallbacks === void 0 ? void 0 : fetcherCallbacks.getRequestHeaders() : {}));
12
+ APIClientInitialized = true;
13
+ }
14
+ export const updateClientHeaders = (headers) => {
15
+ customHeaders = Object.assign(Object.assign({}, customHeaders), headers);
16
+ };
17
+ export function fetcher(options) {
18
+ var _a, _b;
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ // If not initialized throw error even without making request
21
+ if (!APIClientInitialized) {
22
+ throw { reason: 'HarnessReactAPIClient has not been initialized' };
23
+ }
24
+ const { stringifyQueryParamsOptions, headers, body, url, queryParams = { account: customHeaders['Harness-Account'] } } = options, rest = __rest(options, ["stringifyQueryParamsOptions", "headers", "body", "url", "queryParams"]);
25
+ const token = customHeaders.token;
26
+ let finalUrl = url;
27
+ if (queryParams) {
28
+ finalUrl += stringify(queryParams, Object.assign(Object.assign({}, stringifyQueryParamsOptions), { addQueryPrefix: true }));
29
+ }
30
+ if (fetcherCallbacks === null || fetcherCallbacks === void 0 ? void 0 : fetcherCallbacks.urlInterceptor) {
31
+ finalUrl = (_a = fetcherCallbacks === null || fetcherCallbacks === void 0 ? void 0 : fetcherCallbacks.urlInterceptor) === null || _a === void 0 ? void 0 : _a.call(fetcherCallbacks, finalUrl);
32
+ }
33
+ let request = new Request(finalUrl, Object.assign({ headers: Object.assign(Object.assign({ Authorization: `Bearer ${token}` }, headers), customHeaders), body: body ? JSON.stringify(body) : undefined }, rest));
34
+ if (fetcherCallbacks === null || fetcherCallbacks === void 0 ? void 0 : fetcherCallbacks.requestInterceptor) {
35
+ request = fetcherCallbacks.requestInterceptor(request.clone());
36
+ }
37
+ let response = yield fetch(request);
38
+ if (fetcherCallbacks === null || fetcherCallbacks === void 0 ? void 0 : fetcherCallbacks.responseInterceptor) {
39
+ response = (_b = fetcherCallbacks === null || fetcherCallbacks === void 0 ? void 0 : fetcherCallbacks.responseInterceptor) === null || _b === void 0 ? void 0 : _b.call(fetcherCallbacks, response.clone());
40
+ }
41
+ const contentType = response.headers.get('Content-Type');
42
+ let total, pageSize, pageNumber, pageCount, pagination;
43
+ try {
44
+ total = response.headers.get('x-total-elements');
45
+ pageSize = response.headers.get('x-page-size');
46
+ pageNumber = response.headers.get('x-page-number');
47
+ pagination = total || pageSize || pageNumber;
48
+ if (pagination) {
49
+ total = Number(total);
50
+ pageSize = Number(pageSize);
51
+ pageCount = Math.ceil(total / pageSize);
52
+ pageNumber = Number(pageNumber);
53
+ }
54
+ }
55
+ catch (e) {
56
+ throw new Error('HarnessReactAPIClient: An error occurred while parsing pagination headers. ' + e);
57
+ }
58
+ const asJson = contentType && JSON_CONTENT_TYPES.some((h) => contentType.startsWith(h));
59
+ const data = yield (asJson ? response.json() : response.text());
60
+ if (response.ok) {
61
+ return Object.assign({ content: data }, (pagination ? { pagination: { total, pageCount, pageSize, pageNumber } } : {}));
62
+ }
63
+ throw data;
64
+ });
65
+ }
@@ -0,0 +1,6 @@
1
+ import { ClientCallbacks } from '../../fetcher';
2
+ export * from './services/index';
3
+ export declare class IntelligenceServiceAPIClient {
4
+ updateHeaders: (headers: Record<string, any>) => void;
5
+ constructor(callbacks: ClientCallbacks);
6
+ }
@@ -0,0 +1,10 @@
1
+ import { setupClient, updateClientHeaders } from '../../fetcher';
2
+ export * from './services/index';
3
+ export class IntelligenceServiceAPIClient {
4
+ constructor(callbacks) {
5
+ setupClient(callbacks);
6
+ this.updateHeaders = (headers) => {
7
+ updateClientHeaders(headers);
8
+ };
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ export type GetPathParamsType<T> = T extends {
2
+ pathParams: infer R;
3
+ } ? R : never;
4
+ export interface ResponseWithPagination<T> {
5
+ content: T;
6
+ pagination?: {
7
+ total?: number;
8
+ pageSize?: number;
9
+ pageCount?: number;
10
+ pageNumber?: number;
11
+ };
12
+ }
13
+ export type WithOptional<TInput, Tkeys extends keyof TInput> = Omit<TInput, Tkeys> & Partial<Pick<TInput, Tkeys>>;
14
+ export type PickPartial<TInput, Tkeys extends keyof TInput> = Pick<Partial<TInput>, Tkeys>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ import { UseMutationOptions } from '@tanstack/react-query';
2
+ import type { TypesGeneratePipelineStepOutput } from '../schemas/TypesGeneratePipelineStepOutput';
3
+ import type { UsererrorError } from '../schemas/UsererrorError';
4
+ import type { TypesGeneratePipelineStepInput } from '../schemas/TypesGeneratePipelineStepInput';
5
+ import type { ResponseWithPagination } from '../helpers';
6
+ import { FetcherOptions } from '../../../../fetcher/index.js';
7
+ export interface GeneratePipelineStepMutationQueryParams {
8
+ accountIdentifier: string;
9
+ }
10
+ export type GeneratePipelineStepRequestBody = TypesGeneratePipelineStepInput;
11
+ export type GeneratePipelineStepOkResponse = ResponseWithPagination<TypesGeneratePipelineStepOutput>;
12
+ export type GeneratePipelineStepErrorResponse = UsererrorError;
13
+ export interface GeneratePipelineStepProps extends Omit<FetcherOptions<GeneratePipelineStepMutationQueryParams, GeneratePipelineStepRequestBody>, 'url'> {
14
+ queryParams: GeneratePipelineStepMutationQueryParams;
15
+ body: GeneratePipelineStepRequestBody;
16
+ }
17
+ export declare function generatePipelineStep(props: GeneratePipelineStepProps): Promise<GeneratePipelineStepOkResponse>;
18
+ /**
19
+ * Generate Pipeline Step
20
+ */
21
+ export declare function useGeneratePipelineStepMutation(options?: Omit<UseMutationOptions<GeneratePipelineStepOkResponse, GeneratePipelineStepErrorResponse, GeneratePipelineStepProps>, 'mutationKey' | 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<GeneratePipelineStepOkResponse, UsererrorError, GeneratePipelineStepProps, unknown>;
@@ -0,0 +1,14 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ import { useMutation } from '@tanstack/react-query';
5
+ import { fetcher } from '../../../../fetcher/index.js';
6
+ export function generatePipelineStep(props) {
7
+ return fetcher(Object.assign({ url: `/pipelinestep/generate`, method: 'POST' }, props));
8
+ }
9
+ /**
10
+ * Generate Pipeline Step
11
+ */
12
+ export function useGeneratePipelineStepMutation(options) {
13
+ return useMutation((mutateProps) => generatePipelineStep(mutateProps), options);
14
+ }
@@ -0,0 +1,17 @@
1
+ import { UseMutationOptions } from '@tanstack/react-query';
2
+ import type { TypesUpdatePipelineOutput } from '../schemas/TypesUpdatePipelineOutput';
3
+ import type { UsererrorError } from '../schemas/UsererrorError';
4
+ import type { TypesUpdatePipelineInput } from '../schemas/TypesUpdatePipelineInput';
5
+ import type { ResponseWithPagination } from '../helpers';
6
+ import { FetcherOptions } from '../../../../fetcher/index.js';
7
+ export type UpdatePipelineStepRequestBody = TypesUpdatePipelineInput;
8
+ export type UpdatePipelineStepOkResponse = ResponseWithPagination<TypesUpdatePipelineOutput>;
9
+ export type UpdatePipelineStepErrorResponse = UsererrorError;
10
+ export interface UpdatePipelineStepProps extends Omit<FetcherOptions<unknown, UpdatePipelineStepRequestBody>, 'url'> {
11
+ body: UpdatePipelineStepRequestBody;
12
+ }
13
+ export declare function updatePipelineStep(props: UpdatePipelineStepProps): Promise<UpdatePipelineStepOkResponse>;
14
+ /**
15
+ * Update Pipeline Step
16
+ */
17
+ export declare function useUpdatePipelineStepMutation(options?: Omit<UseMutationOptions<UpdatePipelineStepOkResponse, UpdatePipelineStepErrorResponse, UpdatePipelineStepProps>, 'mutationKey' | 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<UpdatePipelineStepOkResponse, UsererrorError, UpdatePipelineStepProps, unknown>;
@@ -0,0 +1,14 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ import { useMutation } from '@tanstack/react-query';
5
+ import { fetcher } from '../../../../fetcher/index.js';
6
+ export function updatePipelineStep(props) {
7
+ return fetcher(Object.assign({ url: `/pipelinestep/update`, method: 'POST' }, props));
8
+ }
9
+ /**
10
+ * Update Pipeline Step
11
+ */
12
+ export function useUpdatePipelineStepMutation(options) {
13
+ return useMutation((mutateProps) => updatePipelineStep(mutateProps), options);
14
+ }
@@ -0,0 +1,12 @@
1
+ export type { GetPathParamsType, ResponseWithPagination } from './helpers';
2
+ export type { GeneratePipelineStepErrorResponse, GeneratePipelineStepMutationQueryParams, GeneratePipelineStepOkResponse, GeneratePipelineStepProps, GeneratePipelineStepRequestBody, } from './hooks/useGeneratePipelineStepMutation';
3
+ export { generatePipelineStep, useGeneratePipelineStepMutation, } from './hooks/useGeneratePipelineStepMutation';
4
+ export type { UpdatePipelineStepErrorResponse, UpdatePipelineStepOkResponse, UpdatePipelineStepProps, UpdatePipelineStepRequestBody, } from './hooks/useUpdatePipelineStepMutation';
5
+ export { updatePipelineStep, useUpdatePipelineStepMutation, } from './hooks/useUpdatePipelineStepMutation';
6
+ export type { TypesGeneratePipelineStepInput } from './schemas/TypesGeneratePipelineStepInput';
7
+ export type { TypesGeneratePipelineStepOutput } from './schemas/TypesGeneratePipelineStepOutput';
8
+ export type { TypesPipelineData } from './schemas/TypesPipelineData';
9
+ export type { TypesPipelineStepData } from './schemas/TypesPipelineStepData';
10
+ export type { TypesUpdatePipelineInput } from './schemas/TypesUpdatePipelineInput';
11
+ export type { TypesUpdatePipelineOutput } from './schemas/TypesUpdatePipelineOutput';
12
+ export type { UsererrorError } from './schemas/UsererrorError';
@@ -0,0 +1,2 @@
1
+ export { generatePipelineStep, useGeneratePipelineStepMutation, } from './hooks/useGeneratePipelineStepMutation';
2
+ export { updatePipelineStep, useUpdatePipelineStepMutation, } from './hooks/useUpdatePipelineStepMutation';
@@ -0,0 +1,4 @@
1
+ export interface TypesGeneratePipelineStepInput {
2
+ prompt?: string;
3
+ repo_ref?: string;
4
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { TypesPipelineStepData } from '../schemas/TypesPipelineStepData';
2
+ export interface TypesGeneratePipelineStepOutput {
3
+ data?: TypesPipelineStepData;
4
+ status?: string;
5
+ }
@@ -0,0 +1,3 @@
1
+ export interface TypesPipelineData {
2
+ yaml_pipeline?: string;
3
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,3 @@
1
+ export interface TypesPipelineStepData {
2
+ yaml_step?: string;
3
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,5 @@
1
+ export interface TypesUpdatePipelineInput {
2
+ pipeline?: string;
3
+ prompt?: string;
4
+ repo_ref?: string;
5
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { TypesPipelineData } from '../schemas/TypesPipelineData';
2
+ export interface TypesUpdatePipelineOutput {
3
+ data?: TypesPipelineData;
4
+ status?: string;
5
+ }
@@ -0,0 +1,6 @@
1
+ export interface UsererrorError {
2
+ message?: string;
3
+ values?: {
4
+ [key: string]: any;
5
+ };
6
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ // This code is autogenerated using @harnessio/oats-cli.
3
+ // Please do not modify this code directly.
4
+ export {};
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@harnessio/react-intelligence-service-client",
3
+ "version": "0.1.0",
4
+ "description": "Harness React Intelligence service client - Intelligence APIs integrated with react hooks",
5
+ "author": "Harness Inc",
6
+ "license": "MIT",
7
+ "source": "src/index.ts",
8
+ "main": "./dist/intelligence/src/index.js",
9
+ "exports": {
10
+ ".": "./dist/intelligence/src/index.js"
11
+ },
12
+ "types": "./dist/intelligence/src/index.d.ts",
13
+ "files": [
14
+ "dist/*"
15
+ ],
16
+ "homepage": "https://github.com/harness/react-api-client",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/harness/react-api-client.git"
20
+ },
21
+ "bugs": {
22
+ "url": "https://github.com/harness/react-api-client/issues"
23
+ },
24
+ "keywords": [],
25
+ "scripts": {
26
+ "prebuild": "rimraf dist",
27
+ "build": "yarn generate && tsc",
28
+ "generate": "oats import --config='./oats.config.ts'",
29
+ "fmt": "prettier --write ./index.ts"
30
+ }
31
+ }