@takaro/apiclient 0.0.0-dev.2c37d4f → 0.0.0-dev.2c5c204
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/README.md +27 -0
- package/dist/generated/api.d.ts +16409 -8414
- package/dist/generated/api.d.ts.map +1 -1
- package/dist/generated/api.js +12265 -6461
- package/dist/generated/api.js.map +1 -1
- package/dist/generated/base.d.ts +1 -1
- package/dist/generated/base.js +1 -1
- package/dist/generated/common.d.ts +1 -1
- package/dist/generated/common.js +1 -1
- package/dist/generated/configuration.d.ts +1 -1
- package/dist/generated/configuration.js +2 -2
- package/dist/generated/configuration.js.map +1 -1
- package/dist/generated/index.d.ts +1 -1
- package/dist/generated/index.js +1 -1
- package/dist/generated-management/api.d.ts +14494 -0
- package/dist/generated-management/api.d.ts.map +1 -0
- package/dist/generated-management/api.js +3413 -0
- package/dist/generated-management/api.js.map +1 -0
- package/dist/generated-management/base.d.ts +67 -0
- package/dist/generated-management/base.d.ts.map +1 -0
- package/dist/generated-management/base.js +59 -0
- package/dist/generated-management/base.js.map +1 -0
- package/dist/generated-management/common.d.ts +66 -0
- package/dist/generated-management/common.d.ts.map +1 -0
- package/dist/generated-management/common.js +135 -0
- package/dist/generated-management/common.js.map +1 -0
- package/dist/generated-management/configuration.d.ts +92 -0
- package/dist/generated-management/configuration.d.ts.map +1 -0
- package/dist/generated-management/configuration.js +46 -0
- package/dist/generated-management/configuration.js.map +1 -0
- package/dist/generated-management/index.d.ts +14 -0
- package/dist/generated-management/index.d.ts.map +1 -0
- package/{src/generated/index.ts → dist/generated-management/index.js} +2 -2
- package/dist/generated-management/index.js.map +1 -0
- package/dist/lib/adminClient.d.ts +3 -2
- package/dist/lib/adminClient.d.ts.map +1 -1
- package/dist/lib/adminClient.js +8 -2
- package/dist/lib/adminClient.js.map +1 -1
- package/dist/lib/apiKey.d.ts +18 -0
- package/dist/lib/apiKey.d.ts.map +1 -0
- package/dist/lib/apiKey.js +71 -0
- package/dist/lib/apiKey.js.map +1 -0
- package/dist/lib/baseClient.d.ts +15 -1
- package/dist/lib/baseClient.d.ts.map +1 -1
- package/dist/lib/baseClient.js +21 -2
- package/dist/lib/baseClient.js.map +1 -1
- package/dist/lib/client.d.ts +34 -3
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +66 -10
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/distributorClient.d.ts +18 -0
- package/dist/lib/distributorClient.d.ts.map +1 -0
- package/dist/lib/distributorClient.js +21 -0
- package/dist/lib/distributorClient.js.map +1 -0
- package/dist/main.d.ts +5 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +7 -0
- package/dist/main.js.map +1 -1
- package/package.json +14 -6
- package/src/__tests__/main.integration.test.ts +0 -39
- package/src/generated/.openapi-generator-ignore +0 -23
- package/src/generated/api.ts +0 -32740
- package/src/generated/base.ts +0 -91
- package/src/generated/common.ts +0 -164
- package/src/generated/configuration.ts +0 -123
- package/src/generated/git_push.sh +0 -57
- package/src/lib/adminClient.ts +0 -37
- package/src/lib/baseClient.ts +0 -153
- package/src/lib/client.ts +0 -308
- package/src/main.ts +0 -9
- package/tsconfig.build.json +0 -10
- package/tsconfig.json +0 -8
- package/typedoc.json +0 -3
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DistributorSelfServiceApi } from '../generated-management/api.js';
|
|
2
|
+
import { BaseApiClient } from './baseClient.js';
|
|
3
|
+
import { assertValidApiKey } from './apiKey.js';
|
|
4
|
+
/**
|
|
5
|
+
* The client an integrating Distributor uses against the Management API (ADR 0023). Authenticated
|
|
6
|
+
* by a Distributor Key, never by the admin secret — those are two separate doors.
|
|
7
|
+
*/
|
|
8
|
+
export class DistributorClient extends BaseApiClient {
|
|
9
|
+
constructor(config) {
|
|
10
|
+
super(config);
|
|
11
|
+
// Validated where it was typed, not as an opaque 401 later. isValidApiKeyFormat matches the
|
|
12
|
+
// bare `takaro_` prefix plus the checksum, so a Distributor Key passes unchanged.
|
|
13
|
+
assertValidApiKey(config.auth.distributorKey);
|
|
14
|
+
this.axios.defaults.headers.common.Authorization = `Bearer ${config.auth.distributorKey}`;
|
|
15
|
+
}
|
|
16
|
+
/** The Distributor's own self-service routes: who am I, and its key lifecycle. */
|
|
17
|
+
get self() {
|
|
18
|
+
return new DistributorSelfServiceApi({ isJsonMime: this.isJsonMime }, '', this.axios);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=distributorClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributorClient.js","sourceRoot":"","sources":["../../src/lib/distributorClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAA6B,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAShD;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAA0C;IAC/E,YAAY,MAAmC;QAC7C,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,4FAA4F;QAC5F,kFAAkF;QAClF,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,UAAU,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5F,CAAC;IAED,kFAAkF;IAClF,IAAI,IAAI;QACN,OAAO,IAAI,yBAAyB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxF,CAAC;CACF"}
|
package/dist/main.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { AxiosResponse } from 'axios';
|
|
1
|
+
import { type AxiosResponse } from 'axios';
|
|
2
2
|
export { AxiosResponse } from 'axios';
|
|
3
3
|
export { isAxiosError } from 'axios';
|
|
4
4
|
export { AdminClient } from './lib/adminClient.js';
|
|
5
5
|
export { Client } from './lib/client.js';
|
|
6
|
+
export { DistributorClient } from './lib/distributorClient.js';
|
|
7
|
+
export type { IDistributorApiClientConfig } from './lib/distributorClient.js';
|
|
8
|
+
export { isValidApiKeyFormat, assertValidApiKey } from './lib/apiKey.js';
|
|
6
9
|
export type ITakaroAPIAxiosResponse<T> = AxiosResponse<T>;
|
|
7
10
|
export * from './generated/api.js';
|
|
11
|
+
export { DistributorApi, DistributorSelfServiceApi, DomainApi } from './generated-management/api.js';
|
|
8
12
|
//# sourceMappingURL=main.d.ts.map
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,YAAY,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1D,cAAc,oBAAoB,CAAC;AAMnC,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
export { isAxiosError } from 'axios';
|
|
2
2
|
export { AdminClient } from './lib/adminClient.js';
|
|
3
3
|
export { Client } from './lib/client.js';
|
|
4
|
+
export { DistributorClient } from './lib/distributorClient.js';
|
|
5
|
+
export { isValidApiKeyFormat, assertValidApiKey } from './lib/apiKey.js';
|
|
4
6
|
export * from './generated/api.js';
|
|
7
|
+
// The Domain lifecycle routes live on the Management API and so on its own generated tree
|
|
8
|
+
// (ADR 0023). Re-exported by name rather than `export *`: both trees carry every shared DTO,
|
|
9
|
+
// so a star-export would be silently ambiguous — and a name that ever exists in both makes
|
|
10
|
+
// TypeScript fail the build, which is the drift gate we want.
|
|
11
|
+
export { DistributorApi, DistributorSelfServiceApi, DomainApi } from './generated-management/api.js';
|
|
5
12
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzE,cAAc,oBAAoB,CAAC;AAEnC,0FAA0F;AAC1F,6FAA6F;AAC7F,2FAA2F;AAC3F,8DAA8D;AAC9D,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takaro/apiclient",
|
|
3
3
|
"description": "API client for Takaro",
|
|
4
|
-
"version": "0.0.0-dev.
|
|
4
|
+
"version": "0.0.0-dev.2c5c204",
|
|
5
5
|
"author": "",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"axios": "1.7.7"
|
|
@@ -13,11 +13,19 @@
|
|
|
13
13
|
"registry": "https://registry.npmjs.org",
|
|
14
14
|
"access": "public"
|
|
15
15
|
},
|
|
16
|
+
"type": "module",
|
|
17
|
+
"types": "dist/main.d.ts",
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@takaro/test": "0.7.2",
|
|
20
|
+
"@types/node": "24.13.3",
|
|
21
|
+
"typescript": "5.5.4"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist"
|
|
25
|
+
],
|
|
16
26
|
"scripts": {
|
|
17
27
|
"build": "tsc -p ./tsconfig.build.json",
|
|
18
|
-
"generate": "../../scripts/generate-api-client
|
|
28
|
+
"generate": "node ../../scripts/dev/index.mjs generate-api-client",
|
|
19
29
|
"start:dev": ":"
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
"types": "dist/main.d.ts"
|
|
23
|
-
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { AdminClient } from '../main.js';
|
|
2
|
-
import { expect, integrationConfig } from '@takaro/test';
|
|
3
|
-
import { describe, it } from 'node:test';
|
|
4
|
-
|
|
5
|
-
const TEST_DOMAIN_NAME = 'apiClient-test';
|
|
6
|
-
|
|
7
|
-
describe('API client', () => {
|
|
8
|
-
const adminClient = new AdminClient({
|
|
9
|
-
url: integrationConfig.get('host'),
|
|
10
|
-
auth: {
|
|
11
|
-
clientSecret: integrationConfig.get('auth.adminClientSecret'),
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
describe('Meta controller', () => {
|
|
16
|
-
it('should get health', async () => {
|
|
17
|
-
const health = await adminClient.meta.metaGetHealth();
|
|
18
|
-
expect(health.data.healthy).to.be.true;
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
describe('Domain controller', () => {
|
|
23
|
-
it('Can create and delete a domain', async () => {
|
|
24
|
-
const domain = await adminClient.domain.domainControllerCreate({
|
|
25
|
-
name: TEST_DOMAIN_NAME,
|
|
26
|
-
});
|
|
27
|
-
expect(domain.data.data.createdDomain.name).to.equal(TEST_DOMAIN_NAME);
|
|
28
|
-
|
|
29
|
-
const domainsRes = await adminClient.domain.domainControllerSearch({
|
|
30
|
-
filters: { name: [TEST_DOMAIN_NAME] },
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
expect(domainsRes.data.data).to.have.lengthOf(1);
|
|
34
|
-
expect(domainsRes.data.data[0].name).to.equal(TEST_DOMAIN_NAME);
|
|
35
|
-
|
|
36
|
-
await adminClient.domain.domainControllerRemove(domain.data.data.createdDomain.id);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# OpenAPI Generator Ignore
|
|
2
|
-
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
|
|
3
|
-
|
|
4
|
-
# Use this file to prevent files from being overwritten by the generator.
|
|
5
|
-
# The patterns follow closely to .gitignore or .dockerignore.
|
|
6
|
-
|
|
7
|
-
# As an example, the C# client generator defines ApiClient.cs.
|
|
8
|
-
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
|
|
9
|
-
#ApiClient.cs
|
|
10
|
-
|
|
11
|
-
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
|
|
12
|
-
#foo/*/qux
|
|
13
|
-
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
|
|
14
|
-
|
|
15
|
-
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
|
|
16
|
-
#foo/**/qux
|
|
17
|
-
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
|
|
18
|
-
|
|
19
|
-
# You can also negate patterns with an exclamation (!).
|
|
20
|
-
# For example, you can ignore all files in a docs folder with the file extension .md:
|
|
21
|
-
#docs/*.md
|
|
22
|
-
# Then explicitly reverse the ignore rule for a single file:
|
|
23
|
-
#!docs/README.md
|