HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/ai-notam/docs/mel-types.ts
export type SoftEqualString = string; // тип для свободных строк, когда мы не требуем точного совпадение строки
export type CoordinateValue = `^[0-9]*(\.?)[0-9]*(S|N|W|E)$`
export type CustomCoordinate = `^(ARP|THLD)([0-9]{0,2})(R|L|V)?$`
export type IcaoCode = `^[A-Z]{4}$`
export type LettersAndNumbers = `^[0-9A-Za-z\/]*$`
export type ID = `^[0-9A-Z\-]*$`
export type NumberRange = `^[0-9]*-[0-9]*$`
export type NumberType = `^[0-9\.]*$`
export type IntegerType = `^[0-9]*$`
export type WeekDayName = `(MON|TUE|WED|THU|FRI|SAT|SUN)`
export type DaysRange = `[0-9]{1,2}-?([0-9]{1,2})?`
export type MonthName = `^(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)$`
export type DateType = `^[0-9]{4}-[0-9]{2}-[0-9]{2}`
export type Time = `^[0-2][0-9]:[0-5][0-9](\ *[(][+]1[)])?$`
export type SunTime = `^(SS|SR)(\ *[-+]\ *([0-9]{2}))?$`
export type AcftTypes = `^(A124|A140|A148|A158|A19N|A20N|A21N|A21NX|A21NY|A210|A225|A306|A30B|A310|A310|A318|A318|A319|A319|A320|A320|A20F|A321|A321|A21F|A332|A333|A332|A333|A337|A338|A339|A342|A343|A345|A346|A359|A35K|A388|A3ST|A400|A5|A748|AC68|AC90|AJ27|AN12|AN2|AN24|AN26|AN28|AN30|AN32|AN72|AP22|AS32|AS50|AT43|AT45|AT46|AT72|AT73|AT75|AT76|ATL|ATP|B06|B06T|B105|B190|B212|B37M|B38M|B39M|B3XM|B412|B429|B461|B462|B463|B703|B712|B720|B721|B722|B732|B733|B734|B735|B736|B738|B739|B73C|B73E|B73F|B737|B73H|B73J|B73K|B73P|B73U|B73W|B73Y|B741|B741|B742|B742|B742|B743|B743|B744|B744|B744|B748|B748|B74D|B74R|B74R|B74S|B752|B752|B753|B762|B763|B764|B76W|B76X|B76Y|B772|B773|B778|B779|B77L|B77L|B77W|B788|B789|B78X|BA11|BCS1|BCS3|BE40|BE55|BE58|BE99|BELF|BER2|BL8|BLCF|BN2P|C130|C140|C152|C162|C172|C177|C182|C82R|C206|C208|C210|T210|C212|C25A|C25B|C25C|C30J|C310|C46|C500|C510|C525|C550|C560|C56X|C650|C680|C72R|C750|C77R|C919|CH7A|CH7B|CL2T|CL30|CL60|CN35|CONC|CONI|CRJ1|CRJ2|CRJ7|CRJ9|CRJX|CVLP|CVLT|D228|D328|DA40|DA42|DA62|DC10|DC10|DC10|DC10|DC10|DC3|DC6|DC85|DC86|DC87|DC91|DC92|DC93|DC94|DC95|DH2T|DH62|DH64|DH8A|DH8B|DH8C|DH8D|DHC2|DHC3|DHC4|DHC5|DHC6|DHC7|DOVE|E110|E120|E135|E135|E145|E170|E190|E195|E290|E295|E35L|E50P|E545|E550|E55P|E75L|E75S|EA30|EA31|EA32|EA33|EA34|EA50|EC20|EC25|EC30|EC35|EC45|EC55|EC75|ECHO|EV97|EVSS|EXPL|F100|F27|F28|F2TH|F406|F50|F70|F900|FA24|FA50|FA7X|G159|G21|G280|G73T|GA8|GL5T|GLEX|GLF4|GLF5|GLF6|GOLF|H25B|H25C|HDJT|HERN|I114|IL18|IL62|IL76|IL86|IL96|J328|JS31|JS32|JS41|JU52|K35R|L101|L188|L410|LJ35|LJ60|MD11|MD11|MD11|MD81|MD82|MD83|MD87|MD88|MD90|MI24|MI8|MU2|N262|NOMA|P06T|P8|P180|P208|P212|P28A|P28B|P68|PA31|PA44|PA46|PC12|PC6T|PC24|PIPA|PISI|PITA|PIVI|R200|RJ1H|RJ70|RJ85|RV4|S210|S58T|S601|S61|S65C|S76|S92|SB20|SC7|SF34|SF50|SH33|SH36|SIRA|SPIT|SR22|SU95|SW4|T134|T144|T154|T204|TB20|TL20|TRF1|TRIS|TWEN|V22|WW24|Y12|YK40|YK42|YS11|HEL)$`
export type ValuePlusUnits =  (number | string)[]

export type MelItems = {
  header_1: Header1,
  cdl_items?: CldContainer
}

export type CldContainer = {
  number?: SoftEqualString,
  name?: SoftEqualString,
  items?: CldItem[]
}

export type CldItem = {
  installed?: number
  may_be_missing?: number,
  cdl_number_may_not_be_missing?: SoftEqualString,
  cdl_enroute_climb_pnlty?: ValuePlusUnits,
  cdl_to_pnlty?: ValuePlusUnits,
  cdl_approach_pnlty?: ValuePlusUnits,
  cdl_land_pnlty?: ValuePlusUnits
}

export type Header1 = {
  number: ID,
  title: SoftEqualString,
  header_2: Header2
}

export type Header2 = {
  number: ID,
  title: SoftEqualString,
  header_3?: MelItem | Header3
}

export type Header3 = {
  number: ID,
  title: SoftEqualString,
  header_4?: MelItem | Header4
}

export type Header4 = {
  number: ID,
  title: SoftEqualString,
  header_5: MelItem | Header6
}

export type Header6 = {
  number: ID,
  title: SoftEqualString,
  header_6: MelItem | Header7
}

export type Header7 = {
  number: ID,
  title: SoftEqualString,
  header_7: MelItem | Header8
}

export type Header8 = {
  number: ID,
  title: SoftEqualString,
  header_8: MelItem | Header9
}

export type Header9 = {
  number: ID,
  title: SoftEqualString,
  header_9: MelItem
}

export type MelItem = {
  number: ID,
  title: SoftEqualString,
  ac_model?: AcftTypes[],
  aircraft_reg_number?: SoftEqualString[],
  aircraft_reg_exc?: SoftEqualString[],
  item_status?: SoftEqualString,
  interval?: SoftEqualString,
  installed: number,
  required: number,
  remarks?: SoftEqualString,
  operations?: SoftEqualString,
  maintenance?: SoftEqualString,
  fuel_flow?: ValuePlusUnits,
  fuel_hour_flow?: ValuePlusUnits,
  max_to_weight?: ValuePlusUnits,
  max_land_weight?: ValuePlusUnits,
  max_opr_altitude?: ValuePlusUnits,
  extra_fuel?: ValuePlusUnits,
  edto_avlb?: Boolean,
  edto_mdt?: ValuePlusUnits,
  edto_fuel_flow?: NumberType,
  ballast_fuel?: ValuePlusUnits,
  min_oat_ad?: ValuePlusUnits,
  max_oat_ad?: ValuePlusUnits,
  disable_equip_10a?: Boolean,
  disable_transponder?: Boolean,
  disable_equip_ADS_10b?:  Boolean,
  associated?: AssociatedMel[],
  to_field_weight_corr?: ValuePlusUnits,
  to_weight_limit?: ValuePlusUnits,
  to_brake_energy_weight_corr?: ValuePlusUnits,
  to_assumed_temp_usage?: Boolean,
  to_weight_corr?: ValuePlusUnits,
  ld_field_weight_asb_corr?: ValuePlusUnits,
  ld_weight_limit?: ValuePlusUnits,
  ld_weight_corr?: ValuePlusUnits,
  to_weight_limit_flaps?: WeightLimitFlaps[],
  ld_weight_limit_flaps?: WeightLimitFlaps[],
  airspeed_limit?: ValuePlusUnits,
  flaps_limit?: ValuePlusUnits,
  operation_icing_cond?: Boolean,
  reference_1?: SoftEqualString,
  reference_2?: SoftEqualString,
  reference_3?: SoftEqualString
}

export type WeightLimitFlaps = {
  flaps?: ValuePlusUnits | NumberType[],
  weight_limit?: ValuePlusUnits,
}

export type AssociatedMel = {
    number: ID,
    fuel_flow?: SoftEqualString[],
    max_to_weight?: SoftEqualString[],
    max_ld_weight?: SoftEqualString[],
    max_opr_altitude?: SoftEqualString,
    extra_fuel?: SoftEqualString,
    edto_available?: Boolean,
    edto_fuel_flow?: SoftEqualString[],
    ballast_fuel?: SoftEqualString[],
    min_oat_aerodrome?: SoftEqualString[],
    max_oat_aerodrome?: SoftEqualString[],
    disable_equip_10a?: SoftEqualString,
    disable_transponder?: SoftEqualString,
    disable_equip_ads_10b?:  SoftEqualString
}

export interface MelObject {
  airline_id?: SoftEqualString,
  aircraft_types?: AcftTypes[],
  mel_revision?: SoftEqualString,
  mel_date?: SoftEqualString,
  mmel_revision?: SoftEqualString,
  mmel_date?: SoftEqualString,
  revision: SoftEqualString,
  MEL_chapter: MelItems
  CheckNeeded?: boolean
}