@privateaim/storage-kit 0.8.21 → 0.8.22

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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.22](https://github.com/PrivateAIM/hub/compare/v0.8.21...v0.8.22) (2026-01-27)
4
+
5
+
6
+ ### Features
7
+
8
+ * component caller(s) implementation ([#1295](https://github.com/PrivateAIM/hub/issues/1295)) ([3b21fe1](https://github.com/PrivateAIM/hub/commit/3b21fe1b2cf3d47332722578cff67359442d84eb))
9
+ * migrate to esm & replace jest with vitest ([#1368](https://github.com/PrivateAIM/hub/issues/1368)) ([5a4d9d1](https://github.com/PrivateAIM/hub/commit/5a4d9d1ce118f65740aa49caf948208eac299032))
10
+ * storage components + component/handler refactoring ([#1289](https://github.com/PrivateAIM/hub/issues/1289)) ([c22db47](https://github.com/PrivateAIM/hub/commit/c22db471bb2a7e71f33a299926f38fde551efc39))
11
+
12
+
13
+ ### Dependencies
14
+
15
+ * The following workspace dependencies were updated
16
+ * devDependencies
17
+ * @privateaim/kit bumped from ^0.8.21 to ^0.8.22
18
+ * peerDependencies
19
+ * @privateaim/kit bumped from ^0.8.21 to ^0.8.22
20
+
3
21
  ## [0.8.21](https://github.com/PrivateAIM/hub/compare/v0.8.20...v0.8.21) (2025-11-04)
4
22
 
5
23
 
@@ -5,8 +5,8 @@ export interface Bucket {
5
5
  region: string | null;
6
6
  created_at: Date;
7
7
  updated_at: Date;
8
- actor_id: string;
9
- actor_type: string;
10
- realm_id: Realm['id'];
8
+ actor_id: string | null;
9
+ actor_type: string | null;
10
+ realm_id: Realm['id'] | null;
11
11
  }
12
12
  //# sourceMappingURL=entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/domains/bucket/entity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAItB,UAAU,EAAE,IAAI,CAAC;IAEjB,UAAU,EAAE,IAAI,CAAC;IAIjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;IAInB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CAEzB"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/domains/bucket/entity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAItB,UAAU,EAAE,IAAI,CAAC;IAEjB,UAAU,EAAE,IAAI,CAAC;IAIjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAI1B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAEhC"}
@@ -0,0 +1,5 @@
1
+ export declare enum DomainType {
2
+ BUCKET = "bucket",
3
+ BUCKET_FILE = "bucketFile"
4
+ }
5
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/domains/constants.ts"],"names":[],"mappings":"AAOA,oBAAY,UAAU;IAClB,MAAM,WAAW;IACjB,WAAW,eAAe;CAC7B"}
@@ -1,3 +1,4 @@
1
1
  export * from './bucket';
2
2
  export * from './bucket-file';
3
+ export * from './constants';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domains/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domains/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAE9B,cAAc,aAAa,CAAC"}
package/dist/index.mjs CHANGED
@@ -2,111 +2,47 @@ import { createClient, isClient, Client, HookName, isClientError } from 'hapic';
2
2
  import { buildQuery } from 'rapiq';
3
3
  import { nullifyEmptyObjectProperties } from '@privateaim/kit';
4
4
 
5
- /*
6
- * Copyright (c) 2023-2024.
7
- * Author Peter Placzek (tada5hi)
8
- * For the full copyright and license information,
9
- * view the LICENSE file that was distributed with this source code.
10
- */ function _define_property$1(obj, key, value) {
11
- if (key in obj) {
12
- Object.defineProperty(obj, key, {
13
- value: value,
14
- enumerable: true,
15
- configurable: true,
16
- writable: true
17
- });
18
- } else {
19
- obj[key] = value;
20
- }
21
- return obj;
22
- }
23
5
  class BaseAPI {
24
- // -----------------------------------------------------------------------------------
25
- setClient(input) {
26
- this.client = isClient(input) ? input : createClient(input);
27
- }
6
+ client;
28
7
  // -----------------------------------------------------------------------------------
29
8
  constructor(context){
30
- _define_property$1(this, "client", void 0);
31
9
  context = context || {};
32
10
  this.setClient(context.client);
33
11
  }
34
- }
35
-
36
- /*
37
- * Copyright (c) 2021-2024.
38
- * Author Peter Placzek (tada5hi)
39
- * For the full copyright and license information,
40
- * view the LICENSE file that was distributed with this source code.
41
- */ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
42
- try {
43
- var info = gen[key](arg);
44
- var value = info.value;
45
- } catch (error) {
46
- reject(error);
47
- return;
48
- }
49
- if (info.done) {
50
- resolve(value);
51
- } else {
52
- Promise.resolve(value).then(_next, _throw);
12
+ // -----------------------------------------------------------------------------------
13
+ setClient(input) {
14
+ this.client = isClient(input) ? input : createClient(input);
53
15
  }
54
16
  }
55
- function _async_to_generator$1(fn) {
56
- return function() {
57
- var self = this, args = arguments;
58
- return new Promise(function(resolve, reject) {
59
- var gen = fn.apply(self, args);
60
- function _next(value) {
61
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
62
- }
63
- function _throw(err) {
64
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
17
+
18
+ class BucketAPI extends BaseAPI {
19
+ async getMany(record) {
20
+ const response = await this.client.get(`buckets${buildQuery(record)}`);
21
+ return response.data;
22
+ }
23
+ async getOne(id, requestRecord) {
24
+ const response = await this.client.get(`buckets/${id}${buildQuery(requestRecord)}`);
25
+ return response.data;
26
+ }
27
+ async create(data) {
28
+ const response = await this.client.post('buckets', nullifyEmptyObjectProperties(data));
29
+ return response.data;
30
+ }
31
+ async delete(id) {
32
+ const response = await this.client.delete(`buckets/${id}`);
33
+ return response.data;
34
+ }
35
+ async update(id, data) {
36
+ const response = await this.client.post(`buckets/${id}`, nullifyEmptyObjectProperties(data));
37
+ return response.data;
38
+ }
39
+ async upload(id, formData) {
40
+ const response = await this.client.post(`buckets/${id}/upload`, formData, {
41
+ headers: {
42
+ 'Content-Type': 'multipart/form-data'
65
43
  }
66
- _next(undefined);
67
44
  });
68
- };
69
- }
70
- class BucketAPI extends BaseAPI {
71
- getMany(record) {
72
- return _async_to_generator$1(function*() {
73
- const response = yield this.client.get(`buckets${buildQuery(record)}`);
74
- return response.data;
75
- }).call(this);
76
- }
77
- getOne(id, requestRecord) {
78
- return _async_to_generator$1(function*() {
79
- const response = yield this.client.get(`buckets/${id}${buildQuery(requestRecord)}`);
80
- return response.data;
81
- }).call(this);
82
- }
83
- create(data) {
84
- return _async_to_generator$1(function*() {
85
- const response = yield this.client.post('buckets', nullifyEmptyObjectProperties(data));
86
- return response.data;
87
- }).call(this);
88
- }
89
- delete(id) {
90
- return _async_to_generator$1(function*() {
91
- const response = yield this.client.delete(`buckets/${id}`);
92
- return response.data;
93
- }).call(this);
94
- }
95
- update(id, data) {
96
- return _async_to_generator$1(function*() {
97
- const response = yield this.client.post(`buckets/${id}`, nullifyEmptyObjectProperties(data));
98
- return response.data;
99
- }).call(this);
100
- }
101
- upload(id, formData) {
102
- return _async_to_generator$1(function*() {
103
- const response = yield this.client.post(`buckets/${id}/upload`, formData, {
104
- headers: {
105
- 'Content-Type': 'multipart/form-data'
106
- }
107
- });
108
- return response.data;
109
- }).call(this);
45
+ return response.data;
110
46
  }
111
47
  getStreamPath(id) {
112
48
  return `buckets/${id}/stream`;
@@ -114,81 +50,35 @@ class BucketAPI extends BaseAPI {
114
50
  getStreamURL(id) {
115
51
  return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;
116
52
  }
117
- stream(id) {
118
- return _async_to_generator$1(function*() {
119
- const response = yield this.client.request({
120
- url: this.getStreamPath(id),
121
- responseType: 'stream'
122
- });
123
- return response.data;
124
- }).call(this);
53
+ async stream(id) {
54
+ const response = await this.client.request({
55
+ url: this.getStreamPath(id),
56
+ responseType: 'stream'
57
+ });
58
+ return response.data;
125
59
  }
126
60
  }
127
61
 
128
- /*
129
- * Copyright (c) 2021-2024.
130
- * Author Peter Placzek (tada5hi)
131
- * For the full copyright and license information,
132
- * view the LICENSE file that was distributed with this source code.
133
- */ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
134
- try {
135
- var info = gen[key](arg);
136
- var value = info.value;
137
- } catch (error) {
138
- reject(error);
139
- return;
140
- }
141
- if (info.done) {
142
- resolve(value);
143
- } else {
144
- Promise.resolve(value).then(_next, _throw);
145
- }
146
- }
147
- function _async_to_generator(fn) {
148
- return function() {
149
- var self = this, args = arguments;
150
- return new Promise(function(resolve, reject) {
151
- var gen = fn.apply(self, args);
152
- function _next(value) {
153
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
154
- }
155
- function _throw(err) {
156
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
157
- }
158
- _next(undefined);
159
- });
160
- };
161
- }
162
62
  class BucketFileAPI extends BaseAPI {
163
- getMany(record) {
164
- return _async_to_generator(function*() {
165
- const response = yield this.client.get(`bucket-files${buildQuery(record)}`);
166
- return response.data;
167
- }).call(this);
168
- }
169
- getOne(id, requestRecord) {
170
- return _async_to_generator(function*() {
171
- const response = yield this.client.get(`bucket-files/${id}${buildQuery(requestRecord)}`);
172
- return response.data;
173
- }).call(this);
174
- }
175
- create(data) {
176
- return _async_to_generator(function*() {
177
- const response = yield this.client.post('bucket-files', nullifyEmptyObjectProperties(data));
178
- return response.data;
179
- }).call(this);
180
- }
181
- delete(id) {
182
- return _async_to_generator(function*() {
183
- const response = yield this.client.delete(`bucket-files/${id}`);
184
- return response.data;
185
- }).call(this);
186
- }
187
- update(id, data) {
188
- return _async_to_generator(function*() {
189
- const response = yield this.client.post(`bucket-files/${id}`, nullifyEmptyObjectProperties(data));
190
- return response.data;
191
- }).call(this);
63
+ async getMany(record) {
64
+ const response = await this.client.get(`bucket-files${buildQuery(record)}`);
65
+ return response.data;
66
+ }
67
+ async getOne(id, requestRecord) {
68
+ const response = await this.client.get(`bucket-files/${id}${buildQuery(requestRecord)}`);
69
+ return response.data;
70
+ }
71
+ async create(data) {
72
+ const response = await this.client.post('bucket-files', nullifyEmptyObjectProperties(data));
73
+ return response.data;
74
+ }
75
+ async delete(id) {
76
+ const response = await this.client.delete(`bucket-files/${id}`);
77
+ return response.data;
78
+ }
79
+ async update(id, data) {
80
+ const response = await this.client.post(`bucket-files/${id}`, nullifyEmptyObjectProperties(data));
81
+ return response.data;
192
82
  }
193
83
  getStreamPath(id) {
194
84
  return `bucket-files/${id}/stream`;
@@ -196,38 +86,31 @@ class BucketFileAPI extends BaseAPI {
196
86
  getStreamURL(id) {
197
87
  return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;
198
88
  }
199
- stream(id) {
200
- return _async_to_generator(function*() {
201
- const response = yield this.client.request({
202
- url: this.getStreamPath(id),
203
- responseType: 'stream'
204
- });
205
- return response.data;
206
- }).call(this);
89
+ async stream(id) {
90
+ const response = await this.client.request({
91
+ url: this.getStreamPath(id),
92
+ responseType: 'stream'
93
+ });
94
+ return response.data;
207
95
  }
208
96
  }
209
97
 
210
98
  /*
211
- * Copyright (c) 2022-2024.
99
+ * Copyright (c) 2025.
212
100
  * Author Peter Placzek (tada5hi)
213
101
  * For the full copyright and license information,
214
102
  * view the LICENSE file that was distributed with this source code.
215
- */ function _define_property(obj, key, value) {
216
- if (key in obj) {
217
- Object.defineProperty(obj, key, {
218
- value: value,
219
- enumerable: true,
220
- configurable: true,
221
- writable: true
222
- });
223
- } else {
224
- obj[key] = value;
225
- }
226
- return obj;
227
- }
103
+ */ var DomainType = /*#__PURE__*/ function(DomainType) {
104
+ DomainType["BUCKET"] = "bucket";
105
+ DomainType["BUCKET_FILE"] = "bucketFile";
106
+ return DomainType;
107
+ }({});
108
+
228
109
  class APIClient extends Client {
110
+ bucket;
111
+ bucketFile;
229
112
  constructor(config){
230
- super(config), _define_property(this, "bucket", void 0), _define_property(this, "bucketFile", void 0);
113
+ super(config);
231
114
  this.bucket = new BucketAPI({
232
115
  client: this
233
116
  });
@@ -243,5 +126,5 @@ class APIClient extends Client {
243
126
  }
244
127
  }
245
128
 
246
- export { APIClient, BucketAPI, BucketFileAPI };
129
+ export { APIClient, BucketAPI, BucketFileAPI, DomainType };
247
130
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/domains/base.ts","../src/domains/bucket/api.ts","../src/domains/bucket-file/api.ts","../src/http/api-client/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createClient, isClient } from 'hapic';\nimport type { Client, RequestBaseOptions } from 'hapic';\nimport type { BaseAPIContext } from './types-base';\n\nexport class BaseAPI {\n protected client! : Client;\n\n // -----------------------------------------------------------------------------------\n\n constructor(context?: BaseAPIContext) {\n context = context || {};\n\n this.setClient(context.client);\n }\n\n // -----------------------------------------------------------------------------------\n\n setClient(input?: Client | RequestBaseOptions) {\n this.client = isClient(input) ?\n input :\n createClient(input);\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/kit';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport { BaseAPI } from '../base';\nimport type { BucketFile } from '../bucket-file';\nimport type { Bucket } from './entity';\n\nexport class BucketAPI extends BaseAPI {\n async getMany(record?: BuildInput<Bucket>): Promise<CollectionResourceResponse<Bucket>> {\n const response = await this.client.get(`buckets${buildQuery(record)}`);\n return response.data;\n }\n\n async getOne(id: Bucket['id'], requestRecord?: BuildInput<Bucket>): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.get(`buckets/${id}${buildQuery(requestRecord)}`);\n\n return response.data;\n }\n\n async create(data: Record<string, any>): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.post('buckets', nullifyEmptyObjectProperties(data));\n\n return response.data;\n }\n\n async delete(id: Bucket['id']): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.delete(`buckets/${id}`);\n return response.data;\n }\n\n async update(id: Bucket['id'], data: Record<string, any>): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.post(`buckets/${id}`, nullifyEmptyObjectProperties(data));\n return response.data;\n }\n\n async upload(id: Bucket['id'], formData: FormData): Promise<CollectionResourceResponse<BucketFile>> {\n const response = await this.client.post(`buckets/${id}/upload`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n\n return response.data;\n }\n\n getStreamPath(id: string): string {\n return `buckets/${id}/stream`;\n }\n\n getStreamURL(id: BucketFile['id']) : string {\n return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;\n }\n\n async stream(id: Bucket['id']) : Promise<ReadableStream<any>> {\n const response = await this.client.request({\n url: this.getStreamPath(id),\n responseType: 'stream',\n });\n\n return response.data;\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/kit';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport type { BucketFile } from './entity';\nimport { BaseAPI } from '../base';\n\nexport class BucketFileAPI extends BaseAPI {\n async getMany(record?: BuildInput<BucketFile>): Promise<CollectionResourceResponse<BucketFile>> {\n const response = await this.client.get(`bucket-files${buildQuery(record)}`);\n return response.data;\n }\n\n async getOne(id: BucketFile['id'], requestRecord?: BuildInput<BucketFile>): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.get(`bucket-files/${id}${buildQuery(requestRecord)}`);\n\n return response.data;\n }\n\n async create(data: Record<string, any>): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.post('bucket-files', nullifyEmptyObjectProperties(data));\n\n return response.data;\n }\n\n async delete(id: BucketFile['id']): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.delete(`bucket-files/${id}`);\n return response.data;\n }\n\n async update(id: BucketFile['id'], data: Record<string, any>): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.post(`bucket-files/${id}`, nullifyEmptyObjectProperties(data));\n return response.data;\n }\n\n getStreamPath(id: BucketFile['id']): string {\n return `bucket-files/${id}/stream`;\n }\n\n getStreamURL(id: BucketFile['id']) : string {\n return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;\n }\n\n async stream(id: BucketFile['id']) : Promise<ReadableStream<any>> {\n const response = await this.client.request({\n url: this.getStreamPath(id),\n responseType: 'stream',\n });\n\n return response.data;\n }\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RequestBaseOptions } from 'hapic';\nimport { Client, HookName, isClientError } from 'hapic';\nimport {\n BucketAPI,\n BucketFileAPI,\n} from '../../domains';\n\nexport class APIClient extends Client {\n public readonly bucket : BucketAPI;\n\n public readonly bucketFile : BucketFileAPI;\n\n constructor(config: RequestBaseOptions) {\n super(config);\n\n this.bucket = new BucketAPI({ client: this });\n this.bucketFile = new BucketFileAPI({ client: this });\n\n this.on(HookName.RESPONSE_ERROR, ((error) => {\n if (\n isClientError(error) &&\n error.response &&\n error.response.data &&\n typeof error.response.data.message === 'string'\n ) {\n error.message = error.response.data.message;\n }\n\n throw error;\n }));\n }\n}\n"],"names":["_define_property","BaseAPI","setClient","input","client","isClient","createClient","context","asyncGeneratorStep","BucketAPI","getMany","record","response","get","buildQuery","data","getOne","id","requestRecord","create","post","nullifyEmptyObjectProperties","delete","update","upload","formData","headers","getStreamPath","getStreamURL","URL","getBaseURL","href","stream","request","url","responseType","BucketFileAPI","APIClient","Client","config","bucket","bucketFile","on","HookName","RESPONSE_ERROR","error","isClientError","message"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/domains/base.ts","../src/domains/bucket/api.ts","../src/domains/bucket-file/api.ts","../src/domains/constants.ts","../src/http/api-client/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createClient, isClient } from 'hapic';\nimport type { Client, RequestBaseOptions } from 'hapic';\nimport type { BaseAPIContext } from './types-base';\n\nexport class BaseAPI {\n protected client! : Client;\n\n // -----------------------------------------------------------------------------------\n\n constructor(context?: BaseAPIContext) {\n context = context || {};\n\n this.setClient(context.client);\n }\n\n // -----------------------------------------------------------------------------------\n\n setClient(input?: Client | RequestBaseOptions) {\n this.client = isClient(input) ?\n input :\n createClient(input);\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/kit';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport { BaseAPI } from '../base';\nimport type { BucketFile } from '../bucket-file';\nimport type { Bucket } from './entity';\n\nexport class BucketAPI extends BaseAPI {\n async getMany(record?: BuildInput<Bucket>): Promise<CollectionResourceResponse<Bucket>> {\n const response = await this.client.get(`buckets${buildQuery(record)}`);\n return response.data;\n }\n\n async getOne(id: Bucket['id'], requestRecord?: BuildInput<Bucket>): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.get(`buckets/${id}${buildQuery(requestRecord)}`);\n\n return response.data;\n }\n\n async create(data: Record<string, any>): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.post('buckets', nullifyEmptyObjectProperties(data));\n\n return response.data;\n }\n\n async delete(id: Bucket['id']): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.delete(`buckets/${id}`);\n return response.data;\n }\n\n async update(id: Bucket['id'], data: Record<string, any>): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.post(`buckets/${id}`, nullifyEmptyObjectProperties(data));\n return response.data;\n }\n\n async upload(id: Bucket['id'], formData: FormData): Promise<CollectionResourceResponse<BucketFile>> {\n const response = await this.client.post(`buckets/${id}/upload`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n\n return response.data;\n }\n\n getStreamPath(id: string): string {\n return `buckets/${id}/stream`;\n }\n\n getStreamURL(id: BucketFile['id']) : string {\n return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;\n }\n\n async stream(id: Bucket['id']) : Promise<ReadableStream<any>> {\n const response = await this.client.request({\n url: this.getStreamPath(id),\n responseType: 'stream',\n });\n\n return response.data;\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/kit';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport type { BucketFile } from './entity';\nimport { BaseAPI } from '../base';\n\nexport class BucketFileAPI extends BaseAPI {\n async getMany(record?: BuildInput<BucketFile>): Promise<CollectionResourceResponse<BucketFile>> {\n const response = await this.client.get(`bucket-files${buildQuery(record)}`);\n return response.data;\n }\n\n async getOne(id: BucketFile['id'], requestRecord?: BuildInput<BucketFile>): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.get(`bucket-files/${id}${buildQuery(requestRecord)}`);\n\n return response.data;\n }\n\n async create(data: Record<string, any>): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.post('bucket-files', nullifyEmptyObjectProperties(data));\n\n return response.data;\n }\n\n async delete(id: BucketFile['id']): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.delete(`bucket-files/${id}`);\n return response.data;\n }\n\n async update(id: BucketFile['id'], data: Record<string, any>): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.post(`bucket-files/${id}`, nullifyEmptyObjectProperties(data));\n return response.data;\n }\n\n getStreamPath(id: BucketFile['id']): string {\n return `bucket-files/${id}/stream`;\n }\n\n getStreamURL(id: BucketFile['id']) : string {\n return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;\n }\n\n async stream(id: BucketFile['id']) : Promise<ReadableStream<any>> {\n const response = await this.client.request({\n url: this.getStreamPath(id),\n responseType: 'stream',\n });\n\n return response.data;\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum DomainType {\n BUCKET = 'bucket',\n BUCKET_FILE = 'bucketFile',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RequestBaseOptions } from 'hapic';\nimport { Client, HookName, isClientError } from 'hapic';\nimport {\n BucketAPI,\n BucketFileAPI,\n} from '../../domains';\n\nexport class APIClient extends Client {\n public readonly bucket : BucketAPI;\n\n public readonly bucketFile : BucketFileAPI;\n\n constructor(config: RequestBaseOptions) {\n super(config);\n\n this.bucket = new BucketAPI({ client: this });\n this.bucketFile = new BucketFileAPI({ client: this });\n\n this.on(HookName.RESPONSE_ERROR, ((error) => {\n if (\n isClientError(error) &&\n error.response &&\n error.response.data &&\n typeof error.response.data.message === 'string'\n ) {\n error.message = error.response.data.message;\n }\n\n throw error;\n }));\n }\n}\n"],"names":["BaseAPI","client","context","setClient","input","isClient","createClient","BucketAPI","getMany","record","response","get","buildQuery","data","getOne","id","requestRecord","create","post","nullifyEmptyObjectProperties","delete","update","upload","formData","headers","getStreamPath","getStreamURL","URL","getBaseURL","href","stream","request","url","responseType","BucketFileAPI","DomainType","APIClient","Client","bucket","bucketFile","config","on","HookName","RESPONSE_ERROR","error","isClientError","message"],"mappings":";;;;AAWO,MAAMA,OAAAA,CAAAA;IACCC,MAAAA;;AAIV,IAAA,WAAA,CAAYC,OAAwB,CAAE;AAClCA,QAAAA,OAAAA,GAAUA,WAAW,EAAC;AAEtB,QAAA,IAAI,CAACC,SAAS,CAACD,OAAAA,CAAQD,MAAM,CAAA;AACjC,IAAA;;AAIAE,IAAAA,SAAAA,CAAUC,KAAmC,EAAE;AAC3C,QAAA,IAAI,CAACH,MAAM,GAAGI,QAAAA,CAASD,KAAAA,CAAAA,GACnBA,QACAE,YAAAA,CAAaF,KAAAA,CAAAA;AACrB,IAAA;AACJ;;ACdO,MAAMG,SAAAA,SAAkBP,OAAAA,CAAAA;IAC3B,MAAMQ,OAAAA,CAAQC,MAA2B,EAA+C;AACpF,QAAA,MAAMC,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,OAAO,EAAEC,UAAAA,CAAWH,MAAAA,CAAAA,CAAAA,CAAS,CAAA;AACrE,QAAA,OAAOC,SAASG,IAAI;AACxB,IAAA;AAEA,IAAA,MAAMC,MAAAA,CAAOC,EAAgB,EAAEC,aAAkC,EAA2C;AACxG,QAAA,MAAMN,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,QAAQ,EAAEI,EAAAA,CAAAA,EAAKH,WAAWI,aAAAA,CAAAA,CAAAA,CAAgB,CAAA;AAElF,QAAA,OAAON,SAASG,IAAI;AACxB,IAAA;IAEA,MAAMI,MAAAA,CAAOJ,IAAyB,EAA2C;QAC7E,MAAMH,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACiB,IAAI,CAAC,SAAA,EAAWC,4BAAAA,CAA6BN,IAAAA,CAAAA,CAAAA;AAEhF,QAAA,OAAOH,SAASG,IAAI;AACxB,IAAA;IAEA,MAAMO,MAAAA,CAAOL,EAAgB,EAA2C;QACpE,MAAML,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACmB,MAAM,CAAC,CAAC,QAAQ,EAAEL,EAAAA,CAAAA,CAAI,CAAA;AACzD,QAAA,OAAOL,SAASG,IAAI;AACxB,IAAA;AAEA,IAAA,MAAMQ,MAAAA,CAAON,EAAgB,EAAEF,IAAyB,EAA2C;AAC/F,QAAA,MAAMH,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACiB,IAAI,CAAC,CAAC,QAAQ,EAAEH,EAAAA,CAAAA,CAAI,EAAEI,4BAAAA,CAA6BN,IAAAA,CAAAA,CAAAA;AACtF,QAAA,OAAOH,SAASG,IAAI;AACxB,IAAA;AAEA,IAAA,MAAMS,MAAAA,CAAOP,EAAgB,EAAEQ,QAAkB,EAAmD;AAChG,QAAA,MAAMb,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACiB,IAAI,CAAC,CAAC,QAAQ,EAAEH,EAAAA,CAAG,OAAO,CAAC,EAAEQ,QAAAA,EAAU;YACtEC,OAAAA,EAAS;gBACL,cAAA,EAAgB;AACpB;AACJ,SAAA,CAAA;AAEA,QAAA,OAAOd,SAASG,IAAI;AACxB,IAAA;AAEAY,IAAAA,aAAAA,CAAcV,EAAU,EAAU;AAC9B,QAAA,OAAO,CAAC,QAAQ,EAAEA,EAAAA,CAAG,OAAO,CAAC;AACjC,IAAA;AAEAW,IAAAA,YAAAA,CAAaX,EAAoB,EAAW;AACxC,QAAA,OAAO,IAAIY,GAAAA,CAAI,IAAI,CAACF,aAAa,CAACV,EAAAA,CAAAA,EAAK,IAAI,CAACd,MAAM,CAAC2B,UAAU,IAAIC,IAAI;AACzE,IAAA;IAEA,MAAMC,MAAAA,CAAOf,EAAgB,EAAiC;AAC1D,QAAA,MAAML,WAAW,MAAM,IAAI,CAACT,MAAM,CAAC8B,OAAO,CAAC;YACvCC,GAAAA,EAAK,IAAI,CAACP,aAAa,CAACV,EAAAA,CAAAA;YACxBkB,YAAAA,EAAc;AAClB,SAAA,CAAA;AAEA,QAAA,OAAOvB,SAASG,IAAI;AACxB,IAAA;AACJ;;ACvDO,MAAMqB,aAAAA,SAAsBlC,OAAAA,CAAAA;IAC/B,MAAMQ,OAAAA,CAAQC,MAA+B,EAAmD;AAC5F,QAAA,MAAMC,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,YAAY,EAAEC,UAAAA,CAAWH,MAAAA,CAAAA,CAAAA,CAAS,CAAA;AAC1E,QAAA,OAAOC,SAASG,IAAI;AACxB,IAAA;AAEA,IAAA,MAAMC,MAAAA,CAAOC,EAAoB,EAAEC,aAAsC,EAA+C;AACpH,QAAA,MAAMN,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,aAAa,EAAEI,EAAAA,CAAAA,EAAKH,WAAWI,aAAAA,CAAAA,CAAAA,CAAgB,CAAA;AAEvF,QAAA,OAAON,SAASG,IAAI;AACxB,IAAA;IAEA,MAAMI,MAAAA,CAAOJ,IAAyB,EAA+C;QACjF,MAAMH,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACiB,IAAI,CAAC,cAAA,EAAgBC,4BAAAA,CAA6BN,IAAAA,CAAAA,CAAAA;AAErF,QAAA,OAAOH,SAASG,IAAI;AACxB,IAAA;IAEA,MAAMO,MAAAA,CAAOL,EAAoB,EAA+C;QAC5E,MAAML,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACmB,MAAM,CAAC,CAAC,aAAa,EAAEL,EAAAA,CAAAA,CAAI,CAAA;AAC9D,QAAA,OAAOL,SAASG,IAAI;AACxB,IAAA;AAEA,IAAA,MAAMQ,MAAAA,CAAON,EAAoB,EAAEF,IAAyB,EAA+C;AACvG,QAAA,MAAMH,QAAAA,GAAW,MAAM,IAAI,CAACT,MAAM,CAACiB,IAAI,CAAC,CAAC,aAAa,EAAEH,EAAAA,CAAAA,CAAI,EAAEI,4BAAAA,CAA6BN,IAAAA,CAAAA,CAAAA;AAC3F,QAAA,OAAOH,SAASG,IAAI;AACxB,IAAA;AAEAY,IAAAA,aAAAA,CAAcV,EAAoB,EAAU;AACxC,QAAA,OAAO,CAAC,aAAa,EAAEA,EAAAA,CAAG,OAAO,CAAC;AACtC,IAAA;AAEAW,IAAAA,YAAAA,CAAaX,EAAoB,EAAW;AACxC,QAAA,OAAO,IAAIY,GAAAA,CAAI,IAAI,CAACF,aAAa,CAACV,EAAAA,CAAAA,EAAK,IAAI,CAACd,MAAM,CAAC2B,UAAU,IAAIC,IAAI;AACzE,IAAA;IAEA,MAAMC,MAAAA,CAAOf,EAAoB,EAAiC;AAC9D,QAAA,MAAML,WAAW,MAAM,IAAI,CAACT,MAAM,CAAC8B,OAAO,CAAC;YACvCC,GAAAA,EAAK,IAAI,CAACP,aAAa,CAACV,EAAAA,CAAAA;YACxBkB,YAAAA,EAAc;AAClB,SAAA,CAAA;AAEA,QAAA,OAAOvB,SAASG,IAAI;AACxB,IAAA;AACJ;;AC1DA;;;;;IAOO,IAAKsB,UAAAA,iBAAAA,SAAAA,UAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,UAAAA;AAGX,CAAA,CAAA,EAAA;;ACIM,MAAMC,SAAAA,SAAkBC,MAAAA,CAAAA;IACXC,MAAAA;IAEAC,UAAAA;AAEhB,IAAA,WAAA,CAAYC,MAA0B,CAAE;AACpC,QAAA,KAAK,CAACA,MAAAA,CAAAA;AAEN,QAAA,IAAI,CAACF,MAAM,GAAG,IAAI/B,SAAAA,CAAU;AAAEN,YAAAA,MAAAA,EAAQ;AAAK,SAAA,CAAA;AAC3C,QAAA,IAAI,CAACsC,UAAU,GAAG,IAAIL,aAAAA,CAAc;AAAEjC,YAAAA,MAAAA,EAAQ;AAAK,SAAA,CAAA;AAEnD,QAAA,IAAI,CAACwC,EAAE,CAACC,QAAAA,CAASC,cAAc,EAAG,CAACC,KAAAA,GAAAA;AAC/B,YAAA,IACIC,cAAcD,KAAAA,CAAAA,IACdA,KAAAA,CAAMlC,QAAQ,IACdkC,KAAAA,CAAMlC,QAAQ,CAACG,IAAI,IACnB,OAAO+B,MAAMlC,QAAQ,CAACG,IAAI,CAACiC,OAAO,KAAK,QAAA,EACzC;AACEF,gBAAAA,KAAAA,CAAME,OAAO,GAAGF,KAAAA,CAAMlC,QAAQ,CAACG,IAAI,CAACiC,OAAO;AAC/C,YAAA;YAEA,MAAMF,KAAAA;AACV,QAAA,CAAA,CAAA;AACJ,IAAA;AACJ;;;;"}
package/package.json CHANGED
@@ -1,17 +1,16 @@
1
1
  {
2
2
  "name": "@privateaim/storage-kit",
3
- "version": "0.8.21",
3
+ "type": "module",
4
+ "version": "0.8.22",
4
5
  "license": "Apache-2.0",
5
6
  "description": "",
6
7
  "exports": {
7
8
  "./package.json": "./package.json",
8
9
  ".": {
9
10
  "types": "./dist/index.d.ts",
10
- "import": "./dist/index.mjs",
11
- "require": "./dist/index.cjs"
11
+ "import": "./dist/index.mjs"
12
12
  }
13
13
  },
14
- "main": "./dist/index.cjs",
15
14
  "module": "./dist/index.mjs",
16
15
  "types": "./dist/index.d.ts",
17
16
  "author": {
@@ -20,14 +19,14 @@
20
19
  "url": "https://github.com/tada5hi"
21
20
  },
22
21
  "devDependencies": {
23
- "@authup/core-kit": "^1.0.0-beta.27",
24
- "@privateaim/kit": "^0.8.21",
22
+ "@authup/core-kit": "^1.0.0-beta.28",
23
+ "@privateaim/kit": "^0.8.22",
25
24
  "hapic": "^2.7.0",
26
25
  "rapiq": "^0.9.0"
27
26
  },
28
27
  "peerDependencies": {
29
- "@authup/core-kit": "^1.0.0-beta.27",
30
- "@privateaim/kit": "^0.8.21",
28
+ "@authup/core-kit": "^1.0.0-beta.28",
29
+ "@privateaim/kit": "^0.8.22",
31
30
  "hapic": "^2.7.0",
32
31
  "rapiq": "^0.9.0"
33
32
  },
package/rollup.config.mjs CHANGED
@@ -10,10 +10,10 @@ import fs from 'node:fs';
10
10
  import { createConfig } from '../../rollup.config.mjs';
11
11
 
12
12
  export default createConfig({
13
- pkg: JSON.parse(fs.readFileSync(new URL('./package.json', import.meta.url), {encoding: 'utf-8'})),
13
+ pkg: JSON.parse(fs.readFileSync(new URL('./package.json', import.meta.url), { encoding: 'utf-8' })),
14
14
  swc: {
15
15
  jsc: {
16
- target: 'es2016'
17
- }
18
- }
16
+ target: 'es2016',
17
+ },
18
+ },
19
19
  });
@@ -22,12 +22,12 @@ export interface Bucket {
22
22
 
23
23
  // ------------------------------------------------------------------
24
24
 
25
- actor_id: string;
25
+ actor_id: string | null;
26
26
 
27
- actor_type: string;
27
+ actor_type: string | null;
28
28
 
29
29
  // ------------------------------------------------------------------
30
30
 
31
- realm_id: Realm['id'];
31
+ realm_id: Realm['id'] | null;
32
32
 
33
33
  }
@@ -0,0 +1,11 @@
1
+ /*
2
+ * Copyright (c) 2025.
3
+ * Author Peter Placzek (tada5hi)
4
+ * For the full copyright and license information,
5
+ * view the LICENSE file that was distributed with this source code.
6
+ */
7
+
8
+ export enum DomainType {
9
+ BUCKET = 'bucket',
10
+ BUCKET_FILE = 'bucketFile',
11
+ }
@@ -7,3 +7,5 @@
7
7
 
8
8
  export * from './bucket';
9
9
  export * from './bucket-file';
10
+
11
+ export * from './constants';
package/dist/index.cjs DELETED
@@ -1,251 +0,0 @@
1
- 'use strict';
2
-
3
- var hapic = require('hapic');
4
- var rapiq = require('rapiq');
5
- var kit = require('@privateaim/kit');
6
-
7
- /*
8
- * Copyright (c) 2023-2024.
9
- * Author Peter Placzek (tada5hi)
10
- * For the full copyright and license information,
11
- * view the LICENSE file that was distributed with this source code.
12
- */ function _define_property$1(obj, key, value) {
13
- if (key in obj) {
14
- Object.defineProperty(obj, key, {
15
- value: value,
16
- enumerable: true,
17
- configurable: true,
18
- writable: true
19
- });
20
- } else {
21
- obj[key] = value;
22
- }
23
- return obj;
24
- }
25
- class BaseAPI {
26
- // -----------------------------------------------------------------------------------
27
- setClient(input) {
28
- this.client = hapic.isClient(input) ? input : hapic.createClient(input);
29
- }
30
- // -----------------------------------------------------------------------------------
31
- constructor(context){
32
- _define_property$1(this, "client", void 0);
33
- context = context || {};
34
- this.setClient(context.client);
35
- }
36
- }
37
-
38
- /*
39
- * Copyright (c) 2021-2024.
40
- * Author Peter Placzek (tada5hi)
41
- * For the full copyright and license information,
42
- * view the LICENSE file that was distributed with this source code.
43
- */ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
44
- try {
45
- var info = gen[key](arg);
46
- var value = info.value;
47
- } catch (error) {
48
- reject(error);
49
- return;
50
- }
51
- if (info.done) {
52
- resolve(value);
53
- } else {
54
- Promise.resolve(value).then(_next, _throw);
55
- }
56
- }
57
- function _async_to_generator$1(fn) {
58
- return function() {
59
- var self = this, args = arguments;
60
- return new Promise(function(resolve, reject) {
61
- var gen = fn.apply(self, args);
62
- function _next(value) {
63
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
64
- }
65
- function _throw(err) {
66
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
67
- }
68
- _next(undefined);
69
- });
70
- };
71
- }
72
- class BucketAPI extends BaseAPI {
73
- getMany(record) {
74
- return _async_to_generator$1(function*() {
75
- const response = yield this.client.get(`buckets${rapiq.buildQuery(record)}`);
76
- return response.data;
77
- }).call(this);
78
- }
79
- getOne(id, requestRecord) {
80
- return _async_to_generator$1(function*() {
81
- const response = yield this.client.get(`buckets/${id}${rapiq.buildQuery(requestRecord)}`);
82
- return response.data;
83
- }).call(this);
84
- }
85
- create(data) {
86
- return _async_to_generator$1(function*() {
87
- const response = yield this.client.post('buckets', kit.nullifyEmptyObjectProperties(data));
88
- return response.data;
89
- }).call(this);
90
- }
91
- delete(id) {
92
- return _async_to_generator$1(function*() {
93
- const response = yield this.client.delete(`buckets/${id}`);
94
- return response.data;
95
- }).call(this);
96
- }
97
- update(id, data) {
98
- return _async_to_generator$1(function*() {
99
- const response = yield this.client.post(`buckets/${id}`, kit.nullifyEmptyObjectProperties(data));
100
- return response.data;
101
- }).call(this);
102
- }
103
- upload(id, formData) {
104
- return _async_to_generator$1(function*() {
105
- const response = yield this.client.post(`buckets/${id}/upload`, formData, {
106
- headers: {
107
- 'Content-Type': 'multipart/form-data'
108
- }
109
- });
110
- return response.data;
111
- }).call(this);
112
- }
113
- getStreamPath(id) {
114
- return `buckets/${id}/stream`;
115
- }
116
- getStreamURL(id) {
117
- return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;
118
- }
119
- stream(id) {
120
- return _async_to_generator$1(function*() {
121
- const response = yield this.client.request({
122
- url: this.getStreamPath(id),
123
- responseType: 'stream'
124
- });
125
- return response.data;
126
- }).call(this);
127
- }
128
- }
129
-
130
- /*
131
- * Copyright (c) 2021-2024.
132
- * Author Peter Placzek (tada5hi)
133
- * For the full copyright and license information,
134
- * view the LICENSE file that was distributed with this source code.
135
- */ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
136
- try {
137
- var info = gen[key](arg);
138
- var value = info.value;
139
- } catch (error) {
140
- reject(error);
141
- return;
142
- }
143
- if (info.done) {
144
- resolve(value);
145
- } else {
146
- Promise.resolve(value).then(_next, _throw);
147
- }
148
- }
149
- function _async_to_generator(fn) {
150
- return function() {
151
- var self = this, args = arguments;
152
- return new Promise(function(resolve, reject) {
153
- var gen = fn.apply(self, args);
154
- function _next(value) {
155
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
156
- }
157
- function _throw(err) {
158
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
159
- }
160
- _next(undefined);
161
- });
162
- };
163
- }
164
- class BucketFileAPI extends BaseAPI {
165
- getMany(record) {
166
- return _async_to_generator(function*() {
167
- const response = yield this.client.get(`bucket-files${rapiq.buildQuery(record)}`);
168
- return response.data;
169
- }).call(this);
170
- }
171
- getOne(id, requestRecord) {
172
- return _async_to_generator(function*() {
173
- const response = yield this.client.get(`bucket-files/${id}${rapiq.buildQuery(requestRecord)}`);
174
- return response.data;
175
- }).call(this);
176
- }
177
- create(data) {
178
- return _async_to_generator(function*() {
179
- const response = yield this.client.post('bucket-files', kit.nullifyEmptyObjectProperties(data));
180
- return response.data;
181
- }).call(this);
182
- }
183
- delete(id) {
184
- return _async_to_generator(function*() {
185
- const response = yield this.client.delete(`bucket-files/${id}`);
186
- return response.data;
187
- }).call(this);
188
- }
189
- update(id, data) {
190
- return _async_to_generator(function*() {
191
- const response = yield this.client.post(`bucket-files/${id}`, kit.nullifyEmptyObjectProperties(data));
192
- return response.data;
193
- }).call(this);
194
- }
195
- getStreamPath(id) {
196
- return `bucket-files/${id}/stream`;
197
- }
198
- getStreamURL(id) {
199
- return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;
200
- }
201
- stream(id) {
202
- return _async_to_generator(function*() {
203
- const response = yield this.client.request({
204
- url: this.getStreamPath(id),
205
- responseType: 'stream'
206
- });
207
- return response.data;
208
- }).call(this);
209
- }
210
- }
211
-
212
- /*
213
- * Copyright (c) 2022-2024.
214
- * Author Peter Placzek (tada5hi)
215
- * For the full copyright and license information,
216
- * view the LICENSE file that was distributed with this source code.
217
- */ function _define_property(obj, key, value) {
218
- if (key in obj) {
219
- Object.defineProperty(obj, key, {
220
- value: value,
221
- enumerable: true,
222
- configurable: true,
223
- writable: true
224
- });
225
- } else {
226
- obj[key] = value;
227
- }
228
- return obj;
229
- }
230
- class APIClient extends hapic.Client {
231
- constructor(config){
232
- super(config), _define_property(this, "bucket", void 0), _define_property(this, "bucketFile", void 0);
233
- this.bucket = new BucketAPI({
234
- client: this
235
- });
236
- this.bucketFile = new BucketFileAPI({
237
- client: this
238
- });
239
- this.on(hapic.HookName.RESPONSE_ERROR, (error)=>{
240
- if (hapic.isClientError(error) && error.response && error.response.data && typeof error.response.data.message === 'string') {
241
- error.message = error.response.data.message;
242
- }
243
- throw error;
244
- });
245
- }
246
- }
247
-
248
- exports.APIClient = APIClient;
249
- exports.BucketAPI = BucketAPI;
250
- exports.BucketFileAPI = BucketFileAPI;
251
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/domains/base.ts","../src/domains/bucket/api.ts","../src/domains/bucket-file/api.ts","../src/http/api-client/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createClient, isClient } from 'hapic';\nimport type { Client, RequestBaseOptions } from 'hapic';\nimport type { BaseAPIContext } from './types-base';\n\nexport class BaseAPI {\n protected client! : Client;\n\n // -----------------------------------------------------------------------------------\n\n constructor(context?: BaseAPIContext) {\n context = context || {};\n\n this.setClient(context.client);\n }\n\n // -----------------------------------------------------------------------------------\n\n setClient(input?: Client | RequestBaseOptions) {\n this.client = isClient(input) ?\n input :\n createClient(input);\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/kit';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport { BaseAPI } from '../base';\nimport type { BucketFile } from '../bucket-file';\nimport type { Bucket } from './entity';\n\nexport class BucketAPI extends BaseAPI {\n async getMany(record?: BuildInput<Bucket>): Promise<CollectionResourceResponse<Bucket>> {\n const response = await this.client.get(`buckets${buildQuery(record)}`);\n return response.data;\n }\n\n async getOne(id: Bucket['id'], requestRecord?: BuildInput<Bucket>): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.get(`buckets/${id}${buildQuery(requestRecord)}`);\n\n return response.data;\n }\n\n async create(data: Record<string, any>): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.post('buckets', nullifyEmptyObjectProperties(data));\n\n return response.data;\n }\n\n async delete(id: Bucket['id']): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.delete(`buckets/${id}`);\n return response.data;\n }\n\n async update(id: Bucket['id'], data: Record<string, any>): Promise<SingleResourceResponse<Bucket>> {\n const response = await this.client.post(`buckets/${id}`, nullifyEmptyObjectProperties(data));\n return response.data;\n }\n\n async upload(id: Bucket['id'], formData: FormData): Promise<CollectionResourceResponse<BucketFile>> {\n const response = await this.client.post(`buckets/${id}/upload`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n\n return response.data;\n }\n\n getStreamPath(id: string): string {\n return `buckets/${id}/stream`;\n }\n\n getStreamURL(id: BucketFile['id']) : string {\n return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;\n }\n\n async stream(id: Bucket['id']) : Promise<ReadableStream<any>> {\n const response = await this.client.request({\n url: this.getStreamPath(id),\n responseType: 'stream',\n });\n\n return response.data;\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/kit';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport type { BucketFile } from './entity';\nimport { BaseAPI } from '../base';\n\nexport class BucketFileAPI extends BaseAPI {\n async getMany(record?: BuildInput<BucketFile>): Promise<CollectionResourceResponse<BucketFile>> {\n const response = await this.client.get(`bucket-files${buildQuery(record)}`);\n return response.data;\n }\n\n async getOne(id: BucketFile['id'], requestRecord?: BuildInput<BucketFile>): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.get(`bucket-files/${id}${buildQuery(requestRecord)}`);\n\n return response.data;\n }\n\n async create(data: Record<string, any>): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.post('bucket-files', nullifyEmptyObjectProperties(data));\n\n return response.data;\n }\n\n async delete(id: BucketFile['id']): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.delete(`bucket-files/${id}`);\n return response.data;\n }\n\n async update(id: BucketFile['id'], data: Record<string, any>): Promise<SingleResourceResponse<BucketFile>> {\n const response = await this.client.post(`bucket-files/${id}`, nullifyEmptyObjectProperties(data));\n return response.data;\n }\n\n getStreamPath(id: BucketFile['id']): string {\n return `bucket-files/${id}/stream`;\n }\n\n getStreamURL(id: BucketFile['id']) : string {\n return new URL(this.getStreamPath(id), this.client.getBaseURL()).href;\n }\n\n async stream(id: BucketFile['id']) : Promise<ReadableStream<any>> {\n const response = await this.client.request({\n url: this.getStreamPath(id),\n responseType: 'stream',\n });\n\n return response.data;\n }\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RequestBaseOptions } from 'hapic';\nimport { Client, HookName, isClientError } from 'hapic';\nimport {\n BucketAPI,\n BucketFileAPI,\n} from '../../domains';\n\nexport class APIClient extends Client {\n public readonly bucket : BucketAPI;\n\n public readonly bucketFile : BucketFileAPI;\n\n constructor(config: RequestBaseOptions) {\n super(config);\n\n this.bucket = new BucketAPI({ client: this });\n this.bucketFile = new BucketFileAPI({ client: this });\n\n this.on(HookName.RESPONSE_ERROR, ((error) => {\n if (\n isClientError(error) &&\n error.response &&\n error.response.data &&\n typeof error.response.data.message === 'string'\n ) {\n error.message = error.response.data.message;\n }\n\n throw error;\n }));\n }\n}\n"],"names":["_define_property","BaseAPI","setClient","input","client","isClient","createClient","context","asyncGeneratorStep","BucketAPI","getMany","record","response","get","buildQuery","data","getOne","id","requestRecord","create","post","nullifyEmptyObjectProperties","delete","update","upload","formData","headers","getStreamPath","getStreamURL","URL","getBaseURL","href","stream","request","url","responseType","BucketFileAPI","APIClient","Client","config","bucket","bucketFile","on","HookName","RESPONSE_ERROR","error","isClientError","message"],"mappings":"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"}