Overview
File Change Frequency Overall
  • There are 88 files with 9,791 lines of code.
    • 1 file changed more than 100 times (1,686 lines of code)
    • 5 files changed 51-100 times (905 lines of code)
    • 20 files changed 21-50 times (2,321 lines of code)
    • 41 files changed 6-20 times (4,003 lines of code)
    • 21 files changed 1-5 times (876 lines of code)
17% | 9% | 23% | 40% | 8%
Legend:
101+
51-100
21-50
6-20
1-5

explore: grouped by folders | grouped by update frequency | data
Contributors Count Frequency Overall
  • There are 88 files with 9,791 lines of code.
    • 1 file changed by more than 25 contributors (1,686 lines of code)
    • 6 files changed by 11-25 contributors (1,177 lines of code)
    • 14 files changed by 6-10 contributors (1,933 lines of code)
    • 49 files changed by 2-5 contributors (4,132 lines of code)
    • 18 files changed by 1 contributor (863 lines of code)
17% | 12% | 19% | 42% | 8%
Legend:
26+
11-25
6-10
2-5
1

explore: grouped by folders | grouped by contributors count | data
File Change Frequency per File Extension
ts, md, json, js, yaml, gitignore, txt, sh, py, yml, snap, prettierignore
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
yaml56% | 16% | 0% | 26% | <1%
ts0% | 6% | 35% | 45% | 12%
py0% | 0% | 0% | 100% | 0%
js0% | 0% | 0% | 0% | 100%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
ROOT56% | 16% | 0% | 26% | <1%
typescript0% | 7% | 40% | 51% | <1%
adjust_report_etl0% | 0% | 0% | 100% | 0%
mpapi-next-gen0% | 0% | 0% | 0% | 100%
cdk0% | 0% | 0% | 0% | 100%
.github0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
1686 - 2018-04-03 2026-07-23 173 28 +6470 / -3091 mark.richards pascal
apple.ts
in typescript/src/pubsub
114 4 2019-06-03 2026-04-16 74 11 +1773 / -1156 alex.dufournet pascal
link.ts
in typescript/src/link
121 5 2019-07-09 2026-04-16 67 13 +1973 / -1597 nathaniel.bennett pascal
189 - 2018-04-03 2026-06-23 66 17 +719 / -299 37694514+markrichardsg pascal
aws.ts
in typescript/src/utils
174 8 2019-06-19 2026-04-16 52 10 +1329 / -737 nathaniel.bennett pascal
307 - 2018-04-20 2025-10-20 52 15 +1135 / -535 37694514+markrichardsg rupert.bates
google.ts
in typescript/src/feast/acquisition-events
286 - 2024-09-27 2026-09-14 47 3 +1464 / -786 michael.mcnamara pascal
apple.ts
in typescript/src/update-subs
81 4 2019-08-08 2026-07-16 46 5 +690 / -499 alex.dufournet 49699333+dependabot[bot]
google.ts
in typescript/src/pubsub
27 1 2019-06-03 2026-04-16 43 8 +533 / -515 alex.dufournet pascal
appleValidateReceipts.ts
in typescript/src/services
287 8 2019-09-04 2026-07-16 42 9 +1320 / -675 alex.dufournet 49699333+dependabot[bot]
pubsub.ts
in typescript/src/pubsub
84 3 2019-06-03 2026-07-20 41 6 +598 / -455 alex.dufournet pascal
guIdentityApi.ts
in typescript/src/utils
85 6 2019-07-17 2026-07-16 37 11 +746 / -541 nathaniel.bennett 49699333+dependabot[bot]
google.ts
in typescript/src/update-subs
145 2 2019-08-08 2026-04-14 37 5 +907 / -554 alex.dufournet pascal
subscription.ts
in typescript/src/models
92 1 2019-06-19 2026-04-16 36 5 +626 / -294 nathaniel.bennett pascal
googleSubStatus.ts
in typescript/src/subscription-status
151 7 2019-09-06 2026-07-28 36 9 +1111 / -785 alex.dufournet pascal
apple.ts
in typescript/src/link
39 3 2019-07-09 2026-04-13 31 8 +371 / -267 nathaniel.bennett pascal
acquisitions.ts
in typescript/src/soft-opt-ins
49 1 2023-03-27 2026-06-01 31 4 +1046 / -759 jon.flynn pascal
deleteLink.ts
in typescript/src/link
116 8 2019-09-03 2026-04-16 31 6 +697 / -428 alex.dufournet pascal
updatesub.ts
in typescript/src/update-subs
62 4 2019-08-08 2026-04-13 30 5 +409 / -281 alex.dufournet pascal
user.ts
in typescript/src/user
130 7 2019-07-17 2026-04-13 29 7 +771 / -462 nathaniel.bennett pascal
apple.ts
in typescript/src/feast/acquisition-events
146 1 2024-09-27 2026-07-16 29 4 +1849 / -1543 michael.mcnamara 49699333+dependabot[bot]
productBillingPeriod.ts
in typescript/src/services
53 - 2020-02-26 2026-04-13 25 4 +310 / -147 alex.dufournet pascal
google.ts
in typescript/src/link
61 5 2019-07-09 2026-07-16 23 6 +365 / -200 nathaniel.bennett 49699333+dependabot[bot]
appleSubStatus.ts
in typescript/src/subscription-status
95 3 2019-09-06 2026-07-28 23 3 +386 / -174 alex.dufournet pascal
subscriptionEvent.ts
in typescript/src/models
106 1 2019-06-03 2026-04-16 22 3 +343 / -83 alex.dufournet pascal
google-common.ts
in typescript/src/pubsub
226 5 2024-05-15 2026-07-23 22 3 +928 / -423 99180049+maelgnm pascal
google.ts
in typescript/src/feast/pubsub
81 1 2024-05-01 2026-07-20 20 4 +296 / -162 99180049+maelgnm pascal
appleRevalidateReceipts.ts
in typescript/src/revalidate-receipts
111 2 2020-02-03 2026-04-13 20 6 +725 / -421 francesca.hammond pascal
361 - 2019-10-10 2026-05-18 20 11 +1027 / -350 alex.dufournet pascal
userSubscription.ts
in typescript/src/models
32 1 2019-07-08 2026-04-13 19 4 +231 / -121 nathaniel.bennett pascal
google.ts
in typescript/src/feast/update-subs
150 - 2024-06-03 2026-04-13 19 7 +516 / -297 michael.jacobson pascal
processSubscription.ts
in typescript/src/soft-opt-ins
178 8 2023-06-14 2026-06-01 19 5 +728 / -322 jon.flynn pascal
google-subscription-extra.ts
in typescript/src/services
187 3 2025-07-19 2026-04-16 19 2 +1203 / -765 pascal pascal
exportSubscriptions.ts
in typescript/src/export
51 1 2019-08-29 2026-04-16 18 5 +286 / -161 alex.dufournet pascal
dates.ts
in typescript/src/utils
18 1 2019-08-08 2026-04-13 17 4 +125 / -45 alex.dufournet pascal
dlq-processor.ts
in typescript/src/soft-opt-ins
97 3 2023-06-15 2026-08-27 17 4 +467 / -237 jon.flynn pascal
apple-mappings.ts
in typescript/src/services
276 - 2025-04-29 2026-04-13 17 2 +574 / -12 pascal.honore pascal
test-launcher.ts
in typescript/src/test-launcher
21 - 2019-06-28 2026-04-14 16 5 +104 / -60 nathaniel.bennett pascal
apiGatewayHttp.ts
in typescript/src/models
27 - 2019-06-03 2026-04-13 16 5 +170 / -108 alex.dufournet pascal
appleFetchOfferDetails.ts
in typescript/src/promotional-offers
78 2 2023-08-30 2026-04-16 16 2 +407 / -193 pascal pascal
platform.ts
in typescript/src/models
11 - 2019-06-14 2026-04-13 15 6 +65 / -39 alex.dufournet pascal
google-play-v2.ts
in typescript/src/services
145 13 2024-02-15 2026-04-16 15 4 +770 / -344 3607811+tomwadeson pascal
api-storekit.ts
in typescript/src/services
190 2 2025-04-29 2026-07-16 15 3 +890 / -236 pascal 49699333+dependabot[bot]
apple-common.ts
in typescript/src/pubsub
503 16 2024-03-18 2026-04-16 15 3 +1607 / -892 tom.wey pascal
endTimestampFilter.ts
in typescript/src/models
40 1 2020-02-05 2026-04-13 14 4 +217 / -81 francesca.hammond pascal
ssmConfig.ts
in typescript/src/utils
61 3 2019-08-21 2026-04-16 14 3 +242 / -108 alex.dufournet pascal
google-play.ts
in typescript/src/services
65 4 2020-02-20 2026-04-16 14 3 +325 / -181 alex.dufournet pascal
dynamoStream.ts
in typescript/src/export
39 1 2019-08-29 2026-04-16 13 3 +161 / -65 alex.dufournet pascal
router.ts
in typescript/src/feast/acquisition-events
96 - 2024-09-27 2026-04-13 13 3 +918 / -201 michael.mcnamara pascal
apple.ts
in typescript/src/feast/update-subs
162 1 2024-04-29 2026-04-13 13 7 +649 / -301 99180049+maelgnm pascal
Files With Most Churn (Top 50)
Based on the number of lines added and deleted across all commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
1686 - 2018-04-03 2026-07-23 173 28 +6470 / -3091 mark.richards pascal
link.ts
in typescript/src/link
121 5 2019-07-09 2026-04-16 67 13 +1973 / -1597 nathaniel.bennett pascal
apple.ts
in typescript/src/feast/acquisition-events
146 1 2024-09-27 2026-07-16 29 4 +1849 / -1543 michael.mcnamara 49699333+dependabot[bot]
apple.ts
in typescript/src/pubsub
114 4 2019-06-03 2026-04-16 74 11 +1773 / -1156 alex.dufournet pascal
apple-common.ts
in typescript/src/pubsub
503 16 2024-03-18 2026-04-16 15 3 +1607 / -892 tom.wey pascal
google.ts
in typescript/src/feast/acquisition-events
286 - 2024-09-27 2026-09-14 47 3 +1464 / -786 michael.mcnamara pascal
aws.ts
in typescript/src/utils
174 8 2019-06-19 2026-04-16 52 10 +1329 / -737 nathaniel.bennett pascal
appleValidateReceipts.ts
in typescript/src/services
287 8 2019-09-04 2026-07-16 42 9 +1320 / -675 alex.dufournet 49699333+dependabot[bot]
google-subscription-extra.ts
in typescript/src/services
187 3 2025-07-19 2026-04-16 19 2 +1203 / -765 pascal pascal
googleSubStatus.ts
in typescript/src/subscription-status
151 7 2019-09-06 2026-07-28 36 9 +1111 / -785 alex.dufournet pascal
acquisitions.ts
in typescript/src/soft-opt-ins
49 1 2023-03-27 2026-06-01 31 4 +1046 / -759 jon.flynn pascal
307 - 2018-04-20 2025-10-20 52 15 +1135 / -535 37694514+markrichardsg rupert.bates
google.ts
in typescript/src/update-subs
145 2 2019-08-08 2026-04-14 37 5 +907 / -554 alex.dufournet pascal
361 - 2019-10-10 2026-05-18 20 11 +1027 / -350 alex.dufournet pascal
google-common.ts
in typescript/src/pubsub
226 5 2024-05-15 2026-07-23 22 3 +928 / -423 99180049+maelgnm pascal
guIdentityApi.ts
in typescript/src/utils
85 6 2019-07-17 2026-07-16 37 11 +746 / -541 nathaniel.bennett 49699333+dependabot[bot]
connector.py
in adjust_report_etl
252 2 2024-11-11 2025-08-07 7 3 +938 / -342 36296660+david-pepper andradeolivier
user.ts
in typescript/src/user
130 7 2019-07-17 2026-04-13 29 7 +771 / -462 nathaniel.bennett pascal
apple.ts
in typescript/src/update-subs
81 4 2019-08-08 2026-07-16 46 5 +690 / -499 alex.dufournet 49699333+dependabot[bot]
appleRevalidateReceipts.ts
in typescript/src/revalidate-receipts
111 2 2020-02-03 2026-04-13 20 6 +725 / -421 francesca.hammond pascal
api-storekit.ts
in typescript/src/services
190 2 2025-04-29 2026-07-16 15 3 +890 / -236 pascal 49699333+dependabot[bot]
deleteLink.ts
in typescript/src/link
116 8 2019-09-03 2026-04-16 31 6 +697 / -428 alex.dufournet pascal
router.ts
in typescript/src/feast/acquisition-events
96 - 2024-09-27 2026-04-13 13 3 +918 / -201 michael.mcnamara pascal
google-play-v2.ts
in typescript/src/services
145 13 2024-02-15 2026-04-16 15 4 +770 / -344 3607811+tomwadeson pascal
pubsub.ts
in typescript/src/pubsub
84 3 2019-06-03 2026-07-20 41 6 +598 / -455 alex.dufournet pascal
processSubscription.ts
in typescript/src/soft-opt-ins
178 8 2023-06-14 2026-06-01 19 5 +728 / -322 jon.flynn pascal
google.ts
in typescript/src/pubsub
27 1 2019-06-03 2026-04-16 43 8 +533 / -515 alex.dufournet pascal
189 - 2018-04-03 2026-06-23 66 17 +719 / -299 37694514+markrichardsg pascal
apple.ts
in typescript/src/feast/update-subs
162 1 2024-04-29 2026-04-13 13 7 +649 / -301 99180049+maelgnm pascal
subscription.ts
in typescript/src/models
92 1 2019-06-19 2026-04-16 36 5 +626 / -294 nathaniel.bennett pascal
google.ts
in typescript/src/feast/update-subs
150 - 2024-06-03 2026-04-13 19 7 +516 / -297 michael.jacobson pascal
430 - 2024-09-27 2026-05-18 12 6 +604 / -135 michael.mcnamara pascal
dlq-processor.ts
in typescript/src/soft-opt-ins
97 3 2023-06-15 2026-08-27 17 4 +467 / -237 jon.flynn pascal
updatesub.ts
in typescript/src/update-subs
62 4 2019-08-08 2026-04-13 30 5 +409 / -281 alex.dufournet pascal
apple.ts
in typescript/src/link
39 3 2019-07-09 2026-04-13 31 8 +371 / -267 nathaniel.bennett pascal
appleFetchOfferDetails.ts
in typescript/src/promotional-offers
78 2 2023-08-30 2026-04-16 16 2 +407 / -193 pascal pascal
apple-mappings.ts
in typescript/src/services
276 - 2025-04-29 2026-04-13 17 2 +574 / -12 pascal.honore pascal
google.ts
in typescript/src/link
61 5 2019-07-09 2026-07-16 23 6 +365 / -200 nathaniel.bennett 49699333+dependabot[bot]
appleSubStatus.ts
in typescript/src/subscription-status
95 3 2019-09-06 2026-07-28 23 3 +386 / -174 alex.dufournet pascal
google-play.ts
in typescript/src/services
65 4 2020-02-20 2026-04-16 14 3 +325 / -181 alex.dufournet pascal
apple.ts
in typescript/src/feast/pubsub
63 1 2024-04-29 2026-04-16 12 4 +314 / -166 99180049+maelgnm pascal
google.ts
in typescript/src/feast/pubsub
81 1 2024-05-01 2026-07-20 20 4 +296 / -162 99180049+maelgnm pascal
productBillingPeriod.ts
in typescript/src/services
53 - 2020-02-26 2026-04-13 25 4 +310 / -147 alex.dufournet pascal
exportSubscriptions.ts
in typescript/src/export
51 1 2019-08-29 2026-04-16 18 5 +286 / -161 alex.dufournet pascal
subscriptionEvent.ts
in typescript/src/models
106 1 2019-06-03 2026-04-16 22 3 +343 / -83 alex.dufournet pascal
common.ts
in typescript/src/feast/acquisition-events
55 - 2024-12-16 2026-04-13 10 2 +275 / -125 pascal pascal
userSubscription.ts
in typescript/src/models
32 1 2019-07-08 2026-04-13 19 4 +231 / -121 nathaniel.bennett pascal
ssmConfig.ts
in typescript/src/utils
61 3 2019-08-21 2026-04-16 14 3 +242 / -108 alex.dufournet pascal
endTimestampFilter.ts
in typescript/src/models
40 1 2020-02-05 2026-04-13 14 4 +217 / -81 francesca.hammond pascal
apiGatewayHttp.ts
in typescript/src/models
27 - 2019-06-03 2026-04-13 16 5 +170 / -108 alex.dufournet pascal
Files With Most Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
1686 - 2018-04-03 2026-07-23 173 28 +6470 / -3091 mark.richards pascal
189 - 2018-04-03 2026-06-23 66 17 +719 / -299 37694514+markrichardsg pascal
307 - 2018-04-20 2025-10-20 52 15 +1135 / -535 37694514+markrichardsg rupert.bates
link.ts
in typescript/src/link
121 5 2019-07-09 2026-04-16 67 13 +1973 / -1597 nathaniel.bennett pascal
apple.ts
in typescript/src/pubsub
114 4 2019-06-03 2026-04-16 74 11 +1773 / -1156 alex.dufournet pascal
guIdentityApi.ts
in typescript/src/utils
85 6 2019-07-17 2026-07-16 37 11 +746 / -541 nathaniel.bennett 49699333+dependabot[bot]
361 - 2019-10-10 2026-05-18 20 11 +1027 / -350 alex.dufournet pascal
aws.ts
in typescript/src/utils
174 8 2019-06-19 2026-04-16 52 10 +1329 / -737 nathaniel.bennett pascal
appleValidateReceipts.ts
in typescript/src/services
287 8 2019-09-04 2026-07-16 42 9 +1320 / -675 alex.dufournet 49699333+dependabot[bot]
googleSubStatus.ts
in typescript/src/subscription-status
151 7 2019-09-06 2026-07-28 36 9 +1111 / -785 alex.dufournet pascal
google.ts
in typescript/src/pubsub
27 1 2019-06-03 2026-04-16 43 8 +533 / -515 alex.dufournet pascal
apple.ts
in typescript/src/link
39 3 2019-07-09 2026-04-13 31 8 +371 / -267 nathaniel.bennett pascal
user.ts
in typescript/src/user
130 7 2019-07-17 2026-04-13 29 7 +771 / -462 nathaniel.bennett pascal
google.ts
in typescript/src/feast/update-subs
150 - 2024-06-03 2026-04-13 19 7 +516 / -297 michael.jacobson pascal
apple.ts
in typescript/src/feast/update-subs
162 1 2024-04-29 2026-04-13 13 7 +649 / -301 99180049+maelgnm pascal
pubsub.ts
in typescript/src/pubsub
84 3 2019-06-03 2026-07-20 41 6 +598 / -455 alex.dufournet pascal
deleteLink.ts
in typescript/src/link
116 8 2019-09-03 2026-04-16 31 6 +697 / -428 alex.dufournet pascal
google.ts
in typescript/src/link
61 5 2019-07-09 2026-07-16 23 6 +365 / -200 nathaniel.bennett 49699333+dependabot[bot]
appleRevalidateReceipts.ts
in typescript/src/revalidate-receipts
111 2 2020-02-03 2026-04-13 20 6 +725 / -421 francesca.hammond pascal
platform.ts
in typescript/src/models
11 - 2019-06-14 2026-04-13 15 6 +65 / -39 alex.dufournet pascal
430 - 2024-09-27 2026-05-18 12 6 +604 / -135 michael.mcnamara pascal
apple.ts
in typescript/src/update-subs
81 4 2019-08-08 2026-07-16 46 5 +690 / -499 alex.dufournet 49699333+dependabot[bot]
google.ts
in typescript/src/update-subs
145 2 2019-08-08 2026-04-14 37 5 +907 / -554 alex.dufournet pascal
subscription.ts
in typescript/src/models
92 1 2019-06-19 2026-04-16 36 5 +626 / -294 nathaniel.bennett pascal
updatesub.ts
in typescript/src/update-subs
62 4 2019-08-08 2026-04-13 30 5 +409 / -281 alex.dufournet pascal
processSubscription.ts
in typescript/src/soft-opt-ins
178 8 2023-06-14 2026-06-01 19 5 +728 / -322 jon.flynn pascal
exportSubscriptions.ts
in typescript/src/export
51 1 2019-08-29 2026-04-16 18 5 +286 / -161 alex.dufournet pascal
test-launcher.ts
in typescript/src/test-launcher
21 - 2019-06-28 2026-04-14 16 5 +104 / -60 nathaniel.bennett pascal
apiGatewayHttp.ts
in typescript/src/models
27 - 2019-06-03 2026-04-13 16 5 +170 / -108 alex.dufournet pascal
appToPlatform.ts
in typescript/src/services
22 2 2020-02-20 2026-04-13 12 5 +115 / -64 alex.dufournet pascal
acquisitions.ts
in typescript/src/soft-opt-ins
49 1 2023-03-27 2026-06-01 31 4 +1046 / -759 jon.flynn pascal
apple.ts
in typescript/src/feast/acquisition-events
146 1 2024-09-27 2026-07-16 29 4 +1849 / -1543 michael.mcnamara 49699333+dependabot[bot]
productBillingPeriod.ts
in typescript/src/services
53 - 2020-02-26 2026-04-13 25 4 +310 / -147 alex.dufournet pascal
google.ts
in typescript/src/feast/pubsub
81 1 2024-05-01 2026-07-20 20 4 +296 / -162 99180049+maelgnm pascal
userSubscription.ts
in typescript/src/models
32 1 2019-07-08 2026-04-13 19 4 +231 / -121 nathaniel.bennett pascal
dates.ts
in typescript/src/utils
18 1 2019-08-08 2026-04-13 17 4 +125 / -45 alex.dufournet pascal
dlq-processor.ts
in typescript/src/soft-opt-ins
97 3 2023-06-15 2026-08-27 17 4 +467 / -237 jon.flynn pascal
google-play-v2.ts
in typescript/src/services
145 13 2024-02-15 2026-04-16 15 4 +770 / -344 3607811+tomwadeson pascal
endTimestampFilter.ts
in typescript/src/models
40 1 2020-02-05 2026-04-13 14 4 +217 / -81 francesca.hammond pascal
apple.ts
in typescript/src/feast/pubsub
63 1 2024-04-29 2026-04-16 12 4 +314 / -166 99180049+maelgnm pascal
apple-utils.ts
in typescript/src/link
36 2 2023-03-01 2026-04-16 12 4 +186 / -77 pgithub5 pascal
common.ts
in typescript/src/feast/update-subs
24 2 2024-06-12 2026-04-13 11 4 +78 / -45 tom.wey pascal
braze.ts
in typescript/src/services
42 2 2024-03-25 2026-04-13 11 4 +172 / -78 3607811+tomwadeson pascal
softOptIns.ts
in typescript/src/utils
13 - 2024-05-22 2026-04-13 10 4 +39 / -21 tom.wey pascal
google.ts
in typescript/src/feast/acquisition-events
286 - 2024-09-27 2026-09-14 47 3 +1464 / -786 michael.mcnamara pascal
appleSubStatus.ts
in typescript/src/subscription-status
95 3 2019-09-06 2026-07-28 23 3 +386 / -174 alex.dufournet pascal
subscriptionEvent.ts
in typescript/src/models
106 1 2019-06-03 2026-04-16 22 3 +343 / -83 alex.dufournet pascal
google-common.ts
in typescript/src/pubsub
226 5 2024-05-15 2026-07-23 22 3 +928 / -423 99180049+maelgnm pascal
apple-common.ts
in typescript/src/pubsub
503 16 2024-03-18 2026-04-16 15 3 +1607 / -892 tom.wey pascal
api-storekit.ts
in typescript/src/services
190 2 2025-04-29 2026-07-16 15 3 +890 / -236 pascal 49699333+dependabot[bot]
Files With Least Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
exportHistoricalData.ts
in mpapi-next-gen/src/lambdas
160 8 2026-06-25 2026-06-25 1 1 +184 / -0 pascal pascal
exportSubscriptionEventsTable.ts
in mpapi-next-gen/src/lambdas
114 5 2026-06-25 2026-06-25 1 1 +142 / -0 pascal pascal
dynamoStream.ts
in mpapi-next-gen/src/common
96 4 2026-06-25 2026-06-25 1 1 +113 / -0 pascal pascal
guIdentityApi.ts
in mpapi-next-gen/src/common
92 6 2026-06-26 2026-06-26 1 1 +106 / -0 pascal pascal
subscriptionEvent.ts
in mpapi-next-gen/src/common
83 2 2026-06-25 2026-06-26 2 1 +91 / -0 pascal pascal
googleOauth2.ts
in mpapi-next-gen/src/lambdas
71 4 2026-06-25 2026-06-26 2 1 +117 / -20 pascal pascal
exportSubscriptionTableV2.ts
in mpapi-next-gen/src/lambdas
66 3 2026-06-25 2026-06-25 1 1 +75 / -0 pascal pascal
esbuild.config.js
in mpapi-next-gen
35 1 2026-06-23 2026-06-25 3 1 +81 / -6 pascal pascal
30 - 2026-04-15 2026-04-16 2 1 +128 / -64 pascal pascal
apiGatewayHttp.ts
in mpapi-next-gen/src/common
27 - 2026-06-26 2026-06-26 1 1 +31 / -0 pascal pascal
userSubscription.ts
in mpapi-next-gen/src/common
27 2 2026-06-26 2026-06-26 1 1 +40 / -0 pascal pascal
ssmParameters.ts
in mpapi-next-gen/src/common
22 1 2026-06-26 2026-06-26 1 1 +33 / -0 pascal pascal
softOptIns.ts
in mpapi-next-gen/src/common
13 - 2026-06-26 2026-06-26 1 1 +15 / -0 pascal pascal
platform.ts
in mpapi-next-gen/src/common
11 - 2026-06-26 2026-06-26 1 1 +11 / -0 pascal pascal
8 1 2024-03-06 2024-03-06 1 1 +9 / -0 michael.jacobson michael.jacobson
appIdentity.ts
in mpapi-next-gen/src/common
4 - 2026-06-25 2026-06-25 1 1 +4 / -0 pascal pascal
dates.ts
in mpapi-next-gen/src/common
3 - 2026-06-25 2026-06-25 1 1 +40 / -0 pascal pascal
option.ts
in mpapi-next-gen/src/common
1 - 2026-06-25 2026-06-25 1 1 +1 / -0 pascal pascal
apple-mappings.ts
in typescript/src/services
276 - 2025-04-29 2026-04-13 17 2 +574 / -12 pascal.honore pascal
google-subscription-extra.ts
in typescript/src/services
187 3 2025-07-19 2026-04-16 19 2 +1203 / -765 pascal pascal
appleFetchOfferDetails.ts
in typescript/src/promotional-offers
78 2 2023-08-30 2026-04-16 16 2 +407 / -193 pascal pascal
common.ts
in typescript/src/feast/acquisition-events
55 - 2024-12-16 2026-04-13 10 2 +275 / -125 pascal pascal
apple-json-web-tokens.ts
in typescript/src/services
25 - 2025-04-29 2026-04-16 8 2 +128 / -36 pascal.honore pascal
apple-common.ts
in typescript/src/pubsub
503 16 2024-03-18 2026-04-16 15 3 +1607 / -892 tom.wey pascal
google.ts
in typescript/src/feast/acquisition-events
286 - 2024-09-27 2026-09-14 47 3 +1464 / -786 michael.mcnamara pascal
connector.py
in adjust_report_etl
252 2 2024-11-11 2025-08-07 7 3 +938 / -342 36296660+david-pepper andradeolivier
google-common.ts
in typescript/src/pubsub
226 5 2024-05-15 2026-07-23 22 3 +928 / -423 99180049+maelgnm pascal
api-storekit.ts
in typescript/src/services
190 2 2025-04-29 2026-07-16 15 3 +890 / -236 pascal 49699333+dependabot[bot]
subscriptionEvent.ts
in typescript/src/models
106 1 2019-06-03 2026-04-16 22 3 +343 / -83 alex.dufournet pascal
router.ts
in typescript/src/feast/acquisition-events
96 - 2024-09-27 2026-04-13 13 3 +918 / -201 michael.mcnamara pascal
appleSubStatus.ts
in typescript/src/subscription-status
95 3 2019-09-06 2026-07-28 23 3 +386 / -174 alex.dufournet pascal
google-play.ts
in typescript/src/services
65 4 2020-02-20 2026-04-16 14 3 +325 / -181 alex.dufournet pascal
ssmConfig.ts
in typescript/src/utils
61 3 2019-08-21 2026-04-16 14 3 +242 / -108 alex.dufournet pascal
dynamoStream.ts
in typescript/src/export
39 1 2019-08-29 2026-04-16 13 3 +161 / -65 alex.dufournet pascal
mapAndroidProductId.ts
in typescript/src/utils
15 - 2024-06-14 2026-04-13 9 3 +63 / -35 tom.wey pascal
restClient.ts
in typescript/src/utils
9 - 2020-02-20 2026-04-13 11 3 +45 / -25 alex.dufournet pascal
subscriptionReference.ts
in typescript/src/models
9 - 2019-08-22 2026-04-16 11 3 +36 / -14 alex.dufournet pascal
processingError.ts
in typescript/src/models
9 1 2019-08-15 2026-04-13 9 3 +20 / -0 alex.dufournet pascal
dependabot.yml
in .github
8 - 2021-01-07 2025-12-15 4 3 +40 / -0 53781962+jamieb-gu pascal
GracefulProcessingError.ts
in typescript/src/models
7 1 2021-01-26 2026-04-16 10 3 +10 / -2 marjan.kalanaki pascal
app.ts
in typescript/src/models
6 - 2024-03-21 2026-04-13 9 3 +28 / -16 3607811+tomwadeson pascal
ignorable.ts
in typescript/src/pubsub
6 1 2024-04-29 2026-04-13 8 3 +7 / -0 tom.wey pascal
appIdentity.ts
in typescript/src/utils
4 - 2019-06-03 2025-01-10 5 3 +32 / -24 alex.dufournet pascal.honore
option.ts
in typescript/src/utils
1 - 2019-08-21 2025-01-10 4 3 +2 / -0 alex.dufournet pascal.honore
apple.ts
in typescript/src/feast/acquisition-events
146 1 2024-09-27 2026-07-16 29 4 +1849 / -1543 michael.mcnamara 49699333+dependabot[bot]
google-play-v2.ts
in typescript/src/services
145 13 2024-02-15 2026-04-16 15 4 +770 / -344 3607811+tomwadeson pascal
dlq-processor.ts
in typescript/src/soft-opt-ins
97 3 2023-06-15 2026-08-27 17 4 +467 / -237 jon.flynn pascal
google.ts
in typescript/src/feast/pubsub
81 1 2024-05-01 2026-07-20 20 4 +296 / -162 99180049+maelgnm pascal
apple.ts
in typescript/src/feast/pubsub
63 1 2024-04-29 2026-04-16 12 4 +314 / -166 99180049+maelgnm pascal
productBillingPeriod.ts
in typescript/src/services
53 - 2020-02-26 2026-04-13 25 4 +310 / -147 alex.dufournet pascal
Correlations

File Size vs. Number of Changes: 88 points

typescript/src/feast/acquisition-events/google.ts x: 286 lines of code y: 47 # changes typescript/src/soft-opt-ins/dlq-processor.ts x: 97 lines of code y: 17 # changes typescript/src/subscription-status/appleSubStatus.ts x: 95 lines of code y: 23 # changes typescript/src/subscription-status/googleSubStatus.ts x: 151 lines of code y: 36 # changes typescript/src/pubsub/google-common.ts x: 226 lines of code y: 22 # changes cloudformation.yaml x: 1686 lines of code y: 173 # changes typescript/src/feast/pubsub/google.ts x: 81 lines of code y: 20 # changes typescript/src/pubsub/pubsub.ts x: 84 lines of code y: 41 # changes typescript/src/feast/acquisition-events/apple.ts x: 146 lines of code y: 29 # changes typescript/src/link/google.ts x: 61 lines of code y: 23 # changes typescript/src/services/api-storekit.ts x: 190 lines of code y: 15 # changes typescript/src/services/appleValidateReceipts.ts x: 287 lines of code y: 42 # changes typescript/src/update-subs/apple.ts x: 81 lines of code y: 46 # changes typescript/src/utils/guIdentityApi.ts x: 85 lines of code y: 37 # changes mpapi-next-gen/src/common/apiGatewayHttp.ts x: 27 lines of code y: 1 # changes mpapi-next-gen/src/common/guIdentityApi.ts x: 92 lines of code y: 1 # changes mpapi-next-gen/src/common/platform.ts x: 11 lines of code y: 1 # changes mpapi-next-gen/src/common/softOptIns.ts x: 13 lines of code y: 1 # changes mpapi-next-gen/src/common/ssmParameters.ts x: 22 lines of code y: 1 # changes mpapi-next-gen/src/common/subscriptionEvent.ts x: 83 lines of code y: 2 # changes mpapi-next-gen/src/lambdas/googleOauth2.ts x: 71 lines of code y: 2 # changes mpapi-next-gen/esbuild.config.js x: 35 lines of code y: 3 # changes mpapi-next-gen/src/common/appIdentity.ts x: 4 lines of code y: 1 # changes mpapi-next-gen/src/common/dates.ts x: 3 lines of code y: 1 # changes mpapi-next-gen/src/common/dynamoStream.ts x: 96 lines of code y: 1 # changes mpapi-next-gen/src/lambdas/exportHistoricalData.ts x: 160 lines of code y: 1 # changes mpapi-next-gen/src/lambdas/exportSubscriptionEventsTable.ts x: 114 lines of code y: 1 # changes mpapi-next-gen/src/lambdas/exportSubscriptionTableV2.ts x: 66 lines of code y: 1 # changes riff-raff.yaml x: 189 lines of code y: 66 # changes typescript/src/soft-opt-ins/processSubscription.ts x: 178 lines of code y: 19 # changes typescript/src/soft-opt-ins/acquisitions.ts x: 49 lines of code y: 31 # changes exports-cloudformation.yaml x: 361 lines of code y: 20 # changes feast-acquisition-events.cloudformation.yaml x: 430 lines of code y: 12 # changes eslint.config.js x: 30 lines of code y: 2 # changes typescript/src/export/dynamoStream.ts x: 39 lines of code y: 13 # changes typescript/src/export/exportSubscriptions.ts x: 51 lines of code y: 18 # changes typescript/src/feast/pubsub/apple.ts x: 63 lines of code y: 12 # changes typescript/src/link/link.ts x: 121 lines of code y: 67 # changes typescript/src/services/google-play-v2.ts x: 145 lines of code y: 15 # changes typescript/src/services/google-play.ts x: 65 lines of code y: 14 # changes typescript/src/services/google-subscription-extra.ts x: 187 lines of code y: 19 # changes typescript/src/utils/aws.ts x: 174 lines of code y: 52 # changes typescript/src/utils/ssmConfig.ts x: 61 lines of code y: 14 # changes typescript/src/pubsub/apple.ts x: 114 lines of code y: 74 # changes typescript/src/pubsub/google.ts x: 27 lines of code y: 43 # changes typescript/src/link/apple-utils.ts x: 36 lines of code y: 12 # changes typescript/src/link/deleteLink.ts x: 116 lines of code y: 31 # changes typescript/src/models/GracefulProcessingError.ts x: 7 lines of code y: 10 # changes typescript/src/models/subscription.ts x: 92 lines of code y: 36 # changes typescript/src/models/subscriptionEvent.ts x: 106 lines of code y: 22 # changes typescript/src/models/subscriptionReference.ts x: 9 lines of code y: 11 # changes typescript/src/promotional-offers/appleFetchOfferDetails.ts x: 78 lines of code y: 16 # changes typescript/src/pubsub/apple-common.ts x: 503 lines of code y: 15 # changes typescript/src/services/apple-json-web-tokens.ts x: 25 lines of code y: 8 # changes typescript/src/test-launcher/test-launcher.ts x: 21 lines of code y: 16 # changes typescript/src/update-subs/google.ts x: 145 lines of code y: 37 # changes typescript/src/feast/acquisition-events/common.ts x: 55 lines of code y: 10 # changes typescript/src/feast/acquisition-events/router.ts x: 96 lines of code y: 13 # changes typescript/src/feast/update-subs/apple.ts x: 162 lines of code y: 13 # changes typescript/src/feast/update-subs/common.ts x: 24 lines of code y: 11 # changes typescript/src/feast/update-subs/google.ts x: 150 lines of code y: 19 # changes typescript/src/link/apple.ts x: 39 lines of code y: 31 # changes typescript/src/models/apiGatewayHttp.ts x: 27 lines of code y: 16 # changes typescript/src/models/app.ts x: 6 lines of code y: 9 # changes typescript/src/models/endTimestampFilter.ts x: 40 lines of code y: 14 # changes typescript/src/models/platform.ts x: 11 lines of code y: 15 # changes typescript/src/models/processingError.ts x: 9 lines of code y: 9 # changes typescript/src/models/userSubscription.ts x: 32 lines of code y: 19 # changes typescript/src/pubsub/ignorable.ts x: 6 lines of code y: 8 # changes typescript/src/revalidate-receipts/appleRevalidateReceipts.ts x: 111 lines of code y: 20 # changes typescript/src/services/appToPlatform.ts x: 22 lines of code y: 12 # changes typescript/src/services/apple-mappings.ts x: 276 lines of code y: 17 # changes typescript/src/services/braze.ts x: 42 lines of code y: 11 # changes typescript/src/services/productBillingPeriod.ts x: 53 lines of code y: 25 # changes typescript/src/update-subs/updatesub.ts x: 62 lines of code y: 30 # changes typescript/src/user/user.ts x: 130 lines of code y: 29 # changes typescript/src/utils/dates.ts x: 18 lines of code y: 17 # changes typescript/src/utils/mapAndroidProductId.ts x: 15 lines of code y: 9 # changes typescript/src/utils/softOptIns.ts x: 13 lines of code y: 10 # changes .github/dependabot.yml x: 8 lines of code y: 4 # changes dynamo.cloudformation.yaml x: 307 lines of code y: 52 # changes adjust_report_etl/connector.py x: 252 lines of code y: 7 # changes typescript/src/utils/appIdentity.ts x: 4 lines of code y: 5 # changes typescript/src/utils/option.ts x: 1 lines of code y: 4 # changes cdk/lib/mobile-purchases-feast.ts x: 8 lines of code y: 1 # changes
173.0
# changes
  min: 1.0
  average: 19.85
  25th percentile: 7.25
  median: 14.5
  75th percentile: 24.5
  max: 173.0
0 1686.0
lines of code
min: 1.0 | average: 111.26 | 25th percentile: 22.5 | median: 64.0 | 75th percentile: 141.25 | max: 1686.0

Number of Contributors vs. Number of Changes: 88 points

typescript/src/feast/acquisition-events/google.ts x: 3 # contributors y: 47 # changes typescript/src/soft-opt-ins/dlq-processor.ts x: 4 # contributors y: 17 # changes typescript/src/subscription-status/appleSubStatus.ts x: 3 # contributors y: 23 # changes typescript/src/subscription-status/googleSubStatus.ts x: 9 # contributors y: 36 # changes typescript/src/pubsub/google-common.ts x: 3 # contributors y: 22 # changes cloudformation.yaml x: 28 # contributors y: 173 # changes typescript/src/feast/pubsub/google.ts x: 4 # contributors y: 20 # changes typescript/src/pubsub/pubsub.ts x: 6 # contributors y: 41 # changes typescript/src/feast/acquisition-events/apple.ts x: 4 # contributors y: 29 # changes typescript/src/link/google.ts x: 6 # contributors y: 23 # changes typescript/src/services/api-storekit.ts x: 3 # contributors y: 15 # changes typescript/src/services/appleValidateReceipts.ts x: 9 # contributors y: 42 # changes typescript/src/update-subs/apple.ts x: 5 # contributors y: 46 # changes typescript/src/utils/guIdentityApi.ts x: 11 # contributors y: 37 # changes mpapi-next-gen/src/common/apiGatewayHttp.ts x: 1 # contributors y: 1 # changes mpapi-next-gen/src/common/subscriptionEvent.ts x: 1 # contributors y: 2 # changes mpapi-next-gen/esbuild.config.js x: 1 # contributors y: 3 # changes riff-raff.yaml x: 17 # contributors y: 66 # changes typescript/src/soft-opt-ins/processSubscription.ts x: 5 # contributors y: 19 # changes typescript/src/soft-opt-ins/acquisitions.ts x: 4 # contributors y: 31 # changes exports-cloudformation.yaml x: 11 # contributors y: 20 # changes feast-acquisition-events.cloudformation.yaml x: 6 # contributors y: 12 # changes typescript/src/export/dynamoStream.ts x: 3 # contributors y: 13 # changes typescript/src/export/exportSubscriptions.ts x: 5 # contributors y: 18 # changes typescript/src/feast/pubsub/apple.ts x: 4 # contributors y: 12 # changes typescript/src/link/link.ts x: 13 # contributors y: 67 # changes typescript/src/services/google-play-v2.ts x: 4 # contributors y: 15 # changes typescript/src/services/google-play.ts x: 3 # contributors y: 14 # changes typescript/src/services/google-subscription-extra.ts x: 2 # contributors y: 19 # changes typescript/src/utils/aws.ts x: 10 # contributors y: 52 # changes typescript/src/pubsub/apple.ts x: 11 # contributors y: 74 # changes typescript/src/pubsub/google.ts x: 8 # contributors y: 43 # changes typescript/src/link/deleteLink.ts x: 6 # contributors y: 31 # changes typescript/src/models/GracefulProcessingError.ts x: 3 # contributors y: 10 # changes typescript/src/models/subscription.ts x: 5 # contributors y: 36 # changes typescript/src/models/subscriptionReference.ts x: 3 # contributors y: 11 # changes typescript/src/promotional-offers/appleFetchOfferDetails.ts x: 2 # contributors y: 16 # changes typescript/src/services/apple-json-web-tokens.ts x: 2 # contributors y: 8 # changes typescript/src/test-launcher/test-launcher.ts x: 5 # contributors y: 16 # changes typescript/src/update-subs/google.ts x: 5 # contributors y: 37 # changes typescript/src/feast/acquisition-events/common.ts x: 2 # contributors y: 10 # changes typescript/src/feast/update-subs/apple.ts x: 7 # contributors y: 13 # changes typescript/src/feast/update-subs/common.ts x: 4 # contributors y: 11 # changes typescript/src/feast/update-subs/google.ts x: 7 # contributors y: 19 # changes typescript/src/link/apple.ts x: 8 # contributors y: 31 # changes typescript/src/models/app.ts x: 3 # contributors y: 9 # changes typescript/src/models/endTimestampFilter.ts x: 4 # contributors y: 14 # changes typescript/src/models/platform.ts x: 6 # contributors y: 15 # changes typescript/src/models/userSubscription.ts x: 4 # contributors y: 19 # changes typescript/src/pubsub/ignorable.ts x: 3 # contributors y: 8 # changes typescript/src/revalidate-receipts/appleRevalidateReceipts.ts x: 6 # contributors y: 20 # changes typescript/src/services/appToPlatform.ts x: 5 # contributors y: 12 # changes typescript/src/services/apple-mappings.ts x: 2 # contributors y: 17 # changes typescript/src/services/productBillingPeriod.ts x: 4 # contributors y: 25 # changes typescript/src/update-subs/updatesub.ts x: 5 # contributors y: 30 # changes typescript/src/user/user.ts x: 7 # contributors y: 29 # changes typescript/src/utils/softOptIns.ts x: 4 # contributors y: 10 # changes .github/dependabot.yml x: 3 # contributors y: 4 # changes dynamo.cloudformation.yaml x: 15 # contributors y: 52 # changes adjust_report_etl/connector.py x: 3 # contributors y: 7 # changes typescript/src/utils/appIdentity.ts x: 3 # contributors y: 5 # changes
173.0
# changes
  min: 1.0
  average: 19.85
  25th percentile: 7.25
  median: 14.5
  75th percentile: 24.5
  max: 173.0
0 28.0
# contributors
min: 1.0 | average: 4.53 | 25th percentile: 2.0 | median: 3.5 | 75th percentile: 5.0 | max: 28.0

Number of Contributors vs. File Size: 88 points

typescript/src/feast/acquisition-events/google.ts x: 3 # contributors y: 286 lines of code typescript/src/soft-opt-ins/dlq-processor.ts x: 4 # contributors y: 97 lines of code typescript/src/subscription-status/appleSubStatus.ts x: 3 # contributors y: 95 lines of code typescript/src/subscription-status/googleSubStatus.ts x: 9 # contributors y: 151 lines of code typescript/src/pubsub/google-common.ts x: 3 # contributors y: 226 lines of code cloudformation.yaml x: 28 # contributors y: 1686 lines of code typescript/src/feast/pubsub/google.ts x: 4 # contributors y: 81 lines of code typescript/src/pubsub/pubsub.ts x: 6 # contributors y: 84 lines of code typescript/src/feast/acquisition-events/apple.ts x: 4 # contributors y: 146 lines of code typescript/src/link/google.ts x: 6 # contributors y: 61 lines of code typescript/src/services/api-storekit.ts x: 3 # contributors y: 190 lines of code typescript/src/services/appleValidateReceipts.ts x: 9 # contributors y: 287 lines of code typescript/src/update-subs/apple.ts x: 5 # contributors y: 81 lines of code typescript/src/utils/guIdentityApi.ts x: 11 # contributors y: 85 lines of code mpapi-next-gen/src/common/apiGatewayHttp.ts x: 1 # contributors y: 27 lines of code mpapi-next-gen/src/common/guIdentityApi.ts x: 1 # contributors y: 92 lines of code mpapi-next-gen/src/common/platform.ts x: 1 # contributors y: 11 lines of code mpapi-next-gen/src/common/ssmParameters.ts x: 1 # contributors y: 22 lines of code mpapi-next-gen/src/common/subscriptionEvent.ts x: 1 # contributors y: 83 lines of code mpapi-next-gen/src/lambdas/googleOauth2.ts x: 1 # contributors y: 71 lines of code mpapi-next-gen/esbuild.config.js x: 1 # contributors y: 35 lines of code mpapi-next-gen/src/common/appIdentity.ts x: 1 # contributors y: 4 lines of code mpapi-next-gen/src/common/dynamoStream.ts x: 1 # contributors y: 96 lines of code mpapi-next-gen/src/lambdas/exportHistoricalData.ts x: 1 # contributors y: 160 lines of code mpapi-next-gen/src/lambdas/exportSubscriptionEventsTable.ts x: 1 # contributors y: 114 lines of code mpapi-next-gen/src/lambdas/exportSubscriptionTableV2.ts x: 1 # contributors y: 66 lines of code riff-raff.yaml x: 17 # contributors y: 189 lines of code typescript/src/soft-opt-ins/processSubscription.ts x: 5 # contributors y: 178 lines of code typescript/src/soft-opt-ins/acquisitions.ts x: 4 # contributors y: 49 lines of code exports-cloudformation.yaml x: 11 # contributors y: 361 lines of code feast-acquisition-events.cloudformation.yaml x: 6 # contributors y: 430 lines of code typescript/src/export/dynamoStream.ts x: 3 # contributors y: 39 lines of code typescript/src/export/exportSubscriptions.ts x: 5 # contributors y: 51 lines of code typescript/src/feast/pubsub/apple.ts x: 4 # contributors y: 63 lines of code typescript/src/link/link.ts x: 13 # contributors y: 121 lines of code typescript/src/services/google-play.ts x: 3 # contributors y: 65 lines of code typescript/src/services/google-subscription-extra.ts x: 2 # contributors y: 187 lines of code typescript/src/utils/aws.ts x: 10 # contributors y: 174 lines of code typescript/src/pubsub/apple.ts x: 11 # contributors y: 114 lines of code typescript/src/pubsub/google.ts x: 8 # contributors y: 27 lines of code typescript/src/link/apple-utils.ts x: 4 # contributors y: 36 lines of code typescript/src/link/deleteLink.ts x: 6 # contributors y: 116 lines of code typescript/src/models/GracefulProcessingError.ts x: 3 # contributors y: 7 lines of code typescript/src/models/subscription.ts x: 5 # contributors y: 92 lines of code typescript/src/models/subscriptionEvent.ts x: 3 # contributors y: 106 lines of code typescript/src/promotional-offers/appleFetchOfferDetails.ts x: 2 # contributors y: 78 lines of code typescript/src/pubsub/apple-common.ts x: 3 # contributors y: 503 lines of code typescript/src/services/apple-json-web-tokens.ts x: 2 # contributors y: 25 lines of code typescript/src/test-launcher/test-launcher.ts x: 5 # contributors y: 21 lines of code typescript/src/update-subs/google.ts x: 5 # contributors y: 145 lines of code typescript/src/feast/acquisition-events/common.ts x: 2 # contributors y: 55 lines of code typescript/src/feast/update-subs/apple.ts x: 7 # contributors y: 162 lines of code typescript/src/feast/update-subs/common.ts x: 4 # contributors y: 24 lines of code typescript/src/feast/update-subs/google.ts x: 7 # contributors y: 150 lines of code typescript/src/link/apple.ts x: 8 # contributors y: 39 lines of code typescript/src/models/apiGatewayHttp.ts x: 5 # contributors y: 27 lines of code typescript/src/models/app.ts x: 3 # contributors y: 6 lines of code typescript/src/models/endTimestampFilter.ts x: 4 # contributors y: 40 lines of code typescript/src/models/platform.ts x: 6 # contributors y: 11 lines of code typescript/src/models/userSubscription.ts x: 4 # contributors y: 32 lines of code typescript/src/revalidate-receipts/appleRevalidateReceipts.ts x: 6 # contributors y: 111 lines of code typescript/src/services/apple-mappings.ts x: 2 # contributors y: 276 lines of code typescript/src/update-subs/updatesub.ts x: 5 # contributors y: 62 lines of code typescript/src/user/user.ts x: 7 # contributors y: 130 lines of code typescript/src/utils/dates.ts x: 4 # contributors y: 18 lines of code typescript/src/utils/mapAndroidProductId.ts x: 3 # contributors y: 15 lines of code typescript/src/utils/softOptIns.ts x: 4 # contributors y: 13 lines of code dynamo.cloudformation.yaml x: 15 # contributors y: 307 lines of code adjust_report_etl/connector.py x: 3 # contributors y: 252 lines of code
1686.0
lines of code
  min: 1.0
  average: 111.26
  25th percentile: 22.5
  median: 64.0
  75th percentile: 141.25
  max: 1686.0
0 28.0
# contributors
min: 1.0 | average: 4.53 | 25th percentile: 2.0 | median: 3.5 | 75th percentile: 5.0 | max: 28.0

Number of Changes vs. Line Churn: 418 points

cdk/yarn.lock x: 16 # changes y: 9017 line churn package.json x: 492 # changes y: 2721 line churn yarn.lock x: 515 # changes y: 115045 line churn mpapi-next-gen/yarn.lock x: 10 # changes y: 16927 line churn typescript/src/feast/acquisition-events/google.ts x: 47 # changes y: 2250 line churn typescript/src/soft-opt-ins/dlq-processor.ts x: 17 # changes y: 704 line churn cdk/package.json x: 7 # changes y: 93 line churn typescript/src/subscription-status/appleSubStatus.ts x: 23 # changes y: 560 line churn typescript/src/subscription-status/googleSubStatus.ts x: 36 # changes y: 1896 line churn typescript/src/pubsub/google-common.ts x: 22 # changes y: 1351 line churn cloudformation.yaml x: 173 # changes y: 9561 line churn typescript/src/feast/pubsub/google.ts x: 20 # changes y: 458 line churn typescript/src/pubsub/pubsub.ts x: 41 # changes y: 1053 line churn typescript/src/feast/acquisition-events/apple.ts x: 29 # changes y: 3392 line churn typescript/src/services/api-storekit.ts x: 15 # changes y: 1126 line churn typescript/src/services/appleValidateReceipts.ts x: 42 # changes y: 1995 line churn typescript/src/update-subs/apple.ts x: 46 # changes y: 1189 line churn typescript/src/utils/guIdentityApi.ts x: 37 # changes y: 1287 line churn mpapi-next-gen/docs/dynamo-tables.md x: 1 # changes y: 2 line churn mpapi-next-gen/src/common/subscriptionEvent.ts x: 2 # changes y: 91 line churn mpapi-next-gen/README.md x: 5 # changes y: 57 line churn mpapi-next-gen/esbuild.config.js x: 3 # changes y: 87 line churn mpapi-next-gen/src/handlers/exportHistoricalData.ts x: 2 # changes y: 560 line churn .github/workflows/ci.yaml x: 26 # changes y: 506 line churn mpapi-next-gen/docs/README.md x: 4 # changes y: 37 line churn riff-raff.yaml x: 66 # changes y: 1018 line churn typescript/src/export/exportEvents.ts x: 19 # changes y: 407 line churn webpack.config.js x: 57 # changes y: 865 line churn mpapi-next-gen/webpack.config.js x: 6 # changes y: 401 line churn mpapi-next-gen/src/handlers/mobile-purchases-google-oauth2.ts x: 5 # changes y: 485 line churn typescript/src/export/exportHistoricalData.ts x: 21 # changes y: 1670 line churn typescript/src/export/exportSubscriptions-v2.ts x: 13 # changes y: 509 line churn README.md x: 28 # changes y: 493 line churn build.sbt x: 99 # changes y: 1555 line churn project/build.properties x: 11 # changes y: 28 line churn project/plugins.sbt x: 13 # changes y: 67 line churn scala/common/src/main/scala/com/gu/mobilepurchases/shared/cloudwatch/Cloudwatch.scala x: 7 # changes y: 825 line churn scala/common/src/main/scala/com/gu/mobilepurchases/shared/lambda/LambdaApiGateway.scala x: 3 # changes y: 624 line churn scala/common/src/test/scala/com/gu/mobilepurchases/shared/cloudwatch/CloudWatchImplSpec.scala x: 6 # changes y: 700 line churn tsconfig.json x: 12 # changes y: 161 line churn docs/ARCHITECTURE.md x: 24 # changes y: 957 line churn typescript/src/soft-opt-ins/processSubscription.ts x: 19 # changes y: 1050 line churn typescript/src/soft-opt-ins/acquisitions.ts x: 31 # changes y: 1805 line churn cdk/package-lock.json x: 3 # changes y: 24933 line churn exports-cloudformation.yaml x: 20 # changes y: 1377 line churn feast-acquisition-events.cloudformation.yaml x: 12 # changes y: 739 line churn build-tc.sh x: 18 # changes y: 227 line churn typescript/src/link/link.ts x: 67 # changes y: 3570 line churn typescript/src/services/google-play.ts x: 14 # changes y: 506 line churn typescript/src/services/google-subscription-extra.ts x: 19 # changes y: 1968 line churn typescript/src/utils/aws.ts x: 52 # changes y: 2066 line churn typescript/src/utils/ssmConfig.ts x: 14 # changes y: 350 line churn typescript/tests/link/deleteLink.test.ts x: 22 # changes y: 1764 line churn typescript/tests/pubsub/pubsub.test.ts x: 44 # changes y: 3976 line churn typescript/tests/soft-opt-ins/acquisition.test.ts x: 36 # changes y: 3976 line churn typescript/tests/soft-opt-ins/dlq-processor.test.ts x: 14 # changes y: 2098 line churn typescript/src/pubsub/apple.ts x: 74 # changes y: 2929 line churn typescript/src/pubsub/google.ts x: 43 # changes y: 1048 line churn typescript/src/link/deleteLink.ts x: 31 # changes y: 1125 line churn typescript/src/models/GracefulProcessingError.ts x: 10 # changes y: 12 line churn typescript/src/models/subscription.ts x: 36 # changes y: 920 line churn typescript/src/models/subscriptionEvent.ts x: 22 # changes y: 426 line churn typescript/src/promotional-offers/appleFetchOfferDetails.ts x: 16 # changes y: 600 line churn typescript/src/pubsub/apple-common.ts x: 15 # changes y: 2499 line churn typescript/src/services/apple-json-web-tokens.ts x: 8 # changes y: 164 line churn typescript/src/test-launcher/test-launcher.ts x: 16 # changes y: 164 line churn typescript/src/update-subs/google.ts x: 37 # changes y: 1461 line churn typescript/tests/feast/pubsub/apple.test.ts x: 10 # changes y: 1121 line churn typescript/tests/feast/pubsub/google.test.ts x: 15 # changes y: 1380 line churn typescript/tests/feast/update-subs/apple.test.ts x: 12 # changes y: 1326 line churn typescript/tests/feast/update-subs/google.test.ts x: 16 # changes y: 1001 line churn typescript/tests/helpers/withEnv.ts x: 9 # changes y: 48 line churn typescript/src/feast/acquisition-events/router.ts x: 13 # changes y: 1119 line churn typescript/src/feast/update-subs/google.ts x: 19 # changes y: 813 line churn typescript/src/link/apple.ts x: 31 # changes y: 638 line churn typescript/src/models/platform.ts x: 15 # changes y: 104 line churn typescript/src/revalidate-receipts/appleRevalidateReceipts.ts x: 20 # changes y: 1146 line churn typescript/src/services/productBillingPeriod.ts x: 25 # changes y: 457 line churn typescript/src/update-subs/updatesub.ts x: 30 # changes y: 690 line churn typescript/src/user/user.ts x: 29 # changes y: 1233 line churn typescript/src/utils/dates.ts x: 17 # changes y: 170 line churn typescript/tests/pubsub/apple-common.test.ts x: 9 # changes y: 552 line churn typescript/tests/services/appleValidateReceipts.test.ts x: 22 # changes y: 2468 line churn docs/extra.md x: 11 # changes y: 658 line churn dynamo.cloudformation.yaml x: 52 # changes y: 1670 line churn adjust_report_etl/connector.py x: 7 # changes y: 1280 line churn typescript/src/scripts/android-price-rise/getRegionsThatAllowOptOut.ts x: 5 # changes y: 1112 line churn .gitignore x: 20 # changes y: 59 line churn yarn-error.log x: 2 # changes y: 11366 line churn docs/google-purchase-tokens.md x: 2 # changes y: 912 line churn typescript/tests/feast/update-subs/updatesubs.test.ts x: 8 # changes y: 583 line churn typescript/tests/soft-opt-ins/cancelSubscription.test.ts x: 10 # changes y: 1520 line churn iosuserpurchases/src/test/scala/com/gu/mobilepurchases/userpurchases/controller/UserPurchasesControllerSpec.scala x: 4 # changes y: 566 line churn iosvalidatereceipts/src/main/scala/com/gu/mobilepurchases/apple/AppStore.scala x: 11 # changes y: 984 line churn
115045.0
line churn
  min: 1.0
  average: 807.83
  25th percentile: 48.0
  median: 164.0
  75th percentile: 471.0
  max: 115045.0
0 515.0
# changes
min: 1.0 | average: 10.84 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 10.0 | max: 515.0

Number of Contributors vs. Line Churn: 88 points

typescript/src/feast/acquisition-events/google.ts x: 3 # contributors y: 2250 line churn typescript/src/soft-opt-ins/dlq-processor.ts x: 4 # contributors y: 704 line churn typescript/src/subscription-status/appleSubStatus.ts x: 3 # contributors y: 560 line churn typescript/src/subscription-status/googleSubStatus.ts x: 9 # contributors y: 1896 line churn typescript/src/pubsub/google-common.ts x: 3 # contributors y: 1351 line churn cloudformation.yaml x: 28 # contributors y: 9561 line churn typescript/src/feast/pubsub/google.ts x: 4 # contributors y: 458 line churn typescript/src/pubsub/pubsub.ts x: 6 # contributors y: 1053 line churn typescript/src/feast/acquisition-events/apple.ts x: 4 # contributors y: 3392 line churn typescript/src/link/google.ts x: 6 # contributors y: 565 line churn typescript/src/services/api-storekit.ts x: 3 # contributors y: 1126 line churn typescript/src/services/appleValidateReceipts.ts x: 9 # contributors y: 1995 line churn typescript/src/update-subs/apple.ts x: 5 # contributors y: 1189 line churn typescript/src/utils/guIdentityApi.ts x: 11 # contributors y: 1287 line churn mpapi-next-gen/src/common/apiGatewayHttp.ts x: 1 # contributors y: 31 line churn mpapi-next-gen/src/common/guIdentityApi.ts x: 1 # contributors y: 106 line churn mpapi-next-gen/src/common/userSubscription.ts x: 1 # contributors y: 40 line churn mpapi-next-gen/src/lambdas/googleOauth2.ts x: 1 # contributors y: 137 line churn mpapi-next-gen/src/lambdas/exportHistoricalData.ts x: 1 # contributors y: 184 line churn riff-raff.yaml x: 17 # contributors y: 1018 line churn typescript/src/soft-opt-ins/processSubscription.ts x: 5 # contributors y: 1050 line churn typescript/src/soft-opt-ins/acquisitions.ts x: 4 # contributors y: 1805 line churn exports-cloudformation.yaml x: 11 # contributors y: 1377 line churn feast-acquisition-events.cloudformation.yaml x: 6 # contributors y: 739 line churn eslint.config.js x: 1 # contributors y: 192 line churn typescript/src/export/dynamoStream.ts x: 3 # contributors y: 226 line churn typescript/src/export/exportSubscriptions.ts x: 5 # contributors y: 447 line churn typescript/src/link/link.ts x: 13 # contributors y: 3570 line churn typescript/src/services/google-play-v2.ts x: 4 # contributors y: 1114 line churn typescript/src/services/google-play.ts x: 3 # contributors y: 506 line churn typescript/src/services/google-subscription-extra.ts x: 2 # contributors y: 1968 line churn typescript/src/utils/aws.ts x: 10 # contributors y: 2066 line churn typescript/src/utils/ssmConfig.ts x: 3 # contributors y: 350 line churn typescript/src/pubsub/apple.ts x: 11 # contributors y: 2929 line churn typescript/src/pubsub/google.ts x: 8 # contributors y: 1048 line churn typescript/src/link/apple-utils.ts x: 4 # contributors y: 263 line churn typescript/src/link/deleteLink.ts x: 6 # contributors y: 1125 line churn typescript/src/models/GracefulProcessingError.ts x: 3 # contributors y: 12 line churn typescript/src/models/subscription.ts x: 5 # contributors y: 920 line churn typescript/src/models/subscriptionEvent.ts x: 3 # contributors y: 426 line churn typescript/src/models/subscriptionReference.ts x: 3 # contributors y: 50 line churn typescript/src/promotional-offers/appleFetchOfferDetails.ts x: 2 # contributors y: 600 line churn typescript/src/pubsub/apple-common.ts x: 3 # contributors y: 2499 line churn typescript/src/services/apple-json-web-tokens.ts x: 2 # contributors y: 164 line churn typescript/src/test-launcher/test-launcher.ts x: 5 # contributors y: 164 line churn typescript/src/update-subs/google.ts x: 5 # contributors y: 1461 line churn typescript/src/feast/acquisition-events/common.ts x: 2 # contributors y: 400 line churn typescript/src/feast/update-subs/apple.ts x: 7 # contributors y: 950 line churn typescript/src/feast/update-subs/common.ts x: 4 # contributors y: 123 line churn typescript/src/feast/update-subs/google.ts x: 7 # contributors y: 813 line churn typescript/src/link/apple.ts x: 8 # contributors y: 638 line churn typescript/src/models/apiGatewayHttp.ts x: 5 # contributors y: 278 line churn typescript/src/models/endTimestampFilter.ts x: 4 # contributors y: 298 line churn typescript/src/models/platform.ts x: 6 # contributors y: 104 line churn typescript/src/models/userSubscription.ts x: 4 # contributors y: 352 line churn typescript/src/revalidate-receipts/appleRevalidateReceipts.ts x: 6 # contributors y: 1146 line churn typescript/src/update-subs/updatesub.ts x: 5 # contributors y: 690 line churn typescript/src/user/user.ts x: 7 # contributors y: 1233 line churn typescript/src/utils/dates.ts x: 4 # contributors y: 170 line churn typescript/src/utils/mapAndroidProductId.ts x: 3 # contributors y: 98 line churn typescript/src/utils/softOptIns.ts x: 4 # contributors y: 60 line churn dynamo.cloudformation.yaml x: 15 # contributors y: 1670 line churn adjust_report_etl/connector.py x: 3 # contributors y: 1280 line churn
9561.0
line churn
  min: 1.0
  average: 797.82
  25th percentile: 92.75
  median: 436.5
  75th percentile: 1123.5
  max: 9561.0
0 28.0
# contributors
min: 1.0 | average: 4.53 | 25th percentile: 2.0 | median: 3.5 | 75th percentile: 5.0 | max: 28.0

File Size vs. Line Churn: 88 points

typescript/src/feast/acquisition-events/google.ts x: 286 lines of code y: 2250 line churn typescript/src/soft-opt-ins/dlq-processor.ts x: 97 lines of code y: 704 line churn typescript/src/subscription-status/appleSubStatus.ts x: 95 lines of code y: 560 line churn typescript/src/subscription-status/googleSubStatus.ts x: 151 lines of code y: 1896 line churn typescript/src/pubsub/google-common.ts x: 226 lines of code y: 1351 line churn cloudformation.yaml x: 1686 lines of code y: 9561 line churn typescript/src/feast/pubsub/google.ts x: 81 lines of code y: 458 line churn typescript/src/pubsub/pubsub.ts x: 84 lines of code y: 1053 line churn typescript/src/feast/acquisition-events/apple.ts x: 146 lines of code y: 3392 line churn typescript/src/link/google.ts x: 61 lines of code y: 565 line churn typescript/src/services/api-storekit.ts x: 190 lines of code y: 1126 line churn typescript/src/services/appleValidateReceipts.ts x: 287 lines of code y: 1995 line churn typescript/src/update-subs/apple.ts x: 81 lines of code y: 1189 line churn typescript/src/utils/guIdentityApi.ts x: 85 lines of code y: 1287 line churn mpapi-next-gen/src/common/apiGatewayHttp.ts x: 27 lines of code y: 31 line churn mpapi-next-gen/src/common/guIdentityApi.ts x: 92 lines of code y: 106 line churn mpapi-next-gen/src/common/platform.ts x: 11 lines of code y: 11 line churn mpapi-next-gen/src/common/softOptIns.ts x: 13 lines of code y: 15 line churn mpapi-next-gen/src/common/ssmParameters.ts x: 22 lines of code y: 33 line churn mpapi-next-gen/src/common/subscriptionEvent.ts x: 83 lines of code y: 91 line churn mpapi-next-gen/src/common/userSubscription.ts x: 27 lines of code y: 40 line churn mpapi-next-gen/src/lambdas/googleOauth2.ts x: 71 lines of code y: 137 line churn mpapi-next-gen/esbuild.config.js x: 35 lines of code y: 87 line churn mpapi-next-gen/src/common/appIdentity.ts x: 4 lines of code y: 4 line churn mpapi-next-gen/src/common/dates.ts x: 3 lines of code y: 40 line churn mpapi-next-gen/src/common/dynamoStream.ts x: 96 lines of code y: 113 line churn mpapi-next-gen/src/common/option.ts x: 1 lines of code y: 1 line churn mpapi-next-gen/src/lambdas/exportHistoricalData.ts x: 160 lines of code y: 184 line churn mpapi-next-gen/src/lambdas/exportSubscriptionEventsTable.ts x: 114 lines of code y: 142 line churn mpapi-next-gen/src/lambdas/exportSubscriptionTableV2.ts x: 66 lines of code y: 75 line churn riff-raff.yaml x: 189 lines of code y: 1018 line churn typescript/src/soft-opt-ins/processSubscription.ts x: 178 lines of code y: 1050 line churn typescript/src/soft-opt-ins/acquisitions.ts x: 49 lines of code y: 1805 line churn exports-cloudformation.yaml x: 361 lines of code y: 1377 line churn feast-acquisition-events.cloudformation.yaml x: 430 lines of code y: 739 line churn eslint.config.js x: 30 lines of code y: 192 line churn typescript/src/export/dynamoStream.ts x: 39 lines of code y: 226 line churn typescript/src/export/exportSubscriptions.ts x: 51 lines of code y: 447 line churn typescript/src/feast/pubsub/apple.ts x: 63 lines of code y: 480 line churn typescript/src/link/link.ts x: 121 lines of code y: 3570 line churn typescript/src/services/google-play-v2.ts x: 145 lines of code y: 1114 line churn typescript/src/services/google-play.ts x: 65 lines of code y: 506 line churn typescript/src/services/google-subscription-extra.ts x: 187 lines of code y: 1968 line churn typescript/src/utils/aws.ts x: 174 lines of code y: 2066 line churn typescript/src/utils/ssmConfig.ts x: 61 lines of code y: 350 line churn typescript/src/pubsub/apple.ts x: 114 lines of code y: 2929 line churn typescript/src/pubsub/google.ts x: 27 lines of code y: 1048 line churn typescript/src/link/apple-utils.ts x: 36 lines of code y: 263 line churn typescript/src/link/deleteLink.ts x: 116 lines of code y: 1125 line churn typescript/src/models/GracefulProcessingError.ts x: 7 lines of code y: 12 line churn typescript/src/models/subscription.ts x: 92 lines of code y: 920 line churn typescript/src/models/subscriptionEvent.ts x: 106 lines of code y: 426 line churn typescript/src/models/subscriptionReference.ts x: 9 lines of code y: 50 line churn typescript/src/promotional-offers/appleFetchOfferDetails.ts x: 78 lines of code y: 600 line churn typescript/src/pubsub/apple-common.ts x: 503 lines of code y: 2499 line churn typescript/src/services/apple-json-web-tokens.ts x: 25 lines of code y: 164 line churn typescript/src/test-launcher/test-launcher.ts x: 21 lines of code y: 164 line churn typescript/src/update-subs/google.ts x: 145 lines of code y: 1461 line churn typescript/src/feast/acquisition-events/common.ts x: 55 lines of code y: 400 line churn typescript/src/feast/acquisition-events/router.ts x: 96 lines of code y: 1119 line churn typescript/src/feast/update-subs/apple.ts x: 162 lines of code y: 950 line churn typescript/src/feast/update-subs/common.ts x: 24 lines of code y: 123 line churn typescript/src/feast/update-subs/google.ts x: 150 lines of code y: 813 line churn typescript/src/link/apple.ts x: 39 lines of code y: 638 line churn typescript/src/models/apiGatewayHttp.ts x: 27 lines of code y: 278 line churn typescript/src/models/app.ts x: 6 lines of code y: 44 line churn typescript/src/models/endTimestampFilter.ts x: 40 lines of code y: 298 line churn typescript/src/models/platform.ts x: 11 lines of code y: 104 line churn typescript/src/models/userSubscription.ts x: 32 lines of code y: 352 line churn typescript/src/revalidate-receipts/appleRevalidateReceipts.ts x: 111 lines of code y: 1146 line churn typescript/src/services/appToPlatform.ts x: 22 lines of code y: 179 line churn typescript/src/services/apple-mappings.ts x: 276 lines of code y: 586 line churn typescript/src/services/braze.ts x: 42 lines of code y: 250 line churn typescript/src/services/productBillingPeriod.ts x: 53 lines of code y: 457 line churn typescript/src/update-subs/updatesub.ts x: 62 lines of code y: 690 line churn typescript/src/user/user.ts x: 130 lines of code y: 1233 line churn typescript/src/utils/dates.ts x: 18 lines of code y: 170 line churn typescript/src/utils/mapAndroidProductId.ts x: 15 lines of code y: 98 line churn typescript/src/utils/softOptIns.ts x: 13 lines of code y: 60 line churn dynamo.cloudformation.yaml x: 307 lines of code y: 1670 line churn adjust_report_etl/connector.py x: 252 lines of code y: 1280 line churn
9561.0
line churn
  min: 1.0
  average: 797.82
  25th percentile: 92.75
  median: 436.5
  75th percentile: 1123.5
  max: 9561.0
0 1686.0
lines of code
min: 1.0 | average: 111.26 | 25th percentile: 22.5 | median: 64.0 | 75th percentile: 141.25 | max: 1686.0