@oneblink/storage 4.0.0-beta.1 → 4.0.0-beta.3
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/dist/generateS3Client.js +1 -0
- package/dist/generateS3Client.js.map +1 -1
- package/dist/http-handlers/FetchHandler.d.ts +1 -0
- package/dist/http-handlers/FetchHandler.js +2 -0
- package/dist/http-handlers/FetchHandler.js.map +1 -1
- package/dist/http-handlers/NodeJsHandler.d.ts +1 -0
- package/dist/http-handlers/NodeJsHandler.js +2 -0
- package/dist/http-handlers/NodeJsHandler.js.map +1 -1
- package/dist/http-handlers/types.d.ts +6 -0
- package/dist/http-handlers/types.js.map +1 -1
- package/package.json +2 -2
package/dist/generateS3Client.js
CHANGED
|
@@ -25,6 +25,7 @@ export function generateS3Client({ region, apiOrigin, getBearerToken, requestBod
|
|
|
25
25
|
maxAttempts: RETRY_ATTEMPTS,
|
|
26
26
|
requestHandler: oneBlinkRequestHandler,
|
|
27
27
|
credentials: {},
|
|
28
|
+
requestChecksumCalculation: oneBlinkHttpHandler.requestChecksumCalculation,
|
|
28
29
|
// Sign requests with our own Authorization header instead
|
|
29
30
|
// of letting AWS SDK attempt to generate credentials
|
|
30
31
|
signer: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateS3Client.js","sourceRoot":"","sources":["../src/generateS3Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAGpE,MAAM,cAAc,GAAG,CAAC,CAAA;AAExB,MAAM,UAAU,gBAAgB,CAAI,EAClC,MAAM,EACN,SAAS,EACT,cAAc,EACd,iBAAiB,GAGlB;IACC,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAA;IACpD,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,CACvD,mBAAmB,EACnB,iBAAiB,CAClB,CAAA;IAED,4DAA4D;IAC5D,iEAAiE;IACjE,8DAA8D;IAC9D,mEAAmE;IACnE,oEAAoE;IACpE,kEAAkE;IAClE,gEAAgE;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAA;IACzB,MAAM,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxD,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEpC,OAAO;QACL,MAAM;QACN,sBAAsB;QACtB,QAAQ,EAAE,IAAI,QAAQ,CAAC;YACrB,QAAQ,EAAE,GAAG,CAAC,IAAI;YAClB,MAAM;YACN,WAAW,EAAE,cAAc;YAC3B,cAAc,EAAE,sBAAsB;YACtC,WAAW,EAAE,EAA2B;YACxC,0DAA0D;YAC1D,qDAAqD;YACrD,MAAM,EAAE;gBACN,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBACtB,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAA;oBACpC,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,GAAG,KAAK,CAAA;oBACtD,CAAC;oBAED,OAAO,OAAO,CAAA;gBAChB,CAAC;aACF;SACF,CAAC;KACH,CAAA;AACH,CAAC","sourcesContent":["import { S3Client } from '@aws-sdk/client-s3'\nimport { AwsCredentialIdentity } from '@smithy/types'\nimport { StorageConstructorOptions } from './types.js'\nimport { getOneBlinkHttpHandler } from './http-handlers/index.js'\nimport { OneBlinkRequestHandler } from './OneBlinkRequestHandler.js'\nimport { RequestBodyHeader } from './http-handlers/types.js'\n\nconst RETRY_ATTEMPTS = 3\n\nexport function generateS3Client<T>({\n region,\n apiOrigin,\n getBearerToken,\n requestBodyHeader,\n}: StorageConstructorOptions & {\n requestBodyHeader?: RequestBodyHeader\n}) {\n const oneBlinkHttpHandler = getOneBlinkHttpHandler()\n const oneBlinkRequestHandler = new OneBlinkRequestHandler<T>(\n oneBlinkHttpHandler,\n requestBodyHeader,\n )\n\n // The endpoint we use instead of the the AWS S3 endpoint is\n // formatted internally by the AWS S3 SDK. It will add the Bucket\n // parameter below as the subdomain to the URL (as long as the\n // bucket does not contain a `.`). The logic below allows the final\n // URL used to upload the object to be the origin that is passed in.\n // The suffix on the end is important as it will allow us to route\n // traffic to S3 via lambda at edge instead of going to our API.\n const url = new URL(apiOrigin)\n url.pathname = '/storage'\n const [bucket, ...domainParts] = url.hostname.split('.')\n url.hostname = domainParts.join('.')\n\n return {\n bucket,\n oneBlinkRequestHandler,\n s3Client: new S3Client({\n endpoint: url.href,\n region,\n maxAttempts: RETRY_ATTEMPTS,\n requestHandler: oneBlinkRequestHandler,\n credentials: {} as AwsCredentialIdentity,\n // Sign requests with our own Authorization header instead\n // of letting AWS SDK attempt to generate credentials\n signer: {\n sign: async (request) => {\n const token = await getBearerToken()\n if (token) {\n request.headers['authorization'] = 'Bearer ' + token\n }\n\n return request\n },\n },\n }),\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"generateS3Client.js","sourceRoot":"","sources":["../src/generateS3Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAGpE,MAAM,cAAc,GAAG,CAAC,CAAA;AAExB,MAAM,UAAU,gBAAgB,CAAI,EAClC,MAAM,EACN,SAAS,EACT,cAAc,EACd,iBAAiB,GAGlB;IACC,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAA;IACpD,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,CACvD,mBAAmB,EACnB,iBAAiB,CAClB,CAAA;IAED,4DAA4D;IAC5D,iEAAiE;IACjE,8DAA8D;IAC9D,mEAAmE;IACnE,oEAAoE;IACpE,kEAAkE;IAClE,gEAAgE;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAA;IACzB,MAAM,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxD,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEpC,OAAO;QACL,MAAM;QACN,sBAAsB;QACtB,QAAQ,EAAE,IAAI,QAAQ,CAAC;YACrB,QAAQ,EAAE,GAAG,CAAC,IAAI;YAClB,MAAM;YACN,WAAW,EAAE,cAAc;YAC3B,cAAc,EAAE,sBAAsB;YACtC,WAAW,EAAE,EAA2B;YACxC,0BAA0B,EACxB,mBAAmB,CAAC,0BAA0B;YAChD,0DAA0D;YAC1D,qDAAqD;YACrD,MAAM,EAAE;gBACN,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBACtB,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAA;oBACpC,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,GAAG,KAAK,CAAA;oBACtD,CAAC;oBAED,OAAO,OAAO,CAAA;gBAChB,CAAC;aACF;SACF,CAAC;KACH,CAAA;AACH,CAAC","sourcesContent":["import { S3Client } from '@aws-sdk/client-s3'\nimport { AwsCredentialIdentity } from '@smithy/types'\nimport { StorageConstructorOptions } from './types.js'\nimport { getOneBlinkHttpHandler } from './http-handlers/index.js'\nimport { OneBlinkRequestHandler } from './OneBlinkRequestHandler.js'\nimport { RequestBodyHeader } from './http-handlers/types.js'\n\nconst RETRY_ATTEMPTS = 3\n\nexport function generateS3Client<T>({\n region,\n apiOrigin,\n getBearerToken,\n requestBodyHeader,\n}: StorageConstructorOptions & {\n requestBodyHeader?: RequestBodyHeader\n}) {\n const oneBlinkHttpHandler = getOneBlinkHttpHandler()\n const oneBlinkRequestHandler = new OneBlinkRequestHandler<T>(\n oneBlinkHttpHandler,\n requestBodyHeader,\n )\n\n // The endpoint we use instead of the the AWS S3 endpoint is\n // formatted internally by the AWS S3 SDK. It will add the Bucket\n // parameter below as the subdomain to the URL (as long as the\n // bucket does not contain a `.`). The logic below allows the final\n // URL used to upload the object to be the origin that is passed in.\n // The suffix on the end is important as it will allow us to route\n // traffic to S3 via lambda at edge instead of going to our API.\n const url = new URL(apiOrigin)\n url.pathname = '/storage'\n const [bucket, ...domainParts] = url.hostname.split('.')\n url.hostname = domainParts.join('.')\n\n return {\n bucket,\n oneBlinkRequestHandler,\n s3Client: new S3Client({\n endpoint: url.href,\n region,\n maxAttempts: RETRY_ATTEMPTS,\n requestHandler: oneBlinkRequestHandler,\n credentials: {} as AwsCredentialIdentity,\n requestChecksumCalculation:\n oneBlinkHttpHandler.requestChecksumCalculation,\n // Sign requests with our own Authorization header instead\n // of letting AWS SDK attempt to generate credentials\n signer: {\n sign: async (request) => {\n const token = await getBearerToken()\n if (token) {\n request.headers['authorization'] = 'Bearer ' + token\n }\n\n return request\n },\n },\n }),\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import { HttpHandlerOptions } from '@smithy/types';
|
|
|
3
3
|
import { IOneBlinkHttpHandler } from './types.js';
|
|
4
4
|
import { GetObjectCommandOutput } from '@aws-sdk/client-s3';
|
|
5
5
|
export declare class OneBlinkFetchHandler implements IOneBlinkHttpHandler {
|
|
6
|
+
requestChecksumCalculation: "WHEN_REQUIRED";
|
|
6
7
|
handleRequest(request: HttpRequest, options?: HttpHandlerOptions): Promise<HttpResponse>;
|
|
7
8
|
handleFailResponse(response: HttpResponse): Promise<{
|
|
8
9
|
statusCode: number;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { RequestChecksumCalculation } from '@aws-sdk/middleware-flexible-checksums';
|
|
1
2
|
export class OneBlinkFetchHandler {
|
|
3
|
+
requestChecksumCalculation = RequestChecksumCalculation.WHEN_REQUIRED;
|
|
2
4
|
async handleRequest(request, options) {
|
|
3
5
|
const { FetchHttpHandler } = await import('@smithy/fetch-http-handler');
|
|
4
6
|
const fetchHttpHandler = new FetchHttpHandler();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetchHandler.js","sourceRoot":"","sources":["../../src/http-handlers/FetchHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FetchHandler.js","sourceRoot":"","sources":["../../src/http-handlers/FetchHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAA;AAEnF,MAAM,OAAO,oBAAoB;IAC/B,0BAA0B,GAAG,0BAA0B,CAAC,aAAa,CAAA;IAErE,KAAK,CAAC,aAAa,CAAC,OAAoB,EAAE,OAA4B;QACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAA;QACvE,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACpE,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAsB;QAC7C,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEjD,QAAQ,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,KAAK,iCAAiC,CAAC;YACvC,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,OAAO,EAAE,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO;iBAC9C,CAAA;YACH,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO;oBACL,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,EAAE;iBACpC,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iCAAiC,CACrC,sBAA8C;QAE9C,IACE,sBAAsB,CAAC,IAAI,YAAY,IAAI;YAC3C,CAAC,MAAM,CAAC,cAAc;gBACpB,sBAAsB,CAAC,IAAI,YAAY,MAAM,CAAC,cAAc,CAAC,EAC/D,CAAC;YACD,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAM,CAAA;QACtE,CAAC;IACH,CAAC;IAED,wBAAwB;QACtB,MAAM,aAAa,GACjB,MAAM,CAAC,SAAS;YAChB,YAAY,IAAI,MAAM,CAAC,SAAS;YAChC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU;YAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,KAAK,QAAQ;YAC/C,eAAe,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU;YAC5C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa;YAC3C,CAAC,CAAC,SAAS,CAAA;QACf,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAA;YACX,KAAK,IAAI;gBACP,OAAO,CAAC,CAAA;YACV,KAAK,SAAS,CAAC;YACf,KAAK,IAAI,CAAC;YACV,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC;IACH,CAAC;CACF","sourcesContent":["import { HttpRequest, HttpResponse } from '@smithy/protocol-http'\nimport { HttpHandlerOptions } from '@smithy/types'\nimport { IOneBlinkHttpHandler } from './types.js'\nimport { GetObjectCommandOutput } from '@aws-sdk/client-s3'\nimport { RequestChecksumCalculation } from '@aws-sdk/middleware-flexible-checksums'\n\nexport class OneBlinkFetchHandler implements IOneBlinkHttpHandler {\n requestChecksumCalculation = RequestChecksumCalculation.WHEN_REQUIRED\n\n async handleRequest(request: HttpRequest, options?: HttpHandlerOptions) {\n const { FetchHttpHandler } = await import('@smithy/fetch-http-handler')\n const fetchHttpHandler = new FetchHttpHandler()\n const { response } = await fetchHttpHandler.handle(request, options)\n return response\n }\n\n async handleFailResponse(response: HttpResponse) {\n const fetchResponse = new Response(response.body)\n\n switch (response.headers['content-type']) {\n case 'application/json; charset=utf-8':\n case 'application/json': {\n return {\n statusCode: response.statusCode,\n message: (await fetchResponse.json()).message,\n }\n }\n default: {\n return {\n statusCode: response.statusCode,\n message: await fetchResponse.text(),\n }\n }\n }\n }\n\n async parseGetObjectCommandOutputAsJson<T>(\n getObjectCommandOutput: GetObjectCommandOutput,\n ): Promise<T | undefined> {\n if (\n getObjectCommandOutput.Body instanceof Blob ||\n (window.ReadableStream &&\n getObjectCommandOutput.Body instanceof window.ReadableStream)\n ) {\n return (await new Response(getObjectCommandOutput.Body).json()) as T\n }\n }\n\n determineUploadQueueSize() {\n const effectiveType =\n window.navigator &&\n 'connection' in window.navigator &&\n !!window.navigator.connection &&\n typeof window.navigator.connection === 'object' &&\n 'effectiveType' in window.navigator.connection\n ? window.navigator.connection.effectiveType\n : undefined\n switch (effectiveType) {\n case '4g':\n return 10\n case '3g':\n return 2\n case 'slow-2g':\n case '2g':\n default: {\n return 1\n }\n }\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import { HttpHandlerOptions } from '@smithy/types';
|
|
|
3
3
|
import { IOneBlinkHttpHandler } from './types.js';
|
|
4
4
|
import { GetObjectCommandOutput } from '@aws-sdk/client-s3';
|
|
5
5
|
export declare class OneBlinkNodeJsHandler implements IOneBlinkHttpHandler {
|
|
6
|
+
requestChecksumCalculation: "WHEN_SUPPORTED";
|
|
6
7
|
handleRequest(request: HttpRequest, options?: HttpHandlerOptions | undefined): Promise<HttpResponse>;
|
|
7
8
|
handleFailResponse(response: HttpResponse): Promise<{
|
|
8
9
|
statusCode: number;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { RequestChecksumCalculation } from '@aws-sdk/middleware-flexible-checksums';
|
|
1
2
|
export class OneBlinkNodeJsHandler {
|
|
3
|
+
requestChecksumCalculation = RequestChecksumCalculation.WHEN_SUPPORTED;
|
|
2
4
|
async handleRequest(request, options) {
|
|
3
5
|
const { NodeHttpHandler } = await import('@smithy/node-http-handler');
|
|
4
6
|
const nodeHttpHandler = new NodeHttpHandler();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeJsHandler.js","sourceRoot":"","sources":["../../src/http-handlers/NodeJsHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeJsHandler.js","sourceRoot":"","sources":["../../src/http-handlers/NodeJsHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAA;AAEnF,MAAM,OAAO,qBAAqB;IAChC,0BAA0B,GAAG,0BAA0B,CAAC,cAAc,CAAA;IAEtE,KAAK,CAAC,aAAa,CACjB,OAAoB,EACpB,OAAwC;QAExC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAA;QACrE,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACnE,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAsB;QAC7C,QAAQ,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,KAAK,iCAAiC,CAAC;YACvC,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC3C,IAAI,QAAQ,CAAC,IAAI,YAAY,QAAQ,EAAE,CAAC;oBACtC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;oBAClD,OAAO;wBACL,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,OAAO,EAAG,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAkB;6BAC7D,OAAO;qBACX,CAAA;gBACH,CAAC;gBAED,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtC,OAAO;wBACL,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO;qBAC3C,CAAA;gBACH,CAAC;gBACD,MAAK;YACP,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC3C,IAAI,QAAQ,CAAC,IAAI,YAAY,QAAQ,EAAE,CAAC;oBACtC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;oBAClD,OAAO;wBACL,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,OAAO,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;qBAC7C,CAAA;gBACH,CAAC;gBAED,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtC,OAAO;wBACL,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,OAAO,EAAE,QAAQ,CAAC,IAAI;qBACvB,CAAA;gBACH,CAAC;gBACD,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iCAAiC,CACrC,sBAA8C;QAE9C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,sBAAsB,CAAC,IAAI,YAAY,QAAQ,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;YAClD,OAAO,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAM,CAAA;QACjE,CAAC;IACH,CAAC;IAED,wBAAwB;QACtB,OAAO,EAAE,CAAA;IACX,CAAC;CACF","sourcesContent":["import { HttpRequest, HttpResponse } from '@smithy/protocol-http'\nimport { HttpHandlerOptions } from '@smithy/types'\nimport { IOneBlinkHttpHandler, FailResponse } from './types.js'\nimport { GetObjectCommandOutput } from '@aws-sdk/client-s3'\nimport { RequestChecksumCalculation } from '@aws-sdk/middleware-flexible-checksums'\n\nexport class OneBlinkNodeJsHandler implements IOneBlinkHttpHandler {\n requestChecksumCalculation = RequestChecksumCalculation.WHEN_SUPPORTED\n\n async handleRequest(\n request: HttpRequest,\n options?: HttpHandlerOptions | undefined,\n ) {\n const { NodeHttpHandler } = await import('@smithy/node-http-handler')\n const nodeHttpHandler = new NodeHttpHandler()\n const { response } = await nodeHttpHandler.handle(request, options)\n return response\n }\n\n async handleFailResponse(response: HttpResponse) {\n switch (response.headers['content-type']) {\n case 'application/json; charset=utf-8':\n case 'application/json': {\n const { Readable } = await import('stream')\n if (response.body instanceof Readable) {\n const consumers = await import('stream/consumers')\n return {\n statusCode: response.statusCode,\n message: ((await consumers.json(response.body)) as FailResponse)\n .message,\n }\n }\n\n if (typeof response.body === 'string') {\n return {\n statusCode: response.statusCode,\n message: JSON.parse(response.body).message,\n }\n }\n break\n }\n default: {\n const { Readable } = await import('stream')\n if (response.body instanceof Readable) {\n const consumers = await import('stream/consumers')\n return {\n statusCode: response.statusCode,\n message: await consumers.text(response.body),\n }\n }\n\n if (typeof response.body === 'string') {\n return {\n statusCode: response.statusCode,\n message: response.body,\n }\n }\n break\n }\n }\n }\n\n async parseGetObjectCommandOutputAsJson<T>(\n getObjectCommandOutput: GetObjectCommandOutput,\n ): Promise<T | undefined> {\n const { Readable } = await import('stream')\n if (getObjectCommandOutput.Body instanceof Readable) {\n const consumers = await import('stream/consumers')\n return (await consumers.json(getObjectCommandOutput.Body)) as T\n }\n }\n\n determineUploadQueueSize() {\n return 10\n }\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GetObjectCommandOutput } from '@aws-sdk/client-s3';
|
|
2
|
+
import { RequestChecksumCalculation } from '@aws-sdk/middleware-flexible-checksums';
|
|
2
3
|
import { AWSTypes } from '@oneblink/types';
|
|
3
4
|
import { HttpRequest, HttpResponse } from '@smithy/protocol-http';
|
|
4
5
|
import { HttpHandlerOptions } from '@smithy/types';
|
|
@@ -11,6 +12,11 @@ export type FailResponse = {
|
|
|
11
12
|
message: string;
|
|
12
13
|
};
|
|
13
14
|
export interface IOneBlinkHttpHandler {
|
|
15
|
+
/**
|
|
16
|
+
* Need this to avoid this [issue with the AWS
|
|
17
|
+
* SDK](https://github.com/aws/aws-sdk-js-v3/issues/6810)
|
|
18
|
+
*/
|
|
19
|
+
requestChecksumCalculation: RequestChecksumCalculation;
|
|
14
20
|
handleRequest: (request: HttpRequest, options?: HttpHandlerOptions) => Promise<HttpResponse>;
|
|
15
21
|
parseGetObjectCommandOutputAsJson: <T>(getObjectCommandOutput: GetObjectCommandOutput) => Promise<T | undefined>;
|
|
16
22
|
handleFailResponse: (response: HttpResponse) => Promise<FailResponse | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http-handlers/types.ts"],"names":[],"mappings":"","sourcesContent":["import { GetObjectCommandOutput } from '@aws-sdk/client-s3'\nimport { AWSTypes } from '@oneblink/types'\nimport { HttpRequest, HttpResponse } from '@smithy/protocol-http'\nimport { HttpHandlerOptions } from '@smithy/types'\n\nexport type RequestBodyHeader = Record<string, unknown>\n\nexport type OneBlinkResponse<T> = T & {\n s3: AWSTypes.S3Configuration\n}\nexport type FailResponse = {\n statusCode: number\n message: string\n}\n\nexport interface IOneBlinkHttpHandler {\n handleRequest: (\n request: HttpRequest,\n options?: HttpHandlerOptions,\n ) => Promise<HttpResponse>\n parseGetObjectCommandOutputAsJson: <T>(\n getObjectCommandOutput: GetObjectCommandOutput,\n ) => Promise<T | undefined>\n handleFailResponse: (\n response: HttpResponse,\n ) => Promise<FailResponse | undefined>\n determineUploadQueueSize: () => number\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http-handlers/types.ts"],"names":[],"mappings":"","sourcesContent":["import { GetObjectCommandOutput } from '@aws-sdk/client-s3'\nimport { RequestChecksumCalculation } from '@aws-sdk/middleware-flexible-checksums'\nimport { AWSTypes } from '@oneblink/types'\nimport { HttpRequest, HttpResponse } from '@smithy/protocol-http'\nimport { HttpHandlerOptions } from '@smithy/types'\n\nexport type RequestBodyHeader = Record<string, unknown>\n\nexport type OneBlinkResponse<T> = T & {\n s3: AWSTypes.S3Configuration\n}\nexport type FailResponse = {\n statusCode: number\n message: string\n}\n\nexport interface IOneBlinkHttpHandler {\n /**\n * Need this to avoid this [issue with the AWS\n * SDK](https://github.com/aws/aws-sdk-js-v3/issues/6810)\n */\n requestChecksumCalculation: RequestChecksumCalculation\n handleRequest: (\n request: HttpRequest,\n options?: HttpHandlerOptions,\n ) => Promise<HttpResponse>\n parseGetObjectCommandOutputAsJson: <T>(\n getObjectCommandOutput: GetObjectCommandOutput,\n ) => Promise<T | undefined>\n handleFailResponse: (\n response: HttpResponse,\n ) => Promise<FailResponse | undefined>\n determineUploadQueueSize: () => number\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneblink/storage",
|
|
3
3
|
"description": "SDK for managing storage files in the OneBlink ecosystem",
|
|
4
|
-
"version": "4.0.0-beta.
|
|
4
|
+
"version": "4.0.0-beta.3",
|
|
5
5
|
"author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/oneblink/storage/issues"
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"@eslint/eslintrc": "^3.3.3",
|
|
16
16
|
"@eslint/js": "^9.39.2",
|
|
17
17
|
"@microsoft/eslint-plugin-sdl": "^1.1.0",
|
|
18
|
-
"@oneblink/release-cli": "^
|
|
18
|
+
"@oneblink/release-cli": "^4.0.0-beta.2",
|
|
19
19
|
"@oneblink/types": "github:oneblink/types",
|
|
20
20
|
"@types/node": "^24.10.8",
|
|
21
21
|
"@typescript-eslint/eslint-plugin": "^8.53.0",
|