@dolusoft/hirebase-mcp 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application/use-cases/add-reference-cv.d.ts +16 -0
- package/dist/application/use-cases/add-reference-cv.js +36 -0
- package/dist/application/use-cases/add-reference-cv.js.map +1 -0
- package/dist/application/use-cases/create-call-batch.d.ts +25 -0
- package/dist/application/use-cases/create-call-batch.js +72 -0
- package/dist/application/use-cases/create-call-batch.js.map +1 -0
- package/dist/application/use-cases/get-call-batch-status.d.ts +19 -0
- package/dist/application/use-cases/get-call-batch-status.js +23 -0
- package/dist/application/use-cases/get-call-batch-status.js.map +1 -0
- package/dist/application/use-cases/list-reference-cvs.d.ts +17 -0
- package/dist/application/use-cases/list-reference-cvs.js +21 -0
- package/dist/application/use-cases/list-reference-cvs.js.map +1 -0
- package/dist/application/use-cases/match-candidates.d.ts +6 -1
- package/dist/application/use-cases/match-candidates.js +55 -3
- package/dist/application/use-cases/match-candidates.js.map +1 -1
- package/dist/application/use-cases/remove-reference-cv.d.ts +6 -0
- package/dist/application/use-cases/remove-reference-cv.js +10 -0
- package/dist/application/use-cases/remove-reference-cv.js.map +1 -0
- package/dist/application/use-cases/update-call-outcome.d.ts +19 -0
- package/dist/application/use-cases/update-call-outcome.js +63 -0
- package/dist/application/use-cases/update-call-outcome.js.map +1 -0
- package/dist/domain/entities/application.d.ts +1 -1
- package/dist/domain/entities/call-batch.d.ts +21 -0
- package/dist/domain/entities/call-batch.js +2 -0
- package/dist/domain/entities/call-batch.js.map +1 -0
- package/dist/domain/entities/index.d.ts +2 -0
- package/dist/domain/entities/reference-cv.d.ts +8 -0
- package/dist/domain/entities/reference-cv.js +2 -0
- package/dist/domain/entities/reference-cv.js.map +1 -0
- package/dist/domain/repositories/call-batch-repository.d.ts +17 -0
- package/dist/domain/repositories/call-batch-repository.js +2 -0
- package/dist/domain/repositories/call-batch-repository.js.map +1 -0
- package/dist/domain/repositories/index.d.ts +2 -0
- package/dist/domain/repositories/reference-cv-repository.d.ts +8 -0
- package/dist/domain/repositories/reference-cv-repository.js +2 -0
- package/dist/domain/repositories/reference-cv-repository.js.map +1 -0
- package/dist/infrastructure/persistence/database.d.ts +6 -0
- package/dist/infrastructure/persistence/database.js +46 -0
- package/dist/infrastructure/persistence/database.js.map +1 -1
- package/dist/infrastructure/persistence/lancedb-call-batch-repository.d.ts +33 -0
- package/dist/infrastructure/persistence/lancedb-call-batch-repository.js +216 -0
- package/dist/infrastructure/persistence/lancedb-call-batch-repository.js.map +1 -0
- package/dist/infrastructure/persistence/lancedb-reference-cv-repository.d.ts +17 -0
- package/dist/infrastructure/persistence/lancedb-reference-cv-repository.js +97 -0
- package/dist/infrastructure/persistence/lancedb-reference-cv-repository.js.map +1 -0
- package/dist/interface/dashboard/public/200.html +1 -1
- package/dist/interface/dashboard/public/404.html +1 -1
- package/dist/interface/dashboard/public/_nuxt/builds/latest.json +1 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/269a33f3-c36d-4ceb-ae10-e708da6c151c.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/6d598d93-4de0-403a-a158-2c2529504b0f.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/71752c9b-993c-4c33-8131-3ea5f76f183f.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/83d6f570-2c34-4be5-9948-1051c85501d8.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b35b302f-e133-4121-8657-1ff4b7a84dbe.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/cfdbad0b-52a7-4db5-a767-c65e5a0af0b2.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/e2007138-fb12-4dd0-908b-9a9d452bb2a3.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/eac7333a-e06c-4c97-ae42-eeea7caaa1b3.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/fccb7849-b9fa-40e3-919d-c1085fce9db2.json +1 -0
- package/dist/interface/dashboard/public/index.html +1 -1
- package/dist/interface/mcp/server.js +20 -0
- package/dist/interface/mcp/server.js.map +1 -1
- package/dist/interface/mcp/tools/add-pipeline-note.js +1 -3
- package/dist/interface/mcp/tools/add-pipeline-note.js.map +1 -1
- package/dist/interface/mcp/tools/add-reference-cv.d.ts +3 -0
- package/dist/interface/mcp/tools/add-reference-cv.js +28 -0
- package/dist/interface/mcp/tools/add-reference-cv.js.map +1 -0
- package/dist/interface/mcp/tools/create-call-batch.d.ts +3 -0
- package/dist/interface/mcp/tools/create-call-batch.js +30 -0
- package/dist/interface/mcp/tools/create-call-batch.js.map +1 -0
- package/dist/interface/mcp/tools/get-call-batch-status.d.ts +3 -0
- package/dist/interface/mcp/tools/get-call-batch-status.js +22 -0
- package/dist/interface/mcp/tools/get-call-batch-status.js.map +1 -0
- package/dist/interface/mcp/tools/list-reference-cvs.d.ts +3 -0
- package/dist/interface/mcp/tools/list-reference-cvs.js +22 -0
- package/dist/interface/mcp/tools/list-reference-cvs.js.map +1 -0
- package/dist/interface/mcp/tools/match-candidates.js +4 -2
- package/dist/interface/mcp/tools/match-candidates.js.map +1 -1
- package/dist/interface/mcp/tools/remove-reference-cv.d.ts +3 -0
- package/dist/interface/mcp/tools/remove-reference-cv.js +22 -0
- package/dist/interface/mcp/tools/remove-reference-cv.js.map +1 -0
- package/dist/interface/mcp/tools/update-call-outcome.d.ts +3 -0
- package/dist/interface/mcp/tools/update-call-outcome.js +30 -0
- package/dist/interface/mcp/tools/update-call-outcome.js.map +1 -0
- package/dist/interface/mcp/tools/update-pipeline-status.js +1 -16
- package/dist/interface/mcp/tools/update-pipeline-status.js.map +1 -1
- package/dist/interface/mcp/types.d.ts +5 -0
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReferenceCv } from '../entities/reference-cv.js';
|
|
2
|
+
export interface IReferenceCvRepository {
|
|
3
|
+
save(ref: ReferenceCv): Promise<void>;
|
|
4
|
+
findByJobPostingId(jobPostingId: string): Promise<ReferenceCv[]>;
|
|
5
|
+
findByJobAndCandidate(jobPostingId: string, candidateId: string): Promise<ReferenceCv | null>;
|
|
6
|
+
delete(id: string): Promise<void>;
|
|
7
|
+
count(): Promise<number>;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-cv-repository.js","sourceRoot":"","sources":["../../../src/domain/repositories/reference-cv-repository.ts"],"names":[],"mappings":""}
|
|
@@ -8,6 +8,8 @@ export declare function getVersionSeedRow(): Record<string, unknown>[];
|
|
|
8
8
|
export declare function getJobPostingSeedRow(): Record<string, unknown>[];
|
|
9
9
|
export declare function getApplicationSeedRow(): Record<string, unknown>[];
|
|
10
10
|
export declare function getApplicationEventSeedRow(): Record<string, unknown>[];
|
|
11
|
+
export declare function getCallBatchSeedRow(): Record<string, unknown>[];
|
|
12
|
+
export declare function getCallBatchItemSeedRow(): Record<string, unknown>[];
|
|
11
13
|
export declare const TABLE_NAMES: {
|
|
12
14
|
readonly candidates: "candidates";
|
|
13
15
|
readonly chunks: "cv_chunks";
|
|
@@ -15,6 +17,10 @@ export declare const TABLE_NAMES: {
|
|
|
15
17
|
readonly jobPostings: "job_postings";
|
|
16
18
|
readonly applications: "applications";
|
|
17
19
|
readonly applicationEvents: "application_events";
|
|
20
|
+
readonly callBatches: "call_batches";
|
|
21
|
+
readonly callBatchItems: "call_batch_items";
|
|
22
|
+
readonly referenceCvs: "reference_cvs";
|
|
18
23
|
};
|
|
24
|
+
export declare function getReferenceCvSeedRow(): Record<string, unknown>[];
|
|
19
25
|
export declare function getVectorDimension(): number;
|
|
20
26
|
export declare function resetAllTables(db: Connection): Promise<void>;
|
|
@@ -128,6 +128,34 @@ export function getApplicationEventSeedRow() {
|
|
|
128
128
|
},
|
|
129
129
|
];
|
|
130
130
|
}
|
|
131
|
+
export function getCallBatchSeedRow() {
|
|
132
|
+
return [
|
|
133
|
+
{
|
|
134
|
+
id: '__seed__',
|
|
135
|
+
job_posting_id: '',
|
|
136
|
+
sent_to: '',
|
|
137
|
+
note: '',
|
|
138
|
+
created_at: '',
|
|
139
|
+
updated_at: '',
|
|
140
|
+
},
|
|
141
|
+
];
|
|
142
|
+
}
|
|
143
|
+
export function getCallBatchItemSeedRow() {
|
|
144
|
+
return [
|
|
145
|
+
{
|
|
146
|
+
id: '__seed__',
|
|
147
|
+
batch_id: '',
|
|
148
|
+
application_id: '',
|
|
149
|
+
candidate_id: '',
|
|
150
|
+
candidate_name: '',
|
|
151
|
+
phone: '',
|
|
152
|
+
outcome: '',
|
|
153
|
+
note: '',
|
|
154
|
+
created_at: '',
|
|
155
|
+
updated_at: '',
|
|
156
|
+
},
|
|
157
|
+
];
|
|
158
|
+
}
|
|
131
159
|
export const TABLE_NAMES = {
|
|
132
160
|
candidates: 'candidates',
|
|
133
161
|
chunks: 'cv_chunks',
|
|
@@ -135,7 +163,22 @@ export const TABLE_NAMES = {
|
|
|
135
163
|
jobPostings: 'job_postings',
|
|
136
164
|
applications: 'applications',
|
|
137
165
|
applicationEvents: 'application_events',
|
|
166
|
+
callBatches: 'call_batches',
|
|
167
|
+
callBatchItems: 'call_batch_items',
|
|
168
|
+
referenceCvs: 'reference_cvs',
|
|
138
169
|
};
|
|
170
|
+
export function getReferenceCvSeedRow() {
|
|
171
|
+
return [
|
|
172
|
+
{
|
|
173
|
+
id: '__seed__',
|
|
174
|
+
job_posting_id: '',
|
|
175
|
+
candidate_id: '',
|
|
176
|
+
candidate_name: '',
|
|
177
|
+
note: '',
|
|
178
|
+
created_at: '',
|
|
179
|
+
},
|
|
180
|
+
];
|
|
181
|
+
}
|
|
139
182
|
export function getVectorDimension() {
|
|
140
183
|
return vectorDimension;
|
|
141
184
|
}
|
|
@@ -152,5 +195,8 @@ export async function resetAllTables(db) {
|
|
|
152
195
|
await db.createTable(TABLE_NAMES.jobPostings, getJobPostingSeedRow());
|
|
153
196
|
await db.createTable(TABLE_NAMES.applications, getApplicationSeedRow());
|
|
154
197
|
await db.createTable(TABLE_NAMES.applicationEvents, getApplicationEventSeedRow());
|
|
198
|
+
await db.createTable(TABLE_NAMES.callBatches, getCallBatchSeedRow());
|
|
199
|
+
await db.createTable(TABLE_NAMES.callBatchItems, getCallBatchItemSeedRow());
|
|
200
|
+
await db.createTable(TABLE_NAMES.referenceCvs, getReferenceCvSeedRow());
|
|
155
201
|
}
|
|
156
202
|
//# sourceMappingURL=database.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/database.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Connection } from '@lancedb/lancedb';
|
|
2
|
+
import type { ICallBatchRepository, ICallBatchItemRepository } from '../../domain/repositories/call-batch-repository.js';
|
|
3
|
+
import type { CallBatch, CallBatchItem } from '../../domain/entities/call-batch.js';
|
|
4
|
+
export declare class LanceDbCallBatchRepository implements ICallBatchRepository {
|
|
5
|
+
private db;
|
|
6
|
+
private tablePromise;
|
|
7
|
+
constructor(db: Connection);
|
|
8
|
+
private getTable;
|
|
9
|
+
refreshTable(): void;
|
|
10
|
+
private toRow;
|
|
11
|
+
private toEntity;
|
|
12
|
+
save(batch: CallBatch): Promise<void>;
|
|
13
|
+
findById(id: string): Promise<CallBatch | null>;
|
|
14
|
+
findByJobPostingId(jobPostingId: string): Promise<CallBatch[]>;
|
|
15
|
+
update(batch: CallBatch): Promise<void>;
|
|
16
|
+
delete(id: string): Promise<void>;
|
|
17
|
+
count(): Promise<number>;
|
|
18
|
+
}
|
|
19
|
+
export declare class LanceDbCallBatchItemRepository implements ICallBatchItemRepository {
|
|
20
|
+
private db;
|
|
21
|
+
private tablePromise;
|
|
22
|
+
constructor(db: Connection);
|
|
23
|
+
private getTable;
|
|
24
|
+
refreshTable(): void;
|
|
25
|
+
private toRow;
|
|
26
|
+
private toEntity;
|
|
27
|
+
save(item: CallBatchItem): Promise<void>;
|
|
28
|
+
findByBatchId(batchId: string): Promise<CallBatchItem[]>;
|
|
29
|
+
findByBatchAndApplication(batchId: string, applicationId: string): Promise<CallBatchItem | null>;
|
|
30
|
+
update(item: CallBatchItem): Promise<void>;
|
|
31
|
+
deleteByBatchId(batchId: string): Promise<void>;
|
|
32
|
+
count(): Promise<number>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { getOrCreateTable, getCallBatchSeedRow, getCallBatchItemSeedRow, TABLE_NAMES } from './database.js';
|
|
2
|
+
import { DatabaseError } from '../../shared/errors/index.js';
|
|
3
|
+
import { escapeFilterValue } from '../../shared/utils/text.js';
|
|
4
|
+
export class LanceDbCallBatchRepository {
|
|
5
|
+
db;
|
|
6
|
+
tablePromise;
|
|
7
|
+
constructor(db) {
|
|
8
|
+
this.db = db;
|
|
9
|
+
this.tablePromise = getOrCreateTable(db, TABLE_NAMES.callBatches, getCallBatchSeedRow());
|
|
10
|
+
}
|
|
11
|
+
async getTable() {
|
|
12
|
+
const table = await this.tablePromise;
|
|
13
|
+
await table.checkoutLatest();
|
|
14
|
+
return table;
|
|
15
|
+
}
|
|
16
|
+
refreshTable() {
|
|
17
|
+
this.tablePromise = getOrCreateTable(this.db, TABLE_NAMES.callBatches, getCallBatchSeedRow());
|
|
18
|
+
}
|
|
19
|
+
toRow(batch) {
|
|
20
|
+
return {
|
|
21
|
+
id: batch.id,
|
|
22
|
+
job_posting_id: batch.jobPostingId,
|
|
23
|
+
sent_to: batch.sentTo,
|
|
24
|
+
note: batch.note,
|
|
25
|
+
created_at: batch.createdAt,
|
|
26
|
+
updated_at: batch.updatedAt,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
toEntity(row) {
|
|
30
|
+
return {
|
|
31
|
+
id: row.id,
|
|
32
|
+
jobPostingId: row.job_posting_id,
|
|
33
|
+
sentTo: row.sent_to,
|
|
34
|
+
note: row.note,
|
|
35
|
+
createdAt: row.created_at,
|
|
36
|
+
updatedAt: row.updated_at,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
async save(batch) {
|
|
40
|
+
try {
|
|
41
|
+
const table = await this.getTable();
|
|
42
|
+
await table.add([this.toRow(batch)]);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
throw new DatabaseError('Failed to save call batch', error);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async findById(id) {
|
|
49
|
+
try {
|
|
50
|
+
const table = await this.getTable();
|
|
51
|
+
const results = await table
|
|
52
|
+
.query()
|
|
53
|
+
.where(`id = '${escapeFilterValue(id)}'`)
|
|
54
|
+
.toArray();
|
|
55
|
+
const rows = results.filter((r) => r.id !== '__seed__');
|
|
56
|
+
return rows.length > 0 ? this.toEntity(rows[0]) : null;
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
throw new DatabaseError('Failed to find call batch by id', error);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async findByJobPostingId(jobPostingId) {
|
|
63
|
+
try {
|
|
64
|
+
const table = await this.getTable();
|
|
65
|
+
const results = await table
|
|
66
|
+
.query()
|
|
67
|
+
.where(`job_posting_id = '${escapeFilterValue(jobPostingId)}' AND id != '__seed__'`)
|
|
68
|
+
.toArray();
|
|
69
|
+
return results
|
|
70
|
+
.map((r) => this.toEntity(r))
|
|
71
|
+
.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
throw new DatabaseError('Failed to find call batches by job posting', error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async update(batch) {
|
|
78
|
+
try {
|
|
79
|
+
const table = await this.getTable();
|
|
80
|
+
await table.delete(`id = '${escapeFilterValue(batch.id)}'`);
|
|
81
|
+
await table.add([this.toRow(batch)]);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
throw new DatabaseError('Failed to update call batch', error);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async delete(id) {
|
|
88
|
+
try {
|
|
89
|
+
const table = await this.getTable();
|
|
90
|
+
await table.delete(`id = '${escapeFilterValue(id)}'`);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
throw new DatabaseError('Failed to delete call batch', error);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async count() {
|
|
97
|
+
try {
|
|
98
|
+
const table = await this.getTable();
|
|
99
|
+
const results = await table.query().where("id != '__seed__'").toArray();
|
|
100
|
+
return results.length;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
throw new DatabaseError('Failed to count call batches', error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export class LanceDbCallBatchItemRepository {
|
|
108
|
+
db;
|
|
109
|
+
tablePromise;
|
|
110
|
+
constructor(db) {
|
|
111
|
+
this.db = db;
|
|
112
|
+
this.tablePromise = getOrCreateTable(db, TABLE_NAMES.callBatchItems, getCallBatchItemSeedRow());
|
|
113
|
+
}
|
|
114
|
+
async getTable() {
|
|
115
|
+
const table = await this.tablePromise;
|
|
116
|
+
await table.checkoutLatest();
|
|
117
|
+
return table;
|
|
118
|
+
}
|
|
119
|
+
refreshTable() {
|
|
120
|
+
this.tablePromise = getOrCreateTable(this.db, TABLE_NAMES.callBatchItems, getCallBatchItemSeedRow());
|
|
121
|
+
}
|
|
122
|
+
toRow(item) {
|
|
123
|
+
return {
|
|
124
|
+
id: item.id,
|
|
125
|
+
batch_id: item.batchId,
|
|
126
|
+
application_id: item.applicationId,
|
|
127
|
+
candidate_id: item.candidateId,
|
|
128
|
+
candidate_name: item.candidateName,
|
|
129
|
+
phone: item.phone,
|
|
130
|
+
outcome: item.outcome,
|
|
131
|
+
note: item.note,
|
|
132
|
+
created_at: item.createdAt,
|
|
133
|
+
updated_at: item.updatedAt,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
toEntity(row) {
|
|
137
|
+
return {
|
|
138
|
+
id: row.id,
|
|
139
|
+
batchId: row.batch_id,
|
|
140
|
+
applicationId: row.application_id,
|
|
141
|
+
candidateId: row.candidate_id,
|
|
142
|
+
candidateName: row.candidate_name,
|
|
143
|
+
phone: row.phone,
|
|
144
|
+
outcome: row.outcome,
|
|
145
|
+
note: row.note,
|
|
146
|
+
createdAt: row.created_at,
|
|
147
|
+
updatedAt: row.updated_at,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
async save(item) {
|
|
151
|
+
try {
|
|
152
|
+
const table = await this.getTable();
|
|
153
|
+
await table.add([this.toRow(item)]);
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
throw new DatabaseError('Failed to save call batch item', error);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async findByBatchId(batchId) {
|
|
160
|
+
try {
|
|
161
|
+
const table = await this.getTable();
|
|
162
|
+
const results = await table
|
|
163
|
+
.query()
|
|
164
|
+
.where(`batch_id = '${escapeFilterValue(batchId)}' AND id != '__seed__'`)
|
|
165
|
+
.toArray();
|
|
166
|
+
return results.map((r) => this.toEntity(r));
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
throw new DatabaseError('Failed to find call batch items by batch', error);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async findByBatchAndApplication(batchId, applicationId) {
|
|
173
|
+
try {
|
|
174
|
+
const table = await this.getTable();
|
|
175
|
+
const results = await table
|
|
176
|
+
.query()
|
|
177
|
+
.where(`batch_id = '${escapeFilterValue(batchId)}' AND application_id = '${escapeFilterValue(applicationId)}'`)
|
|
178
|
+
.toArray();
|
|
179
|
+
const rows = results.filter((r) => r.id !== '__seed__');
|
|
180
|
+
return rows.length > 0 ? this.toEntity(rows[0]) : null;
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
throw new DatabaseError('Failed to find call batch item', error);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
async update(item) {
|
|
187
|
+
try {
|
|
188
|
+
const table = await this.getTable();
|
|
189
|
+
await table.delete(`id = '${escapeFilterValue(item.id)}'`);
|
|
190
|
+
await table.add([this.toRow(item)]);
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
throw new DatabaseError('Failed to update call batch item', error);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
async deleteByBatchId(batchId) {
|
|
197
|
+
try {
|
|
198
|
+
const table = await this.getTable();
|
|
199
|
+
await table.delete(`batch_id = '${escapeFilterValue(batchId)}'`);
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
throw new DatabaseError('Failed to delete call batch items', error);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
async count() {
|
|
206
|
+
try {
|
|
207
|
+
const table = await this.getTable();
|
|
208
|
+
const results = await table.query().where("id != '__seed__'").toArray();
|
|
209
|
+
return results.length;
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
throw new DatabaseError('Failed to count call batch items', error);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=lancedb-call-batch-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lancedb-call-batch-repository.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/lancedb-call-batch-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Connection } from '@lancedb/lancedb';
|
|
2
|
+
import type { IReferenceCvRepository } from '../../domain/repositories/reference-cv-repository.js';
|
|
3
|
+
import type { ReferenceCv } from '../../domain/entities/reference-cv.js';
|
|
4
|
+
export declare class LanceDbReferenceCvRepository implements IReferenceCvRepository {
|
|
5
|
+
private db;
|
|
6
|
+
private tablePromise;
|
|
7
|
+
constructor(db: Connection);
|
|
8
|
+
private getTable;
|
|
9
|
+
refreshTable(): void;
|
|
10
|
+
private toRow;
|
|
11
|
+
private toEntity;
|
|
12
|
+
save(ref: ReferenceCv): Promise<void>;
|
|
13
|
+
findByJobPostingId(jobPostingId: string): Promise<ReferenceCv[]>;
|
|
14
|
+
findByJobAndCandidate(jobPostingId: string, candidateId: string): Promise<ReferenceCv | null>;
|
|
15
|
+
delete(id: string): Promise<void>;
|
|
16
|
+
count(): Promise<number>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { getOrCreateTable, getReferenceCvSeedRow, TABLE_NAMES } from './database.js';
|
|
2
|
+
import { DatabaseError } from '../../shared/errors/index.js';
|
|
3
|
+
import { escapeFilterValue } from '../../shared/utils/text.js';
|
|
4
|
+
export class LanceDbReferenceCvRepository {
|
|
5
|
+
db;
|
|
6
|
+
tablePromise;
|
|
7
|
+
constructor(db) {
|
|
8
|
+
this.db = db;
|
|
9
|
+
this.tablePromise = getOrCreateTable(db, TABLE_NAMES.referenceCvs, getReferenceCvSeedRow());
|
|
10
|
+
}
|
|
11
|
+
async getTable() {
|
|
12
|
+
const table = await this.tablePromise;
|
|
13
|
+
await table.checkoutLatest();
|
|
14
|
+
return table;
|
|
15
|
+
}
|
|
16
|
+
refreshTable() {
|
|
17
|
+
this.tablePromise = getOrCreateTable(this.db, TABLE_NAMES.referenceCvs, getReferenceCvSeedRow());
|
|
18
|
+
}
|
|
19
|
+
toRow(ref) {
|
|
20
|
+
return {
|
|
21
|
+
id: ref.id,
|
|
22
|
+
job_posting_id: ref.jobPostingId,
|
|
23
|
+
candidate_id: ref.candidateId,
|
|
24
|
+
candidate_name: ref.candidateName,
|
|
25
|
+
note: ref.note,
|
|
26
|
+
created_at: ref.createdAt,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
toEntity(row) {
|
|
30
|
+
return {
|
|
31
|
+
id: row.id,
|
|
32
|
+
jobPostingId: row.job_posting_id,
|
|
33
|
+
candidateId: row.candidate_id,
|
|
34
|
+
candidateName: row.candidate_name,
|
|
35
|
+
note: row.note,
|
|
36
|
+
createdAt: row.created_at,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
async save(ref) {
|
|
40
|
+
try {
|
|
41
|
+
const table = await this.getTable();
|
|
42
|
+
await table.add([this.toRow(ref)]);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
throw new DatabaseError('Failed to save reference CV', error);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async findByJobPostingId(jobPostingId) {
|
|
49
|
+
try {
|
|
50
|
+
const table = await this.getTable();
|
|
51
|
+
const results = await table
|
|
52
|
+
.query()
|
|
53
|
+
.where(`job_posting_id = '${escapeFilterValue(jobPostingId)}' AND id != '__seed__'`)
|
|
54
|
+
.toArray();
|
|
55
|
+
return results
|
|
56
|
+
.map((r) => this.toEntity(r))
|
|
57
|
+
.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw new DatabaseError('Failed to find reference CVs by job posting', error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async findByJobAndCandidate(jobPostingId, candidateId) {
|
|
64
|
+
try {
|
|
65
|
+
const table = await this.getTable();
|
|
66
|
+
const results = await table
|
|
67
|
+
.query()
|
|
68
|
+
.where(`job_posting_id = '${escapeFilterValue(jobPostingId)}' AND candidate_id = '${escapeFilterValue(candidateId)}'`)
|
|
69
|
+
.toArray();
|
|
70
|
+
const rows = results.filter((r) => r.id !== '__seed__');
|
|
71
|
+
return rows.length > 0 ? this.toEntity(rows[0]) : null;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
throw new DatabaseError('Failed to find reference CV', error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async delete(id) {
|
|
78
|
+
try {
|
|
79
|
+
const table = await this.getTable();
|
|
80
|
+
await table.delete(`id = '${escapeFilterValue(id)}'`);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
throw new DatabaseError('Failed to delete reference CV', error);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async count() {
|
|
87
|
+
try {
|
|
88
|
+
const table = await this.getTable();
|
|
89
|
+
const results = await table.query().where("id != '__seed__'").toArray();
|
|
90
|
+
return results.length;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
throw new DatabaseError('Failed to count reference CVs', error);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=lancedb-reference-cv-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lancedb-reference-cv-repository.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/lancedb-reference-cv-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"e2007138-fb12-4dd0-908b-9a9d452bb2a3",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1773746263069,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"e2007138-fb12-4dd0-908b-9a9d452bb2a3",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1773746263070,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"e2007138-fb12-4dd0-908b-9a9d452bb2a3","timestamp":1773746257881}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/269a33f3-c36d-4ceb-ae10-e708da6c151c.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"269a33f3-c36d-4ceb-ae10-e708da6c151c","timestamp":1773746236494,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/6d598d93-4de0-403a-a158-2c2529504b0f.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"6d598d93-4de0-403a-a158-2c2529504b0f","timestamp":1773739519840,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/71752c9b-993c-4c33-8131-3ea5f76f183f.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"71752c9b-993c-4c33-8131-3ea5f76f183f","timestamp":1773745360226,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/83d6f570-2c34-4be5-9948-1051c85501d8.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"83d6f570-2c34-4be5-9948-1051c85501d8","timestamp":1773738288439,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/b35b302f-e133-4121-8657-1ff4b7a84dbe.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"b35b302f-e133-4121-8657-1ff4b7a84dbe","timestamp":1773740354314,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/cfdbad0b-52a7-4db5-a767-c65e5a0af0b2.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"cfdbad0b-52a7-4db5-a767-c65e5a0af0b2","timestamp":1773740286337,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/e2007138-fb12-4dd0-908b-9a9d452bb2a3.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"e2007138-fb12-4dd0-908b-9a9d452bb2a3","timestamp":1773746257881,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/eac7333a-e06c-4c97-ae42-eeea7caaa1b3.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"eac7333a-e06c-4c97-ae42-eeea7caaa1b3","timestamp":1773740274040,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/fccb7849-b9fa-40e3-919d-c1085fce9db2.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"fccb7849-b9fa-40e3-919d-c1085fce9db2","timestamp":1773746224281,"prerendered":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"e2007138-fb12-4dd0-908b-9a9d452bb2a3",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1773746263070,false]</script></body></html>
|