triangle-types 1.0.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/dist/src/index.d.ts +59 -0
- package/dist/src/index.js +59 -0
- package/dist/src/types/APIError.d.ts +4 -0
- package/dist/src/types/APIError.js +19 -0
- package/dist/src/types/State.d.ts +8 -0
- package/dist/src/types/State.js +210 -0
- package/dist/src/types/User.d.ts +7 -0
- package/dist/src/types/User.js +20 -0
- package/dist/src/types/federal_congress/FederalCongressBill.d.ts +18 -0
- package/dist/src/types/federal_congress/FederalCongressBill.js +44 -0
- package/dist/src/types/federal_congress/FederalCongressBillDocument.d.ts +20 -0
- package/dist/src/types/federal_congress/FederalCongressBillDocument.js +49 -0
- package/dist/src/types/federal_dockets/FederalDocket.d.ts +9 -0
- package/dist/src/types/federal_dockets/FederalDocket.js +25 -0
- package/dist/src/types/federal_dockets/FederalDocketAgency.d.ts +8 -0
- package/dist/src/types/federal_dockets/FederalDocketAgency.js +22 -0
- package/dist/src/types/federal_dockets/FederalDocketComment.d.ts +30 -0
- package/dist/src/types/federal_dockets/FederalDocketComment.js +86 -0
- package/dist/src/types/federal_dockets/FederalDocketCommentAttachment.d.ts +9 -0
- package/dist/src/types/federal_dockets/FederalDocketCommentAttachment.js +25 -0
- package/dist/src/types/federal_dockets/FederalDocketDocument.d.ts +27 -0
- package/dist/src/types/federal_dockets/FederalDocketDocument.js +74 -0
- package/dist/src/types/federal_elections/FederalElection.d.ts +27 -0
- package/dist/src/types/federal_elections/FederalElection.js +86 -0
- package/dist/src/types/federal_elections/FederalElectionCandidate.d.ts +40 -0
- package/dist/src/types/federal_elections/FederalElectionCandidate.js +105 -0
- package/dist/src/types/federal_elections/FederalElectionCandidateCommittee.d.ts +7 -0
- package/dist/src/types/federal_elections/FederalElectionCandidateCommittee.js +32 -0
- package/dist/src/types/federal_elections/FederalElectionCommittee.d.ts +27 -0
- package/dist/src/types/federal_elections/FederalElectionCommittee.js +68 -0
- package/dist/src/types/federal_elections/FederalElectionDonation.d.ts +29 -0
- package/dist/src/types/federal_elections/FederalElectionDonation.js +82 -0
- package/dist/src/types/federal_elections/FederalElectionF1File.d.ts +18 -0
- package/dist/src/types/federal_elections/FederalElectionF1File.js +48 -0
- package/dist/src/types/federal_elections/FederalElectionF24File.d.ts +12 -0
- package/dist/src/types/federal_elections/FederalElectionF24File.js +32 -0
- package/dist/src/types/federal_elections/FederalElectionF2File.d.ts +15 -0
- package/dist/src/types/federal_elections/FederalElectionF2File.js +39 -0
- package/dist/src/types/federal_elections/FederalElectionF3File.d.ts +13 -0
- package/dist/src/types/federal_elections/FederalElectionF3File.js +37 -0
- package/dist/src/types/federal_elections/FederalElectionFile.d.ts +15 -0
- package/dist/src/types/federal_elections/FederalElectionFile.js +33 -0
- package/dist/src/types/federal_elections/FederalElectionFileExpenditure.d.ts +28 -0
- package/dist/src/types/federal_elections/FederalElectionFileExpenditure.js +70 -0
- package/dist/src/types/federal_elections/FormTypeID.d.ts +9 -0
- package/dist/src/types/federal_elections/FormTypeID.js +17 -0
- package/dist/src/types/federal_lobby/FederalLobbyAgency.d.ts +6 -0
- package/dist/src/types/federal_lobby/FederalLobbyAgency.js +16 -0
- package/dist/src/types/federal_lobby/FederalLobbyClient.d.ts +15 -0
- package/dist/src/types/federal_lobby/FederalLobbyClient.js +43 -0
- package/dist/src/types/federal_lobby/FederalLobbyDocument.d.ts +66 -0
- package/dist/src/types/federal_lobby/FederalLobbyDocument.js +190 -0
- package/dist/src/types/federal_lobby/FederalLobbyDocumentInterest.d.ts +18 -0
- package/dist/src/types/federal_lobby/FederalLobbyDocumentInterest.js +50 -0
- package/dist/src/types/federal_lobby/FederalLobbyLobbyist.d.ts +12 -0
- package/dist/src/types/federal_lobby/FederalLobbyLobbyist.js +34 -0
- package/dist/src/types/federal_lobby/FederalLobbyRegistrant.d.ts +20 -0
- package/dist/src/types/federal_lobby/FederalLobbyRegistrant.js +58 -0
- package/dist/src/types/federal_register/FederalRegisterAgency.d.ts +13 -0
- package/dist/src/types/federal_register/FederalRegisterAgency.js +37 -0
- package/dist/src/types/federal_register/FederalRegisterDocument.d.ts +21 -0
- package/dist/src/types/federal_register/FederalRegisterDocument.js +56 -0
- package/dist/src/types/federal_rules/FederalRuleSection.d.ts +13 -0
- package/dist/src/types/federal_rules/FederalRuleSection.js +37 -0
- package/dist/src/types/federal_rules/FederalRuleTitle.d.ts +8 -0
- package/dist/src/types/federal_rules/FederalRuleTitle.js +22 -0
- package/dist/src/types/press/PressArticle.d.ts +12 -0
- package/dist/src/types/press/PressArticle.js +34 -0
- package/dist/src/types/press/PressArticleTag.d.ts +16 -0
- package/dist/src/types/press/PressArticleTag.js +40 -0
- package/dist/src/types/state_permits/AR/ARStateFacility.d.ts +7 -0
- package/dist/src/types/state_permits/AR/ARStateFacility.js +15 -0
- package/dist/src/types/state_permits/AR/ARStatePermit.d.ts +8 -0
- package/dist/src/types/state_permits/AR/ARStatePermit.js +18 -0
- package/dist/src/types/state_permits/AR/ARStatePermitDocument.d.ts +9 -0
- package/dist/src/types/state_permits/AR/ARStatePermitDocument.js +21 -0
- package/dist/src/types/state_permits/KY/KYStateFacility.d.ts +7 -0
- package/dist/src/types/state_permits/KY/KYStateFacility.js +15 -0
- package/dist/src/types/state_permits/KY/KYStatePermit.d.ts +7 -0
- package/dist/src/types/state_permits/KY/KYStatePermit.js +15 -0
- package/dist/src/types/state_permits/KY/KYStatePermitDocument.d.ts +8 -0
- package/dist/src/types/state_permits/KY/KYStatePermitDocument.js +18 -0
- package/dist/src/types/state_permits/NC/NCStateFacility.d.ts +8 -0
- package/dist/src/types/state_permits/NC/NCStateFacility.js +18 -0
- package/dist/src/types/state_permits/NC/NCStatePermit.d.ts +7 -0
- package/dist/src/types/state_permits/NC/NCStatePermit.js +15 -0
- package/dist/src/types/state_permits/NC/NCStatePermitDocument.d.ts +8 -0
- package/dist/src/types/state_permits/NC/NCStatePermitDocument.js +18 -0
- package/dist/src/types/state_permits/StateFacility.d.ts +20 -0
- package/dist/src/types/state_permits/StateFacility.js +49 -0
- package/dist/src/types/state_permits/StatePermit.d.ts +27 -0
- package/dist/src/types/state_permits/StatePermit.js +69 -0
- package/dist/src/types/state_permits/StatePermitDocument.d.ts +37 -0
- package/dist/src/types/state_permits/StatePermitDocument.js +95 -0
- package/dist/src/types/state_permits/StatePermitDocumentSource.d.ts +48 -0
- package/dist/src/types/state_permits/StatePermitDocumentSource.js +123 -0
- package/dist/src/types/state_permits/StatePermitDocumentSourcePollutant.d.ts +35 -0
- package/dist/src/types/state_permits/StatePermitDocumentSourcePollutant.js +90 -0
- package/dist/src/types/state_permits/TN/TNStateFacility.d.ts +7 -0
- package/dist/src/types/state_permits/TN/TNStateFacility.js +15 -0
- package/dist/src/types/state_permits/TN/TNStatePermit.d.ts +8 -0
- package/dist/src/types/state_permits/TN/TNStatePermit.js +18 -0
- package/dist/src/types/state_permits/TN/TNStatePermitDocument.d.ts +8 -0
- package/dist/src/types/state_permits/TN/TNStatePermitDocument.js +18 -0
- package/dist/src/types/state_permits/WI/WIStatePermit.d.ts +8 -0
- package/dist/src/types/state_permits/WI/WIStatePermit.js +18 -0
- package/dist/src/types/state_permits/WI/WIStatePermitDocument.d.ts +7 -0
- package/dist/src/types/state_permits/WI/WIStatePermitDocument.js +15 -0
- package/dist/src/types/twitter/TwitterTweet.d.ts +21 -0
- package/dist/src/types/twitter/TwitterTweet.js +61 -0
- package/dist/src/types/twitter/TwitterUser.d.ts +17 -0
- package/dist/src/types/twitter/TwitterUser.js +49 -0
- package/dist/src/types/twitter/TwitterUserTag.d.ts +13 -0
- package/dist/src/types/twitter/TwitterUserTag.js +31 -0
- package/dist/src/types/youtube/YoutubeChannel.d.ts +6 -0
- package/dist/src/types/youtube/YoutubeChannel.js +16 -0
- package/dist/src/types/youtube/YoutubeVideo.d.ts +18 -0
- package/dist/src/types/youtube/YoutubeVideo.js +46 -0
- package/dist/src/types/youtube/YoutubeVideoTag.d.ts +15 -0
- package/dist/src/types/youtube/YoutubeVideoTag.js +37 -0
- package/package.json +25 -0
- package/src/index.ts +72 -0
- package/src/types/APIError.ts +21 -0
- package/src/types/State.ts +219 -0
- package/src/types/User.ts +24 -0
- package/src/types/federal_congress/FederalCongressBill.ts +53 -0
- package/src/types/federal_congress/FederalCongressBillDocument.ts +60 -0
- package/src/types/federal_dockets/FederalDocket.ts +29 -0
- package/src/types/federal_dockets/FederalDocketAgency.ts +26 -0
- package/src/types/federal_dockets/FederalDocketComment.ts +96 -0
- package/src/types/federal_dockets/FederalDocketCommentAttachment.ts +29 -0
- package/src/types/federal_dockets/FederalDocketDocument.ts +82 -0
- package/src/types/federal_elections/FederalElection.ts +105 -0
- package/src/types/federal_elections/FederalElectionCandidate.ts +124 -0
- package/src/types/federal_elections/FederalElectionCandidateCommittee.ts +40 -0
- package/src/types/federal_elections/FederalElectionCommittee.ts +83 -0
- package/src/types/federal_elections/FederalElectionDonation.ts +88 -0
- package/src/types/federal_elections/FederalElectionF1File.ts +53 -0
- package/src/types/federal_elections/FederalElectionF24File.ts +37 -0
- package/src/types/federal_elections/FederalElectionF2File.ts +44 -0
- package/src/types/federal_elections/FederalElectionF3File.ts +42 -0
- package/src/types/federal_elections/FederalElectionFile.ts +43 -0
- package/src/types/federal_elections/FederalElectionFileExpenditure.ts +82 -0
- package/src/types/federal_elections/FormTypeID.ts +28 -0
- package/src/types/federal_lobby/FederalLobbyAgency.ts +20 -0
- package/src/types/federal_lobby/FederalLobbyClient.ts +47 -0
- package/src/types/federal_lobby/FederalLobbyDocument.ts +209 -0
- package/src/types/federal_lobby/FederalLobbyDocumentInterest.ts +60 -0
- package/src/types/federal_lobby/FederalLobbyLobbyist.ts +38 -0
- package/src/types/federal_lobby/FederalLobbyRegistrant.ts +62 -0
- package/src/types/federal_register/FederalRegisterAgency.ts +41 -0
- package/src/types/federal_register/FederalRegisterDocument.ts +64 -0
- package/src/types/federal_rules/FederalRuleSection.ts +42 -0
- package/src/types/federal_rules/FederalRuleTitle.ts +26 -0
- package/src/types/press/PressArticle.ts +38 -0
- package/src/types/press/PressArticleTag.ts +51 -0
- package/src/types/state_permits/AR/ARStateFacility.ts +21 -0
- package/src/types/state_permits/AR/ARStatePermit.ts +24 -0
- package/src/types/state_permits/AR/ARStatePermitDocument.ts +27 -0
- package/src/types/state_permits/KY/KYStateFacility.ts +22 -0
- package/src/types/state_permits/KY/KYStatePermit.ts +21 -0
- package/src/types/state_permits/KY/KYStatePermitDocument.ts +24 -0
- package/src/types/state_permits/NC/NCStateFacility.ts +24 -0
- package/src/types/state_permits/NC/NCStatePermit.ts +22 -0
- package/src/types/state_permits/NC/NCStatePermitDocument.ts +24 -0
- package/src/types/state_permits/StateFacility.ts +60 -0
- package/src/types/state_permits/StatePermit.ts +85 -0
- package/src/types/state_permits/StatePermitDocument.ts +118 -0
- package/src/types/state_permits/StatePermitDocumentSource.ts +146 -0
- package/src/types/state_permits/StatePermitDocumentSourcePollutant.ts +108 -0
- package/src/types/state_permits/TN/TNStateFacility.ts +21 -0
- package/src/types/state_permits/TN/TNStatePermit.ts +24 -0
- package/src/types/state_permits/TN/TNStatePermitDocument.ts +24 -0
- package/src/types/state_permits/WI/WIStatePermit.ts +24 -0
- package/src/types/state_permits/WI/WIStatePermitDocument.ts +21 -0
- package/src/types/twitter/TwitterTweet.ts +66 -0
- package/src/types/twitter/TwitterUser.ts +53 -0
- package/src/types/twitter/TwitterUserTag.ts +42 -0
- package/src/types/youtube/YoutubeChannel.ts +20 -0
- package/src/types/youtube/YoutubeVideo.ts +57 -0
- package/src/types/youtube/YoutubeVideoTag.ts +48 -0
- package/tsconfig.json +34 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { FederalCongressBillTypeID } from "./FederalCongressBill"
|
|
2
|
+
|
|
3
|
+
const federal_congress_bill_document_type_ids = [
|
|
4
|
+
"AS", "ASH", "ATH", "ATS", "CDH", "CDS", "CPH", "CPS", "EAH", "EAS", "EH", "ENR", "ES", "FPH", "FPS", "HDS", "IH", "IPH", "IPS", "IS", "LTH", "LTS", "PAP", "PCS", "PP", "PVTL", "PL", "RCH", "RCS", "RDS", "RFH", "RFS", "RH", "RHUC", "RIH", "RS", "RTH", "RTS", "SC", "STATPVT", "STAT", "STATCONRES"
|
|
5
|
+
] as const
|
|
6
|
+
|
|
7
|
+
export type FederalCongressBillDocumentTypeID = typeof federal_congress_bill_document_type_ids[number]
|
|
8
|
+
|
|
9
|
+
export function is_federal_congress_bill_document_type_id(federal_congress_bill_document_type_id : any) : federal_congress_bill_document_type_id is FederalCongressBillDocumentTypeID {
|
|
10
|
+
return federal_congress_bill_document_type_ids.includes(federal_congress_bill_document_type_id)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export class FederalCongressBillDocument {
|
|
14
|
+
readonly federal_congress_bill_document_id : string
|
|
15
|
+
readonly federal_congress_bill_id : string
|
|
16
|
+
readonly document_id : string
|
|
17
|
+
readonly congress_id : number
|
|
18
|
+
readonly bill_id : string
|
|
19
|
+
readonly bill_type_id : FederalCongressBillTypeID
|
|
20
|
+
readonly number : number
|
|
21
|
+
readonly bill_document_type_id : FederalCongressBillDocumentTypeID
|
|
22
|
+
readonly format_id : string
|
|
23
|
+
readonly publish_time? : string
|
|
24
|
+
readonly s3_id? : string
|
|
25
|
+
|
|
26
|
+
constructor(federal_congress_bill_document : any) {
|
|
27
|
+
if (!FederalCongressBillDocument.is(federal_congress_bill_document)) {
|
|
28
|
+
throw Error("Invalid input.")
|
|
29
|
+
}
|
|
30
|
+
this.federal_congress_bill_document_id = federal_congress_bill_document.federal_congress_bill_document_id
|
|
31
|
+
this.federal_congress_bill_id = federal_congress_bill_document.federal_congress_bill_id
|
|
32
|
+
this.congress_id = federal_congress_bill_document.congress_id
|
|
33
|
+
this.bill_id = federal_congress_bill_document.bill_id
|
|
34
|
+
this.bill_type_id = federal_congress_bill_document.bill_type_id
|
|
35
|
+
this.number = federal_congress_bill_document.number
|
|
36
|
+
this.document_id = federal_congress_bill_document.document_id
|
|
37
|
+
this.bill_document_type_id = federal_congress_bill_document.bill_document_type_id
|
|
38
|
+
this.format_id = federal_congress_bill_document.format_id
|
|
39
|
+
this.publish_time = federal_congress_bill_document.publish_time
|
|
40
|
+
this.s3_id = federal_congress_bill_document.s3_id
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static is(federal_congress_bill_document : any) : federal_congress_bill_document is FederalCongressBillDocument {
|
|
44
|
+
return (
|
|
45
|
+
federal_congress_bill_document !== undefined &&
|
|
46
|
+
typeof federal_congress_bill_document.federal_congress_bill_document_id === "string" &&
|
|
47
|
+
typeof federal_congress_bill_document.federal_congress_bill_id === "string" &&
|
|
48
|
+
typeof federal_congress_bill_document.congress_id === "number" &&
|
|
49
|
+
typeof federal_congress_bill_document.bill_id === "string" &&
|
|
50
|
+
typeof federal_congress_bill_document.bill_type_id === "string" &&
|
|
51
|
+
typeof federal_congress_bill_document.number === "number" &&
|
|
52
|
+
typeof federal_congress_bill_document.document_id === "string" &&
|
|
53
|
+
is_federal_congress_bill_document_type_id(federal_congress_bill_document.bill_document_type_id) &&
|
|
54
|
+
typeof federal_congress_bill_document.format_id === "string" &&
|
|
55
|
+
(federal_congress_bill_document.publish_time === undefined || typeof federal_congress_bill_document.publish_time === "string") &&
|
|
56
|
+
(federal_congress_bill_document.s3_id === undefined || typeof federal_congress_bill_document.s3_id === "string")
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class FederalDocket {
|
|
2
|
+
readonly federal_docket_id : string
|
|
3
|
+
readonly federal_docket_agency_id : string
|
|
4
|
+
readonly is_rule : boolean
|
|
5
|
+
readonly title : string
|
|
6
|
+
readonly modify_time : string
|
|
7
|
+
|
|
8
|
+
constructor(federal_docket : any) {
|
|
9
|
+
if (!FederalDocket.is(federal_docket)) {
|
|
10
|
+
throw Error("Invalid input.")
|
|
11
|
+
}
|
|
12
|
+
this.federal_docket_id = federal_docket.federal_docket_id
|
|
13
|
+
this.federal_docket_agency_id = federal_docket.federal_docket_agency_id
|
|
14
|
+
this.is_rule = federal_docket.is_rule
|
|
15
|
+
this.title = federal_docket.title
|
|
16
|
+
this.modify_time = federal_docket.modify_time
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static is(federal_docket : any) : federal_docket is FederalDocket {
|
|
20
|
+
return (
|
|
21
|
+
federal_docket !== undefined &&
|
|
22
|
+
typeof federal_docket.federal_docket_id === "string" &&
|
|
23
|
+
typeof federal_docket.federal_docket_agency_id === "string" &&
|
|
24
|
+
typeof federal_docket.is_rule === "boolean" &&
|
|
25
|
+
typeof federal_docket.title === "string" &&
|
|
26
|
+
typeof federal_docket.modify_time === "string"
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class FederalDocketAgency {
|
|
2
|
+
readonly federal_docket_agency_id : string
|
|
3
|
+
readonly federal_register_agency_id : number
|
|
4
|
+
readonly name : string
|
|
5
|
+
readonly supreme_federal_register_agency_id : number
|
|
6
|
+
|
|
7
|
+
constructor(federal_docket_agency : any) {
|
|
8
|
+
if (!FederalDocketAgency.is(federal_docket_agency)) {
|
|
9
|
+
throw Error("Invalid input.")
|
|
10
|
+
}
|
|
11
|
+
this.federal_docket_agency_id = federal_docket_agency.federal_docket_agency_id
|
|
12
|
+
this.federal_register_agency_id = federal_docket_agency.federal_register_agency_id
|
|
13
|
+
this.name = federal_docket_agency.name
|
|
14
|
+
this.supreme_federal_register_agency_id = federal_docket_agency.supreme_federal_register_agency_id
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static is(federal_docket_agency : any) : federal_docket_agency is FederalDocketAgency {
|
|
18
|
+
return (
|
|
19
|
+
federal_docket_agency !== undefined &&
|
|
20
|
+
typeof federal_docket_agency.federal_docket_agency_id === "string" &&
|
|
21
|
+
typeof federal_docket_agency.federal_register_agency_id === "number" &&
|
|
22
|
+
typeof federal_docket_agency.name === "string" &&
|
|
23
|
+
typeof federal_docket_agency.supreme_federal_register_agency_id === "number"
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export class Commentor {
|
|
2
|
+
readonly first_name? : string
|
|
3
|
+
readonly last_name? : string
|
|
4
|
+
readonly organization_name? : string
|
|
5
|
+
readonly address_1? : string
|
|
6
|
+
readonly address_2? : string
|
|
7
|
+
readonly city? : string
|
|
8
|
+
readonly state_id? : string
|
|
9
|
+
readonly zip? : string
|
|
10
|
+
readonly country? : string
|
|
11
|
+
readonly email? : string
|
|
12
|
+
readonly phone? : string
|
|
13
|
+
|
|
14
|
+
constructor(commentor : any) {
|
|
15
|
+
if (!Commentor.is(commentor)) {
|
|
16
|
+
throw Error("Invalid input.")
|
|
17
|
+
}
|
|
18
|
+
this.first_name = commentor.first_name
|
|
19
|
+
this.last_name = commentor.last_name
|
|
20
|
+
this.organization_name = commentor.organization_name
|
|
21
|
+
this.address_1 = commentor.address_1
|
|
22
|
+
this.address_2 = commentor.address_2
|
|
23
|
+
this.city = commentor.city
|
|
24
|
+
this.state_id = commentor.state_id
|
|
25
|
+
this.zip = commentor.zip
|
|
26
|
+
this.country = commentor.country
|
|
27
|
+
this.email = commentor.email
|
|
28
|
+
this.phone = commentor.phone
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
static is(commentor : any) : commentor is Commentor {
|
|
32
|
+
return (
|
|
33
|
+
commentor !== undefined &&
|
|
34
|
+
(commentor.first_name === undefined || typeof commentor.first_name === "string") &&
|
|
35
|
+
(commentor.last_name === undefined || typeof commentor.last_name === "string") &&
|
|
36
|
+
(commentor.organization_name === undefined || typeof commentor.organization_name === "string") &&
|
|
37
|
+
(commentor.address_1 === undefined || typeof commentor.address_1 === "string") &&
|
|
38
|
+
(commentor.address_2 === undefined || typeof commentor.address_2 === "string") &&
|
|
39
|
+
(commentor.city === undefined || typeof commentor.city === "string") &&
|
|
40
|
+
(commentor.state_id === undefined || typeof commentor.state_id === "string") &&
|
|
41
|
+
(commentor.zip === undefined || typeof commentor.zip === "string") &&
|
|
42
|
+
(commentor.country === undefined || typeof commentor.country === "string") &&
|
|
43
|
+
(commentor.email === undefined || typeof commentor.email === "string") &&
|
|
44
|
+
(commentor.phone === undefined || typeof commentor.phone === "string")
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
export class FederalDocketComment {
|
|
51
|
+
readonly federal_docket_comment_id : string
|
|
52
|
+
readonly federal_docket_agency_id : string
|
|
53
|
+
readonly federal_docket_id : string
|
|
54
|
+
readonly federal_docket_document_id? : string
|
|
55
|
+
readonly title : string
|
|
56
|
+
readonly publish_time? : string
|
|
57
|
+
readonly comment_time? : string
|
|
58
|
+
readonly modify_time : string
|
|
59
|
+
readonly is_withdrawn : boolean
|
|
60
|
+
readonly commentor : Commentor
|
|
61
|
+
readonly text : string
|
|
62
|
+
|
|
63
|
+
constructor(federal_docket_comment : any) {
|
|
64
|
+
if (!FederalDocketComment.is(federal_docket_comment)) {
|
|
65
|
+
throw Error("Invalid input.")
|
|
66
|
+
}
|
|
67
|
+
this.federal_docket_comment_id = federal_docket_comment.federal_docket_comment_id
|
|
68
|
+
this.federal_docket_agency_id = federal_docket_comment.federal_docket_agency_id
|
|
69
|
+
this.federal_docket_id = federal_docket_comment.federal_docket_id
|
|
70
|
+
this.federal_docket_document_id = federal_docket_comment.federal_docket_document_id
|
|
71
|
+
this.title = federal_docket_comment.title
|
|
72
|
+
this.publish_time = federal_docket_comment.publish_time
|
|
73
|
+
this.comment_time = federal_docket_comment.comment_time
|
|
74
|
+
this.modify_time = federal_docket_comment.modify_time
|
|
75
|
+
this.is_withdrawn = federal_docket_comment.is_withdrawn
|
|
76
|
+
this.commentor = new Commentor(federal_docket_comment.commentor)
|
|
77
|
+
this.text = federal_docket_comment.text
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static is(federal_docket_comment : any) : federal_docket_comment is FederalDocketComment {
|
|
81
|
+
return (
|
|
82
|
+
federal_docket_comment !== undefined &&
|
|
83
|
+
typeof federal_docket_comment.federal_docket_comment_id === "string" &&
|
|
84
|
+
typeof federal_docket_comment.federal_docket_agency_id === "string" &&
|
|
85
|
+
typeof federal_docket_comment.federal_docket_id === "string" &&
|
|
86
|
+
(federal_docket_comment.federal_docket_document_id === undefined || typeof federal_docket_comment.federal_docket_document_id === "string") &&
|
|
87
|
+
typeof federal_docket_comment.title === "string" &&
|
|
88
|
+
(federal_docket_comment.publish_time === undefined || typeof federal_docket_comment.publish_time === "string") &&
|
|
89
|
+
(federal_docket_comment.comment_time === undefined || typeof federal_docket_comment.comment_time === "string") &&
|
|
90
|
+
typeof federal_docket_comment.modify_time === "string" &&
|
|
91
|
+
typeof federal_docket_comment.is_withdrawn === "boolean" &&
|
|
92
|
+
Commentor.is(federal_docket_comment.commentor) &&
|
|
93
|
+
typeof federal_docket_comment.text === "string"
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class FederalDocketCommentAttachment {
|
|
2
|
+
readonly federal_docket_comment_attachment_id : string
|
|
3
|
+
readonly federal_docket_comment_id : string
|
|
4
|
+
readonly attachment_number : number
|
|
5
|
+
readonly urls : string[]
|
|
6
|
+
readonly s3_ids? : string[]
|
|
7
|
+
|
|
8
|
+
constructor(federal_docket_comment_attachment : any) {
|
|
9
|
+
if (!FederalDocketCommentAttachment.is(federal_docket_comment_attachment)) {
|
|
10
|
+
throw Error("Invalid input.")
|
|
11
|
+
}
|
|
12
|
+
this.federal_docket_comment_attachment_id = federal_docket_comment_attachment.federal_docket_comment_attachment_id
|
|
13
|
+
this.attachment_number = federal_docket_comment_attachment.attachment_number
|
|
14
|
+
this.federal_docket_comment_id = federal_docket_comment_attachment.federal_docket_comment_id
|
|
15
|
+
this.urls = federal_docket_comment_attachment.urls
|
|
16
|
+
this.s3_ids = federal_docket_comment_attachment.s3_ids
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static is(federal_docket_comment_attachment : any) : federal_docket_comment_attachment is FederalDocketCommentAttachment {
|
|
20
|
+
return (
|
|
21
|
+
federal_docket_comment_attachment !== undefined &&
|
|
22
|
+
typeof federal_docket_comment_attachment.federal_docket_comment_attachment_id === "string" &&
|
|
23
|
+
typeof federal_docket_comment_attachment.federal_docket_comment_id === "string" &&
|
|
24
|
+
typeof federal_docket_comment_attachment.attachment_number === "number" &&
|
|
25
|
+
Array.isArray(federal_docket_comment_attachment.urls) && federal_docket_comment_attachment.urls.every((url : any) => typeof url === "string") &&
|
|
26
|
+
(federal_docket_comment_attachment.s3_ids === undefined || Array.isArray(federal_docket_comment_attachment.s3_ids) && federal_docket_comment_attachment.s3_ids.every((s3_id : any) => typeof s3_id === "string"))
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export const federal_docket_document_type_ids = ["N", "P", "R", "S", "O"] as const
|
|
2
|
+
|
|
3
|
+
export type FederalDocketDocumentTypeID = typeof federal_docket_document_type_ids[number]
|
|
4
|
+
|
|
5
|
+
export function is_federal_docket_document_type_id(federal_docket_document_type_id : any) : federal_docket_document_type_id is FederalDocketDocumentTypeID {
|
|
6
|
+
return federal_docket_document_type_ids.includes(federal_docket_document_type_id)
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export class FederalDocketDocument {
|
|
10
|
+
readonly federal_docket_document_id : string
|
|
11
|
+
readonly federal_docket_agency_id : string
|
|
12
|
+
readonly federal_docket_id? : string
|
|
13
|
+
readonly type_id : FederalDocketDocumentTypeID
|
|
14
|
+
readonly subtype_id? : string
|
|
15
|
+
readonly federal_register_document_id? : string
|
|
16
|
+
readonly title : string
|
|
17
|
+
readonly publish_time? : string
|
|
18
|
+
readonly modify_time : string
|
|
19
|
+
readonly comment_start_time? : string
|
|
20
|
+
readonly comment_end_time? : string
|
|
21
|
+
readonly comments_open : boolean
|
|
22
|
+
readonly comments_late_allow : boolean
|
|
23
|
+
readonly is_withdrawn : boolean
|
|
24
|
+
readonly author_date? : string
|
|
25
|
+
readonly author_names : string[]
|
|
26
|
+
readonly media_type_id? : string
|
|
27
|
+
readonly abstract? : string
|
|
28
|
+
readonly urls : string[]
|
|
29
|
+
readonly s3_ids? : string[]
|
|
30
|
+
|
|
31
|
+
constructor(federal_docket_document : any) {
|
|
32
|
+
if (!FederalDocketDocument.is(federal_docket_document)) {
|
|
33
|
+
throw Error("Invalid input.")
|
|
34
|
+
}
|
|
35
|
+
this.federal_docket_document_id = federal_docket_document.federal_docket_document_id
|
|
36
|
+
this.federal_docket_agency_id = federal_docket_document.federal_docket_agency_id
|
|
37
|
+
this.federal_docket_id = federal_docket_document.federal_docket_id
|
|
38
|
+
this.type_id = federal_docket_document.type_id
|
|
39
|
+
this.subtype_id = federal_docket_document.subtype_id
|
|
40
|
+
this.federal_register_document_id = federal_docket_document.federal_register_document_id
|
|
41
|
+
this.title = federal_docket_document.title
|
|
42
|
+
this.publish_time = federal_docket_document.publish_time
|
|
43
|
+
this.modify_time = federal_docket_document.modify_time
|
|
44
|
+
this.comment_start_time = federal_docket_document.comment_start_time
|
|
45
|
+
this.comment_end_time = federal_docket_document.comment_end_time
|
|
46
|
+
this.comments_open = federal_docket_document.comments_open
|
|
47
|
+
this.comments_late_allow = federal_docket_document.comments_late_allow
|
|
48
|
+
this.is_withdrawn = federal_docket_document.is_withdrawn
|
|
49
|
+
this.author_date = federal_docket_document.author_date
|
|
50
|
+
this.author_names = federal_docket_document.author_names
|
|
51
|
+
this.media_type_id = federal_docket_document.media_type_id
|
|
52
|
+
this.abstract = federal_docket_document.abstract
|
|
53
|
+
this.urls = federal_docket_document.urls
|
|
54
|
+
this.s3_ids = federal_docket_document.s3_ids
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static is(federal_docket_document : any) : federal_docket_document is FederalDocketDocument {
|
|
58
|
+
return (
|
|
59
|
+
federal_docket_document !== undefined &&
|
|
60
|
+
typeof federal_docket_document.federal_docket_document_id === "string" &&
|
|
61
|
+
typeof federal_docket_document.federal_docket_agency_id === "string" &&
|
|
62
|
+
(federal_docket_document.federal_docket_id === undefined || typeof federal_docket_document.federal_docket_id === "string") &&
|
|
63
|
+
is_federal_docket_document_type_id(federal_docket_document.type_id) &&
|
|
64
|
+
(federal_docket_document.subtype_id === undefined || typeof federal_docket_document.subtype_id === "string") &&
|
|
65
|
+
(federal_docket_document.federal_register_document_id === undefined || typeof federal_docket_document.federal_register_document_id === "string") &&
|
|
66
|
+
typeof federal_docket_document.title === "string" &&
|
|
67
|
+
(federal_docket_document.publish_time === undefined || typeof federal_docket_document.publish_time === "string") &&
|
|
68
|
+
typeof federal_docket_document.modify_time === "string" &&
|
|
69
|
+
(federal_docket_document.comment_start_time === undefined || typeof federal_docket_document.comment_start_time === "string") &&
|
|
70
|
+
(federal_docket_document.comment_end_time === undefined || typeof federal_docket_document.comment_end_time === "string") &&
|
|
71
|
+
typeof federal_docket_document.comments_open === "boolean" &&
|
|
72
|
+
typeof federal_docket_document.comments_late_allow === "boolean" &&
|
|
73
|
+
typeof federal_docket_document.is_withdrawn === "boolean" &&
|
|
74
|
+
(federal_docket_document.author_date === undefined || typeof federal_docket_document.author_date === "string") &&
|
|
75
|
+
Array.isArray(federal_docket_document.author_names) && federal_docket_document.author_names.every((author_name : any) => typeof author_name === "string") &&
|
|
76
|
+
(federal_docket_document.media_type_id === undefined || typeof federal_docket_document.media_type_id === "string") &&
|
|
77
|
+
(federal_docket_document.abstract === undefined || typeof federal_docket_document.abstract === "string") &&
|
|
78
|
+
Array.isArray(federal_docket_document.urls) && federal_docket_document.urls.every((url : any) => typeof url === "string") &&
|
|
79
|
+
(federal_docket_document.s3_ids === undefined || Array.isArray(federal_docket_document.s3_ids) && federal_docket_document.s3_ids.every((s3_id : any) => typeof s3_id === "string"))
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { FederalElectionCandidateAux } from "./FederalElectionCandidate"
|
|
2
|
+
import { FederalElectionCommitteeAux } from "./FederalElectionCommittee"
|
|
3
|
+
import { FederalElectionFileExpenditureAux } from "./FederalElectionFileExpenditure"
|
|
4
|
+
import { is_state_id, StateID } from "../State"
|
|
5
|
+
|
|
6
|
+
const federal_election_office_ids = ["H", "S", "P"] as const
|
|
7
|
+
|
|
8
|
+
export type FederalElectionOfficeID = typeof federal_election_office_ids[number]
|
|
9
|
+
|
|
10
|
+
export function is_federal_election_office_id(federal_election_office_id : any) : federal_election_office_id is FederalElectionOfficeID {
|
|
11
|
+
return federal_election_office_ids.includes(federal_election_office_id)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const state_ids_without_district : StateID[] = ["AK", "DE", "ND", "SD", "VT", "WY"]
|
|
15
|
+
|
|
16
|
+
export type FederalElectionID = string
|
|
17
|
+
|
|
18
|
+
export function is_federal_election_id(federal_election_id : any) : federal_election_id is FederalElectionID {
|
|
19
|
+
const parts = federal_election_id.split("-")
|
|
20
|
+
const year = Number(parts[0])
|
|
21
|
+
const federal_election_office_id = parts[1]
|
|
22
|
+
const state_id = parts[2]
|
|
23
|
+
const district = Number(parts[3])
|
|
24
|
+
if (!(Number.isInteger(year) && year > 1700 && year < 3000 && is_federal_election_office_id(federal_election_office_id))) {
|
|
25
|
+
return false
|
|
26
|
+
}
|
|
27
|
+
if (federal_election_office_id === "P" && parts.length === 2) {
|
|
28
|
+
return true
|
|
29
|
+
}
|
|
30
|
+
if (!is_state_id(state_id)) {
|
|
31
|
+
return false
|
|
32
|
+
}
|
|
33
|
+
if (federal_election_office_id === "S" && parts.length === 3) {
|
|
34
|
+
return true
|
|
35
|
+
}
|
|
36
|
+
if (federal_election_office_id !== "H") {
|
|
37
|
+
return false
|
|
38
|
+
}
|
|
39
|
+
if (!(state_ids_without_district.includes(state_id) && parts.length === 3 || parts.length === 4)) {
|
|
40
|
+
return false
|
|
41
|
+
}
|
|
42
|
+
if (!Number.isInteger(district) && district < 100) {
|
|
43
|
+
return false
|
|
44
|
+
}
|
|
45
|
+
return true
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export class FederalElection {
|
|
49
|
+
readonly federal_election_id : FederalElectionID
|
|
50
|
+
readonly name : string
|
|
51
|
+
readonly federal_election_office_id : FederalElectionOfficeID
|
|
52
|
+
readonly state_id? : StateID
|
|
53
|
+
readonly district? : number
|
|
54
|
+
readonly [x : string] : any
|
|
55
|
+
|
|
56
|
+
constructor(federal_election : FederalElection) {
|
|
57
|
+
if (!FederalElection.is(federal_election)) {
|
|
58
|
+
throw Error("Invalid input.")
|
|
59
|
+
}
|
|
60
|
+
this.federal_election_id = federal_election.federal_election_id
|
|
61
|
+
this.name = federal_election.name
|
|
62
|
+
this.federal_election_office_id = federal_election.federal_election_office_id
|
|
63
|
+
this.state_id = federal_election.state_id
|
|
64
|
+
this.district = federal_election.district
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static is(federal_election : any) : federal_election is FederalElection {
|
|
68
|
+
return (
|
|
69
|
+
federal_election !== undefined &&
|
|
70
|
+
is_federal_election_id(federal_election.federal_election_id) &&
|
|
71
|
+
typeof federal_election.name === "string" &&
|
|
72
|
+
is_federal_election_office_id(federal_election.federal_election_office_id) &&
|
|
73
|
+
(federal_election.state_id === undefined || is_state_id(federal_election.state_id)) &&
|
|
74
|
+
(federal_election.district === undefined || typeof federal_election.district === "number")
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export class FederalElectionAux extends FederalElection {
|
|
80
|
+
readonly federal_election_candidates : FederalElectionCandidateAux[]
|
|
81
|
+
readonly federal_election_committees : FederalElectionCommitteeAux[]
|
|
82
|
+
readonly federal_election_file_expenditures : FederalElectionFileExpenditureAux[]
|
|
83
|
+
|
|
84
|
+
constructor(federal_election : any) {
|
|
85
|
+
if (!FederalElectionAux.is(federal_election)) {
|
|
86
|
+
throw Error("Invalid input.")
|
|
87
|
+
}
|
|
88
|
+
super(federal_election)
|
|
89
|
+
this.federal_election_candidates = federal_election.federal_election_candidates
|
|
90
|
+
this.federal_election_committees = federal_election.federal_election_committees
|
|
91
|
+
this.federal_election_file_expenditures = federal_election.federal_election_file_expenditures
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
static is(federal_election : any) : federal_election is FederalElectionAux {
|
|
95
|
+
return (
|
|
96
|
+
FederalElection.is(federal_election) &&
|
|
97
|
+
Array.isArray(federal_election.federal_election_candidates) &&
|
|
98
|
+
federal_election.federal_election_candidates.every(FederalElectionCandidateAux.is) &&
|
|
99
|
+
Array.isArray(federal_election.federal_election_committees) &&
|
|
100
|
+
federal_election.federal_election_committees.every(FederalElectionCommitteeAux.is) &&
|
|
101
|
+
Array.isArray(federal_election.federal_election_file_expenditures) &&
|
|
102
|
+
federal_election.federal_election_file_expenditures.every(FederalElectionFileExpenditureAux.is)
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { FederalElectionCommitteeAux } from "./FederalElectionCommittee"
|
|
2
|
+
import { FederalElectionID, is_federal_election_id, is_federal_election_office_id, FederalElectionOfficeID } from "./FederalElection"
|
|
3
|
+
import { FederalElectionFileExpenditureAux } from "./FederalElectionFileExpenditure"
|
|
4
|
+
import { FederalElectionF3File } from "./FederalElectionF3File"
|
|
5
|
+
import { is_state_id, StateID } from "../State"
|
|
6
|
+
|
|
7
|
+
export class ActivityIndex {
|
|
8
|
+
readonly news_index : number
|
|
9
|
+
readonly twitter_index : number
|
|
10
|
+
readonly total_index : number
|
|
11
|
+
|
|
12
|
+
constructor(activity_index : any) {
|
|
13
|
+
if (!ActivityIndex.is(activity_index)) {
|
|
14
|
+
throw Error("Invalid input.")
|
|
15
|
+
}
|
|
16
|
+
this.news_index = activity_index.news_index
|
|
17
|
+
this.twitter_index = activity_index.twitter_index
|
|
18
|
+
this.total_index = activity_index.total_index
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static is(activity_index : any) : activity_index is ActivityIndex {
|
|
22
|
+
return (
|
|
23
|
+
activity_index !== undefined &&
|
|
24
|
+
typeof activity_index.news_index === "number" &&
|
|
25
|
+
typeof activity_index.twitter_index === "number" &&
|
|
26
|
+
typeof activity_index.total_index === "number"
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class FederalElectionCandidate {
|
|
32
|
+
readonly federal_election_candidate_id : string
|
|
33
|
+
readonly name : string
|
|
34
|
+
readonly federal_election_office_id : FederalElectionOfficeID
|
|
35
|
+
readonly state_id : StateID
|
|
36
|
+
readonly district? : number
|
|
37
|
+
readonly federal_election_id : FederalElectionID
|
|
38
|
+
readonly party_id? : string
|
|
39
|
+
readonly is_active? : boolean
|
|
40
|
+
readonly status? : string
|
|
41
|
+
readonly federal_election_file_id? : number
|
|
42
|
+
readonly ballotpedia_name? : string
|
|
43
|
+
readonly ballotpedia_url? : string
|
|
44
|
+
readonly ballotpedia_data? : Record<string, any>
|
|
45
|
+
readonly activity_index? : ActivityIndex
|
|
46
|
+
readonly is_veteran? : string
|
|
47
|
+
readonly url_veteran? : string
|
|
48
|
+
// readonly urls? : string[]
|
|
49
|
+
// readonly previews? : string[]
|
|
50
|
+
[x : string] : any
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
constructor(federal_election_candidate : FederalElectionCandidate) {
|
|
54
|
+
if (!FederalElectionCandidate.is(federal_election_candidate)) {
|
|
55
|
+
throw Error("Invalid input.")
|
|
56
|
+
}
|
|
57
|
+
this.federal_election_candidate_id = federal_election_candidate.federal_election_candidate_id
|
|
58
|
+
this.name = federal_election_candidate.name
|
|
59
|
+
this.federal_election_office_id = federal_election_candidate.federal_election_office_id
|
|
60
|
+
this.state_id = federal_election_candidate.state_id
|
|
61
|
+
this.district = federal_election_candidate.district
|
|
62
|
+
this.federal_election_id = federal_election_candidate.federal_election_id
|
|
63
|
+
this.party_id = federal_election_candidate.party_id
|
|
64
|
+
this.is_active = federal_election_candidate.is_active
|
|
65
|
+
this.status = federal_election_candidate.status
|
|
66
|
+
this.federal_election_file_id = federal_election_candidate.federal_election_file_id
|
|
67
|
+
this.ballotpedia_name = federal_election_candidate.ballotpedia_name
|
|
68
|
+
this.ballotpedia_url = federal_election_candidate.ballotpedia_url
|
|
69
|
+
this.ballotpedia_data = federal_election_candidate.ballotpedia_data
|
|
70
|
+
this.activity_index = federal_election_candidate.activity_index
|
|
71
|
+
this.is_veteran = federal_election_candidate.is_veteran
|
|
72
|
+
this.url_veteran = federal_election_candidate.url_veteran
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static is(federal_election_candidate : any) : federal_election_candidate is FederalElectionCandidate {
|
|
76
|
+
return (
|
|
77
|
+
federal_election_candidate !== undefined &&
|
|
78
|
+
typeof federal_election_candidate.federal_election_candidate_id === "string" &&
|
|
79
|
+
typeof federal_election_candidate.name === "string" &&
|
|
80
|
+
is_federal_election_office_id(federal_election_candidate.federal_election_office_id) &&
|
|
81
|
+
is_state_id(federal_election_candidate.state_id) &&
|
|
82
|
+
(federal_election_candidate.district === undefined || typeof federal_election_candidate.district === "number") &&
|
|
83
|
+
is_federal_election_id(federal_election_candidate.federal_election_id) &&
|
|
84
|
+
(federal_election_candidate.party_id === undefined || typeof federal_election_candidate.party_id === "string") &&
|
|
85
|
+
(federal_election_candidate.is_active === undefined || typeof federal_election_candidate.is_active === "boolean") &&
|
|
86
|
+
(federal_election_candidate.status === undefined || typeof federal_election_candidate.status === "string") &&
|
|
87
|
+
(federal_election_candidate.federal_election_file_id === undefined || typeof federal_election_candidate.federal_election_file_id === "number" && !isNaN(federal_election_candidate.federal_election_file_id)) &&
|
|
88
|
+
(federal_election_candidate.ballotpedia_name === undefined || typeof federal_election_candidate.ballotpedia_name === "string") &&
|
|
89
|
+
(federal_election_candidate.ballotpedia_url === undefined || typeof federal_election_candidate.ballotpedia_url === "string") &&
|
|
90
|
+
(federal_election_candidate.ballotpedia_data === undefined || typeof federal_election_candidate.ballotpedia_data === "object" && Object.keys(federal_election_candidate.ballotpedia_data).map((key : any) => typeof key === "string")) &&
|
|
91
|
+
(federal_election_candidate.activity_index === undefined || ActivityIndex.is(federal_election_candidate.activity_index)) &&
|
|
92
|
+
(federal_election_candidate.is_veteran === undefined || typeof federal_election_candidate.is_veteran === "string") &&
|
|
93
|
+
(federal_election_candidate.url_veteran === undefined || typeof federal_election_candidate.url_veteran === "string")
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export class FederalElectionCandidateAux extends FederalElectionCandidate {
|
|
99
|
+
readonly federal_election_committees : FederalElectionCommitteeAux[]
|
|
100
|
+
readonly federal_election_f3_files : FederalElectionF3File[]
|
|
101
|
+
readonly federal_election_file_expenditures : FederalElectionFileExpenditureAux[]
|
|
102
|
+
|
|
103
|
+
constructor(federal_election_candidate : any) {
|
|
104
|
+
if (!FederalElectionCandidateAux.is(federal_election_candidate)) {
|
|
105
|
+
throw Error("Invalid input.")
|
|
106
|
+
}
|
|
107
|
+
super(federal_election_candidate)
|
|
108
|
+
this.federal_election_committees = federal_election_candidate.federal_election_committees
|
|
109
|
+
this.federal_election_f3_files = federal_election_candidate.federal_election_f3_files
|
|
110
|
+
this.federal_election_file_expenditures = federal_election_candidate.federal_election_file_expenditures
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
static is(federal_election_candidate : any) : federal_election_candidate is FederalElectionCandidateAux {
|
|
114
|
+
return (
|
|
115
|
+
FederalElectionCandidate.is(federal_election_candidate) &&
|
|
116
|
+
Array.isArray(federal_election_candidate.federal_election_committees) &&
|
|
117
|
+
federal_election_candidate.federal_election_committees.every(FederalElectionCommitteeAux.is) &&
|
|
118
|
+
Array.isArray(federal_election_candidate.federal_election_f3_files) &&
|
|
119
|
+
federal_election_candidate.federal_election_f3_files.every(FederalElectionF3File.is) &&
|
|
120
|
+
Array.isArray(federal_election_candidate.federal_election_file_expenditures) &&
|
|
121
|
+
federal_election_candidate.federal_election_file_expenditures.every(FederalElectionFileExpenditureAux.is)
|
|
122
|
+
)
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export class FederalElectionCandidateCommittee {
|
|
2
|
+
readonly federal_election_candidate_id : string
|
|
3
|
+
readonly federal_election_committee_id : string
|
|
4
|
+
[x : string] : any
|
|
5
|
+
|
|
6
|
+
constructor(federal_election_candidate_committee : FederalElectionCandidateCommittee) {
|
|
7
|
+
if (!FederalElectionCandidateCommittee.is(federal_election_candidate_committee)) {
|
|
8
|
+
throw Error("Invalid input.")
|
|
9
|
+
}
|
|
10
|
+
this.federal_election_candidate_id = federal_election_candidate_committee.federal_election_candidate_id
|
|
11
|
+
this.federal_election_committee_id = federal_election_candidate_committee.federal_election_committee_id
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
static is(federal_election_candidate_committee : any) : federal_election_candidate_committee is FederalElectionCandidateCommittee {
|
|
15
|
+
return (
|
|
16
|
+
federal_election_candidate_committee !== undefined &&
|
|
17
|
+
typeof federal_election_candidate_committee.federal_election_candidate_id === "string" &&
|
|
18
|
+
typeof federal_election_candidate_committee.federal_election_committee_id === "string"
|
|
19
|
+
)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// export class CandidateCommitteeAux extends CandidateCommittee {
|
|
24
|
+
// readonly committee : FederalElectionCommitteeAux
|
|
25
|
+
|
|
26
|
+
// constructor(candidate_committee : any) {
|
|
27
|
+
// if (!CandidateCommitteeAux.is(candidate_committee)) {
|
|
28
|
+
// throw Error("Invalid input.")
|
|
29
|
+
// }
|
|
30
|
+
// super(candidate_committee)
|
|
31
|
+
// this.committee = candidate_committee.committee
|
|
32
|
+
// }
|
|
33
|
+
|
|
34
|
+
// static is(candidate_committee : any) : candidate_committee is CandidateCommitteeAux {
|
|
35
|
+
// return (
|
|
36
|
+
// CandidateCommittee.is(candidate_committee) &&
|
|
37
|
+
// FederalElectionCommitteeAux.is(candidate_committee.committee)
|
|
38
|
+
// )
|
|
39
|
+
// }
|
|
40
|
+
// }
|