@walde.ai/walde-sdk 0.1.5 → 0.1.8
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/sdk/dev/mock-credentials-provider.d.ts +22 -0
- package/dist/sdk/dev/mock-credentials-provider.d.ts.map +1 -0
- package/dist/sdk/dev/mock-credentials-provider.js +59 -0
- package/dist/sdk/dev/mock-credentials-provider.js.map +1 -0
- package/dist/sdk/dev/s3-mock-client-factory.d.ts +15 -0
- package/dist/sdk/dev/s3-mock-client-factory.d.ts.map +1 -0
- package/dist/sdk/dev/s3-mock-client-factory.js +25 -0
- package/dist/sdk/dev/s3-mock-client-factory.js.map +1 -0
- package/dist/sdk/dev/s3-mock-client.d.ts +14 -0
- package/dist/sdk/dev/s3-mock-client.d.ts.map +1 -0
- package/dist/sdk/dev/s3-mock-client.js +45 -0
- package/dist/sdk/dev/s3-mock-client.js.map +1 -0
- package/dist/sdk/domain/entities/credentials.d.ts +5 -0
- package/dist/sdk/domain/entities/credentials.d.ts.map +1 -1
- package/dist/sdk/domain/entities/credentials.js +41 -0
- package/dist/sdk/domain/entities/credentials.js.map +1 -1
- package/dist/sdk/domain/entities/walde-admin-config.d.ts +4 -0
- package/dist/sdk/domain/entities/walde-admin-config.d.ts.map +1 -1
- package/dist/sdk/domain/entities/walde-admin-config.js +7 -2
- package/dist/sdk/domain/entities/walde-admin-config.js.map +1 -1
- package/dist/sdk/domain/ports/out/s3-client-factory.d.ts +13 -0
- package/dist/sdk/domain/ports/out/s3-client-factory.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/s3-client-factory.js +3 -0
- package/dist/sdk/domain/ports/out/s3-client-factory.js.map +1 -0
- package/dist/sdk/index.d.ts +6 -1
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +12 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/infra/adapters/admin-http-client.d.ts +16 -0
- package/dist/sdk/infra/adapters/admin-http-client.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/admin-http-client.js +75 -0
- package/dist/sdk/infra/adapters/admin-http-client.js.map +1 -0
- package/dist/sdk/infra/adapters/api-client.d.ts +2 -2
- package/dist/sdk/infra/adapters/api-client.d.ts.map +1 -1
- package/dist/sdk/infra/adapters/api-client.js.map +1 -1
- package/dist/sdk/infra/adapters/aws-s3-client-factory.d.ts +13 -0
- package/dist/sdk/infra/adapters/aws-s3-client-factory.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/aws-s3-client-factory.js +24 -0
- package/dist/sdk/infra/adapters/aws-s3-client-factory.js.map +1 -0
- package/dist/sdk/infra/adapters/default-http-client.d.ts +2 -6
- package/dist/sdk/infra/adapters/default-http-client.d.ts.map +1 -1
- package/dist/sdk/infra/adapters/default-http-client.js +7 -12
- package/dist/sdk/infra/adapters/default-http-client.js.map +1 -1
- package/dist/sdk/infra/adapters/default-token-provider.d.ts +8 -1
- package/dist/sdk/infra/adapters/default-token-provider.d.ts.map +1 -1
- package/dist/sdk/infra/adapters/default-token-provider.js +34 -1
- package/dist/sdk/infra/adapters/default-token-provider.js.map +1 -1
- package/dist/sdk/infra/adapters/frontend-http-client.d.ts +9 -7
- package/dist/sdk/infra/adapters/frontend-http-client.d.ts.map +1 -1
- package/dist/sdk/infra/adapters/frontend-http-client.js +17 -11
- package/dist/sdk/infra/adapters/frontend-http-client.js.map +1 -1
- package/dist/sdk/infra/adapters/http-request-handler.d.ts +31 -0
- package/dist/sdk/infra/adapters/http-request-handler.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/http-request-handler.js +83 -0
- package/dist/sdk/infra/adapters/http-request-handler.js.map +1 -0
- package/dist/sdk/infra/adapters/repositories/aws-s3-files-repo.d.ts +3 -1
- package/dist/sdk/infra/adapters/repositories/aws-s3-files-repo.d.ts.map +1 -1
- package/dist/sdk/infra/adapters/repositories/aws-s3-files-repo.js +6 -10
- package/dist/sdk/infra/adapters/repositories/aws-s3-files-repo.js.map +1 -1
- package/dist/sdk/infra/adapters/repositories/default-walde-admin-config.d.ts.map +1 -1
- package/dist/sdk/infra/adapters/repositories/default-walde-admin-config.js +3 -1
- package/dist/sdk/infra/adapters/repositories/default-walde-admin-config.js.map +1 -1
- package/dist/sdk/infra/backend/walde-client.d.ts +3 -4
- package/dist/sdk/infra/backend/walde-client.d.ts.map +1 -1
- package/dist/sdk/infra/backend/walde-client.js +9 -9
- package/dist/sdk/infra/backend/walde-client.js.map +1 -1
- package/dist/sdk/infra/factories/s3-files-repo-factory.d.ts +3 -0
- package/dist/sdk/infra/factories/s3-files-repo-factory.d.ts.map +1 -1
- package/dist/sdk/infra/factories/s3-files-repo-factory.js +5 -1
- package/dist/sdk/infra/factories/s3-files-repo-factory.js.map +1 -1
- package/dist/sdk/infra/factories/walde-admin-factory.d.ts +2 -0
- package/dist/sdk/infra/factories/walde-admin-factory.d.ts.map +1 -1
- package/dist/sdk/infra/factories/walde-admin-factory.js +6 -5
- package/dist/sdk/infra/factories/walde-admin-factory.js.map +1 -1
- package/dist/sdk/infra/futures/content-by-key-future.d.ts +27 -0
- package/dist/sdk/infra/futures/content-by-key-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/content-by-key-future.js +63 -0
- package/dist/sdk/infra/futures/content-by-key-future.js.map +1 -0
- package/dist/sdk/infra/futures/content-item-future.d.ts +2 -3
- package/dist/sdk/infra/futures/content-item-future.d.ts.map +1 -1
- package/dist/sdk/infra/futures/content-item-future.js +6 -9
- package/dist/sdk/infra/futures/content-item-future.js.map +1 -1
- package/dist/sdk/infra/futures/content-list-future.d.ts +3 -3
- package/dist/sdk/infra/futures/content-list-future.d.ts.map +1 -1
- package/dist/sdk/infra/futures/content-list-future.js +14 -4
- package/dist/sdk/infra/futures/content-list-future.js.map +1 -1
- package/dist/sdk/infra/futures/credentials-future.d.ts.map +1 -1
- package/dist/sdk/infra/futures/credentials-future.js +38 -7
- package/dist/sdk/infra/futures/credentials-future.js.map +1 -1
- package/dist/sdk/infra/futures/frontend-contents-future.d.ts +12 -17
- package/dist/sdk/infra/futures/frontend-contents-future.d.ts.map +1 -1
- package/dist/sdk/infra/futures/frontend-contents-future.js +14 -35
- package/dist/sdk/infra/futures/frontend-contents-future.js.map +1 -1
- package/dist/sdk/infra/futures/walde-future.d.ts +3 -14
- package/dist/sdk/infra/futures/walde-future.d.ts.map +1 -1
- package/dist/sdk/infra/futures/walde-future.js +3 -31
- package/dist/sdk/infra/futures/walde-future.js.map +1 -1
- package/dist/sdk/make-walde-admin.d.ts +2 -0
- package/dist/sdk/make-walde-admin.d.ts.map +1 -1
- package/dist/sdk/make-walde-admin.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CredentialsProvider } from '../../sdk/domain/ports/out/credentials-provider';
|
|
2
|
+
import { Credentials } from '../../sdk/domain/entities/credentials';
|
|
3
|
+
/**
|
|
4
|
+
* Mock credentials provider for testing
|
|
5
|
+
* Generates valid JWT-formatted tokens with configurable expiry
|
|
6
|
+
*/
|
|
7
|
+
export declare class MockCredentialsProvider implements CredentialsProvider {
|
|
8
|
+
private readonly accessToken?;
|
|
9
|
+
private readonly refreshToken?;
|
|
10
|
+
private readonly idToken?;
|
|
11
|
+
private readonly tokenExpirySeconds;
|
|
12
|
+
constructor(accessToken?: string | undefined, refreshToken?: string | undefined, idToken?: string | undefined, tokenExpirySeconds?: number);
|
|
13
|
+
/**
|
|
14
|
+
* Retrieve mock credentials with valid JWT tokens
|
|
15
|
+
*/
|
|
16
|
+
retrieve(): Promise<Credentials>;
|
|
17
|
+
/**
|
|
18
|
+
* Save credentials (no-op for mock)
|
|
19
|
+
*/
|
|
20
|
+
save(credentials: Credentials): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=mock-credentials-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-credentials-provider.d.ts","sourceRoot":"","sources":["../../../src/sdk/dev/mock-credentials-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AA+BhE;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IAE/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAHlB,WAAW,CAAC,EAAE,MAAM,YAAA,EACpB,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,OAAO,CAAC,EAAE,MAAM,YAAA,EAChB,kBAAkB,GAAE,MAAa;IAGpD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAQtC;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockCredentialsProvider = void 0;
|
|
4
|
+
const credentials_1 = require("../../sdk/domain/entities/credentials");
|
|
5
|
+
/**
|
|
6
|
+
* Create a mock JWT token with specified expiry
|
|
7
|
+
* @param expirySeconds Seconds from now until token expires (default: 1 hour)
|
|
8
|
+
* @returns Valid JWT-formatted mock token
|
|
9
|
+
*/
|
|
10
|
+
function createMockJwt(expirySeconds = 3600) {
|
|
11
|
+
const header = { alg: 'HS256', typ: 'JWT' };
|
|
12
|
+
const payload = {
|
|
13
|
+
sub: 'mock-user-id',
|
|
14
|
+
name: 'Mock User',
|
|
15
|
+
iat: Math.floor(Date.now() / 1000),
|
|
16
|
+
exp: Math.floor(Date.now() / 1000) + expirySeconds
|
|
17
|
+
};
|
|
18
|
+
const base64UrlEncode = (obj) => {
|
|
19
|
+
return Buffer.from(JSON.stringify(obj))
|
|
20
|
+
.toString('base64')
|
|
21
|
+
.replace(/\+/g, '-')
|
|
22
|
+
.replace(/\//g, '_')
|
|
23
|
+
.replace(/=/g, '');
|
|
24
|
+
};
|
|
25
|
+
const encodedHeader = base64UrlEncode(header);
|
|
26
|
+
const encodedPayload = base64UrlEncode(payload);
|
|
27
|
+
const signature = 'mock-signature';
|
|
28
|
+
return `${encodedHeader}.${encodedPayload}.${signature}`;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Mock credentials provider for testing
|
|
32
|
+
* Generates valid JWT-formatted tokens with configurable expiry
|
|
33
|
+
*/
|
|
34
|
+
class MockCredentialsProvider {
|
|
35
|
+
accessToken;
|
|
36
|
+
refreshToken;
|
|
37
|
+
idToken;
|
|
38
|
+
tokenExpirySeconds;
|
|
39
|
+
constructor(accessToken, refreshToken, idToken, tokenExpirySeconds = 3600) {
|
|
40
|
+
this.accessToken = accessToken;
|
|
41
|
+
this.refreshToken = refreshToken;
|
|
42
|
+
this.idToken = idToken;
|
|
43
|
+
this.tokenExpirySeconds = tokenExpirySeconds;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Retrieve mock credentials with valid JWT tokens
|
|
47
|
+
*/
|
|
48
|
+
async retrieve() {
|
|
49
|
+
return new credentials_1.Credentials(this.accessToken || createMockJwt(this.tokenExpirySeconds), this.refreshToken || 'mock-refresh-token', this.idToken || createMockJwt(this.tokenExpirySeconds));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Save credentials (no-op for mock)
|
|
53
|
+
*/
|
|
54
|
+
async save(credentials) {
|
|
55
|
+
// No-op for mock implementation
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.MockCredentialsProvider = MockCredentialsProvider;
|
|
59
|
+
//# sourceMappingURL=mock-credentials-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-credentials-provider.js","sourceRoot":"","sources":["../../../src/sdk/dev/mock-credentials-provider.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAEhE;;;;GAIG;AACH,SAAS,aAAa,CAAC,gBAAwB,IAAI;IACjD,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,cAAc;QACnB,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAClC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa;KACnD,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,GAAQ,EAAU,EAAE;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aACpC,QAAQ,CAAC,QAAQ,CAAC;aAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,gBAAgB,CAAC;IAEnC,OAAO,GAAG,aAAa,IAAI,cAAc,IAAI,SAAS,EAAE,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAa,uBAAuB;IAEf;IACA;IACA;IACA;IAJnB,YACmB,WAAoB,EACpB,YAAqB,EACrB,OAAgB,EAChB,qBAA6B,IAAI;QAHjC,gBAAW,GAAX,WAAW,CAAS;QACpB,iBAAY,GAAZ,YAAY,CAAS;QACrB,YAAO,GAAP,OAAO,CAAS;QAChB,uBAAkB,GAAlB,kBAAkB,CAAe;IACjD,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,yBAAW,CACpB,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAC1D,IAAI,CAAC,YAAY,IAAI,oBAAoB,EACzC,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACvD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,WAAwB;QACjC,gCAAgC;IAClC,CAAC;CACF;AAzBD,0DAyBC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { S3ClientFactory } from '../../sdk/domain/ports/out/s3-client-factory';
|
|
2
|
+
import { UiUploadCredentials } from '../../sdk/domain/entities/ui-upload-credentials';
|
|
3
|
+
import { S3MockClient } from './s3-mock-client';
|
|
4
|
+
/**
|
|
5
|
+
* Factory for creating mock S3 clients that connect to writer-api mock server
|
|
6
|
+
*/
|
|
7
|
+
export declare class S3MockClientFactory implements S3ClientFactory {
|
|
8
|
+
private readonly endpoint;
|
|
9
|
+
constructor(endpoint: string);
|
|
10
|
+
/**
|
|
11
|
+
* Create a mock S3 client configured with the provided credentials
|
|
12
|
+
*/
|
|
13
|
+
createS3Client(credentials: UiUploadCredentials): S3MockClient;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=s3-mock-client-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-mock-client-factory.d.ts","sourceRoot":"","sources":["../../../src/sdk/dev/s3-mock-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE7C;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,mBAAmB,GAAG,YAAY;CAO/D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S3MockClientFactory = void 0;
|
|
4
|
+
const s3_mock_client_1 = require("./s3-mock-client");
|
|
5
|
+
/**
|
|
6
|
+
* Factory for creating mock S3 clients that connect to writer-api mock server
|
|
7
|
+
*/
|
|
8
|
+
class S3MockClientFactory {
|
|
9
|
+
endpoint;
|
|
10
|
+
constructor(endpoint) {
|
|
11
|
+
this.endpoint = endpoint;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create a mock S3 client configured with the provided credentials
|
|
15
|
+
*/
|
|
16
|
+
createS3Client(credentials) {
|
|
17
|
+
return new s3_mock_client_1.S3MockClient(this.endpoint, {
|
|
18
|
+
accessKeyId: credentials.accessKey,
|
|
19
|
+
secretAccessKey: credentials.secretKey,
|
|
20
|
+
sessionToken: credentials.sessionToken
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.S3MockClientFactory = S3MockClientFactory;
|
|
25
|
+
//# sourceMappingURL=s3-mock-client-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-mock-client-factory.js","sourceRoot":"","sources":["../../../src/sdk/dev/s3-mock-client-factory.ts"],"names":[],"mappings":";;;AAEA,qDAAgD;AAEhD;;GAEG;AACH,MAAa,mBAAmB;IACD;IAA7B,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjD;;OAEG;IACH,cAAc,CAAC,WAAgC;QAC7C,OAAO,IAAI,6BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE;YACrC,WAAW,EAAE,WAAW,CAAC,SAAS;YAClC,eAAe,EAAE,WAAW,CAAC,SAAS;YACtC,YAAY,EAAE,WAAW,CAAC,YAAY;SACvC,CAAC,CAAC;IACL,CAAC;CACF;AAbD,kDAaC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PutObjectCommand } from '@aws-sdk/client-s3';
|
|
2
|
+
/**
|
|
3
|
+
* Mock S3 client that sends requests to writer-api mock server
|
|
4
|
+
*/
|
|
5
|
+
export declare class S3MockClient {
|
|
6
|
+
private readonly endpoint;
|
|
7
|
+
private credentials;
|
|
8
|
+
constructor(endpoint: string, credentials?: any);
|
|
9
|
+
/**
|
|
10
|
+
* Send command to mock S3 server
|
|
11
|
+
*/
|
|
12
|
+
send(command: PutObjectCommand): Promise<any>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=s3-mock-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-mock-client.d.ts","sourceRoot":"","sources":["../../../src/sdk/dev/s3-mock-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,WAAW,CAAM;gBAEI,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG;IAIhE;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;CAgCpD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S3MockClient = void 0;
|
|
4
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
+
/**
|
|
6
|
+
* Mock S3 client that sends requests to writer-api mock server
|
|
7
|
+
*/
|
|
8
|
+
class S3MockClient {
|
|
9
|
+
endpoint;
|
|
10
|
+
credentials;
|
|
11
|
+
constructor(endpoint, credentials) {
|
|
12
|
+
this.endpoint = endpoint;
|
|
13
|
+
this.credentials = credentials;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Send command to mock S3 server
|
|
17
|
+
*/
|
|
18
|
+
async send(command) {
|
|
19
|
+
if (!(command instanceof client_s3_1.PutObjectCommand)) {
|
|
20
|
+
throw new Error('Only PutObjectCommand is supported');
|
|
21
|
+
}
|
|
22
|
+
const input = command.input;
|
|
23
|
+
const url = `${this.endpoint}/${input.Bucket}/${input.Key}`;
|
|
24
|
+
const headers = {
|
|
25
|
+
'Content-Type': input.ContentType || 'application/octet-stream'
|
|
26
|
+
};
|
|
27
|
+
if (this.credentials?.sessionToken) {
|
|
28
|
+
headers['X-Amz-Security-Token'] = this.credentials.sessionToken;
|
|
29
|
+
}
|
|
30
|
+
const response = await fetch(url, {
|
|
31
|
+
method: 'PUT',
|
|
32
|
+
headers,
|
|
33
|
+
body: input.Body
|
|
34
|
+
});
|
|
35
|
+
if (response.status === 403) {
|
|
36
|
+
throw new Error('Access denied: Invalid credentials or insufficient permissions');
|
|
37
|
+
}
|
|
38
|
+
if (!response.ok) {
|
|
39
|
+
throw new Error(`Upload failed with status ${response.status}: ${response.statusText}`);
|
|
40
|
+
}
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.S3MockClient = S3MockClient;
|
|
45
|
+
//# sourceMappingURL=s3-mock-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-mock-client.js","sourceRoot":"","sources":["../../../src/sdk/dev/s3-mock-client.ts"],"names":[],"mappings":";;;AAAA,kDAAsD;AAEtD;;GAEG;AACH,MAAa,YAAY;IAGM;IAFrB,WAAW,CAAM;IAEzB,YAA6B,QAAgB,EAAE,WAAiB;QAAnC,aAAQ,GAAR,QAAQ,CAAQ;QAC3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,IAAI,CAAC,CAAC,OAAO,YAAY,4BAAgB,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QAE5D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,KAAK,CAAC,WAAW,IAAI,0BAA0B;SAChE,CAAC;QAEF,IAAI,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,CAAC;YACnC,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;QAClE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,IAAgB;SAC7B,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AA1CD,oCA0CC"}
|
|
@@ -10,5 +10,10 @@ export declare class Credentials {
|
|
|
10
10
|
* Check if credentials are complete (at least access token is present)
|
|
11
11
|
*/
|
|
12
12
|
isComplete(): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Returns time in milliseconds until idToken expires.
|
|
15
|
+
* Returns 0 if expired or if expiry cannot be determined.
|
|
16
|
+
*/
|
|
17
|
+
timeToExpirationMs(): number;
|
|
13
18
|
}
|
|
14
19
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/credentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/credentials.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,qBAAa,WAAW;aAEJ,WAAW,EAAE,MAAM;aACnB,YAAY,EAAE,MAAM;aACpB,OAAO,EAAE,MAAM;gBAFf,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM;IAGjC;;OAEG;IACI,UAAU,IAAI,OAAO;IAI5B;;;OAGG;IACI,kBAAkB,IAAI,MAAM;CAgBpC"}
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Credentials = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Decode the payload of a JWT without verification
|
|
6
|
+
* NOTE: Uses Node.js Buffer API - this file is only used in Node.js context (admin SDK)
|
|
7
|
+
* @param token JWT token string
|
|
8
|
+
* @returns Decoded payload or null if invalid
|
|
9
|
+
*/
|
|
10
|
+
function decodeJwtPayload(token) {
|
|
11
|
+
try {
|
|
12
|
+
const parts = token.split('.');
|
|
13
|
+
if (parts.length !== 3) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
// Decode base64url (replace URL-safe chars and add padding)
|
|
17
|
+
const base64 = parts[1].replace(/-/g, '+').replace(/_/g, '/');
|
|
18
|
+
const padding = '='.repeat((4 - base64.length % 4) % 4);
|
|
19
|
+
const base64WithPadding = base64 + padding;
|
|
20
|
+
// Decode base64 to string (Buffer is Node.js only - acceptable since credentials are admin-only)
|
|
21
|
+
const jsonPayload = Buffer.from(base64WithPadding, 'base64').toString('utf-8');
|
|
22
|
+
return JSON.parse(jsonPayload);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
4
28
|
/**
|
|
5
29
|
* User authentication credentials
|
|
6
30
|
*/
|
|
@@ -19,6 +43,23 @@ class Credentials {
|
|
|
19
43
|
isComplete() {
|
|
20
44
|
return !!this.accessToken;
|
|
21
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Returns time in milliseconds until idToken expires.
|
|
48
|
+
* Returns 0 if expired or if expiry cannot be determined.
|
|
49
|
+
*/
|
|
50
|
+
timeToExpirationMs() {
|
|
51
|
+
if (!this.idToken) {
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
const payload = decodeJwtPayload(this.idToken);
|
|
55
|
+
if (!payload || typeof payload.exp !== 'number') {
|
|
56
|
+
return 0;
|
|
57
|
+
}
|
|
58
|
+
const expiryTimeMs = payload.exp * 1000;
|
|
59
|
+
const nowMs = Date.now();
|
|
60
|
+
const timeToExpiry = expiryTimeMs - nowMs;
|
|
61
|
+
return timeToExpiry > 0 ? timeToExpiry : 0;
|
|
62
|
+
}
|
|
22
63
|
}
|
|
23
64
|
exports.Credentials = Credentials;
|
|
24
65
|
//# sourceMappingURL=credentials.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/credentials.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/credentials.ts"],"names":[],"mappings":";;;AAQA;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4DAA4D;QAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAC;QAE3C,iGAAiG;QACjG,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAa,WAAW;IAEJ;IACA;IACA;IAHlB,YACkB,WAAmB,EACnB,YAAoB,EACpB,OAAe;QAFf,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAQ;IAC9B,CAAC;IAEJ;;OAEG;IACI,UAAU;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC;QAE1C,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AAlCD,kCAkCC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Result } from '../../../std';
|
|
2
|
+
import { S3ClientFactory } from '../../../sdk/domain/ports/out/s3-client-factory';
|
|
2
3
|
/**
|
|
3
4
|
* Partial configuration data for Walde SDK (all optional)
|
|
4
5
|
*/
|
|
@@ -7,6 +8,7 @@ export interface PartialWaldeAdminConfigData {
|
|
|
7
8
|
clientId?: string;
|
|
8
9
|
region?: string;
|
|
9
10
|
userPoolId?: string;
|
|
11
|
+
s3ClientFactory?: S3ClientFactory;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* Complete configuration data for Walde SDK (all required)
|
|
@@ -16,6 +18,7 @@ export interface WaldeAdminConfigData {
|
|
|
16
18
|
clientId: string;
|
|
17
19
|
region: string;
|
|
18
20
|
userPoolId: string;
|
|
21
|
+
s3ClientFactory: S3ClientFactory;
|
|
19
22
|
}
|
|
20
23
|
/**
|
|
21
24
|
* Abstract base class for Walde configuration
|
|
@@ -30,6 +33,7 @@ export declare abstract class WaldeAdminConfig {
|
|
|
30
33
|
get clientId(): string | undefined;
|
|
31
34
|
get region(): string | undefined;
|
|
32
35
|
get userPoolId(): string | undefined;
|
|
36
|
+
get s3ClientFactory(): S3ClientFactory | undefined;
|
|
33
37
|
/**
|
|
34
38
|
* Merge with another config, current values override merged ones when set
|
|
35
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walde-admin-config.d.ts","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/walde-admin-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAW,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"walde-admin-config.d.ts","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/walde-admin-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAW,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;CAClC;AAED;;GAEG;AACH,8BAAsB,gBAAgB;IACpC,SAAS,CAAC,IAAI,EAAE,2BAA2B,CAAC;gBAEhC,IAAI,GAAE,2BAAgC;IAIlD;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,IAAI,eAAe,IAAI,eAAe,GAAG,SAAS,CAEjD;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB;IAchD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,2BAA2B,GAAG,gBAAgB;IAEtF;;OAEG;IACH,OAAO,IAAI,2BAA2B;IAItC;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC;CAoBhD"}
|
|
@@ -25,6 +25,9 @@ class WaldeAdminConfig {
|
|
|
25
25
|
get userPoolId() {
|
|
26
26
|
return this.data.userPoolId;
|
|
27
27
|
}
|
|
28
|
+
get s3ClientFactory() {
|
|
29
|
+
return this.data.s3ClientFactory;
|
|
30
|
+
}
|
|
28
31
|
/**
|
|
29
32
|
* Merge with another config, current values override merged ones when set
|
|
30
33
|
*/
|
|
@@ -34,7 +37,8 @@ class WaldeAdminConfig {
|
|
|
34
37
|
endpoint: this.data.endpoint ?? otherData.endpoint,
|
|
35
38
|
clientId: this.data.clientId ?? otherData.clientId,
|
|
36
39
|
region: this.data.region ?? otherData.region,
|
|
37
|
-
userPoolId: this.data.userPoolId ?? otherData.userPoolId
|
|
40
|
+
userPoolId: this.data.userPoolId ?? otherData.userPoolId,
|
|
41
|
+
s3ClientFactory: this.data.s3ClientFactory ?? otherData.s3ClientFactory
|
|
38
42
|
};
|
|
39
43
|
// Create new instance of same type with merged data
|
|
40
44
|
return this.createInstance(mergedData);
|
|
@@ -65,7 +69,8 @@ class WaldeAdminConfig {
|
|
|
65
69
|
endpoint: this.data.endpoint,
|
|
66
70
|
clientId: this.data.clientId,
|
|
67
71
|
region: this.data.region,
|
|
68
|
-
userPoolId: this.data.userPoolId
|
|
72
|
+
userPoolId: this.data.userPoolId,
|
|
73
|
+
s3ClientFactory: this.data.s3ClientFactory
|
|
69
74
|
});
|
|
70
75
|
}
|
|
71
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walde-admin-config.js","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/walde-admin-config.ts"],"names":[],"mappings":";;;AAAA,+BAAwC;
|
|
1
|
+
{"version":3,"file":"walde-admin-config.js","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/walde-admin-config.ts"],"names":[],"mappings":";;;AAAA,+BAAwC;AAyBxC;;GAEG;AACH,MAAsB,gBAAgB;IAC1B,IAAI,CAA8B;IAE5C,YAAY,OAAoC,EAAE;QAChD,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAuB;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,UAAU,GAAgC;YAC9C,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ;YAClD,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ;YAClD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM;YAC5C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU;YACxD,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,SAAS,CAAC,eAAe;SACxE,CAAC;QAEF,oDAAoD;QACpD,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAQD;;OAEG;IACH,OAAO;QACL,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAA,SAAG,EAAC,mCAAmC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,IAAA,QAAE,EAAC;YACR,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAS;YAC7B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAS;YAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAO;YACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAW;YACjC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAgB;SAC5C,CAAC,CAAC;IACL,CAAC;CACF;AAnFD,4CAmFC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { UiUploadCredentials } from '../../../../sdk/domain/entities/ui-upload-credentials';
|
|
2
|
+
/**
|
|
3
|
+
* Factory interface for creating S3 clients with runtime credentials
|
|
4
|
+
*/
|
|
5
|
+
export interface S3ClientFactory {
|
|
6
|
+
/**
|
|
7
|
+
* Create an S3 client configured with the provided credentials
|
|
8
|
+
* @param credentials - Upload credentials containing access keys and region
|
|
9
|
+
* @returns Configured S3 client instance
|
|
10
|
+
*/
|
|
11
|
+
createS3Client(credentials: UiUploadCredentials): any;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=s3-client-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-client-factory.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/domain/ports/out/s3-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,mBAAmB,GAAG,GAAG,CAAC;CACvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-client-factory.js","sourceRoot":"","sources":["../../../../../src/sdk/domain/ports/out/s3-client-factory.ts"],"names":[],"mappings":""}
|
package/dist/sdk/index.d.ts
CHANGED
|
@@ -18,10 +18,15 @@ export type { CredentialsProvider } from './domain/ports/out/credentials-provide
|
|
|
18
18
|
export type { TokenProvider } from './domain/ports/in/token-provider';
|
|
19
19
|
export type { WorkspaceConfigRepo } from './domain/ports/out/workspace-config-repo';
|
|
20
20
|
export type { CertificateAssociationsResult } from './domain/ports/out/site-repository';
|
|
21
|
+
export type { S3ClientFactory } from './domain/ports/out/s3-client-factory';
|
|
21
22
|
export { FileWorkspaceConfigRepo } from './infra/adapters/repositories/file-workspace-config-repo';
|
|
22
|
-
export {
|
|
23
|
+
export { AdminHttpClient } from './infra/adapters/admin-http-client';
|
|
23
24
|
export { DefaultTokenProvider } from './infra/adapters/default-token-provider';
|
|
24
25
|
export { ApiClient } from './infra/adapters/api-client';
|
|
26
|
+
export { AwsS3ClientFactory } from './infra/adapters/aws-s3-client-factory';
|
|
27
|
+
export { S3MockClient } from './dev/s3-mock-client';
|
|
28
|
+
export { S3MockClientFactory } from './dev/s3-mock-client-factory';
|
|
29
|
+
export { MockCredentialsProvider } from './dev/mock-credentials-provider';
|
|
25
30
|
export { WaldeError } from './domain/errors/walde-error';
|
|
26
31
|
export { WaldeUserError } from './domain/errors/walde-user-error';
|
|
27
32
|
export { WaldeSystemError } from './domain/errors/walde-system-error';
|
package/dist/sdk/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAGjF,YAAY,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,YAAY,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAGjF,YAAY,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,YAAY,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAG5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC"}
|
package/dist/sdk/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WaldeUnexpectedError = exports.WaldeLocalError = exports.WaldeNetworkError = exports.WaldeUsageError = exports.WaldeConfigurationError = exports.WaldeAuthenticationError = exports.WaldeValidationError = exports.WaldeSystemError = exports.WaldeUserError = exports.WaldeError = exports.ApiClient = exports.DefaultTokenProvider = exports.
|
|
3
|
+
exports.WaldeUnexpectedError = exports.WaldeLocalError = exports.WaldeNetworkError = exports.WaldeUsageError = exports.WaldeConfigurationError = exports.WaldeAuthenticationError = exports.WaldeValidationError = exports.WaldeSystemError = exports.WaldeUserError = exports.WaldeError = exports.MockCredentialsProvider = exports.S3MockClientFactory = exports.S3MockClient = exports.AwsS3ClientFactory = exports.ApiClient = exports.DefaultTokenProvider = exports.AdminHttpClient = exports.FileWorkspaceConfigRepo = exports.StringPart = exports.KeyValuePart = exports.MarkdownPart = exports.ContentPart = exports.Manifest = exports.FrontendContent = exports.WorkspaceConfig = exports.ContentState = exports.Content = exports.DnsEntry = exports.SiteState = exports.Site = exports.MakeWalde = exports.MakeWaldeAdmin = exports.WaldeAdminConfigFactory = exports.WaldeAdminFactory = void 0;
|
|
4
4
|
// Factories
|
|
5
5
|
var walde_admin_factory_1 = require("./infra/factories/walde-admin-factory");
|
|
6
6
|
Object.defineProperty(exports, "WaldeAdminFactory", { enumerable: true, get: function () { return walde_admin_factory_1.WaldeAdminFactory; } });
|
|
@@ -38,12 +38,21 @@ Object.defineProperty(exports, "StringPart", { enumerable: true, get: function (
|
|
|
38
38
|
// Infrastructure
|
|
39
39
|
var file_workspace_config_repo_1 = require("./infra/adapters/repositories/file-workspace-config-repo");
|
|
40
40
|
Object.defineProperty(exports, "FileWorkspaceConfigRepo", { enumerable: true, get: function () { return file_workspace_config_repo_1.FileWorkspaceConfigRepo; } });
|
|
41
|
-
var
|
|
42
|
-
Object.defineProperty(exports, "
|
|
41
|
+
var admin_http_client_1 = require("./infra/adapters/admin-http-client");
|
|
42
|
+
Object.defineProperty(exports, "AdminHttpClient", { enumerable: true, get: function () { return admin_http_client_1.AdminHttpClient; } });
|
|
43
43
|
var default_token_provider_1 = require("./infra/adapters/default-token-provider");
|
|
44
44
|
Object.defineProperty(exports, "DefaultTokenProvider", { enumerable: true, get: function () { return default_token_provider_1.DefaultTokenProvider; } });
|
|
45
45
|
var api_client_1 = require("./infra/adapters/api-client");
|
|
46
46
|
Object.defineProperty(exports, "ApiClient", { enumerable: true, get: function () { return api_client_1.ApiClient; } });
|
|
47
|
+
var aws_s3_client_factory_1 = require("./infra/adapters/aws-s3-client-factory");
|
|
48
|
+
Object.defineProperty(exports, "AwsS3ClientFactory", { enumerable: true, get: function () { return aws_s3_client_factory_1.AwsS3ClientFactory; } });
|
|
49
|
+
// Development/Testing
|
|
50
|
+
var s3_mock_client_1 = require("./dev/s3-mock-client");
|
|
51
|
+
Object.defineProperty(exports, "S3MockClient", { enumerable: true, get: function () { return s3_mock_client_1.S3MockClient; } });
|
|
52
|
+
var s3_mock_client_factory_1 = require("./dev/s3-mock-client-factory");
|
|
53
|
+
Object.defineProperty(exports, "S3MockClientFactory", { enumerable: true, get: function () { return s3_mock_client_factory_1.S3MockClientFactory; } });
|
|
54
|
+
var mock_credentials_provider_1 = require("./dev/mock-credentials-provider");
|
|
55
|
+
Object.defineProperty(exports, "MockCredentialsProvider", { enumerable: true, get: function () { return mock_credentials_provider_1.MockCredentialsProvider; } });
|
|
47
56
|
// Error types
|
|
48
57
|
var walde_error_1 = require("./domain/errors/walde-error");
|
|
49
58
|
Object.defineProperty(exports, "WaldeError", { enumerable: true, get: function () { return walde_error_1.WaldeError; } });
|
package/dist/sdk/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":";;;AAAA,YAAY;AACZ,6EAA0E;AAAjE,wHAAA,iBAAiB,OAAA;AAC1B,2FAAuF;AAA9E,qIAAA,uBAAuB,OAAA;AAChC,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAElB,kBAAkB;AAClB,+CAAyD;AAAhD,4FAAA,IAAI,OAAA;AAAE,iGAAA,SAAS,OAAA;AACxB,yDAAuD;AAA9C,qGAAA,QAAQ,OAAA;AACjB,qDAAoD;AAA3C,kGAAA,OAAO,OAAA;AAChB,iEAA+D;AAAtD,6GAAA,YAAY,OAAA;AACrB,uEAAqE;AAA5D,mHAAA,eAAe,OAAA;AACxB,uEAAqE;AAA5D,mHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,oGAAA,QAAQ,OAAA;AAEjB,gBAAgB;AAChB,+DAA6D;AAApD,2GAAA,WAAW,OAAA;AACpB,iEAA+D;AAAtD,6GAAA,YAAY,OAAA;AACrB,mEAAgE;AAAvD,8GAAA,YAAY,OAAA;AACrB,6DAA2D;AAAlD,yGAAA,UAAU,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":";;;AAAA,YAAY;AACZ,6EAA0E;AAAjE,wHAAA,iBAAiB,OAAA;AAC1B,2FAAuF;AAA9E,qIAAA,uBAAuB,OAAA;AAChC,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAElB,kBAAkB;AAClB,+CAAyD;AAAhD,4FAAA,IAAI,OAAA;AAAE,iGAAA,SAAS,OAAA;AACxB,yDAAuD;AAA9C,qGAAA,QAAQ,OAAA;AACjB,qDAAoD;AAA3C,kGAAA,OAAO,OAAA;AAChB,iEAA+D;AAAtD,6GAAA,YAAY,OAAA;AACrB,uEAAqE;AAA5D,mHAAA,eAAe,OAAA;AACxB,uEAAqE;AAA5D,mHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,oGAAA,QAAQ,OAAA;AAEjB,gBAAgB;AAChB,+DAA6D;AAApD,2GAAA,WAAW,OAAA;AACpB,iEAA+D;AAAtD,6GAAA,YAAY,OAAA;AACrB,mEAAgE;AAAvD,8GAAA,YAAY,OAAA;AACrB,6DAA2D;AAAlD,yGAAA,UAAU,OAAA;AAYnB,iBAAiB;AACjB,uGAAmG;AAA1F,qIAAA,uBAAuB,OAAA;AAChC,wEAAqE;AAA5D,oHAAA,eAAe,OAAA;AACxB,kFAA+E;AAAtE,8HAAA,oBAAoB,OAAA;AAC7B,0DAAwD;AAA/C,uGAAA,SAAS,OAAA;AAClB,gFAA4E;AAAnE,2HAAA,kBAAkB,OAAA;AAE3B,sBAAsB;AACtB,uDAAoD;AAA3C,8GAAA,YAAY,OAAA;AACrB,uEAAmE;AAA1D,6HAAA,mBAAmB,OAAA;AAC5B,6EAA0E;AAAjE,oIAAA,uBAAuB,OAAA;AAEhC,cAAc;AACd,2DAAyD;AAAhD,yGAAA,UAAU,OAAA;AACnB,qEAAkE;AAAzD,kHAAA,cAAc,OAAA;AACvB,yEAAsE;AAA7D,sHAAA,gBAAgB,OAAA;AACzB,iFAA8E;AAArE,8HAAA,oBAAoB,OAAA;AAC7B,yFAAsF;AAA7E,sIAAA,wBAAwB,OAAA;AACjC,uFAAoF;AAA3E,oIAAA,uBAAuB,OAAA;AAChC,uEAAoE;AAA3D,oHAAA,eAAe,OAAA;AACxB,2EAAwE;AAA/D,wHAAA,iBAAiB,OAAA;AAC1B,uEAAoE;AAA3D,oHAAA,eAAe,OAAA;AACxB,iFAA8E;AAArE,8HAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TokenProvider } from '../../domain/ports/in/token-provider';
|
|
2
|
+
/**
|
|
3
|
+
* HTTP client for making authenticated admin API requests with read/write operations
|
|
4
|
+
*/
|
|
5
|
+
export declare class AdminHttpClient {
|
|
6
|
+
private readonly tokenProvider;
|
|
7
|
+
private readonly requestHandler;
|
|
8
|
+
constructor(baseUrl: string, tokenProvider: TokenProvider);
|
|
9
|
+
get(path: string, customHeaders?: Record<string, string>): Promise<any>;
|
|
10
|
+
post(path: string, body?: any, customHeaders?: Record<string, string>): Promise<any>;
|
|
11
|
+
put(path: string, body?: any, customHeaders?: Record<string, string>): Promise<any>;
|
|
12
|
+
delete(path: string, customHeaders?: Record<string, string>): Promise<any>;
|
|
13
|
+
private handleHttpError;
|
|
14
|
+
private request;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=admin-http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-http-client.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/admin-http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAIrE;;GAEG;AACH,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJhC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;gBAGtD,OAAO,EAAE,MAAM,EACE,aAAa,EAAE,aAAa;IAKzC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpF,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAInF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhF,OAAO,CAAC,eAAe;YAoCT,OAAO;CAkCtB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdminHttpClient = void 0;
|
|
4
|
+
const errors_1 = require("../../../sdk/domain/errors");
|
|
5
|
+
const http_request_handler_1 = require("./http-request-handler");
|
|
6
|
+
/**
|
|
7
|
+
* HTTP client for making authenticated admin API requests with read/write operations
|
|
8
|
+
*/
|
|
9
|
+
class AdminHttpClient {
|
|
10
|
+
tokenProvider;
|
|
11
|
+
requestHandler;
|
|
12
|
+
constructor(baseUrl, tokenProvider) {
|
|
13
|
+
this.tokenProvider = tokenProvider;
|
|
14
|
+
this.requestHandler = new http_request_handler_1.CoreHttpRequestHandler(baseUrl);
|
|
15
|
+
}
|
|
16
|
+
async get(path, customHeaders) {
|
|
17
|
+
return this.request('GET', path, undefined, customHeaders);
|
|
18
|
+
}
|
|
19
|
+
async post(path, body, customHeaders) {
|
|
20
|
+
return this.request('POST', path, body, customHeaders);
|
|
21
|
+
}
|
|
22
|
+
async put(path, body, customHeaders) {
|
|
23
|
+
return this.request('PUT', path, body, customHeaders);
|
|
24
|
+
}
|
|
25
|
+
async delete(path, customHeaders) {
|
|
26
|
+
return this.request('DELETE', path, undefined, customHeaders);
|
|
27
|
+
}
|
|
28
|
+
handleHttpError(statusCode, statusMessage, parsedData, url) {
|
|
29
|
+
const serverMessage = parsedData?.metadata?.error;
|
|
30
|
+
const details = { statusCode, statusMessage, response: parsedData, url };
|
|
31
|
+
if (statusCode === 401) {
|
|
32
|
+
return new errors_1.WaldeAuthenticationError(serverMessage || 'Authentication required. Please login first.', details);
|
|
33
|
+
}
|
|
34
|
+
if (statusCode === 403) {
|
|
35
|
+
return new errors_1.WaldeAuthenticationError(serverMessage || 'Access denied. You do not have permission to perform this action.', details);
|
|
36
|
+
}
|
|
37
|
+
if (statusCode >= 500) {
|
|
38
|
+
return new errors_1.WaldeSystemError(serverMessage || `Server error ${statusCode}: ${statusMessage}`, undefined, details);
|
|
39
|
+
}
|
|
40
|
+
if (statusCode >= 400) {
|
|
41
|
+
return new errors_1.WaldeValidationError(serverMessage || `Request failed with status ${statusCode}`, details);
|
|
42
|
+
}
|
|
43
|
+
return new errors_1.WaldeNetworkError(`HTTP ${statusCode}: ${statusMessage}`, undefined, details);
|
|
44
|
+
}
|
|
45
|
+
async request(method, path, body, customHeaders) {
|
|
46
|
+
const accessToken = await this.tokenProvider.getAccessToken();
|
|
47
|
+
const headers = {
|
|
48
|
+
'Authorization': `Bearer ${accessToken}`,
|
|
49
|
+
...customHeaders
|
|
50
|
+
};
|
|
51
|
+
try {
|
|
52
|
+
switch (method) {
|
|
53
|
+
case 'GET':
|
|
54
|
+
return await this.requestHandler.get(path, headers);
|
|
55
|
+
case 'POST':
|
|
56
|
+
return await this.requestHandler.post(path, body, headers);
|
|
57
|
+
case 'PUT':
|
|
58
|
+
return await this.requestHandler.put(path, body, headers);
|
|
59
|
+
case 'DELETE':
|
|
60
|
+
return await this.requestHandler.delete(path, headers);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (error instanceof errors_1.WaldeNetworkError) {
|
|
65
|
+
const details = error.details;
|
|
66
|
+
if (details && typeof details.statusCode === 'number') {
|
|
67
|
+
throw this.handleHttpError(details.statusCode, details.statusMessage || 'Unknown error', details.response || null, details.url || path);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.AdminHttpClient = AdminHttpClient;
|
|
75
|
+
//# sourceMappingURL=admin-http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-http-client.js","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/admin-http-client.ts"],"names":[],"mappings":";;;AACA,gDAAgJ;AAChJ,iEAAgE;AAEhE;;GAEG;AACH,MAAa,eAAe;IAKP;IAJF,cAAc,CAAyB;IAExD,YACE,OAAe,EACE,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAE7C,IAAI,CAAC,cAAc,GAAG,IAAI,6CAAsB,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,aAAsC;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAAU,EAAE,aAAsC;QACzE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,IAAU,EAAE,aAAsC;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,aAAsC;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAChE,CAAC;IAEO,eAAe,CAAC,UAAkB,EAAE,aAAqB,EAAE,UAAe,EAAE,GAAW;QAC7F,MAAM,aAAa,GAAG,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC;QAClD,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QAEzE,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,IAAI,iCAAwB,CACjC,aAAa,IAAI,8CAA8C,EAC/D,OAAO,CACR,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,IAAI,iCAAwB,CACjC,aAAa,IAAI,mEAAmE,EACpF,OAAO,CACR,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YACtB,OAAO,IAAI,yBAAgB,CACzB,aAAa,IAAI,gBAAgB,UAAU,KAAK,aAAa,EAAE,EAC/D,SAAS,EACT,OAAO,CACR,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YACtB,OAAO,IAAI,6BAAoB,CAC7B,aAAa,IAAI,8BAA8B,UAAU,EAAE,EAC3D,OAAO,CACR,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,0BAAiB,CAAC,QAAQ,UAAU,KAAK,aAAa,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAyC,EAAE,IAAY,EAAE,IAAU,EAAE,aAAsC;QAC/H,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAE9D,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,UAAU,WAAW,EAAE;YACxC,GAAG,aAAa;SACjB,CAAC;QAEF,IAAI,CAAC;YACH,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,KAAK;oBACR,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACtD,KAAK,MAAM;oBACT,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC7D,KAAK,KAAK;oBACR,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC5D,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,0BAAiB,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAI,KAAa,CAAC,OAAO,CAAC;gBACvC,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACtD,MAAM,IAAI,CAAC,eAAe,CACxB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,IAAI,eAAe,EACxC,OAAO,CAAC,QAAQ,IAAI,IAAI,EACxB,OAAO,CAAC,GAAG,IAAI,IAAI,CACpB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAhGD,0CAgGC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AdminHttpClient } from './admin-http-client';
|
|
2
2
|
import { BackendCommunication } from '../../../sdk/domain/ports/out/backend-communication';
|
|
3
3
|
/**
|
|
4
4
|
* Standard backend API response format
|
|
@@ -13,7 +13,7 @@ interface ApiResponse<T> {
|
|
|
13
13
|
*/
|
|
14
14
|
export declare class ApiClient implements BackendCommunication {
|
|
15
15
|
private readonly httpClient;
|
|
16
|
-
constructor(httpClient:
|
|
16
|
+
constructor(httpClient: AdminHttpClient);
|
|
17
17
|
/**
|
|
18
18
|
* Make a GET request and extract payload from standard response format
|
|
19
19
|
* @param path - API endpoint path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAEpF;;GAEG;AACH,UAAU,WAAW,CAAC,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,SAAU,YAAW,oBAAoB;IAElD,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,eAAe;IAG9C;;;;;OAKG;IACU,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK/E;;;;;;OAMG;IACU,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK5F;;;;;;OAMG;IACU,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK3F;;;;;OAKG;IACU,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKlF;;;;;;;OAOG;IACU,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAYpK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/api-client.ts"],"names":[],"mappings":";;;AAWA;;;GAGG;AACH,MAAa,SAAS;IAED;IADnB,YACmB,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/api-client.ts"],"names":[],"mappings":";;;AAWA;;;GAGG;AACH,MAAa,SAAS;IAED;IADnB,YACmB,UAA2B;QAA3B,eAAU,GAAV,UAAU,CAAiB;IAC3C,CAAC;IAEJ;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CAAI,IAAY,EAAE,OAAgC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAmB,CAAC;QAC5E,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAU,EAAE,OAAgC;QAC7E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAmB,CAAC;QACnF,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,GAAG,CAAI,IAAY,EAAE,IAAU,EAAE,OAAgC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAmB,CAAC;QAClF,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAI,IAAY,EAAE,OAAgC;QACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAmB,CAAC;QAC/E,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,mBAAmB,CAAI,MAAyC,EAAE,IAAY,EAAE,IAAU,EAAE,OAAgC;QACvI,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBACR,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAmB,CAAC;YACpE,KAAK,MAAM;gBACT,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAmB,CAAC;YAC3E,KAAK,KAAK;gBACR,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAmB,CAAC;YAC1E,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAmB,CAAC;QACzE,CAAC;IACH,CAAC;CACF;AAvED,8BAuEC"}
|