@cat-factory/gitlab 0.11.22 → 0.12.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.
@@ -1 +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;AAsB3E,MAAM,WAAW,6BAA6B;IAC5C,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,gGAAgG;IAChG,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;CAC7C;AAOD,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAqC;IAE7D,YAAY,OAAO,GAAE,6BAAkC,EAItD;IAEK,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwBzD;IAoBK,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8BlD;CACF"}
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;AAuB3E,MAAM,WAAW,6BAA6B;IAC5C,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,gGAAgG;IAChG,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;CAC7C;AAOD,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAqC;IAE7D,YAAY,OAAO,GAAE,6BAAkC,EAItD;IAEK,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA2BzD;IAoBK,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8BlD;CACF"}
@@ -1,3 +1,4 @@
1
+ import { VcsIdentityError } from '@cat-factory/kernel';
1
2
  import { GITLAB_PUBLIC_API_BASE } from './tokenSource.js';
2
3
  // Bound on group pagination for the PAT-login org allowlist: ~1000 groups (mirrors
3
4
  // `FetchGitLabClient`'s cap). A user in more groups than this whose only allowlisted group
@@ -22,7 +23,7 @@ export class GitLabIdentityResolver {
22
23
  });
23
24
  if (!res.ok) {
24
25
  const text = await res.text().catch(() => '');
25
- throw new Error(`GitLab /user failed (HTTP ${res.status}): ${text.slice(0, 200)}`);
26
+ throw new VcsIdentityError(`GitLab /user failed (HTTP ${res.status}): ${text.slice(0, 200)}`, res.status);
26
27
  }
27
28
  const user = (await res.json());
28
29
  if (user.id == null || !user.username) {
@@ -1 +1 @@
1
- {"version":3,"file":"GitLabIdentityResolver.js","sourceRoot":"","sources":["../src/GitLabIdentityResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitLabIdentityResolver.js","sourceRoot":"","sources":["../src/GitLabIdentityResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AA8BzD,mFAAmF;AACnF,2FAA2F;AAC3F,oFAAoF;AACpF,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB,MAAM,OAAO,sBAAsB;IAChB,OAAO,CAAQ;IACf,SAAS,CAAc;IACvB,MAAM,CAAsC;IAE7D,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;QAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC9B,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,gBAAgB,CACxB,6BAA6B,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EACjE,GAAG,CAAC,MAAM,CACX,CAAA;QACH,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;IAED,2FAA2F;IAC3F,4FAA4F;IAC5F,8FAA8F;IAC9F,wFAAwF;IACxF,uFAAuF;IACvF,EAAE;IACF,8FAA8F;IAC9F,2FAA2F;IAC3F,6FAA6F;IAC7F,gGAAgG;IAChG,8FAA8F;IAC9F,6EAA6E;IAC7E,EAAE;IACF,4FAA4F;IAC5F,gGAAgG;IAChG,2FAA2F;IAC3F,+FAA+F;IAC/F,4DAA4D;IAC5D,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,GAAG,GAAa,EAAE,CAAA;QACxB,IAAI,GAAG,GAAuB,GAAG,IAAI,CAAC,OAAO,0CAA0C,CAAA;QACvF,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,OAAO,GAAG,IAAI,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;gBACpC,OAAO,EAAE;oBACP,eAAe,EAAE,KAAK;oBACtB,MAAM,EAAE,kBAAkB;oBAC1B,YAAY,EAAE,aAAa;iBAC5B;aACF,CAAC,CAAA;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC7C,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;YACtF,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA0B,CAAA;YAC1D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAA;gBAC1C,IAAI,IAAI;oBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACxC,CAAC;YACD,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAC9C,CAAC;QACD,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,+CAA+C,SAAS,MAAM,GAAG,GAAG,SAAS,WAAW;gBACtF,8EAA8E,CACjF,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAED,mGAAmG;AACnG,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;QACtD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Clock, GitHubClient, VcsProviderRegistry } from '@cat-factory/kernel';
1
+ import type { Clock, GitHubClient, GitHubInstallationRepository, SecretCipher, VcsProviderRegistry } from '@cat-factory/kernel';
2
2
  import type { GitLabTokenSource } from './tokenSource.js';
3
3
  export { FetchGitLabClient, GitLabApiError } from './FetchGitLabClient.js';
4
4
  export { GitLabIdentityResolver, type GitLabIdentityResolverOptions, } from './GitLabIdentityResolver.js';
@@ -6,7 +6,7 @@ export type { FetchGitLabClientDependencies } from './FetchGitLabClient.js';
6
6
  export { GitLabProvisioningClient } from './provisioning.js';
7
7
  export type { GitLabProvisioningDependencies } from './provisioning.js';
8
8
  export { GitLabWebhookMapper, GitLabWebhookVerifier } from './webhook.js';
9
- export { type GitLabTokenSource, StaticGitLabTokenSource, GITLAB_PUBLIC_API_BASE, } from './tokenSource.js';
9
+ export { type GitLabTokenSource, StaticGitLabTokenSource, StoredGitLabTokenSource, GITLAB_PUBLIC_API_BASE, } from './tokenSource.js';
10
10
  export * as gitlabProjection from './projection.js';
11
11
  export { asGitHubClient, type VcsBackedGitHubClientOptions } from './vcsBackedGitHubClient.js';
12
12
  export interface RegisterGitLabOptions {
@@ -44,4 +44,27 @@ export interface BuildGitLabEngineClientOptions {
44
44
  * cannot drift in HOW they build it. The GitHub App client wins when both are configured.
45
45
  */
46
46
  export declare function buildGitLabEngineClient(options: BuildGitLabEngineClientOptions): GitHubClient;
47
+ export interface BuildGitLabConnectClientOptions {
48
+ /** Reads the per-workspace `github_installations` row carrying the sealed PAT. */
49
+ installations: GitHubInstallationRepository;
50
+ /** Decrypts the sealed PAT at call time. */
51
+ cipher: SecretCipher;
52
+ /** REST v4 base for the deployment's GitLab instance. */
53
+ apiBase: string;
54
+ clock: Clock;
55
+ fetchImpl?: typeof fetch;
56
+ logger?: {
57
+ warn: (message: string) => void;
58
+ };
59
+ }
60
+ /**
61
+ * Build a GitLab-backed {@link GitHubClient} for the hosted per-workspace PAT connect flow: a
62
+ * {@link FetchGitLabClient} whose token source ({@link StoredGitLabTokenSource}) resolves and
63
+ * decrypts each connection's sealed PAT, bridged onto the `GitHubClient` port via
64
+ * {@link asGitHubClient}. This is the client the `github` module's sync / installation services
65
+ * read through for a workspace connected via GitLab — routed to per workspace by the
66
+ * provider-routing client when a GitHub App is also configured. Shared by every hosted facade
67
+ * so they cannot drift in HOW they build it.
68
+ */
69
+ export declare function buildGitLabConnectClient(options: BuildGitLabConnectClientOptions): GitHubClient;
47
70
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAMnF,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;AACnD,OAAO,EAAE,cAAc,EAAE,KAAK,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAE9F,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,CAC5B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,qBAAqB,GAC7B,IAAI,CASN;AAED,MAAM,WAAW,8BAA8B;IAC7C,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,YAAY,CAS7F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,4BAA4B,EAC5B,YAAY,EACZ,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAM5B,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,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,gBAAgB,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,KAAK,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAE9F,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,CAC5B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,qBAAqB,GAC7B,IAAI,CASN;AAED,MAAM,WAAW,8BAA8B;IAC7C,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,YAAY,CAS7F;AAED,MAAM,WAAW,+BAA+B;IAC9C,kFAAkF;IAClF,aAAa,EAAE,4BAA4B,CAAA;IAC3C,4CAA4C;IAC5C,MAAM,EAAE,YAAY,CAAA;IACpB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;CAC7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,YAAY,CAc/F"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { FetchGitLabClient } from './FetchGitLabClient.js';
2
2
  import { GitLabProvisioningClient } from './provisioning.js';
3
- import { StaticGitLabTokenSource } from './tokenSource.js';
3
+ import { StaticGitLabTokenSource, StoredGitLabTokenSource } from './tokenSource.js';
4
4
  import { asGitHubClient } from './vcsBackedGitHubClient.js';
5
5
  import { GitLabWebhookMapper, GitLabWebhookVerifier } from './webhook.js';
6
6
  // ---------------------------------------------------------------------------
@@ -14,7 +14,7 @@ export { FetchGitLabClient, GitLabApiError } from './FetchGitLabClient.js';
14
14
  export { GitLabIdentityResolver, } from './GitLabIdentityResolver.js';
15
15
  export { GitLabProvisioningClient } from './provisioning.js';
16
16
  export { GitLabWebhookMapper, GitLabWebhookVerifier } from './webhook.js';
17
- export { StaticGitLabTokenSource, GITLAB_PUBLIC_API_BASE, } from './tokenSource.js';
17
+ export { StaticGitLabTokenSource, StoredGitLabTokenSource, GITLAB_PUBLIC_API_BASE, } from './tokenSource.js';
18
18
  export * as gitlabProjection from './projection.js';
19
19
  export { asGitHubClient } from './vcsBackedGitHubClient.js';
20
20
  /**
@@ -50,4 +50,28 @@ export function buildGitLabEngineClient(options) {
50
50
  provider: 'gitlab',
51
51
  });
52
52
  }
53
+ /**
54
+ * Build a GitLab-backed {@link GitHubClient} for the hosted per-workspace PAT connect flow: a
55
+ * {@link FetchGitLabClient} whose token source ({@link StoredGitLabTokenSource}) resolves and
56
+ * decrypts each connection's sealed PAT, bridged onto the `GitHubClient` port via
57
+ * {@link asGitHubClient}. This is the client the `github` module's sync / installation services
58
+ * read through for a workspace connected via GitLab — routed to per workspace by the
59
+ * provider-routing client when a GitHub App is also configured. Shared by every hosted facade
60
+ * so they cannot drift in HOW they build it.
61
+ */
62
+ export function buildGitLabConnectClient(options) {
63
+ return asGitHubClient({
64
+ vcs: new FetchGitLabClient({
65
+ tokenSource: new StoredGitLabTokenSource({
66
+ installations: options.installations,
67
+ cipher: options.cipher,
68
+ apiBase: options.apiBase,
69
+ }),
70
+ clock: options.clock,
71
+ fetchImpl: options.fetchImpl,
72
+ logger: options.logger,
73
+ }),
74
+ provider: 'gitlab',
75
+ });
76
+ }
53
77
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzE,8EAA8E;AAC9E,kFAAkF;AAClF,4FAA4F;AAC5F,wFAAwF;AACxF,4FAA4F;AAC5F,oGAAoG;AACpG,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;AACnD,OAAO,EAAE,cAAc,EAAqC,MAAM,4BAA4B,CAAA;AAa9F;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA6B,EAC7B,OAA8B;IAE9B,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACxE,QAAQ,CAAC,QAAQ,CAAC;QAChB,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;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAuC;IAC7E,OAAO,cAAc,CAAC;QACpB,GAAG,EAAE,IAAI,iBAAiB,CAAC;YACzB,WAAW,EAAE,IAAI,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;YACxE,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;QACF,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzE,8EAA8E;AAC9E,kFAAkF;AAClF,4FAA4F;AAC5F,wFAAwF;AACxF,4FAA4F;AAC5F,oGAAoG;AACpG,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,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,gBAAgB,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAqC,MAAM,4BAA4B,CAAA;AAa9F;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA6B,EAC7B,OAA8B;IAE9B,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACxE,QAAQ,CAAC,QAAQ,CAAC;QAChB,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;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAuC;IAC7E,OAAO,cAAc,CAAC;QACpB,GAAG,EAAE,IAAI,iBAAiB,CAAC;YACzB,WAAW,EAAE,IAAI,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;YACxE,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;QACF,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;AACJ,CAAC;AAcD;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAwC;IAC/E,OAAO,cAAc,CAAC;QACpB,GAAG,EAAE,IAAI,iBAAiB,CAAC;YACzB,WAAW,EAAE,IAAI,uBAAuB,CAAC;gBACvC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC;YACF,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;QACF,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { VcsConnectionRef } from '@cat-factory/kernel';
1
+ import type { GitHubInstallationRepository, SecretCipher, VcsConnectionRef } from '@cat-factory/kernel';
2
2
  export interface GitLabTokenSource {
3
3
  /** The access token to send for calls on this connection (`PRIVATE-TOKEN` header). */
4
4
  token(connection: VcsConnectionRef): Promise<string>;
@@ -22,4 +22,26 @@ export declare class StaticGitLabTokenSource implements GitLabTokenSource {
22
22
  token(): Promise<string>;
23
23
  apiBase(): string;
24
24
  }
25
+ /**
26
+ * A per-workspace token source for the hosted GitLab connect flow: it resolves the sealed PAT
27
+ * stored on the workspace's `github_installations` row (written by `VcsPatConnectionService`)
28
+ * and decrypts it with the deployment `SecretCipher` at call time. The connection is keyed by
29
+ * `connectionId = String(installationId)` (the synthetic id the connect flow derived from the
30
+ * workspace id), so `Number(connectionId)` reads the row back.
31
+ *
32
+ * The REST base is a single deployment-level value (`GITLAB_API_BASE`) — a deployment targets
33
+ * one GitLab instance for all its workspaces — supplied at construction. Unlike
34
+ * {@link StaticGitLabTokenSource}, the token differs per connection, so a workspace only
35
+ * authenticates with the credential it sealed.
36
+ */
37
+ export declare class StoredGitLabTokenSource implements GitLabTokenSource {
38
+ private readonly deps;
39
+ constructor(deps: {
40
+ installations: GitHubInstallationRepository;
41
+ cipher: SecretCipher;
42
+ apiBase?: string;
43
+ });
44
+ token(connection: VcsConnectionRef): Promise<string>;
45
+ apiBase(): string;
46
+ }
25
47
  //# sourceMappingURL=tokenSource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenSource.d.ts","sourceRoot":"","sources":["../src/tokenSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAU3D,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,KAAK,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD;;;;OAIG;IACH,OAAO,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAAA;CAC9C;AAED,0CAA0C;AAC1C,eAAO,MAAM,sBAAsB,8BAA8B,CAAA;AAEjE;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAE7D,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAA+B,EACpD;IAEE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAE7B;IAED,OAAO,IAAI,MAAM,CAEhB;CACF"}
1
+ {"version":3,"file":"tokenSource.d.ts","sourceRoot":"","sources":["../src/tokenSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,YAAY,EACZ,gBAAgB,EACjB,MAAM,qBAAqB,CAAA;AAU5B,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,KAAK,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD;;;;OAIG;IACH,OAAO,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAAA;CAC9C;AAED,0CAA0C;AAC1C,eAAO,MAAM,sBAAsB,8BAA8B,CAAA;AAEjE;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAE7D,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAA+B,EACpD;IAEE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAE7B;IAED,OAAO,IAAI,MAAM,CAEhB;CACF;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAE7D,OAAO,CAAC,QAAQ,CAAC,IAAI;IADvB,YACmB,IAAI,EAAE;QACrB,aAAa,EAAE,4BAA4B,CAAA;QAC3C,MAAM,EAAE,YAAY,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,EACC;IAEE,KAAK,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYzD;IAED,OAAO,IAAI,MAAM,CAEhB;CACF"}
@@ -18,4 +18,36 @@ export class StaticGitLabTokenSource {
18
18
  return this.base;
19
19
  }
20
20
  }
21
+ /**
22
+ * A per-workspace token source for the hosted GitLab connect flow: it resolves the sealed PAT
23
+ * stored on the workspace's `github_installations` row (written by `VcsPatConnectionService`)
24
+ * and decrypts it with the deployment `SecretCipher` at call time. The connection is keyed by
25
+ * `connectionId = String(installationId)` (the synthetic id the connect flow derived from the
26
+ * workspace id), so `Number(connectionId)` reads the row back.
27
+ *
28
+ * The REST base is a single deployment-level value (`GITLAB_API_BASE`) — a deployment targets
29
+ * one GitLab instance for all its workspaces — supplied at construction. Unlike
30
+ * {@link StaticGitLabTokenSource}, the token differs per connection, so a workspace only
31
+ * authenticates with the credential it sealed.
32
+ */
33
+ export class StoredGitLabTokenSource {
34
+ deps;
35
+ constructor(deps) {
36
+ this.deps = deps;
37
+ }
38
+ async token(connection) {
39
+ const installationId = Number(connection.connectionId);
40
+ if (!Number.isFinite(installationId)) {
41
+ throw new Error(`GitLab connection has a non-numeric connectionId: ${connection.connectionId}`);
42
+ }
43
+ const installation = await this.deps.installations.getByInstallationId(installationId);
44
+ if (!installation || installation.deletedAt || !installation.accessToken) {
45
+ throw new Error(`No GitLab credential stored for connection ${connection.connectionId}`);
46
+ }
47
+ return this.deps.cipher.decrypt(installation.accessToken);
48
+ }
49
+ apiBase() {
50
+ return this.deps.apiBase ?? GITLAB_PUBLIC_API_BASE;
51
+ }
52
+ }
21
53
  //# sourceMappingURL=tokenSource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenSource.js","sourceRoot":"","sources":["../src/tokenSource.ts"],"names":[],"mappings":"AAqBA,0CAA0C;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,2BAA2B,CAAA;AAEjE;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAEf,WAAW;IACX,IAAI;IAFvB,YACmB,WAAmB,EACnB,IAAI,GAAW,sBAAsB;2BADrC,WAAW;oBACX,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"tokenSource.js","sourceRoot":"","sources":["../src/tokenSource.ts"],"names":[],"mappings":"AAyBA,0CAA0C;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,2BAA2B,CAAA;AAEjE;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAEf,WAAW;IACX,IAAI;IAFvB,YACmB,WAAmB,EACnB,IAAI,GAAW,sBAAsB;2BADrC,WAAW;oBACX,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,uBAAuB;IAEf,IAAI;IADvB,YACmB,IAIhB;oBAJgB,IAAI;IAKpB,CAAC;IAEJ,KAAK,CAAC,KAAK,CAAC,UAA4B;QACtC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,qDAAqD,UAAU,CAAC,YAAY,EAAE,CAC/E,CAAA;QACH,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAA;QACtF,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,sBAAsB,CAAA;IACpD,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/gitlab",
3
- "version": "0.11.22",
3
+ "version": "0.12.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.160.1",
28
- "@cat-factory/kernel": "0.154.2"
27
+ "@cat-factory/contracts": "0.161.0",
28
+ "@cat-factory/kernel": "0.155.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "7.0.2",