@d19n/youfibre-odin-sdk 2.0.346 → 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.
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d19n/youfibre-odin-sdk",
3
- "version": "2.0.346",
3
+ "version": "2.0.348",
4
4
  "description": "",
5
5
  "author": "@d19n",
6
6
  "license": "UNLICENSED",