@privateaim/storage-kit 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/LICENSE +202 -0
- package/dist/domains/base.d.ts +8 -0
- package/dist/domains/base.d.ts.map +1 -0
- package/dist/domains/bucket/api.d.ts +17 -0
- package/dist/domains/bucket/api.d.ts.map +1 -0
- package/dist/domains/bucket/entity.d.ts +12 -0
- package/dist/domains/bucket/entity.d.ts.map +1 -0
- package/dist/domains/bucket/index.d.ts +3 -0
- package/dist/domains/bucket/index.d.ts.map +1 -0
- package/dist/domains/bucket-file/api.d.ts +15 -0
- package/dist/domains/bucket-file/api.d.ts.map +1 -0
- package/dist/domains/bucket-file/entity.d.ts +18 -0
- package/dist/domains/bucket-file/entity.d.ts.map +1 -0
- package/dist/domains/bucket-file/index.d.ts +3 -0
- package/dist/domains/bucket-file/index.d.ts.map +1 -0
- package/dist/domains/index.d.ts +3 -0
- package/dist/domains/index.d.ts.map +1 -0
- package/dist/domains/types-base.d.ts +5 -0
- package/dist/domains/types-base.d.ts.map +1 -0
- package/dist/http/api-client/index.d.ts +2 -0
- package/dist/http/api-client/index.d.ts.map +1 -0
- package/dist/http/api-client/module.d.ts +9 -0
- package/dist/http/api-client/module.d.ts.map +1 -0
- package/dist/http/index.d.ts +2 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/index.cjs +260 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +256 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +44 -0
- package/rollup.config.mjs +19 -0
- package/src/domains/base.ts +30 -0
- package/src/domains/bucket/api.ts +67 -0
- package/src/domains/bucket/entity.ts +33 -0
- package/src/domains/bucket/index.ts +9 -0
- package/src/domains/bucket-file/api.ts +56 -0
- package/src/domains/bucket-file/entity.ts +45 -0
- package/src/domains/bucket-file/index.ts +9 -0
- package/src/domains/index.ts +9 -0
- package/src/domains/types-base.ts +12 -0
- package/src/http/api-client/index.ts +8 -0
- package/src/http/api-client/module.ts +39 -0
- package/src/http/index.ts +8 -0
- package/src/index.ts +9 -0
- package/tsconfig.build.json +11 -0
- package/tsconfig.json +3 -0
|
@@ -0,0 +1 @@
|
|
|
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 { Analysis } from '@privateaim/core/src';\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/core';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '@privateaim/core';\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}`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n\n return response.data;\n }\n\n getStreamPath(id: Analysis['id']): string {\n return `buckets/${id}/stream`;\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 { Analysis } from '@privateaim/core/src';\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/core';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '@privateaim/core';\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: Analysis['id']): string {\n return `bucket-files/${id}/stream`;\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","constructor","context","asyncGeneratorStep","BucketAPI","getMany","record","_async_to_generator","response","get","buildQuery","data","getOne","id","requestRecord","create","post","nullifyEmptyObjectProperties","delete","update","upload","formData","headers","getStreamPath","stream","request","url","responseType","BucketFileAPI","APIClient","Client","config","bucket","bucketFile","on","HookName","RESPONSE_ERROR","error","isClientError","message"],"mappings":";;;;;;AAAA;;;;;AAKC,IAAA,SAAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAMM,MAAMC,OAAAA,CAAAA;;AAaTC,IAAAA,SAAAA,CAAUC,KAAmC,EAAE;AAC3C,QAAA,IAAI,CAACC,MAAM,GAAGC,cAASF,CAAAA,KAAAA,CAAAA,GACnBA,QACAG,kBAAaH,CAAAA,KAAAA,CAAAA,CAAAA;AACrB,KAAA;;AAZAI,IAAAA,WAAAA,CAAYC,OAAwB,CAAE;AAJtC,QAAAR,kBAAA,CAAA,IAAA,EAAUI,UAAV,KAAA,CAAA,CAAA,CAAA;AAKII,QAAAA,OAAAA,GAAUA,WAAW,EAAC,CAAA;AAEtB,QAAA,IAAI,CAACN,SAAS,CAACM,OAAAA,CAAQJ,MAAM,CAAA,CAAA;AACjC,KAAA;AASJ;;AC7BA;;;;;AAKC,IAAA,SAAAK,oBAAA,CAAA,GAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWM,MAAMC,SAAkBT,SAAAA,OAAAA,CAAAA;AACrBU,IAAAA,OAAAA,CAAQC,MAA2B,EAAA;;eAAzCC,qBAAA,CAAA,YAAA;AACI,YAAA,MAAMC,QAAW,GAAA,MAAM,KAAKV,CAAAA,MAAM,CAACW,GAAG,CAAC,CAAC,OAAO,EAAEC,gBAAWJ,CAAAA,MAAAA,CAAAA,CAAQ,CAAC,CAAA,CAAA;AACrE,YAAA,OAAOE,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;IAEMC,MAAOC,CAAAA,EAAgB,EAAEC,aAAkC,EAAA;;eAAjEP,qBAAA,CAAA,YAAA;AACI,YAAA,MAAMC,QAAW,GAAA,MAAM,KAAKV,CAAAA,MAAM,CAACW,GAAG,CAAC,CAAC,QAAQ,EAAEI,EAAAA,CAAG,EAAEH,gBAAAA,CAAWI,eAAe,CAAC,CAAA,CAAA;AAElF,YAAA,OAAON,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;AAEMI,IAAAA,MAAAA,CAAOJ,IAAyB,EAAA;;eAAtCJ,qBAAA,CAAA,YAAA;YACI,MAAMC,QAAAA,GAAW,MAAM,KAAKV,CAAAA,MAAM,CAACkB,IAAI,CAAC,WAAWC,iCAA6BN,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;AAEhF,YAAA,OAAOH,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;AAEMO,IAAAA,MAAAA,CAAOL,EAAgB,EAAA;;eAA7BN,qBAAA,CAAA,YAAA;YACI,MAAMC,QAAAA,GAAW,MAAM,KAAA,CAAKV,MAAM,CAACoB,MAAM,CAAC,CAAC,QAAQ,EAAEL,EAAAA,CAAG,CAAC,CAAA,CAAA;AACzD,YAAA,OAAOL,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;IAEMQ,MAAON,CAAAA,EAAgB,EAAEF,IAAyB,EAAA;;eAAxDJ,qBAAA,CAAA,YAAA;AACI,YAAA,MAAMC,QAAW,GAAA,MAAM,KAAKV,CAAAA,MAAM,CAACkB,IAAI,CAAC,CAAC,QAAQ,EAAEH,EAAG,CAAA,CAAC,EAAEI,iCAA6BN,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;AACtF,YAAA,OAAOH,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;IAEMS,MAAOP,CAAAA,EAAgB,EAAEQ,QAAkB,EAAA;;eAAjDd,qBAAA,CAAA,YAAA;AACI,YAAA,MAAMC,QAAW,GAAA,MAAM,KAAKV,CAAAA,MAAM,CAACkB,IAAI,CAAC,CAAC,QAAQ,EAAEH,EAAG,CAAA,CAAC,EAAEQ,QAAU,EAAA;gBAC/DC,OAAS,EAAA;oBACL,cAAgB,EAAA,qBAAA;AACpB,iBAAA;AACJ,aAAA,CAAA,CAAA;AAEA,YAAA,OAAOd,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;AAEAY,IAAAA,aAAAA,CAAcV,EAAkB,EAAU;AACtC,QAAA,OAAO,CAAC,QAAQ,EAAEA,EAAAA,CAAG,OAAO,CAAC,CAAA;AACjC,KAAA;AAEMW,IAAAA,MAAAA,CAAOX,EAAgB,EAAA;;eAA7BN,qBAAA,CAAA,YAAA;AACI,YAAA,MAAMC,WAAW,MAAM,KAAA,CAAKV,MAAM,CAAC2B,OAAO,CAAC;gBACvCC,GAAK,EAAA,KAAA,CAAKH,aAAa,CAACV,EAAAA,CAAAA;gBACxBc,YAAc,EAAA,QAAA;AAClB,aAAA,CAAA,CAAA;AAEA,YAAA,OAAOnB,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;AACJ;;AClEA;;;;;AAKC,IAAA,SAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAMiB,aAAsBjC,SAAAA,OAAAA,CAAAA;AACzBU,IAAAA,OAAAA,CAAQC,MAA+B,EAAA;;eAA7C,mBAAA,CAAA,YAAA;AACI,YAAA,MAAME,QAAW,GAAA,MAAM,KAAKV,CAAAA,MAAM,CAACW,GAAG,CAAC,CAAC,YAAY,EAAEC,gBAAWJ,CAAAA,MAAAA,CAAAA,CAAQ,CAAC,CAAA,CAAA;AAC1E,YAAA,OAAOE,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;IAEMC,MAAOC,CAAAA,EAAoB,EAAEC,aAAsC,EAAA;;eAAzE,mBAAA,CAAA,YAAA;AACI,YAAA,MAAMN,QAAW,GAAA,MAAM,KAAKV,CAAAA,MAAM,CAACW,GAAG,CAAC,CAAC,aAAa,EAAEI,EAAAA,CAAG,EAAEH,gBAAAA,CAAWI,eAAe,CAAC,CAAA,CAAA;AAEvF,YAAA,OAAON,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;AAEMI,IAAAA,MAAAA,CAAOJ,IAAyB,EAAA;;eAAtC,mBAAA,CAAA,YAAA;YACI,MAAMH,QAAAA,GAAW,MAAM,KAAKV,CAAAA,MAAM,CAACkB,IAAI,CAAC,gBAAgBC,iCAA6BN,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;AAErF,YAAA,OAAOH,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;AAEMO,IAAAA,MAAAA,CAAOL,EAAoB,EAAA;;eAAjC,mBAAA,CAAA,YAAA;YACI,MAAML,QAAAA,GAAW,MAAM,KAAA,CAAKV,MAAM,CAACoB,MAAM,CAAC,CAAC,aAAa,EAAEL,EAAAA,CAAG,CAAC,CAAA,CAAA;AAC9D,YAAA,OAAOL,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;IAEMQ,MAAON,CAAAA,EAAoB,EAAEF,IAAyB,EAAA;;eAA5D,mBAAA,CAAA,YAAA;AACI,YAAA,MAAMH,QAAW,GAAA,MAAM,KAAKV,CAAAA,MAAM,CAACkB,IAAI,CAAC,CAAC,aAAa,EAAEH,EAAG,CAAA,CAAC,EAAEI,iCAA6BN,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;AAC3F,YAAA,OAAOH,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;AAEAY,IAAAA,aAAAA,CAAcV,EAAkB,EAAU;AACtC,QAAA,OAAO,CAAC,aAAa,EAAEA,EAAAA,CAAG,OAAO,CAAC,CAAA;AACtC,KAAA;AAEMW,IAAAA,MAAAA,CAAOX,EAAoB,EAAA;;eAAjC,mBAAA,CAAA,YAAA;AACI,YAAA,MAAML,WAAW,MAAM,KAAA,CAAKV,MAAM,CAAC2B,OAAO,CAAC;gBACvCC,GAAK,EAAA,KAAA,CAAKH,aAAa,CAACV,EAAAA,CAAAA;gBACxBc,YAAc,EAAA,QAAA;AAClB,aAAA,CAAA,CAAA;AAEA,YAAA,OAAOnB,SAASG,IAAI,CAAA;AACxB,SAAA,CAAA,EAAA,CAAA;;AACJ;;ACvDA;;;;;AAKC,IAAA,SAAA,gBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AASM,MAAMkB,SAAkBC,SAAAA,YAAAA,CAAAA;AAK3B7B,IAAAA,WAAAA,CAAY8B,MAA0B,CAAE;AACpC,QAAA,KAAK,CAACA,MAAAA,CAAAA,CAAAA;AALV,QAAA,gBAAA,CAAA,IAAA,EAAgBC,UAAhB,KAAA,CAAA,CAAA,CAAA;AAEA,QAAA,gBAAA,CAAA,IAAA,EAAgBC,cAAhB,KAAA,CAAA,CAAA,CAAA;AAKI,QAAA,IAAI,CAACD,MAAM,GAAG,IAAI5B,SAAU,CAAA;AAAEN,YAAAA,MAAAA,EAAQ,IAAI;AAAC,SAAA,CAAA,CAAA;AAC3C,QAAA,IAAI,CAACmC,UAAU,GAAG,IAAIL,aAAc,CAAA;AAAE9B,YAAAA,MAAAA,EAAQ,IAAI;AAAC,SAAA,CAAA,CAAA;AAEnD,QAAA,IAAI,CAACoC,EAAE,CAACC,cAASC,CAAAA,cAAc,EAAG,CAACC,KAAAA,GAAAA;AAC/B,YAAA,IACIC,oBAAcD,KACdA,CAAAA,IAAAA,KAAAA,CAAM7B,QAAQ,IACd6B,KAAAA,CAAM7B,QAAQ,CAACG,IAAI,IACnB,OAAO0B,MAAM7B,QAAQ,CAACG,IAAI,CAAC4B,OAAO,KAAK,QACzC,EAAA;AACEF,gBAAAA,KAAAA,CAAME,OAAO,GAAGF,KAAAA,CAAM7B,QAAQ,CAACG,IAAI,CAAC4B,OAAO,CAAA;AAC/C,aAAA;YAEA,MAAMF,KAAAA,CAAAA;AACV,SAAA,CAAA,CAAA;AACJ,KAAA;AACJ;;;;;;"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { isClient, createClient, Client, HookName, isClientError } from 'hapic';
|
|
2
|
+
import { buildQuery } from 'rapiq';
|
|
3
|
+
import { nullifyEmptyObjectProperties } from '@privateaim/core';
|
|
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
|
+
class BaseAPI {
|
|
24
|
+
// -----------------------------------------------------------------------------------
|
|
25
|
+
setClient(input) {
|
|
26
|
+
this.client = isClient(input) ? input : createClient(input);
|
|
27
|
+
}
|
|
28
|
+
// -----------------------------------------------------------------------------------
|
|
29
|
+
constructor(context){
|
|
30
|
+
_define_property$1(this, "client", void 0);
|
|
31
|
+
context = context || {};
|
|
32
|
+
this.setClient(context.client);
|
|
33
|
+
}
|
|
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);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
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);
|
|
65
|
+
}
|
|
66
|
+
_next(undefined);
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
class BucketAPI extends BaseAPI {
|
|
71
|
+
getMany(record) {
|
|
72
|
+
var _this = this;
|
|
73
|
+
return _async_to_generator$1(function*() {
|
|
74
|
+
const response = yield _this.client.get(`buckets${buildQuery(record)}`);
|
|
75
|
+
return response.data;
|
|
76
|
+
})();
|
|
77
|
+
}
|
|
78
|
+
getOne(id, requestRecord) {
|
|
79
|
+
var _this = this;
|
|
80
|
+
return _async_to_generator$1(function*() {
|
|
81
|
+
const response = yield _this.client.get(`buckets/${id}${buildQuery(requestRecord)}`);
|
|
82
|
+
return response.data;
|
|
83
|
+
})();
|
|
84
|
+
}
|
|
85
|
+
create(data) {
|
|
86
|
+
var _this = this;
|
|
87
|
+
return _async_to_generator$1(function*() {
|
|
88
|
+
const response = yield _this.client.post('buckets', nullifyEmptyObjectProperties(data));
|
|
89
|
+
return response.data;
|
|
90
|
+
})();
|
|
91
|
+
}
|
|
92
|
+
delete(id) {
|
|
93
|
+
var _this = this;
|
|
94
|
+
return _async_to_generator$1(function*() {
|
|
95
|
+
const response = yield _this.client.delete(`buckets/${id}`);
|
|
96
|
+
return response.data;
|
|
97
|
+
})();
|
|
98
|
+
}
|
|
99
|
+
update(id, data) {
|
|
100
|
+
var _this = this;
|
|
101
|
+
return _async_to_generator$1(function*() {
|
|
102
|
+
const response = yield _this.client.post(`buckets/${id}`, nullifyEmptyObjectProperties(data));
|
|
103
|
+
return response.data;
|
|
104
|
+
})();
|
|
105
|
+
}
|
|
106
|
+
upload(id, formData) {
|
|
107
|
+
var _this = this;
|
|
108
|
+
return _async_to_generator$1(function*() {
|
|
109
|
+
const response = yield _this.client.post(`buckets/${id}`, formData, {
|
|
110
|
+
headers: {
|
|
111
|
+
'Content-Type': 'multipart/form-data'
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
return response.data;
|
|
115
|
+
})();
|
|
116
|
+
}
|
|
117
|
+
getStreamPath(id) {
|
|
118
|
+
return `buckets/${id}/stream`;
|
|
119
|
+
}
|
|
120
|
+
stream(id) {
|
|
121
|
+
var _this = this;
|
|
122
|
+
return _async_to_generator$1(function*() {
|
|
123
|
+
const response = yield _this.client.request({
|
|
124
|
+
url: _this.getStreamPath(id),
|
|
125
|
+
responseType: 'stream'
|
|
126
|
+
});
|
|
127
|
+
return response.data;
|
|
128
|
+
})();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/*
|
|
133
|
+
* Copyright (c) 2021-2024.
|
|
134
|
+
* Author Peter Placzek (tada5hi)
|
|
135
|
+
* For the full copyright and license information,
|
|
136
|
+
* view the LICENSE file that was distributed with this source code.
|
|
137
|
+
*/ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
138
|
+
try {
|
|
139
|
+
var info = gen[key](arg);
|
|
140
|
+
var value = info.value;
|
|
141
|
+
} catch (error) {
|
|
142
|
+
reject(error);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (info.done) {
|
|
146
|
+
resolve(value);
|
|
147
|
+
} else {
|
|
148
|
+
Promise.resolve(value).then(_next, _throw);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function _async_to_generator(fn) {
|
|
152
|
+
return function() {
|
|
153
|
+
var self = this, args = arguments;
|
|
154
|
+
return new Promise(function(resolve, reject) {
|
|
155
|
+
var gen = fn.apply(self, args);
|
|
156
|
+
function _next(value) {
|
|
157
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
158
|
+
}
|
|
159
|
+
function _throw(err) {
|
|
160
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
161
|
+
}
|
|
162
|
+
_next(undefined);
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
class BucketFileAPI extends BaseAPI {
|
|
167
|
+
getMany(record) {
|
|
168
|
+
var _this = this;
|
|
169
|
+
return _async_to_generator(function*() {
|
|
170
|
+
const response = yield _this.client.get(`bucket-files${buildQuery(record)}`);
|
|
171
|
+
return response.data;
|
|
172
|
+
})();
|
|
173
|
+
}
|
|
174
|
+
getOne(id, requestRecord) {
|
|
175
|
+
var _this = this;
|
|
176
|
+
return _async_to_generator(function*() {
|
|
177
|
+
const response = yield _this.client.get(`bucket-files/${id}${buildQuery(requestRecord)}`);
|
|
178
|
+
return response.data;
|
|
179
|
+
})();
|
|
180
|
+
}
|
|
181
|
+
create(data) {
|
|
182
|
+
var _this = this;
|
|
183
|
+
return _async_to_generator(function*() {
|
|
184
|
+
const response = yield _this.client.post('bucket-files', nullifyEmptyObjectProperties(data));
|
|
185
|
+
return response.data;
|
|
186
|
+
})();
|
|
187
|
+
}
|
|
188
|
+
delete(id) {
|
|
189
|
+
var _this = this;
|
|
190
|
+
return _async_to_generator(function*() {
|
|
191
|
+
const response = yield _this.client.delete(`bucket-files/${id}`);
|
|
192
|
+
return response.data;
|
|
193
|
+
})();
|
|
194
|
+
}
|
|
195
|
+
update(id, data) {
|
|
196
|
+
var _this = this;
|
|
197
|
+
return _async_to_generator(function*() {
|
|
198
|
+
const response = yield _this.client.post(`bucket-files/${id}`, nullifyEmptyObjectProperties(data));
|
|
199
|
+
return response.data;
|
|
200
|
+
})();
|
|
201
|
+
}
|
|
202
|
+
getStreamPath(id) {
|
|
203
|
+
return `bucket-files/${id}/stream`;
|
|
204
|
+
}
|
|
205
|
+
stream(id) {
|
|
206
|
+
var _this = this;
|
|
207
|
+
return _async_to_generator(function*() {
|
|
208
|
+
const response = yield _this.client.request({
|
|
209
|
+
url: _this.getStreamPath(id),
|
|
210
|
+
responseType: 'stream'
|
|
211
|
+
});
|
|
212
|
+
return response.data;
|
|
213
|
+
})();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/*
|
|
218
|
+
* Copyright (c) 2022-2024.
|
|
219
|
+
* Author Peter Placzek (tada5hi)
|
|
220
|
+
* For the full copyright and license information,
|
|
221
|
+
* view the LICENSE file that was distributed with this source code.
|
|
222
|
+
*/ function _define_property(obj, key, value) {
|
|
223
|
+
if (key in obj) {
|
|
224
|
+
Object.defineProperty(obj, key, {
|
|
225
|
+
value: value,
|
|
226
|
+
enumerable: true,
|
|
227
|
+
configurable: true,
|
|
228
|
+
writable: true
|
|
229
|
+
});
|
|
230
|
+
} else {
|
|
231
|
+
obj[key] = value;
|
|
232
|
+
}
|
|
233
|
+
return obj;
|
|
234
|
+
}
|
|
235
|
+
class APIClient extends Client {
|
|
236
|
+
constructor(config){
|
|
237
|
+
super(config);
|
|
238
|
+
_define_property(this, "bucket", void 0);
|
|
239
|
+
_define_property(this, "bucketFile", void 0);
|
|
240
|
+
this.bucket = new BucketAPI({
|
|
241
|
+
client: this
|
|
242
|
+
});
|
|
243
|
+
this.bucketFile = new BucketFileAPI({
|
|
244
|
+
client: this
|
|
245
|
+
});
|
|
246
|
+
this.on(HookName.RESPONSE_ERROR, (error)=>{
|
|
247
|
+
if (isClientError(error) && error.response && error.response.data && typeof error.response.data.message === 'string') {
|
|
248
|
+
error.message = error.response.data.message;
|
|
249
|
+
}
|
|
250
|
+
throw error;
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export { APIClient, BucketAPI, BucketFileAPI };
|
|
256
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +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 { Analysis } from '@privateaim/core/src';\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/core';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '@privateaim/core';\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}`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n\n return response.data;\n }\n\n getStreamPath(id: Analysis['id']): string {\n return `buckets/${id}/stream`;\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 { Analysis } from '@privateaim/core/src';\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport { nullifyEmptyObjectProperties } from '@privateaim/core';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '@privateaim/core';\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: Analysis['id']): string {\n return `bucket-files/${id}/stream`;\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","constructor","context","asyncGeneratorStep","BucketAPI","getMany","record","_async_to_generator","response","get","buildQuery","data","getOne","id","requestRecord","create","post","nullifyEmptyObjectProperties","delete","update","upload","formData","headers","getStreamPath","stream","request","url","responseType","BucketFileAPI","APIClient","Client","config","bucket","bucketFile","on","HookName","RESPONSE_ERROR","error","isClientError","message"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@privateaim/storage-kit",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"description": "",
|
|
6
|
+
"exports": {
|
|
7
|
+
"./package.json": "./package.json",
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.mjs",
|
|
11
|
+
"require": "./dist/index.cjs"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"main": "./dist/index.cjs",
|
|
15
|
+
"module": "./dist/index.mjs",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "Peter Placzek",
|
|
19
|
+
"email": "admin@tada5hi.net",
|
|
20
|
+
"url": "https://github.com/tada5hi"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@authup/core": "^1.0.0-beta.5",
|
|
24
|
+
"@privateaim/core": "^0.2.0",
|
|
25
|
+
"hapic": "^2.5.0",
|
|
26
|
+
"rapiq": "^0.9.0"
|
|
27
|
+
},
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"@authup/core": "^1.0.0-beta.5",
|
|
30
|
+
"@privateaim/core": "^0.2.0",
|
|
31
|
+
"hapic": "^2.5.0",
|
|
32
|
+
"rapiq": "^0.9.0"
|
|
33
|
+
},
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
|
|
36
|
+
"build:js": "rollup -c",
|
|
37
|
+
"build": "rimraf ./dist && cross-env NODE_ENV=production npm run build:js && npm run build:types",
|
|
38
|
+
"build-watch": "rimraf ./dist && tsc -p tsconfig.build.json --watch"
|
|
39
|
+
},
|
|
40
|
+
"gitHead": "5d3b6f4ce1edf2383bdfbf66e913a08c8a3a2e40",
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022-2024.
|
|
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
|
+
import fs from 'node:fs';
|
|
9
|
+
|
|
10
|
+
import { createConfig } from '../../rollup.config.mjs';
|
|
11
|
+
|
|
12
|
+
export default createConfig({
|
|
13
|
+
pkg: JSON.parse(fs.readFileSync(new URL('./package.json', import.meta.url), {encoding: 'utf-8'})),
|
|
14
|
+
swc: {
|
|
15
|
+
jsc: {
|
|
16
|
+
target: 'es2016'
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2024.
|
|
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
|
+
import { createClient, isClient } from 'hapic';
|
|
9
|
+
import type { Client, RequestBaseOptions } from 'hapic';
|
|
10
|
+
import type { BaseAPIContext } from './types-base';
|
|
11
|
+
|
|
12
|
+
export class BaseAPI {
|
|
13
|
+
protected client! : Client;
|
|
14
|
+
|
|
15
|
+
// -----------------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
constructor(context?: BaseAPIContext) {
|
|
18
|
+
context = context || {};
|
|
19
|
+
|
|
20
|
+
this.setClient(context.client);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// -----------------------------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
setClient(input?: Client | RequestBaseOptions) {
|
|
26
|
+
this.client = isClient(input) ?
|
|
27
|
+
input :
|
|
28
|
+
createClient(input);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021-2024.
|
|
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
|
+
import type { Analysis } from '@privateaim/core/src';
|
|
9
|
+
import type { BuildInput } from 'rapiq';
|
|
10
|
+
import { buildQuery } from 'rapiq';
|
|
11
|
+
import { nullifyEmptyObjectProperties } from '@privateaim/core';
|
|
12
|
+
import type { CollectionResourceResponse, SingleResourceResponse } from '@privateaim/core';
|
|
13
|
+
import { BaseAPI } from '../base';
|
|
14
|
+
import type { BucketFile } from '../bucket-file';
|
|
15
|
+
import type { Bucket } from './entity';
|
|
16
|
+
|
|
17
|
+
export class BucketAPI extends BaseAPI {
|
|
18
|
+
async getMany(record?: BuildInput<Bucket>): Promise<CollectionResourceResponse<Bucket>> {
|
|
19
|
+
const response = await this.client.get(`buckets${buildQuery(record)}`);
|
|
20
|
+
return response.data;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async getOne(id: Bucket['id'], requestRecord?: BuildInput<Bucket>): Promise<SingleResourceResponse<Bucket>> {
|
|
24
|
+
const response = await this.client.get(`buckets/${id}${buildQuery(requestRecord)}`);
|
|
25
|
+
|
|
26
|
+
return response.data;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async create(data: Record<string, any>): Promise<SingleResourceResponse<Bucket>> {
|
|
30
|
+
const response = await this.client.post('buckets', nullifyEmptyObjectProperties(data));
|
|
31
|
+
|
|
32
|
+
return response.data;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async delete(id: Bucket['id']): Promise<SingleResourceResponse<Bucket>> {
|
|
36
|
+
const response = await this.client.delete(`buckets/${id}`);
|
|
37
|
+
return response.data;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
async update(id: Bucket['id'], data: Record<string, any>): Promise<SingleResourceResponse<Bucket>> {
|
|
41
|
+
const response = await this.client.post(`buckets/${id}`, nullifyEmptyObjectProperties(data));
|
|
42
|
+
return response.data;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async upload(id: Bucket['id'], formData: FormData): Promise<CollectionResourceResponse<BucketFile>> {
|
|
46
|
+
const response = await this.client.post(`buckets/${id}`, formData, {
|
|
47
|
+
headers: {
|
|
48
|
+
'Content-Type': 'multipart/form-data',
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
return response.data;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
getStreamPath(id: Analysis['id']): string {
|
|
56
|
+
return `buckets/${id}/stream`;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async stream(id: Bucket['id']) : Promise<ReadableStream<any>> {
|
|
60
|
+
const response = await this.client.request({
|
|
61
|
+
url: this.getStreamPath(id),
|
|
62
|
+
responseType: 'stream',
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return response.data;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021-2024.
|
|
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
|
+
import type { Realm } from '@authup/core';
|
|
9
|
+
|
|
10
|
+
export interface Bucket {
|
|
11
|
+
id: string;
|
|
12
|
+
|
|
13
|
+
name: string;
|
|
14
|
+
|
|
15
|
+
region: string | null;
|
|
16
|
+
|
|
17
|
+
// ------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
created_at: Date;
|
|
20
|
+
|
|
21
|
+
updated_at: Date;
|
|
22
|
+
|
|
23
|
+
// ------------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
actor_id: string;
|
|
26
|
+
|
|
27
|
+
actor_type: string;
|
|
28
|
+
|
|
29
|
+
// ------------------------------------------------------------------
|
|
30
|
+
|
|
31
|
+
realm_id: Realm['id'];
|
|
32
|
+
|
|
33
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021-2024.
|
|
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
|
+
import type { Analysis } from '@privateaim/core/src';
|
|
9
|
+
import type { BuildInput } from 'rapiq';
|
|
10
|
+
import { buildQuery } from 'rapiq';
|
|
11
|
+
import { nullifyEmptyObjectProperties } from '@privateaim/core';
|
|
12
|
+
import type { CollectionResourceResponse, SingleResourceResponse } from '@privateaim/core';
|
|
13
|
+
import type { BucketFile } from './entity';
|
|
14
|
+
import { BaseAPI } from '../base';
|
|
15
|
+
|
|
16
|
+
export class BucketFileAPI extends BaseAPI {
|
|
17
|
+
async getMany(record?: BuildInput<BucketFile>): Promise<CollectionResourceResponse<BucketFile>> {
|
|
18
|
+
const response = await this.client.get(`bucket-files${buildQuery(record)}`);
|
|
19
|
+
return response.data;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async getOne(id: BucketFile['id'], requestRecord?: BuildInput<BucketFile>): Promise<SingleResourceResponse<BucketFile>> {
|
|
23
|
+
const response = await this.client.get(`bucket-files/${id}${buildQuery(requestRecord)}`);
|
|
24
|
+
|
|
25
|
+
return response.data;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async create(data: Record<string, any>): Promise<SingleResourceResponse<BucketFile>> {
|
|
29
|
+
const response = await this.client.post('bucket-files', nullifyEmptyObjectProperties(data));
|
|
30
|
+
|
|
31
|
+
return response.data;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async delete(id: BucketFile['id']): Promise<SingleResourceResponse<BucketFile>> {
|
|
35
|
+
const response = await this.client.delete(`bucket-files/${id}`);
|
|
36
|
+
return response.data;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async update(id: BucketFile['id'], data: Record<string, any>): Promise<SingleResourceResponse<BucketFile>> {
|
|
40
|
+
const response = await this.client.post(`bucket-files/${id}`, nullifyEmptyObjectProperties(data));
|
|
41
|
+
return response.data;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
getStreamPath(id: Analysis['id']): string {
|
|
45
|
+
return `bucket-files/${id}/stream`;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async stream(id: BucketFile['id']) : Promise<ReadableStream<any>> {
|
|
49
|
+
const response = await this.client.request({
|
|
50
|
+
url: this.getStreamPath(id),
|
|
51
|
+
responseType: 'stream',
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
return response.data;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021-2024.
|
|
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
|
+
import type { Realm } from '@authup/core';
|
|
9
|
+
import type { Bucket } from '../bucket';
|
|
10
|
+
|
|
11
|
+
export interface BucketFile {
|
|
12
|
+
id: string;
|
|
13
|
+
|
|
14
|
+
name: string;
|
|
15
|
+
|
|
16
|
+
path: string;
|
|
17
|
+
|
|
18
|
+
hash: string;
|
|
19
|
+
|
|
20
|
+
directory: string;
|
|
21
|
+
|
|
22
|
+
size: number | null;
|
|
23
|
+
|
|
24
|
+
// ------------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
created_at: Date;
|
|
27
|
+
|
|
28
|
+
updated_at: Date;
|
|
29
|
+
|
|
30
|
+
// ------------------------------------------------------------------
|
|
31
|
+
|
|
32
|
+
actor_id: string;
|
|
33
|
+
|
|
34
|
+
actor_type: string;
|
|
35
|
+
|
|
36
|
+
// ------------------------------------------------------------------
|
|
37
|
+
|
|
38
|
+
realm_id: Realm['id'];
|
|
39
|
+
|
|
40
|
+
// ------------------------------------------------------------------
|
|
41
|
+
|
|
42
|
+
bucket_id: Bucket['id'];
|
|
43
|
+
|
|
44
|
+
bucket: Bucket;
|
|
45
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024.
|
|
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
|
+
import type { Client, RequestBaseOptions } from 'hapic';
|
|
9
|
+
|
|
10
|
+
export type BaseAPIContext = {
|
|
11
|
+
client?: Client | RequestBaseOptions
|
|
12
|
+
};
|