@cat-factory/integrations 0.62.0 → 0.63.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.
- package/dist/modules/documents/ConfluenceProvider.d.ts +8 -0
- package/dist/modules/documents/ConfluenceProvider.d.ts.map +1 -1
- package/dist/modules/documents/ConfluenceProvider.js +29 -9
- package/dist/modules/documents/ConfluenceProvider.js.map +1 -1
- package/dist/modules/documents/DocumentContentResolverService.d.ts +3 -0
- package/dist/modules/documents/DocumentContentResolverService.d.ts.map +1 -1
- package/dist/modules/documents/DocumentContentResolverService.js +10 -1
- package/dist/modules/documents/DocumentContentResolverService.js.map +1 -1
- package/dist/modules/documents/FigmaProvider.d.ts +6 -0
- package/dist/modules/documents/FigmaProvider.d.ts.map +1 -1
- package/dist/modules/documents/FigmaProvider.js +21 -1
- package/dist/modules/documents/FigmaProvider.js.map +1 -1
- package/dist/modules/documents/GitHubDocsProvider.d.ts +6 -0
- package/dist/modules/documents/GitHubDocsProvider.d.ts.map +1 -1
- package/dist/modules/documents/GitHubDocsProvider.js +27 -1
- package/dist/modules/documents/GitHubDocsProvider.js.map +1 -1
- package/dist/modules/documents/LinearDocumentProvider.d.ts +5 -0
- package/dist/modules/documents/LinearDocumentProvider.d.ts.map +1 -1
- package/dist/modules/documents/LinearDocumentProvider.js +10 -1
- package/dist/modules/documents/LinearDocumentProvider.js.map +1 -1
- package/dist/modules/documents/NotionProvider.d.ts +6 -0
- package/dist/modules/documents/NotionProvider.d.ts.map +1 -1
- package/dist/modules/documents/NotionProvider.js +13 -0
- package/dist/modules/documents/NotionProvider.js.map +1 -1
- package/dist/modules/documents/ZeplinProvider.d.ts +6 -0
- package/dist/modules/documents/ZeplinProvider.d.ts.map +1 -1
- package/dist/modules/documents/ZeplinProvider.js +14 -0
- package/dist/modules/documents/ZeplinProvider.js.map +1 -1
- package/dist/modules/documents/linear-docs.logic.d.ts +11 -1
- package/dist/modules/documents/linear-docs.logic.d.ts.map +1 -1
- package/dist/modules/documents/linear-docs.logic.js +10 -1
- package/dist/modules/documents/linear-docs.logic.js.map +1 -1
- package/package.json +2 -2
|
@@ -24,6 +24,14 @@ export declare class ConfluenceProvider implements DocumentSourceProvider {
|
|
|
24
24
|
normalizeConnection(input: DocumentCredentials): NormalizedConnection;
|
|
25
25
|
parseRef(input: string): string | null;
|
|
26
26
|
fetchDocument(credentials: DocumentCredentials, externalId: string): Promise<DocumentContent>;
|
|
27
|
+
/**
|
|
28
|
+
* The cheap version probe: expand ONLY `version` (no `body.storage`), so the
|
|
29
|
+
* page's XHTML is neither transferred nor converted — the staleness check costs
|
|
30
|
+
* a metadata read, not a full fetch.
|
|
31
|
+
*/
|
|
32
|
+
probeVersion(credentials: DocumentCredentials, externalId: string): Promise<string>;
|
|
33
|
+
/** Shared content read; `expand` selects how much of the page is materialised. */
|
|
34
|
+
private getContent;
|
|
27
35
|
search(credentials: DocumentCredentials, query: string): Promise<DocumentSearchResult[]>;
|
|
28
36
|
}
|
|
29
37
|
//# sourceMappingURL=ConfluenceProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfluenceProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/ConfluenceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAiB5B,yEAAyE;AACzE,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;
|
|
1
|
+
{"version":3,"file":"ConfluenceProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/ConfluenceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAiB5B,yEAAyE;AACzE,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAoFD,qBAAa,kBAAmB,YAAW,sBAAsB;IAC/D,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAS;IACrC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAwB;IAE3C,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAepE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAc1B;IAED;;;;OAIG;IACG,YAAY,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExF;IAED,kFAAkF;YACpE,UAAU;IA+ClB,MAAM,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAkC7F;CACF"}
|
|
@@ -89,6 +89,10 @@ async function readCappedText(res, maxBytes) {
|
|
|
89
89
|
}
|
|
90
90
|
return new TextDecoder().decode(merged);
|
|
91
91
|
}
|
|
92
|
+
/** The page's monotonic version number as the opaque staleness token (`''` if absent). */
|
|
93
|
+
function versionToken(json) {
|
|
94
|
+
return json.version?.number !== undefined ? String(json.version.number) : '';
|
|
95
|
+
}
|
|
92
96
|
export class ConfluenceProvider {
|
|
93
97
|
kind = 'confluence';
|
|
94
98
|
descriptor = CONFLUENCE_DESCRIPTOR;
|
|
@@ -113,7 +117,30 @@ export class ConfluenceProvider {
|
|
|
113
117
|
}
|
|
114
118
|
async fetchDocument(credentials, externalId) {
|
|
115
119
|
const base = credentials.baseUrl.replace(/\/+$/, '');
|
|
116
|
-
|
|
120
|
+
// Expand the body AND the version so the fetched content carries its version token.
|
|
121
|
+
const json = await this.getContent(credentials, externalId, 'body.storage,version');
|
|
122
|
+
const linkBase = json._links?.base ?? `${base}/wiki`;
|
|
123
|
+
const webui = json._links?.webui ?? '';
|
|
124
|
+
return {
|
|
125
|
+
externalId: json.id,
|
|
126
|
+
title: json.title ?? '(untitled)',
|
|
127
|
+
url: `${linkBase}${webui}`,
|
|
128
|
+
body: confluenceLogic.confluenceStorageToMarkdown(json.body?.storage?.value ?? ''),
|
|
129
|
+
version: versionToken(json),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* The cheap version probe: expand ONLY `version` (no `body.storage`), so the
|
|
134
|
+
* page's XHTML is neither transferred nor converted — the staleness check costs
|
|
135
|
+
* a metadata read, not a full fetch.
|
|
136
|
+
*/
|
|
137
|
+
async probeVersion(credentials, externalId) {
|
|
138
|
+
return versionToken(await this.getContent(credentials, externalId, 'version'));
|
|
139
|
+
}
|
|
140
|
+
/** Shared content read; `expand` selects how much of the page is materialised. */
|
|
141
|
+
async getContent(credentials, externalId, expand) {
|
|
142
|
+
const base = credentials.baseUrl.replace(/\/+$/, '');
|
|
143
|
+
const url = `${base}/wiki/rest/api/content/${encodeURIComponent(externalId)}?expand=${expand}`;
|
|
117
144
|
const auth = btoa(`${credentials.accountEmail}:${credentials.apiToken}`);
|
|
118
145
|
const res = await safeFetch(url, {
|
|
119
146
|
method: 'GET',
|
|
@@ -139,14 +166,7 @@ export class ConfluenceProvider {
|
|
|
139
166
|
if (!json || !json.id) {
|
|
140
167
|
throw new ConfluenceApiError(502, `Confluence returned an unexpected body for page ${externalId}`);
|
|
141
168
|
}
|
|
142
|
-
|
|
143
|
-
const webui = json._links?.webui ?? '';
|
|
144
|
-
return {
|
|
145
|
-
externalId: json.id,
|
|
146
|
-
title: json.title ?? '(untitled)',
|
|
147
|
-
url: `${linkBase}${webui}`,
|
|
148
|
-
body: confluenceLogic.confluenceStorageToMarkdown(json.body?.storage?.value ?? ''),
|
|
149
|
-
};
|
|
169
|
+
return json;
|
|
150
170
|
}
|
|
151
171
|
async search(credentials, query) {
|
|
152
172
|
const base = credentials.baseUrl.replace(/\/+$/, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfluenceProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/ConfluenceProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ConfluenceProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/ConfluenceProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,8 @@ export declare class DocumentContentResolverService implements DocumentContentRe
|
|
|
8
8
|
private readonly deps;
|
|
9
9
|
constructor(deps: DocumentContentResolverServiceDependencies);
|
|
10
10
|
fetch(workspaceId: string, source: DocumentSourceKind, externalId: string): Promise<DocumentContent>;
|
|
11
|
+
probeVersion(workspaceId: string, source: DocumentSourceKind, externalId: string): Promise<string>;
|
|
12
|
+
/** Resolve the provider + this workspace's connection credentials for a source. */
|
|
13
|
+
private resolve;
|
|
11
14
|
}
|
|
12
15
|
//# sourceMappingURL=DocumentContentResolverService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentContentResolverService.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/DocumentContentResolverService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,
|
|
1
|
+
{"version":3,"file":"DocumentContentResolverService.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/DocumentContentResolverService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EAEvB,kBAAkB,EAElB,sBAAsB,EACvB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAW/E,MAAM,WAAW,0CAA0C;IACzD,QAAQ,EAAE,sBAAsB,CAAA;IAChC,iBAAiB,EAAE,yBAAyB,CAAA;CAC7C;AAED,qBAAa,8BAA+B,YAAW,uBAAuB;IAChE,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,0CAA0C,EAAI;IAE3E,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAG1B;IAEK,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAGjB;IAED,mFAAmF;YACrE,OAAO;CAWtB"}
|
|
@@ -5,12 +5,21 @@ export class DocumentContentResolverService {
|
|
|
5
5
|
this.deps = deps;
|
|
6
6
|
}
|
|
7
7
|
async fetch(workspaceId, source, externalId) {
|
|
8
|
+
const { provider, credentials } = await this.resolve(workspaceId, source);
|
|
9
|
+
return provider.fetchDocument(credentials, externalId);
|
|
10
|
+
}
|
|
11
|
+
async probeVersion(workspaceId, source, externalId) {
|
|
12
|
+
const { provider, credentials } = await this.resolve(workspaceId, source);
|
|
13
|
+
return provider.probeVersion(credentials, externalId);
|
|
14
|
+
}
|
|
15
|
+
/** Resolve the provider + this workspace's connection credentials for a source. */
|
|
16
|
+
async resolve(workspaceId, source) {
|
|
8
17
|
const provider = this.deps.registry.get(source);
|
|
9
18
|
if (!provider) {
|
|
10
19
|
throw new ValidationError(`Unknown or unconfigured document source '${source}'`);
|
|
11
20
|
}
|
|
12
21
|
const connection = await this.deps.connectionService.requireConnection(workspaceId, source);
|
|
13
|
-
return provider
|
|
22
|
+
return { provider, credentials: connection.credentials };
|
|
14
23
|
}
|
|
15
24
|
}
|
|
16
25
|
//# sourceMappingURL=DocumentContentResolverService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentContentResolverService.js","sourceRoot":"","sources":["../../../src/modules/documents/DocumentContentResolverService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DocumentContentResolverService.js","sourceRoot":"","sources":["../../../src/modules/documents/DocumentContentResolverService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAiBrD,MAAM,OAAO,8BAA8B;IACZ,IAAI;IAAjC,YAA6B,IAAgD;oBAAhD,IAAI;IAA+C,CAAC;IAEjF,KAAK,CAAC,KAAK,CACT,WAAmB,EACnB,MAA0B,EAC1B,UAAkB;QAElB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QACzE,OAAO,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,WAAmB,EACnB,MAA0B,EAC1B,UAAkB;QAElB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QACzE,OAAO,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IACvD,CAAC;IAED,mFAAmF;IAC3E,KAAK,CAAC,OAAO,CACnB,WAAmB,EACnB,MAA0B;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CAAC,4CAA4C,MAAM,GAAG,CAAC,CAAA;QAClF,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC3F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAA;IAC1D,CAAC;CACF"}
|
|
@@ -24,6 +24,12 @@ export declare class FigmaProvider implements DocumentSourceProvider {
|
|
|
24
24
|
normalizeConnection(input: DocumentCredentials): NormalizedConnection;
|
|
25
25
|
parseRef(input: string): string | null;
|
|
26
26
|
fetchDocument(credentials: DocumentCredentials, externalId: string): Promise<DocumentContent>;
|
|
27
|
+
/**
|
|
28
|
+
* The cheap version probe: read the file's metadata at `depth=1` (no node tree)
|
|
29
|
+
* for its `version` / `lastModified`, skipping the deep node fetch + variables +
|
|
30
|
+
* preview render a full document fetch performs.
|
|
31
|
+
*/
|
|
32
|
+
probeVersion(credentials: DocumentCredentials, externalId: string): Promise<string>;
|
|
27
33
|
/** Fetch a specific node's subtree, or the whole file's document, plus its components. */
|
|
28
34
|
private fetchNodes;
|
|
29
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FigmaProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAuB5B,yEAAyE;AACzE,qBAAa,aAAc,SAAQ,KAAK;IAEpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;
|
|
1
|
+
{"version":3,"file":"FigmaProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAuB5B,yEAAyE;AACzE,qBAAa,aAAc,SAAQ,KAAK;IAEpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AA0CD,qBAAa,aAAc,YAAW,sBAAsB;IAC1D,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAS;IAChC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAmB;IAEtC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAkC1B;IAED;;;;OAIG;IACG,YAAY,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUxF;IAED,0FAA0F;YAC5E,UAAU;IA4CxB;;;;OAIG;YACW,cAAc;IAiB5B,gGAAgG;YAClF,eAAe;IAqB7B,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,KAAK;YAQC,GAAG;CAqBlB"}
|
|
@@ -33,6 +33,10 @@ export class FigmaApiError extends Error {
|
|
|
33
33
|
* capped-read are the shared documents `http` helpers; only the host/label differ.
|
|
34
34
|
*/
|
|
35
35
|
const safeFetch = createHostPinnedFetch({ host: FIGMA_API_HOST, label: 'Figma' });
|
|
36
|
+
/** Figma's file `version` (falling back to `lastModified`) as the staleness token. */
|
|
37
|
+
function fileVersion(res) {
|
|
38
|
+
return res.version ?? res.lastModified ?? '';
|
|
39
|
+
}
|
|
36
40
|
export class FigmaProvider {
|
|
37
41
|
kind = 'figma';
|
|
38
42
|
descriptor = FIGMA_DESCRIPTOR;
|
|
@@ -51,7 +55,7 @@ export class FigmaProvider {
|
|
|
51
55
|
if (!fileKey) {
|
|
52
56
|
throw new FigmaApiError(400, `Figma ref is missing a file key: ${externalId}`);
|
|
53
57
|
}
|
|
54
|
-
const { roots, components, fileName } = await this.fetchNodes(credentials, fileKey, nodeId);
|
|
58
|
+
const { roots, components, fileName, version } = await this.fetchNodes(credentials, fileKey, nodeId);
|
|
55
59
|
// Design tokens are Enterprise-gated; on 403/404 drop them, don't fail. A rendered
|
|
56
60
|
// preview rides along as a reference (no download) — best-effort, the short-lived URL
|
|
57
61
|
// may expire and a non-multimodal agent ignores it.
|
|
@@ -71,8 +75,22 @@ export class FigmaProvider {
|
|
|
71
75
|
title: context.title,
|
|
72
76
|
url: context.url,
|
|
73
77
|
body: renderDesignContext(context),
|
|
78
|
+
version,
|
|
74
79
|
};
|
|
75
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* The cheap version probe: read the file's metadata at `depth=1` (no node tree)
|
|
83
|
+
* for its `version` / `lastModified`, skipping the deep node fetch + variables +
|
|
84
|
+
* preview render a full document fetch performs.
|
|
85
|
+
*/
|
|
86
|
+
async probeVersion(credentials, externalId) {
|
|
87
|
+
const { fileKey } = figmaLogic.splitFigmaExternalId(externalId);
|
|
88
|
+
if (!fileKey) {
|
|
89
|
+
throw new FigmaApiError(400, `Figma ref is missing a file key: ${externalId}`);
|
|
90
|
+
}
|
|
91
|
+
const res = await this.get(credentials, `/files/${encodeURIComponent(fileKey)}?depth=1`);
|
|
92
|
+
return fileVersion(res);
|
|
93
|
+
}
|
|
76
94
|
/** Fetch a specific node's subtree, or the whole file's document, plus its components. */
|
|
77
95
|
async fetchNodes(credentials, fileKey, nodeId) {
|
|
78
96
|
if (nodeId) {
|
|
@@ -85,6 +103,7 @@ export class FigmaProvider {
|
|
|
85
103
|
roots: [entry.document],
|
|
86
104
|
components: entry.components ?? {},
|
|
87
105
|
fileName: res.name ?? fileKey,
|
|
106
|
+
version: fileVersion(res),
|
|
88
107
|
};
|
|
89
108
|
}
|
|
90
109
|
const res = await this.get(credentials, `/files/${encodeURIComponent(fileKey)}?depth=${FILE_DEPTH}`);
|
|
@@ -98,6 +117,7 @@ export class FigmaProvider {
|
|
|
98
117
|
roots: roots.length ? roots : [res.document],
|
|
99
118
|
components: res.components ?? {},
|
|
100
119
|
fileName: res.name ?? fileKey,
|
|
120
|
+
version: fileVersion(res),
|
|
101
121
|
};
|
|
102
122
|
}
|
|
103
123
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FigmaProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAKhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEpF,iFAAiF;AACjF,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,2EAA2E;AAC3E,iFAAiF;AACjF,gFAAgF;AAChF,6EAA6E;AAE7E,MAAM,QAAQ,GAAG,0BAA0B,CAAA;AAC3C,MAAM,UAAU,GAAG,aAAa,CAAA;AAChC,iFAAiF;AACjF,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAEpC,yEAAyE;AACzE,MAAM,OAAO,aAAc,SAAQ,KAAK;IAE3B,MAAM;IADjB,YACW,MAAc,EACvB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAA;sBAHL,MAAM;QAIf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"FigmaProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAKhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEpF,iFAAiF;AACjF,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,2EAA2E;AAC3E,iFAAiF;AACjF,gFAAgF;AAChF,6EAA6E;AAE7E,MAAM,QAAQ,GAAG,0BAA0B,CAAA;AAC3C,MAAM,UAAU,GAAG,aAAa,CAAA;AAChC,iFAAiF;AACjF,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAEpC,yEAAyE;AACzE,MAAM,OAAO,aAAc,SAAQ,KAAK;IAE3B,MAAM;IADjB,YACW,MAAc,EACvB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAA;sBAHL,MAAM;QAIf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AA8BjF,sFAAsF;AACtF,SAAS,WAAW,CAAC,GAAgD;IACnE,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;AAC9C,CAAC;AAED,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,OAAgB,CAAA;IACvB,UAAU,GAAG,gBAAgB,CAAA;IAEtC,mBAAmB,CAAC,KAA0B;QAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CAAC,wCAAwC,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IACtD,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAAgC,EAChC,UAAkB;QAElB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAA;QACvE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,oCAAoC,UAAU,EAAE,CAAC,CAAA;QAChF,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CACpE,WAAW,EACX,OAAO,EACP,MAAM,CACP,CAAA;QACD,mFAAmF;QACnF,sFAAsF;QACtF,oDAAoD;QACpD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACrE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAE3E,MAAM,OAAO,GAAG,UAAU,CAAC,uBAAuB,CAAC;YACjD,UAAU;YACV,QAAQ;YACR,MAAM;YACN,KAAK;YACL,UAAU;YACV,aAAa;YACb,UAAU;SACX,CAAC,CAAA;QAEF,OAAO;YACL,UAAU;YACV,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC;YAClC,OAAO;SACR,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,WAAgC,EAAE,UAAkB;QACrE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAA;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,oCAAoC,UAAU,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CACxB,WAAW,EACX,UAAU,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAChD,CAAA;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,0FAA0F;IAClF,KAAK,CAAC,UAAU,CACtB,WAAgC,EAChC,OAAe,EACf,MAA0B;QAO1B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CACxB,WAAW,EACX,UAAU,kBAAkB,CAAC,OAAO,CAAC,cAAc,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAChF,CAAA;YACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAA;YACjC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;gBACrB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,cAAc,MAAM,sBAAsB,OAAO,EAAE,CAAC,CAAA;YACnF,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACvB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;gBAClC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO;gBAC7B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;aAC1B,CAAA;QACH,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CACxB,WAAW,EACX,UAAU,kBAAkB,CAAC,OAAO,CAAC,UAAU,UAAU,EAAE,CAC5D,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,uCAAuC,OAAO,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,+EAA+E;QAC/E,qDAAqD;QACrD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;QAClF,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC5C,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;YAChC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO;YAC7B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;SAC1B,CAAA;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,cAAc,CAC1B,WAAgC,EAChC,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,GAAG,QAAQ,UAAU,kBAAkB,CAAC,OAAO,CAAC,kBAAkB,EAClE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CACtD,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAoB,MAAM,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;YACzF,OAAO,IAAI,EAAE,IAAI,IAAI,IAAI,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,gGAAgG;IACxF,KAAK,CAAC,eAAe,CAC3B,WAAgC,EAChC,OAAe,EACf,MAA0B;QAE1B,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,GAAG,QAAQ,WAAW,kBAAkB,CAAC,OAAO,CAAC,QAAQ,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAChG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CACtD,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAiB,MAAM,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;YACtF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAA;YACjC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,WAAgC;QAC9C,OAAO;YACL,eAAe,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;YAC3C,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,UAAU;SACzB,CAAA;IACH,CAAC;IAEO,KAAK,CAAI,IAAY;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAG,CAAI,WAAgC,EAAE,IAAY;QACjE,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAA;QAChC,IAAI,GAAa,CAAA;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gFAAgF;YAChF,wEAAwE;YACxE,IAAI,GAAG,YAAY,iBAAiB;gBAAE,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACtF,MAAM,GAAG,CAAA;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YAC1E,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QAChG,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAI,MAAM,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;QACzE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,0CAA0C,IAAI,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -31,6 +31,12 @@ export declare class GitHubDocsProvider implements DocumentSourceProvider {
|
|
|
31
31
|
normalizeConnection(_input: DocumentCredentials): NormalizedConnection;
|
|
32
32
|
parseRef(input: string): string | null;
|
|
33
33
|
fetchDocument(_credentials: DocumentCredentials, externalId: string): Promise<DocumentContent>;
|
|
34
|
+
/**
|
|
35
|
+
* The cheap version probe: the head commit sha touching the file's path — one
|
|
36
|
+
* commit-list read, no file body. Any commit to the file advances it, so an
|
|
37
|
+
* unchanged sha means the doc body is still current.
|
|
38
|
+
*/
|
|
39
|
+
probeVersion(_credentials: DocumentCredentials, externalId: string): Promise<string>;
|
|
34
40
|
search(_credentials: DocumentCredentials, query: string, workspaceId: string): Promise<DocumentSearchResult[]>;
|
|
35
41
|
/**
|
|
36
42
|
* Find the GitHub App installation whose account owns `owner`. The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitHubDocsProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/GitHubDocsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAe5B,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE,YAAY,CAAA;IAC1B,8EAA8E;IAC9E,aAAa,EAAE,4BAA4B,CAAA;CAC5C;AAED,qBAAa,kBAAmB,YAAW,sBAAsB;IAInD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAyB;IAE5C,YAA6B,IAAI,EAAE,8BAA8B,EAAI;IAErE;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,oBAAoB,CAErE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,YAAY,EAAE,mBAAmB,EACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"GitHubDocsProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/GitHubDocsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAe5B,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE,YAAY,CAAA;IAC1B,8EAA8E;IAC9E,aAAa,EAAE,4BAA4B,CAAA;CAC5C;AAED,qBAAa,kBAAmB,YAAW,sBAAsB;IAInD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAyB;IAE5C,YAA6B,IAAI,EAAE,8BAA8B,EAAI;IAErE;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,oBAAoB,CAErE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,YAAY,EAAE,mBAAmB,EACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAiC1B;IAED;;;;OAIG;IACG,YAAY,CAAC,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYzF;IAEK,MAAM,CACV,YAAY,EAAE,mBAAmB,EACjC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAkCjC;IAED;;;;OAIG;YACW,qBAAqB;CAUpC"}
|
|
@@ -25,7 +25,18 @@ export class GitHubDocsProvider {
|
|
|
25
25
|
throw new ValidationError(`"${externalId}" is not a valid GitHub doc reference`);
|
|
26
26
|
}
|
|
27
27
|
const installationId = await this.resolveInstallationId(id.owner);
|
|
28
|
-
const
|
|
28
|
+
const ref = { owner: id.owner, repo: id.repo };
|
|
29
|
+
// Read the file's head commit sha FIRST (the version token), then read the body
|
|
30
|
+
// pinned to that exact sha, so the (body, version) pair is consistent: two unpinned
|
|
31
|
+
// parallel reads could straddle a commit and cache a stale body under a fresh
|
|
32
|
+
// version the probe would then treat as current and never reload. The sha is
|
|
33
|
+
// best-effort — a transient commits-API error (403 rate-limit, 5xx) must not fail
|
|
34
|
+
// the whole fetch when the body reads fine, so it degrades to an empty version token
|
|
35
|
+
// (which the cache treats as unverifiable ⇒ a TTL-bounded reload).
|
|
36
|
+
const commitSha = await this.deps.githubClient
|
|
37
|
+
.latestCommitSha(installationId, ref, id.path)
|
|
38
|
+
.catch(() => null);
|
|
39
|
+
const file = await this.deps.githubClient.getFileContent(installationId, ref, id.path, commitSha ?? undefined);
|
|
29
40
|
if (!file) {
|
|
30
41
|
throw new ConflictError(`GitHub file "${id.path}" was not found in ${id.owner}/${id.repo}`);
|
|
31
42
|
}
|
|
@@ -34,8 +45,23 @@ export class GitHubDocsProvider {
|
|
|
34
45
|
title: githubDocsLogic.githubDocTitle(id.path),
|
|
35
46
|
url: githubDocsLogic.githubDocUrl(id),
|
|
36
47
|
body: file.content,
|
|
48
|
+
version: commitSha ?? '',
|
|
37
49
|
};
|
|
38
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* The cheap version probe: the head commit sha touching the file's path — one
|
|
53
|
+
* commit-list read, no file body. Any commit to the file advances it, so an
|
|
54
|
+
* unchanged sha means the doc body is still current.
|
|
55
|
+
*/
|
|
56
|
+
async probeVersion(_credentials, externalId) {
|
|
57
|
+
const id = githubDocsLogic.parseGitHubDocExternalId(externalId);
|
|
58
|
+
if (!id) {
|
|
59
|
+
throw new ValidationError(`"${externalId}" is not a valid GitHub doc reference`);
|
|
60
|
+
}
|
|
61
|
+
const installationId = await this.resolveInstallationId(id.owner);
|
|
62
|
+
const commitSha = await this.deps.githubClient.latestCommitSha(installationId, { owner: id.owner, repo: id.repo }, id.path);
|
|
63
|
+
return commitSha ?? '';
|
|
64
|
+
}
|
|
39
65
|
async search(_credentials, query, workspaceId) {
|
|
40
66
|
// Scope to *this workspace's* installation so docs never leak across tenants
|
|
41
67
|
// (a deployment may host many installations; a workspace owns exactly one).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitHubDocsProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/GitHubDocsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,GAQhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAmBzD,MAAM,OAAO,kBAAkB;IAIA,IAAI;IAHxB,IAAI,GAAG,QAAiB,CAAA;IACxB,UAAU,GAAG,sBAAsB,CAAA;IAE5C,YAA6B,IAAoC;oBAApC,IAAI;IAAmC,CAAC;IAErE;;;;OAIG;IACH,mBAAmB,CAAC,MAA2B;QAC7C,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;IAC7C,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,YAAiC,EACjC,UAAkB;QAElB,MAAM,EAAE,GAAG,eAAe,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;QAC/D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,eAAe,CAAC,IAAI,UAAU,uCAAuC,CAAC,CAAA;QAClF,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACjE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"GitHubDocsProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/GitHubDocsProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,11 @@ export declare class LinearDocumentProvider implements DocumentSourceProvider {
|
|
|
19
19
|
normalizeConnection(input: DocumentCredentials): NormalizedConnection;
|
|
20
20
|
parseRef(input: string): string | null;
|
|
21
21
|
fetchDocument(credentials: DocumentCredentials, externalId: string): Promise<DocumentContent>;
|
|
22
|
+
/**
|
|
23
|
+
* The cheap version probe: query only the document's `updatedAt`, skipping the
|
|
24
|
+
* (potentially large) `content` field a full fetch downloads.
|
|
25
|
+
*/
|
|
26
|
+
probeVersion(credentials: DocumentCredentials, externalId: string): Promise<string>;
|
|
22
27
|
search(credentials: DocumentCredentials, query: string): Promise<DocumentSearchResult[]>;
|
|
23
28
|
}
|
|
24
29
|
//# sourceMappingURL=LinearDocumentProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinearDocumentProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/LinearDocumentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"LinearDocumentProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/LinearDocumentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAwB5B,qBAAa,sBAAuB,YAAW,sBAAsB;IACnE,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAyB;IAE5C,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAM1B;IAED;;;OAGG;IACG,YAAY,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOxF;IAEK,MAAM,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAO7F;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ValidationError, } from '@cat-factory/kernel';
|
|
2
2
|
import { LinearGraphqlClient, linearAuthFromCredentials } from '../shared/linear.client.js';
|
|
3
|
-
import { LINEAR_DOCS_DESCRIPTOR, LINEAR_DOCUMENT_QUERY, LINEAR_DOCUMENTS_SEARCH_QUERY, mapLinearDocument, mapLinearDocumentSearch, parseLinearDocRef, } from './linear-docs.logic.js';
|
|
3
|
+
import { LINEAR_DOCS_DESCRIPTOR, LINEAR_DOCUMENT_QUERY, LINEAR_DOCUMENT_VERSION_QUERY, LINEAR_DOCUMENTS_SEARCH_QUERY, linearDocumentVersion, mapLinearDocument, mapLinearDocumentSearch, parseLinearDocRef, } from './linear-docs.logic.js';
|
|
4
4
|
// LinearDocumentProvider: the document-source provider for Linear **Docs**. It
|
|
5
5
|
// authenticates with a personal API key against Linear's single GraphQL endpoint
|
|
6
6
|
// (via the shared host-pinned, redirect-safe client) and maps a document onto the
|
|
@@ -29,6 +29,15 @@ export class LinearDocumentProvider {
|
|
|
29
29
|
const data = await client.query(LINEAR_DOCUMENT_QUERY, { id: externalId });
|
|
30
30
|
return mapLinearDocument(data);
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* The cheap version probe: query only the document's `updatedAt`, skipping the
|
|
34
|
+
* (potentially large) `content` field a full fetch downloads.
|
|
35
|
+
*/
|
|
36
|
+
async probeVersion(credentials, externalId) {
|
|
37
|
+
const client = new LinearGraphqlClient(linearAuthFromCredentials(credentials));
|
|
38
|
+
const data = await client.query(LINEAR_DOCUMENT_VERSION_QUERY, { id: externalId });
|
|
39
|
+
return linearDocumentVersion(data);
|
|
40
|
+
}
|
|
32
41
|
async search(credentials, query) {
|
|
33
42
|
const client = new LinearGraphqlClient(linearAuthFromCredentials(credentials));
|
|
34
43
|
const data = await client.query(LINEAR_DOCUMENTS_SEARCH_QUERY, { term: query });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinearDocumentProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/LinearDocumentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAMhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3F,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAE/B,+EAA+E;AAC/E,iFAAiF;AACjF,kFAAkF;AAClF,qFAAqF;AACrF,6EAA6E;AAC7E,gFAAgF;AAChF,EAAE;AACF,mFAAmF;AACnF,iFAAiF;AACjF,gEAAgE;AAEhE,MAAM,OAAO,sBAAsB;IACxB,IAAI,GAAG,QAAiB,CAAA;IACxB,UAAU,GAAG,sBAAsB,CAAA;IAE5C,mBAAmB,CAAC,KAA0B;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC,CAAA;QACjE,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAA;IAC/D,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAAgC,EAChC,UAAkB;QAElB,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAA;QAC9E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAE5B,qBAAqB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;QAC7C,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAgC,EAAE,KAAa;QAC1D,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAA;QAC9E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAC7B,6BAA6B,EAC7B,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAA;QACD,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"LinearDocumentProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/LinearDocumentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAMhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3F,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,EAC7B,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAE/B,+EAA+E;AAC/E,iFAAiF;AACjF,kFAAkF;AAClF,qFAAqF;AACrF,6EAA6E;AAC7E,gFAAgF;AAChF,EAAE;AACF,mFAAmF;AACnF,iFAAiF;AACjF,gEAAgE;AAEhE,MAAM,OAAO,sBAAsB;IACxB,IAAI,GAAG,QAAiB,CAAA;IACxB,UAAU,GAAG,sBAAsB,CAAA;IAE5C,mBAAmB,CAAC,KAA0B;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC,CAAA;QACjE,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAA;IAC/D,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAAgC,EAChC,UAAkB;QAElB,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAA;QAC9E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAE5B,qBAAqB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;QAC7C,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,WAAgC,EAAE,UAAkB;QACrE,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAA;QAC9E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAC7B,6BAA6B,EAC7B,EAAE,EAAE,EAAE,UAAU,EAAE,CACnB,CAAA;QACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAgC,EAAE,KAAa;QAC1D,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAA;QAC9E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAC7B,6BAA6B,EAC7B,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAA;QACD,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;CACF"}
|
|
@@ -24,6 +24,12 @@ export declare class NotionProvider implements DocumentSourceProvider {
|
|
|
24
24
|
normalizeConnection(input: DocumentCredentials): NormalizedConnection;
|
|
25
25
|
parseRef(input: string): string | null;
|
|
26
26
|
fetchDocument(credentials: DocumentCredentials, externalId: string): Promise<DocumentContent>;
|
|
27
|
+
/**
|
|
28
|
+
* The cheap version probe: read only the page object for its `last_edited_time`,
|
|
29
|
+
* skipping the (bounded but multi-request) block backfill that dominates a full
|
|
30
|
+
* fetch. An unchanged timestamp means the page body is still current.
|
|
31
|
+
*/
|
|
32
|
+
probeVersion(credentials: DocumentCredentials, externalId: string): Promise<string>;
|
|
27
33
|
search(credentials: DocumentCredentials, query: string): Promise<DocumentSearchResult[]>;
|
|
28
34
|
/** Page through a page's top-level blocks (bounded), returning them in order. */
|
|
29
35
|
private fetchBlocks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotionProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/NotionProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAuB5B,yEAAyE;AACzE,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;
|
|
1
|
+
{"version":3,"file":"NotionProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/NotionProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAuB5B,yEAAyE;AACzE,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAoGD,qBAAa,cAAe,YAAW,sBAAsB;IAC3D,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAoB;IAEvC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAgB1B;IAED;;;;OAIG;IACG,YAAY,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASxF;IAEK,MAAM,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA6B7F;IAED,iFAAiF;YACnE,WAAW;YAqBX,GAAG;CA+BlB"}
|
|
@@ -138,8 +138,21 @@ export class NotionProvider {
|
|
|
138
138
|
title: notionLogic.notionPageTitle(page.properties),
|
|
139
139
|
url: page.url ?? `https://www.notion.so/${page.id.replace(/-/g, '')}`,
|
|
140
140
|
body: notionLogic.notionBlocksToMarkdown(blocks),
|
|
141
|
+
version: page.last_edited_time ?? '',
|
|
141
142
|
};
|
|
142
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* The cheap version probe: read only the page object for its `last_edited_time`,
|
|
146
|
+
* skipping the (bounded but multi-request) block backfill that dominates a full
|
|
147
|
+
* fetch. An unchanged timestamp means the page body is still current.
|
|
148
|
+
*/
|
|
149
|
+
async probeVersion(credentials, externalId) {
|
|
150
|
+
const page = await this.get(credentials, `/pages/${encodeURIComponent(externalId)}`);
|
|
151
|
+
if (!page.id) {
|
|
152
|
+
throw new NotionApiError(502, `Notion returned an unexpected body for page ${externalId}`);
|
|
153
|
+
}
|
|
154
|
+
return page.last_edited_time ?? '';
|
|
155
|
+
}
|
|
143
156
|
async search(credentials, query) {
|
|
144
157
|
const res = await safeFetch(`${API_BASE}/search`, {
|
|
145
158
|
method: 'POST',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotionProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/NotionProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NotionProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/NotionProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,12 @@ export declare class ZeplinProvider implements DocumentSourceProvider {
|
|
|
24
24
|
normalizeConnection(input: DocumentCredentials): NormalizedConnection;
|
|
25
25
|
parseRef(input: string): string | null;
|
|
26
26
|
fetchDocument(credentials: DocumentCredentials, externalId: string): Promise<DocumentContent>;
|
|
27
|
+
/**
|
|
28
|
+
* The cheap version probe: read only the project object for its `updated`
|
|
29
|
+
* timestamp, skipping the screens + components + design-token reads that make up
|
|
30
|
+
* the bulk of a full fetch.
|
|
31
|
+
*/
|
|
32
|
+
probeVersion(credentials: DocumentCredentials, externalId: string): Promise<string>;
|
|
27
33
|
/** Fetch the single referenced screen, or a bounded list of the project's screens. */
|
|
28
34
|
private fetchScreens;
|
|
29
35
|
private bestEffort;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZeplinProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/ZeplinProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAkC5B,yEAAyE;AACzE,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAID,qBAAa,cAAe,YAAW,sBAAsB;IAC3D,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAoB;IAEvC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"ZeplinProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/ZeplinProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAkC5B,yEAAyE;AACzE,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAID,qBAAa,cAAe,YAAW,sBAAsB;IAC3D,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAoB;IAEvC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAqD1B;IAED;;;;OAIG;IACG,YAAY,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUxF;IAED,sFAAsF;YACxE,YAAY;YAsBZ,UAAU;IAQxB,OAAO,CAAC,OAAO;YAQD,GAAG;CAuBlB"}
|
|
@@ -73,8 +73,22 @@ export class ZeplinProvider {
|
|
|
73
73
|
title: context.title,
|
|
74
74
|
url: context.url,
|
|
75
75
|
body,
|
|
76
|
+
version: project.updated !== undefined ? String(project.updated) : '',
|
|
76
77
|
};
|
|
77
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* The cheap version probe: read only the project object for its `updated`
|
|
81
|
+
* timestamp, skipping the screens + components + design-token reads that make up
|
|
82
|
+
* the bulk of a full fetch.
|
|
83
|
+
*/
|
|
84
|
+
async probeVersion(credentials, externalId) {
|
|
85
|
+
const { projectId } = splitZeplinExternalId(externalId);
|
|
86
|
+
if (!projectId) {
|
|
87
|
+
throw new ZeplinApiError(400, `Zeplin ref is missing a project id: ${externalId}`);
|
|
88
|
+
}
|
|
89
|
+
const project = await this.get(credentials, `/projects/${encodeURIComponent(projectId)}`);
|
|
90
|
+
return project.updated !== undefined ? String(project.updated) : '';
|
|
91
|
+
}
|
|
78
92
|
/** Fetch the single referenced screen, or a bounded list of the project's screens. */
|
|
79
93
|
async fetchScreens(credentials, projectId, screenId) {
|
|
80
94
|
if (screenId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZeplinProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/ZeplinProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ZeplinProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/ZeplinProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,9 @@ import type { DocumentContent, DocumentSearchResult, DocumentSourceDescriptor }
|
|
|
2
2
|
/** What the connect UI renders, and which credentials the provider needs. */
|
|
3
3
|
export declare const LINEAR_DOCS_DESCRIPTOR: DocumentSourceDescriptor;
|
|
4
4
|
/** Fetch a single document's title, URL and Markdown content. */
|
|
5
|
-
export declare const LINEAR_DOCUMENT_QUERY = "query Document($id: String!) {\n document(id: $id) { id title url content }\n}";
|
|
5
|
+
export declare const LINEAR_DOCUMENT_QUERY = "query Document($id: String!) {\n document(id: $id) { id title url content updatedAt }\n}";
|
|
6
|
+
/** Cheap staleness probe: the document's `updatedAt` only (no `content` body). */
|
|
7
|
+
export declare const LINEAR_DOCUMENT_VERSION_QUERY = "query DocumentVersion($id: String!) {\n document(id: $id) { id updatedAt }\n}";
|
|
6
8
|
/** Search documents by title (used to populate the import picker). */
|
|
7
9
|
export declare const LINEAR_DOCUMENTS_SEARCH_QUERY = "query Documents($term: String!) {\n documents(first: 20, filter: { title: { containsIgnoreCase: $term } }) {\n nodes { id title url }\n }\n}";
|
|
8
10
|
interface LinearDocumentNode {
|
|
@@ -10,6 +12,8 @@ interface LinearDocumentNode {
|
|
|
10
12
|
title?: string;
|
|
11
13
|
url?: string;
|
|
12
14
|
content?: string | null;
|
|
15
|
+
/** ISO timestamp Linear advances on every edit — the version token. */
|
|
16
|
+
updatedAt?: string | null;
|
|
13
17
|
}
|
|
14
18
|
/**
|
|
15
19
|
* Resolve a Linear document id from raw user input: a bare id, or a
|
|
@@ -25,6 +29,12 @@ export declare function parseLinearDocRef(input: string): string | null;
|
|
|
25
29
|
export declare function mapLinearDocument(data: {
|
|
26
30
|
document?: LinearDocumentNode | null;
|
|
27
31
|
}): DocumentContent;
|
|
32
|
+
/** The version token from a `document { id updatedAt }` probe payload. */
|
|
33
|
+
export declare function linearDocumentVersion(data: {
|
|
34
|
+
document?: {
|
|
35
|
+
updatedAt?: string | null;
|
|
36
|
+
} | null;
|
|
37
|
+
}): string;
|
|
28
38
|
/** Map a `documents` search payload onto lean {@link DocumentSearchResult} hits. */
|
|
29
39
|
export declare function mapLinearDocumentSearch(data: {
|
|
30
40
|
documents?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear-docs.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/linear-docs.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAY5B,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,EAAE,wBAkBpC,CAAA;AAID,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"linear-docs.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/linear-docs.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAY5B,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,EAAE,wBAkBpC,CAAA;AAID,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,8FAEhC,CAAA;AAEF,kFAAkF;AAClF,eAAO,MAAM,6BAA6B,mFAExC,CAAA;AAEF,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,sJAIxC,CAAA;AAEF,UAAU,kBAAkB;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmB9D;AAUD,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAAE,GAAG,eAAe,CAUjG;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;CAChD,GAAG,MAAM,CAET;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,SAAS,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAA;CAC7C,GAAG,oBAAoB,EAAE,CAczB"}
|
|
@@ -30,7 +30,11 @@ export const LINEAR_DOCS_DESCRIPTOR = {
|
|
|
30
30
|
// ---- GraphQL operations (the provider is a thin transport around these) -----
|
|
31
31
|
/** Fetch a single document's title, URL and Markdown content. */
|
|
32
32
|
export const LINEAR_DOCUMENT_QUERY = `query Document($id: String!) {
|
|
33
|
-
document(id: $id) { id title url content }
|
|
33
|
+
document(id: $id) { id title url content updatedAt }
|
|
34
|
+
}`;
|
|
35
|
+
/** Cheap staleness probe: the document's `updatedAt` only (no `content` body). */
|
|
36
|
+
export const LINEAR_DOCUMENT_VERSION_QUERY = `query DocumentVersion($id: String!) {
|
|
37
|
+
document(id: $id) { id updatedAt }
|
|
34
38
|
}`;
|
|
35
39
|
/** Search documents by title (used to populate the import picker). */
|
|
36
40
|
export const LINEAR_DOCUMENTS_SEARCH_QUERY = `query Documents($term: String!) {
|
|
@@ -88,8 +92,13 @@ export function mapLinearDocument(data) {
|
|
|
88
92
|
title: doc.title?.trim() || '(untitled)',
|
|
89
93
|
url: doc.url ?? `https://linear.app/document/${doc.id}`,
|
|
90
94
|
body: normalizeMarkdown(doc.content ?? ''),
|
|
95
|
+
version: doc.updatedAt ?? '',
|
|
91
96
|
};
|
|
92
97
|
}
|
|
98
|
+
/** The version token from a `document { id updatedAt }` probe payload. */
|
|
99
|
+
export function linearDocumentVersion(data) {
|
|
100
|
+
return data.document?.updatedAt ?? '';
|
|
101
|
+
}
|
|
93
102
|
/** Map a `documents` search payload onto lean {@link DocumentSearchResult} hits. */
|
|
94
103
|
export function mapLinearDocumentSearch(data) {
|
|
95
104
|
const nodes = data.documents?.nodes ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear-docs.logic.js","sourceRoot":"","sources":["../../../src/modules/documents/linear-docs.logic.ts"],"names":[],"mappings":"AAMA,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,kFAAkF;AAClF,iFAAiF;AACjF,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,yDAAyD;AAEzD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAA6B;IAC9D,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,iFAAiF;IACjF,gFAAgF;IAChF,IAAI,EAAE,wBAAwB;IAC9B,gBAAgB,EAAE;QAChB;YACE,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,6EAA6E;SACpF;KACF;IACD,QAAQ,EAAE,oBAAoB;IAC9B,cAAc,EAAE,uDAAuD;IACvE,UAAU,EAAE,IAAI;CACjB,CAAA;AAED,gFAAgF;AAEhF,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG;;EAEnC,CAAA;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;EAI3C,CAAA;
|
|
1
|
+
{"version":3,"file":"linear-docs.logic.js","sourceRoot":"","sources":["../../../src/modules/documents/linear-docs.logic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/integrations",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.63.0",
|
|
4
4
|
"description": "External-system integration domain logic for the Agent Architecture Board (GitHub, documents, tasks, environments, runners).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"ai": "^6.0.214",
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
29
|
"@cat-factory/contracts": "0.95.0",
|
|
30
|
-
"@cat-factory/kernel": "0.
|
|
30
|
+
"@cat-factory/kernel": "0.84.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"typescript": "7.0.1-rc",
|