@@ -26,6 +26,7 @@ export type BaseEvent = {
26
26
nodeVersion : string
27
27
payloadVersion : string
28
28
projectID : string
29
+ projectIDSource : 'cwd' | 'git' | 'packageJSON' | 'serverURL'
29
30
uploadAdapters : string [ ]
30
31
}
31
32
@@ -49,14 +50,16 @@ export const sendEvent = async ({ event, payload }: Args): Promise<void> => {
49
50
50
51
// Only generate the base event once
51
52
if ( ! baseEvent ) {
53
+ const { projectID, source : projectIDSource } = getProjectID ( payload , packageJSON )
52
54
baseEvent = {
53
55
ciName : ciInfo . isCI ? ciInfo . name : null ,
54
56
envID : getEnvID ( ) ,
55
57
isCI : ciInfo . isCI ,
56
58
nodeEnv : process . env . NODE_ENV || 'development' ,
57
59
nodeVersion : process . version ,
58
60
payloadVersion : getPayloadVersion ( packageJSON ) ,
59
- projectID : getProjectID ( payload , packageJSON ) ,
61
+ projectID,
62
+ projectIDSource,
60
63
...getLocalizationInfo ( payload ) ,
61
64
dbAdapter : payload . db . name ,
62
65
emailAdapter : payload . email ?. name || null ,
@@ -104,13 +107,27 @@ const getEnvID = (): string => {
104
107
return generated
105
108
}
106
109
107
- const getProjectID = ( payload : Payload , packageJSON : PackageJSON ) : string => {
108
- const projectID =
109
- getGitID ( payload ) ||
110
- getPackageJSONID ( payload , packageJSON ) ||
111
- payload . config . serverURL ||
112
- process . cwd ( )
113
- return oneWayHash ( projectID , payload . secret )
110
+ const getProjectID = (
111
+ payload : Payload ,
112
+ packageJSON : PackageJSON ,
113
+ ) : { projectID : string ; source : BaseEvent [ 'projectIDSource' ] } => {
114
+ const gitID = getGitID ( payload )
115
+ if ( gitID ) {
116
+ return { projectID : oneWayHash ( gitID , payload . secret ) , source : 'git' }
117
+ }
118
+
119
+ const packageJSONID = getPackageJSONID ( payload , packageJSON )
120
+ if ( packageJSONID ) {
121
+ return { projectID : oneWayHash ( packageJSONID , payload . secret ) , source : 'packageJSON' }
122
+ }
123
+
124
+ const serverURL = payload . config . serverURL
125
+ if ( serverURL ) {
126
+ return { projectID : oneWayHash ( serverURL , payload . secret ) , source : 'serverURL' }
127
+ }
128
+
129
+ const cwd = process . cwd ( )
130
+ return { projectID : oneWayHash ( cwd , payload . secret ) , source : 'cwd' }
114
131
}
115
132
116
133
const getGitID = ( payload : Payload ) => {
0 commit comments