@relayfile/adapter-linear 0.1.16 → 0.1.18
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/__tests__/path-mapper.test.d.ts +2 -0
- package/dist/__tests__/path-mapper.test.d.ts.map +1 -0
- package/dist/__tests__/path-mapper.test.js +61 -0
- package/dist/__tests__/path-mapper.test.js.map +1 -0
- package/dist/path-mapper.d.ts +2 -0
- package/dist/path-mapper.d.ts.map +1 -1
- package/dist/path-mapper.js +38 -0
- package/dist/path-mapper.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-mapper.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/path-mapper.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { computeLinearPath, normalizeLinearObjectType, normalizeNangoLinearModel, tryNormalizeLinearObjectType, } from '../path-mapper.js';
|
|
4
|
+
describe('linear path-mapper', () => {
|
|
5
|
+
describe('normalizeLinearObjectType', () => {
|
|
6
|
+
it('accepts canonical types', () => {
|
|
7
|
+
assert.equal(normalizeLinearObjectType('issue'), 'issue');
|
|
8
|
+
assert.equal(normalizeLinearObjectType('TEAM'), 'team');
|
|
9
|
+
});
|
|
10
|
+
it('accepts plural aliases', () => {
|
|
11
|
+
assert.equal(normalizeLinearObjectType('issues'), 'issue');
|
|
12
|
+
assert.equal(normalizeLinearObjectType('teams'), 'team');
|
|
13
|
+
});
|
|
14
|
+
it('accepts Nango-style PascalCase model names', () => {
|
|
15
|
+
assert.equal(normalizeLinearObjectType('LinearTeam'), 'team');
|
|
16
|
+
assert.equal(normalizeLinearObjectType('LinearUser'), 'user');
|
|
17
|
+
assert.equal(normalizeLinearObjectType('LinearIssue'), 'issue');
|
|
18
|
+
assert.equal(normalizeLinearObjectType('LinearComment'), 'comment');
|
|
19
|
+
assert.equal(normalizeLinearObjectType('LinearCycle'), 'cycle');
|
|
20
|
+
assert.equal(normalizeLinearObjectType('LinearMilestone'), 'milestone');
|
|
21
|
+
assert.equal(normalizeLinearObjectType('LinearProject'), 'project');
|
|
22
|
+
assert.equal(normalizeLinearObjectType('LinearRoadmap'), 'roadmap');
|
|
23
|
+
});
|
|
24
|
+
it('throws on unknown types', () => {
|
|
25
|
+
assert.throws(() => normalizeLinearObjectType('flarb'));
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe('tryNormalizeLinearObjectType', () => {
|
|
29
|
+
it('returns undefined on unknown types', () => {
|
|
30
|
+
assert.equal(tryNormalizeLinearObjectType('flarb'), undefined);
|
|
31
|
+
});
|
|
32
|
+
it('returns the resolved type for known input', () => {
|
|
33
|
+
assert.equal(tryNormalizeLinearObjectType('LinearIssue'), 'issue');
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe('normalizeNangoLinearModel', () => {
|
|
37
|
+
// Each Nango sync emits a single PascalCase model — see
|
|
38
|
+
// cloud/nango-integrations/linear-relay/syncs/*.ts. This test pins those
|
|
39
|
+
// contracts so any future sync rename surfaces here as a failure.
|
|
40
|
+
it('maps every Nango linear-relay sync model', () => {
|
|
41
|
+
assert.equal(normalizeNangoLinearModel('LinearComment'), 'comment');
|
|
42
|
+
assert.equal(normalizeNangoLinearModel('LinearCycle'), 'cycle');
|
|
43
|
+
assert.equal(normalizeNangoLinearModel('LinearIssue'), 'issue');
|
|
44
|
+
assert.equal(normalizeNangoLinearModel('LinearMilestone'), 'milestone');
|
|
45
|
+
assert.equal(normalizeNangoLinearModel('LinearProject'), 'project');
|
|
46
|
+
assert.equal(normalizeNangoLinearModel('LinearRoadmap'), 'roadmap');
|
|
47
|
+
assert.equal(normalizeNangoLinearModel('LinearTeam'), 'team');
|
|
48
|
+
assert.equal(normalizeNangoLinearModel('LinearUser'), 'user');
|
|
49
|
+
});
|
|
50
|
+
it('falls back to alias-map normalization for non-Nango input', () => {
|
|
51
|
+
assert.equal(normalizeNangoLinearModel('issues'), 'issue');
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe('computeLinearPath', () => {
|
|
55
|
+
it('produces Nango-driven paths from PascalCase model names', () => {
|
|
56
|
+
assert.equal(computeLinearPath('LinearTeam', '50cf92f3-f53c-4ab6-bf05-ea76ebd21692'), '/linear/teams/50cf92f3-f53c-4ab6-bf05-ea76ebd21692.json');
|
|
57
|
+
assert.equal(computeLinearPath('LinearUser', 'usr_123'), '/linear/users/usr_123.json');
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=path-mapper.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-mapper.test.js","sourceRoot":"","sources":["../../src/__tests__/path-mapper.test.ts"],"names":[],"mappings":"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"}
|
package/dist/path-mapper.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export declare const LINEAR_OBJECT_TYPES: readonly ["comment", "cycle", "issue",
|
|
|
3
3
|
export type LinearPathObjectType = (typeof LINEAR_OBJECT_TYPES)[number];
|
|
4
4
|
export declare function encodeLinearPathSegment(value: string): string;
|
|
5
5
|
export declare function normalizeLinearObjectType(objectType: string): LinearPathObjectType;
|
|
6
|
+
export declare function tryNormalizeLinearObjectType(objectType: string): LinearPathObjectType | undefined;
|
|
7
|
+
export declare function normalizeNangoLinearModel(model: string): LinearPathObjectType;
|
|
6
8
|
export declare function linearIssuePath(issueId: string, title?: string): string;
|
|
7
9
|
export declare function linearCommentPath(commentId: string): string;
|
|
8
10
|
export declare function linearProjectPath(projectId: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-mapper.d.ts","sourceRoot":"","sources":["../src/path-mapper.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C,eAAO,MAAM,mBAAmB,2FAStB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"path-mapper.d.ts","sourceRoot":"","sources":["../src/path-mapper.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C,eAAO,MAAM,mBAAmB,2FAStB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAyDxE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AA0BD,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CAOlF;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAMjG;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAI7E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAsB9F"}
|
package/dist/path-mapper.js
CHANGED
|
@@ -12,23 +12,47 @@ export const LINEAR_OBJECT_TYPES = [
|
|
|
12
12
|
const OBJECT_TYPE_ALIASES = {
|
|
13
13
|
comment: 'comment',
|
|
14
14
|
comments: 'comment',
|
|
15
|
+
linearcomment: 'comment',
|
|
15
16
|
cycle: 'cycle',
|
|
16
17
|
cycles: 'cycle',
|
|
18
|
+
linearcycle: 'cycle',
|
|
17
19
|
issue: 'issue',
|
|
18
20
|
issues: 'issue',
|
|
21
|
+
linearissue: 'issue',
|
|
19
22
|
milestone: 'milestone',
|
|
20
23
|
milestones: 'milestone',
|
|
21
24
|
projectmilestone: 'milestone',
|
|
22
25
|
projectmilestones: 'milestone',
|
|
26
|
+
linearmilestone: 'milestone',
|
|
23
27
|
project: 'project',
|
|
24
28
|
projects: 'project',
|
|
25
29
|
linearproject: 'project',
|
|
26
30
|
roadmap: 'roadmap',
|
|
27
31
|
roadmaps: 'roadmap',
|
|
32
|
+
linearroadmap: 'roadmap',
|
|
28
33
|
team: 'team',
|
|
29
34
|
teams: 'team',
|
|
35
|
+
linearteam: 'team',
|
|
30
36
|
user: 'user',
|
|
31
37
|
users: 'user',
|
|
38
|
+
linearuser: 'user',
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Nango sync record `model` names → canonical Linear object types. The Nango
|
|
42
|
+
* `linear-relay` integration emits records under these PascalCase model names
|
|
43
|
+
* (see `cloud/nango-integrations/linear-relay/syncs/*.ts`). Resolving them
|
|
44
|
+
* here lets the cloud's record-writer turn a Nango payload into a relayfile
|
|
45
|
+
* path without hardcoding the mapping at the dispatch site.
|
|
46
|
+
*/
|
|
47
|
+
const NANGO_MODEL_MAP = {
|
|
48
|
+
LinearComment: 'comment',
|
|
49
|
+
LinearCycle: 'cycle',
|
|
50
|
+
LinearIssue: 'issue',
|
|
51
|
+
LinearMilestone: 'milestone',
|
|
52
|
+
LinearProject: 'project',
|
|
53
|
+
LinearRoadmap: 'roadmap',
|
|
54
|
+
LinearTeam: 'team',
|
|
55
|
+
LinearUser: 'user',
|
|
32
56
|
};
|
|
33
57
|
function assertNonEmptySegment(value, label) {
|
|
34
58
|
const trimmed = value.trim();
|
|
@@ -69,6 +93,20 @@ export function normalizeLinearObjectType(objectType) {
|
|
|
69
93
|
}
|
|
70
94
|
return mapped;
|
|
71
95
|
}
|
|
96
|
+
export function tryNormalizeLinearObjectType(objectType) {
|
|
97
|
+
try {
|
|
98
|
+
return normalizeLinearObjectType(objectType);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export function normalizeNangoLinearModel(model) {
|
|
105
|
+
const direct = NANGO_MODEL_MAP[model];
|
|
106
|
+
if (direct)
|
|
107
|
+
return direct;
|
|
108
|
+
return normalizeLinearObjectType(model);
|
|
109
|
+
}
|
|
72
110
|
export function linearIssuePath(issueId, title) {
|
|
73
111
|
return `${LINEAR_PATH_ROOT}/issues/${titleSegmentWithId(title, issueId)}.json`;
|
|
74
112
|
}
|
package/dist/path-mapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-mapper.js","sourceRoot":"","sources":["../src/path-mapper.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAE1C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS;IACT,OAAO;IACP,OAAO;IACP,WAAW;IACX,SAAS;IACT,SAAS;IACT,MAAM;IACN,MAAM;CACE,CAAC;AAIX,MAAM,mBAAmB,GAAmD;IAC1E,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,WAAW;IACvB,gBAAgB,EAAE,WAAW;IAC7B,iBAAiB,EAAE,WAAW;IAC9B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,SAAS;IACxB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"path-mapper.js","sourceRoot":"","sources":["../src/path-mapper.ts"],"names":[],"mappings":"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"}
|