@weavix/tracker-api-plugin 0.0.1
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 +25 -0
- package/dist/api/trackerApi.d.ts +23 -0
- package/dist/api/trackerApi.d.ts.map +1 -0
- package/dist/api/trackerApiBase.d.ts +28 -0
- package/dist/api/trackerApiBase.d.ts.map +1 -0
- package/dist/api/trackerApiContract.d.ts +8 -0
- package/dist/api/trackerApiContract.d.ts.map +1 -0
- package/dist/api/types.d.ts +14 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +42 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +36 -0
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# @weavix/tracker-api-plugin
|
|
2
|
+
|
|
3
|
+
Typed Tracker API client for iframe plugins. Sends `api.tracker.call` requests through the
|
|
4
|
+
generic plugin bridge (`@weavix/sdk-core`'s `sendRequest`) — no dependency on Tracker's own
|
|
5
|
+
slot/entity types (`@weavix/tracker-core`), so any host's plugin can install this package to
|
|
6
|
+
reach the Tracker HTTP API.
|
|
7
|
+
|
|
8
|
+
The host side of the contract is implemented by `@yandex-weavix/tracker-api-host`, which any
|
|
9
|
+
service running `@yandex-weavix/plugin-host-core` can register as a domain.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pnpm add @weavix/tracker-api-plugin @weavix/sdk-core
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { trackerApi } from '@weavix/tracker-api-plugin';
|
|
17
|
+
|
|
18
|
+
const { data } = await trackerApi.v3.get['/issues/{issueKey}']({
|
|
19
|
+
pathParams: { issueKey: 'TEST-1' },
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
`trackerApi.v3.get/post/put/patch/delete` are typed against `@weavix/tracker-api-types`'
|
|
24
|
+
`ApiV3*Methods` maps. `ApiContract`, `ApiCallPayload`, and `ApiCallResult` are exported for host
|
|
25
|
+
implementers.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ApiV3DeleteMethods, ApiV3GetMethods, ApiV3PatchMethods, ApiV3PostMethods, ApiV3PutMethods } from '@weavix/tracker-api-types';
|
|
2
|
+
import { TrackerApiCallOptions as BaseCallOptions, TrackerApiInitOptions as BaseInitOptions } from './trackerApiBase';
|
|
3
|
+
export type TrackerApiCallOptions = BaseCallOptions;
|
|
4
|
+
export type TrackerApiInitOptions = BaseInitOptions;
|
|
5
|
+
type ApiResult<M> = {
|
|
6
|
+
[K in keyof M]: M[K] extends (...args: infer A) => Promise<infer R> ? (...args: A) => Promise<{
|
|
7
|
+
data: R;
|
|
8
|
+
headers: Record<string, string>;
|
|
9
|
+
}> : never;
|
|
10
|
+
};
|
|
11
|
+
export interface TrackerApiV3 {
|
|
12
|
+
get: ApiResult<ApiV3GetMethods>;
|
|
13
|
+
post: ApiResult<ApiV3PostMethods>;
|
|
14
|
+
put: ApiResult<ApiV3PutMethods>;
|
|
15
|
+
patch: ApiResult<ApiV3PatchMethods>;
|
|
16
|
+
delete: ApiResult<ApiV3DeleteMethods>;
|
|
17
|
+
}
|
|
18
|
+
export interface TrackerApi {
|
|
19
|
+
v3: TrackerApiV3;
|
|
20
|
+
}
|
|
21
|
+
export declare const trackerApi: TrackerApi;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=trackerApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackerApi.d.ts","sourceRoot":"","sources":["../../src/api/trackerApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACH,KAAK,qBAAqB,IAAI,eAAe,EAC7C,KAAK,qBAAqB,IAAI,eAAe,EAEhD,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAEpD,KAAK,SAAS,CAAC,CAAC,IAAI;KACf,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAC7D,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,GACrE,KAAK;CACd,CAAC;AAEF,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAClC,GAAG,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,YAAY,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAgC,UAAU,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type TrackerApiCallOptions = {
|
|
2
|
+
pathParams?: Record<string, string>;
|
|
3
|
+
queryParams?: Record<string, unknown>;
|
|
4
|
+
bodyParams?: Record<string, unknown>;
|
|
5
|
+
file?: File;
|
|
6
|
+
};
|
|
7
|
+
export type TrackerApiInitOptions = {
|
|
8
|
+
apiVersion?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Untyped runtime API class. The `v3` method nodes (`get`, `post`, ...) are Proxies that
|
|
12
|
+
* accept any string path key and build a call from it. Typing is added on top via a cast
|
|
13
|
+
* (see `./trackerApi.ts`).
|
|
14
|
+
*/
|
|
15
|
+
export declare class TrackerApi {
|
|
16
|
+
private static readonly V3_VERSION;
|
|
17
|
+
get v3(): {
|
|
18
|
+
get: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;
|
|
19
|
+
post: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;
|
|
20
|
+
put: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;
|
|
21
|
+
patch: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;
|
|
22
|
+
delete: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;
|
|
23
|
+
};
|
|
24
|
+
private createMethodProxy;
|
|
25
|
+
private call;
|
|
26
|
+
}
|
|
27
|
+
export declare const trackerApi: TrackerApi;
|
|
28
|
+
//# sourceMappingURL=trackerApiBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackerApiBase.d.ts","sourceRoot":"","sources":["../../src/api/trackerApiBase.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,qBAAqB,GAAG;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,IAAI,CAAC;CACf,CAAC;AAmBF,MAAM,MAAM,qBAAqB,GAAG;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAQ;IAE1C,IAAI,EAAE,IAAI;QACN,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACvE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACvE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KAC7E,CAQA;IAED,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,IAAI;CASf;AAED,eAAO,MAAM,UAAU,YAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackerApiContract.d.ts","sourceRoot":"","sources":["../../src/api/trackerApiContract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG;IACtB,kBAAkB,EAAE;QAChB,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,aAAa,CAAC;KACzB,CAAC;CACL,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type ApiCallResult = {
|
|
2
|
+
data: unknown;
|
|
3
|
+
headers: Record<string, string>;
|
|
4
|
+
};
|
|
5
|
+
export type ApiCallPayload = {
|
|
6
|
+
version: string;
|
|
7
|
+
method: string;
|
|
8
|
+
url: string;
|
|
9
|
+
pathParams: Record<string, string>;
|
|
10
|
+
queryParams: Record<string, unknown>;
|
|
11
|
+
bodyParams: Record<string, unknown>;
|
|
12
|
+
file?: File;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,IAAI,CAAC;CACf,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { trackerApi } from './api/trackerApi';
|
|
2
|
+
export type { TrackerApi, TrackerApiCallOptions, TrackerApiInitOptions, TrackerApiV3, } from './api/trackerApi';
|
|
3
|
+
export type { ApiContract } from './api/trackerApiContract';
|
|
4
|
+
export type { ApiCallPayload, ApiCallResult } from './api/types';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EACR,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,GACf,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { sendRequest as e } from "@weavix/sdk-core";
|
|
2
|
+
//#region src/api/trackerApiBase.ts
|
|
3
|
+
function t(e, t, n = {}, r) {
|
|
4
|
+
return {
|
|
5
|
+
version: r,
|
|
6
|
+
method: e,
|
|
7
|
+
url: t,
|
|
8
|
+
pathParams: n.pathParams ?? {},
|
|
9
|
+
queryParams: n.queryParams ?? {},
|
|
10
|
+
bodyParams: n.bodyParams ?? {},
|
|
11
|
+
file: n.file
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/api/trackerApi.ts
|
|
16
|
+
var n = new class n {
|
|
17
|
+
static {
|
|
18
|
+
this.V3_VERSION = "v3";
|
|
19
|
+
}
|
|
20
|
+
get v3() {
|
|
21
|
+
return {
|
|
22
|
+
get: this.createMethodProxy("GET"),
|
|
23
|
+
post: this.createMethodProxy("POST"),
|
|
24
|
+
put: this.createMethodProxy("PUT"),
|
|
25
|
+
patch: this.createMethodProxy("PATCH"),
|
|
26
|
+
delete: this.createMethodProxy("DELETE")
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
createMethodProxy(e) {
|
|
30
|
+
let t = this;
|
|
31
|
+
return new Proxy({}, { get(r, i) {
|
|
32
|
+
return (r) => t.call(e, i, r, n.V3_VERSION);
|
|
33
|
+
} });
|
|
34
|
+
}
|
|
35
|
+
call(n, r, i = {}, a) {
|
|
36
|
+
return e("api.tracker.call", t(n, r, i, a));
|
|
37
|
+
}
|
|
38
|
+
}();
|
|
39
|
+
//#endregion
|
|
40
|
+
export { n as trackerApi };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/api/trackerApiBase.ts","../src/api/trackerApi.ts"],"sourcesContent":["import { sendRequest } from '@weavix/sdk-core';\nimport type { ApiCallPayload, ApiCallResult } from './types';\n\nexport type TrackerApiCallOptions = {\n pathParams?: Record<string, string>;\n queryParams?: Record<string, unknown>;\n bodyParams?: Record<string, unknown>;\n file?: File;\n};\n\nfunction buildPayload(\n method: string,\n url: string,\n options: TrackerApiCallOptions = {},\n version: string,\n): ApiCallPayload {\n return {\n version,\n method,\n url,\n pathParams: options.pathParams ?? {},\n queryParams: options.queryParams ?? {},\n bodyParams: options.bodyParams ?? {},\n file: options.file,\n };\n}\n\nexport type TrackerApiInitOptions = {\n apiVersion?: string;\n};\n\n/**\n * Untyped runtime API class. The `v3` method nodes (`get`, `post`, ...) are Proxies that\n * accept any string path key and build a call from it. Typing is added on top via a cast\n * (see `./trackerApi.ts`).\n */\nexport class TrackerApi {\n private static readonly V3_VERSION = 'v3';\n\n get v3(): {\n get: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;\n post: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;\n put: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;\n patch: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;\n delete: Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>;\n } {\n return {\n get: this.createMethodProxy('GET'),\n post: this.createMethodProxy('POST'),\n put: this.createMethodProxy('PUT'),\n patch: this.createMethodProxy('PATCH'),\n delete: this.createMethodProxy('DELETE'),\n };\n }\n\n private createMethodProxy(\n method: string,\n ): Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>> {\n const self = this;\n return new Proxy({} as Record<string, (opts: TrackerApiCallOptions) => Promise<unknown>>, {\n get(_, path: string) {\n return (payload: TrackerApiCallOptions) =>\n self.call(method, path, payload, TrackerApi.V3_VERSION);\n },\n });\n }\n\n private call(\n method: string,\n url: string,\n options: TrackerApiCallOptions = {},\n requestVersion: string,\n ): Promise<ApiCallResult> {\n const payload: ApiCallPayload = buildPayload(method, url, options, requestVersion);\n return sendRequest('api.tracker.call', payload) as Promise<ApiCallResult>;\n }\n}\n\nexport const trackerApi = new TrackerApi();\n","import type {\n ApiV3DeleteMethods,\n ApiV3GetMethods,\n ApiV3PatchMethods,\n ApiV3PostMethods,\n ApiV3PutMethods,\n} from '@weavix/tracker-api-types';\n\nimport {\n type TrackerApiCallOptions as BaseCallOptions,\n type TrackerApiInitOptions as BaseInitOptions,\n trackerApi as trackerApiBase,\n} from './trackerApiBase';\n\nexport type TrackerApiCallOptions = BaseCallOptions;\nexport type TrackerApiInitOptions = BaseInitOptions;\n\ntype ApiResult<M> = {\n [K in keyof M]: M[K] extends (...args: infer A) => Promise<infer R>\n ? (...args: A) => Promise<{ data: R; headers: Record<string, string> }>\n : never;\n};\n\nexport interface TrackerApiV3 {\n get: ApiResult<ApiV3GetMethods>;\n post: ApiResult<ApiV3PostMethods>;\n put: ApiResult<ApiV3PutMethods>;\n patch: ApiResult<ApiV3PatchMethods>;\n delete: ApiResult<ApiV3DeleteMethods>;\n}\n\nexport interface TrackerApi {\n v3: TrackerApiV3;\n}\n\nexport const trackerApi = trackerApiBase as unknown as TrackerApi;\n"],"mappings":";;AAUA,SAAS,EACL,GACA,GACA,IAAiC,CAAC,GAClC,GACc;CACd,OAAO;EACH;EACA;EACA;EACA,YAAY,EAAQ,cAAc,CAAC;EACnC,aAAa,EAAQ,eAAe,CAAC;EACrC,YAAY,EAAQ,cAAc,CAAC;EACnC,MAAM,EAAQ;CAClB;AACJ;;;ACUA,IAAa,IAAa,ID2CI,MA1CjB,EAAW;;oBACiB;;CAErC,IAAI,KAMF;EACE,OAAO;GACH,KAAK,KAAK,kBAAkB,KAAK;GACjC,MAAM,KAAK,kBAAkB,MAAM;GACnC,KAAK,KAAK,kBAAkB,KAAK;GACjC,OAAO,KAAK,kBAAkB,OAAO;GACrC,QAAQ,KAAK,kBAAkB,QAAQ;EAC3C;CACJ;CAEA,kBACI,GACiE;EACjE,IAAM,IAAO;EACb,OAAO,IAAI,MAAM,CAAC,GAAwE,EACtF,IAAI,GAAG,GAAc;GACjB,QAAQ,MACJ,EAAK,KAAK,GAAQ,GAAM,GAAS,EAAW,UAAU;EAC9D,EACJ,CAAC;CACL;CAEA,KACI,GACA,GACA,IAAiC,CAAC,GAClC,GACsB;EAEtB,OAAO,EAAY,oBADa,EAAa,GAAQ,GAAK,GAAS,CAC5B,CAAO;CAClD;AACJ,ECzC0B"}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@weavix/tracker-api-plugin",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"exports": {
|
|
6
|
+
".": {
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"import": "./dist/index.mjs"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [],
|
|
16
|
+
"author": "Tracker Team",
|
|
17
|
+
"license": "UNLICENSED",
|
|
18
|
+
"description": "Typed Tracker API client for plugins, host-agnostic (works with any @weavix/sdk-core plugin)",
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"registry": "https://registry.npmjs.org/",
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"@weavix/sdk-core": ">=0.0.0",
|
|
25
|
+
"@weavix/tracker-api-types": ">=0.0.0"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@weavix/tracker-api-types": "*",
|
|
29
|
+
"@types/jest": "*",
|
|
30
|
+
"@weavix/sdk-core": "0.0.0"
|
|
31
|
+
},
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "vite build",
|
|
34
|
+
"typecheck": "tsc --noEmit"
|
|
35
|
+
}
|
|
36
|
+
}
|