@mathrunet/masamune_cloudflare_turso 3.2.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.
- package/CHANGELOG.md +363 -0
- package/LICENSE +21 -0
- package/README.md +213 -0
- package/dist/functions/test.d.ts +1 -0
- package/dist/functions/test.js +71 -0
- package/dist/functions/test.js.map +1 -0
- package/dist/functions/turso.d.ts +1 -0
- package/dist/functions/turso.js +50 -0
- package/dist/functions/turso.js.map +1 -0
- package/dist/functions/turso_token.d.ts +1 -0
- package/dist/functions/turso_token.js +40 -0
- package/dist/functions/turso_token.js.map +1 -0
- package/dist/functions.d.ts +21 -0
- package/dist/functions.js +24 -0
- package/dist/functions.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +183 -0
- package/dist/lib/api.js +144 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/crud.d.ts +10 -0
- package/dist/lib/crud.js +203 -0
- package/dist/lib/crud.js.map +1 -0
- package/dist/lib/exntensions/firestore.extension.d.ts +247 -0
- package/dist/lib/exntensions/firestore.extension.js +386 -0
- package/dist/lib/exntensions/firestore.extension.js.map +1 -0
- package/dist/lib/exntensions/string.extension.d.ts +214 -0
- package/dist/lib/exntensions/string.extension.js +223 -0
- package/dist/lib/exntensions/string.extension.js.map +1 -0
- package/dist/lib/model_field_value/converters/basic_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/basic_converter.js +51 -0
- package/dist/lib/model_field_value/converters/basic_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/enum_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/enum_converter.js +51 -0
- package/dist/lib/model_field_value/converters/enum_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_counter_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_counter_converter.js +216 -0
- package/dist/lib/model_field_value/converters/model_counter_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_date_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_date_converter.js +271 -0
- package/dist/lib/model_field_value/converters/model_date_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_date_range_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_date_range_converter.js +225 -0
- package/dist/lib/model_field_value/converters/model_date_range_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_geo_value_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_geo_value_converter.js +216 -0
- package/dist/lib/model_field_value/converters/model_geo_value_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_image_uri_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_image_uri_converter.js +184 -0
- package/dist/lib/model_field_value/converters/model_image_uri_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_locale_converter.d.ts +51 -0
- package/dist/lib/model_field_value/converters/model_locale_converter.js +228 -0
- package/dist/lib/model_field_value/converters/model_locale_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_localized_value_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_localized_value_converter.js +145 -0
- package/dist/lib/model_field_value/converters/model_localized_value_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_ref_base_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_ref_base_converter.js +159 -0
- package/dist/lib/model_field_value/converters/model_ref_base_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_search_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_search_converter.js +138 -0
- package/dist/lib/model_field_value/converters/model_search_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_server_command_base_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_server_command_base_converter.js +119 -0
- package/dist/lib/model_field_value/converters/model_server_command_base_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_time_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_time_converter.js +271 -0
- package/dist/lib/model_field_value/converters/model_time_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_time_range_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_time_range_converter.js +225 -0
- package/dist/lib/model_field_value/converters/model_time_range_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_timestamp_converter.d.ts +66 -0
- package/dist/lib/model_field_value/converters/model_timestamp_converter.js +297 -0
- package/dist/lib/model_field_value/converters/model_timestamp_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_timestamp_range_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_timestamp_range_converter.js +225 -0
- package/dist/lib/model_field_value/converters/model_timestamp_range_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_token_converter.d.ts +48 -0
- package/dist/lib/model_field_value/converters/model_token_converter.js +137 -0
- package/dist/lib/model_field_value/converters/model_token_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_uri_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_uri_converter.js +184 -0
- package/dist/lib/model_field_value/converters/model_uri_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_vector_value_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_vector_value_converter.js +125 -0
- package/dist/lib/model_field_value/converters/model_vector_value_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/model_video_uri_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/model_video_uri_converter.js +184 -0
- package/dist/lib/model_field_value/converters/model_video_uri_converter.js.map +1 -0
- package/dist/lib/model_field_value/converters/null_converter.d.ts +49 -0
- package/dist/lib/model_field_value/converters/null_converter.js +72 -0
- package/dist/lib/model_field_value/converters/null_converter.js.map +1 -0
- package/dist/lib/model_field_value/default_model_field_value_converter.d.ts +155 -0
- package/dist/lib/model_field_value/default_model_field_value_converter.js +303 -0
- package/dist/lib/model_field_value/default_model_field_value_converter.js.map +1 -0
- package/dist/lib/model_field_value/model_field_value.d.ts +467 -0
- package/dist/lib/model_field_value/model_field_value.js +665 -0
- package/dist/lib/model_field_value/model_field_value.js.map +1 -0
- package/dist/lib/model_field_value/model_field_value_converter.d.ts +117 -0
- package/dist/lib/model_field_value/model_field_value_converter.js +49 -0
- package/dist/lib/model_field_value/model_field_value_converter.js.map +1 -0
- package/dist/lib/regions.d.ts +6 -0
- package/dist/lib/regions.js +3 -0
- package/dist/lib/regions.js.map +1 -0
- package/dist/lib/request.d.ts +12 -0
- package/dist/lib/request.js +213 -0
- package/dist/lib/request.js.map +1 -0
- package/dist/lib/rules.d.ts +32 -0
- package/dist/lib/rules.js +299 -0
- package/dist/lib/rules.js.map +1 -0
- package/dist/lib/schema.d.ts +15 -0
- package/dist/lib/schema.js +141 -0
- package/dist/lib/schema.js.map +1 -0
- package/dist/lib/src/call_process_function_base.d.ts +39 -0
- package/dist/lib/src/call_process_function_base.js +72 -0
- package/dist/lib/src/call_process_function_base.js.map +1 -0
- package/dist/lib/src/firebase_loader.d.ts +30 -0
- package/dist/lib/src/firebase_loader.js +96 -0
- package/dist/lib/src/firebase_loader.js.map +1 -0
- package/dist/lib/src/firestore_base.d.ts +114 -0
- package/dist/lib/src/firestore_base.js +363 -0
- package/dist/lib/src/firestore_base.js.map +1 -0
- package/dist/lib/src/firestore_triggered_process_function_base.d.ts +40 -0
- package/dist/lib/src/firestore_triggered_process_function_base.js +72 -0
- package/dist/lib/src/firestore_triggered_process_function_base.js.map +1 -0
- package/dist/lib/src/functions_base.d.ts +327 -0
- package/dist/lib/src/functions_base.js +63 -0
- package/dist/lib/src/functions_base.js.map +1 -0
- package/dist/lib/src/functions_data.d.ts +10 -0
- package/dist/lib/src/functions_data.js +19 -0
- package/dist/lib/src/functions_data.js.map +1 -0
- package/dist/lib/src/request_process_function_base.d.ts +39 -0
- package/dist/lib/src/request_process_function_base.js +70 -0
- package/dist/lib/src/request_process_function_base.js.map +1 -0
- package/dist/lib/src/request_process_workders_base.d.ts +37 -0
- package/dist/lib/src/request_process_workders_base.js +27 -0
- package/dist/lib/src/request_process_workders_base.js.map +1 -0
- package/dist/lib/src/schedule_process_function_base.d.ts +33 -0
- package/dist/lib/src/schedule_process_function_base.js +71 -0
- package/dist/lib/src/schedule_process_function_base.js.map +1 -0
- package/dist/lib/src/sql_api_base.d.ts +185 -0
- package/dist/lib/src/sql_api_base.js +83 -0
- package/dist/lib/src/sql_api_base.js.map +1 -0
- package/dist/lib/src/workers_base.d.ts +74 -0
- package/dist/lib/src/workers_base.js +57 -0
- package/dist/lib/src/workers_base.js.map +1 -0
- package/dist/lib/src/workers_data.d.ts +10 -0
- package/dist/lib/src/workers_data.js +21 -0
- package/dist/lib/src/workers_data.js.map +1 -0
- package/dist/lib/token.d.ts +12 -0
- package/dist/lib/token.js +123 -0
- package/dist/lib/token.js.map +1 -0
- package/dist/lib/turso_client.d.ts +14 -0
- package/dist/lib/turso_client.js +130 -0
- package/dist/lib/turso_client.js.map +1 -0
- package/dist/lib/types.d.ts +71 -0
- package/dist/lib/types.js +3 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils.d.ts +82 -0
- package/dist/lib/utils.js +141 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/workers/test.d.ts +1 -0
- package/dist/workers/test.js +14 -0
- package/dist/workers/test.js.map +1 -0
- package/dist/workers/turso.d.ts +1 -0
- package/dist/workers/turso.js +50 -0
- package/dist/workers/turso.js.map +1 -0
- package/dist/workers/turso_token.d.ts +1 -0
- package/dist/workers/turso_token.js +40 -0
- package/dist/workers/turso_token.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API for Rest can be called.
|
|
3
|
+
*
|
|
4
|
+
* Rest用のAPIを呼び出すことができます。
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class Api {
|
|
7
|
+
/**
|
|
8
|
+
* Call the API with the `GET` parameter.
|
|
9
|
+
*
|
|
10
|
+
* `GET`パラメーターでAPIを呼び出します。
|
|
11
|
+
*
|
|
12
|
+
* @param {string} url
|
|
13
|
+
* The URL of the API to call.
|
|
14
|
+
*
|
|
15
|
+
* 呼び出すAPIのURL。
|
|
16
|
+
*
|
|
17
|
+
* @param {GetRequestOptions | undefined} options
|
|
18
|
+
* Options for `GET` requests.
|
|
19
|
+
*
|
|
20
|
+
* `GET`リクエスト用のオプション。
|
|
21
|
+
*
|
|
22
|
+
* @returns {Promise<ApiResponse>}
|
|
23
|
+
* Response from API.
|
|
24
|
+
*
|
|
25
|
+
* APIからのレスポンス。
|
|
26
|
+
*/
|
|
27
|
+
static get(url: string, options?: GetRequestOptions | undefined): Promise<Response>;
|
|
28
|
+
/**
|
|
29
|
+
* Call the API with the `POST` parameter.
|
|
30
|
+
*
|
|
31
|
+
* `POST`パラメーターでAPIを呼び出します。
|
|
32
|
+
*
|
|
33
|
+
* @param {string} url
|
|
34
|
+
* The URL of the API to call.
|
|
35
|
+
*
|
|
36
|
+
* 呼び出すAPIのURL。
|
|
37
|
+
*
|
|
38
|
+
* @param {PostRequestOptions | undefined} options
|
|
39
|
+
* Options for `POST` requests.
|
|
40
|
+
*
|
|
41
|
+
* `POST`リクエスト用のオプション。
|
|
42
|
+
*
|
|
43
|
+
* @returns {Promise<ApiResponse>}
|
|
44
|
+
* Response from API.
|
|
45
|
+
*
|
|
46
|
+
* APIからのレスポンス。
|
|
47
|
+
*/
|
|
48
|
+
static post(url: string, options?: PostRequestOptions | undefined): Promise<Response>;
|
|
49
|
+
/**
|
|
50
|
+
* Call the API with the `PUT` parameter.
|
|
51
|
+
*
|
|
52
|
+
* `PUT`パラメーターでAPIを呼び出します。
|
|
53
|
+
*
|
|
54
|
+
* @param {string} url
|
|
55
|
+
* The URL of the API to call.
|
|
56
|
+
*
|
|
57
|
+
* 呼び出すAPIのURL。
|
|
58
|
+
*
|
|
59
|
+
* @param {PutRequestOptions | undefined} options
|
|
60
|
+
* Options for `PUT` requests.
|
|
61
|
+
*
|
|
62
|
+
* `PUT`リクエスト用のオプション。
|
|
63
|
+
*
|
|
64
|
+
* @returns {Promise<ApiResponse>}
|
|
65
|
+
* Response from API.
|
|
66
|
+
*
|
|
67
|
+
* APIからのレスポンス。
|
|
68
|
+
*/
|
|
69
|
+
static put(url: string, options?: PutRequestOptions | undefined): Promise<Response>;
|
|
70
|
+
/**
|
|
71
|
+
* Call the API with the `DELETE` parameter.
|
|
72
|
+
*
|
|
73
|
+
* `DELETE`パラメーターでAPIを呼び出します。
|
|
74
|
+
*
|
|
75
|
+
* @param {string} url
|
|
76
|
+
* The URL of the API to call.
|
|
77
|
+
*
|
|
78
|
+
* 呼び出すAPIのURL。
|
|
79
|
+
*
|
|
80
|
+
* @param {DeleteRequestOptions | undefined} options
|
|
81
|
+
* Options for `DELETE` requests.
|
|
82
|
+
*
|
|
83
|
+
* `DELETE`リクエスト用のオプション。
|
|
84
|
+
*
|
|
85
|
+
* @returns {Promise<ApiResponse>}
|
|
86
|
+
* Response from API.
|
|
87
|
+
*
|
|
88
|
+
* APIからのレスポンス。
|
|
89
|
+
*/
|
|
90
|
+
static delete(url: string, options?: DeleteRequestOptions | undefined): Promise<Response>;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Options for `GET` requests.
|
|
94
|
+
*
|
|
95
|
+
* `GET`リクエスト用のオプション。
|
|
96
|
+
*
|
|
97
|
+
* @param {ApiHeaders | undefined} headers
|
|
98
|
+
* Header information to be sent to the API.
|
|
99
|
+
*
|
|
100
|
+
* APIに送信するヘッダー情報。
|
|
101
|
+
*
|
|
102
|
+
* @param {number | undefined} timeout
|
|
103
|
+
* Timeout time for API call.
|
|
104
|
+
*
|
|
105
|
+
* API呼び出しのタイムアウト時間。
|
|
106
|
+
*/
|
|
107
|
+
export interface GetRequestOptions {
|
|
108
|
+
headers?: Headers | undefined;
|
|
109
|
+
timeout?: number | undefined;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Options for `POST` requests.
|
|
113
|
+
*
|
|
114
|
+
* `POST`リクエスト用のオプション。
|
|
115
|
+
*
|
|
116
|
+
* @param {ApiHeaders | undefined} headers
|
|
117
|
+
* Header information to be sent to the API.
|
|
118
|
+
*
|
|
119
|
+
* APIに送信するヘッダー情報。
|
|
120
|
+
*
|
|
121
|
+
* @param {number | undefined} timeout
|
|
122
|
+
* Timeout time for API call.
|
|
123
|
+
*
|
|
124
|
+
* API呼び出しのタイムアウト時間。
|
|
125
|
+
*
|
|
126
|
+
* @param {data: { [key: string]: any } | string | undefined}
|
|
127
|
+
* Data to be sent to the API.
|
|
128
|
+
*
|
|
129
|
+
* APIに送信するデータ。
|
|
130
|
+
*/
|
|
131
|
+
export interface PostRequestOptions {
|
|
132
|
+
headers?: Headers | undefined;
|
|
133
|
+
timeout?: number | undefined;
|
|
134
|
+
data: {
|
|
135
|
+
[key: string]: any;
|
|
136
|
+
} | string | undefined;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Options for `PUT` requests.
|
|
140
|
+
*
|
|
141
|
+
* `PUT`リクエスト用のオプション。
|
|
142
|
+
*
|
|
143
|
+
* @param {ApiHeaders | undefined} headers
|
|
144
|
+
* Header information to be sent to the API.
|
|
145
|
+
*
|
|
146
|
+
* APIに送信するヘッダー情報。
|
|
147
|
+
*
|
|
148
|
+
* @param {number | undefined} timeout
|
|
149
|
+
* Timeout time for API call.
|
|
150
|
+
*
|
|
151
|
+
* API呼び出しのタイムアウト時間。
|
|
152
|
+
*
|
|
153
|
+
* @param {data: { [key: string]: any } | string | undefined}
|
|
154
|
+
* Data to be sent to the API.
|
|
155
|
+
*
|
|
156
|
+
* APIに送信するデータ。
|
|
157
|
+
*/
|
|
158
|
+
export interface PutRequestOptions {
|
|
159
|
+
headers?: Headers | undefined;
|
|
160
|
+
timeout?: number | undefined;
|
|
161
|
+
data: {
|
|
162
|
+
[key: string]: any;
|
|
163
|
+
} | string | undefined;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Options for `DELETE` requests.
|
|
167
|
+
*
|
|
168
|
+
* `DELETE`リクエスト用のオプション。
|
|
169
|
+
*
|
|
170
|
+
* @param {ApiHeaders | undefined} headers
|
|
171
|
+
* Header information to be sent to the API.
|
|
172
|
+
*
|
|
173
|
+
* APIに送信するヘッダー情報。
|
|
174
|
+
*
|
|
175
|
+
* @param {number | undefined} timeout
|
|
176
|
+
* Timeout time for API call.
|
|
177
|
+
*
|
|
178
|
+
* API呼び出しのタイムアウト時間。
|
|
179
|
+
*/
|
|
180
|
+
export interface DeleteRequestOptions {
|
|
181
|
+
headers?: Headers | undefined;
|
|
182
|
+
timeout?: number | undefined;
|
|
183
|
+
}
|
package/dist/lib/api.js
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Api = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* API for Rest can be called.
|
|
6
|
+
*
|
|
7
|
+
* Rest用のAPIを呼び出すことができます。
|
|
8
|
+
*/
|
|
9
|
+
class Api {
|
|
10
|
+
/**
|
|
11
|
+
* Call the API with the `GET` parameter.
|
|
12
|
+
*
|
|
13
|
+
* `GET`パラメーターでAPIを呼び出します。
|
|
14
|
+
*
|
|
15
|
+
* @param {string} url
|
|
16
|
+
* The URL of the API to call.
|
|
17
|
+
*
|
|
18
|
+
* 呼び出すAPIのURL。
|
|
19
|
+
*
|
|
20
|
+
* @param {GetRequestOptions | undefined} options
|
|
21
|
+
* Options for `GET` requests.
|
|
22
|
+
*
|
|
23
|
+
* `GET`リクエスト用のオプション。
|
|
24
|
+
*
|
|
25
|
+
* @returns {Promise<ApiResponse>}
|
|
26
|
+
* Response from API.
|
|
27
|
+
*
|
|
28
|
+
* APIからのレスポンス。
|
|
29
|
+
*/
|
|
30
|
+
static async get(url, options) {
|
|
31
|
+
const res = await fetch(url, {
|
|
32
|
+
method: "GET",
|
|
33
|
+
headers: options?.headers,
|
|
34
|
+
});
|
|
35
|
+
return res;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Call the API with the `POST` parameter.
|
|
39
|
+
*
|
|
40
|
+
* `POST`パラメーターでAPIを呼び出します。
|
|
41
|
+
*
|
|
42
|
+
* @param {string} url
|
|
43
|
+
* The URL of the API to call.
|
|
44
|
+
*
|
|
45
|
+
* 呼び出すAPIのURL。
|
|
46
|
+
*
|
|
47
|
+
* @param {PostRequestOptions | undefined} options
|
|
48
|
+
* Options for `POST` requests.
|
|
49
|
+
*
|
|
50
|
+
* `POST`リクエスト用のオプション。
|
|
51
|
+
*
|
|
52
|
+
* @returns {Promise<ApiResponse>}
|
|
53
|
+
* Response from API.
|
|
54
|
+
*
|
|
55
|
+
* APIからのレスポンス。
|
|
56
|
+
*/
|
|
57
|
+
static async post(url, options) {
|
|
58
|
+
const data = options?.data;
|
|
59
|
+
let body = undefined;
|
|
60
|
+
if (data && typeof data === "string") {
|
|
61
|
+
body = data;
|
|
62
|
+
}
|
|
63
|
+
else if (data && typeof data === "object") {
|
|
64
|
+
body = new FormData();
|
|
65
|
+
for (const key in data) {
|
|
66
|
+
body.append(key, data[key]);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const res = await fetch(url, {
|
|
70
|
+
method: "POST",
|
|
71
|
+
headers: options?.headers,
|
|
72
|
+
body: body,
|
|
73
|
+
});
|
|
74
|
+
return res;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Call the API with the `PUT` parameter.
|
|
78
|
+
*
|
|
79
|
+
* `PUT`パラメーターでAPIを呼び出します。
|
|
80
|
+
*
|
|
81
|
+
* @param {string} url
|
|
82
|
+
* The URL of the API to call.
|
|
83
|
+
*
|
|
84
|
+
* 呼び出すAPIのURL。
|
|
85
|
+
*
|
|
86
|
+
* @param {PutRequestOptions | undefined} options
|
|
87
|
+
* Options for `PUT` requests.
|
|
88
|
+
*
|
|
89
|
+
* `PUT`リクエスト用のオプション。
|
|
90
|
+
*
|
|
91
|
+
* @returns {Promise<ApiResponse>}
|
|
92
|
+
* Response from API.
|
|
93
|
+
*
|
|
94
|
+
* APIからのレスポンス。
|
|
95
|
+
*/
|
|
96
|
+
static async put(url, options) {
|
|
97
|
+
const data = options?.data;
|
|
98
|
+
let body = undefined;
|
|
99
|
+
if (data && typeof data === "string") {
|
|
100
|
+
body = data;
|
|
101
|
+
}
|
|
102
|
+
else if (data && typeof data === "object") {
|
|
103
|
+
body = new FormData();
|
|
104
|
+
for (const key in data) {
|
|
105
|
+
body.append(key, data[key]);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const res = await fetch(url, {
|
|
109
|
+
method: "PUT",
|
|
110
|
+
headers: options?.headers,
|
|
111
|
+
body: body,
|
|
112
|
+
});
|
|
113
|
+
return res;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Call the API with the `DELETE` parameter.
|
|
117
|
+
*
|
|
118
|
+
* `DELETE`パラメーターでAPIを呼び出します。
|
|
119
|
+
*
|
|
120
|
+
* @param {string} url
|
|
121
|
+
* The URL of the API to call.
|
|
122
|
+
*
|
|
123
|
+
* 呼び出すAPIのURL。
|
|
124
|
+
*
|
|
125
|
+
* @param {DeleteRequestOptions | undefined} options
|
|
126
|
+
* Options for `DELETE` requests.
|
|
127
|
+
*
|
|
128
|
+
* `DELETE`リクエスト用のオプション。
|
|
129
|
+
*
|
|
130
|
+
* @returns {Promise<ApiResponse>}
|
|
131
|
+
* Response from API.
|
|
132
|
+
*
|
|
133
|
+
* APIからのレスポンス。
|
|
134
|
+
*/
|
|
135
|
+
static async delete(url, options) {
|
|
136
|
+
const res = await fetch(url, {
|
|
137
|
+
method: "DELETE",
|
|
138
|
+
headers: options?.headers,
|
|
139
|
+
});
|
|
140
|
+
return res;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.Api = Api;
|
|
144
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":";;;AACA;;;;GAIG;AACH,MAAsB,GAAG;IACvB;;;;;;;;;;;;;;;;;;;OAmBG;IACI,MAAM,CAAC,KAAK,CAAC,GAAG,CACrB,GAAW,EACX,OAAuC;QAEvC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CACtB,GAAW,EACX,OAAwC;QAExC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC3B,IAAI,IAAI,GAAkC,SAAS,CAAC;QACpD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5C,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YACtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,MAAM,CAAC,KAAK,CAAC,GAAG,CACrB,GAAW,EACX,OAAuC;QAEvC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC3B,IAAI,IAAI,GAAkC,SAAS,CAAC;QACpD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5C,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YACtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,GAAW,EACX,OAA0C;QAE1C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;CAGF;AApJD,kBAoJC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TursoClient } from "./turso_client";
|
|
2
|
+
import { TursoRequestBody } from "./types";
|
|
3
|
+
export declare function fetchDocumentForRules(client: TursoClient, request: Required<Pick<TursoRequestBody, "database" | "table">> & TursoRequestBody): Promise<Record<string, unknown> | null>;
|
|
4
|
+
export declare function executeCrud({ client, method, request, autoCreateTable, autoMigrateAddColumns, }: {
|
|
5
|
+
client: TursoClient;
|
|
6
|
+
method: "GET" | "POST" | "PUT" | "DELETE";
|
|
7
|
+
request: Required<Pick<TursoRequestBody, "database" | "table">> & TursoRequestBody;
|
|
8
|
+
autoCreateTable: boolean;
|
|
9
|
+
autoMigrateAddColumns: boolean;
|
|
10
|
+
}): Promise<unknown>;
|
package/dist/lib/crud.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchDocumentForRules = fetchDocumentForRules;
|
|
4
|
+
exports.executeCrud = executeCrud;
|
|
5
|
+
const request_1 = require("./request");
|
|
6
|
+
const schema_1 = require("./schema");
|
|
7
|
+
async function fetchDocumentForRules(client, request) {
|
|
8
|
+
const rows = await selectRows(client, {
|
|
9
|
+
...request,
|
|
10
|
+
count: false,
|
|
11
|
+
}, true);
|
|
12
|
+
return rows[0] ?? null;
|
|
13
|
+
}
|
|
14
|
+
async function executeCrud({ client, method, request, autoCreateTable, autoMigrateAddColumns, }) {
|
|
15
|
+
switch (method) {
|
|
16
|
+
case "GET":
|
|
17
|
+
if (request.count) {
|
|
18
|
+
return await countRows(client, request);
|
|
19
|
+
}
|
|
20
|
+
return await selectRows(client, request);
|
|
21
|
+
case "POST":
|
|
22
|
+
return await insertRow(client, request, autoCreateTable, autoMigrateAddColumns);
|
|
23
|
+
case "PUT":
|
|
24
|
+
return await updateRows(client, request, autoCreateTable, autoMigrateAddColumns);
|
|
25
|
+
case "DELETE":
|
|
26
|
+
await deleteRows(client, request);
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async function selectRows(client, request, single = false) {
|
|
31
|
+
const { sql, args } = buildWhereClause(request);
|
|
32
|
+
const orderBy = buildOrderByClause(request.orderBy ?? []);
|
|
33
|
+
const limitValue = request.limit && request.limit > 0 ? request.limit : undefined;
|
|
34
|
+
const limit = single ? " LIMIT 1" : limitValue ? ` LIMIT ${limitValue}` : "";
|
|
35
|
+
const result = await client.execute({
|
|
36
|
+
sql: `SELECT * FROM ${(0, schema_1.quoteIdentifier)(request.table)}${sql}${orderBy}${limit}`,
|
|
37
|
+
args,
|
|
38
|
+
});
|
|
39
|
+
return result.rows.map(schema_1.decodeRow);
|
|
40
|
+
}
|
|
41
|
+
async function countRows(client, request) {
|
|
42
|
+
const { sql, args } = buildWhereClause(request);
|
|
43
|
+
const result = await client.execute({
|
|
44
|
+
sql: `SELECT COUNT(*) AS count FROM ${(0, schema_1.quoteIdentifier)(request.table)}${sql}`,
|
|
45
|
+
args,
|
|
46
|
+
});
|
|
47
|
+
const row = result.rows[0];
|
|
48
|
+
const count = row?.count;
|
|
49
|
+
return typeof count === "number" ? count : Number(count ?? 0);
|
|
50
|
+
}
|
|
51
|
+
async function insertRow(client, request, autoCreateTable, autoMigrateAddColumns) {
|
|
52
|
+
const value = requireValue(request.value);
|
|
53
|
+
const now = Date.now();
|
|
54
|
+
const row = {
|
|
55
|
+
...value,
|
|
56
|
+
id: request.indexKey ?? value.id ?? crypto.randomUUID(),
|
|
57
|
+
created_at: value.created_at ?? now,
|
|
58
|
+
updated_at: value.updated_at ?? now,
|
|
59
|
+
};
|
|
60
|
+
await (0, schema_1.ensureTableSchema)({
|
|
61
|
+
client,
|
|
62
|
+
table: request.table,
|
|
63
|
+
value: row,
|
|
64
|
+
autoCreateTable,
|
|
65
|
+
autoMigrateAddColumns,
|
|
66
|
+
});
|
|
67
|
+
const keys = Object.keys(row).map((key) => (0, request_1.validateIdentifier)(key, "column"));
|
|
68
|
+
const placeholders = keys.map(() => "?").join(", ");
|
|
69
|
+
const result = await client.execute({
|
|
70
|
+
sql: `INSERT INTO ${(0, schema_1.quoteIdentifier)(request.table)} ` +
|
|
71
|
+
`(${keys.map(schema_1.quoteIdentifier).join(", ")}) VALUES (${placeholders}) RETURNING *`,
|
|
72
|
+
args: keys.map((key) => (0, schema_1.encodeSqlValue)(row[key])),
|
|
73
|
+
});
|
|
74
|
+
return result.rows.map(schema_1.decodeRow);
|
|
75
|
+
}
|
|
76
|
+
async function updateRows(client, request, autoCreateTable, autoMigrateAddColumns) {
|
|
77
|
+
const value = requireValue(request.value);
|
|
78
|
+
const row = {
|
|
79
|
+
...value,
|
|
80
|
+
updated_at: value.updated_at ?? Date.now(),
|
|
81
|
+
};
|
|
82
|
+
await (0, schema_1.ensureTableSchema)({
|
|
83
|
+
client,
|
|
84
|
+
table: request.table,
|
|
85
|
+
value: row,
|
|
86
|
+
autoCreateTable,
|
|
87
|
+
autoMigrateAddColumns,
|
|
88
|
+
});
|
|
89
|
+
const where = buildWhereClause(request);
|
|
90
|
+
if (!where.sql) {
|
|
91
|
+
throw new request_1.HttpError(400, "PUT requires indexKey or where.");
|
|
92
|
+
}
|
|
93
|
+
const keys = Object.keys(row).map((key) => (0, request_1.validateIdentifier)(key, "column"));
|
|
94
|
+
const setSql = keys.map((key) => `${(0, schema_1.quoteIdentifier)(key)} = ?`).join(", ");
|
|
95
|
+
const args = [
|
|
96
|
+
...keys.map((key) => (0, schema_1.encodeSqlValue)(row[key])),
|
|
97
|
+
...where.args,
|
|
98
|
+
];
|
|
99
|
+
const result = await client.execute({
|
|
100
|
+
sql: `UPDATE ${(0, schema_1.quoteIdentifier)(request.table)} SET ${setSql}${where.sql} RETURNING *`,
|
|
101
|
+
args,
|
|
102
|
+
});
|
|
103
|
+
return result.rows.map(schema_1.decodeRow);
|
|
104
|
+
}
|
|
105
|
+
async function deleteRows(client, request) {
|
|
106
|
+
const where = buildWhereClause(request);
|
|
107
|
+
if (!where.sql) {
|
|
108
|
+
throw new request_1.HttpError(400, "DELETE requires indexKey or where.");
|
|
109
|
+
}
|
|
110
|
+
await client.execute({
|
|
111
|
+
sql: `DELETE FROM ${(0, schema_1.quoteIdentifier)(request.table)}${where.sql}`,
|
|
112
|
+
args: where.args,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
function buildWhereClause(request) {
|
|
116
|
+
const conditions = [];
|
|
117
|
+
if (request.indexKey) {
|
|
118
|
+
conditions.push({
|
|
119
|
+
type: "equalTo",
|
|
120
|
+
key: "id",
|
|
121
|
+
value: request.indexKey,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
conditions.push(...(request.where ?? []));
|
|
125
|
+
if (conditions.length === 0) {
|
|
126
|
+
return {
|
|
127
|
+
sql: "",
|
|
128
|
+
args: [],
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const clauses = conditions.map((condition) => {
|
|
132
|
+
const key = (0, request_1.validateIdentifier)(condition.key ?? "", "where.key");
|
|
133
|
+
const column = (0, schema_1.quoteIdentifier)(key);
|
|
134
|
+
switch (condition.type ?? "equalTo") {
|
|
135
|
+
case "equalTo":
|
|
136
|
+
return `${column} = ?`;
|
|
137
|
+
case "notEqualTo":
|
|
138
|
+
return `${column} != ?`;
|
|
139
|
+
case "lessThan":
|
|
140
|
+
return `${column} < ?`;
|
|
141
|
+
case "lessThanOrEqualTo":
|
|
142
|
+
return `${column} <= ?`;
|
|
143
|
+
case "greaterThan":
|
|
144
|
+
return `${column} > ?`;
|
|
145
|
+
case "greaterThanOrEqualTo":
|
|
146
|
+
return `${column} >= ?`;
|
|
147
|
+
case "whereIn":
|
|
148
|
+
case "whereNotIn": {
|
|
149
|
+
const values = condition.value;
|
|
150
|
+
if (!Array.isArray(values) || values.length === 0) {
|
|
151
|
+
throw new request_1.HttpError(400, `${condition.type} requires non-empty array.`);
|
|
152
|
+
}
|
|
153
|
+
return `${column} ${condition.type === "whereNotIn" ? "NOT " : ""}IN (${values.map(() => "?").join(", ")})`;
|
|
154
|
+
}
|
|
155
|
+
case "isNull":
|
|
156
|
+
return `${column} IS NULL`;
|
|
157
|
+
case "isNotNull":
|
|
158
|
+
return `${column} IS NOT NULL`;
|
|
159
|
+
case "like":
|
|
160
|
+
return `${column} LIKE ?`;
|
|
161
|
+
case "arrayContains":
|
|
162
|
+
case "arrayContainsAny":
|
|
163
|
+
throw new request_1.HttpError(400, `${condition.type} is not supported by Turso SQL yet.`);
|
|
164
|
+
default:
|
|
165
|
+
throw new request_1.HttpError(400, `Unsupported where condition: ${condition.type}`);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
return {
|
|
169
|
+
sql: ` WHERE ${clauses.join(" AND ")}`,
|
|
170
|
+
args: conditions.flatMap((condition) => {
|
|
171
|
+
switch (condition.type ?? "equalTo") {
|
|
172
|
+
case "whereIn":
|
|
173
|
+
case "whereNotIn":
|
|
174
|
+
return condition.value.map(schema_1.encodeSqlValue);
|
|
175
|
+
case "isNull":
|
|
176
|
+
case "isNotNull":
|
|
177
|
+
case "arrayContains":
|
|
178
|
+
case "arrayContainsAny":
|
|
179
|
+
return [];
|
|
180
|
+
case "like":
|
|
181
|
+
return [(0, schema_1.encodeSqlValue)(`%${String(condition.value ?? "").replace(/%/g, "\\%")}%`)];
|
|
182
|
+
default:
|
|
183
|
+
return [(0, schema_1.encodeSqlValue)(condition.value)];
|
|
184
|
+
}
|
|
185
|
+
}),
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function buildOrderByClause(orderBy) {
|
|
189
|
+
if (orderBy.length === 0) {
|
|
190
|
+
return "";
|
|
191
|
+
}
|
|
192
|
+
return ` ORDER BY ${orderBy.map((condition) => {
|
|
193
|
+
const key = (0, request_1.validateIdentifier)(condition.key ?? "", "orderBy.key");
|
|
194
|
+
return `${(0, schema_1.quoteIdentifier)(key)} ${condition.descending ? "DESC" : "ASC"}`;
|
|
195
|
+
}).join(", ")}`;
|
|
196
|
+
}
|
|
197
|
+
function requireValue(value) {
|
|
198
|
+
if (!value || Object.keys(value).length === 0) {
|
|
199
|
+
throw new request_1.HttpError(400, "value is required.");
|
|
200
|
+
}
|
|
201
|
+
return value;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=crud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../../src/lib/crud.ts"],"names":[],"mappings":"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"}
|