@adminide-stack/marketplace-module-server 12.0.4-alpha.41 → 12.0.4-alpha.412

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,269 @@
1
+ import {DB_COLL_NAMES}from'common/server';import {Schema}from'mongoose';// Schema for extension lifecycle management
2
+ const ExtensionLifecycleSchema = new Schema({
3
+ registryStatus: {
4
+ type: String,
5
+ enum: ['active', 'deprecated', 'suspended', 'removed', 'emergency-removed'],
6
+ required: true,
7
+ default: 'active'
8
+ },
9
+ isOrphaned: {
10
+ type: Boolean,
11
+ default: false
12
+ },
13
+ deprecationWarningShown: {
14
+ type: Boolean,
15
+ default: false
16
+ },
17
+ autoUpdateBlocked: {
18
+ type: Boolean,
19
+ default: false
20
+ },
21
+ lastRegistryCheck: {
22
+ type: String,
23
+ default: () => new Date().toISOString()
24
+ }
25
+ });
26
+ // Schema for extension policies
27
+ const ExtensionPoliciesSchema = new Schema({
28
+ allowOrphanedExecution: {
29
+ type: Boolean,
30
+ default: false
31
+ },
32
+ requireSecurityUpdates: {
33
+ type: Boolean,
34
+ default: true
35
+ },
36
+ autoRemoveDeprecated: {
37
+ type: Boolean,
38
+ default: false
39
+ },
40
+ deprecationGracePeriod: {
41
+ type: Number,
42
+ default: 30 // days
43
+ }
44
+ });
45
+ // Schema for extension settings
46
+ const ExtensionSettingsSchema = new Schema({
47
+ userEnabled: {
48
+ type: Boolean,
49
+ default: true
50
+ },
51
+ systemEnabled: {
52
+ type: Boolean,
53
+ default: true
54
+ },
55
+ effectiveEnabled: {
56
+ type: Boolean,
57
+ default: true
58
+ },
59
+ userConfig: {
60
+ type: Schema.Types.Mixed,
61
+ default: () => ({})
62
+ },
63
+ systemConfig: {
64
+ type: Schema.Types.Mixed,
65
+ default: () => ({})
66
+ }
67
+ });
68
+ // Schema for activation error
69
+ const ActivationErrorSchema = new Schema({
70
+ message: {
71
+ type: String,
72
+ required: true
73
+ },
74
+ code: {
75
+ type: String,
76
+ required: true
77
+ },
78
+ timestamp: {
79
+ type: String,
80
+ required: true
81
+ }
82
+ });
83
+ // Schema for metrics
84
+ const MetricsSchema = new Schema({
85
+ activationTime: {
86
+ type: Number,
87
+ required: true
88
+ },
89
+ // milliseconds
90
+ memoryUsage: {
91
+ type: Number,
92
+ required: true
93
+ },
94
+ // bytes
95
+ lastMeasured: {
96
+ type: String,
97
+ required: true
98
+ }
99
+ });
100
+ // Schema for extension runtime information
101
+ const ExtensionRuntimeSchema = new Schema({
102
+ activationState: {
103
+ type: String,
104
+ enum: ['enabled', 'disabled', 'disabled-by-user', 'disabled-by-admin', 'disabled-by-policy'],
105
+ default: 'enabled'
106
+ },
107
+ lastActivated: {
108
+ type: Date
109
+ },
110
+ lastDeactivated: {
111
+ type: Date
112
+ },
113
+ activationError: ActivationErrorSchema,
114
+ metrics: MetricsSchema
115
+ });
116
+ // Schema for audit log entries
117
+ const AuditLogSchema = new Schema({
118
+ action: {
119
+ type: String,
120
+ enum: ['installed', 'updated', 'enabled', 'disabled', 'configured'],
121
+ required: true
122
+ },
123
+ timestamp: {
124
+ type: Date,
125
+ default: Date.now
126
+ },
127
+ user: {
128
+ type: Schema.Types.ObjectId,
129
+ ref: DB_COLL_NAMES.Accounts,
130
+ required: true
131
+ },
132
+ details: {
133
+ type: Schema.Types.Mixed
134
+ }
135
+ });
136
+ // Main installed extension schema
137
+ const InstalledExtensionSchema = new Schema({
138
+ organization: {
139
+ type: Schema.Types.ObjectId,
140
+ ref: DB_COLL_NAMES.Organizations,
141
+ required: true,
142
+ index: true
143
+ },
144
+ extension: {
145
+ type: Schema.Types.ObjectId,
146
+ ref: DB_COLL_NAMES.ExtensionRegistries,
147
+ required: true
148
+ },
149
+ installedVersion: {
150
+ type: String,
151
+ required: true,
152
+ index: true
153
+ },
154
+ status: {
155
+ type: String,
156
+ enum: ['installed', 'deprecated-installed', 'suspended', 'orphaned', 'force-disabled'],
157
+ default: 'installed'
158
+ },
159
+ lifecycle: {
160
+ type: ExtensionLifecycleSchema,
161
+ default: () => ({})
162
+ },
163
+ policies: {
164
+ type: ExtensionPoliciesSchema,
165
+ default: () => ({})
166
+ },
167
+ settings: {
168
+ type: ExtensionSettingsSchema,
169
+ default: () => ({})
170
+ },
171
+ runtime: {
172
+ type: ExtensionRuntimeSchema,
173
+ default: () => ({})
174
+ },
175
+ installedAt: {
176
+ type: Date,
177
+ default: Date.now,
178
+ index: true
179
+ },
180
+ installedBy: {
181
+ type: Schema.Types.ObjectId,
182
+ ref: DB_COLL_NAMES.Accounts,
183
+ required: true,
184
+ index: true
185
+ },
186
+ lastUpdated: {
187
+ type: Date
188
+ },
189
+ lastUpdatedBy: {
190
+ type: Schema.Types.ObjectId,
191
+ ref: DB_COLL_NAMES.Accounts
192
+ },
193
+ availableVersion: {
194
+ type: String
195
+ },
196
+ dependencies: {
197
+ type: [String],
198
+ default: []
199
+ },
200
+ dependents: {
201
+ type: [String],
202
+ default: []
203
+ },
204
+ auditLog: {
205
+ type: [AuditLogSchema],
206
+ default: []
207
+ },
208
+ sourceCollection: {
209
+ type: String
210
+ },
211
+ sourceDocumentId: {
212
+ type: String
213
+ },
214
+ metadata: {
215
+ type: Schema.Types.Mixed
216
+ }
217
+ });
218
+ // Create virtual for id
219
+ InstalledExtensionSchema.virtual('id').get(function () {
220
+ return this._id.toHexString();
221
+ });
222
+ // Create compound indexes for efficient queries
223
+ InstalledExtensionSchema.index({
224
+ organization: 1,
225
+ extension: 1
226
+ }, {
227
+ unique: true
228
+ });
229
+ InstalledExtensionSchema.index({
230
+ organization: 1,
231
+ status: 1
232
+ });
233
+ InstalledExtensionSchema.index({
234
+ organization: 1,
235
+ 'settings.effectiveEnabled': 1
236
+ });
237
+ InstalledExtensionSchema.index({
238
+ 'lifecycle.registryStatus': 1
239
+ });
240
+ InstalledExtensionSchema.index({
241
+ 'lifecycle.isOrphaned': 1
242
+ });
243
+ InstalledExtensionSchema.index({
244
+ installedAt: 1
245
+ });
246
+ InstalledExtensionSchema.index({
247
+ lastUpdated: 1
248
+ });
249
+ // Configure toJSON transformation
250
+ InstalledExtensionSchema.set('toJSON', {
251
+ virtuals: true,
252
+ transform: (doc, ret) => {
253
+ ret.id = ret._id.toString();
254
+ delete ret._id;
255
+ delete ret.__v;
256
+ return ret;
257
+ }
258
+ });
259
+ // Configure toObject transformation
260
+ InstalledExtensionSchema.set('toObject', {
261
+ virtuals: true,
262
+ transform: (doc, ret) => {
263
+ ret.id = ret._id.toString();
264
+ delete ret._id;
265
+ delete ret.__v;
266
+ return ret;
267
+ }
268
+ });
269
+ const InstalledExtensionModelFunc = db => db.model(DB_COLL_NAMES.InstalledExtensions, InstalledExtensionSchema);export{InstalledExtensionModelFunc};//# sourceMappingURL=installed-extension-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installed-extension-model.js","sources":["../../../src/store/models/installed-extension-model.ts"],"sourcesContent":[null],"names":[],"mappings":"wEAgQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,11 @@
1
+ import * as mongoose from 'mongoose';
2
+ export interface IMarketplacePublisherEventModel extends mongoose.Document {
3
+ publisherId: string;
4
+ extensionId?: string;
5
+ eventType: 'download' | 'install' | 'view' | 'rating';
6
+ value?: number;
7
+ metadata?: Record<string, any>;
8
+ timestamp: Date;
9
+ }
10
+ export declare const PublisherEventModelFunc: (db: mongoose.Connection) => mongoose.Model<IMarketplacePublisherEventModel, {}, {}, {}, any>;
11
+ //# sourceMappingURL=publisher-event-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher-event-model.d.ts","sourceRoot":"","sources":["../../../src/store/models/publisher-event-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,+BAAgC,SAAQ,QAAQ,CAAC,QAAQ;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,SAAS,EAAE,IAAI,CAAC;CACnB;AAoBD,eAAO,MAAM,uBAAuB,GAAI,IAAI,QAAQ,CAAC,UAAU,qEACsB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import * as mongoose from 'mongoose';
2
+ import { IMarketplacePublisherModel } from 'common/server';
3
+ export declare const PublisherSchema: mongoose.Schema<IMarketplacePublisherModel, mongoose.Model<IMarketplacePublisherModel, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IMarketplacePublisherModel>;
4
+ export declare const PublisherModelFunc: (db: mongoose.Connection) => mongoose.Model<IMarketplacePublisherModel, {}, {}, {}, any>;
5
+ //# sourceMappingURL=publisher-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher-model.d.ts","sourceRoot":"","sources":["../../../src/store/models/publisher-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAiB,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAG1E,eAAO,MAAM,eAAe,wLAmF3B,CAAC;AAcF,eAAO,MAAM,kBAAkB,GAAI,IAAI,QAAQ,CAAC,UAAU,gEACmC,CAAC"}
@@ -0,0 +1,103 @@
1
+ import*as mongoose from'mongoose';import {DB_COLL_NAMES}from'common/server';// Define the publisher model interface
2
+ const PublisherSchema = new mongoose.Schema({
3
+ displayName: {
4
+ type: String,
5
+ required: true,
6
+ trim: true
7
+ },
8
+ name: {
9
+ type: String,
10
+ required: true,
11
+ unique: true,
12
+ lowercase: true,
13
+ trim: true
14
+ },
15
+ description: String,
16
+ websiteUrl: String,
17
+ email: String,
18
+ // profileUrl: String,
19
+ // avatarUrl: String,
20
+ verified: {
21
+ type: Boolean,
22
+ default: false
23
+ },
24
+ // flags: {
25
+ // type: [String],
26
+ // default: [],
27
+ // },
28
+ // domain: String,
29
+ // isDomainVerified: {
30
+ // type: Boolean,
31
+ // default: false,
32
+ // },
33
+ // Statistics fields
34
+ extensionCount: {
35
+ type: Number,
36
+ default: 0
37
+ },
38
+ totalDownloads: {
39
+ type: Number,
40
+ default: 0
41
+ },
42
+ // totalInstalls: {
43
+ // type: Number,
44
+ // default: 0,
45
+ // },
46
+ // averageRating: {
47
+ // type: Number,
48
+ // default: 0,
49
+ // min: 0,
50
+ // max: 5,
51
+ // },
52
+ // Metadata
53
+ createdAt: {
54
+ type: Date,
55
+ default: Date.now
56
+ },
57
+ updatedAt: {
58
+ type: Date,
59
+ default: Date.now
60
+ }
61
+ }, {
62
+ timestamps: true,
63
+ collection: DB_COLL_NAMES.MarketplacePublisher,
64
+ toJSON: {
65
+ virtuals: true,
66
+ transform(doc, ret) {
67
+ ret.id = ret._id;
68
+ delete ret._id;
69
+ delete ret.__v;
70
+ return ret;
71
+ }
72
+ },
73
+ toObject: {
74
+ virtuals: true,
75
+ transform(doc, ret) {
76
+ ret.id = ret._id;
77
+ delete ret._id;
78
+ delete ret.__v;
79
+ return ret;
80
+ }
81
+ }
82
+ });
83
+ // Indexes
84
+ PublisherSchema.index({
85
+ publisherName: 1
86
+ }, {
87
+ unique: true
88
+ });
89
+ PublisherSchema.index({
90
+ displayName: 1
91
+ });
92
+ PublisherSchema.index({
93
+ verified: 1
94
+ });
95
+ PublisherSchema.index({
96
+ createdAt: -1
97
+ });
98
+ // Pre-save middleware to update the updatedAt field
99
+ PublisherSchema.pre('save', function (next) {
100
+ this.updatedAt = new Date();
101
+ next();
102
+ });
103
+ const PublisherModelFunc = db => db.model(DB_COLL_NAMES.MarketplacePublisher, PublisherSchema);export{PublisherModelFunc,PublisherSchema};//# sourceMappingURL=publisher-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher-model.js","sources":["../../../src/store/models/publisher-model.ts"],"sourcesContent":[null],"names":[],"mappings":"4EAIA;AAiGA,MAAA,8BAAmC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=publisher-stats-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher-stats-model.d.ts","sourceRoot":"","sources":["../../../src/store/models/publisher-stats-model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './installed-extension-repository';
2
+ export * from './publisher-repository';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import type { CdmLogger } from '@cdm-logger/core';
2
+ import { IInstalledExtensionModel, ICreateInstalledExtensionInput, IUpdateInstalledExtensionInput, IInstalledExtensionFilter, IInstalledExtensionRepository, AsDomainType } from 'common/server';
3
+ import { BaseMongoRepository } from '@common-stack/store-mongo';
4
+ import * as mongoose from 'mongoose';
5
+ export declare class InstalledExtensionRepository extends BaseMongoRepository<IInstalledExtensionModel> implements IInstalledExtensionRepository {
6
+ constructor(db: mongoose.Connection, logger: CdmLogger.ILogger, options?: any);
7
+ findByOrgAndId(orgId: string, extensionSlug: string): Promise<AsDomainType<IInstalledExtensionModel> | null>;
8
+ findByOrgAndExtensionId(organizationId: string, extensionId: string): Promise<AsDomainType<IInstalledExtensionModel> | null>;
9
+ countExtensions(filter: IInstalledExtensionFilter): Promise<number>;
10
+ /**
11
+ * Create a new installed extension record
12
+ */
13
+ createExtension(input: ICreateInstalledExtensionInput): Promise<AsDomainType<IInstalledExtensionModel>>;
14
+ /**
15
+ * Update an existing installed extension
16
+ */
17
+ updateExtension(orgId: string, extensionId: string, update: IUpdateInstalledExtensionInput): Promise<AsDomainType<IInstalledExtensionModel> | null>;
18
+ /**
19
+ * Find a specific installed extension by organization and extension ObjectIds
20
+ */
21
+ findOne(orgId: string, extensionId: string): Promise<AsDomainType<IInstalledExtensionModel> | null>;
22
+ /**
23
+ * Find installed extensions with optional filtering
24
+ * Uses BaseMongoRepository getAll with population to ensure proper _id to id transformation
25
+ */
26
+ findExtensions(query: IInstalledExtensionFilter): Promise<AsDomainType<IInstalledExtensionModel>[]>;
27
+ /**
28
+ * Delete an installed extension
29
+ */
30
+ deleteExtension(orgId: string, extensionId: string): Promise<boolean>;
31
+ /**
32
+ * Get installed extensions joined with registry information
33
+ */
34
+ findWithRegistryInfo(query: IInstalledExtensionFilter): Promise<any[]>;
35
+ /**
36
+ * Check if extension exists for organization
37
+ */
38
+ exists(extensionId: string, orgId?: string): Promise<boolean>;
39
+ /**
40
+ * Bulk update multiple extensions
41
+ */
42
+ bulkUpdateExtensions(tenantId: string, filter: Partial<IInstalledExtensionFilter>, update: Partial<IUpdateInstalledExtensionInput>): Promise<number>;
43
+ /**
44
+ * Get extension dependency graph for a tenant
45
+ */
46
+ getDependencyGraph(tenantId: string): Promise<{
47
+ extensions: AsDomainType<IInstalledExtensionModel>[];
48
+ dependencies: Array<{
49
+ extensionId: string;
50
+ dependsOn: string[];
51
+ dependents: string[];
52
+ }>;
53
+ }>;
54
+ /**
55
+ * Count installed extensions matching query
56
+ */
57
+ countByQuery(query: IInstalledExtensionFilter): Promise<number>;
58
+ /**
59
+ * Find extensions that need registry sync
60
+ */
61
+ findStaleExtensions(tenantId: string, maxAge: number): Promise<AsDomainType<IInstalledExtensionModel>[]>;
62
+ /**
63
+ * Update registry status for multiple extensions
64
+ */
65
+ syncRegistryStatus(updates: Array<{
66
+ orgId: string;
67
+ extensionId: string;
68
+ registryStatus: string;
69
+ latestVersion?: string;
70
+ isOrphaned: boolean;
71
+ }>): Promise<void>;
72
+ }
73
+ //# sourceMappingURL=installed-extension-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installed-extension-repository.d.ts","sourceRoot":"","sources":["../../../src/store/repositories/installed-extension-repository.ts"],"names":[],"mappings":"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"}