- Copy cwmp-1-0..4.ts source classes from cwmp-connector (papaye) into app/protocol/ as local files (ts-nocheck, external dependency) - Add soap_envelope.ts: SoapEnvelope, SoapEnvelopeHeader, CwmpID, NAMESPACES - Add tr069_types.ts: re-exports all CWMP classes + CwmpMessage discriminated union + typed task payload interfaces (CWMPTaskType, CWMPTaskPayload, etc.) - Rewrite cwmp_message_builder.ts to use class-based builders instead of raw XML template strings; add transferCompleteResponse() and soapFault() - soap.ts: extractCwmpMessage returns CwmpMessage union, adds runtime allowlist guard against unknown CWMP method names from CPE - cwmp_middleware.ts: envelope typed SoapEnvelope|null, message CwmpMessage|null - cwmp_controller.ts: handleInform(informData: Inform), remove any, migrate TransferComplete and fault to new builder path, drop buildSoapEnvelope import - task_queue.ts: CWMPTask.type → CWMPTaskType literal union, payload → CWMPTaskPayload, result → CWMPTaskResultData - device_action_executor.ts: GPV/GPN/GPA responses typed, no more any - main_state_machine.ts: DeviceContext.message.data → CWMPTaskResultData, organizeParameters receives ParameterInfoStruct[] directly - device.ts: tmpParamValues typed ParameterValueStruct[], organizeParameters signature updated, updateFromValues typed - device_id.ts: fromInform typed with DeviceIdStruct - soap_envelope.ts: remove unconditional <cwmp:noMoreRequests> header (CPE→ACS only per TR-069 §3.7.1.4)
31 lines
777 B
TypeScript
31 lines
777 B
TypeScript
// @ts-nocheck — fichier copié de cwmp-connector (papaye)
|
|
import { Cwmp_1_2 } from './cwmp-1-2.js'
|
|
|
|
/**
|
|
* CWMP Version 1.3 Protocol Classes
|
|
*
|
|
* Extends CWMP 1.2 with:
|
|
* - New SOAP Header element: SessionTimeout
|
|
*/
|
|
export class Cwmp_1_3 extends Cwmp_1_2 {
|
|
public '@class' = '.Cwmp_1_3'
|
|
public SessionTimeout?: SessionTimeout
|
|
|
|
constructor(props: any = {}) {
|
|
super(props)
|
|
this.SessionTimeout = props.SessionTimeout ? new SessionTimeout(props.SessionTimeout) : undefined
|
|
}
|
|
}
|
|
|
|
// SOAP Header element for CWMP 1.3
|
|
export class SessionTimeout {
|
|
public '@class' = '.SessionTimeout'
|
|
public MustUnderstand: string = '0'
|
|
public _: number
|
|
|
|
constructor(props: any = {}) {
|
|
this.MustUnderstand = props.MustUnderstand ?? '0'
|
|
this._ = props._ ?? 0
|
|
}
|
|
}
|