@adminide-stack/marketplace-module-server 12.0.4-alpha.95 → 13.0.1-alpha.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/lib/containers/module.d.ts +4 -4
- package/lib/containers/module.d.ts.map +1 -1
- package/lib/containers/module.js +12 -7
- package/lib/containers/module.js.map +1 -1
- package/lib/dataloaders/index.d.ts +1 -1
- package/lib/dataloaders/index.d.ts.map +1 -1
- package/lib/dataloaders/publisher-data-loader.d.ts +6 -0
- package/lib/dataloaders/publisher-data-loader.d.ts.map +1 -0
- package/lib/demo/test-graphql-examples.d.ts +73 -0
- package/lib/demo/test-graphql-examples.d.ts.map +1 -0
- package/lib/graphql/resolvers/form-templates-resolver.d.ts +220 -0
- package/lib/graphql/resolvers/form-templates-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/form-templates-resolver.js +170 -0
- package/lib/graphql/resolvers/form-templates-resolver.js.map +1 -0
- package/lib/graphql/resolvers/gallery-resolver.d.ts +15 -0
- package/lib/graphql/resolvers/gallery-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/gallery-resolver.js +35 -0
- package/lib/graphql/resolvers/gallery-resolver.js.map +1 -0
- package/lib/graphql/resolvers/index.d.ts +247 -1
- package/lib/graphql/resolvers/index.d.ts.map +1 -1
- package/lib/graphql/resolvers/index.js +1 -1
- package/lib/graphql/resolvers/installed-extension-resolver.d.ts.map +1 -1
- package/lib/graphql/resolvers/installed-extension-resolver.js +161 -35
- package/lib/graphql/resolvers/installed-extension-resolver.js.map +1 -1
- package/lib/graphql/resolvers/marketplace-form-resolver.d.ts +13 -0
- package/lib/graphql/resolvers/marketplace-form-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/marketplace-form-resolver.js +90 -0
- package/lib/graphql/resolvers/marketplace-form-resolver.js.map +1 -0
- package/lib/graphql/resolvers/publisher-analytics-resolver.d.ts +14 -0
- package/lib/graphql/resolvers/publisher-analytics-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/publisher-analytics-resolver.js +221 -0
- package/lib/graphql/resolvers/publisher-analytics-resolver.js.map +1 -0
- package/lib/graphql/resolvers/publisher-resolver.d.ts +5 -0
- package/lib/graphql/resolvers/publisher-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/publisher-resolver.js +183 -0
- package/lib/graphql/resolvers/publisher-resolver.js.map +1 -0
- package/lib/graphql/resolvers/registry-extension-resolver.d.ts.map +1 -1
- package/lib/graphql/resolvers/registry-extension-resolver.js +34 -167
- package/lib/graphql/resolvers/registry-extension-resolver.js.map +1 -1
- package/lib/graphql/schemas/extension-pricing.graphql +546 -0
- package/lib/graphql/schemas/extension-pricing.graphql.js +1 -0
- package/lib/graphql/schemas/extension-pricing.graphql.js.map +1 -0
- package/lib/graphql/schemas/extension-registry.graphql +91 -58
- package/lib/graphql/schemas/extension-registry.graphql.js +1 -1
- package/lib/graphql/schemas/form-templates.graphql +269 -0
- package/lib/graphql/schemas/form-templates.graphql.js +1 -0
- package/lib/graphql/schemas/form-templates.graphql.js.map +1 -0
- package/lib/graphql/schemas/gallery-schema.graphql +247 -0
- package/lib/graphql/schemas/gallery-schema.graphql.js +1 -0
- package/lib/graphql/schemas/gallery-schema.graphql.js.map +1 -0
- package/lib/graphql/schemas/index.d.ts.map +1 -1
- package/lib/graphql/schemas/index.js +3 -1
- package/lib/graphql/schemas/index.js.map +1 -1
- package/lib/graphql/schemas/installed-extension.graphql +37 -7
- package/lib/graphql/schemas/installed-extension.graphql.js +1 -1
- package/lib/graphql/schemas/publisher-analytics.graphql +305 -0
- package/lib/graphql/schemas/publisher-analytics.graphql.js +1 -0
- package/lib/graphql/schemas/publisher-analytics.graphql.js.map +1 -0
- package/lib/graphql/schemas/publisher.graphql +584 -0
- package/lib/graphql/schemas/publisher.graphql.js +1 -0
- package/lib/graphql/schemas/publisher.graphql.js.map +1 -0
- package/lib/graphql/schemas/service.graphql +15 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.d.ts +20 -0
- package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.d.ts.map +1 -0
- package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.js +61 -0
- package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.js.map +1 -0
- package/lib/migrations/index.d.ts +2 -0
- package/lib/migrations/index.d.ts.map +1 -0
- package/lib/module.d.ts +1 -1
- package/lib/module.d.ts.map +1 -1
- package/lib/module.js +11 -26
- package/lib/module.js.map +1 -1
- package/lib/services/extension-gallery-repository.d.ts +17 -0
- package/lib/services/extension-gallery-repository.d.ts.map +1 -0
- package/lib/services/extension-gallery-repository.js +192 -0
- package/lib/services/extension-gallery-repository.js.map +1 -0
- package/lib/services/extension-gallery-service-new.d.ts +39 -0
- package/lib/services/extension-gallery-service-new.d.ts.map +1 -0
- package/lib/services/extension-gallery-service.d.ts +30 -0
- package/lib/services/extension-gallery-service.d.ts.map +1 -0
- package/lib/services/extension-gallery-service.js +334 -0
- package/lib/services/extension-gallery-service.js.map +1 -0
- package/lib/services/index.d.ts +4 -1
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/installed-extension-service-ext.d.ts +5 -2
- package/lib/services/installed-extension-service-ext.d.ts.map +1 -1
- package/lib/services/installed-extension-service-ext.js +364 -117
- package/lib/services/installed-extension-service-ext.js.map +1 -1
- package/lib/services/installed-extension-service.d.ts +30 -13
- package/lib/services/installed-extension-service.d.ts.map +1 -1
- package/lib/services/installed-extension-service.js +301 -68
- package/lib/services/installed-extension-service.js.map +1 -1
- package/lib/services/installed-extension-service.test.d.ts +0 -1
- package/lib/services/publisher-analytics-service.d.ts +128 -0
- package/lib/services/publisher-analytics-service.d.ts.map +1 -0
- package/lib/services/publisher-event-service.d.ts +48 -0
- package/lib/services/publisher-event-service.d.ts.map +1 -0
- package/lib/services/publisher-event-service.js +296 -0
- package/lib/services/publisher-event-service.js.map +1 -0
- package/lib/services/publisher-service-context.d.ts +1 -0
- package/lib/services/publisher-service-context.d.ts.map +1 -0
- package/lib/services/publisher-service.d.ts +62 -0
- package/lib/services/publisher-service.d.ts.map +1 -0
- package/lib/services/publisher-service.js +135 -0
- package/lib/services/publisher-service.js.map +1 -0
- package/lib/store/models/index.d.ts +1 -1
- package/lib/store/models/index.d.ts.map +1 -1
- package/lib/store/models/installed-extension-model.d.ts.map +1 -1
- package/lib/store/models/installed-extension-model.js +17 -45
- package/lib/store/models/installed-extension-model.js.map +1 -1
- package/lib/store/models/publisher-event-model.d.ts +11 -0
- package/lib/store/models/publisher-event-model.d.ts.map +1 -0
- package/lib/store/models/publisher-model.d.ts +5 -0
- package/lib/store/models/publisher-model.d.ts.map +1 -0
- package/lib/store/models/publisher-model.js +117 -0
- package/lib/store/models/publisher-model.js.map +1 -0
- package/lib/store/models/publisher-stats-model.d.ts +1 -0
- package/lib/store/models/publisher-stats-model.d.ts.map +1 -0
- package/lib/store/repositories/index.d.ts +1 -1
- package/lib/store/repositories/index.d.ts.map +1 -1
- package/lib/store/repositories/installed-extension-repository.d.ts +17 -11
- package/lib/store/repositories/installed-extension-repository.d.ts.map +1 -1
- package/lib/store/repositories/installed-extension-repository.js +123 -75
- package/lib/store/repositories/installed-extension-repository.js.map +1 -1
- package/lib/store/repositories/publisher-analytics-repository.d.ts +1 -0
- package/lib/store/repositories/publisher-analytics-repository.d.ts.map +1 -0
- package/lib/store/repositories/publisher-repository.d.ts +19 -0
- package/lib/store/repositories/publisher-repository.d.ts.map +1 -0
- package/lib/store/repositories/publisher-repository.js +87 -0
- package/lib/store/repositories/publisher-repository.js.map +1 -0
- package/lib/templates/constants/DB_COLL_NAMES.ts.template +1 -1
- package/lib/templates/constants/SERVER_TYPES.ts.template +8 -5
- package/lib/templates/repositories/ExtensionGalleryRepository.ts.template +44 -0
- package/lib/templates/repositories/InstalledExtensionRepository.ts.template +19 -14
- package/lib/templates/repositories/MarketplacePublisherRepository.ts.template +24 -0
- package/lib/templates/repositories/RegistryExtensionRepository.ts.template +2 -2
- package/lib/templates/services/ExtensionGalleryDataLoader.ts.template +2 -0
- package/lib/templates/services/ExtensionGalleryService.ts.template +79 -0
- package/lib/templates/services/InstalledExtensionService.ts.template +63 -32
- package/lib/templates/services/MarketplacePublisherService.ts.template +51 -0
- package/lib/templates/services/PublisherDataLoader.ts.template +3 -0
- package/lib/templates/services/PublisherEventService.ts.template +56 -0
- package/lib/templates/services/RegistryExtensionService.ts.template +46 -2
- package/lib/tests/extension-integration.test.d.ts +0 -1
- package/lib/tests/install-extension-graphql.test.d.ts +2 -0
- package/lib/tests/install-extension-graphql.test.d.ts.map +1 -0
- package/lib/utils/publisherValidation.d.ts +23 -0
- package/lib/utils/publisherValidation.d.ts.map +1 -0
- package/lib/utils/publisherValidation.js +144 -0
- package/lib/utils/publisherValidation.js.map +1 -0
- package/package.json +13 -9
- package/lib/constants/extension-events.d.ts +0 -136
- package/lib/constants/extension-events.d.ts.map +0 -1
- package/lib/dataloaders/registry-extension-data-loader.d.ts +0 -6
- package/lib/dataloaders/registry-extension-data-loader.d.ts.map +0 -1
- package/lib/dataloaders/registry-extension-data-loader.js +0 -6
- package/lib/dataloaders/registry-extension-data-loader.js.map +0 -1
- package/lib/graphql/schemas/service.graphql.js +0 -1
- package/lib/graphql/schemas/service.graphql.js.map +0 -1
- package/lib/services/extension-service.d.ts +0 -42
- package/lib/services/extension-service.d.ts.map +0 -1
- package/lib/services/extension-service.js +0 -60
- package/lib/services/extension-service.js.map +0 -1
- package/lib/store/models/registry-extension-model.d.ts +0 -5
- package/lib/store/models/registry-extension-model.d.ts.map +0 -1
- package/lib/store/models/registry-extension-model.js +0 -83
- package/lib/store/models/registry-extension-model.js.map +0 -1
- package/lib/store/repositories/registry-extension-repository.d.ts +0 -54
- package/lib/store/repositories/registry-extension-repository.d.ts.map +0 -1
- package/lib/store/repositories/registry-extension-repository.js +0 -137
- package/lib/store/repositories/registry-extension-repository.js.map +0 -1
- package/lib/templates/services/RegistryExtensionDataLoader.ts.template +0 -2
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
# Publisher Analytics Schema
|
|
2
|
+
# Provides comprehensive analytics and insights for extension publishers
|
|
3
|
+
|
|
4
|
+
type PublisherAnalytics {
|
|
5
|
+
"""Publisher identifier"""
|
|
6
|
+
publisherId: String!
|
|
7
|
+
|
|
8
|
+
"""Total number of extensions published"""
|
|
9
|
+
totalExtensions: Int!
|
|
10
|
+
|
|
11
|
+
"""Total downloads across all extensions"""
|
|
12
|
+
totalDownloads: Int!
|
|
13
|
+
|
|
14
|
+
"""Total active installations"""
|
|
15
|
+
totalInstallations: Int!
|
|
16
|
+
|
|
17
|
+
"""Average rating across all extensions"""
|
|
18
|
+
averageRating: Float
|
|
19
|
+
|
|
20
|
+
"""Analytics time period"""
|
|
21
|
+
period: AnalyticsPeriod!
|
|
22
|
+
|
|
23
|
+
"""Detailed extension metrics"""
|
|
24
|
+
extensions: [ExtensionMetrics!]!
|
|
25
|
+
|
|
26
|
+
"""Download trend over time"""
|
|
27
|
+
downloadTrend: [AnalyticsDataPoint!]!
|
|
28
|
+
|
|
29
|
+
"""Installation trend over time"""
|
|
30
|
+
installationTrend: [AnalyticsDataPoint!]!
|
|
31
|
+
|
|
32
|
+
"""Popular countries/regions"""
|
|
33
|
+
popularRegions: [RegionMetrics!]!
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
type ExtensionMetrics {
|
|
37
|
+
"""Extension identifier"""
|
|
38
|
+
extensionSlug: String!
|
|
39
|
+
|
|
40
|
+
"""Extension name"""
|
|
41
|
+
name: String!
|
|
42
|
+
|
|
43
|
+
"""Current version"""
|
|
44
|
+
version: String
|
|
45
|
+
|
|
46
|
+
"""Download count for the period"""
|
|
47
|
+
downloads: Int!
|
|
48
|
+
|
|
49
|
+
"""Active installation count"""
|
|
50
|
+
installations: Int!
|
|
51
|
+
|
|
52
|
+
"""Average rating"""
|
|
53
|
+
rating: Float
|
|
54
|
+
|
|
55
|
+
"""Number of reviews"""
|
|
56
|
+
reviewCount: Int!
|
|
57
|
+
|
|
58
|
+
"""Revenue generated (if applicable)"""
|
|
59
|
+
revenue: Float
|
|
60
|
+
|
|
61
|
+
"""Last updated timestamp"""
|
|
62
|
+
lastUpdated: DateTime
|
|
63
|
+
|
|
64
|
+
"""Version history metrics"""
|
|
65
|
+
versionMetrics: [VersionMetrics!]!
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
type VersionMetrics {
|
|
69
|
+
"""Version string"""
|
|
70
|
+
version: String!
|
|
71
|
+
|
|
72
|
+
"""Downloads for this version"""
|
|
73
|
+
downloads: Int!
|
|
74
|
+
|
|
75
|
+
"""Installations for this version"""
|
|
76
|
+
installations: Int!
|
|
77
|
+
|
|
78
|
+
"""Release date"""
|
|
79
|
+
releasedAt: DateTime!
|
|
80
|
+
|
|
81
|
+
"""Adoption rate as percentage"""
|
|
82
|
+
adoptionRate: Float!
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
type AnalyticsDataPoint {
|
|
86
|
+
"""Date/timestamp for the data point"""
|
|
87
|
+
timestamp: DateTime!
|
|
88
|
+
|
|
89
|
+
"""Metric value"""
|
|
90
|
+
value: Int!
|
|
91
|
+
|
|
92
|
+
"""Optional secondary value for comparison"""
|
|
93
|
+
secondaryValue: Int
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
type RegionMetrics {
|
|
97
|
+
"""Country/region code"""
|
|
98
|
+
region: String!
|
|
99
|
+
|
|
100
|
+
"""Country/region name"""
|
|
101
|
+
regionName: String!
|
|
102
|
+
|
|
103
|
+
"""Download count from this region"""
|
|
104
|
+
downloads: Int!
|
|
105
|
+
|
|
106
|
+
"""Installation count from this region"""
|
|
107
|
+
installations: Int!
|
|
108
|
+
|
|
109
|
+
"""Percentage of total traffic"""
|
|
110
|
+
percentage: Float!
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
type PublisherRevenueAnalytics {
|
|
114
|
+
"""Publisher identifier"""
|
|
115
|
+
publisherId: String!
|
|
116
|
+
|
|
117
|
+
"""Total revenue for the period"""
|
|
118
|
+
totalRevenue: Float!
|
|
119
|
+
|
|
120
|
+
"""Revenue currency"""
|
|
121
|
+
currency: String!
|
|
122
|
+
|
|
123
|
+
"""Revenue by extension"""
|
|
124
|
+
extensionRevenue: [ExtensionRevenue!]!
|
|
125
|
+
|
|
126
|
+
"""Revenue trend over time"""
|
|
127
|
+
revenueTrend: [RevenueDataPoint!]!
|
|
128
|
+
|
|
129
|
+
"""Top earning extensions"""
|
|
130
|
+
topEarningExtensions: [ExtensionRevenue!]!
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
type ExtensionRevenue {
|
|
134
|
+
"""Extension identifier"""
|
|
135
|
+
extensionSlug: String!
|
|
136
|
+
|
|
137
|
+
"""Extension name"""
|
|
138
|
+
name: String!
|
|
139
|
+
|
|
140
|
+
"""Revenue generated"""
|
|
141
|
+
revenue: Float!
|
|
142
|
+
|
|
143
|
+
"""Number of paid installations"""
|
|
144
|
+
paidInstallations: Int!
|
|
145
|
+
|
|
146
|
+
"""Average revenue per user"""
|
|
147
|
+
arpu: Float!
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
type RevenueDataPoint {
|
|
151
|
+
"""Date/timestamp"""
|
|
152
|
+
timestamp: DateTime!
|
|
153
|
+
|
|
154
|
+
"""Revenue amount"""
|
|
155
|
+
revenue: Float!
|
|
156
|
+
|
|
157
|
+
"""Number of transactions"""
|
|
158
|
+
transactions: Int!
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
enum AnalyticsPeriod {
|
|
162
|
+
"""Last 24 hours"""
|
|
163
|
+
DAILY
|
|
164
|
+
|
|
165
|
+
"""Last 7 days"""
|
|
166
|
+
WEEKLY
|
|
167
|
+
|
|
168
|
+
"""Last 30 days"""
|
|
169
|
+
MONTHLY
|
|
170
|
+
|
|
171
|
+
"""Last 90 days"""
|
|
172
|
+
QUARTERLY
|
|
173
|
+
|
|
174
|
+
"""Last 365 days"""
|
|
175
|
+
YEARLY
|
|
176
|
+
|
|
177
|
+
"""All time"""
|
|
178
|
+
ALL_TIME
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
enum AnalyticsMetric {
|
|
182
|
+
"""Download metrics"""
|
|
183
|
+
DOWNLOADS
|
|
184
|
+
|
|
185
|
+
"""Installation metrics"""
|
|
186
|
+
INSTALLATIONS
|
|
187
|
+
|
|
188
|
+
"""Rating metrics"""
|
|
189
|
+
RATINGS
|
|
190
|
+
|
|
191
|
+
"""Revenue metrics"""
|
|
192
|
+
REVENUE
|
|
193
|
+
|
|
194
|
+
"""User engagement metrics"""
|
|
195
|
+
ENGAGEMENT
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
input PublisherAnalyticsInput {
|
|
199
|
+
"""Publisher ID to get analytics for"""
|
|
200
|
+
publisherId: String!
|
|
201
|
+
|
|
202
|
+
"""Time period for analytics"""
|
|
203
|
+
period: AnalyticsPeriod!
|
|
204
|
+
|
|
205
|
+
"""Specific extensions to include (optional)"""
|
|
206
|
+
extensionSlugs: [String!]
|
|
207
|
+
|
|
208
|
+
"""Include revenue data"""
|
|
209
|
+
includeRevenue: Boolean
|
|
210
|
+
|
|
211
|
+
"""Include regional breakdown"""
|
|
212
|
+
includeRegions: Boolean
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
input PublisherRevenueAnalyticsInput {
|
|
216
|
+
"""Publisher ID"""
|
|
217
|
+
publisherId: String!
|
|
218
|
+
|
|
219
|
+
"""Time period"""
|
|
220
|
+
period: AnalyticsPeriod!
|
|
221
|
+
|
|
222
|
+
"""Currency for revenue display"""
|
|
223
|
+
currency: String
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
type AnalyticsEvent {
|
|
227
|
+
"""Event type"""
|
|
228
|
+
eventType: String!
|
|
229
|
+
|
|
230
|
+
"""Extension slug"""
|
|
231
|
+
extensionSlug: String!
|
|
232
|
+
|
|
233
|
+
"""Publisher ID"""
|
|
234
|
+
publisherId: String!
|
|
235
|
+
|
|
236
|
+
"""Event timestamp"""
|
|
237
|
+
timestamp: DateTime!
|
|
238
|
+
|
|
239
|
+
"""Event metadata"""
|
|
240
|
+
metadata: String
|
|
241
|
+
|
|
242
|
+
"""User country/region"""
|
|
243
|
+
region: String
|
|
244
|
+
|
|
245
|
+
"""Version involved"""
|
|
246
|
+
version: String
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
input TrackAnalyticsEventInput {
|
|
250
|
+
"""Event type (download, install, uninstall, etc.)"""
|
|
251
|
+
eventType: String!
|
|
252
|
+
|
|
253
|
+
"""Extension being tracked"""
|
|
254
|
+
extensionSlug: String!
|
|
255
|
+
|
|
256
|
+
"""User ID (optional)"""
|
|
257
|
+
userId: String
|
|
258
|
+
|
|
259
|
+
"""Event metadata as JSON"""
|
|
260
|
+
metadata: String
|
|
261
|
+
|
|
262
|
+
"""User's country/region"""
|
|
263
|
+
region: String
|
|
264
|
+
|
|
265
|
+
"""Extension version"""
|
|
266
|
+
version: String
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
type TrackAnalyticsEventResult {
|
|
270
|
+
"""Whether tracking was successful"""
|
|
271
|
+
success: Boolean!
|
|
272
|
+
|
|
273
|
+
"""Error message if failed"""
|
|
274
|
+
message: String
|
|
275
|
+
|
|
276
|
+
"""Event ID for reference"""
|
|
277
|
+
eventId: String
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
extend type Query {
|
|
281
|
+
"""Get comprehensive analytics for a publisher"""
|
|
282
|
+
publisherAnalytics(input: PublisherAnalyticsInput!): PublisherAnalytics!
|
|
283
|
+
|
|
284
|
+
"""Get revenue analytics for a publisher"""
|
|
285
|
+
publisherRevenueAnalytics(input: PublisherRevenueAnalyticsInput!): PublisherRevenueAnalytics!
|
|
286
|
+
|
|
287
|
+
"""Get recent analytics events"""
|
|
288
|
+
recentAnalyticsEvents(publisherId: String!, limit: Int): [AnalyticsEvent!]!
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
extend type Mutation {
|
|
292
|
+
"""Track an analytics event"""
|
|
293
|
+
trackAnalyticsEvent(input: TrackAnalyticsEventInput!): TrackAnalyticsEventResult!
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
extend type Subscription {
|
|
297
|
+
"""Subscribe to real-time analytics events"""
|
|
298
|
+
analyticsEvents(publisherId: String!): AnalyticsEvent!
|
|
299
|
+
|
|
300
|
+
"""Subscribe to download events"""
|
|
301
|
+
downloadEvents(publisherId: String!): AnalyticsEvent!
|
|
302
|
+
|
|
303
|
+
"""Subscribe to installation events"""
|
|
304
|
+
installationEvents(publisherId: String!): AnalyticsEvent!
|
|
305
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var publisherAnalyticsSchema = "# Publisher Analytics Schema\n# Provides comprehensive analytics and insights for extension publishers\n\ntype PublisherAnalytics {\n \"\"\"Publisher identifier\"\"\"\n publisherId: String!\n \n \"\"\"Total number of extensions published\"\"\"\n totalExtensions: Int!\n \n \"\"\"Total downloads across all extensions\"\"\"\n totalDownloads: Int!\n \n \"\"\"Total active installations\"\"\"\n totalInstallations: Int!\n \n \"\"\"Average rating across all extensions\"\"\"\n averageRating: Float\n \n \"\"\"Analytics time period\"\"\"\n period: AnalyticsPeriod!\n \n \"\"\"Detailed extension metrics\"\"\"\n extensions: [ExtensionMetrics!]!\n \n \"\"\"Download trend over time\"\"\"\n downloadTrend: [AnalyticsDataPoint!]!\n \n \"\"\"Installation trend over time\"\"\"\n installationTrend: [AnalyticsDataPoint!]!\n \n \"\"\"Popular countries/regions\"\"\"\n popularRegions: [RegionMetrics!]!\n}\n\ntype ExtensionMetrics {\n \"\"\"Extension identifier\"\"\"\n extensionSlug: String!\n \n \"\"\"Extension name\"\"\"\n name: String!\n \n \"\"\"Current version\"\"\"\n version: String\n \n \"\"\"Download count for the period\"\"\"\n downloads: Int!\n \n \"\"\"Active installation count\"\"\"\n installations: Int!\n \n \"\"\"Average rating\"\"\"\n rating: Float\n \n \"\"\"Number of reviews\"\"\"\n reviewCount: Int!\n \n \"\"\"Revenue generated (if applicable)\"\"\"\n revenue: Float\n \n \"\"\"Last updated timestamp\"\"\"\n lastUpdated: DateTime\n \n \"\"\"Version history metrics\"\"\"\n versionMetrics: [VersionMetrics!]!\n}\n\ntype VersionMetrics {\n \"\"\"Version string\"\"\"\n version: String!\n \n \"\"\"Downloads for this version\"\"\"\n downloads: Int!\n \n \"\"\"Installations for this version\"\"\"\n installations: Int!\n \n \"\"\"Release date\"\"\"\n releasedAt: DateTime!\n \n \"\"\"Adoption rate as percentage\"\"\"\n adoptionRate: Float!\n}\n\ntype AnalyticsDataPoint {\n \"\"\"Date/timestamp for the data point\"\"\"\n timestamp: DateTime!\n \n \"\"\"Metric value\"\"\"\n value: Int!\n \n \"\"\"Optional secondary value for comparison\"\"\"\n secondaryValue: Int\n}\n\ntype RegionMetrics {\n \"\"\"Country/region code\"\"\"\n region: String!\n \n \"\"\"Country/region name\"\"\"\n regionName: String!\n \n \"\"\"Download count from this region\"\"\"\n downloads: Int!\n \n \"\"\"Installation count from this region\"\"\"\n installations: Int!\n \n \"\"\"Percentage of total traffic\"\"\"\n percentage: Float!\n}\n\ntype PublisherRevenueAnalytics {\n \"\"\"Publisher identifier\"\"\"\n publisherId: String!\n \n \"\"\"Total revenue for the period\"\"\"\n totalRevenue: Float!\n \n \"\"\"Revenue currency\"\"\"\n currency: String!\n \n \"\"\"Revenue by extension\"\"\"\n extensionRevenue: [ExtensionRevenue!]!\n \n \"\"\"Revenue trend over time\"\"\"\n revenueTrend: [RevenueDataPoint!]!\n \n \"\"\"Top earning extensions\"\"\"\n topEarningExtensions: [ExtensionRevenue!]!\n}\n\ntype ExtensionRevenue {\n \"\"\"Extension identifier\"\"\"\n extensionSlug: String!\n \n \"\"\"Extension name\"\"\"\n name: String!\n \n \"\"\"Revenue generated\"\"\"\n revenue: Float!\n \n \"\"\"Number of paid installations\"\"\"\n paidInstallations: Int!\n \n \"\"\"Average revenue per user\"\"\"\n arpu: Float!\n}\n\ntype RevenueDataPoint {\n \"\"\"Date/timestamp\"\"\"\n timestamp: DateTime!\n \n \"\"\"Revenue amount\"\"\"\n revenue: Float!\n \n \"\"\"Number of transactions\"\"\"\n transactions: Int!\n}\n\nenum AnalyticsPeriod {\n \"\"\"Last 24 hours\"\"\"\n DAILY\n \n \"\"\"Last 7 days\"\"\"\n WEEKLY\n \n \"\"\"Last 30 days\"\"\"\n MONTHLY\n \n \"\"\"Last 90 days\"\"\"\n QUARTERLY\n \n \"\"\"Last 365 days\"\"\"\n YEARLY\n \n \"\"\"All time\"\"\"\n ALL_TIME\n}\n\nenum AnalyticsMetric {\n \"\"\"Download metrics\"\"\"\n DOWNLOADS\n \n \"\"\"Installation metrics\"\"\"\n INSTALLATIONS\n \n \"\"\"Rating metrics\"\"\"\n RATINGS\n \n \"\"\"Revenue metrics\"\"\"\n REVENUE\n \n \"\"\"User engagement metrics\"\"\"\n ENGAGEMENT\n}\n\ninput PublisherAnalyticsInput {\n \"\"\"Publisher ID to get analytics for\"\"\"\n publisherId: String!\n \n \"\"\"Time period for analytics\"\"\"\n period: AnalyticsPeriod!\n \n \"\"\"Specific extensions to include (optional)\"\"\"\n extensionSlugs: [String!]\n \n \"\"\"Include revenue data\"\"\"\n includeRevenue: Boolean\n \n \"\"\"Include regional breakdown\"\"\"\n includeRegions: Boolean\n}\n\ninput PublisherRevenueAnalyticsInput {\n \"\"\"Publisher ID\"\"\"\n publisherId: String!\n \n \"\"\"Time period\"\"\"\n period: AnalyticsPeriod!\n \n \"\"\"Currency for revenue display\"\"\"\n currency: String\n}\n\ntype AnalyticsEvent {\n \"\"\"Event type\"\"\"\n eventType: String!\n \n \"\"\"Extension slug\"\"\"\n extensionSlug: String!\n \n \"\"\"Publisher ID\"\"\"\n publisherId: String!\n \n \"\"\"Event timestamp\"\"\"\n timestamp: DateTime!\n \n \"\"\"Event metadata\"\"\"\n metadata: String\n \n \"\"\"User country/region\"\"\"\n region: String\n \n \"\"\"Version involved\"\"\"\n version: String\n}\n\ninput TrackAnalyticsEventInput {\n \"\"\"Event type (download, install, uninstall, etc.)\"\"\"\n eventType: String!\n \n \"\"\"Extension being tracked\"\"\"\n extensionSlug: String!\n \n \"\"\"User ID (optional)\"\"\"\n userId: String\n \n \"\"\"Event metadata as JSON\"\"\"\n metadata: String\n \n \"\"\"User's country/region\"\"\"\n region: String\n \n \"\"\"Extension version\"\"\"\n version: String\n}\n\ntype TrackAnalyticsEventResult {\n \"\"\"Whether tracking was successful\"\"\"\n success: Boolean!\n \n \"\"\"Error message if failed\"\"\"\n message: String\n \n \"\"\"Event ID for reference\"\"\"\n eventId: String\n}\n\nextend type Query {\n \"\"\"Get comprehensive analytics for a publisher\"\"\"\n publisherAnalytics(input: PublisherAnalyticsInput!): PublisherAnalytics!\n \n \"\"\"Get revenue analytics for a publisher\"\"\"\n publisherRevenueAnalytics(input: PublisherRevenueAnalyticsInput!): PublisherRevenueAnalytics!\n \n \"\"\"Get recent analytics events\"\"\"\n recentAnalyticsEvents(publisherId: String!, limit: Int): [AnalyticsEvent!]!\n}\n\nextend type Mutation {\n \"\"\"Track an analytics event\"\"\"\n trackAnalyticsEvent(input: TrackAnalyticsEventInput!): TrackAnalyticsEventResult!\n}\n\nextend type Subscription {\n \"\"\"Subscribe to real-time analytics events\"\"\"\n analyticsEvents(publisherId: String!): AnalyticsEvent!\n \n \"\"\"Subscribe to download events\"\"\"\n downloadEvents(publisherId: String!): AnalyticsEvent!\n \n \"\"\"Subscribe to installation events\"\"\"\n installationEvents(publisherId: String!): AnalyticsEvent!\n}\n";export{publisherAnalyticsSchema as default};//# sourceMappingURL=publisher-analytics.graphql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publisher-analytics.graphql.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|