@d19n/youfibre-odin-sdk 2.0.347 → 2.0.348
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/entities-v2/Case.d.ts +3 -2
- package/dist/entities-v2/Case.js +3 -2
- package/dist/entities-v2/Conversation.d.ts +2 -0
- package/dist/entities-v2/Conversation.js +2 -0
- package/dist/wholesale-provider/interface.d.ts +13 -1
- package/dist/wholesale-provider/providers/netomnia-provider.d.ts +5 -1
- package/dist/wholesale-provider/providers/netomnia-provider.js +6 -0
- package/dist/wholesale-provider/test/netomnia-provider.spec.js +30 -0
- package/dist/wholesale-provider/types/fibrecafe.d.ts +11 -0
- package/package.json +1 -1
|
@@ -352,6 +352,7 @@ export declare enum CaseProblem {
|
|
|
352
352
|
* - `FACEBOOK_COMMENT` - Facebook comment
|
|
353
353
|
* - `FACEBOOK_MESSENGER` - Facebook Messenger
|
|
354
354
|
* - `IN_APP_CHAT` - In-App Chat
|
|
355
|
+
* - `INSTAGRAM_COMMENT` - Instagram comment
|
|
355
356
|
* - `INSTAGRAM_DM` - Instagram DM
|
|
356
357
|
* - `SMS`
|
|
357
358
|
* - `TLOS_APP` - TLOS App
|
|
@@ -359,8 +360,7 @@ export declare enum CaseProblem {
|
|
|
359
360
|
* - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot review
|
|
360
361
|
* - `TWITTER_X_DM` - Twitter/X DM
|
|
361
362
|
* - `TWITTER_X_MENTION` - Twitter/X Mention
|
|
362
|
-
* -
|
|
363
|
-
* - ... and 2 more
|
|
363
|
+
* - ... and 3 more
|
|
364
364
|
*/
|
|
365
365
|
export declare enum CaseChannel {
|
|
366
366
|
CALL = "CALL",
|
|
@@ -370,6 +370,7 @@ export declare enum CaseChannel {
|
|
|
370
370
|
FACEBOOK_COMMENT = "FACEBOOK_COMMENT",
|
|
371
371
|
FACEBOOK_MESSENGER = "FACEBOOK_MESSENGER",
|
|
372
372
|
IN_APP_CHAT = "IN_APP_CHAT",
|
|
373
|
+
INSTAGRAM_COMMENT = "INSTAGRAM_COMMENT",
|
|
373
374
|
INSTAGRAM_DM = "INSTAGRAM_DM",
|
|
374
375
|
SMS = "SMS",
|
|
375
376
|
TLOS_APP = "TLOS_APP",
|
package/dist/entities-v2/Case.js
CHANGED
|
@@ -343,6 +343,7 @@ var CaseProblem;
|
|
|
343
343
|
* - `FACEBOOK_COMMENT` - Facebook comment
|
|
344
344
|
* - `FACEBOOK_MESSENGER` - Facebook Messenger
|
|
345
345
|
* - `IN_APP_CHAT` - In-App Chat
|
|
346
|
+
* - `INSTAGRAM_COMMENT` - Instagram comment
|
|
346
347
|
* - `INSTAGRAM_DM` - Instagram DM
|
|
347
348
|
* - `SMS`
|
|
348
349
|
* - `TLOS_APP` - TLOS App
|
|
@@ -350,8 +351,7 @@ var CaseProblem;
|
|
|
350
351
|
* - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot review
|
|
351
352
|
* - `TWITTER_X_DM` - Twitter/X DM
|
|
352
353
|
* - `TWITTER_X_MENTION` - Twitter/X Mention
|
|
353
|
-
* -
|
|
354
|
-
* - ... and 2 more
|
|
354
|
+
* - ... and 3 more
|
|
355
355
|
*/
|
|
356
356
|
var CaseChannel;
|
|
357
357
|
(function (CaseChannel) {
|
|
@@ -362,6 +362,7 @@ var CaseChannel;
|
|
|
362
362
|
CaseChannel["FACEBOOK_COMMENT"] = "FACEBOOK_COMMENT";
|
|
363
363
|
CaseChannel["FACEBOOK_MESSENGER"] = "FACEBOOK_MESSENGER";
|
|
364
364
|
CaseChannel["IN_APP_CHAT"] = "IN_APP_CHAT";
|
|
365
|
+
CaseChannel["INSTAGRAM_COMMENT"] = "INSTAGRAM_COMMENT";
|
|
365
366
|
CaseChannel["INSTAGRAM_DM"] = "INSTAGRAM_DM";
|
|
366
367
|
CaseChannel["SMS"] = "SMS";
|
|
367
368
|
CaseChannel["TLOS_APP"] = "TLOS_APP";
|
|
@@ -32,6 +32,7 @@ export declare enum ConversationEntityTypes {
|
|
|
32
32
|
* - `FACEBOOK_COMMENT` - Facebook comment
|
|
33
33
|
* - `FACEBOOK_MESSENGER` - Facebook Messenger
|
|
34
34
|
* - `IN_APP_CHAT` - In-App Chat
|
|
35
|
+
* - `INSTAGRAM_COMMENT` - Instagram comment
|
|
35
36
|
* - `INSTAGRAM_DM` - Instagram DM
|
|
36
37
|
* - `SMS`
|
|
37
38
|
* - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot Service Review
|
|
@@ -44,6 +45,7 @@ export declare enum ConversationChannel {
|
|
|
44
45
|
FACEBOOK_COMMENT = "FACEBOOK_COMMENT",
|
|
45
46
|
FACEBOOK_MESSENGER = "FACEBOOK_MESSENGER",
|
|
46
47
|
IN_APP_CHAT = "IN_APP_CHAT",
|
|
48
|
+
INSTAGRAM_COMMENT = "INSTAGRAM_COMMENT",
|
|
47
49
|
INSTAGRAM_DM = "INSTAGRAM_DM",
|
|
48
50
|
SMS = "SMS",
|
|
49
51
|
TRUSTPILOT_SERVICE_REVIEW = "TRUSTPILOT_SERVICE_REVIEW",
|
|
@@ -32,6 +32,7 @@ var ConversationEntityTypes;
|
|
|
32
32
|
* - `FACEBOOK_COMMENT` - Facebook comment
|
|
33
33
|
* - `FACEBOOK_MESSENGER` - Facebook Messenger
|
|
34
34
|
* - `IN_APP_CHAT` - In-App Chat
|
|
35
|
+
* - `INSTAGRAM_COMMENT` - Instagram comment
|
|
35
36
|
* - `INSTAGRAM_DM` - Instagram DM
|
|
36
37
|
* - `SMS`
|
|
37
38
|
* - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot Service Review
|
|
@@ -45,6 +46,7 @@ var ConversationChannel;
|
|
|
45
46
|
ConversationChannel["FACEBOOK_COMMENT"] = "FACEBOOK_COMMENT";
|
|
46
47
|
ConversationChannel["FACEBOOK_MESSENGER"] = "FACEBOOK_MESSENGER";
|
|
47
48
|
ConversationChannel["IN_APP_CHAT"] = "IN_APP_CHAT";
|
|
49
|
+
ConversationChannel["INSTAGRAM_COMMENT"] = "INSTAGRAM_COMMENT";
|
|
48
50
|
ConversationChannel["INSTAGRAM_DM"] = "INSTAGRAM_DM";
|
|
49
51
|
ConversationChannel["SMS"] = "SMS";
|
|
50
52
|
ConversationChannel["TRUSTPILOT_SERVICE_REVIEW"] = "TRUSTPILOT_SERVICE_REVIEW";
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* full types are available).
|
|
31
31
|
*/
|
|
32
32
|
import type { VMO2OrderNotification, VMO2SMRNotification } from './types/vmo2';
|
|
33
|
-
import type { FibreCafeServiceAvailability200, FibreCafeAvailableAppointments200, FibreCafeReserveAppointment201, FibreCafeScheduleServiceWorkOrder201, FibreCafeRescheduleServiceWorkOrder200, FibreCafeOrderCreate202, FibreCafeOrderAmendAccept202, FibreCafeKciDto, FibreCafeServiceProblemCancellationReasonCode } from './types/fibrecafe';
|
|
33
|
+
import type { FibreCafeServiceAvailability200, FibreCafeAvailableAppointments200, FibreCafeReserveAppointment201, FibreCafeScheduleServiceWorkOrder201, FibreCafeRescheduleServiceWorkOrder200, FibreCafeOrderCreate202, FibreCafeStartOrderActivateAccept202, FibreCafeOrderAmendAccept202, FibreCafeKciDto, FibreCafeServiceProblemCancellationReasonCode } from './types/fibrecafe';
|
|
34
34
|
/**
|
|
35
35
|
* Reasons a cancellation request can be made (NET wire-level enum value
|
|
36
36
|
* passed through to the FibreCafe gateway).
|
|
@@ -258,6 +258,18 @@ export interface WholesaleProvider<TPrincipal = unknown> {
|
|
|
258
258
|
cancelOrder(yfOrderId: string, reasonCode: CancellationReasonCode): Promise<FibreCafeOrderCreate202>;
|
|
259
259
|
/** Active-customer cease (post-Active churn / OTS-losing). */
|
|
260
260
|
ceaseOrder(yfOrderId: string, serviceId: string): Promise<FibreCafeOrderCreate202>;
|
|
261
|
+
/**
|
|
262
|
+
* ORD-326: ask the supplier to activate an in-flight START order now, ahead
|
|
263
|
+
* of its requested date. Accepted synchronously; the COMPLETED (or REAPPOINT)
|
|
264
|
+
* KCI follows.
|
|
265
|
+
*/
|
|
266
|
+
activateStartOrder(yfOrderId: string): Promise<FibreCafeStartOrderActivateAccept202>;
|
|
267
|
+
/**
|
|
268
|
+
* ORD-335: move an in-flight provide order's requested completion date — the
|
|
269
|
+
* day the supplier activates a START. Sent as an order amendment; the
|
|
270
|
+
* AMENDED KCI confirms it.
|
|
271
|
+
*/
|
|
272
|
+
amendRequestedCompletionDate(yfOrderId: string, requestedCompletionDate: string): Promise<FibreCafeOrderAmendAccept202>;
|
|
261
273
|
/**
|
|
262
274
|
* Tenant-initiated cancel of an inflight SERVICE WO. Structurally
|
|
263
275
|
* parallel to `rescheduleServiceWorkOrder` — same flat-primitive args,
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import type { WholesaleProvider, CreateOrderOptions, CancellationReasonCode, CancelServiceWorkOrderArgs, FindOrderByExternalRefArgs, FindOrderByExternalRefResult, ReserveAppointmentArgs, ListAppointmentsArgs, ScheduleServiceWorkOrderArgs, RescheduleServiceWorkOrderArgs, AmendAppointmentArgs, RequestTenantReappointmentArgs, SyncWorkOrderToSupplierArgs, UpdateOrderExternalRefArgs } from '../interface';
|
|
31
31
|
import type { VMO2OrderNotification, VMO2SMRNotification } from '../types/vmo2';
|
|
32
|
-
import type { FibreCafeServiceAvailability200, FibreCafeAvailableAppointments200, FibreCafeReserveAppointment201, FibreCafeScheduleServiceWorkOrder201, FibreCafeRescheduleServiceWorkOrder200, FibreCafeOrderCreate202, FibreCafeOrderAmendAccept202, FibreCafeKciDto } from '../types/fibrecafe';
|
|
32
|
+
import type { FibreCafeServiceAvailability200, FibreCafeAvailableAppointments200, FibreCafeReserveAppointment201, FibreCafeScheduleServiceWorkOrder201, FibreCafeRescheduleServiceWorkOrder200, FibreCafeOrderCreate202, FibreCafeOrderAmendAccept202, FibreCafeStartOrderActivateAccept202, FibreCafeKciDto } from '../types/fibrecafe';
|
|
33
33
|
/**
|
|
34
34
|
* Function-bag of dependencies the NetomniaProvider delegates to.
|
|
35
35
|
*
|
|
@@ -61,6 +61,8 @@ export interface NetomniaProviderDeps<TPrincipal = unknown, TKci = FibreCafeKciD
|
|
|
61
61
|
amendOrder: (principal: TPrincipal, yfOrderId: string) => Promise<FibreCafeOrderCreate202 | null>;
|
|
62
62
|
cancelOrder: (yfOrderId: string, reasonCode: CancellationReasonCode) => Promise<FibreCafeOrderCreate202>;
|
|
63
63
|
ceaseOrder: (yfOrderId: string, serviceId: string) => Promise<FibreCafeOrderCreate202>;
|
|
64
|
+
activateStartOrder: (yfOrderId: string) => Promise<FibreCafeStartOrderActivateAccept202>;
|
|
65
|
+
amendRequestedCompletionDate: (yfOrderId: string, requestedCompletionDate: string) => Promise<FibreCafeOrderAmendAccept202>;
|
|
64
66
|
cancelServiceWorkOrder: (args: CancelServiceWorkOrderArgs) => Promise<FibreCafeRescheduleServiceWorkOrder200>;
|
|
65
67
|
/**
|
|
66
68
|
* Required, deliberately. Wiring it is what makes the supplier-order
|
|
@@ -91,6 +93,8 @@ export declare class NetomniaProvider<TPrincipal = unknown> implements Wholesale
|
|
|
91
93
|
amendOrder(principal: TPrincipal, yfOrderId: string): Promise<FibreCafeOrderCreate202>;
|
|
92
94
|
cancelOrder(yfOrderId: string, reasonCode: CancellationReasonCode): Promise<FibreCafeOrderCreate202>;
|
|
93
95
|
ceaseOrder(yfOrderId: string, serviceId: string): Promise<FibreCafeOrderCreate202>;
|
|
96
|
+
activateStartOrder(yfOrderId: string): Promise<FibreCafeStartOrderActivateAccept202>;
|
|
97
|
+
amendRequestedCompletionDate(yfOrderId: string, requestedCompletionDate: string): Promise<FibreCafeOrderAmendAccept202>;
|
|
94
98
|
cancelServiceWorkOrder(args: CancelServiceWorkOrderArgs): Promise<FibreCafeRescheduleServiceWorkOrder200>;
|
|
95
99
|
findOrderByExternalRef(args: FindOrderByExternalRefArgs): Promise<FindOrderByExternalRefResult>;
|
|
96
100
|
receiveKci(principal: TPrincipal, dto: FibreCafeKciDto): Promise<void>;
|
|
@@ -50,6 +50,12 @@ class NetomniaProvider {
|
|
|
50
50
|
ceaseOrder(yfOrderId, serviceId) {
|
|
51
51
|
return this.deps.ceaseOrder(yfOrderId, serviceId);
|
|
52
52
|
}
|
|
53
|
+
activateStartOrder(yfOrderId) {
|
|
54
|
+
return this.deps.activateStartOrder(yfOrderId);
|
|
55
|
+
}
|
|
56
|
+
amendRequestedCompletionDate(yfOrderId, requestedCompletionDate) {
|
|
57
|
+
return this.deps.amendRequestedCompletionDate(yfOrderId, requestedCompletionDate);
|
|
58
|
+
}
|
|
53
59
|
cancelServiceWorkOrder(args) {
|
|
54
60
|
return this.deps.cancelServiceWorkOrder(args);
|
|
55
61
|
}
|
|
@@ -72,6 +72,8 @@ function buildDeps() {
|
|
|
72
72
|
amendOrder: {},
|
|
73
73
|
cancelOrder: {},
|
|
74
74
|
ceaseOrder: {},
|
|
75
|
+
activateStartOrder: { id: 'net-order-1', externalRef: 'ORD-1', recordNumber: 'OR1' },
|
|
76
|
+
amendRequestedCompletionDate: {},
|
|
75
77
|
cancelServiceWorkOrder: { workOrderId: 'WO-CANC-1', appointmentId: '' },
|
|
76
78
|
findOrderByExternalRef: { found: true, supplierOrderId: 'NET-ORD-1', supplierOrderRef: 'ORD123' },
|
|
77
79
|
};
|
|
@@ -124,6 +126,14 @@ function buildDeps() {
|
|
|
124
126
|
log.push({ method: 'ceaseOrder', args: [yfOrderId, serviceId] });
|
|
125
127
|
return Promise.resolve(stubs.ceaseOrder);
|
|
126
128
|
},
|
|
129
|
+
activateStartOrder: (yfOrderId) => {
|
|
130
|
+
log.push({ method: 'activateStartOrder', args: [yfOrderId] });
|
|
131
|
+
return Promise.resolve(stubs.activateStartOrder);
|
|
132
|
+
},
|
|
133
|
+
amendRequestedCompletionDate: (yfOrderId, requestedCompletionDate) => {
|
|
134
|
+
log.push({ method: 'amendRequestedCompletionDate', args: [yfOrderId, requestedCompletionDate] });
|
|
135
|
+
return Promise.resolve(stubs.amendRequestedCompletionDate);
|
|
136
|
+
},
|
|
127
137
|
cancelServiceWorkOrder: (args) => {
|
|
128
138
|
log.push({ method: 'cancelServiceWorkOrder', args: [args] });
|
|
129
139
|
return Promise.resolve(stubs.cancelServiceWorkOrder);
|
|
@@ -296,6 +306,26 @@ function run() {
|
|
|
296
306
|
assert('orderId forwarded', log[0].args[0] === 'ORD-1');
|
|
297
307
|
assert('reasonCode forwarded', log[0].args[1] === 'CUSTOMER_CHANGED_MIND');
|
|
298
308
|
}
|
|
309
|
+
console.log('Test: activateStartOrder delegates to deps and returns the accept body');
|
|
310
|
+
{
|
|
311
|
+
const { deps, log } = buildDeps();
|
|
312
|
+
const p = new netomnia_provider_1.NetomniaProvider(deps);
|
|
313
|
+
const res = yield p.activateStartOrder('ORD-1');
|
|
314
|
+
assert('called once', log.length === 1);
|
|
315
|
+
assert('correct method', log[0].method === 'activateStartOrder');
|
|
316
|
+
assert('orderId forwarded', log[0].args[0] === 'ORD-1');
|
|
317
|
+
assert('accept body returned', res.id === 'net-order-1' && res.externalRef === 'ORD-1');
|
|
318
|
+
}
|
|
319
|
+
console.log('Test: amendRequestedCompletionDate delegates to deps');
|
|
320
|
+
{
|
|
321
|
+
const { deps, log } = buildDeps();
|
|
322
|
+
const p = new netomnia_provider_1.NetomniaProvider(deps);
|
|
323
|
+
yield p.amendRequestedCompletionDate('ORD-1', '2026-10-05');
|
|
324
|
+
assert('called once', log.length === 1);
|
|
325
|
+
assert('correct method', log[0].method === 'amendRequestedCompletionDate');
|
|
326
|
+
assert('orderId forwarded', log[0].args[0] === 'ORD-1');
|
|
327
|
+
assert('date forwarded', log[0].args[1] === '2026-10-05');
|
|
328
|
+
}
|
|
299
329
|
console.log('Test: ceaseOrder delegates to deps');
|
|
300
330
|
{
|
|
301
331
|
const { deps, log } = buildDeps();
|
|
@@ -344,6 +344,17 @@ export declare type FibreCafeOrderCreateDto = FibreCafeProvideServiceOrderDto |
|
|
|
344
344
|
/** 202 — order accepted; will be acknowledged via KCI. Empty body. */
|
|
345
345
|
export interface FibreCafeOrderCreate202 {
|
|
346
346
|
}
|
|
347
|
+
/**
|
|
348
|
+
* ORD-327: accept body of `POST service-orders/:externalRef/activate`. The
|
|
349
|
+
* outcome arrives later as a KCI — COMPLETED, or REAPPOINT (ACTIVATION_FAILED).
|
|
350
|
+
*/
|
|
351
|
+
export interface FibreCafeStartOrderActivateAccept202 {
|
|
352
|
+
/** Supplier order id. */
|
|
353
|
+
id: string;
|
|
354
|
+
/** Tenant order id — the YF Order id. */
|
|
355
|
+
externalRef: string;
|
|
356
|
+
recordNumber?: string;
|
|
357
|
+
}
|
|
347
358
|
export interface FibreCafeServiceOrderCancellationDto {
|
|
348
359
|
/** Caller-generated cancellation request id. */
|
|
349
360
|
id: string;
|