@ayasofyazilim/saas 0.0.144 → 0.0.145
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.
- package/.github/workflows/update.yaml +6 -16
- package/API_LIST.json +5 -0
- package/FileService/FileServiceClient.ts +56 -0
- package/FileService/core/ApiError.ts +21 -0
- package/FileService/core/ApiRequestOptions.ts +21 -0
- package/FileService/core/ApiResult.ts +7 -0
- package/FileService/core/BaseHttpRequest.ts +10 -0
- package/FileService/core/CancelablePromise.ts +126 -0
- package/FileService/core/FetchHttpRequest.ts +22 -0
- package/FileService/core/OpenAPI.ts +56 -0
- package/FileService/core/request.ts +350 -0
- package/FileService/index.ts +10 -0
- package/FileService/schemas.gen.ts +5211 -0
- package/FileService/sdk.gen.ts +984 -0
- package/FileService/types.gen.ts +1004 -0
- package/index.mjs +1 -10
- package/package.json +1 -1
|
@@ -5,18 +5,11 @@ on:
|
|
|
5
5
|
inputs:
|
|
6
6
|
url:
|
|
7
7
|
description: "Service url"
|
|
8
|
-
default: "
|
|
8
|
+
default: "https://api.unirefund.com"
|
|
9
9
|
required: true
|
|
10
10
|
type: choice
|
|
11
11
|
options:
|
|
12
|
-
- "
|
|
13
|
-
port:
|
|
14
|
-
description: "Service port"
|
|
15
|
-
default: 44336
|
|
16
|
-
required: true
|
|
17
|
-
type: choice
|
|
18
|
-
options:
|
|
19
|
-
- 44336
|
|
12
|
+
- "https://api.unirefund.com"
|
|
20
13
|
service-name:
|
|
21
14
|
description: 'The name of service to update and commit, e.g. "All" or "SaaS,Tag"'
|
|
22
15
|
default: "All"
|
|
@@ -40,16 +33,13 @@ on:
|
|
|
40
33
|
- Project
|
|
41
34
|
- Fundraiser
|
|
42
35
|
- Backer
|
|
36
|
+
- File
|
|
43
37
|
workflow_call:
|
|
44
38
|
inputs:
|
|
45
39
|
url:
|
|
46
|
-
default: "
|
|
40
|
+
default: "https://api.unirefund.com"
|
|
47
41
|
type: string
|
|
48
42
|
required: true
|
|
49
|
-
port:
|
|
50
|
-
default: 44336
|
|
51
|
-
type: number
|
|
52
|
-
required: true
|
|
53
43
|
service-name:
|
|
54
44
|
default: "All"
|
|
55
45
|
type: string
|
|
@@ -78,12 +68,12 @@ jobs:
|
|
|
78
68
|
- name: Update package
|
|
79
69
|
if: startsWith(github.event.inputs.service-name, 'All') != true
|
|
80
70
|
run: |
|
|
81
|
-
node index.mjs -u "${{ github.event.inputs.url }}" -
|
|
71
|
+
node index.mjs -u "${{ github.event.inputs.url }}" -f "${{ github.event.inputs.service-name }}"
|
|
82
72
|
|
|
83
73
|
- name: Update package
|
|
84
74
|
if: startsWith(github.event.inputs.service-name, 'All') == true
|
|
85
75
|
run: |
|
|
86
|
-
node index.mjs -u "${{ github.event.inputs.url }}"
|
|
76
|
+
node index.mjs -u "${{ github.event.inputs.url }}"
|
|
87
77
|
|
|
88
78
|
# Commit changes
|
|
89
79
|
- name: Commit updates
|
package/API_LIST.json
CHANGED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { BaseHttpRequest } from './core/BaseHttpRequest';
|
|
2
|
+
import type { OpenAPIConfig } from './core/OpenAPI';
|
|
3
|
+
import { Interceptors } from './core/OpenAPI';
|
|
4
|
+
import { FetchHttpRequest } from './core/FetchHttpRequest';
|
|
5
|
+
|
|
6
|
+
import { FileService } from './sdk.gen';
|
|
7
|
+
import { FileRelationService } from './sdk.gen';
|
|
8
|
+
import { FileRelationEntityService } from './sdk.gen';
|
|
9
|
+
import { FileTypeService } from './sdk.gen';
|
|
10
|
+
import { FileTypeGroupService } from './sdk.gen';
|
|
11
|
+
import { FileTypeMimeTypeService } from './sdk.gen';
|
|
12
|
+
import { MimeTypeService } from './sdk.gen';
|
|
13
|
+
import { ProviderService } from './sdk.gen';
|
|
14
|
+
|
|
15
|
+
type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;
|
|
16
|
+
|
|
17
|
+
export class FileServiceClient {
|
|
18
|
+
|
|
19
|
+
public readonly file: FileService;
|
|
20
|
+
public readonly fileRelation: FileRelationService;
|
|
21
|
+
public readonly fileRelationEntity: FileRelationEntityService;
|
|
22
|
+
public readonly fileType: FileTypeService;
|
|
23
|
+
public readonly fileTypeGroup: FileTypeGroupService;
|
|
24
|
+
public readonly fileTypeMimeType: FileTypeMimeTypeService;
|
|
25
|
+
public readonly mimeType: MimeTypeService;
|
|
26
|
+
public readonly provider: ProviderService;
|
|
27
|
+
|
|
28
|
+
public readonly request: BaseHttpRequest;
|
|
29
|
+
|
|
30
|
+
constructor(config?: Partial<OpenAPIConfig>, HttpRequest: HttpRequestConstructor = FetchHttpRequest) {
|
|
31
|
+
this.request = new HttpRequest({
|
|
32
|
+
BASE: config?.BASE ?? '',
|
|
33
|
+
VERSION: config?.VERSION ?? '1',
|
|
34
|
+
WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,
|
|
35
|
+
CREDENTIALS: config?.CREDENTIALS ?? 'include',
|
|
36
|
+
TOKEN: config?.TOKEN,
|
|
37
|
+
USERNAME: config?.USERNAME,
|
|
38
|
+
PASSWORD: config?.PASSWORD,
|
|
39
|
+
HEADERS: config?.HEADERS,
|
|
40
|
+
ENCODE_PATH: config?.ENCODE_PATH,
|
|
41
|
+
interceptors: {
|
|
42
|
+
request: config?.interceptors?.request ?? new Interceptors(),
|
|
43
|
+
response: config?.interceptors?.response ?? new Interceptors(),
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
this.file = new FileService(this.request);
|
|
48
|
+
this.fileRelation = new FileRelationService(this.request);
|
|
49
|
+
this.fileRelationEntity = new FileRelationEntityService(this.request);
|
|
50
|
+
this.fileType = new FileTypeService(this.request);
|
|
51
|
+
this.fileTypeGroup = new FileTypeGroupService(this.request);
|
|
52
|
+
this.fileTypeMimeType = new FileTypeMimeTypeService(this.request);
|
|
53
|
+
this.mimeType = new MimeTypeService(this.request);
|
|
54
|
+
this.provider = new ProviderService(this.request);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ApiRequestOptions } from './ApiRequestOptions';
|
|
2
|
+
import type { ApiResult } from './ApiResult';
|
|
3
|
+
|
|
4
|
+
export class ApiError extends Error {
|
|
5
|
+
public readonly url: string;
|
|
6
|
+
public readonly status: number;
|
|
7
|
+
public readonly statusText: string;
|
|
8
|
+
public readonly body: unknown;
|
|
9
|
+
public readonly request: ApiRequestOptions;
|
|
10
|
+
|
|
11
|
+
constructor(request: ApiRequestOptions, response: ApiResult, message: string) {
|
|
12
|
+
super(message);
|
|
13
|
+
|
|
14
|
+
this.name = 'ApiError';
|
|
15
|
+
this.url = response.url;
|
|
16
|
+
this.status = response.status;
|
|
17
|
+
this.statusText = response.statusText;
|
|
18
|
+
this.body = response.body;
|
|
19
|
+
this.request = request;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type ApiRequestOptions<T = unknown> = {
|
|
2
|
+
readonly body?: any;
|
|
3
|
+
readonly cookies?: Record<string, unknown>;
|
|
4
|
+
readonly errors?: Record<number | string, string>;
|
|
5
|
+
readonly formData?: Record<string, unknown> | any[] | Blob | File;
|
|
6
|
+
readonly headers?: Record<string, unknown>;
|
|
7
|
+
readonly mediaType?: string;
|
|
8
|
+
readonly method:
|
|
9
|
+
| 'DELETE'
|
|
10
|
+
| 'GET'
|
|
11
|
+
| 'HEAD'
|
|
12
|
+
| 'OPTIONS'
|
|
13
|
+
| 'PATCH'
|
|
14
|
+
| 'POST'
|
|
15
|
+
| 'PUT';
|
|
16
|
+
readonly path?: Record<string, unknown>;
|
|
17
|
+
readonly query?: Record<string, unknown>;
|
|
18
|
+
readonly responseHeader?: string;
|
|
19
|
+
readonly responseTransformer?: (data: unknown) => Promise<T>;
|
|
20
|
+
readonly url: string;
|
|
21
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ApiRequestOptions } from './ApiRequestOptions';
|
|
2
|
+
import type { CancelablePromise } from './CancelablePromise';
|
|
3
|
+
import type { OpenAPIConfig } from './OpenAPI';
|
|
4
|
+
|
|
5
|
+
export abstract class BaseHttpRequest {
|
|
6
|
+
|
|
7
|
+
constructor(public readonly config: OpenAPIConfig) {}
|
|
8
|
+
|
|
9
|
+
public abstract request<T>(options: ApiRequestOptions<T>): CancelablePromise<T>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
export class CancelError extends Error {
|
|
2
|
+
constructor(message: string) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = 'CancelError';
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
public get isCancelled(): boolean {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface OnCancel {
|
|
13
|
+
readonly isResolved: boolean;
|
|
14
|
+
readonly isRejected: boolean;
|
|
15
|
+
readonly isCancelled: boolean;
|
|
16
|
+
|
|
17
|
+
(cancelHandler: () => void): void;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export class CancelablePromise<T> implements Promise<T> {
|
|
21
|
+
private _isResolved: boolean;
|
|
22
|
+
private _isRejected: boolean;
|
|
23
|
+
private _isCancelled: boolean;
|
|
24
|
+
readonly cancelHandlers: (() => void)[];
|
|
25
|
+
readonly promise: Promise<T>;
|
|
26
|
+
private _resolve?: (value: T | PromiseLike<T>) => void;
|
|
27
|
+
private _reject?: (reason?: unknown) => void;
|
|
28
|
+
|
|
29
|
+
constructor(
|
|
30
|
+
executor: (
|
|
31
|
+
resolve: (value: T | PromiseLike<T>) => void,
|
|
32
|
+
reject: (reason?: unknown) => void,
|
|
33
|
+
onCancel: OnCancel
|
|
34
|
+
) => void
|
|
35
|
+
) {
|
|
36
|
+
this._isResolved = false;
|
|
37
|
+
this._isRejected = false;
|
|
38
|
+
this._isCancelled = false;
|
|
39
|
+
this.cancelHandlers = [];
|
|
40
|
+
this.promise = new Promise<T>((resolve, reject) => {
|
|
41
|
+
this._resolve = resolve;
|
|
42
|
+
this._reject = reject;
|
|
43
|
+
|
|
44
|
+
const onResolve = (value: T | PromiseLike<T>): void => {
|
|
45
|
+
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this._isResolved = true;
|
|
49
|
+
if (this._resolve) this._resolve(value);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const onReject = (reason?: unknown): void => {
|
|
53
|
+
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this._isRejected = true;
|
|
57
|
+
if (this._reject) this._reject(reason);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const onCancel = (cancelHandler: () => void): void => {
|
|
61
|
+
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.cancelHandlers.push(cancelHandler);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
Object.defineProperty(onCancel, 'isResolved', {
|
|
68
|
+
get: (): boolean => this._isResolved,
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
Object.defineProperty(onCancel, 'isRejected', {
|
|
72
|
+
get: (): boolean => this._isRejected,
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
Object.defineProperty(onCancel, 'isCancelled', {
|
|
76
|
+
get: (): boolean => this._isCancelled,
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
return executor(onResolve, onReject, onCancel as OnCancel);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
get [Symbol.toStringTag]() {
|
|
84
|
+
return "Cancellable Promise";
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
public then<TResult1 = T, TResult2 = never>(
|
|
88
|
+
onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,
|
|
89
|
+
onRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null
|
|
90
|
+
): Promise<TResult1 | TResult2> {
|
|
91
|
+
return this.promise.then(onFulfilled, onRejected);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
public catch<TResult = never>(
|
|
95
|
+
onRejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null
|
|
96
|
+
): Promise<T | TResult> {
|
|
97
|
+
return this.promise.catch(onRejected);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
public finally(onFinally?: (() => void) | null): Promise<T> {
|
|
101
|
+
return this.promise.finally(onFinally);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
public cancel(): void {
|
|
105
|
+
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this._isCancelled = true;
|
|
109
|
+
if (this.cancelHandlers.length) {
|
|
110
|
+
try {
|
|
111
|
+
for (const cancelHandler of this.cancelHandlers) {
|
|
112
|
+
cancelHandler();
|
|
113
|
+
}
|
|
114
|
+
} catch (error) {
|
|
115
|
+
console.warn('Cancellation threw an error', error);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
this.cancelHandlers.length = 0;
|
|
120
|
+
if (this._reject) this._reject(new CancelError('Request aborted'));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
public get isCancelled(): boolean {
|
|
124
|
+
return this._isCancelled;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ApiRequestOptions } from './ApiRequestOptions';
|
|
2
|
+
import { BaseHttpRequest } from './BaseHttpRequest';
|
|
3
|
+
import type { CancelablePromise } from './CancelablePromise';
|
|
4
|
+
import type { OpenAPIConfig } from './OpenAPI';
|
|
5
|
+
import { request as __request } from './request';
|
|
6
|
+
|
|
7
|
+
export class FetchHttpRequest extends BaseHttpRequest {
|
|
8
|
+
|
|
9
|
+
constructor(config: OpenAPIConfig) {
|
|
10
|
+
super(config);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Request method
|
|
15
|
+
* @param options The request options from the service
|
|
16
|
+
* @returns CancelablePromise<T>
|
|
17
|
+
* @throws ApiError
|
|
18
|
+
*/
|
|
19
|
+
public override request<T>(options: ApiRequestOptions<T>): CancelablePromise<T> {
|
|
20
|
+
return __request(this.config, options);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ApiRequestOptions } from './ApiRequestOptions';
|
|
2
|
+
|
|
3
|
+
type Headers = Record<string, string>;
|
|
4
|
+
type Middleware<T> = (value: T) => T | Promise<T>;
|
|
5
|
+
type Resolver<T> = (options: ApiRequestOptions<T>) => Promise<T>;
|
|
6
|
+
|
|
7
|
+
export class Interceptors<T> {
|
|
8
|
+
_fns: Middleware<T>[];
|
|
9
|
+
|
|
10
|
+
constructor() {
|
|
11
|
+
this._fns = [];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
eject(fn: Middleware<T>): void {
|
|
15
|
+
const index = this._fns.indexOf(fn);
|
|
16
|
+
if (index !== -1) {
|
|
17
|
+
this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
use(fn: Middleware<T>): void {
|
|
22
|
+
this._fns = [...this._fns, fn];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type OpenAPIConfig = {
|
|
27
|
+
BASE: string;
|
|
28
|
+
CREDENTIALS: 'include' | 'omit' | 'same-origin';
|
|
29
|
+
ENCODE_PATH?: ((path: string) => string) | undefined;
|
|
30
|
+
HEADERS?: Headers | Resolver<Headers> | undefined;
|
|
31
|
+
PASSWORD?: string | Resolver<string> | undefined;
|
|
32
|
+
TOKEN?: string | Resolver<string> | undefined;
|
|
33
|
+
USERNAME?: string | Resolver<string> | undefined;
|
|
34
|
+
VERSION: string;
|
|
35
|
+
WITH_CREDENTIALS: boolean;
|
|
36
|
+
interceptors: {
|
|
37
|
+
request: Interceptors<RequestInit>;
|
|
38
|
+
response: Interceptors<Response>;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const OpenAPI: OpenAPIConfig = {
|
|
43
|
+
BASE: '',
|
|
44
|
+
CREDENTIALS: 'include',
|
|
45
|
+
ENCODE_PATH: undefined,
|
|
46
|
+
HEADERS: undefined,
|
|
47
|
+
PASSWORD: undefined,
|
|
48
|
+
TOKEN: undefined,
|
|
49
|
+
USERNAME: undefined,
|
|
50
|
+
VERSION: '1',
|
|
51
|
+
WITH_CREDENTIALS: false,
|
|
52
|
+
interceptors: {
|
|
53
|
+
request: new Interceptors(),
|
|
54
|
+
response: new Interceptors(),
|
|
55
|
+
},
|
|
56
|
+
};
|