@datasynx/agentic-crm 1.4.0 → 1.5.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/README.md +9 -2
- package/dist/cli.js +111 -4
- package/dist/cli.js.map +1 -1
- package/dist/{index-Dspvybo0.d.cts → index-B5_QnkG8.d.cts} +24 -24
- package/dist/index-B5_QnkG8.d.cts.map +1 -0
- package/dist/{index-BBAlKZg6.d.ts → index-FzDsNSSb.d.ts} +3 -3
- package/dist/{index-BBAlKZg6.d.ts.map → index-FzDsNSSb.d.ts.map} +1 -1
- package/dist/index.d.cts +24 -24
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/login-CYgla6-A.js +73 -0
- package/dist/login-CYgla6-A.js.map +1 -0
- package/dist/microsoft-DgbVlHdT.js +159 -0
- package/dist/microsoft-DgbVlHdT.js.map +1 -0
- package/dist/token-resolver-BRLOmRvF.js +50 -0
- package/dist/token-resolver-BRLOmRvF.js.map +1 -0
- package/package.json +1 -1
- package/dist/index-Dspvybo0.d.cts.map +0 -1
|
@@ -96,11 +96,11 @@ declare const MainFactsSchema: z.ZodObject<{
|
|
|
96
96
|
updated: z.ZodEffects<z.ZodString, string, unknown>;
|
|
97
97
|
}, "strip", z.ZodTypeAny, {
|
|
98
98
|
name: string;
|
|
99
|
-
relationship_stage: "prospect" | "active" | "churned" | "paused";
|
|
100
99
|
currency: string;
|
|
101
|
-
tags: string[];
|
|
102
|
-
created: string;
|
|
103
100
|
updated: string;
|
|
101
|
+
created: string;
|
|
102
|
+
tags: string[];
|
|
103
|
+
relationship_stage: "prospect" | "active" | "churned" | "paused";
|
|
104
104
|
domain?: string | undefined;
|
|
105
105
|
email?: string | undefined;
|
|
106
106
|
phone?: string | undefined;
|
|
@@ -111,17 +111,17 @@ declare const MainFactsSchema: z.ZodObject<{
|
|
|
111
111
|
}, {
|
|
112
112
|
name: string;
|
|
113
113
|
relationship_stage: "prospect" | "active" | "churned" | "paused";
|
|
114
|
+
currency?: string | undefined;
|
|
115
|
+
updated?: unknown;
|
|
116
|
+
created?: unknown;
|
|
117
|
+
tags?: string[] | undefined;
|
|
114
118
|
domain?: string | undefined;
|
|
115
119
|
email?: string | undefined;
|
|
116
120
|
phone?: string | undefined;
|
|
117
121
|
industry?: string | undefined;
|
|
118
122
|
deal_value?: number | undefined;
|
|
119
|
-
currency?: string | undefined;
|
|
120
123
|
primary_contact?: string | undefined;
|
|
121
124
|
timezone?: string | undefined;
|
|
122
|
-
tags?: string[] | undefined;
|
|
123
|
-
created?: unknown;
|
|
124
|
-
updated?: unknown;
|
|
125
125
|
}>;
|
|
126
126
|
type MainFacts = z.infer<typeof MainFactsSchema>;
|
|
127
127
|
//# sourceMappingURL=main-facts.d.ts.map
|
|
@@ -177,17 +177,17 @@ declare const PipelineDealSchema: z.ZodObject<{
|
|
|
177
177
|
updated: z.ZodString;
|
|
178
178
|
}, "strip", z.ZodTypeAny, {
|
|
179
179
|
name: string;
|
|
180
|
+
stage: "lead" | "qualified" | "proposal" | "negotiation" | "won" | "lost";
|
|
180
181
|
currency: string;
|
|
181
182
|
updated: string;
|
|
182
|
-
stage: "lead" | "qualified" | "proposal" | "negotiation" | "won" | "lost";
|
|
183
183
|
value?: number | undefined;
|
|
184
184
|
probability?: number | undefined;
|
|
185
185
|
close_date?: string | undefined;
|
|
186
186
|
notes?: string | undefined;
|
|
187
187
|
}, {
|
|
188
188
|
name: string;
|
|
189
|
-
updated: string;
|
|
190
189
|
stage: "lead" | "qualified" | "proposal" | "negotiation" | "won" | "lost";
|
|
190
|
+
updated: string;
|
|
191
191
|
value?: number | undefined;
|
|
192
192
|
currency?: string | undefined;
|
|
193
193
|
probability?: number | undefined;
|
|
@@ -212,19 +212,19 @@ declare const TicketSchema: z.ZodObject<{
|
|
|
212
212
|
description: z.ZodOptional<z.ZodString>;
|
|
213
213
|
}, "strip", z.ZodTypeAny, {
|
|
214
214
|
status: "open" | "in-progress" | "waiting" | "resolved" | "closed";
|
|
215
|
-
created: string;
|
|
216
215
|
id: string;
|
|
217
216
|
title: string;
|
|
218
217
|
priority: "urgent" | "high" | "normal" | "low";
|
|
218
|
+
created: string;
|
|
219
219
|
resolved?: string | undefined;
|
|
220
220
|
assignee?: string | undefined;
|
|
221
221
|
slaDue?: string | undefined;
|
|
222
222
|
description?: string | undefined;
|
|
223
223
|
}, {
|
|
224
224
|
status: "open" | "in-progress" | "waiting" | "resolved" | "closed";
|
|
225
|
-
created: string;
|
|
226
225
|
id: string;
|
|
227
226
|
title: string;
|
|
227
|
+
created: string;
|
|
228
228
|
resolved?: string | undefined;
|
|
229
229
|
priority?: "urgent" | "high" | "normal" | "low" | undefined;
|
|
230
230
|
assignee?: string | undefined;
|
|
@@ -288,10 +288,9 @@ declare const QuoteSchema: z.ZodObject<{
|
|
|
288
288
|
}, "strip", z.ZodTypeAny, {
|
|
289
289
|
status: "draft" | "sent" | "viewed" | "accepted" | "declined";
|
|
290
290
|
currency: string;
|
|
291
|
-
createdAt: string;
|
|
292
|
-
slug: string;
|
|
293
291
|
total: number;
|
|
294
292
|
quoteNumber: string;
|
|
293
|
+
slug: string;
|
|
295
294
|
dealName: string;
|
|
296
295
|
lineItems: {
|
|
297
296
|
description: string;
|
|
@@ -302,16 +301,16 @@ declare const QuoteSchema: z.ZodObject<{
|
|
|
302
301
|
subtotal: number;
|
|
303
302
|
vatPercent: number;
|
|
304
303
|
vat: number;
|
|
304
|
+
createdAt: string;
|
|
305
305
|
validUntilDays: number;
|
|
306
306
|
validUntil: string;
|
|
307
307
|
viewedAt?: string | undefined;
|
|
308
308
|
acceptedAt?: string | undefined;
|
|
309
309
|
htmlPath?: string | undefined;
|
|
310
310
|
}, {
|
|
311
|
-
createdAt: string;
|
|
312
|
-
slug: string;
|
|
313
311
|
total: number;
|
|
314
312
|
quoteNumber: string;
|
|
313
|
+
slug: string;
|
|
315
314
|
dealName: string;
|
|
316
315
|
lineItems: {
|
|
317
316
|
description: string;
|
|
@@ -322,6 +321,7 @@ declare const QuoteSchema: z.ZodObject<{
|
|
|
322
321
|
subtotal: number;
|
|
323
322
|
vatPercent: number;
|
|
324
323
|
vat: number;
|
|
324
|
+
createdAt: string;
|
|
325
325
|
validUntil: string;
|
|
326
326
|
status?: "draft" | "sent" | "viewed" | "accepted" | "declined" | undefined;
|
|
327
327
|
currency?: string | undefined;
|
|
@@ -345,21 +345,21 @@ declare const KbArticleSchema: z.ZodObject<{
|
|
|
345
345
|
updatedAt: z.ZodString;
|
|
346
346
|
sourceTicketId: z.ZodOptional<z.ZodString>;
|
|
347
347
|
}, "strip", z.ZodTypeAny, {
|
|
348
|
-
tags: string[];
|
|
349
348
|
id: string;
|
|
350
|
-
createdAt: string;
|
|
351
349
|
title: string;
|
|
350
|
+
createdAt: string;
|
|
352
351
|
category: string;
|
|
352
|
+
tags: string[];
|
|
353
353
|
public: boolean;
|
|
354
354
|
updatedAt: string;
|
|
355
355
|
sourceTicketId?: string | undefined;
|
|
356
356
|
}, {
|
|
357
357
|
id: string;
|
|
358
|
-
createdAt: string;
|
|
359
358
|
title: string;
|
|
359
|
+
createdAt: string;
|
|
360
360
|
updatedAt: string;
|
|
361
|
-
tags?: string[] | undefined;
|
|
362
361
|
category?: string | undefined;
|
|
362
|
+
tags?: string[] | undefined;
|
|
363
363
|
public?: boolean | undefined;
|
|
364
364
|
sourceTicketId?: string | undefined;
|
|
365
365
|
}>;
|
|
@@ -390,18 +390,18 @@ declare const SurveyDefinitionSchema: z.ZodObject<{
|
|
|
390
390
|
}, "strip", z.ZodTypeAny, {
|
|
391
391
|
type: "nps" | "csat" | "ces";
|
|
392
392
|
id: string;
|
|
393
|
+
createdAt: string;
|
|
393
394
|
question: string;
|
|
394
395
|
scale: {
|
|
395
396
|
min: number;
|
|
396
397
|
max: number;
|
|
397
398
|
};
|
|
398
399
|
includeComment: boolean;
|
|
399
|
-
createdAt: string;
|
|
400
400
|
commentPrompt?: string | undefined;
|
|
401
401
|
}, {
|
|
402
402
|
id: string;
|
|
403
|
-
question: string;
|
|
404
403
|
createdAt: string;
|
|
404
|
+
question: string;
|
|
405
405
|
type?: "nps" | "csat" | "ces" | undefined;
|
|
406
406
|
scale?: {
|
|
407
407
|
min?: number | undefined;
|
|
@@ -420,8 +420,8 @@ declare const SurveyResponseSchema: z.ZodObject<{
|
|
|
420
420
|
token: z.ZodString;
|
|
421
421
|
sentAt: z.ZodString;
|
|
422
422
|
}, "strip", z.ZodTypeAny, {
|
|
423
|
-
surveyId: string;
|
|
424
423
|
slug: string;
|
|
424
|
+
surveyId: string;
|
|
425
425
|
contactEmail: string;
|
|
426
426
|
score: number;
|
|
427
427
|
respondedAt: string;
|
|
@@ -429,8 +429,8 @@ declare const SurveyResponseSchema: z.ZodObject<{
|
|
|
429
429
|
sentAt: string;
|
|
430
430
|
comment?: string | undefined;
|
|
431
431
|
}, {
|
|
432
|
-
surveyId: string;
|
|
433
432
|
slug: string;
|
|
433
|
+
surveyId: string;
|
|
434
434
|
contactEmail: string;
|
|
435
435
|
score: number;
|
|
436
436
|
respondedAt: string;
|
|
@@ -543,4 +543,4 @@ declare const VERSION = "0.1.0";
|
|
|
543
543
|
|
|
544
544
|
//#endregion
|
|
545
545
|
export { type GlobalSources, type InteractionEntry, type KbArticle, type MainFacts, type PipelineDeal, type QuoteLineItem, type Quote as QuoteRecord, type SurveyDefinition, type SurveyResponse, type TicketPriority, type Ticket as TicketRecord, type TicketStatus, VERSION, canSeeCustomer, clearSession, createCustomer, customerExists, filterAuditLog, getRbacConfig, getRole, getSession, readAuditLog, readMainFacts, runAudit, runBackup, runValidate, setSession };
|
|
546
|
-
//# sourceMappingURL=index-
|
|
546
|
+
//# sourceMappingURL=index-B5_QnkG8.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-B5_QnkG8.d.cts","names":[],"sources":["../src/schemas/sources.ts","../src/schemas/main-facts.ts","../src/schemas/interaction.ts","../src/schemas/pipeline.ts","../src/schemas/ticket.ts","../src/schemas/quote.ts","../src/schemas/kb-article.ts","../src/schemas/survey.ts","../src/commands/create.ts","../src/commands/backup.ts","../src/commands/audit.ts","../src/commands/validate.ts","../src/fs/customer-dir.ts","../src/fs/audit-log.ts","../src/core/rbac.ts","../src/core/session-store.ts","../src/version.ts"],"mappings":"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"}
|
|
@@ -141,8 +141,8 @@ declare const InteractionEntrySchema: z.ZodObject<{
|
|
|
141
141
|
sourceRef: z.ZodString;
|
|
142
142
|
synced: z.ZodString;
|
|
143
143
|
}, "strip", z.ZodTypeAny, {
|
|
144
|
-
type: "Email" | "Call" | "Meeting" | "Note" | "Demo" | "Proposal" | "Contract" | "Other";
|
|
145
144
|
date: string;
|
|
145
|
+
type: "Email" | "Call" | "Meeting" | "Note" | "Demo" | "Proposal" | "Contract" | "Other";
|
|
146
146
|
with: string;
|
|
147
147
|
summary: string;
|
|
148
148
|
nextSteps: string[];
|
|
@@ -152,8 +152,8 @@ declare const InteractionEntrySchema: z.ZodObject<{
|
|
|
152
152
|
subject?: string | undefined;
|
|
153
153
|
attachments?: string[] | undefined;
|
|
154
154
|
}, {
|
|
155
|
-
type: "Email" | "Call" | "Meeting" | "Note" | "Demo" | "Proposal" | "Contract" | "Other";
|
|
156
155
|
date: string;
|
|
156
|
+
type: "Email" | "Call" | "Meeting" | "Note" | "Demo" | "Proposal" | "Contract" | "Other";
|
|
157
157
|
with: string;
|
|
158
158
|
summary: string;
|
|
159
159
|
sourceRef: string;
|
|
@@ -544,4 +544,4 @@ declare const VERSION = "0.1.0";
|
|
|
544
544
|
|
|
545
545
|
//#endregion
|
|
546
546
|
export { type GlobalSources, type InteractionEntry, type KbArticle, type MainFacts, type PipelineDeal, type QuoteLineItem, type Quote as QuoteRecord, type SurveyDefinition, type SurveyResponse, type TicketPriority, type Ticket as TicketRecord, type TicketStatus, VERSION, canSeeCustomer, clearSession, createCustomer, customerExists, filterAuditLog, getRbacConfig, getRole, getSession, readAuditLog, readMainFacts, runAudit, runBackup, runValidate, setSession };
|
|
547
|
-
//# sourceMappingURL=index-
|
|
547
|
+
//# sourceMappingURL=index-FzDsNSSb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-FzDsNSSb.d.ts","names":[],"sources":["../src/schemas/sources.ts","../src/schemas/main-facts.ts","../src/schemas/interaction.ts","../src/schemas/pipeline.ts","../src/schemas/ticket.ts","../src/schemas/quote.ts","../src/schemas/kb-article.ts","../src/schemas/survey.ts","../src/commands/create.ts","../src/commands/backup.ts","../src/commands/audit.ts","../src/commands/validate.ts","../src/fs/customer-dir.ts","../src/fs/audit-log.ts","../src/core/rbac.ts","../src/core/session-store.ts","../src/version.ts"],"mappings":"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"}
|
package/dist/index.d.cts
CHANGED
|
@@ -96,11 +96,11 @@ declare const MainFactsSchema: z.ZodObject<{
|
|
|
96
96
|
updated: z.ZodEffects<z.ZodString, string, unknown>;
|
|
97
97
|
}, "strip", z.ZodTypeAny, {
|
|
98
98
|
name: string;
|
|
99
|
-
relationship_stage: "prospect" | "active" | "churned" | "paused";
|
|
100
99
|
currency: string;
|
|
101
|
-
tags: string[];
|
|
102
|
-
created: string;
|
|
103
100
|
updated: string;
|
|
101
|
+
created: string;
|
|
102
|
+
tags: string[];
|
|
103
|
+
relationship_stage: "prospect" | "active" | "churned" | "paused";
|
|
104
104
|
domain?: string | undefined;
|
|
105
105
|
email?: string | undefined;
|
|
106
106
|
phone?: string | undefined;
|
|
@@ -111,17 +111,17 @@ declare const MainFactsSchema: z.ZodObject<{
|
|
|
111
111
|
}, {
|
|
112
112
|
name: string;
|
|
113
113
|
relationship_stage: "prospect" | "active" | "churned" | "paused";
|
|
114
|
+
currency?: string | undefined;
|
|
115
|
+
updated?: unknown;
|
|
116
|
+
created?: unknown;
|
|
117
|
+
tags?: string[] | undefined;
|
|
114
118
|
domain?: string | undefined;
|
|
115
119
|
email?: string | undefined;
|
|
116
120
|
phone?: string | undefined;
|
|
117
121
|
industry?: string | undefined;
|
|
118
122
|
deal_value?: number | undefined;
|
|
119
|
-
currency?: string | undefined;
|
|
120
123
|
primary_contact?: string | undefined;
|
|
121
124
|
timezone?: string | undefined;
|
|
122
|
-
tags?: string[] | undefined;
|
|
123
|
-
created?: unknown;
|
|
124
|
-
updated?: unknown;
|
|
125
125
|
}>;
|
|
126
126
|
type MainFacts = z.infer<typeof MainFactsSchema>;
|
|
127
127
|
//# sourceMappingURL=main-facts.d.ts.map
|
|
@@ -177,17 +177,17 @@ declare const PipelineDealSchema: z.ZodObject<{
|
|
|
177
177
|
updated: z.ZodString;
|
|
178
178
|
}, "strip", z.ZodTypeAny, {
|
|
179
179
|
name: string;
|
|
180
|
+
stage: "lead" | "qualified" | "proposal" | "negotiation" | "won" | "lost";
|
|
180
181
|
currency: string;
|
|
181
182
|
updated: string;
|
|
182
|
-
stage: "lead" | "qualified" | "proposal" | "negotiation" | "won" | "lost";
|
|
183
183
|
value?: number | undefined;
|
|
184
184
|
probability?: number | undefined;
|
|
185
185
|
close_date?: string | undefined;
|
|
186
186
|
notes?: string | undefined;
|
|
187
187
|
}, {
|
|
188
188
|
name: string;
|
|
189
|
-
updated: string;
|
|
190
189
|
stage: "lead" | "qualified" | "proposal" | "negotiation" | "won" | "lost";
|
|
190
|
+
updated: string;
|
|
191
191
|
value?: number | undefined;
|
|
192
192
|
currency?: string | undefined;
|
|
193
193
|
probability?: number | undefined;
|
|
@@ -212,19 +212,19 @@ declare const TicketSchema: z.ZodObject<{
|
|
|
212
212
|
description: z.ZodOptional<z.ZodString>;
|
|
213
213
|
}, "strip", z.ZodTypeAny, {
|
|
214
214
|
status: "open" | "in-progress" | "waiting" | "resolved" | "closed";
|
|
215
|
-
created: string;
|
|
216
215
|
id: string;
|
|
217
216
|
title: string;
|
|
218
217
|
priority: "urgent" | "high" | "normal" | "low";
|
|
218
|
+
created: string;
|
|
219
219
|
resolved?: string | undefined;
|
|
220
220
|
assignee?: string | undefined;
|
|
221
221
|
slaDue?: string | undefined;
|
|
222
222
|
description?: string | undefined;
|
|
223
223
|
}, {
|
|
224
224
|
status: "open" | "in-progress" | "waiting" | "resolved" | "closed";
|
|
225
|
-
created: string;
|
|
226
225
|
id: string;
|
|
227
226
|
title: string;
|
|
227
|
+
created: string;
|
|
228
228
|
resolved?: string | undefined;
|
|
229
229
|
priority?: "urgent" | "high" | "normal" | "low" | undefined;
|
|
230
230
|
assignee?: string | undefined;
|
|
@@ -288,10 +288,9 @@ declare const QuoteSchema: z.ZodObject<{
|
|
|
288
288
|
}, "strip", z.ZodTypeAny, {
|
|
289
289
|
status: "draft" | "sent" | "viewed" | "accepted" | "declined";
|
|
290
290
|
currency: string;
|
|
291
|
-
createdAt: string;
|
|
292
|
-
slug: string;
|
|
293
291
|
total: number;
|
|
294
292
|
quoteNumber: string;
|
|
293
|
+
slug: string;
|
|
295
294
|
dealName: string;
|
|
296
295
|
lineItems: {
|
|
297
296
|
description: string;
|
|
@@ -302,16 +301,16 @@ declare const QuoteSchema: z.ZodObject<{
|
|
|
302
301
|
subtotal: number;
|
|
303
302
|
vatPercent: number;
|
|
304
303
|
vat: number;
|
|
304
|
+
createdAt: string;
|
|
305
305
|
validUntilDays: number;
|
|
306
306
|
validUntil: string;
|
|
307
307
|
viewedAt?: string | undefined;
|
|
308
308
|
acceptedAt?: string | undefined;
|
|
309
309
|
htmlPath?: string | undefined;
|
|
310
310
|
}, {
|
|
311
|
-
createdAt: string;
|
|
312
|
-
slug: string;
|
|
313
311
|
total: number;
|
|
314
312
|
quoteNumber: string;
|
|
313
|
+
slug: string;
|
|
315
314
|
dealName: string;
|
|
316
315
|
lineItems: {
|
|
317
316
|
description: string;
|
|
@@ -322,6 +321,7 @@ declare const QuoteSchema: z.ZodObject<{
|
|
|
322
321
|
subtotal: number;
|
|
323
322
|
vatPercent: number;
|
|
324
323
|
vat: number;
|
|
324
|
+
createdAt: string;
|
|
325
325
|
validUntil: string;
|
|
326
326
|
status?: "draft" | "sent" | "viewed" | "accepted" | "declined" | undefined;
|
|
327
327
|
currency?: string | undefined;
|
|
@@ -345,21 +345,21 @@ declare const KbArticleSchema: z.ZodObject<{
|
|
|
345
345
|
updatedAt: z.ZodString;
|
|
346
346
|
sourceTicketId: z.ZodOptional<z.ZodString>;
|
|
347
347
|
}, "strip", z.ZodTypeAny, {
|
|
348
|
-
tags: string[];
|
|
349
348
|
id: string;
|
|
350
|
-
createdAt: string;
|
|
351
349
|
title: string;
|
|
350
|
+
createdAt: string;
|
|
352
351
|
category: string;
|
|
352
|
+
tags: string[];
|
|
353
353
|
public: boolean;
|
|
354
354
|
updatedAt: string;
|
|
355
355
|
sourceTicketId?: string | undefined;
|
|
356
356
|
}, {
|
|
357
357
|
id: string;
|
|
358
|
-
createdAt: string;
|
|
359
358
|
title: string;
|
|
359
|
+
createdAt: string;
|
|
360
360
|
updatedAt: string;
|
|
361
|
-
tags?: string[] | undefined;
|
|
362
361
|
category?: string | undefined;
|
|
362
|
+
tags?: string[] | undefined;
|
|
363
363
|
public?: boolean | undefined;
|
|
364
364
|
sourceTicketId?: string | undefined;
|
|
365
365
|
}>;
|
|
@@ -390,18 +390,18 @@ declare const SurveyDefinitionSchema: z.ZodObject<{
|
|
|
390
390
|
}, "strip", z.ZodTypeAny, {
|
|
391
391
|
type: "nps" | "csat" | "ces";
|
|
392
392
|
id: string;
|
|
393
|
+
createdAt: string;
|
|
393
394
|
question: string;
|
|
394
395
|
scale: {
|
|
395
396
|
min: number;
|
|
396
397
|
max: number;
|
|
397
398
|
};
|
|
398
399
|
includeComment: boolean;
|
|
399
|
-
createdAt: string;
|
|
400
400
|
commentPrompt?: string | undefined;
|
|
401
401
|
}, {
|
|
402
402
|
id: string;
|
|
403
|
-
question: string;
|
|
404
403
|
createdAt: string;
|
|
404
|
+
question: string;
|
|
405
405
|
type?: "nps" | "csat" | "ces" | undefined;
|
|
406
406
|
scale?: {
|
|
407
407
|
min?: number | undefined;
|
|
@@ -420,8 +420,8 @@ declare const SurveyResponseSchema: z.ZodObject<{
|
|
|
420
420
|
token: z.ZodString;
|
|
421
421
|
sentAt: z.ZodString;
|
|
422
422
|
}, "strip", z.ZodTypeAny, {
|
|
423
|
-
surveyId: string;
|
|
424
423
|
slug: string;
|
|
424
|
+
surveyId: string;
|
|
425
425
|
contactEmail: string;
|
|
426
426
|
score: number;
|
|
427
427
|
respondedAt: string;
|
|
@@ -429,8 +429,8 @@ declare const SurveyResponseSchema: z.ZodObject<{
|
|
|
429
429
|
sentAt: string;
|
|
430
430
|
comment?: string | undefined;
|
|
431
431
|
}, {
|
|
432
|
-
surveyId: string;
|
|
433
432
|
slug: string;
|
|
433
|
+
surveyId: string;
|
|
434
434
|
contactEmail: string;
|
|
435
435
|
score: number;
|
|
436
436
|
respondedAt: string;
|
|
@@ -543,4 +543,4 @@ declare const VERSION = "0.1.0";
|
|
|
543
543
|
|
|
544
544
|
//#endregion
|
|
545
545
|
export { type GlobalSources, type InteractionEntry, type KbArticle, type MainFacts, type PipelineDeal, type QuoteLineItem, type Quote as QuoteRecord, type SurveyDefinition, type SurveyResponse, type TicketPriority, type Ticket as TicketRecord, type TicketStatus, VERSION, canSeeCustomer, clearSession, createCustomer, customerExists, filterAuditLog, getRbacConfig, getRole, getSession, readAuditLog, readMainFacts, runAudit, runBackup, runValidate, setSession };
|
|
546
|
-
//# sourceMappingURL=index-
|
|
546
|
+
//# sourceMappingURL=index-B5_QnkG8.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-B5_QnkG8.d.cts","names":[],"sources":["../src/schemas/sources.ts","../src/schemas/main-facts.ts","../src/schemas/interaction.ts","../src/schemas/pipeline.ts","../src/schemas/ticket.ts","../src/schemas/quote.ts","../src/schemas/kb-article.ts","../src/schemas/survey.ts","../src/commands/create.ts","../src/commands/backup.ts","../src/commands/audit.ts","../src/commands/validate.ts","../src/fs/customer-dir.ts","../src/fs/audit-log.ts","../src/core/rbac.ts","../src/core/session-store.ts","../src/version.ts"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -141,8 +141,8 @@ declare const InteractionEntrySchema: z.ZodObject<{
|
|
|
141
141
|
sourceRef: z.ZodString;
|
|
142
142
|
synced: z.ZodString;
|
|
143
143
|
}, "strip", z.ZodTypeAny, {
|
|
144
|
-
type: "Email" | "Call" | "Meeting" | "Note" | "Demo" | "Proposal" | "Contract" | "Other";
|
|
145
144
|
date: string;
|
|
145
|
+
type: "Email" | "Call" | "Meeting" | "Note" | "Demo" | "Proposal" | "Contract" | "Other";
|
|
146
146
|
with: string;
|
|
147
147
|
summary: string;
|
|
148
148
|
nextSteps: string[];
|
|
@@ -152,8 +152,8 @@ declare const InteractionEntrySchema: z.ZodObject<{
|
|
|
152
152
|
subject?: string | undefined;
|
|
153
153
|
attachments?: string[] | undefined;
|
|
154
154
|
}, {
|
|
155
|
-
type: "Email" | "Call" | "Meeting" | "Note" | "Demo" | "Proposal" | "Contract" | "Other";
|
|
156
155
|
date: string;
|
|
156
|
+
type: "Email" | "Call" | "Meeting" | "Note" | "Demo" | "Proposal" | "Contract" | "Other";
|
|
157
157
|
with: string;
|
|
158
158
|
summary: string;
|
|
159
159
|
sourceRef: string;
|
|
@@ -544,4 +544,4 @@ declare const VERSION = "0.1.0";
|
|
|
544
544
|
|
|
545
545
|
//#endregion
|
|
546
546
|
export { type GlobalSources, type InteractionEntry, type KbArticle, type MainFacts, type PipelineDeal, type QuoteLineItem, type Quote as QuoteRecord, type SurveyDefinition, type SurveyResponse, type TicketPriority, type Ticket as TicketRecord, type TicketStatus, VERSION, canSeeCustomer, clearSession, createCustomer, customerExists, filterAuditLog, getRbacConfig, getRole, getSession, readAuditLog, readMainFacts, runAudit, runBackup, runValidate, setSession };
|
|
547
|
-
//# sourceMappingURL=index-
|
|
547
|
+
//# sourceMappingURL=index-FzDsNSSb.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-FzDsNSSb.d.ts","names":[],"sources":["../src/schemas/sources.ts","../src/schemas/main-facts.ts","../src/schemas/interaction.ts","../src/schemas/pipeline.ts","../src/schemas/ticket.ts","../src/schemas/quote.ts","../src/schemas/kb-article.ts","../src/schemas/survey.ts","../src/commands/create.ts","../src/commands/backup.ts","../src/commands/audit.ts","../src/commands/validate.ts","../src/fs/customer-dir.ts","../src/fs/audit-log.ts","../src/core/rbac.ts","../src/core/session-store.ts","../src/version.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { a as buildAuthUrl, d as saveMailboxToken, o as createOAuthClient, r as requestDeviceCode, s as exchangeCodeForTokens, t as pollForToken } from "./microsoft-DgbVlHdT.js";
|
|
2
|
+
//#region src/sync/oauth/login.ts
|
|
3
|
+
/** Accept either a raw auth code or the full loopback redirect URL and return the code. */
|
|
4
|
+
function extractAuthCode(input) {
|
|
5
|
+
const trimmed = input.trim();
|
|
6
|
+
if (trimmed.includes("code=")) {
|
|
7
|
+
const m = trimmed.match(/[?&]code=([^&\s]+)/);
|
|
8
|
+
if (m?.[1]) return decodeURIComponent(m[1]);
|
|
9
|
+
}
|
|
10
|
+
return trimmed;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Drive the Gmail installed-app OAuth flow: show the consent URL, read back the
|
|
14
|
+
* authorization code (or the pasted redirect URL), exchange it for tokens with
|
|
15
|
+
* the full `mail.google.com` IMAP scope, and persist them.
|
|
16
|
+
*/
|
|
17
|
+
async function runGmailLogin(opts) {
|
|
18
|
+
const redirect = opts.redirectUri ?? "http://127.0.0.1";
|
|
19
|
+
const create = opts.createClient ?? createOAuthClient;
|
|
20
|
+
const exchange = opts.exchange ?? exchangeCodeForTokens;
|
|
21
|
+
const client = create(opts.clientId, opts.clientSecret, redirect);
|
|
22
|
+
const authUrl = buildAuthUrl(client, redirect);
|
|
23
|
+
opts.print("Authorize Gmail IMAP access by visiting this URL:\n");
|
|
24
|
+
opts.print(authUrl + "\n");
|
|
25
|
+
opts.print("After approving, your browser is redirected to a 127.0.0.1 URL that won't load — copy that whole URL (or just the code) and paste it here.");
|
|
26
|
+
const code = extractAuthCode(await opts.prompt("Paste the redirect URL or code: "));
|
|
27
|
+
if (!code) throw new Error("No authorization code provided.");
|
|
28
|
+
const tokens = await exchange(client, code);
|
|
29
|
+
if (!tokens.refreshToken) opts.print("Warning: Google did not return a refresh token. Remove the app's access at myaccount.google.com/permissions and log in again to force a fresh consent.");
|
|
30
|
+
const token = {
|
|
31
|
+
provider: "gmail",
|
|
32
|
+
user: opts.user,
|
|
33
|
+
accessToken: tokens.accessToken,
|
|
34
|
+
...tokens.refreshToken ? { refreshToken: tokens.refreshToken } : {},
|
|
35
|
+
expiresAt: tokens.expiresAt,
|
|
36
|
+
scope: "https://mail.google.com/"
|
|
37
|
+
};
|
|
38
|
+
saveMailboxToken(opts.dataDir, token);
|
|
39
|
+
return token;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Drive the Microsoft device-code flow: print the short user code + URL, poll
|
|
43
|
+
* until the user authorizes, and persist the IMAP tokens.
|
|
44
|
+
*/
|
|
45
|
+
async function runMicrosoftLogin(opts) {
|
|
46
|
+
const tenant = opts.tenant ?? "common";
|
|
47
|
+
const requestCode = opts.requestDeviceCodeFn ?? ((id, t) => requestDeviceCode(id, t));
|
|
48
|
+
const poll = opts.pollFn ?? ((o) => pollForToken(o));
|
|
49
|
+
const device = await requestCode(opts.clientId, tenant);
|
|
50
|
+
opts.print(`\nTo sign in, open ${device.verification_uri} and enter code: ${device.user_code}\n`);
|
|
51
|
+
opts.print("Waiting for authorization…");
|
|
52
|
+
const tokens = await poll({
|
|
53
|
+
clientId: opts.clientId,
|
|
54
|
+
deviceCode: device.device_code,
|
|
55
|
+
tenant,
|
|
56
|
+
interval: device.interval,
|
|
57
|
+
expiresIn: device.expires_in
|
|
58
|
+
});
|
|
59
|
+
const token = {
|
|
60
|
+
provider: "microsoft",
|
|
61
|
+
user: opts.user,
|
|
62
|
+
accessToken: tokens.accessToken,
|
|
63
|
+
...tokens.refreshToken ? { refreshToken: tokens.refreshToken } : {},
|
|
64
|
+
expiresAt: tokens.expiresAt,
|
|
65
|
+
scope: "https://outlook.office365.com/IMAP.AccessAsUser.All"
|
|
66
|
+
};
|
|
67
|
+
saveMailboxToken(opts.dataDir, token);
|
|
68
|
+
return token;
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { runGmailLogin, runMicrosoftLogin };
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=login-CYgla6-A.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-CYgla6-A.js","names":[],"sources":["../src/sync/oauth/login.ts"],"sourcesContent":["// src/sync/oauth/login.ts\nimport { saveMailboxToken, type MailboxToken } from \"./token-store.js\";\nimport {\n createOAuthClient,\n buildAuthUrl,\n exchangeCodeForTokens,\n DEFAULT_REDIRECT,\n type GoogleOAuthClient,\n} from \"./google.js\";\nimport {\n requestDeviceCode,\n pollForToken,\n type DeviceCodeResponse,\n type MicrosoftTokens,\n} from \"./microsoft.js\";\n\n/** Accept either a raw auth code or the full loopback redirect URL and return the code. */\nexport function extractAuthCode(input: string): string {\n const trimmed = input.trim();\n if (trimmed.includes(\"code=\")) {\n const m = trimmed.match(/[?&]code=([^&\\s]+)/);\n if (m?.[1]) return decodeURIComponent(m[1]);\n }\n return trimmed;\n}\n\nexport interface GmailLoginOptions {\n dataDir: string;\n clientId: string;\n clientSecret: string;\n user: string;\n prompt: (question: string) => Promise<string>;\n print: (line: string) => void;\n redirectUri?: string;\n // Injection points for tests:\n createClient?: (id: string, secret: string, redirect: string) => GoogleOAuthClient;\n exchange?: typeof exchangeCodeForTokens;\n}\n\n/**\n * Drive the Gmail installed-app OAuth flow: show the consent URL, read back the\n * authorization code (or the pasted redirect URL), exchange it for tokens with\n * the full `mail.google.com` IMAP scope, and persist them.\n */\nexport async function runGmailLogin(opts: GmailLoginOptions): Promise<MailboxToken> {\n const redirect = opts.redirectUri ?? DEFAULT_REDIRECT;\n const create = opts.createClient ?? createOAuthClient;\n const exchange = opts.exchange ?? exchangeCodeForTokens;\n\n const client = create(opts.clientId, opts.clientSecret, redirect);\n const authUrl = buildAuthUrl(client, redirect);\n\n opts.print(\"Authorize Gmail IMAP access by visiting this URL:\\n\");\n opts.print(authUrl + \"\\n\");\n opts.print(\n \"After approving, your browser is redirected to a 127.0.0.1 URL that won't load — \" +\n \"copy that whole URL (or just the code) and paste it here.\"\n );\n\n const answer = await opts.prompt(\"Paste the redirect URL or code: \");\n const code = extractAuthCode(answer);\n if (!code) throw new Error(\"No authorization code provided.\");\n\n const tokens = await exchange(client, code);\n if (!tokens.refreshToken) {\n opts.print(\n \"Warning: Google did not return a refresh token. Remove the app's access at \" +\n \"myaccount.google.com/permissions and log in again to force a fresh consent.\"\n );\n }\n\n const token: MailboxToken = {\n provider: \"gmail\",\n user: opts.user,\n accessToken: tokens.accessToken,\n ...(tokens.refreshToken ? { refreshToken: tokens.refreshToken } : {}),\n expiresAt: tokens.expiresAt,\n scope: \"https://mail.google.com/\",\n };\n saveMailboxToken(opts.dataDir, token);\n return token;\n}\n\nexport interface MicrosoftLoginOptions {\n dataDir: string;\n clientId: string;\n user: string;\n tenant?: string;\n print: (line: string) => void;\n // Injection points for tests:\n requestDeviceCodeFn?: (clientId: string, tenant: string) => Promise<DeviceCodeResponse>;\n pollFn?: (opts: {\n clientId: string;\n deviceCode: string;\n tenant: string;\n interval: number;\n expiresIn: number;\n }) => Promise<MicrosoftTokens>;\n}\n\n/**\n * Drive the Microsoft device-code flow: print the short user code + URL, poll\n * until the user authorizes, and persist the IMAP tokens.\n */\nexport async function runMicrosoftLogin(opts: MicrosoftLoginOptions): Promise<MailboxToken> {\n const tenant = opts.tenant ?? \"common\";\n const requestCode =\n opts.requestDeviceCodeFn ?? ((id: string, t: string) => requestDeviceCode(id, t));\n const poll =\n opts.pollFn ??\n ((o: {\n clientId: string;\n deviceCode: string;\n tenant: string;\n interval: number;\n expiresIn: number;\n }) => pollForToken(o));\n\n const device = await requestCode(opts.clientId, tenant);\n opts.print(`\\nTo sign in, open ${device.verification_uri} and enter code: ${device.user_code}\\n`);\n opts.print(\"Waiting for authorization…\");\n\n const tokens = await poll({\n clientId: opts.clientId,\n deviceCode: device.device_code,\n tenant,\n interval: device.interval,\n expiresIn: device.expires_in,\n });\n\n const token: MailboxToken = {\n provider: \"microsoft\",\n user: opts.user,\n accessToken: tokens.accessToken,\n ...(tokens.refreshToken ? { refreshToken: tokens.refreshToken } : {}),\n expiresAt: tokens.expiresAt,\n scope: \"https://outlook.office365.com/IMAP.AccessAsUser.All\",\n };\n saveMailboxToken(opts.dataDir, token);\n return token;\n}\n"],"mappings":";;;AAiBA,SAAgB,gBAAgB,OAAuB;CACrD,MAAM,UAAU,MAAM,KAAK;CAC3B,IAAI,QAAQ,SAAS,OAAO,GAAG;EAC7B,MAAM,IAAI,QAAQ,MAAM,oBAAoB;EAC5C,IAAI,IAAI,IAAI,OAAO,mBAAmB,EAAE,EAAE;CAC5C;CACA,OAAO;AACT;;;;;;AAoBA,eAAsB,cAAc,MAAgD;CAClF,MAAM,WAAW,KAAK,eAAA;CACtB,MAAM,SAAS,KAAK,gBAAgB;CACpC,MAAM,WAAW,KAAK,YAAY;CAElC,MAAM,SAAS,OAAO,KAAK,UAAU,KAAK,cAAc,QAAQ;CAChE,MAAM,UAAU,aAAa,QAAQ,QAAQ;CAE7C,KAAK,MAAM,qDAAqD;CAChE,KAAK,MAAM,UAAU,IAAI;CACzB,KAAK,MACH,4IAEF;CAGA,MAAM,OAAO,gBAAgB,MADR,KAAK,OAAO,kCAAkC,CAChC;CACnC,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,iCAAiC;CAE5D,MAAM,SAAS,MAAM,SAAS,QAAQ,IAAI;CAC1C,IAAI,CAAC,OAAO,cACV,KAAK,MACH,wJAEF;CAGF,MAAM,QAAsB;EAC1B,UAAU;EACV,MAAM,KAAK;EACX,aAAa,OAAO;EACpB,GAAI,OAAO,eAAe,EAAE,cAAc,OAAO,aAAa,IAAI,CAAC;EACnE,WAAW,OAAO;EAClB,OAAO;CACT;CACA,iBAAiB,KAAK,SAAS,KAAK;CACpC,OAAO;AACT;;;;;AAuBA,eAAsB,kBAAkB,MAAoD;CAC1F,MAAM,SAAS,KAAK,UAAU;CAC9B,MAAM,cACJ,KAAK,yBAAyB,IAAY,MAAc,kBAAkB,IAAI,CAAC;CACjF,MAAM,OACJ,KAAK,YACH,MAMI,aAAa,CAAC;CAEtB,MAAM,SAAS,MAAM,YAAY,KAAK,UAAU,MAAM;CACtD,KAAK,MAAM,sBAAsB,OAAO,iBAAiB,mBAAmB,OAAO,UAAU,GAAG;CAChG,KAAK,MAAM,4BAA4B;CAEvC,MAAM,SAAS,MAAM,KAAK;EACxB,UAAU,KAAK;EACf,YAAY,OAAO;EACnB;EACA,UAAU,OAAO;EACjB,WAAW,OAAO;CACpB,CAAC;CAED,MAAM,QAAsB;EAC1B,UAAU;EACV,MAAM,KAAK;EACX,aAAa,OAAO;EACpB,GAAI,OAAO,eAAe,EAAE,cAAc,OAAO,aAAa,IAAI,CAAC;EACnE,WAAW,OAAO;EAClB,OAAO;CACT;CACA,iBAAiB,KAAK,SAAS,KAAK;CACpC,OAAO;AACT"}
|