hunter-mate 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/LICENSE +21 -0
  2. package/dist/assets/extension/background/service-worker.js +113 -24
  3. package/dist/assets/extension/content/index.js +239 -134
  4. package/dist/assets/extension/manifest.json +2 -4
  5. package/dist/assets/extension/sidepanel/index.js +76 -2
  6. package/dist/assets/server/app.module.js +4 -2
  7. package/dist/assets/server/app.module.js.map +1 -1
  8. package/dist/assets/server/build-info.json +1 -1
  9. package/dist/assets/server/db/sqlite.module.js +4 -0
  10. package/dist/assets/server/db/sqlite.module.js.map +1 -1
  11. package/dist/assets/server/devops/devops-sink-init.d.ts +14 -1
  12. package/dist/assets/server/devops/devops-sink-init.js +8 -3
  13. package/dist/assets/server/devops/devops-sink-init.js.map +1 -1
  14. package/dist/assets/server/doctor/doctor.controller.d.ts +13 -0
  15. package/dist/assets/server/doctor/doctor.controller.js +62 -0
  16. package/dist/assets/server/doctor/doctor.controller.js.map +1 -0
  17. package/dist/assets/server/doctor/doctor.module.d.ts +2 -0
  18. package/dist/assets/server/doctor/doctor.module.js +27 -0
  19. package/dist/assets/server/doctor/doctor.module.js.map +1 -0
  20. package/dist/assets/server/doctor/doctor.service.d.ts +15 -0
  21. package/dist/assets/server/doctor/doctor.service.js +209 -0
  22. package/dist/assets/server/doctor/doctor.service.js.map +1 -0
  23. package/dist/assets/server/doctor/doctor.types.d.ts +46 -0
  24. package/dist/assets/server/doctor/doctor.types.js +3 -0
  25. package/dist/assets/server/doctor/doctor.types.js.map +1 -0
  26. package/dist/assets/server/extraction/adapter.service.d.ts +18 -4
  27. package/dist/assets/server/extraction/adapter.service.js +129 -15
  28. package/dist/assets/server/extraction/adapter.service.js.map +1 -1
  29. package/dist/assets/server/extraction/anomaly-report.service.d.ts +12 -0
  30. package/dist/assets/server/extraction/anomaly-report.service.js +81 -0
  31. package/dist/assets/server/extraction/anomaly-report.service.js.map +1 -0
  32. package/dist/assets/server/extraction/entities/adapter-rule.entity.d.ts +13 -0
  33. package/dist/assets/server/extraction/entities/adapter-rule.entity.js +71 -0
  34. package/dist/assets/server/extraction/entities/adapter-rule.entity.js.map +1 -0
  35. package/dist/assets/server/extraction/entities/parse-log.entity.d.ts +4 -1
  36. package/dist/assets/server/extraction/entities/parse-log.entity.js +15 -0
  37. package/dist/assets/server/extraction/entities/parse-log.entity.js.map +1 -1
  38. package/dist/assets/server/extraction/extraction-entity.controller.d.ts +40 -2
  39. package/dist/assets/server/extraction/extraction-entity.controller.js +196 -13
  40. package/dist/assets/server/extraction/extraction-entity.controller.js.map +1 -1
  41. package/dist/assets/server/extraction/extraction-rule.service.js +16 -8
  42. package/dist/assets/server/extraction/extraction-rule.service.js.map +1 -1
  43. package/dist/assets/server/extraction/extraction.module.js +12 -2
  44. package/dist/assets/server/extraction/extraction.module.js.map +1 -1
  45. package/dist/assets/server/extraction/extraction.service.d.ts +17 -1
  46. package/dist/assets/server/extraction/extraction.service.js +125 -42
  47. package/dist/assets/server/extraction/extraction.service.js.map +1 -1
  48. package/dist/assets/server/extraction/linkedin-extractor.d.ts +1 -0
  49. package/dist/assets/server/extraction/linkedin-extractor.js +244 -0
  50. package/dist/assets/server/extraction/linkedin-extractor.js.map +1 -0
  51. package/dist/assets/server/extraction/rrweb-snapshot.utils.d.ts +15 -0
  52. package/dist/assets/server/extraction/rrweb-snapshot.utils.js +48 -0
  53. package/dist/assets/server/extraction/rrweb-snapshot.utils.js.map +1 -0
  54. package/dist/assets/server/extraction/rrweb-snapshot.utils.spec.d.ts +1 -0
  55. package/dist/assets/server/extraction/rrweb-snapshot.utils.spec.js +60 -0
  56. package/dist/assets/server/extraction/rrweb-snapshot.utils.spec.js.map +1 -0
  57. package/dist/assets/server/extraction/script-rule.d.ts +1 -0
  58. package/dist/assets/server/extraction/script-rule.js +4 -0
  59. package/dist/assets/server/extraction/script-rule.js.map +1 -1
  60. package/dist/assets/server/extraction/snapshot-analysis.service.d.ts +23 -0
  61. package/dist/assets/server/extraction/snapshot-analysis.service.js +147 -0
  62. package/dist/assets/server/extraction/snapshot-analysis.service.js.map +1 -0
  63. package/dist/assets/server/recording/entities/recording-snapshot.entity.d.ts +16 -0
  64. package/dist/assets/server/recording/entities/recording-snapshot.entity.js +91 -0
  65. package/dist/assets/server/recording/entities/recording-snapshot.entity.js.map +1 -0
  66. package/dist/assets/server/recording/recording-event-bus.service.d.ts +4 -0
  67. package/dist/assets/server/recording/recording-event-bus.service.js +25 -0
  68. package/dist/assets/server/recording/recording-event-bus.service.js.map +1 -0
  69. package/dist/assets/server/recording/recording-snapshot.service.d.ts +13 -0
  70. package/dist/assets/server/recording/recording-snapshot.service.js +81 -0
  71. package/dist/assets/server/recording/recording-snapshot.service.js.map +1 -0
  72. package/dist/assets/server/recording/recording-snapshot.service.spec.d.ts +1 -0
  73. package/dist/assets/server/recording/recording-snapshot.service.spec.js +65 -0
  74. package/dist/assets/server/recording/recording-snapshot.service.spec.js.map +1 -0
  75. package/dist/assets/server/recording/recording.controller.d.ts +3 -1
  76. package/dist/assets/server/recording/recording.controller.js +7 -3
  77. package/dist/assets/server/recording/recording.controller.js.map +1 -1
  78. package/dist/assets/server/recording/recording.module.js +11 -4
  79. package/dist/assets/server/recording/recording.module.js.map +1 -1
  80. package/dist/assets/server/recording/recording.service.d.ts +5 -21
  81. package/dist/assets/server/recording/recording.service.js +22 -9
  82. package/dist/assets/server/recording/recording.service.js.map +1 -1
  83. package/dist/assets/server/site/entities/site-registry.entity.d.ts +2 -0
  84. package/dist/assets/server/site/entities/site-registry.entity.js +10 -0
  85. package/dist/assets/server/site/entities/site-registry.entity.js.map +1 -1
  86. package/dist/assets/server/site/site.controller.d.ts +2 -0
  87. package/dist/assets/server/site/site.controller.js +1 -1
  88. package/dist/assets/server/site/site.controller.js.map +1 -1
  89. package/dist/assets/server/site/site.service.d.ts +2 -1
  90. package/dist/assets/server/site/site.service.js +10 -3
  91. package/dist/assets/server/site/site.service.js.map +1 -1
  92. package/dist/auto-doctor.d.ts +8 -0
  93. package/dist/auto-doctor.js +34 -0
  94. package/dist/commands/doctor.d.ts +43 -0
  95. package/dist/commands/doctor.js +179 -7
  96. package/dist/commands/extension.js +2 -2
  97. package/dist/commands/extras.d.ts +1 -1
  98. package/dist/commands/extras.js +4 -3
  99. package/dist/commands/install.js +11 -8
  100. package/dist/index.js +7 -0
  101. package/dist/native-check.js +8 -1
  102. package/dist/updater.d.ts +9 -5
  103. package/dist/updater.js +75 -9
  104. package/package.json +3 -3
@@ -13,11 +13,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ExtractionService = void 0;
16
+ exports.etldPlus1 = etldPlus1;
17
+ exports.normalizeUrlForDedup = normalizeUrlForDedup;
16
18
  const common_1 = require("@nestjs/common");
17
19
  const typeorm_1 = require("@nestjs/typeorm");
18
20
  const typeorm_2 = require("typeorm");
19
21
  const cheerio_1 = require("cheerio");
20
22
  const recording_event_entity_1 = require("../recording/entities/recording-event.entity");
23
+ const recording_snapshot_entity_1 = require("../recording/entities/recording-snapshot.entity");
21
24
  const extraction_rule_service_1 = require("./extraction-rule.service");
22
25
  const parse_log_entity_1 = require("./entities/parse-log.entity");
23
26
  const talent_profile_entity_1 = require("./entities/talent-profile.entity");
@@ -25,42 +28,15 @@ const job_posting_entity_1 = require("./entities/job-posting.entity");
25
28
  const company_profile_entity_1 = require("./entities/company-profile.entity");
26
29
  const structured_data_1 = require("./structured-data");
27
30
  const script_rule_1 = require("./script-rule");
28
- function nodeToHtml(node) {
29
- if (!node)
30
- return '';
31
- switch (node.type) {
32
- case 0:
33
- return (node.childNodes || []).map(nodeToHtml).join('');
34
- case 1:
35
- return `<!DOCTYPE ${node.name || 'html'}>`;
36
- case 2: {
37
- if (!node.tagName)
38
- return '';
39
- const attrs = Object.entries(node.attributes || {})
40
- .map(([k, v]) => `${k}="${String(v).replace(/"/g, '&quot;')}"`)
41
- .join(' ');
42
- const open = attrs ? `<${node.tagName} ${attrs}>` : `<${node.tagName}>`;
43
- const voidTags = new Set(['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr']);
44
- if (voidTags.has(node.tagName.toLowerCase()))
45
- return open;
46
- const children = (node.childNodes || []).map(nodeToHtml).join('');
47
- return `${open}${children}</${node.tagName}>`;
48
- }
49
- case 3:
50
- return node.textContent ?? node.data ?? '';
51
- case 5:
52
- return `<!--${node.data || ''}-->`;
53
- default:
54
- return '';
55
- }
56
- }
31
+ const rrweb_snapshot_utils_1 = require("./rrweb-snapshot.utils");
57
32
  function extractSnapshotHtml(events) {
58
- for (const event of events) {
33
+ for (let i = events.length - 1; i >= 0; i--) {
34
+ const event = events[i];
59
35
  if (event.eventType !== 'rrweb')
60
36
  continue;
61
37
  const payload = event.payload;
62
- if (payload?.type === 2 && payload.data?.node) {
63
- return nodeToHtml(payload.data.node);
38
+ if ((0, rrweb_snapshot_utils_1.isFullSnapshot)(payload)) {
39
+ return (0, rrweb_snapshot_utils_1.nodeToHtml)(payload.data.node);
64
40
  }
65
41
  }
66
42
  return null;
@@ -108,7 +84,14 @@ function etldPlus1(hostname) {
108
84
  function normalizeUrlForDedup(url) {
109
85
  try {
110
86
  const u = new URL(url);
111
- return `${u.hostname.toLowerCase()}${u.pathname.replace(/\/+$/, '')}${u.hash}`;
87
+ const host = u.hostname.toLowerCase();
88
+ let pathname = u.pathname.replace(/\/+$/, '') || '/';
89
+ if (host === 'linkedin.com' || host.endsWith('.linkedin.com')) {
90
+ const profileMatch = pathname.match(/^(\/in\/[^/]+)(?:\/details\/[^/]+)?(?:\/.*)?$/);
91
+ if (profileMatch)
92
+ pathname = profileMatch[1];
93
+ }
94
+ return `${host}${pathname}${u.hash}`;
112
95
  }
113
96
  catch {
114
97
  return url;
@@ -119,12 +102,14 @@ let ExtractionService = class ExtractionService {
119
102
  talentRepo;
120
103
  jobRepo;
121
104
  companyRepo;
105
+ snapshotRepo;
122
106
  ruleService;
123
- constructor(parseLogRepo, talentRepo, jobRepo, companyRepo, ruleService) {
107
+ constructor(parseLogRepo, talentRepo, jobRepo, companyRepo, snapshotRepo, ruleService) {
124
108
  this.parseLogRepo = parseLogRepo;
125
109
  this.talentRepo = talentRepo;
126
110
  this.jobRepo = jobRepo;
127
111
  this.companyRepo = companyRepo;
112
+ this.snapshotRepo = snapshotRepo;
128
113
  this.ruleService = ruleService;
129
114
  }
130
115
  applyRules(events, rules) {
@@ -154,15 +139,38 @@ let ExtractionService = class ExtractionService {
154
139
  extracted,
155
140
  };
156
141
  }
157
- async parseSession(sessionId) {
142
+ async getLatestSnapshotHtml(sessionId) {
143
+ const snapshot = await this.snapshotRepo.findOne({
144
+ where: { sessionId },
145
+ order: { snapshotTimestamp: 'DESC', id: 'DESC' },
146
+ });
147
+ if (snapshot) {
148
+ return { html: snapshot.html, sourceUrl: snapshot.sourceUrl || '', snapshotId: snapshot.id };
149
+ }
158
150
  const eventRepo = this.parseLogRepo.manager.getRepository(recording_event_entity_1.RecordingEvent);
159
151
  const events = await eventRepo.find({ where: { sessionId }, order: { createdAt: 'ASC' } });
160
- const sourceUrl = events.find((e) => e.sourceUrl)?.sourceUrl || null;
161
152
  const html = extractSnapshotHtml(events);
153
+ const sourceUrl = events.find((e) => e.sourceUrl)?.sourceUrl || '';
154
+ if (!html)
155
+ return null;
156
+ return { html, sourceUrl };
157
+ }
158
+ async parseSession(sessionId) {
159
+ const snapshotData = await this.getLatestSnapshotHtml(sessionId);
160
+ const sourceUrl = snapshotData?.sourceUrl || '';
161
+ const html = snapshotData?.html || null;
162
162
  const domain = sourceUrl ? etldPlus1(new URL(sourceUrl).hostname) : '';
163
163
  const result = { sessionId, sourceUrl, domain };
164
164
  if (!sourceUrl || !html) {
165
- await this.writeParseLog({ sessionId, sourceUrl: sourceUrl || '', domain, pageClass: 'unknown', status: 'no-snapshot', hasSnapshot: false });
165
+ await this.writeParseLog({
166
+ sessionId,
167
+ sourceUrl,
168
+ domain,
169
+ pageClass: 'unknown',
170
+ status: 'no-snapshot',
171
+ hasSnapshot: false,
172
+ snapshotId: snapshotData?.snapshotId ?? null,
173
+ });
166
174
  return { ...result, status: 'no-snapshot', message: 'Missing sourceUrl or rrweb full snapshot.' };
167
175
  }
168
176
  const jsonld = (0, structured_data_1.extractJsonLd)(html);
@@ -186,16 +194,20 @@ let ExtractionService = class ExtractionService {
186
194
  const pageClass = matched.find((r) => r.entityType)?.entityType ||
187
195
  (jsonld ? (0, structured_data_1.pageClassFromJsonLdTypes)(jsonld.types) : null) ||
188
196
  'unknown';
189
- const entityId = await this.upsertEntity(pageClass, domain, sourceUrl, merged, matched, sessionId);
190
- const status = entityId ? 'ok' : matched.length || jsonld ? 'empty' : 'no-rule';
197
+ const entity = await this.incrementalUpsertEntity(pageClass, domain, sourceUrl, merged, matched, sessionId);
198
+ const status = entity ? 'ok' : matched.length || jsonld ? 'empty' : 'no-rule';
191
199
  await this.writeParseLog({
192
- sessionId, sourceUrl, domain, pageClass,
200
+ sessionId,
201
+ sourceUrl,
202
+ domain,
203
+ pageClass,
193
204
  status,
194
205
  hasSnapshot: true,
206
+ snapshotId: snapshotData?.snapshotId ?? null,
195
207
  matchedRuleIds: matched.map((r) => r.ruleId),
196
208
  extractedFields: Object.fromEntries(Object.entries(merged).filter(([, v]) => v != null)),
197
209
  missingFields: Object.entries(merged).filter(([, v]) => v == null).map(([k]) => k),
198
- entityId: entityId?.id ?? null,
210
+ entityId: entity?.id ?? null,
199
211
  });
200
212
  return {
201
213
  ...result,
@@ -204,9 +216,74 @@ let ExtractionService = class ExtractionService {
204
216
  matchedRules: matched.map((r) => ({ ruleId: r.ruleId, version: r.version })),
205
217
  jsonLdTypes: jsonld?.types || [],
206
218
  extracted: merged,
207
- entity: entityId,
219
+ entity,
208
220
  };
209
221
  }
222
+ async incrementalUpsertEntity(pageClass, domain, sourceUrl, extracted, matched, sessionId, ruleVersionFallback = 'jsonld') {
223
+ const dedupKey = `${domain}:${normalizeUrlForDedup(sourceUrl)}`;
224
+ const ruleVersion = matched[0]?.version || ruleVersionFallback;
225
+ const adapterVersion = ruleVersion;
226
+ if (pageClass === 'talent') {
227
+ const name = extracted.name || extracted['og:title'] || null;
228
+ if (!name)
229
+ return null;
230
+ const existing = await this.talentRepo.findOne({ where: { dedupKey } });
231
+ const entity = existing || this.talentRepo.create({ source: domain, sourceUrl, dedupKey });
232
+ entity.name = name;
233
+ entity.headline = this.mergeField(entity.headline, extracted.headline || extracted.jobTitle || extracted.description || null);
234
+ entity.raw = { extracted, ruleVersion };
235
+ entity.extracted = this.mergeExtracted(entity.extracted || {}, extracted);
236
+ entity.ruleVersion = ruleVersion;
237
+ entity.sessionId = sessionId;
238
+ const saved = await this.talentRepo.save(entity);
239
+ return { id: saved.id, type: 'talent', isNew: !existing };
240
+ }
241
+ if (pageClass === 'job') {
242
+ const title = extracted.title || extracted.jobTitle || extracted.name || null;
243
+ if (!title)
244
+ return null;
245
+ const existing = await this.jobRepo.findOne({ where: { dedupKey } });
246
+ const entity = existing || this.jobRepo.create({ source: domain, sourceUrl, dedupKey });
247
+ entity.title = title;
248
+ entity.company = this.mergeField(entity.company, extracted.company || extracted.hiringOrganization || extracted['hiringOrganization.name'] || null);
249
+ entity.raw = { extracted, ruleVersion };
250
+ entity.extracted = this.mergeExtracted(entity.extracted || {}, extracted);
251
+ entity.ruleVersion = ruleVersion;
252
+ entity.sessionId = sessionId;
253
+ const saved = await this.jobRepo.save(entity);
254
+ return { id: saved.id, type: 'job', isNew: !existing };
255
+ }
256
+ if (pageClass === 'company') {
257
+ const name = extracted.name || extracted.legalName || extracted['og:title'] || null;
258
+ if (!name)
259
+ return null;
260
+ const existing = await this.companyRepo.findOne({ where: { dedupKey } });
261
+ const entity = existing || this.companyRepo.create({ source: domain, sourceUrl, dedupKey });
262
+ entity.name = name;
263
+ entity.raw = { extracted, ruleVersion };
264
+ entity.extracted = this.mergeExtracted(entity.extracted || {}, extracted);
265
+ entity.ruleVersion = ruleVersion;
266
+ entity.sessionId = sessionId;
267
+ const saved = await this.companyRepo.save(entity);
268
+ return { id: saved.id, type: 'company', isNew: !existing };
269
+ }
270
+ return null;
271
+ }
272
+ mergeField(existing, incoming) {
273
+ return incoming != null ? incoming : existing ?? null;
274
+ }
275
+ mergeExtracted(existing, incoming) {
276
+ const merged = { ...existing };
277
+ for (const [k, v] of Object.entries(incoming)) {
278
+ if (v != null) {
279
+ merged[k] = v;
280
+ }
281
+ else if (!(k in merged)) {
282
+ merged[k] = null;
283
+ }
284
+ }
285
+ return merged;
286
+ }
210
287
  async upsertEntity(pageClass, domain, sourceUrl, extracted, matched, sessionId, ruleVersionFallback = 'jsonld') {
211
288
  const dedupKey = `${domain}:${normalizeUrlForDedup(sourceUrl)}`;
212
289
  const ruleVersion = matched[0]?.version || ruleVersionFallback;
@@ -288,6 +365,10 @@ let ExtractionService = class ExtractionService {
288
365
  missingFields: entry.missingFields || [],
289
366
  hasSnapshot: entry.hasSnapshot ?? false,
290
367
  entityId: entry.entityId ?? null,
368
+ snapshotId: entry.snapshotId ?? null,
369
+ adapterVersion: entry.adapterVersion || undefined,
370
+ anomalyScore: entry.anomalyScore ?? null,
371
+ reportedAt: entry.reportedAt ?? null,
291
372
  ...entry,
292
373
  }));
293
374
  }
@@ -338,10 +419,12 @@ exports.ExtractionService = ExtractionService = __decorate([
338
419
  __param(1, (0, typeorm_1.InjectRepository)(talent_profile_entity_1.TalentProfile)),
339
420
  __param(2, (0, typeorm_1.InjectRepository)(job_posting_entity_1.JobPosting)),
340
421
  __param(3, (0, typeorm_1.InjectRepository)(company_profile_entity_1.CompanyProfile)),
422
+ __param(4, (0, typeorm_1.InjectRepository)(recording_snapshot_entity_1.RecordingSnapshot)),
341
423
  __metadata("design:paramtypes", [typeorm_2.Repository,
342
424
  typeorm_2.Repository,
343
425
  typeorm_2.Repository,
344
426
  typeorm_2.Repository,
427
+ typeorm_2.Repository,
345
428
  extraction_rule_service_1.ExtractionRuleService])
346
429
  ], ExtractionService);
347
430
  //# sourceMappingURL=extraction.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extraction.service.js","sourceRoot":"","sources":["../../src/extraction/extraction.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,qCAA+B;AAC/B,yFAA8E;AAE9E,uEAAkE;AAClE,kEAAuD;AACvD,4EAAiE;AACjE,sEAA2D;AAC3D,8EAAmE;AACnE,uDAA8F;AAC9F,+CAAmE;AAenE,SAAS,UAAU,CAAC,IAAkB;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC;YACJ,OAAO,aAAa,IAAI,CAAC,IAAI,IAAI,MAAM,GAAG,CAAC;QAC7C,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;iBAChD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC;iBAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC;YACxE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1I,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC1D,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,OAAO,GAAG,IAAI,GAAG,QAAQ,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC;QAChD,CAAC;QACD,KAAK,CAAC;YACJ,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7C,KAAK,CAAC;YACJ,OAAO,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC;QACrC;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAwB;IACnD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO;YAAE,SAAS;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAc,CAAC;QAErC,IAAI,OAAO,EAAE,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAC9C,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,IAAoB,EAAE,GAAW;IAClD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAY,EAAE,IAAY;IACnD,MAAM,CAAC,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,CAAC;IACrB,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,EAAE,GAAG,CAAC,CAAC,QAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACrF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,OAAY,EAAE,IAAY;IAChD,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAGD,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAGT;IAEA;IAEA;IAEA;IACA;IATnB,YAEmB,YAAkC,EAElC,UAAqC,EAErC,OAA+B,EAE/B,WAAuC,EACvC,WAAkC;QAPlC,iBAAY,GAAZ,YAAY,CAAsB;QAElC,eAAU,GAAV,UAAU,CAA2B;QAErC,YAAO,GAAP,OAAO,CAAwB;QAE/B,gBAAW,GAAX,WAAW,CAA4B;QACvC,gBAAW,GAAX,WAAW,CAAuB;IAClD,CAAC;IAGJ,UAAU,CAAC,MAAwB,EAAE,KAAuB;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC;QACrE,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;QACnH,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,gBAAgB,CAAC,SAAiB,EAAE,IAAY,EAAE,KAAuB;QACvE,MAAM,OAAO,GAAG,KAAK;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,SAAS,GAAwB,EAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU;gBAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;iBACjG,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;gBAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;iBAChG,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAA,6BAAe,EAAC,IAAI,EAAE,IAAI,CAAC,WAA2C,CAAC,CAAC,CAAC;QACzI,CAAC;QACD,OAAO;YACL,SAAS;YACT,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,SAAS;SACV,CAAC;IACJ,CAAC;IAOD,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,SAAS,GAAI,IAAI,CAAC,YAAY,CAAC,OAAe,CAAC,aAAa,CAAC,uCAAc,CAAC,CAAC;QACnF,MAAM,MAAM,GAAqB,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7G,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC;QACrE,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,MAAM,MAAM,GAAwB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QACrE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7I,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;QACpG,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,+BAAa,EAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,IAAA,kCAAgB,EAAC,IAAI,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAGlH,MAAM,aAAa,GAAwB,EAAE,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU;gBAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;iBACrG,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;gBAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;iBACpG,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAA,6BAAe,EAAC,IAAI,EAAE,IAAI,CAAC,WAA2C,CAAC,CAAC,CAAC;QAC7I,CAAC;QAGD,MAAM,MAAM,GAAwB,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,EAAE,CAAC;QACzF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAChF,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QAGD,MAAM,SAAS,GACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU;YAC7C,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,0CAAwB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxD,SAAS,CAAC;QAGZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACnG,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;YACvC,MAAM;YACN,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5C,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YACxF,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClF,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,IAAI;SAC/B,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,MAAM;YACT,MAAM;YACN,SAAS;YACT,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;YAChC,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAGO,KAAK,CAAC,YAAY,CACxB,SAAiB,EACjB,MAAc,EACd,SAAiB,EACjB,SAA8B,EAC9B,OAAyB,EACzB,SAAiB,EACjB,mBAAmB,GAAG,QAAQ;QAE9B,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,mBAAmB,CAAC;QAC/D,MAAM,GAAG,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QAEvC,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;YAC7D,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3F,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC;YAC5F,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACjB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;YACjC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5D,CAAC;QACD,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC;YAC9E,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxF,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,kBAAkB,IAAI,SAAS,CAAC,yBAAyB,CAAC,IAAI,IAAI,CAAC;YACnH,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACjB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;YACjC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;YACpF,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5F,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACjB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;YACjC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClD,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,KAAK,CAAC,iBAAiB,CACrB,SAAiB,EACjB,SAAiB,EACjB,MAA2B;QAE3B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QACnE,MAAM,SAAS,GACb,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,SAAS,GAAwB,EAAE,GAAG,MAAM,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CACnC,SAAS,EACT,MAAM,EACN,SAAS,EACT,SAAS,EACT,EAAE,EACF,SAAS,EACT,SAAS,CACV,CAAC;QACF,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,SAAS;YACT,SAAS,EAAE,SAAS;YACpB,MAAM;YACN,SAAS;YACT,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;YAC9B,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CACvD;YACD,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI;SAC5B,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAA4E;QACtG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,SAAS;YACvC,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE;YAC1C,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;YAC5C,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE;YACxC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK;YACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;YAChC,GAAG,KAAK;SACT,CAAC,CACH,CAAC;IACJ,CAAC;IAMD,WAAW,CAAC,SAAiB,EAAE,MAAwB;QACrD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC;QACrE,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAA,+BAAa,EAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,IAAA,kCAAgB,EAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,0CAAwB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzE,MAAM,KAAK,GAAwB;YACjC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,SAAS,IAAI,MAAM,OAAO;YACvF,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG;YACxD,iBAAiB,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YAC9D,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;YAExB,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;YAC5B,KAAK,CAAC,WAAW,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,GAAG,qDAAqD,CAAC;YACnE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YAEN,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC1B,KAAK,CAAC,WAAW,GAAG;gBAClB,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACxB,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC5B,WAAW,EAAE,EAAE,QAAQ,EAAE,0BAA0B,EAAE,IAAI,EAAE,SAAS,EAAE;iBACvE;aACF,CAAC;YACF,KAAK,CAAC,IAAI,GAAG,yDAAyD,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AA5QY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,2BAAQ,CAAC,CAAA;IAE1B,WAAA,IAAA,0BAAgB,EAAC,qCAAa,CAAC,CAAA;IAE/B,WAAA,IAAA,0BAAgB,EAAC,+BAAU,CAAC,CAAA;IAE5B,WAAA,IAAA,0BAAgB,EAAC,uCAAc,CAAC,CAAA;qCALF,oBAAU;QAEZ,oBAAU;QAEb,oBAAU;QAEN,oBAAU;QACV,+CAAqB;GAV1C,iBAAiB,CA4Q7B"}
1
+ {"version":3,"file":"extraction.service.js","sourceRoot":"","sources":["../../src/extraction/extraction.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function extractLinkedInProfile(html: string): Record<string, any>;
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractLinkedInProfile = extractLinkedInProfile;
4
+ const cheerio_1 = require("cheerio");
5
+ const SECTION_KEYWORDS = new Set([
6
+ 'About', 'Experience', 'Education', 'Skills', 'Projects', 'Featured', 'Activity',
7
+ 'People you may know', 'You might like', 'Ad Options', 'Don’t want to see this',
8
+ 'Explore Premium profiles', 'People who follow',
9
+ ]);
10
+ function isSectionLike(text) {
11
+ const t = text.trim();
12
+ if (!t)
13
+ return true;
14
+ for (const kw of SECTION_KEYWORDS) {
15
+ if (t.includes(kw))
16
+ return true;
17
+ }
18
+ return false;
19
+ }
20
+ const NON_NAME_KEYWORDS = /notifications|messages|jobs|network|home|search/i;
21
+ function looksLikeName(text) {
22
+ const t = text.trim();
23
+ return (t.length > 0 &&
24
+ t.length <= 80 &&
25
+ !isSectionLike(t) &&
26
+ !NON_NAME_KEYWORDS.test(t));
27
+ }
28
+ function isPunctuationOnly(text) {
29
+ return /^[^\p{L}\p{N}]*$/u.test(text.trim());
30
+ }
31
+ function looksLikeLocation(text) {
32
+ const t = text.trim();
33
+ const parts = t.split(',').map((s) => s.trim()).filter(Boolean);
34
+ if (parts.length === 0 || parts.length > 3)
35
+ return false;
36
+ return parts.every((p) => /^[A-Za-zÀ-ſ\s'-]{2,40}$/.test(p) && !/\d/.test(p));
37
+ }
38
+ function looksLikeUrl(text) {
39
+ return /^https?:\/\//.test(text.trim());
40
+ }
41
+ function looksLikeFollowers(text) {
42
+ const t = text.trim();
43
+ return /followers|connections/i.test(t) || /^[\d,]+\+?\s*$/.test(t);
44
+ }
45
+ function looksLikeExperienceLocation(text) {
46
+ const t = text.trim();
47
+ if (t.length > 60)
48
+ return false;
49
+ if (/\b(Area|Region|City|Metropolitan)\b/i.test(t))
50
+ return true;
51
+ if (/^[A-Z][a-z]+(?:\s+[A-Z][a-z]+){0,5}(?:\s+(Area|Region|City|Metropolitan))?$/i.test(t))
52
+ return true;
53
+ return false;
54
+ }
55
+ function looksLikeDateRange(text) {
56
+ const t = text.trim();
57
+ const hasYear = /\b(19|20)\d{2}\b/.test(t);
58
+ const hasMonthOrPresent = /\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|Present|present|至今)\b/.test(t);
59
+ const yearRange = /\b(19|20)\d{2}\b\s*[-–—]\s*\b(19|20)\d{2}\b/.test(t);
60
+ return hasYear && (hasMonthOrPresent || yearRange);
61
+ }
62
+ function firstText($, container) {
63
+ return $(container).text().replace(/\s+/g, ' ').trim();
64
+ }
65
+ function extractLinkedInProfile(html) {
66
+ const $ = (0, cheerio_1.load)(html);
67
+ const out = {};
68
+ const h2s = $('h2');
69
+ let name = null;
70
+ let nameEl = null;
71
+ h2s.each((_i, el) => {
72
+ if (name)
73
+ return;
74
+ const $el = $(el);
75
+ const cls = $el.attr('class') || '';
76
+ const parentCls = $el.parent().attr('class') || '';
77
+ const t = $el.text().replace(/\s+/g, ' ').trim().replace(/\s*\|\s*$/, '');
78
+ if (looksLikeName(t) &&
79
+ (cls.includes('_1f667e81') || parentCls.includes('a8841267'))) {
80
+ name = t;
81
+ nameEl = $el;
82
+ }
83
+ });
84
+ if (!name) {
85
+ h2s.each((_i, el) => {
86
+ if (name)
87
+ return;
88
+ const t = $(el).text().replace(/\s+/g, ' ').trim().replace(/\s*\|\s*$/, '');
89
+ if (looksLikeName(t)) {
90
+ name = t;
91
+ nameEl = $(el);
92
+ }
93
+ });
94
+ }
95
+ if (name)
96
+ out.name = name;
97
+ const topCard = nameEl
98
+ ? nameEl.closest('section').first()
99
+ : h2s.first().closest('section').first();
100
+ const topTexts = [];
101
+ topCard.find('p').each((_i, el) => {
102
+ const t = $(el).text().replace(/\s+/g, ' ').trim();
103
+ if (t && !topTexts.includes(t))
104
+ topTexts.push(t);
105
+ });
106
+ const meaningfulTop = topTexts.filter((t) => !/^·\s*\d+(?:rd|th|nd|st)?$/.test(t));
107
+ if (meaningfulTop[0] && !isSectionLike(meaningfulTop[0])) {
108
+ out.headline = meaningfulTop[0];
109
+ }
110
+ if (meaningfulTop[1] && !isSectionLike(meaningfulTop[1]) && !isPunctuationOnly(meaningfulTop[1])) {
111
+ out.currentCompany = meaningfulTop[1];
112
+ }
113
+ for (let i = 0; i < meaningfulTop.length; i++) {
114
+ const t = meaningfulTop[i];
115
+ if (t === out.headline || t === out.currentCompany)
116
+ continue;
117
+ if (!out.location && looksLikeLocation(t))
118
+ out.location = t;
119
+ if (looksLikeUrl(t))
120
+ out.website = t;
121
+ if (looksLikeFollowers(t)) {
122
+ const next = meaningfulTop[i + 1];
123
+ out.followers = next && /connections|followers/i.test(next) ? `${t} ${next}` : t;
124
+ if (next && /connections|followers/i.test(next))
125
+ i++;
126
+ }
127
+ }
128
+ const aboutH2 = h2s.filter((_i, el) => $(el).text().includes('About')).first();
129
+ if (aboutH2.length) {
130
+ let cursor = aboutH2.parent().next();
131
+ const summaryParts = [];
132
+ for (let i = 0; i < 6 && cursor.length; i++) {
133
+ const tag = cursor.prop('tagName')?.toLowerCase();
134
+ if (tag === 'h2')
135
+ break;
136
+ const t = firstText($, cursor);
137
+ if (t.length > 20 && !isSectionLike(t))
138
+ summaryParts.push(t);
139
+ cursor = cursor.next();
140
+ }
141
+ if (summaryParts.length)
142
+ out.summary = summaryParts.join(' ');
143
+ }
144
+ const expH2 = h2s.filter((_i, el) => $(el).text().includes('Experience')).first();
145
+ if (expH2.length) {
146
+ const section = expH2.closest('section').first();
147
+ const pTexts = [];
148
+ section.find('p').each((_i, el) => {
149
+ const t = firstText($, el);
150
+ if (t && !isSectionLike(t))
151
+ pTexts.push(t);
152
+ });
153
+ const experiences = [];
154
+ let lastDateIdx = -1;
155
+ for (let i = 0; i < pTexts.length; i++) {
156
+ if (looksLikeDateRange(pTexts[i])) {
157
+ const item = { duration: pTexts[i] };
158
+ if (pTexts[i - 1])
159
+ item.company = pTexts[i - 1];
160
+ if (pTexts[i - 2])
161
+ item.title = pTexts[i - 2];
162
+ if (experiences.length > 0 && lastDateIdx >= 0) {
163
+ const desc = pTexts.slice(lastDateIdx + 1, i - 2);
164
+ if (desc.length) {
165
+ const first = desc[0];
166
+ if (looksLikeExperienceLocation(first)) {
167
+ experiences[experiences.length - 1].location = first;
168
+ if (desc.length > 1) {
169
+ experiences[experiences.length - 1].description = desc.slice(1).join(' ');
170
+ }
171
+ }
172
+ else {
173
+ experiences[experiences.length - 1].description = desc.join(' ');
174
+ }
175
+ }
176
+ }
177
+ if (Object.keys(item).length > 1)
178
+ experiences.push(item);
179
+ lastDateIdx = i;
180
+ }
181
+ }
182
+ if (experiences.length)
183
+ out.experiences = experiences;
184
+ }
185
+ const eduH2 = h2s.filter((_i, el) => $(el).text().includes('Education')).first();
186
+ if (eduH2.length) {
187
+ const section = eduH2.closest('section').first();
188
+ const pTexts = [];
189
+ section.find('p').each((_i, el) => {
190
+ const t = firstText($, el);
191
+ if (t && !isSectionLike(t))
192
+ pTexts.push(t);
193
+ });
194
+ const education = [];
195
+ let lastDateIdx = -1;
196
+ for (let i = 0; i < pTexts.length; i++) {
197
+ if (looksLikeDateRange(pTexts[i])) {
198
+ const item = { years: pTexts[i] };
199
+ if (pTexts[i - 2]) {
200
+ item.school = pTexts[i - 2];
201
+ item.degree = pTexts[i - 1];
202
+ }
203
+ else if (pTexts[i - 1]) {
204
+ item.school = pTexts[i - 1];
205
+ }
206
+ if (Object.keys(item).length > 1)
207
+ education.push(item);
208
+ lastDateIdx = i;
209
+ }
210
+ }
211
+ if (lastDateIdx >= 0 && lastDateIdx < pTexts.length - 1) {
212
+ const tail = pTexts.slice(lastDateIdx + 1);
213
+ if (tail.length >= 2) {
214
+ education.push({ school: tail[0], degree: tail[1] });
215
+ }
216
+ else if (tail.length === 1) {
217
+ education.push({ school: tail[0] });
218
+ }
219
+ }
220
+ if (education.length)
221
+ out.education = education;
222
+ }
223
+ const skillH2 = h2s.filter((_i, el) => $(el).text().includes('Skills')).first();
224
+ if (skillH2.length) {
225
+ const section = skillH2.closest('section, div').first();
226
+ const skills = new Set();
227
+ section.find('span, button, a, li, div[role="listitem"]').each((_i, el) => {
228
+ const t = firstText($, el);
229
+ if (t &&
230
+ t.length <= 50 &&
231
+ t.length >= 2 &&
232
+ !isSectionLike(t) &&
233
+ !looksLikeDateRange(t) &&
234
+ !looksLikeFollowers(t) &&
235
+ !looksLikeUrl(t)) {
236
+ skills.add(t);
237
+ }
238
+ });
239
+ if (skills.size)
240
+ out.skills = Array.from(skills).slice(0, 50);
241
+ }
242
+ return out;
243
+ }
244
+ //# sourceMappingURL=linkedin-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkedin-extractor.js","sourceRoot":"","sources":["../../src/extraction/linkedin-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface SnapshotNode {
2
+ type: number;
3
+ tagName?: string;
4
+ name?: string;
5
+ publicId?: string;
6
+ systemId?: string;
7
+ textContent?: string;
8
+ data?: string;
9
+ attributes?: Record<string, string>;
10
+ childNodes?: SnapshotNode[];
11
+ }
12
+ export declare function nodeToHtml(node: SnapshotNode): string;
13
+ export declare function isFullSnapshot(payload: Record<string, any> | undefined): boolean;
14
+ export declare function isCheckoutEvent(payload: Record<string, any> | undefined): boolean;
15
+ export declare function snapshotTimestamp(payload: Record<string, any> | undefined): Date | undefined;