@relayfile/relay-helpers 0.4.3 → 0.4.5
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 +36 -0
- package/dist/generated/clients.d.ts +33 -34
- package/dist/generated/clients.d.ts.map +1 -1
- package/dist/generated/clients.js +1 -2
- package/dist/generated/clients.js.map +1 -1
- package/dist/generic.d.ts +4 -3
- package/dist/generic.d.ts.map +1 -1
- package/dist/generic.js +30 -0
- package/dist/generic.js.map +1 -1
- package/dist/github.d.ts +33 -2
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +53 -0
- package/dist/github.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/linear.d.ts +2 -2
- package/dist/linear.d.ts.map +1 -1
- package/dist/linear.js +24 -4
- package/dist/linear.js.map +1 -1
- package/dist/preview-transport.test.d.ts +2 -0
- package/dist/preview-transport.test.d.ts.map +1 -0
- package/dist/preview-transport.test.js +175 -0
- package/dist/preview-transport.test.js.map +1 -0
- package/dist/provider-client.d.ts +3 -2
- package/dist/provider-client.d.ts.map +1 -1
- package/dist/provider-client.js.map +1 -1
- package/dist/reddit.d.ts +12 -0
- package/dist/reddit.d.ts.map +1 -0
- package/dist/reddit.js +42 -0
- package/dist/reddit.js.map +1 -0
- package/dist/reddit.test.d.ts +2 -0
- package/dist/reddit.test.d.ts.map +1 -0
- package/dist/reddit.test.js +62 -0
- package/dist/reddit.test.js.map +1 -0
- package/dist/relay-helpers.test.js +16 -0
- package/dist/relay-helpers.test.js.map +1 -1
- package/dist/slack.d.ts +2 -2
- package/dist/slack.d.ts.map +1 -1
- package/dist/slack.js +4 -1
- package/dist/slack.js.map +1 -1
- package/dist/telegram.d.ts +3 -2
- package/dist/telegram.d.ts.map +1 -1
- package/dist/telegram.js.map +1 -1
- package/dist/transport.d.ts +86 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +192 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +14 -3
package/README.md
CHANGED
|
@@ -46,3 +46,39 @@ await notion.pages.list({ databaseId }); // list a collection
|
|
|
46
46
|
clients **plus** named ergonomic methods (`comment`, `post`, `mergePullRequest`,
|
|
47
47
|
…). `relayClient(provider)` is the dynamic, string-keyed escape hatch when the
|
|
48
48
|
provider isn't known at author time.
|
|
49
|
+
|
|
50
|
+
## Side-effect-free previews
|
|
51
|
+
|
|
52
|
+
Inject `PreviewTransport` when a local run must record intended provider
|
|
53
|
+
operations without touching a Relayfile mount or network API. Explicit
|
|
54
|
+
transport injection always wins over ambient credentials:
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
import { PreviewTransport, slackClient } from '@relayfile/relay-helpers';
|
|
58
|
+
|
|
59
|
+
const preview = new PreviewTransport();
|
|
60
|
+
const slack = slackClient({ transport: preview });
|
|
61
|
+
const header = await slack.post('C123', 'Daily digest');
|
|
62
|
+
await slack.post('C123', 'First item', { replyTo: header.ref });
|
|
63
|
+
|
|
64
|
+
console.log(preview.actions); // typed read/list/write PreviewAction records
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Simulated receipts use deterministic fake IDs, so later operations can refer
|
|
68
|
+
to earlier previewed writes. Seed reads and lists by canonical path through the
|
|
69
|
+
constructor's `fixtures` option or `preview.seed(path, value)`.
|
|
70
|
+
|
|
71
|
+
For existing handlers that call `slackClient()` (or another client factory)
|
|
72
|
+
without options, bind the preview for the process and restore it after the run:
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import { PreviewTransport, bindPreviewTransport } from '@relayfile/relay-helpers/transport';
|
|
76
|
+
|
|
77
|
+
const preview = new PreviewTransport();
|
|
78
|
+
const restore = bindPreviewTransport(preview);
|
|
79
|
+
try {
|
|
80
|
+
await handler();
|
|
81
|
+
} finally {
|
|
82
|
+
restore();
|
|
83
|
+
}
|
|
84
|
+
```
|
|
@@ -1,36 +1,35 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RelayClientOptions } from '../transport.js';
|
|
2
2
|
import { type ProviderClient } from '../provider-client.js';
|
|
3
|
-
export declare const asanaClient: (opts?:
|
|
4
|
-
export declare const azureBlobClient: (opts?:
|
|
5
|
-
export declare const boxClient: (opts?:
|
|
6
|
-
export declare const calendlyClient: (opts?:
|
|
7
|
-
export declare const clickupClient: (opts?:
|
|
8
|
-
export declare const cloudflareClient: (opts?:
|
|
9
|
-
export declare const confluenceClient: (opts?:
|
|
10
|
-
export declare const daytonaClient: (opts?:
|
|
11
|
-
export declare const dropboxClient: (opts?:
|
|
12
|
-
export declare const gcsClient: (opts?:
|
|
13
|
-
export declare const gitlabClient: (opts?:
|
|
14
|
-
export declare const gmailClient: (opts?:
|
|
15
|
-
export declare const googleCalendarClient: (opts?:
|
|
16
|
-
export declare const googleDriveClient: (opts?:
|
|
17
|
-
export declare const granolaClient: (opts?:
|
|
18
|
-
export declare const hubspotClient: (opts?:
|
|
19
|
-
export declare const intercomClient: (opts?:
|
|
20
|
-
export declare const jiraClient: (opts?:
|
|
21
|
-
export declare const mailgunClient: (opts?:
|
|
22
|
-
export declare const mixpanelClient: (opts?:
|
|
23
|
-
export declare const notionClient: (opts?:
|
|
24
|
-
export declare const onedriveClient: (opts?:
|
|
25
|
-
export declare const pipedriveClient: (opts?:
|
|
26
|
-
export declare const postgresClient: (opts?:
|
|
27
|
-
export declare const recallClient: (opts?:
|
|
28
|
-
export declare const
|
|
29
|
-
export declare const
|
|
30
|
-
export declare const
|
|
31
|
-
export declare const
|
|
32
|
-
export declare const
|
|
33
|
-
export declare const
|
|
34
|
-
export declare const
|
|
35
|
-
export declare const zendeskClient: (opts?: IntegrationClientOptions) => ProviderClient<"zendesk">;
|
|
3
|
+
export declare const asanaClient: (opts?: RelayClientOptions) => ProviderClient<"asana">;
|
|
4
|
+
export declare const azureBlobClient: (opts?: RelayClientOptions) => ProviderClient<"azure-blob">;
|
|
5
|
+
export declare const boxClient: (opts?: RelayClientOptions) => ProviderClient<"box">;
|
|
6
|
+
export declare const calendlyClient: (opts?: RelayClientOptions) => ProviderClient<"calendly">;
|
|
7
|
+
export declare const clickupClient: (opts?: RelayClientOptions) => ProviderClient<"clickup">;
|
|
8
|
+
export declare const cloudflareClient: (opts?: RelayClientOptions) => ProviderClient<"cloudflare">;
|
|
9
|
+
export declare const confluenceClient: (opts?: RelayClientOptions) => ProviderClient<"confluence">;
|
|
10
|
+
export declare const daytonaClient: (opts?: RelayClientOptions) => ProviderClient<"daytona">;
|
|
11
|
+
export declare const dropboxClient: (opts?: RelayClientOptions) => ProviderClient<"dropbox">;
|
|
12
|
+
export declare const gcsClient: (opts?: RelayClientOptions) => ProviderClient<"gcs">;
|
|
13
|
+
export declare const gitlabClient: (opts?: RelayClientOptions) => ProviderClient<"gitlab">;
|
|
14
|
+
export declare const gmailClient: (opts?: RelayClientOptions) => ProviderClient<"gmail">;
|
|
15
|
+
export declare const googleCalendarClient: (opts?: RelayClientOptions) => ProviderClient<"google-calendar">;
|
|
16
|
+
export declare const googleDriveClient: (opts?: RelayClientOptions) => ProviderClient<"google-drive">;
|
|
17
|
+
export declare const granolaClient: (opts?: RelayClientOptions) => ProviderClient<"granola">;
|
|
18
|
+
export declare const hubspotClient: (opts?: RelayClientOptions) => ProviderClient<"hubspot">;
|
|
19
|
+
export declare const intercomClient: (opts?: RelayClientOptions) => ProviderClient<"intercom">;
|
|
20
|
+
export declare const jiraClient: (opts?: RelayClientOptions) => ProviderClient<"jira">;
|
|
21
|
+
export declare const mailgunClient: (opts?: RelayClientOptions) => ProviderClient<"mailgun">;
|
|
22
|
+
export declare const mixpanelClient: (opts?: RelayClientOptions) => ProviderClient<"mixpanel">;
|
|
23
|
+
export declare const notionClient: (opts?: RelayClientOptions) => ProviderClient<"notion">;
|
|
24
|
+
export declare const onedriveClient: (opts?: RelayClientOptions) => ProviderClient<"onedrive">;
|
|
25
|
+
export declare const pipedriveClient: (opts?: RelayClientOptions) => ProviderClient<"pipedrive">;
|
|
26
|
+
export declare const postgresClient: (opts?: RelayClientOptions) => ProviderClient<"postgres">;
|
|
27
|
+
export declare const recallClient: (opts?: RelayClientOptions) => ProviderClient<"recall">;
|
|
28
|
+
export declare const redisClient: (opts?: RelayClientOptions) => ProviderClient<"redis">;
|
|
29
|
+
export declare const s3Client: (opts?: RelayClientOptions) => ProviderClient<"s3">;
|
|
30
|
+
export declare const salesforceClient: (opts?: RelayClientOptions) => ProviderClient<"salesforce">;
|
|
31
|
+
export declare const sendgridClient: (opts?: RelayClientOptions) => ProviderClient<"sendgrid">;
|
|
32
|
+
export declare const sharepointClient: (opts?: RelayClientOptions) => ProviderClient<"sharepoint">;
|
|
33
|
+
export declare const teamsClient: (opts?: RelayClientOptions) => ProviderClient<"teams">;
|
|
34
|
+
export declare const zendeskClient: (opts?: RelayClientOptions) => ProviderClient<"zendesk">;
|
|
36
35
|
//# sourceMappingURL=clients.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../src/generated/clients.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../src/generated/clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// @relayfile/adapter-core/writeback-paths — do not edit by hand.
|
|
3
3
|
// Run `npm run gen -w @relayfile/relay-helpers` after bumping adapter-core.
|
|
4
4
|
//
|
|
5
|
-
// linear / github / slack / telegram have bespoke ergonomic clients in their own modules;
|
|
5
|
+
// linear / github / slack / telegram / reddit have bespoke ergonomic clients in their own modules;
|
|
6
6
|
// every other catalog provider gets a uniform resource-keyed client here.
|
|
7
7
|
import { providerClient } from '../provider-client.js';
|
|
8
8
|
export const asanaClient = (opts) => providerClient('asana', opts);
|
|
@@ -30,7 +30,6 @@ export const onedriveClient = (opts) => providerClient('onedrive', opts);
|
|
|
30
30
|
export const pipedriveClient = (opts) => providerClient('pipedrive', opts);
|
|
31
31
|
export const postgresClient = (opts) => providerClient('postgres', opts);
|
|
32
32
|
export const recallClient = (opts) => providerClient('recall', opts);
|
|
33
|
-
export const redditClient = (opts) => providerClient('reddit', opts);
|
|
34
33
|
export const redisClient = (opts) => providerClient('redis', opts);
|
|
35
34
|
export const s3Client = (opts) => providerClient('s3', opts);
|
|
36
35
|
export const salesforceClient = (opts) => providerClient('salesforce', opts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/generated/clients.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,iEAAiE;AACjE,4EAA4E;AAC5E,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/generated/clients.ts"],"names":[],"mappings":"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"}
|
package/dist/generic.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { encodeSegment, type
|
|
1
|
+
import { encodeSegment, type WritebackResult } from '@relayfile/adapter-core/vfs-client';
|
|
2
2
|
import { type WritebackProvider, type WritebackResource } from '@relayfile/adapter-core/writeback-paths';
|
|
3
|
+
import { type RelayClientOptions } from './transport.js';
|
|
3
4
|
export type RelayParams = Record<string, string | number>;
|
|
4
5
|
/**
|
|
5
6
|
* A catalog-backed client for one provider. Every path comes from
|
|
@@ -31,7 +32,7 @@ export interface RelayClient<P extends WritebackProvider> {
|
|
|
31
32
|
* ambient sandbox mount-root env, so `relayClient('linear')` is enough inside
|
|
32
33
|
* a sandbox handler.
|
|
33
34
|
*/
|
|
34
|
-
export declare function relayClient<P extends WritebackProvider>(provider: P, opts?:
|
|
35
|
+
export declare function relayClient<P extends WritebackProvider>(provider: P, opts?: RelayClientOptions): RelayClient<P>;
|
|
35
36
|
/** Re-exported so callers can build item-read paths (`${collection}/${id}.json`). */
|
|
36
|
-
export { encodeSegment, type
|
|
37
|
+
export { encodeSegment, type RelayClientOptions, type WritebackResult };
|
|
37
38
|
//# sourceMappingURL=generic.d.ts.map
|
package/dist/generic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAIb,KAAK,
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAIb,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,iBAAiB;IACtD,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrB,yDAAyD;IACzD,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC5E;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7G,oDAAoD;IACpD,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACnF,iDAAiD;IACjD,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CACtF;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,iBAAiB,EACrD,QAAQ,EAAE,CAAC,EACX,IAAI,GAAE,kBAAuB,GAC5B,WAAW,CAAC,CAAC,CAAC,CAgEhB;AAED,qFAAqF;AACrF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,CAAC"}
|
package/dist/generic.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { draftFile, encodeSegment, listJsonFiles, readJsonFile, writeJsonFile } from '@relayfile/adapter-core/vfs-client';
|
|
2
2
|
import { WRITEBACK_PATH_CATALOG, writebackPath } from '@relayfile/adapter-core/writeback-paths';
|
|
3
|
+
import { createRelayTransportResolver, } from './transport.js';
|
|
3
4
|
function isItemPath(path) {
|
|
4
5
|
return path.endsWith('.json');
|
|
5
6
|
}
|
|
@@ -10,6 +11,7 @@ function isItemPath(path) {
|
|
|
10
11
|
* a sandbox handler.
|
|
11
12
|
*/
|
|
12
13
|
export function relayClient(provider, opts = {}) {
|
|
14
|
+
const resolveTransport = createRelayTransportResolver(opts);
|
|
13
15
|
const knownResources = () => Object.keys(WRITEBACK_PATH_CATALOG[provider] ?? {}).join(', ');
|
|
14
16
|
return {
|
|
15
17
|
provider,
|
|
@@ -18,6 +20,16 @@ export function relayClient(provider, opts = {}) {
|
|
|
18
20
|
},
|
|
19
21
|
async write(resource, params, body) {
|
|
20
22
|
const base = writebackPath(provider, resource, params);
|
|
23
|
+
const transport = resolveTransport();
|
|
24
|
+
if (transport) {
|
|
25
|
+
return transport.write({
|
|
26
|
+
provider,
|
|
27
|
+
resource: String(resource),
|
|
28
|
+
parameters: { ...params },
|
|
29
|
+
path: base,
|
|
30
|
+
body,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
21
33
|
const target = isItemPath(base) ? base : `${base}/${draftFile(String(resource))}`;
|
|
22
34
|
return writeJsonFile(opts, provider, `write.${String(resource)}`, target, body);
|
|
23
35
|
},
|
|
@@ -29,6 +41,15 @@ export function relayClient(provider, opts = {}) {
|
|
|
29
41
|
if (!isItemPath(path)) {
|
|
30
42
|
throw new Error(`read("${String(resource)}") resolves to collection "${path}"; read a specific item path or use list(). Known resources for ${provider}: ${knownResources()}`);
|
|
31
43
|
}
|
|
44
|
+
const transport = resolveTransport();
|
|
45
|
+
if (transport) {
|
|
46
|
+
return transport.read({
|
|
47
|
+
provider,
|
|
48
|
+
resource: String(resource),
|
|
49
|
+
parameters: { ...params },
|
|
50
|
+
path,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
32
53
|
return readJsonFile(opts, provider, `read.${String(resource)}`, path);
|
|
33
54
|
},
|
|
34
55
|
async list(resource, params = {}) {
|
|
@@ -36,6 +57,15 @@ export function relayClient(provider, opts = {}) {
|
|
|
36
57
|
if (isItemPath(path)) {
|
|
37
58
|
throw new Error(`list("${String(resource)}") resolves to item "${path}"; use read() instead. Known resources for ${provider}: ${knownResources()}`);
|
|
38
59
|
}
|
|
60
|
+
const transport = resolveTransport();
|
|
61
|
+
if (transport) {
|
|
62
|
+
return transport.list({
|
|
63
|
+
provider,
|
|
64
|
+
resource: String(resource),
|
|
65
|
+
parameters: { ...params },
|
|
66
|
+
path,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
39
69
|
const files = await listJsonFiles(opts, provider, `list.${String(resource)}`, path);
|
|
40
70
|
return files.map((file) => file.value);
|
|
41
71
|
}
|
package/dist/generic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"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"}
|
package/dist/github.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IntegrationClientOptions } from '@relayfile/adapter-core/vfs-client';
|
|
2
1
|
import { type ProviderClient } from './provider-client.js';
|
|
2
|
+
import { type RelayClientOptions } from './transport.js';
|
|
3
3
|
export interface GithubTarget {
|
|
4
4
|
owner: string;
|
|
5
5
|
repo: string;
|
|
@@ -22,6 +22,37 @@ export interface GithubClient extends ProviderClient<'github'> {
|
|
|
22
22
|
id: string;
|
|
23
23
|
url: string;
|
|
24
24
|
}>;
|
|
25
|
+
/** Create a pull request from a branch already present on GitHub. */
|
|
26
|
+
createPullRequest(args: {
|
|
27
|
+
owner: string;
|
|
28
|
+
repo: string;
|
|
29
|
+
title: string;
|
|
30
|
+
head: string;
|
|
31
|
+
base: string;
|
|
32
|
+
body?: string;
|
|
33
|
+
draft?: boolean;
|
|
34
|
+
author?: 'app' | 'user';
|
|
35
|
+
}): Promise<{
|
|
36
|
+
id: string;
|
|
37
|
+
url: string;
|
|
38
|
+
}>;
|
|
39
|
+
/** Create a Git ref through a non-canonical draft. */
|
|
40
|
+
pushRef(args: {
|
|
41
|
+
owner: string;
|
|
42
|
+
repo: string;
|
|
43
|
+
ref: string;
|
|
44
|
+
sha: string;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
/** Update a Git ref through its deterministic canonical resource path. */
|
|
47
|
+
updateRef(args: {
|
|
48
|
+
owner: string;
|
|
49
|
+
repo: string;
|
|
50
|
+
ref: string;
|
|
51
|
+
sha: string;
|
|
52
|
+
force?: boolean;
|
|
53
|
+
}): Promise<void>;
|
|
54
|
+
/** Close a pull request without merging it. */
|
|
55
|
+
closePullRequest(target: GithubTarget): Promise<void>;
|
|
25
56
|
/**
|
|
26
57
|
* Merge a pull request. (Named `mergePullRequest`, not `merge`, because
|
|
27
58
|
* `merge` is the catalog resource key exposed as `.merge`.)
|
|
@@ -53,5 +84,5 @@ export interface GithubClient extends ProviderClient<'github'> {
|
|
|
53
84
|
* Ergonomic GitHub client over the writeback-path catalog, plus the uniform
|
|
54
85
|
* resource-keyed access (`.issues`, `.["issue-comments"]`, `.merge`, `.reviews`).
|
|
55
86
|
*/
|
|
56
|
-
export declare function githubClient(opts?:
|
|
87
|
+
export declare function githubClient(opts?: RelayClientOptions): GithubClient;
|
|
57
88
|
//# sourceMappingURL=github.d.ts.map
|
package/dist/github.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
|
package/dist/github.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { encodeSegment, writeJsonFile, } from '@relayfile/adapter-core/vfs-client';
|
|
1
2
|
import { providerClient } from './provider-client.js';
|
|
2
3
|
import { created } from './receipt.js';
|
|
4
|
+
import { createRelayTransportResolver, } from './transport.js';
|
|
3
5
|
/**
|
|
4
6
|
* Ergonomic GitHub client over the writeback-path catalog, plus the uniform
|
|
5
7
|
* resource-keyed access (`.issues`, `.["issue-comments"]`, `.merge`, `.reviews`).
|
|
6
8
|
*/
|
|
7
9
|
export function githubClient(opts = {}) {
|
|
8
10
|
const base = providerClient('github', opts);
|
|
11
|
+
const resolveTransport = createRelayTransportResolver(opts);
|
|
9
12
|
return Object.assign(base, {
|
|
10
13
|
async comment(target, body) {
|
|
11
14
|
return created(await base['issue-comments'].write({ owner: target.owner, repo: target.repo, issueNumber: target.number }, { body }));
|
|
@@ -13,6 +16,48 @@ export function githubClient(opts = {}) {
|
|
|
13
16
|
async createIssue(args) {
|
|
14
17
|
return created(await base.issues.write({ owner: args.owner, repo: args.repo }, { title: args.title, body: args.body, ...(args.labels ? { labels: args.labels } : {}) }));
|
|
15
18
|
},
|
|
19
|
+
async createPullRequest(args) {
|
|
20
|
+
return created(await base['pull-requests'].write({ owner: args.owner, repo: args.repo }, {
|
|
21
|
+
title: args.title,
|
|
22
|
+
head: args.head,
|
|
23
|
+
base: args.base,
|
|
24
|
+
...(args.body !== undefined ? { body: args.body } : {}),
|
|
25
|
+
...(args.draft !== undefined ? { draft: args.draft } : {}),
|
|
26
|
+
...(args.author !== undefined ? { author: args.author } : {})
|
|
27
|
+
}));
|
|
28
|
+
},
|
|
29
|
+
async pushRef(args) {
|
|
30
|
+
await base.refs.write({ owner: args.owner, repo: args.repo }, {
|
|
31
|
+
ref: args.ref,
|
|
32
|
+
sha: args.sha
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
async updateRef(args) {
|
|
36
|
+
const normalizedRef = normalizeGitHubRef(args.ref);
|
|
37
|
+
const collectionPath = base.refs.path({ owner: args.owner, repo: args.repo });
|
|
38
|
+
const path = `${collectionPath}/${encodeSegment(normalizedRef)}.json`;
|
|
39
|
+
const body = {
|
|
40
|
+
ref: normalizedRef,
|
|
41
|
+
sha: args.sha,
|
|
42
|
+
...(args.force !== undefined ? { force: args.force } : {})
|
|
43
|
+
};
|
|
44
|
+
const transport = resolveTransport();
|
|
45
|
+
if (transport) {
|
|
46
|
+
await transport.write({
|
|
47
|
+
provider: 'github',
|
|
48
|
+
resource: 'refs',
|
|
49
|
+
parameters: { owner: args.owner, repo: args.repo, ref: normalizedRef },
|
|
50
|
+
path,
|
|
51
|
+
body,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
await writeJsonFile(opts, 'github', 'write.refs', path, body);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
async closePullRequest(target) {
|
|
59
|
+
await base['close-pull-request'].write({ owner: target.owner, repo: target.repo, pullNumber: target.number }, {});
|
|
60
|
+
},
|
|
16
61
|
async mergePullRequest(args) {
|
|
17
62
|
const result = await base.merge.write({ owner: args.owner, repo: args.repo, pullNumber: args.number }, {
|
|
18
63
|
...(args.method !== undefined ? { merge_method: args.method } : {}),
|
|
@@ -36,4 +81,12 @@ export function githubClient(opts = {}) {
|
|
|
36
81
|
}
|
|
37
82
|
});
|
|
38
83
|
}
|
|
84
|
+
function normalizeGitHubRef(ref) {
|
|
85
|
+
const trimmed = ref.trim();
|
|
86
|
+
const normalized = trimmed.startsWith('refs/') ? trimmed : `refs/heads/${trimmed}`;
|
|
87
|
+
if (!/^refs\/[^/]+\/[^/].*$/u.test(normalized) || normalized.includes('//')) {
|
|
88
|
+
throw new Error('GitHub ref must name a non-empty ref such as refs/heads/main');
|
|
89
|
+
}
|
|
90
|
+
return normalized;
|
|
91
|
+
}
|
|
39
92
|
//# sourceMappingURL=github.js.map
|
package/dist/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,GACd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,4BAA4B,GAE7B,MAAM,gBAAgB,CAAC;AAuExB;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAA2B,EAAE;IACxD,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,KAAK,CAAC,OAAO,CAAC,MAAoB,EAAE,IAAY;YAC9C,OAAO,OAAO,CACZ,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAChC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,EACtE,EAAE,IAAI,EAAE,CACT,CACF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,IAAqF;YACrG,OAAO,OAAO,CACZ,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACrB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EACtC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CACxF,CACF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,IASvB;YACC,OAAO,OAAO,CACZ,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAC/B,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EACtC;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CACF,CACF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAKb;YACC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CACnB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EACtC;gBACE,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CACF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAMf;YACC,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,GAAG,cAAc,IAAI,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC;YACtE,MAAM,IAAI,GAAG;gBACX,GAAG,EAAE,aAAa;gBAClB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D,CAAC;YACF,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;YACrC,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,CAAC,KAAK,CAAC;oBACpB,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,MAAM;oBAChB,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE;oBACtE,IAAI;oBACJ,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,MAAoB;YACzC,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,KAAK,CACpC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,EACrE,EAAE,CACH,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,IAQtB;YACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACnC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,EAC/D;gBACE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnF,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,CACF,CAAC;YACF,MAAM,GAAG,GACP,OAAO,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,QAAQ;gBACrC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;gBACpB,CAAC,CAAC,OAAO,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,QAAQ;oBACtC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;oBACnB,CAAC,CAAC,SAAS,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;YACtC,OAAO;gBACL,MAAM,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;gBACtF,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxB,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,MAAM,CACV,MAAoB,EACpB,IAIC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CACtB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,EACrE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAC3C,CAAC;QACJ,CAAC;KACF,CAAiB,CAAC;AACrB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,EAAE,CAAC;IACnF,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,9 +23,12 @@
|
|
|
23
23
|
export { relayClient, encodeSegment, type RelayClient, type RelayParams } from './generic.js';
|
|
24
24
|
export { providerClient, type ProviderClient, type ResourceClient } from './provider-client.js';
|
|
25
25
|
export { created } from './receipt.js';
|
|
26
|
+
export { PreviewTransport, bindPreviewTransport, bindRelayTransport, clearPreviewTransport, createRelayTransportResolver, getProcessRelayTransport, setPreviewTransport, setProcessRelayTransport, type PreviewTransportOptions, type RelayClientOptions, type RelayTransport, type RelayTransportParameters, type RelayTransportRequest, type RelayTransportWriteRequest, } from './transport.js';
|
|
27
|
+
export type { EffectPolicyV1, PreviewAccess, PreviewAction, PreviewParameters, PreviewSimulatedReceipt, TransportPreviewAction, } from './types.js';
|
|
26
28
|
export { linearClient, type LinearClient, type LinearCreateIssueArgs } from './linear.js';
|
|
27
29
|
export { githubClient, type GithubClient, type GithubTarget } from './github.js';
|
|
28
30
|
export { slackClient, type SlackClient } from './slack.js';
|
|
31
|
+
export { redditClient } from './reddit.js';
|
|
29
32
|
export { telegramClient, telegramReceiptMessageId, telegramReceiptTs, type TelegramChatId, type TelegramClient, type TelegramEditMessageOptions, type TelegramMessageId, type TelegramMessageResult, type TelegramParseMode, type TelegramReactionResult, type TelegramSendMessageOptions, } from './telegram.js';
|
|
30
33
|
export * from './generated/clients.js';
|
|
31
34
|
export type { IntegrationClientOptions, WritebackResult } from '@relayfile/adapter-core/vfs-client';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,GAChC,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AAKvB,cAAc,wBAAwB,CAAC;AAEvC,YAAY,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -23,10 +23,12 @@
|
|
|
23
23
|
export { relayClient, encodeSegment } from './generic.js';
|
|
24
24
|
export { providerClient } from './provider-client.js';
|
|
25
25
|
export { created } from './receipt.js';
|
|
26
|
+
export { PreviewTransport, bindPreviewTransport, bindRelayTransport, clearPreviewTransport, createRelayTransportResolver, getProcessRelayTransport, setPreviewTransport, setProcessRelayTransport, } from './transport.js';
|
|
26
27
|
// Ergonomic clients (resource-keyed access + named methods).
|
|
27
28
|
export { linearClient } from './linear.js';
|
|
28
29
|
export { githubClient } from './github.js';
|
|
29
30
|
export { slackClient } from './slack.js';
|
|
31
|
+
export { redditClient } from './reddit.js';
|
|
30
32
|
export { telegramClient, telegramReceiptMessageId, telegramReceiptTs, } from './telegram.js';
|
|
31
33
|
// Named resource-keyed clients for the remaining catalog providers
|
|
32
34
|
// (generated from the catalog — see scripts/generate-clients.mjs).
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAsC,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,cAAc,EAA4C,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAsC,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,cAAc,EAA4C,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,GAOzB,MAAM,gBAAgB,CAAC;AAUxB,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAiD,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAwC,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,iBAAiB,GASlB,MAAM,eAAe,CAAC;AAEvB,mEAAmE;AACnE,mEAAmE;AACnE,4EAA4E;AAC5E,cAAc,wBAAwB,CAAC"}
|
package/dist/linear.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type IntegrationClientOptions } from '@relayfile/adapter-core/vfs-client';
|
|
2
1
|
import { type ProviderClient } from './provider-client.js';
|
|
3
2
|
import type { LinearAgentActivity } from '@relayfile/adapter-linear/types';
|
|
3
|
+
import { type RelayClientOptions } from './transport.js';
|
|
4
4
|
export interface LinearCreateIssueArgs {
|
|
5
5
|
teamId: string;
|
|
6
6
|
title: string;
|
|
@@ -73,5 +73,5 @@ export interface LinearClient extends ProviderClient<'linear'> {
|
|
|
73
73
|
* `ctx.linear.comment(...)` shape removed from the runtime, plus the uniform
|
|
74
74
|
* resource-keyed access (`.issues`, `.comments`) every provider client has.
|
|
75
75
|
*/
|
|
76
|
-
export declare function linearClient(opts?:
|
|
76
|
+
export declare function linearClient(opts?: RelayClientOptions): LinearClient;
|
|
77
77
|
//# sourceMappingURL=linear.d.ts.map
|
package/dist/linear.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../src/linear.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../src/linear.ts"],"names":[],"mappings":"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"}
|
package/dist/linear.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { readJsonFile, writeJsonFile } from '@relayfile/adapter-core/vfs-client';
|
|
1
|
+
import { readJsonFile, writeJsonFile, } from '@relayfile/adapter-core/vfs-client';
|
|
2
2
|
import { linearByUuidAliasPath } from '@relayfile/adapter-linear/path-mapper';
|
|
3
3
|
import { encodeSegment } from './generic.js';
|
|
4
4
|
import { providerClient } from './provider-client.js';
|
|
5
5
|
import { created } from './receipt.js';
|
|
6
|
+
import { createRelayTransportResolver, } from './transport.js';
|
|
6
7
|
/**
|
|
7
8
|
* Ergonomic Linear client over the writeback-path catalog. Recovers the
|
|
8
9
|
* `ctx.linear.comment(...)` shape removed from the runtime, plus the uniform
|
|
@@ -10,6 +11,7 @@ import { created } from './receipt.js';
|
|
|
10
11
|
*/
|
|
11
12
|
export function linearClient(opts = {}) {
|
|
12
13
|
const base = providerClient('linear', opts);
|
|
14
|
+
const resolveTransport = createRelayTransportResolver(opts);
|
|
13
15
|
const issuePath = (issueId) => `${base.issues.path()}/${encodeSegment(issueId)}.json`;
|
|
14
16
|
const labelPath = (labelId) => `${base.labels.path()}/${encodeSegment(labelId)}.json`;
|
|
15
17
|
// Read lookup follows the adapter's stable UUID alias. Writeback keeps the
|
|
@@ -31,16 +33,34 @@ export function linearClient(opts = {}) {
|
|
|
31
33
|
return created(await base.issues.write({}, args));
|
|
32
34
|
},
|
|
33
35
|
async updateIssue(issueId, args) {
|
|
34
|
-
|
|
36
|
+
const path = issuePath(issueId);
|
|
37
|
+
const transport = resolveTransport();
|
|
38
|
+
if (transport) {
|
|
39
|
+
await transport.write({ provider: 'linear', resource: 'issues', parameters: { issueId }, path, body: args });
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
await writeJsonFile(opts, 'linear', 'updateIssue', path, args);
|
|
43
|
+
}
|
|
35
44
|
},
|
|
36
45
|
async createLabel(args) {
|
|
37
46
|
return created(await base.labels.write({}, args));
|
|
38
47
|
},
|
|
39
48
|
async updateLabel(labelId, args) {
|
|
40
|
-
|
|
49
|
+
const path = labelPath(labelId);
|
|
50
|
+
const transport = resolveTransport();
|
|
51
|
+
if (transport) {
|
|
52
|
+
await transport.write({ provider: 'linear', resource: 'labels', parameters: { labelId }, path, body: args });
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
await writeJsonFile(opts, 'linear', 'updateLabel', path, args);
|
|
56
|
+
}
|
|
41
57
|
},
|
|
42
58
|
getIssue(issueId) {
|
|
43
|
-
|
|
59
|
+
const path = issueUuidPath(issueId);
|
|
60
|
+
const transport = resolveTransport();
|
|
61
|
+
return transport
|
|
62
|
+
? transport.read({ provider: 'linear', resource: 'issues', parameters: { issueId }, path })
|
|
63
|
+
: readJsonFile(opts, 'linear', 'getIssue', path);
|
|
44
64
|
},
|
|
45
65
|
listIssues() {
|
|
46
66
|
return base.issues.list();
|
package/dist/linear.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../src/linear.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../src/linear.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview-transport.test.d.ts","sourceRoot":"","sources":["../src/preview-transport.test.ts"],"names":[],"mappings":""}
|