@relayfile/adapter-linear 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { describe, it } from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
3
  import { emitLinearAuxiliaryFiles } from '../emit-auxiliary-files.js';
4
- import { LINEAR_PATH_ROOT, linearByIdAliasPath, linearByTitleAliasPath, linearByUuidAliasPath, linearIssueByStatePath, linearIssuePath, linearIssuesIndexPath, linearProjectPath, linearTeamPath, linearTeamsIndexPath, linearUserPath, linearUsersIndexPath, } from '../path-mapper.js';
4
+ import { LINEAR_PATH_ROOT, linearByIdAliasPath, linearByTitleAliasPath, linearByUuidAliasPath, linearCyclesIndexPath, linearIssueByStatePath, linearIssuePath, linearIssuesIndexPath, linearProjectsIndexPath, linearProjectPath, linearRootIndexPath, linearTeamPath, linearTeamsIndexPath, linearUserPath, linearUsersIndexPath, } from '../path-mapper.js';
5
5
  const ISSUES_SCOPE = `${LINEAR_PATH_ROOT}/issues`;
6
6
  function createClient(options = {}) {
7
7
  const files = new Map(Object.entries(options.initialFiles ?? {}));
@@ -41,13 +41,47 @@ function createClient(options = {}) {
41
41
  return client;
42
42
  }
43
43
  describe('emitLinearAuxiliaryFiles', () => {
44
- it('returns a zero result on empty input', async () => {
44
+ it('always writes /linear/_index.json root index on empty input', async () => {
45
45
  const client = createClient();
46
46
  const result = await emitLinearAuxiliaryFiles(client, { workspaceId: 'ws-1' });
47
- assert.deepEqual(result, { written: 0, deleted: 0, errors: [] });
48
- assert.equal(client.writes.length, 0);
47
+ assert.deepEqual(result.errors, []);
48
+ assert.equal(result.deleted, 0);
49
+ assert.equal(result.written, 1);
50
+ assert.equal(client.writes.length, 1);
51
+ assert.equal(client.writes[0].path, linearRootIndexPath());
52
+ const rows = JSON.parse(client.files.get(linearRootIndexPath()));
53
+ assert.deepEqual(rows, [
54
+ { id: 'issues', title: 'Issues' },
55
+ { id: 'comments', title: 'Comments' },
56
+ { id: 'teams', title: 'Teams' },
57
+ { id: 'users', title: 'Users' },
58
+ { id: 'projects', title: 'Projects' },
59
+ { id: 'cycles', title: 'Cycles' },
60
+ { id: 'milestones', title: 'Milestones' },
61
+ { id: 'roadmaps', title: 'Roadmaps' },
62
+ ]);
49
63
  assert.equal(client.deletes.length, 0);
50
64
  });
65
+ it('emits /linear/_index.json alongside non-empty buckets', async () => {
66
+ const client = createClient();
67
+ await emitLinearAuxiliaryFiles(client, {
68
+ workspaceId: 'ws-1',
69
+ teams: [{ id: 'team-1', name: 'Core' }],
70
+ });
71
+ assert.ok(client.writes.some((w) => w.path === linearRootIndexPath()), 'expected /linear/_index.json root index write');
72
+ });
73
+ it('writes an empty index for an explicit empty cycle bucket', async () => {
74
+ const client = createClient();
75
+ const result = await emitLinearAuxiliaryFiles(client, {
76
+ workspaceId: 'ws-1',
77
+ cycles: [],
78
+ });
79
+ assert.deepEqual(result.errors, []);
80
+ assert.equal(result.deleted, 0);
81
+ assert.equal(result.written, 2);
82
+ assert.deepEqual(client.writes.map((w) => w.path), [linearRootIndexPath(), linearCyclesIndexPath()]);
83
+ assert.deepEqual(JSON.parse(client.files.get(linearCyclesIndexPath())), []);
84
+ });
51
85
  it('writes the canonical path plus by-uuid, by-id, by-title, by-state aliases plus index row for an issue', async () => {
52
86
  const client = createClient();
53
87
  const issue = {
@@ -61,8 +95,8 @@ describe('emitLinearAuxiliaryFiles', () => {
61
95
  workspaceId: 'ws-1',
62
96
  issues: [issue],
63
97
  });
64
- // Issue emits 5 files (canonical + by-uuid + by-id + by-title + by-state) + 1 index.
65
- assert.equal(result.written, 6);
98
+ // Issue emits 5 files (canonical + by-uuid + by-id + by-title + by-state) + 1 issues index + 1 root index.
99
+ assert.equal(result.written, 7);
66
100
  assert.deepEqual(result.errors, []);
67
101
  const expectedPaths = [
68
102
  linearIssuePath('issue-123', 'AGE-8'),
@@ -211,7 +245,7 @@ describe('emitLinearAuxiliaryFiles', () => {
211
245
  assert.equal(rows[0].id, 'team-1');
212
246
  assert.equal(rows[0].title, 'Engineering');
213
247
  });
214
- it('writes canonical project file only (no index file today)', async () => {
248
+ it('writes canonical project file plus index row', async () => {
215
249
  const client = createClient();
216
250
  await emitLinearAuxiliaryFiles(client, {
217
251
  workspaceId: 'ws-1',
@@ -225,8 +259,11 @@ describe('emitLinearAuxiliaryFiles', () => {
225
259
  });
226
260
  const writtenPaths = client.writes.map((w) => w.path);
227
261
  assert.ok(writtenPaths.includes(linearProjectPath('project-1')));
228
- // No project index file is emitted (no path-mapper helper today).
229
- assert.ok(!writtenPaths.some((p) => p.endsWith('/projects/_index.json')));
262
+ assert.ok(writtenPaths.includes(linearProjectsIndexPath()));
263
+ const rows = JSON.parse(client.files.get(linearProjectsIndexPath()));
264
+ assert.equal(rows.length, 1);
265
+ assert.equal(rows[0].id, 'project-1');
266
+ assert.equal(rows[0].title, 'Roadmap');
230
267
  });
231
268
  it('delete tombstone for an issue removes canonical + every prior alias and drops the index row', async () => {
232
269
  const priorPayload = {
@@ -360,6 +397,15 @@ describe('emitLinearAuxiliaryFiles', () => {
360
397
  const byTitleEmitted = writtenPaths.some((p) => p.includes('/by-title/'));
361
398
  assert.equal(byTitleEmitted, false);
362
399
  });
400
+ it('writes by-title alias for literal Untitled issue titles', async () => {
401
+ const client = createClient();
402
+ await emitLinearAuxiliaryFiles(client, {
403
+ workspaceId: 'ws-1',
404
+ issues: [{ id: 'issue-untitled', identifier: 'AGE-2', title: 'Untitled' }],
405
+ });
406
+ const writtenPaths = client.writes.map((w) => w.path);
407
+ assert.ok(writtenPaths.includes(linearByTitleAliasPath(ISSUES_SCOPE, 'Untitled', 'issue-untitled')));
408
+ });
363
409
  it('handles a mixed batch: issue create + rename + delete in one call', async () => {
364
410
  const priorRenamePayload = {
365
411
  payload: {
@@ -1 +1 @@
1
- {"version":3,"file":"emit-auxiliary-files.test.js","sourceRoot":"","sources":["../../src/__tests__/emit-auxiliary-files.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-auxiliary-files.test.js","sourceRoot":"","sources":["../../src/__tests__/emit-auxiliary-files.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import { describe, it } from 'node:test';
3
3
  import { buildLinearIndexFile } from '../index-emitter.js';
4
- import { linearCommentPath, linearIssuePath, linearTeamPath, linearUserPath, } from '../path-mapper.js';
5
- import { linearCommentIndexRow, linearIssueIndexRow, linearTeamIndexRow, linearUserIndexRow, } from '../queries.js';
4
+ import { linearCyclePath, linearCommentPath, linearIssuePath, linearProjectPath, linearRoadmapPath, linearMilestonePath, linearTeamPath, linearUserPath, } from '../path-mapper.js';
5
+ import { linearCommentIndexRow, linearCycleIndexRow, linearIssueIndexRow, linearMilestoneIndexRow, linearProjectIndexRow, linearRoadmapIndexRow, linearTeamIndexRow, linearUserIndexRow, } from '../queries.js';
6
6
  describe('linear index emission', () => {
7
7
  it('emits deterministic issue, comment, user, and team indexes', () => {
8
8
  const issueRows = [
@@ -65,11 +65,44 @@ describe('linear index emission', () => {
65
65
  const commentIndex = buildLinearIndexFile('comments', commentRows);
66
66
  const userIndex = buildLinearIndexFile('users', userRows);
67
67
  const teamIndex = buildLinearIndexFile('teams', teamRows);
68
+ const projectIndex = buildLinearIndexFile('projects', [
69
+ linearProjectIndexRow({
70
+ id: 'project-1',
71
+ name: 'Roadmap',
72
+ updatedAt: '2026-04-03T13:00:00.000Z',
73
+ }),
74
+ ]);
75
+ const cycleIndex = buildLinearIndexFile('cycles', [
76
+ linearCycleIndexRow({
77
+ id: 'cycle-1',
78
+ number: 5,
79
+ name: 'Cycle 5',
80
+ updatedAt: '2026-04-03T14:00:00.000Z',
81
+ }),
82
+ ]);
83
+ const milestoneIndex = buildLinearIndexFile('milestones', [
84
+ linearMilestoneIndexRow({
85
+ id: 'milestone-1',
86
+ name: 'Beta',
87
+ updatedAt: '2026-04-03T15:00:00.000Z',
88
+ }),
89
+ ]);
90
+ const roadmapIndex = buildLinearIndexFile('roadmaps', [
91
+ linearRoadmapIndexRow({
92
+ id: 'roadmap-1',
93
+ name: 'Platform',
94
+ updatedAt: '2026-04-03T16:00:00.000Z',
95
+ }),
96
+ ]);
68
97
  assert.deepEqual(issueIndex, issueIndexAgain);
69
98
  assert.equal(issueIndex.path, '/linear/issues/_index.json');
70
99
  assert.equal(commentIndex.path, '/linear/comments/_index.json');
71
100
  assert.equal(userIndex.path, '/linear/users/_index.json');
72
101
  assert.equal(teamIndex.path, '/linear/teams/_index.json');
102
+ assert.equal(projectIndex.path, '/linear/projects/_index.json');
103
+ assert.equal(cycleIndex.path, '/linear/cycles/_index.json');
104
+ assert.equal(milestoneIndex.path, '/linear/milestones/_index.json');
105
+ assert.equal(roadmapIndex.path, '/linear/roadmaps/_index.json');
73
106
  assert.equal(issueIndex.contentType, 'application/json; charset=utf-8');
74
107
  assert.deepEqual(JSON.parse(issueIndex.content), [
75
108
  {
@@ -103,6 +136,10 @@ describe('linear index emission', () => {
103
136
  assert.equal(linearCommentPath('comment-1'), '/linear/comments/comment-1.json');
104
137
  assert.equal(linearUserPath('user-1'), '/linear/users/user-1.json');
105
138
  assert.equal(linearTeamPath('team-1'), '/linear/teams/team-1.json');
139
+ assert.equal(linearProjectPath('project-1'), '/linear/projects/project-1.json');
140
+ assert.equal(linearCyclePath('cycle-1'), '/linear/cycles/cycle-1.json');
141
+ assert.equal(linearMilestonePath('milestone-1'), '/linear/milestones/milestone-1.json');
142
+ assert.equal(linearRoadmapPath('roadmap-1'), '/linear/roadmaps/roadmap-1.json');
106
143
  });
107
144
  it('emits an empty index when a linear bucket has no records', () => {
108
145
  const file = buildLinearIndexFile('comments', []);
@@ -1 +1 @@
1
- {"version":3,"file":"index-emission.test.js","sourceRoot":"","sources":["../../src/__tests__/index-emission.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-emission.test.js","sourceRoot":"","sources":["../../src/__tests__/index-emission.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export declare function slugifyAlias(input: string): string;
2
+ export declare function hasAliasSlug(input: string): boolean;
2
3
  export declare function aliasCollisionSuffix(id: string): string;
3
4
  //# sourceMappingURL=alias-slug.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alias-slug.d.ts","sourceRoot":"","sources":["../src/alias-slug.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEvD"}
1
+ {"version":3,"file":"alias-slug.d.ts","sourceRoot":"","sources":["../src/alias-slug.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAcD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -2,6 +2,12 @@ import { createHash } from 'node:crypto';
2
2
  const COMBINING_MARKS_PATTERN = /[\u0300-\u036f]/g;
3
3
  const MAX_ALIAS_SLUG_LENGTH = 80;
4
4
  export function slugifyAlias(input) {
5
+ return normalizeAliasSlug(input) || 'untitled';
6
+ }
7
+ export function hasAliasSlug(input) {
8
+ return normalizeAliasSlug(input).length > 0;
9
+ }
10
+ function normalizeAliasSlug(input) {
5
11
  const normalized = input
6
12
  .normalize('NFKD')
7
13
  .replace(COMBINING_MARKS_PATTERN, '')
@@ -9,7 +15,7 @@ export function slugifyAlias(input) {
9
15
  .replace(/[^a-z0-9]+/g, '-')
10
16
  .slice(0, MAX_ALIAS_SLUG_LENGTH)
11
17
  .replace(/^-+|-+$/g, '');
12
- return normalized || 'untitled';
18
+ return normalized;
13
19
  }
14
20
  export function aliasCollisionSuffix(id) {
15
21
  return createHash('sha256').update(id).digest('hex').slice(0, 8);
@@ -1 +1 @@
1
- {"version":3,"file":"alias-slug.js","sourceRoot":"","sources":["../src/alias-slug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AACnD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,KAAK;SACrB,SAAS,CAAC,MAAM,CAAC;SACjB,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACpC,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC;SAC/B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3B,OAAO,UAAU,IAAI,UAAU,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAU;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"alias-slug.js","sourceRoot":"","sources":["../src/alias-slug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AACnD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,UAAU,GAAG,KAAK;SACrB,SAAS,CAAC,MAAM,CAAC;SACjB,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACpC,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC;SAC/B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAU;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-auxiliary-files.d.ts","sourceRoot":"","sources":["../src/emit-auxiliary-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAKL,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAI9B,MAAM,yBAAyB,CAAC;AAgCjC,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,EACX,MAAM,YAAY,CAAC;AAMpB;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACjF,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAC/E,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAC/E,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACjF,MAAM,MAAM,yBAAyB,GAAG,eAAe,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACzF,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAErF,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAClD,QAAQ,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC9C,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,sBAAsB,EAC9B,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,wBAAwB,CAAC,CAoDnC"}
1
+ {"version":3,"file":"emit-auxiliary-files.d.ts","sourceRoot":"","sources":["../src/emit-auxiliary-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAKL,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAI9B,MAAM,yBAAyB,CAAC;AAyCjC,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,EACX,MAAM,YAAY,CAAC;AAMpB;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACjF,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAC/E,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAC/E,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACjF,MAAM,MAAM,yBAAyB,GAAG,eAAe,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AACzF,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAErF,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAClD,QAAQ,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC9C,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,sBAAsB,EAC9B,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,wBAAwB,CAAC,CAiEnC"}
@@ -51,9 +51,10 @@
51
51
  * `packages/confluence/src/emit-auxiliary-files.ts`).
52
52
  */
53
53
  import { PriorAliasReader, IndexFileReconciler, runEmitBatch, EMIT_AUXILIARY_JSON_CONTENT_TYPE, } from '@relayfile/adapter-core';
54
- import { slugifyAlias } from './alias-slug.js';
55
- import { LINEAR_PATH_ROOT, linearByIdAliasPath, linearByTitleAliasPath, linearByUuidAliasPath, linearCommentPath, linearCommentsIndexPath, linearCyclePath, linearIssueByStatePath, linearIssuePath, linearIssuesIndexPath, linearMilestonePath, linearProjectPath, linearRoadmapPath, linearTeamPath, linearTeamsIndexPath, linearUserPath, linearUsersIndexPath, } from './path-mapper.js';
56
- import { linearCommentIndexRow, linearIssueIndexRow, linearTeamIndexRow, linearUserIndexRow, } from './queries.js';
54
+ import { hasAliasSlug } from './alias-slug.js';
55
+ import { buildLinearRootIndexFile } from './index-emitter.js';
56
+ import { LINEAR_PATH_ROOT, linearByIdAliasPath, linearByTitleAliasPath, linearByUuidAliasPath, linearCommentPath, linearCommentsIndexPath, linearCyclesIndexPath, linearCyclePath, linearIssueByStatePath, linearIssuePath, linearIssuesIndexPath, linearMilestonesIndexPath, linearMilestonePath, linearProjectsIndexPath, linearProjectPath, linearRoadmapsIndexPath, linearRoadmapPath, linearTeamPath, linearTeamsIndexPath, linearUserPath, linearUsersIndexPath, } from './path-mapper.js';
57
+ import { linearCommentIndexRow, linearCycleIndexRow, linearIssueIndexRow, linearMilestoneIndexRow, linearProjectIndexRow, linearRoadmapIndexRow, linearTeamIndexRow, linearUserIndexRow, } from './queries.js';
57
58
  const LINEAR_PROVIDER_NAME = 'linear';
58
59
  const JSON_CONTENT_TYPE = EMIT_AUXILIARY_JSON_CONTENT_TYPE;
59
60
  const ISSUES_SCOPE = `${LINEAR_PATH_ROOT}/issues`;
@@ -65,6 +66,10 @@ const ISSUES_SCOPE = `${LINEAR_PATH_ROOT}/issues`;
65
66
  export async function emitLinearAuxiliaryFiles(client, input) {
66
67
  const workspaceId = input.workspaceId;
67
68
  const aggregate = { written: 0, deleted: 0, errors: [] };
69
+ // Always emit the root `/linear/_index.json` so `ls /linear/` reliably
70
+ // surfaces the top-level resource buckets, even for empty / single-bucket
71
+ // batches. Mirrors `emitSlackAuxiliaryFiles`.
72
+ await writeRootIndex(client, workspaceId, aggregate);
68
73
  const issues = input.issues ?? [];
69
74
  const comments = input.comments ?? [];
70
75
  const users = input.users ?? [];
@@ -73,44 +78,74 @@ export async function emitLinearAuxiliaryFiles(client, input) {
73
78
  const cycles = input.cycles ?? [];
74
79
  const milestones = input.milestones ?? [];
75
80
  const roadmaps = input.roadmaps ?? [];
76
- if (issues.length === 0 &&
77
- comments.length === 0 &&
78
- users.length === 0 &&
79
- teams.length === 0 &&
80
- projects.length === 0 &&
81
- cycles.length === 0 &&
82
- milestones.length === 0 &&
83
- roadmaps.length === 0) {
81
+ const hasIssues = hasOwn(input, 'issues');
82
+ const hasComments = hasOwn(input, 'comments');
83
+ const hasUsers = hasOwn(input, 'users');
84
+ const hasTeams = hasOwn(input, 'teams');
85
+ const hasProjects = hasOwn(input, 'projects');
86
+ const hasCycles = hasOwn(input, 'cycles');
87
+ const hasMilestones = hasOwn(input, 'milestones');
88
+ const hasRoadmaps = hasOwn(input, 'roadmaps');
89
+ if (!hasIssues &&
90
+ !hasComments &&
91
+ !hasUsers &&
92
+ !hasTeams &&
93
+ !hasProjects &&
94
+ !hasCycles &&
95
+ !hasMilestones &&
96
+ !hasRoadmaps) {
84
97
  return aggregate;
85
98
  }
86
- if (issues.length > 0) {
99
+ if (hasIssues) {
87
100
  accumulate(aggregate, await emitIssues(client, workspaceId, issues, input.connectionId));
88
101
  }
89
- if (comments.length > 0) {
102
+ if (hasComments) {
90
103
  accumulate(aggregate, await emitComments(client, workspaceId, comments, input.connectionId));
91
104
  }
92
- if (users.length > 0) {
105
+ if (hasUsers) {
93
106
  accumulate(aggregate, await emitUsers(client, workspaceId, users, input.connectionId));
94
107
  }
95
- if (teams.length > 0) {
108
+ if (hasTeams) {
96
109
  accumulate(aggregate, await emitTeams(client, workspaceId, teams, input.connectionId));
97
110
  }
98
- if (projects.length > 0) {
111
+ if (hasProjects) {
99
112
  accumulate(aggregate, await emitProjects(client, workspaceId, projects, input.connectionId));
100
113
  }
101
- if (cycles.length > 0) {
114
+ if (hasCycles) {
102
115
  accumulate(aggregate, await emitCycles(client, workspaceId, cycles, input.connectionId));
103
116
  }
104
- if (milestones.length > 0) {
117
+ if (hasMilestones) {
105
118
  accumulate(aggregate, await emitMilestones(client, workspaceId, milestones, input.connectionId));
106
119
  }
107
- if (roadmaps.length > 0) {
120
+ if (hasRoadmaps) {
108
121
  accumulate(aggregate, await emitRoadmaps(client, workspaceId, roadmaps, input.connectionId));
109
122
  }
110
123
  return aggregate;
111
124
  }
125
+ // -- root index -------------------------------------------------------------
126
+ async function writeRootIndex(client, workspaceId, aggregate) {
127
+ const file = buildLinearRootIndexFile();
128
+ try {
129
+ await client.writeFile({
130
+ workspaceId,
131
+ path: file.path,
132
+ content: file.content,
133
+ contentType: file.contentType,
134
+ });
135
+ aggregate.written += 1;
136
+ }
137
+ catch (error) {
138
+ aggregate.errors.push({
139
+ path: file.path,
140
+ error: error instanceof Error ? error.message : String(error),
141
+ });
142
+ }
143
+ }
112
144
  // -- issues -----------------------------------------------------------------
113
145
  async function emitIssues(client, workspaceId, records, connectionId) {
146
+ if (records.length === 0) {
147
+ return writeEmptyIndex(client, workspaceId, linearIssuesIndexPath());
148
+ }
114
149
  const indexReconciler = new IndexFileReconciler({
115
150
  client,
116
151
  workspaceId,
@@ -226,8 +261,7 @@ function issuePathsFor(args) {
226
261
  if (identifier) {
227
262
  paths.push(linearByIdAliasPath(ISSUES_SCOPE, identifier));
228
263
  }
229
- // by-title alias — skip when title slugs to empty (`slugifyAlias` returns
230
- // the literal `'untitled'` sentinel in that case).
264
+ // by-title alias — skip when the title has no valid alias slug.
231
265
  if (title && slugifies(title)) {
232
266
  paths.push(linearByTitleAliasPath(ISSUES_SCOPE, title, id));
233
267
  }
@@ -256,6 +290,9 @@ function toIssueNode(issue) {
256
290
  }
257
291
  // -- comments ---------------------------------------------------------------
258
292
  async function emitComments(client, workspaceId, records, connectionId) {
293
+ if (records.length === 0) {
294
+ return writeEmptyIndex(client, workspaceId, linearCommentsIndexPath());
295
+ }
259
296
  const indexReconciler = new IndexFileReconciler({
260
297
  client,
261
298
  workspaceId,
@@ -328,36 +365,45 @@ async function emitTeams(client, workspaceId, records, connectionId) {
328
365
  });
329
366
  }
330
367
  async function emitProjects(client, workspaceId, records, connectionId) {
331
- // Projects don't ship an `_index.json` in the current adapter (no
332
- // index-emitter bucket), so we only emit the canonical record.
333
- return emitCanonicalOnlyResource(client, workspaceId, records, {
368
+ return emitFlatResource(client, workspaceId, records, {
369
+ indexPath: linearProjectsIndexPath(),
334
370
  canonicalPath: (id) => linearProjectPath(id),
371
+ indexRow: (record) => linearProjectIndexRow(record),
335
372
  objectType: 'project',
336
373
  connectionId,
337
374
  });
338
375
  }
339
376
  async function emitCycles(client, workspaceId, records, connectionId) {
340
- return emitCanonicalOnlyResource(client, workspaceId, records, {
377
+ return emitFlatResource(client, workspaceId, records, {
378
+ indexPath: linearCyclesIndexPath(),
341
379
  canonicalPath: (id) => linearCyclePath(id),
380
+ indexRow: (record) => linearCycleIndexRow(record),
342
381
  objectType: 'cycle',
343
382
  connectionId,
344
383
  });
345
384
  }
346
385
  async function emitMilestones(client, workspaceId, records, connectionId) {
347
- return emitCanonicalOnlyResource(client, workspaceId, records, {
386
+ return emitFlatResource(client, workspaceId, records, {
387
+ indexPath: linearMilestonesIndexPath(),
348
388
  canonicalPath: (id) => linearMilestonePath(id),
389
+ indexRow: (record) => linearMilestoneIndexRow(record),
349
390
  objectType: 'milestone',
350
391
  connectionId,
351
392
  });
352
393
  }
353
394
  async function emitRoadmaps(client, workspaceId, records, connectionId) {
354
- return emitCanonicalOnlyResource(client, workspaceId, records, {
395
+ return emitFlatResource(client, workspaceId, records, {
396
+ indexPath: linearRoadmapsIndexPath(),
355
397
  canonicalPath: (id) => linearRoadmapPath(id),
398
+ indexRow: (record) => linearRoadmapIndexRow(record),
356
399
  objectType: 'roadmap',
357
400
  connectionId,
358
401
  });
359
402
  }
360
403
  async function emitFlatResource(client, workspaceId, records, opts) {
404
+ if (records.length === 0) {
405
+ return writeEmptyIndex(client, workspaceId, opts.indexPath);
406
+ }
361
407
  const indexReconciler = new IndexFileReconciler({
362
408
  client,
363
409
  workspaceId,
@@ -392,25 +438,6 @@ async function emitFlatResource(client, workspaceId, records, opts) {
392
438
  fanOut.errors.push(...indexResult.errors);
393
439
  return fanOut;
394
440
  }
395
- async function emitCanonicalOnlyResource(client, workspaceId, records, opts) {
396
- return runEmitBatch(client, workspaceId, records, async (record) => {
397
- if (isDeleteRecord(record)) {
398
- return { deletes: [{ path: opts.canonicalPath(record.id) }] };
399
- }
400
- const id = readNonEmptyString(record.id);
401
- if (!id)
402
- return {};
403
- return {
404
- writes: [
405
- {
406
- path: opts.canonicalPath(id),
407
- content: renderContent(opts.objectType, record, opts.connectionId, false),
408
- contentType: JSON_CONTENT_TYPE,
409
- },
410
- ],
411
- };
412
- });
413
- }
414
441
  // -- shared helpers ---------------------------------------------------------
415
442
  function renderContent(objectType, payload, connectionId, deleted) {
416
443
  return JSON.stringify({
@@ -461,16 +488,36 @@ function readNonEmptyString(value) {
461
488
  function isRecord(value) {
462
489
  return typeof value === 'object' && value !== null && !Array.isArray(value);
463
490
  }
491
+ function hasOwn(value, key) {
492
+ return Object.prototype.hasOwnProperty.call(value, key);
493
+ }
494
+ async function writeEmptyIndex(client, workspaceId, path) {
495
+ try {
496
+ await client.writeFile({
497
+ workspaceId,
498
+ path,
499
+ content: '[]\n',
500
+ contentType: JSON_CONTENT_TYPE,
501
+ });
502
+ return { written: 1, deleted: 0, errors: [] };
503
+ }
504
+ catch (error) {
505
+ return {
506
+ written: 0,
507
+ deleted: 0,
508
+ errors: [{ path, error: error instanceof Error ? error.message : String(error) }],
509
+ };
510
+ }
511
+ }
464
512
  /**
465
513
  * Skip by-title aliases for titles that slug to nothing (emoji-only /
466
514
  * punctuation-only). The by-id alias still resolves those records.
467
515
  *
468
- * Delegates to the shared `slugifyAlias` per AGENTS.md "NEVER write a
469
- * new slugifier" rule. `slugifyAlias` returns the literal string
470
- * `'untitled'` as its empty-slug sentinel.
516
+ * Delegates to the shared alias-slug helper per AGENTS.md "NEVER write a
517
+ * new slugifier" rule.
471
518
  */
472
519
  function slugifies(value) {
473
- return slugifyAlias(value) !== 'untitled';
520
+ return hasAliasSlug(value);
474
521
  }
475
522
  function accumulate(aggregate, partial) {
476
523
  aggregate.written += partial.written;