@adminide-stack/marketplace-module-server 12.0.4-alpha.4 → 12.0.4-alpha.402

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.
Files changed (185) hide show
  1. package/Readme.md +321 -0
  2. package/lib/containers/module.d.ts +8 -0
  3. package/lib/containers/module.d.ts.map +1 -1
  4. package/lib/containers/module.js +15 -5
  5. package/lib/containers/module.js.map +1 -1
  6. package/lib/dataloaders/index.d.ts +1 -0
  7. package/lib/dataloaders/index.d.ts.map +1 -0
  8. package/lib/demo/test-graphql-examples.d.ts +73 -0
  9. package/lib/demo/test-graphql-examples.d.ts.map +1 -0
  10. package/lib/graphql/resolvers/form-templates-resolver.d.ts +220 -0
  11. package/lib/graphql/resolvers/form-templates-resolver.d.ts.map +1 -0
  12. package/lib/graphql/resolvers/form-templates-resolver.js +170 -0
  13. package/lib/graphql/resolvers/form-templates-resolver.js.map +1 -0
  14. package/lib/graphql/resolvers/gallery-resolver.d.ts +15 -0
  15. package/lib/graphql/resolvers/gallery-resolver.d.ts.map +1 -0
  16. package/lib/graphql/resolvers/gallery-resolver.js +35 -0
  17. package/lib/graphql/resolvers/gallery-resolver.js.map +1 -0
  18. package/lib/graphql/resolvers/index.d.ts +247 -1
  19. package/lib/graphql/resolvers/index.d.ts.map +1 -1
  20. package/lib/graphql/resolvers/index.js +1 -0
  21. package/lib/graphql/resolvers/index.js.map +1 -0
  22. package/lib/graphql/resolvers/installed-extension-resolver.d.ts +5 -0
  23. package/lib/graphql/resolvers/installed-extension-resolver.d.ts.map +1 -0
  24. package/lib/graphql/resolvers/installed-extension-resolver.js +289 -0
  25. package/lib/graphql/resolvers/installed-extension-resolver.js.map +1 -0
  26. package/lib/graphql/resolvers/marketplace-form-resolver.d.ts +13 -0
  27. package/lib/graphql/resolvers/marketplace-form-resolver.d.ts.map +1 -0
  28. package/lib/graphql/resolvers/marketplace-form-resolver.js +90 -0
  29. package/lib/graphql/resolvers/marketplace-form-resolver.js.map +1 -0
  30. package/lib/graphql/resolvers/publisher-analytics-resolver.d.ts +14 -0
  31. package/lib/graphql/resolvers/publisher-analytics-resolver.d.ts.map +1 -0
  32. package/lib/graphql/resolvers/publisher-analytics-resolver.js +221 -0
  33. package/lib/graphql/resolvers/publisher-analytics-resolver.js.map +1 -0
  34. package/lib/graphql/resolvers/publisher-resolver.d.ts +5 -0
  35. package/lib/graphql/resolvers/publisher-resolver.d.ts.map +1 -0
  36. package/lib/graphql/resolvers/publisher-resolver.js +176 -0
  37. package/lib/graphql/resolvers/publisher-resolver.js.map +1 -0
  38. package/lib/graphql/resolvers/registry-extension-resolver.d.ts +5 -0
  39. package/lib/graphql/resolvers/registry-extension-resolver.d.ts.map +1 -0
  40. package/lib/graphql/resolvers/registry-extension-resolver.js +46 -0
  41. package/lib/graphql/resolvers/registry-extension-resolver.js.map +1 -0
  42. package/lib/graphql/schemas/extension-pricing.graphql +546 -0
  43. package/lib/graphql/schemas/extension-pricing.graphql.js +1 -0
  44. package/lib/graphql/schemas/extension-pricing.graphql.js.map +1 -0
  45. package/lib/graphql/schemas/extension-registry.graphql +107 -0
  46. package/lib/graphql/schemas/extension-registry.graphql.js +1 -0
  47. package/lib/graphql/schemas/extension-registry.graphql.js.map +1 -0
  48. package/lib/graphql/schemas/form-templates.graphql +269 -0
  49. package/lib/graphql/schemas/form-templates.graphql.js +1 -0
  50. package/lib/graphql/schemas/form-templates.graphql.js.map +1 -0
  51. package/lib/graphql/schemas/gallery-schema.graphql +247 -0
  52. package/lib/graphql/schemas/gallery-schema.graphql.js +1 -0
  53. package/lib/graphql/schemas/gallery-schema.graphql.js.map +1 -0
  54. package/lib/graphql/schemas/index.d.ts.map +1 -1
  55. package/lib/graphql/schemas/index.js +3 -4
  56. package/lib/graphql/schemas/index.js.map +1 -1
  57. package/lib/graphql/schemas/installed-extension.graphql +309 -0
  58. package/lib/graphql/schemas/installed-extension.graphql.js +1 -0
  59. package/lib/graphql/schemas/installed-extension.graphql.js.map +1 -0
  60. package/lib/graphql/schemas/publisher-analytics.graphql +305 -0
  61. package/lib/graphql/schemas/publisher-analytics.graphql.js +1 -0
  62. package/lib/graphql/schemas/publisher-analytics.graphql.js.map +1 -0
  63. package/lib/graphql/schemas/publisher.graphql +376 -0
  64. package/lib/graphql/schemas/publisher.graphql.js +1 -0
  65. package/lib/graphql/schemas/publisher.graphql.js.map +1 -0
  66. package/lib/graphql/schemas/service.graphql +196 -0
  67. package/lib/index.d.ts +3 -1
  68. package/lib/index.d.ts.map +1 -1
  69. package/lib/index.js +1 -1
  70. package/lib/index.js.map +1 -1
  71. package/lib/module.d.ts +1 -1
  72. package/lib/module.d.ts.map +1 -1
  73. package/lib/module.js +10 -23
  74. package/lib/module.js.map +1 -1
  75. package/lib/plugins/extension-moleculer-service.d.ts +86 -0
  76. package/lib/plugins/extension-moleculer-service.d.ts.map +1 -0
  77. package/lib/plugins/index.d.ts +2 -0
  78. package/lib/plugins/index.d.ts.map +1 -0
  79. package/lib/services/extension-gallery-repository.d.ts +17 -0
  80. package/lib/services/extension-gallery-repository.d.ts.map +1 -0
  81. package/lib/services/extension-gallery-repository.js +192 -0
  82. package/lib/services/extension-gallery-repository.js.map +1 -0
  83. package/lib/services/extension-gallery-service-new.d.ts +39 -0
  84. package/lib/services/extension-gallery-service-new.d.ts.map +1 -0
  85. package/lib/services/extension-gallery-service.d.ts +30 -0
  86. package/lib/services/extension-gallery-service.d.ts.map +1 -0
  87. package/lib/services/extension-gallery-service.js +311 -0
  88. package/lib/services/extension-gallery-service.js.map +1 -0
  89. package/lib/services/index.d.ts +6 -1
  90. package/lib/services/index.d.ts.map +1 -1
  91. package/lib/services/installed-extension-service-ext.d.ts +16 -0
  92. package/lib/services/installed-extension-service-ext.d.ts.map +1 -0
  93. package/lib/services/installed-extension-service-ext.js +485 -0
  94. package/lib/services/installed-extension-service-ext.js.map +1 -0
  95. package/lib/services/installed-extension-service.d.ts +96 -0
  96. package/lib/services/installed-extension-service.d.ts.map +1 -0
  97. package/lib/services/installed-extension-service.js +521 -0
  98. package/lib/services/installed-extension-service.js.map +1 -0
  99. package/lib/services/installed-extension-service.test.d.ts +1 -0
  100. package/lib/services/installed-extension-service.test.d.ts.map +1 -0
  101. package/lib/services/publisher-analytics-service.d.ts +128 -0
  102. package/lib/services/publisher-analytics-service.d.ts.map +1 -0
  103. package/lib/services/publisher-event-service.d.ts +48 -0
  104. package/lib/services/publisher-event-service.d.ts.map +1 -0
  105. package/lib/services/publisher-event-service.js +296 -0
  106. package/lib/services/publisher-event-service.js.map +1 -0
  107. package/lib/services/publisher-service-context.d.ts +1 -0
  108. package/lib/services/publisher-service-context.d.ts.map +1 -0
  109. package/lib/services/publisher-service.d.ts +60 -0
  110. package/lib/services/publisher-service.d.ts.map +1 -0
  111. package/lib/services/publisher-service.js +134 -0
  112. package/lib/services/publisher-service.js.map +1 -0
  113. package/lib/store/index.d.ts +1 -1
  114. package/lib/store/index.d.ts.map +1 -1
  115. package/lib/store/models/index.d.ts +2 -1
  116. package/lib/store/models/index.d.ts.map +1 -1
  117. package/lib/store/models/installed-extension-model.d.ts +4 -0
  118. package/lib/store/models/installed-extension-model.d.ts.map +1 -0
  119. package/lib/store/models/installed-extension-model.js +269 -0
  120. package/lib/store/models/installed-extension-model.js.map +1 -0
  121. package/lib/store/models/publisher-event-model.d.ts +11 -0
  122. package/lib/store/models/publisher-event-model.d.ts.map +1 -0
  123. package/lib/store/models/publisher-model.d.ts +5 -0
  124. package/lib/store/models/publisher-model.d.ts.map +1 -0
  125. package/lib/store/models/publisher-model.js +103 -0
  126. package/lib/store/models/publisher-model.js.map +1 -0
  127. package/lib/store/models/publisher-stats-model.d.ts +1 -0
  128. package/lib/store/models/publisher-stats-model.d.ts.map +1 -0
  129. package/lib/store/repositories/index.d.ts +3 -0
  130. package/lib/store/repositories/index.d.ts.map +1 -0
  131. package/lib/store/repositories/installed-extension-repository.d.ts +73 -0
  132. package/lib/store/repositories/installed-extension-repository.d.ts.map +1 -0
  133. package/lib/store/repositories/installed-extension-repository.js +442 -0
  134. package/lib/store/repositories/installed-extension-repository.js.map +1 -0
  135. package/lib/store/repositories/publisher-analytics-repository.d.ts +1 -0
  136. package/lib/store/repositories/publisher-analytics-repository.d.ts.map +1 -0
  137. package/lib/store/repositories/publisher-repository.d.ts +19 -0
  138. package/lib/store/repositories/publisher-repository.d.ts.map +1 -0
  139. package/lib/store/repositories/publisher-repository.js +87 -0
  140. package/lib/store/repositories/publisher-repository.js.map +1 -0
  141. package/lib/templates/constants/DB_COLL_NAMES.ts.template +5 -0
  142. package/lib/templates/constants/SERVER_TYPES.ts.template +10 -4
  143. package/lib/templates/repositories/ExtensionGalleryRepository.ts.template +44 -0
  144. package/lib/templates/repositories/InstalledExtensionRepository.ts.template +94 -0
  145. package/lib/templates/repositories/MarketplacePublisherRepository.ts.template +24 -0
  146. package/lib/templates/repositories/RegistryExtensionRepository.ts.template +10 -15
  147. package/lib/templates/services/ExtensionGalleryDataLoader.ts.template +2 -0
  148. package/lib/templates/services/ExtensionGalleryService.ts.template +79 -0
  149. package/lib/templates/services/InstalledExtensionDataLoader.ts.template +2 -0
  150. package/lib/templates/services/InstalledExtensionService.ts.template +181 -0
  151. package/lib/templates/services/MarketplacePublisherService.ts.template +49 -0
  152. package/lib/templates/services/PublisherEventService.ts.template +56 -0
  153. package/lib/templates/services/RegistryExtensionService.ts.template +62 -18
  154. package/lib/tests/extension-integration.test.d.ts +1 -0
  155. package/lib/tests/extension-integration.test.d.ts.map +1 -0
  156. package/lib/tests/install-extension-graphql.test.d.ts +2 -0
  157. package/lib/tests/install-extension-graphql.test.d.ts.map +1 -0
  158. package/lib/tests/test-extension-services.d.ts +1 -0
  159. package/lib/tests/test-extension-services.d.ts.map +1 -0
  160. package/lib/utils/publisherValidation.d.ts +23 -0
  161. package/lib/utils/publisherValidation.d.ts.map +1 -0
  162. package/lib/utils/publisherValidation.js +144 -0
  163. package/lib/utils/publisherValidation.js.map +1 -0
  164. package/package.json +15 -7
  165. package/lib/graphql/resolvers/resolvers.d.ts +0 -2
  166. package/lib/graphql/resolvers/resolvers.d.ts.map +0 -1
  167. package/lib/graphql/resolvers/resolvers.js +0 -167
  168. package/lib/graphql/resolvers/resolvers.js.map +0 -1
  169. package/lib/graphql/schemas/extension.graphql +0 -57
  170. package/lib/graphql/schemas/extension.graphql.js +0 -1
  171. package/lib/graphql/schemas/extension.graphql.js.map +0 -1
  172. package/lib/services/extension-service.d.ts +0 -54
  173. package/lib/services/extension-service.d.ts.map +0 -1
  174. package/lib/services/extension-service.js +0 -42
  175. package/lib/services/extension-service.js.map +0 -1
  176. package/lib/store/models/registry-extension-model.d.ts +0 -10
  177. package/lib/store/models/registry-extension-model.d.ts.map +0 -1
  178. package/lib/store/models/registry-extension-model.js +0 -62
  179. package/lib/store/models/registry-extension-model.js.map +0 -1
  180. package/lib/store/repository/index.d.ts +0 -2
  181. package/lib/store/repository/index.d.ts.map +0 -1
  182. package/lib/store/repository/registry-extension-repository.d.ts +0 -31
  183. package/lib/store/repository/registry-extension-repository.d.ts.map +0 -1
  184. package/lib/store/repository/registry-extension-repository.js +0 -135
  185. package/lib/store/repository/registry-extension-repository.js.map +0 -1
@@ -0,0 +1,309 @@
1
+ """
2
+ Installed extension status enumeration
3
+ """
4
+ enum InstalledExtensionStatus {
5
+ installed
6
+ deprecated_installed
7
+ suspended
8
+ orphaned
9
+ force_disabled
10
+ }
11
+
12
+ """
13
+ Registry status cached from extensionRegistry
14
+ """
15
+ enum ExtensionRegistryStatus {
16
+ active
17
+ deprecated
18
+ suspended
19
+ removed
20
+ emergency_removed
21
+ }
22
+
23
+ """
24
+ Runtime activation state
25
+ """
26
+ enum ExtensionActivationState {
27
+ enabled
28
+ disabled
29
+ disabled_by_user
30
+ disabled_by_admin
31
+ disabled_by_policy
32
+ }
33
+
34
+ """
35
+ Extension lifecycle management information
36
+ """
37
+ type ExtensionLifecycle @entity(embedded: true) {
38
+ registryStatus: ExtensionRegistryStatus! @column
39
+ isOrphaned: Boolean! @column
40
+ deprecationWarningShown: Boolean! @column
41
+ autoUpdateBlocked: Boolean! @column
42
+ lastRegistryCheck: String! @column
43
+ }
44
+
45
+ """
46
+ Admin policies for extension behavior
47
+ """
48
+ type ExtensionPolicies @entity(embedded: true) {
49
+ allowOrphanedExecution: Boolean! @column
50
+ requireSecurityUpdates: Boolean! @column
51
+ autoRemoveDeprecated: Boolean! @column
52
+ deprecationGracePeriod: Int! @column
53
+ }
54
+
55
+ """
56
+ Extension settings for user preferences and system state
57
+ """
58
+ type ExtensionSettings @entity(embedded: true) {
59
+ userEnabled: Boolean! @column
60
+ systemEnabled: Boolean! @column
61
+ effectiveEnabled: Boolean! @column
62
+ userConfig: JSON @column
63
+ systemConfig: JSON @column
64
+ }
65
+
66
+ """
67
+ Runtime activation error information
68
+ """
69
+ type ExtensionActivationError @entity(embedded: true) {
70
+ message: String! @column
71
+ code: String! @column
72
+ timestamp: String! @column
73
+ }
74
+
75
+ """
76
+ Performance metrics
77
+ """
78
+ type ExtensionMetrics @entity(embedded: true) {
79
+ activationTime: Float! @column
80
+ memoryUsage: Float! @column
81
+ lastMeasured: String! @column
82
+ }
83
+
84
+ """
85
+ Runtime information about extension execution
86
+ """
87
+ type ExtensionRuntime @entity(embedded: true) {
88
+ activationState: ExtensionActivationState! @column
89
+ lastActivated: DateTime @column(overrideType: "Date")
90
+ lastDeactivated: DateTime @column(overrideType: "Date")
91
+ activationError: ExtensionActivationError @embedded
92
+ metrics: ExtensionMetrics @embedded
93
+ }
94
+
95
+ """
96
+ Audit log entry for extension actions
97
+ """
98
+ type ExtensionAuditEntry @entity(embedded: true) {
99
+ action: String! @column
100
+ timestamp: DateTime! @column(overrideType: "Date")
101
+ user: UserAccount! @column(overrideType: "ObjectId")
102
+ details: JSON @column
103
+ }
104
+
105
+ """
106
+ Main installed extension type
107
+ """
108
+ type InstalledExtension implements Node @entity {
109
+ id: ID! @id
110
+ organization: Organization @column(overrideType: "ObjectId")
111
+ extension: RegistryExtension! @column(overrideType: "ObjectId")
112
+ installedVersion: String! @column
113
+ status: InstalledExtensionStatus! @column
114
+ lifecycle: ExtensionLifecycle! @embedded
115
+ policies: ExtensionPolicies! @embedded
116
+ settings: ExtensionSettings! @embedded
117
+ runtime: ExtensionRuntime! @embedded
118
+ installedAt: DateTime! @column(overrideType: "Date")
119
+ installedBy: UserAccount! @column(overrideType: "ObjectId")
120
+ lastUpdated: DateTime @column(overrideType: "Date")
121
+ lastUpdatedBy: UserAccount @column(overrideType: "ObjectId")
122
+ availableVersion: String @column
123
+ dependencies: [String!] @column
124
+ dependents: [String!] @column
125
+ auditLog: [ExtensionAuditEntry!] @embedded
126
+ """The source database collection this installed extension references"""
127
+ sourceCollection: String @column
128
+ """The ObjectId of the specific document in the source collection"""
129
+ sourceDocumentId: String @column
130
+ """Additional metadata for the installed extension"""
131
+ metadata: JSON @column
132
+ """The actual document from the source collection (resolved via DataLoader, returns null if not found or no reference)"""
133
+ sourceDocument: JSON
134
+ }
135
+
136
+ """
137
+ Registry information for display
138
+ """
139
+ type ExtensionRegistryInfo {
140
+ displayName: String!
141
+ description: String!
142
+ publisher: String!
143
+ latestVersion: String!
144
+ tags: [String!]!
145
+ categories: [String!]!
146
+ deprecation: JSON
147
+ suspension: JSON
148
+ }
149
+
150
+ """
151
+ Notification action
152
+ """
153
+ type NotificationAction {
154
+ label: String!
155
+ action: String!
156
+ url: String
157
+ extensionSlug: String
158
+ }
159
+
160
+ """
161
+ Extension notification
162
+ """
163
+ type ExtensionNotification {
164
+ type: String!
165
+ severity: String!
166
+ message: String!
167
+ actions: [NotificationAction!]
168
+ }
169
+
170
+ """
171
+ Extension update information
172
+ """
173
+ type ExtensionUpdate {
174
+ extensionSlug: String!
175
+ currentVersion: String!
176
+ availableVersion: String!
177
+ isSecurityUpdate: Boolean!
178
+ }
179
+
180
+ """
181
+ Extension cleanup result
182
+ """
183
+ type ExtensionCleanupResult {
184
+ removed: [String!]!
185
+ deprecated: [String!]!
186
+ warnings: [String!]!
187
+ }
188
+
189
+ """
190
+ Input for installing an extension
191
+ """
192
+ input InstallExtensionInput {
193
+ extensionSlug: String!
194
+ version: String!
195
+ orgName: String
196
+ policies: ExtensionPoliciesInput
197
+ settings: ExtensionSettingsInput
198
+ """The source database collection this extension references"""
199
+ sourceCollection: String
200
+ """The ObjectId of the specific document in the source collection"""
201
+ sourceDocumentId: String
202
+ """Additional metadata for the installation"""
203
+ metadata: JSON
204
+ }
205
+
206
+ """
207
+ Input for extension policies
208
+ """
209
+ input ExtensionPoliciesInput {
210
+ allowOrphanedExecution: Boolean
211
+ requireSecurityUpdates: Boolean
212
+ autoRemoveDeprecated: Boolean
213
+ deprecationGracePeriod: Int
214
+ }
215
+
216
+ """
217
+ Input for extension settings
218
+ """
219
+ input ExtensionSettingsInput {
220
+ userEnabled: Boolean
221
+ systemEnabled: Boolean
222
+ userConfig: JSON
223
+ systemConfig: JSON
224
+ }
225
+
226
+ """
227
+ Response type for extension mutations
228
+ """
229
+ type ExtensionMutationResponse {
230
+ success: Boolean!
231
+ extension: InstalledExtension
232
+ message: String!
233
+ }
234
+
235
+ """
236
+ Response type for cleanup operations
237
+ """
238
+ type ExtensionCleanupResponse {
239
+ success: Boolean!
240
+ result: ExtensionCleanupResult
241
+ message: String!
242
+ }
243
+
244
+ """
245
+ Response type for sync operations
246
+ """
247
+ type ExtensionSyncResponse {
248
+ success: Boolean!
249
+ message: String!
250
+ }
251
+
252
+ extend type Query {
253
+ """
254
+ Get all installed extensions for the current tenant
255
+ """
256
+ installedExtensions(enabled: Boolean, orgName: String): [InstalledExtension!]!
257
+
258
+ """
259
+ Get a specific installed extension
260
+ """
261
+ installedExtension(extensionSlug: String!): InstalledExtension
262
+
263
+ """
264
+ Get installed extensions that need attention
265
+ """
266
+ extensionsNeedingAttention: [InstalledExtension!]!
267
+
268
+ """
269
+ Check for available updates
270
+ """
271
+ extensionUpdates(extensionSlug: String): [ExtensionUpdate!]!
272
+ }
273
+
274
+ extend type Mutation {
275
+ """
276
+ Install an extension from the registry
277
+ """
278
+ installExtension(input: InstallExtensionInput!): ExtensionMutationResponse!
279
+
280
+ """
281
+ Uninstall an extension
282
+ """
283
+ uninstallExtension(extensionSlug: String!, orgName: String): ExtensionMutationResponse!
284
+
285
+ """
286
+ Enable or disable an extension
287
+ """
288
+ toggleExtension(extensionSlug: String!, enabled: Boolean!, orgName: String): ExtensionMutationResponse!
289
+
290
+ """
291
+ Update extension settings
292
+ """
293
+ updateExtensionSettings(extensionSlug: String!, settings: JSON!, orgName: String): ExtensionMutationResponse!
294
+
295
+ """
296
+ Update an extension to a newer version
297
+ """
298
+ updateExtensionVersion(extensionSlug: String!, version: String!, orgName: String): ExtensionMutationResponse!
299
+
300
+ """
301
+ Sync installed extensions with registry
302
+ """
303
+ syncExtensionsWithRegistry: ExtensionSyncResponse!
304
+
305
+ """
306
+ Clean up deprecated or removed extensions
307
+ """
308
+ cleanupExtensions(dryRun: Boolean): ExtensionCleanupResponse!
309
+ }
@@ -0,0 +1 @@
1
+ var installedExtensionSchema = "\"\"\"\nInstalled extension status enumeration\n\"\"\"\nenum InstalledExtensionStatus {\n installed\n deprecated_installed\n suspended\n orphaned\n force_disabled\n}\n\n\"\"\"\nRegistry status cached from extensionRegistry\n\"\"\"\nenum ExtensionRegistryStatus {\n active\n deprecated\n suspended\n removed\n emergency_removed\n}\n\n\"\"\"\nRuntime activation state\n\"\"\"\nenum ExtensionActivationState {\n enabled\n disabled\n disabled_by_user\n disabled_by_admin\n disabled_by_policy\n}\n\n\"\"\"\nExtension lifecycle management information\n\"\"\"\ntype ExtensionLifecycle @entity(embedded: true) {\n registryStatus: ExtensionRegistryStatus! @column\n isOrphaned: Boolean! @column\n deprecationWarningShown: Boolean! @column\n autoUpdateBlocked: Boolean! @column\n lastRegistryCheck: String! @column\n}\n\n\"\"\"\nAdmin policies for extension behavior\n\"\"\"\ntype ExtensionPolicies @entity(embedded: true) {\n allowOrphanedExecution: Boolean! @column\n requireSecurityUpdates: Boolean! @column\n autoRemoveDeprecated: Boolean! @column\n deprecationGracePeriod: Int! @column\n}\n\n\"\"\"\nExtension settings for user preferences and system state\n\"\"\"\ntype ExtensionSettings @entity(embedded: true) {\n userEnabled: Boolean! @column\n systemEnabled: Boolean! @column\n effectiveEnabled: Boolean! @column\n userConfig: JSON @column\n systemConfig: JSON @column\n}\n\n\"\"\"\nRuntime activation error information\n\"\"\"\ntype ExtensionActivationError @entity(embedded: true) {\n message: String! @column\n code: String! @column\n timestamp: String! @column\n}\n\n\"\"\"\nPerformance metrics\n\"\"\"\ntype ExtensionMetrics @entity(embedded: true) {\n activationTime: Float! @column\n memoryUsage: Float! @column\n lastMeasured: String! @column\n}\n\n\"\"\"\nRuntime information about extension execution\n\"\"\"\ntype ExtensionRuntime @entity(embedded: true) {\n activationState: ExtensionActivationState! @column\n lastActivated: DateTime @column(overrideType: \"Date\")\n lastDeactivated: DateTime @column(overrideType: \"Date\")\n activationError: ExtensionActivationError @embedded\n metrics: ExtensionMetrics @embedded\n}\n\n\"\"\"\nAudit log entry for extension actions\n\"\"\"\ntype ExtensionAuditEntry @entity(embedded: true) {\n action: String! @column\n timestamp: DateTime! @column(overrideType: \"Date\")\n user: UserAccount! @column(overrideType: \"ObjectId\")\n details: JSON @column\n}\n\n\"\"\"\nMain installed extension type\n\"\"\"\ntype InstalledExtension implements Node @entity {\n id: ID! @id\n organization: Organization @column(overrideType: \"ObjectId\")\n extension: RegistryExtension! @column(overrideType: \"ObjectId\")\n installedVersion: String! @column\n status: InstalledExtensionStatus! @column\n lifecycle: ExtensionLifecycle! @embedded\n policies: ExtensionPolicies! @embedded\n settings: ExtensionSettings! @embedded\n runtime: ExtensionRuntime! @embedded\n installedAt: DateTime! @column(overrideType: \"Date\")\n installedBy: UserAccount! @column(overrideType: \"ObjectId\")\n lastUpdated: DateTime @column(overrideType: \"Date\")\n lastUpdatedBy: UserAccount @column(overrideType: \"ObjectId\")\n availableVersion: String @column\n dependencies: [String!] @column\n dependents: [String!] @column\n auditLog: [ExtensionAuditEntry!] @embedded\n \"\"\"The source database collection this installed extension references\"\"\"\n sourceCollection: String @column\n \"\"\"The ObjectId of the specific document in the source collection\"\"\"\n sourceDocumentId: String @column\n \"\"\"Additional metadata for the installed extension\"\"\"\n metadata: JSON @column\n \"\"\"The actual document from the source collection (resolved via DataLoader, returns null if not found or no reference)\"\"\"\n sourceDocument: JSON\n}\n\n\"\"\"\nRegistry information for display\n\"\"\"\ntype ExtensionRegistryInfo {\n displayName: String!\n description: String!\n publisher: String!\n latestVersion: String!\n tags: [String!]!\n categories: [String!]!\n deprecation: JSON\n suspension: JSON\n}\n\n\"\"\"\nNotification action\n\"\"\"\ntype NotificationAction {\n label: String!\n action: String!\n url: String\n extensionSlug: String\n}\n\n\"\"\"\nExtension notification\n\"\"\"\ntype ExtensionNotification {\n type: String!\n severity: String!\n message: String!\n actions: [NotificationAction!]\n}\n\n\"\"\"\nExtension update information\n\"\"\"\ntype ExtensionUpdate {\n extensionSlug: String!\n currentVersion: String!\n availableVersion: String!\n isSecurityUpdate: Boolean!\n}\n\n\"\"\"\nExtension cleanup result\n\"\"\"\ntype ExtensionCleanupResult {\n removed: [String!]!\n deprecated: [String!]!\n warnings: [String!]!\n}\n\n\"\"\"\nInput for installing an extension\n\"\"\"\ninput InstallExtensionInput {\n extensionSlug: String!\n version: String!\n orgName: String\n policies: ExtensionPoliciesInput\n settings: ExtensionSettingsInput\n \"\"\"The source database collection this extension references\"\"\"\n sourceCollection: String\n \"\"\"The ObjectId of the specific document in the source collection\"\"\"\n sourceDocumentId: String\n \"\"\"Additional metadata for the installation\"\"\"\n metadata: JSON\n}\n\n\"\"\"\nInput for extension policies\n\"\"\"\ninput ExtensionPoliciesInput {\n allowOrphanedExecution: Boolean\n requireSecurityUpdates: Boolean\n autoRemoveDeprecated: Boolean\n deprecationGracePeriod: Int\n}\n\n\"\"\"\nInput for extension settings\n\"\"\"\ninput ExtensionSettingsInput {\n userEnabled: Boolean\n systemEnabled: Boolean\n userConfig: JSON\n systemConfig: JSON\n}\n\n\"\"\"\nResponse type for extension mutations\n\"\"\"\ntype ExtensionMutationResponse {\n success: Boolean!\n extension: InstalledExtension\n message: String!\n}\n\n\"\"\"\nResponse type for cleanup operations\n\"\"\"\ntype ExtensionCleanupResponse {\n success: Boolean!\n result: ExtensionCleanupResult\n message: String!\n}\n\n\"\"\"\nResponse type for sync operations\n\"\"\"\ntype ExtensionSyncResponse {\n success: Boolean!\n message: String!\n}\n\nextend type Query {\n \"\"\"\n Get all installed extensions for the current tenant\n \"\"\"\n installedExtensions(enabled: Boolean, orgName: String): [InstalledExtension!]!\n\n \"\"\"\n Get a specific installed extension\n \"\"\"\n installedExtension(extensionSlug: String!): InstalledExtension\n\n \"\"\"\n Get installed extensions that need attention\n \"\"\"\n extensionsNeedingAttention: [InstalledExtension!]!\n\n \"\"\"\n Check for available updates\n \"\"\"\n extensionUpdates(extensionSlug: String): [ExtensionUpdate!]!\n}\n\nextend type Mutation {\n \"\"\"\n Install an extension from the registry\n \"\"\"\n installExtension(input: InstallExtensionInput!): ExtensionMutationResponse!\n\n \"\"\"\n Uninstall an extension\n \"\"\"\n uninstallExtension(extensionSlug: String!, orgName: String): ExtensionMutationResponse!\n\n \"\"\"\n Enable or disable an extension\n \"\"\"\n toggleExtension(extensionSlug: String!, enabled: Boolean!, orgName: String): ExtensionMutationResponse!\n\n \"\"\"\n Update extension settings\n \"\"\"\n updateExtensionSettings(extensionSlug: String!, settings: JSON!, orgName: String): ExtensionMutationResponse!\n\n \"\"\"\n Update an extension to a newer version\n \"\"\"\n updateExtensionVersion(extensionSlug: String!, version: String!, orgName: String): ExtensionMutationResponse!\n\n \"\"\"\n Sync installed extensions with registry\n \"\"\"\n syncExtensionsWithRegistry: ExtensionSyncResponse!\n\n \"\"\"\n Clean up deprecated or removed extensions\n \"\"\"\n cleanupExtensions(dryRun: Boolean): ExtensionCleanupResponse!\n}\n";export{installedExtensionSchema as default};//# sourceMappingURL=installed-extension.graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installed-extension.graphql.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -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":""}