@luoyi-dsh/instagram-scroll 1.0.3 → 1.0.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,14 +1,46 @@
1
1
  /**
2
- * src/lib/ledger.ts —— 滾動紀錄、推坑去重與日報帳本
2
+ * src/lib/ledger.ts —— 滾動紀錄、跨外掛永久推坑去重與日報帳本
3
3
  * ============================================================================
4
4
  * 職責:
5
- * 1. 記錄已滾動瀏覽過的貼文 (seenPosts),避免重複審閱與重複推坑。
6
- * 2. 記錄今日替主人推薦的次數,嚴格遵循每日上限,防止 IG 頻率過高。
7
- * 3. 輸出 Markdown 日報至 data/reports/YYYY-MM-DD.md。
5
+ * 1. 記錄已滾動瀏覽過的貼文/Reel (seenPosts) 與永久已推薦清單 (sentPosts / recommendedHistory),
6
+ * 跨日絕不清空已發送紀錄,避免重複審閱與重複推坑。
7
+ * 2. 與姊妹外掛 dsh-instagram-plugin 的 data/ledger.json 及全域共享去重庫
8
+ * ~/.dsh/instagram-sent-media.json 雙向同步,同時比對 Canonical PK、Shortcode (code)、
9
+ * URL 與作者+內文指紋,100% 杜絕任何貼文或 Reel 被重複發送!
10
+ * 3. 記錄今日替主人推薦的次數,嚴格遵循每日上限,防止 IG 頻率過高。
11
+ * 4. 輸出 Markdown 日報至 data/reports/YYYY-MM-DD.md。
8
12
  * ============================================================================
9
13
  */
10
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
14
+ import { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
15
+ import { homedir } from 'node:os';
11
16
  import { dirname, join } from 'node:path';
17
+ /** 正規化提取貼文或 Reel 的所有唯一識別碼 (Canonical PK、Shortcode、URL、內容指紋) */
18
+ export function extractCanonicalMediaIdentity(postOrPk) {
19
+ if (typeof postOrPk === 'string' || typeof postOrPk === 'number') {
20
+ const raw = String(postOrPk).trim();
21
+ const canonicalPk = raw.split('_')[0].trim();
22
+ const urlCodeMatch = raw.match(/instagram\.com\/(?:p|reel|reels|tv)\/([A-Za-z0-9_-]+)/i);
23
+ const code = urlCodeMatch ? urlCodeMatch[1] : '';
24
+ return { canonicalPk, rawPk: raw, code, url: '', author: '', fingerprint: '' };
25
+ }
26
+ const obj = postOrPk || {};
27
+ const rawPk = String(obj.pk || obj.id || obj.postPk || '').trim();
28
+ const canonicalPk = rawPk.split('_')[0].trim();
29
+ const url = String(obj.url || '').trim();
30
+ const urlCodeMatch = url.match(/instagram\.com\/(?:p|reel|reels|tv)\/([A-Za-z0-9_-]+)/i);
31
+ const code = String(obj.code || (urlCodeMatch ? urlCodeMatch[1] : '') || '').trim();
32
+ const author = String(obj.user?.username || obj.author || '')
33
+ .toLowerCase()
34
+ .replace(/^@/, '')
35
+ .trim();
36
+ const cleanCaption = String(obj.caption || '')
37
+ .toLowerCase()
38
+ .replace(/#[\p{L}\p{N}_]+/gu, '')
39
+ .replace(/\s+/g, '')
40
+ .slice(0, 80);
41
+ const fingerprint = author && cleanCaption.length >= 12 ? `${author}:${cleanCaption}` : '';
42
+ return { canonicalPk, rawPk, code, url, author, fingerprint };
43
+ }
12
44
  export class ScrollLedgerManager {
13
45
  filePath;
14
46
  reportsDir;
@@ -23,10 +55,199 @@ export class ScrollLedgerManager {
23
55
  mkdirSync(reportsDir, { recursive: true });
24
56
  }
25
57
  this.state = this.load();
58
+ this.syncSharedRegistry();
26
59
  if (!existsSync(this.filePath)) {
27
60
  this.save();
28
61
  }
29
62
  }
63
+ getDshHomeDir() {
64
+ return process.env.DSH_HOME || join(process.env.USERPROFILE || process.env.HOME || homedir(), '.dsh');
65
+ }
66
+ getSharedSentMediaPath() {
67
+ const dir = this.getDshHomeDir();
68
+ if (!existsSync(dir)) {
69
+ try {
70
+ mkdirSync(dir, { recursive: true });
71
+ }
72
+ catch { }
73
+ }
74
+ return join(dir, 'instagram-sent-media.json');
75
+ }
76
+ getSiblingPluginLedgerPath() {
77
+ const pluginRoot = dirname(dirname(this.filePath));
78
+ return join(dirname(pluginRoot), 'dsh-instagram-plugin', 'data', 'ledger.json');
79
+ }
80
+ loadSharedRegistry() {
81
+ const sharedPath = this.getSharedSentMediaPath();
82
+ const empty = {
83
+ version: 1,
84
+ updatedAt: new Date().toISOString(),
85
+ sentPks: {},
86
+ sentCodes: {},
87
+ sentFingerprints: {},
88
+ seenPks: {},
89
+ seenCodes: {},
90
+ };
91
+ try {
92
+ if (existsSync(sharedPath)) {
93
+ const parsed = JSON.parse(readFileSync(sharedPath, 'utf-8'));
94
+ return {
95
+ version: 1,
96
+ updatedAt: parsed.updatedAt || empty.updatedAt,
97
+ sentPks: parsed.sentPks || {},
98
+ sentCodes: parsed.sentCodes || {},
99
+ sentFingerprints: parsed.sentFingerprints || {},
100
+ seenPks: parsed.seenPks || {},
101
+ seenCodes: parsed.seenCodes || {},
102
+ };
103
+ }
104
+ }
105
+ catch { }
106
+ return empty;
107
+ }
108
+ saveSharedRegistry(reg) {
109
+ try {
110
+ reg.updatedAt = new Date().toISOString();
111
+ const sharedPath = this.getSharedSentMediaPath();
112
+ const tmp = `${sharedPath}.tmp`;
113
+ writeFileSync(tmp, JSON.stringify(reg, null, 2), 'utf-8');
114
+ renameSync(tmp, sharedPath);
115
+ globalThis.__DSH_IG_SENT_REGISTRY__ = reg;
116
+ }
117
+ catch { }
118
+ }
119
+ /**
120
+ * 雙向同步 scroll_ledger.json、dsh-instagram-plugin 的 ledger.json 與歷史日報,
121
+ * 確保兩邊曾發送或看過的貼文/Reel 全部匯入全域永久去重庫
122
+ */
123
+ syncSharedRegistry() {
124
+ const reg = this.loadSharedRegistry();
125
+ let dirty = false;
126
+ if (!this.state.sentPosts)
127
+ this.state.sentPosts = {};
128
+ if (!Array.isArray(this.state.recommendedHistory))
129
+ this.state.recommendedHistory = [];
130
+ // 1. 同步本插件自身的 seenPosts / sentPosts / recommendedToday / recommendedHistory
131
+ for (const [rawKey, meta] of Object.entries(this.state.seenPosts || {})) {
132
+ const cleanPk = String(rawKey).split('_')[0].trim();
133
+ if (!cleanPk)
134
+ continue;
135
+ if (!reg.seenPks[cleanPk]) {
136
+ reg.seenPks[cleanPk] = { timestamp: meta?.timestamp || new Date().toISOString(), code: meta?.code, source: 'scroll' };
137
+ dirty = true;
138
+ }
139
+ if (meta?.code && !reg.seenCodes[meta.code]) {
140
+ reg.seenCodes[meta.code] = cleanPk;
141
+ dirty = true;
142
+ }
143
+ if (meta?.worthy) {
144
+ this.state.sentPosts[cleanPk] = meta;
145
+ if (!reg.sentPks[cleanPk]) {
146
+ reg.sentPks[cleanPk] = {
147
+ timestamp: meta.timestamp || new Date().toISOString(),
148
+ code: meta.code,
149
+ url: meta.url,
150
+ fingerprint: meta.fingerprint,
151
+ source: 'scroll',
152
+ };
153
+ dirty = true;
154
+ }
155
+ if (meta.code && !reg.sentCodes[meta.code]) {
156
+ reg.sentCodes[meta.code] = cleanPk;
157
+ dirty = true;
158
+ }
159
+ }
160
+ }
161
+ for (const item of [...(this.state.recommendedToday || []), ...(this.state.recommendedHistory || [])]) {
162
+ const idInfo = extractCanonicalMediaIdentity(item);
163
+ if (idInfo.canonicalPk) {
164
+ this.state.sentPosts[idInfo.canonicalPk] = {
165
+ timestamp: item.timestamp,
166
+ worthy: true,
167
+ code: idInfo.code,
168
+ url: idInfo.url,
169
+ author: idInfo.author,
170
+ };
171
+ if (!reg.sentPks[idInfo.canonicalPk]) {
172
+ reg.sentPks[idInfo.canonicalPk] = {
173
+ timestamp: item.timestamp || new Date().toISOString(),
174
+ code: idInfo.code,
175
+ url: idInfo.url,
176
+ source: 'scroll-recommend',
177
+ };
178
+ dirty = true;
179
+ }
180
+ }
181
+ if (idInfo.code && !reg.sentCodes[idInfo.code]) {
182
+ reg.sentCodes[idInfo.code] = idInfo.canonicalPk || idInfo.code;
183
+ dirty = true;
184
+ }
185
+ }
186
+ // 2. 同步姊妹外掛 dsh-instagram-plugin 的 ledger.json
187
+ const pluginLedgerPath = this.getSiblingPluginLedgerPath();
188
+ if (existsSync(pluginLedgerPath)) {
189
+ try {
190
+ const pluginData = JSON.parse(readFileSync(pluginLedgerPath, 'utf-8'));
191
+ for (const [rawKey, meta] of Object.entries(pluginData?.seenPosts || {})) {
192
+ const cleanPk = String(rawKey).split('_')[0].trim();
193
+ if (!cleanPk)
194
+ continue;
195
+ if (!reg.seenPks[cleanPk]) {
196
+ reg.seenPks[cleanPk] = { timestamp: meta?.timestamp || new Date().toISOString(), code: meta?.code, source: 'plugin' };
197
+ dirty = true;
198
+ }
199
+ if (meta?.code && !reg.seenCodes[meta.code]) {
200
+ reg.seenCodes[meta.code] = cleanPk;
201
+ dirty = true;
202
+ }
203
+ if (meta?.recommended && !reg.sentPks[cleanPk]) {
204
+ reg.sentPks[cleanPk] = {
205
+ timestamp: meta?.timestamp || new Date().toISOString(),
206
+ code: meta?.code,
207
+ url: meta?.url,
208
+ source: 'plugin-patrol',
209
+ };
210
+ dirty = true;
211
+ }
212
+ if (meta?.recommended && meta?.code && !reg.sentCodes[meta.code]) {
213
+ reg.sentCodes[meta.code] = cleanPk;
214
+ dirty = true;
215
+ }
216
+ }
217
+ }
218
+ catch { }
219
+ }
220
+ // 3. 掃描歷史日報 data/reports/*.md 中所有已推坑過的貼文與 Reel 短碼
221
+ if (existsSync(this.reportsDir)) {
222
+ try {
223
+ const files = readdirSync(this.reportsDir).filter((f) => f.endsWith('.md'));
224
+ for (const f of files) {
225
+ const md = readFileSync(join(this.reportsDir, f), 'utf-8');
226
+ const matches = md.matchAll(/instagram\.com\/(?:p|reel|reels|tv)\/([A-Za-z0-9_-]+)/gi);
227
+ for (const m of matches) {
228
+ const code = m[1];
229
+ if (code && !reg.sentCodes[code]) {
230
+ reg.sentCodes[code] = `report:${f}`;
231
+ dirty = true;
232
+ }
233
+ if (code && !reg.seenCodes[code]) {
234
+ reg.seenCodes[code] = `report:${f}`;
235
+ dirty = true;
236
+ }
237
+ }
238
+ }
239
+ }
240
+ catch { }
241
+ }
242
+ if (dirty || !existsSync(this.getSharedSentMediaPath())) {
243
+ this.saveSharedRegistry(reg);
244
+ }
245
+ else {
246
+ ;
247
+ globalThis.__DSH_IG_SENT_REGISTRY__ = reg;
248
+ }
249
+ return reg;
250
+ }
30
251
  getTodayStr() {
31
252
  return new Date().toISOString().slice(0, 10);
32
253
  }
@@ -36,8 +257,20 @@ export class ScrollLedgerManager {
36
257
  if (existsSync(this.filePath)) {
37
258
  const raw = readFileSync(this.filePath, 'utf-8');
38
259
  const data = JSON.parse(raw);
260
+ if (!data.sentPosts)
261
+ data.sentPosts = {};
262
+ if (!Array.isArray(data.recommendedHistory)) {
263
+ data.recommendedHistory = Array.isArray(data.recommendedToday) ? [...data.recommendedToday] : [];
264
+ }
39
265
  if (data.date !== today) {
40
- // 隔日重設每日統計
266
+ // 隔日僅重設當日計數,永久保留 seenPosts、sentPosts 與 recommendedHistory!
267
+ if (Array.isArray(data.recommendedToday)) {
268
+ for (const item of data.recommendedToday) {
269
+ if (!data.recommendedHistory.some((h) => h.postPk === item.postPk || (h.code && h.code === item.code))) {
270
+ data.recommendedHistory.unshift(item);
271
+ }
272
+ }
273
+ }
41
274
  data.date = today;
42
275
  data.recommendedToday = [];
43
276
  data.dailyStats = { scrolledCount: 0, recommendedCount: 0 };
@@ -50,13 +283,17 @@ export class ScrollLedgerManager {
50
283
  version: 1,
51
284
  date: today,
52
285
  seenPosts: {},
286
+ sentPosts: {},
53
287
  recommendedToday: [],
288
+ recommendedHistory: [],
54
289
  dailyStats: { scrolledCount: 0, recommendedCount: 0 },
55
290
  };
56
291
  }
57
292
  save() {
58
293
  try {
59
- writeFileSync(this.filePath, JSON.stringify(this.state, null, 2), 'utf-8');
294
+ const tmp = `${this.filePath}.tmp`;
295
+ writeFileSync(tmp, JSON.stringify(this.state, null, 2), 'utf-8');
296
+ renameSync(tmp, this.filePath);
60
297
  }
61
298
  catch (e) {
62
299
  console.error(`[ScrollLedger] 保存失敗: ${e.message}`);
@@ -65,23 +302,133 @@ export class ScrollLedgerManager {
65
302
  checkRollover() {
66
303
  const today = this.getTodayStr();
67
304
  if (this.state.date !== today) {
305
+ if (!Array.isArray(this.state.recommendedHistory)) {
306
+ this.state.recommendedHistory = [];
307
+ }
308
+ if (Array.isArray(this.state.recommendedToday)) {
309
+ for (const item of this.state.recommendedToday) {
310
+ if (!this.state.recommendedHistory.some((h) => h.postPk === item.postPk || (h.code && h.code === item.code))) {
311
+ this.state.recommendedHistory.unshift(item);
312
+ }
313
+ }
314
+ }
68
315
  this.state.date = today;
69
316
  this.state.recommendedToday = [];
70
317
  this.state.dailyStats = { scrolledCount: 0, recommendedCount: 0 };
71
318
  this.save();
72
319
  }
73
320
  }
74
- hasSeen(postPk) {
75
- return Boolean(this.state.seenPosts[postPk]);
321
+ /**
322
+ * 檢查該貼文或 Reel 是否已被任一外掛瀏覽或推薦過
323
+ */
324
+ hasSeen(postOrPk) {
325
+ const { canonicalPk, rawPk, code, fingerprint } = extractCanonicalMediaIdentity(postOrPk);
326
+ const reg = this.syncSharedRegistry();
327
+ if (canonicalPk) {
328
+ if (this.state.seenPosts[canonicalPk] || this.state.sentPosts?.[canonicalPk])
329
+ return true;
330
+ if (reg.sentPks[canonicalPk] || reg.seenPks[canonicalPk])
331
+ return true;
332
+ }
333
+ if (rawPk) {
334
+ if (this.state.seenPosts[rawPk] || this.state.sentPosts?.[rawPk])
335
+ return true;
336
+ if (reg.sentPks[rawPk] || reg.seenPks[rawPk])
337
+ return true;
338
+ }
339
+ if (code) {
340
+ if (reg.sentCodes[code] || reg.seenCodes[code])
341
+ return true;
342
+ if (this.state.recommendedToday?.some((r) => r.code === code))
343
+ return true;
344
+ if (this.state.recommendedHistory?.some((r) => r.code === code))
345
+ return true;
346
+ }
347
+ if (fingerprint && reg.sentFingerprints[fingerprint]) {
348
+ return true;
349
+ }
350
+ return false;
351
+ }
352
+ /**
353
+ * 專門檢查該貼文或 Reel 是否「曾經被發送/推坑過」(跨外掛、跨日永久有效)
354
+ */
355
+ hasEverSent(postOrPk) {
356
+ const { canonicalPk, rawPk, code, fingerprint } = extractCanonicalMediaIdentity(postOrPk);
357
+ const reg = this.syncSharedRegistry();
358
+ if (canonicalPk) {
359
+ if (this.state.sentPosts?.[canonicalPk] || this.state.seenPosts[canonicalPk]?.worthy)
360
+ return true;
361
+ if (reg.sentPks[canonicalPk])
362
+ return true;
363
+ }
364
+ if (rawPk) {
365
+ if (this.state.sentPosts?.[rawPk] || this.state.seenPosts[rawPk]?.worthy)
366
+ return true;
367
+ if (reg.sentPks[rawPk])
368
+ return true;
369
+ }
370
+ if (code) {
371
+ if (reg.sentCodes[code])
372
+ return true;
373
+ if (this.state.recommendedToday?.some((r) => r.code === code))
374
+ return true;
375
+ if (this.state.recommendedHistory?.some((r) => r.code === code))
376
+ return true;
377
+ }
378
+ if (fingerprint && reg.sentFingerprints[fingerprint]) {
379
+ return true;
380
+ }
381
+ return false;
76
382
  }
77
- markSeen(postPk, worthy = false) {
383
+ markSeen(postOrPk, worthy = false) {
78
384
  this.checkRollover();
79
- this.state.seenPosts[postPk] = {
80
- timestamp: new Date().toISOString(),
385
+ const idInfo = extractCanonicalMediaIdentity(postOrPk);
386
+ const key = idInfo.canonicalPk || idInfo.rawPk;
387
+ if (!key)
388
+ return;
389
+ const nowIso = new Date().toISOString();
390
+ const entry = {
391
+ timestamp: nowIso,
81
392
  worthy,
393
+ ...(idInfo.code ? { code: idInfo.code } : {}),
394
+ ...(idInfo.url ? { url: idInfo.url } : {}),
395
+ ...(idInfo.author ? { author: idInfo.author } : {}),
396
+ ...(idInfo.fingerprint ? { fingerprint: idInfo.fingerprint } : {}),
82
397
  };
83
- this.state.dailyStats.scrolledCount = (this.state.dailyStats.scrolledCount || 0) + 1;
398
+ const wasAlreadySeen = Boolean(this.state.seenPosts[key]);
399
+ this.state.seenPosts[key] = entry;
400
+ if (idInfo.rawPk && idInfo.rawPk !== key) {
401
+ this.state.seenPosts[idInfo.rawPk] = entry;
402
+ }
403
+ if (!this.state.sentPosts)
404
+ this.state.sentPosts = {};
405
+ if (worthy) {
406
+ this.state.sentPosts[key] = entry;
407
+ }
408
+ if (!wasAlreadySeen) {
409
+ this.state.dailyStats.scrolledCount = (this.state.dailyStats.scrolledCount || 0) + 1;
410
+ }
84
411
  this.save();
412
+ // 同步寫入全域共享去重檔案 ~/.dsh/instagram-sent-media.json
413
+ const reg = this.loadSharedRegistry();
414
+ reg.seenPks[key] = { timestamp: nowIso, code: idInfo.code || undefined, source: 'scroll' };
415
+ if (idInfo.code) {
416
+ reg.seenCodes[idInfo.code] = key;
417
+ }
418
+ if (worthy) {
419
+ reg.sentPks[key] = {
420
+ timestamp: nowIso,
421
+ code: idInfo.code || undefined,
422
+ url: idInfo.url || undefined,
423
+ fingerprint: idInfo.fingerprint || undefined,
424
+ source: 'scroll-recommend',
425
+ };
426
+ if (idInfo.code)
427
+ reg.sentCodes[idInfo.code] = key;
428
+ if (idInfo.fingerprint)
429
+ reg.sentFingerprints[idInfo.fingerprint] = key;
430
+ }
431
+ this.saveSharedRegistry(reg);
85
432
  }
86
433
  canRecommend(cap) {
87
434
  this.checkRollover();
@@ -91,11 +438,21 @@ export class ScrollLedgerManager {
91
438
  }
92
439
  recordRecommendation(item) {
93
440
  this.checkRollover();
94
- this.state.recommendedToday.unshift(item);
441
+ const cleanPk = String(item.postPk || '').split('_')[0].trim() || item.postPk;
442
+ const normalizedItem = { ...item, postPk: cleanPk };
443
+ if (!this.state.recommendedToday.some((r) => r.postPk === cleanPk || (r.code && r.code === normalizedItem.code))) {
444
+ this.state.recommendedToday.unshift(normalizedItem);
445
+ }
446
+ if (!Array.isArray(this.state.recommendedHistory)) {
447
+ this.state.recommendedHistory = [];
448
+ }
449
+ if (!this.state.recommendedHistory.some((r) => r.postPk === cleanPk || (r.code && r.code === normalizedItem.code))) {
450
+ this.state.recommendedHistory.unshift(normalizedItem);
451
+ }
95
452
  this.state.dailyStats.recommendedCount = (this.state.dailyStats.recommendedCount || 0) + 1;
96
- this.markSeen(item.postPk, true);
453
+ this.markSeen(normalizedItem, true);
97
454
  this.save();
98
- this.appendReport(item);
455
+ this.appendReport(normalizedItem);
99
456
  }
100
457
  getDailyStats() {
101
458
  this.checkRollover();
@@ -107,12 +464,12 @@ export class ScrollLedgerManager {
107
464
  }
108
465
  appendReport(item) {
109
466
  const reportPath = join(this.reportsDir, `${this.state.date}.md`);
110
- const line = `### [${item.author}](${item.url}) (評分: ${item.score}/100)
111
- - **推薦原因**:${item.reason}
112
- - **@主人留言**:\`${item.commentText}\`
113
- - **時間**:${item.timestamp}
114
-
115
- ---
467
+ const line = `### [${item.author}](${item.url}) (評分: ${item.score}/100)
468
+ - **推薦原因**:${item.reason}
469
+ - **@主人留言**:\`${item.commentText}\`
470
+ - **時間**:${item.timestamp}
471
+
472
+ ---
116
473
  `;
117
474
  try {
118
475
  let content = '';
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/lib/ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/lib/ledger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luoyi-dsh/instagram-scroll",
3
- "version": "1.0.3",
3
+ "version": "1.0.7",
4
4
  "description": "DeepSeek Harness (DSH) Instagram 動態滾動瀏覽與探索插件:提供動態牆無限滾動、探索摘要與即時互動能力",
5
5
  "keywords": [
6
6
  "dsh",
@@ -35,7 +35,8 @@
35
35
  "dist",
36
36
  "client.js",
37
37
  "cordis.patch.yml",
38
- "!**/data/**"
38
+ "!**/data/**",
39
+ "AGENTS.md"
39
40
  ],
40
41
  "scripts": {
41
42
  "build": "node ../dsh-instagram-plugin/node_modules/typescript/bin/tsc",
@@ -63,4 +64,4 @@
63
64
  "url": "git+https://github.com/Raxytw/dsh-instagram-scroll.git"
64
65
  },
65
66
  "private": false
66
- }
67
+ }