@cat-factory/gitlab 0.1.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ import type { VcsIdentity, VcsIdentityResolver } from '@cat-factory/kernel';
2
+ export interface GitLabIdentityResolverOptions {
3
+ /** REST API base, e.g. `https://gitlab.com/api/v4`. Defaults to the public gitlab.com. */
4
+ apiBase?: string;
5
+ /** Injected for tests; defaults to the global `fetch`. */
6
+ fetchImpl?: typeof fetch;
7
+ }
8
+ export declare class GitLabIdentityResolver implements VcsIdentityResolver {
9
+ private readonly apiBase;
10
+ private readonly fetchImpl;
11
+ constructor(options?: GitLabIdentityResolverOptions);
12
+ resolveIdentity(token: string): Promise<VcsIdentity>;
13
+ }
14
+ //# sourceMappingURL=GitLabIdentityResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitLabIdentityResolver.d.ts","sourceRoot":"","sources":["../src/GitLabIdentityResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAiB3E,MAAM,WAAW,6BAA6B;IAC5C,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAED,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,YAAY,OAAO,GAAE,6BAAkC,EAGtD;IAEK,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwBzD;CACF"}
@@ -0,0 +1,35 @@
1
+ import { GITLAB_PUBLIC_API_BASE } from './tokenSource.js';
2
+ export class GitLabIdentityResolver {
3
+ apiBase;
4
+ fetchImpl;
5
+ constructor(options = {}) {
6
+ this.apiBase = (options.apiBase ?? GITLAB_PUBLIC_API_BASE).replace(/\/+$/, '');
7
+ this.fetchImpl = options.fetchImpl ?? fetch;
8
+ }
9
+ async resolveIdentity(token) {
10
+ const res = await this.fetchImpl(`${this.apiBase}/user`, {
11
+ headers: {
12
+ 'private-token': token,
13
+ accept: 'application/json',
14
+ 'user-agent': 'cat-factory',
15
+ },
16
+ });
17
+ if (!res.ok) {
18
+ const text = await res.text().catch(() => '');
19
+ throw new Error(`GitLab /user failed (HTTP ${res.status}): ${text.slice(0, 200)}`);
20
+ }
21
+ const user = (await res.json());
22
+ if (user.id == null || !user.username) {
23
+ throw new Error('GitLab /user returned no account id');
24
+ }
25
+ return {
26
+ provider: 'gitlab',
27
+ externalId: String(user.id),
28
+ login: user.username,
29
+ name: user.name ?? null,
30
+ avatarUrl: user.avatar_url ?? null,
31
+ email: user.email ?? null,
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=GitLabIdentityResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitLabIdentityResolver.js","sourceRoot":"","sources":["../src/GitLabIdentityResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAuBzD,MAAM,OAAO,sBAAsB;IAChB,OAAO,CAAQ;IACf,SAAS,CAAc;IAExC,YAAY,OAAO,GAAkC,EAAE;QACrD,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,sBAAsB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAC9E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAa;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,OAAO,EAAE;YACvD,OAAO,EAAE;gBACP,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,kBAAkB;gBAC1B,YAAY,EAAE,aAAa;aAC5B;SACF,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YAC7C,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACpF,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAA;QACrD,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,KAAK,EAAE,IAAI,CAAC,QAAQ;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;SAC1B,CAAA;IACH,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { type Clock } from '@cat-factory/kernel';
2
2
  import type { GitLabTokenSource } from './tokenSource.js';
3
3
  export { FetchGitLabClient, GitLabApiError } from './FetchGitLabClient.js';
4
+ export { GitLabIdentityResolver, type GitLabIdentityResolverOptions, } from './GitLabIdentityResolver.js';
4
5
  export type { FetchGitLabClientDependencies } from './FetchGitLabClient.js';
5
6
  export { GitLabProvisioningClient } from './provisioning.js';
6
7
  export type { GitLabProvisioningDependencies } from './provisioning.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAIrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAUzD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC1E,YAAY,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,YAAY,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EACL,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,gBAAgB,MAAM,iBAAiB,CAAA;AAEnD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,iBAAiB,CAAA;IAC9B,KAAK,EAAE,KAAK,CAAA;IACZ,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,wEAAwE;IACxE,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CASnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAIrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAUzD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,GACnC,MAAM,6BAA6B,CAAA;AACpC,YAAY,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,YAAY,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EACL,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,gBAAgB,MAAM,iBAAiB,CAAA;AAEnD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,iBAAiB,CAAA;IAC9B,KAAK,EAAE,KAAK,CAAA;IACZ,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,wEAAwE;IACxE,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CASnE"}
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ import { GitLabWebhookMapper, GitLabWebhookVerifier } from './webhook.js';
10
10
  // resolves this bundle via `resolveVcsProvider(ref)`.
11
11
  // ---------------------------------------------------------------------------
12
12
  export { FetchGitLabClient, GitLabApiError } from './FetchGitLabClient.js';
13
+ export { GitLabIdentityResolver, } from './GitLabIdentityResolver.js';
13
14
  export { GitLabProvisioningClient } from './provisioning.js';
14
15
  export { GitLabWebhookMapper, GitLabWebhookVerifier } from './webhook.js';
15
16
  export { StaticGitLabTokenSource, GITLAB_PUBLIC_API_BASE, } from './tokenSource.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAc,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzE,8EAA8E;AAC9E,kFAAkF;AAClF,4FAA4F;AAC5F,wFAAwF;AACxF,6FAA6F;AAC7F,sDAAsD;AACtD,8EAA8E;AAE9E,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,gBAAgB,MAAM,iBAAiB,CAAA;AAanD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAA8B;IAC3D,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACxE,mBAAmB,CAAC;QAClB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,IAAI,iBAAiB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QACxE,aAAa,EAAE,IAAI,mBAAmB,CAAC,KAAK,CAAC;QAC7C,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QACrF,YAAY,EAAE,IAAI,wBAAwB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;KACvE,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAc,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzE,8EAA8E;AAC9E,kFAAkF;AAClF,4FAA4F;AAC5F,wFAAwF;AACxF,6FAA6F;AAC7F,sDAAsD;AACtD,8EAA8E;AAE9E,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,EACL,sBAAsB,GAEvB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,gBAAgB,MAAM,iBAAiB,CAAA;AAanD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAA8B;IAC3D,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACxE,mBAAmB,CAAC;QAClB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,IAAI,iBAAiB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QACxE,aAAa,EAAE,IAAI,mBAAmB,CAAC,KAAK,CAAC;QAC7C,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QACrF,YAAY,EAAE,IAAI,wBAAwB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;KACvE,CAAC,CAAA;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/gitlab",
3
- "version": "0.1.7",
3
+ "version": "0.2.0",
4
4
  "description": "Opt-in GitLab VCS provider for cat-factory. Implements the provider-neutral VcsClient / webhook / provisioning ports against the GitLab REST v4 API and registers itself via registerVcsProvider('gitlab'). Depends only on @cat-factory/kernel + @cat-factory/contracts.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,8 +24,8 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@cat-factory/contracts": "0.43.3",
28
- "@cat-factory/kernel": "0.45.5"
27
+ "@cat-factory/contracts": "0.44.0",
28
+ "@cat-factory/kernel": "0.46.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "7.0.1-rc",