@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.
Files changed (175) hide show
  1. package/lib/containers/module.d.ts +4 -4
  2. package/lib/containers/module.d.ts.map +1 -1
  3. package/lib/containers/module.js +12 -7
  4. package/lib/containers/module.js.map +1 -1
  5. package/lib/dataloaders/index.d.ts +1 -1
  6. package/lib/dataloaders/index.d.ts.map +1 -1
  7. package/lib/dataloaders/publisher-data-loader.d.ts +6 -0
  8. package/lib/dataloaders/publisher-data-loader.d.ts.map +1 -0
  9. package/lib/demo/test-graphql-examples.d.ts +73 -0
  10. package/lib/demo/test-graphql-examples.d.ts.map +1 -0
  11. package/lib/graphql/resolvers/form-templates-resolver.d.ts +220 -0
  12. package/lib/graphql/resolvers/form-templates-resolver.d.ts.map +1 -0
  13. package/lib/graphql/resolvers/form-templates-resolver.js +170 -0
  14. package/lib/graphql/resolvers/form-templates-resolver.js.map +1 -0
  15. package/lib/graphql/resolvers/gallery-resolver.d.ts +15 -0
  16. package/lib/graphql/resolvers/gallery-resolver.d.ts.map +1 -0
  17. package/lib/graphql/resolvers/gallery-resolver.js +35 -0
  18. package/lib/graphql/resolvers/gallery-resolver.js.map +1 -0
  19. package/lib/graphql/resolvers/index.d.ts +247 -1
  20. package/lib/graphql/resolvers/index.d.ts.map +1 -1
  21. package/lib/graphql/resolvers/index.js +1 -1
  22. package/lib/graphql/resolvers/installed-extension-resolver.d.ts.map +1 -1
  23. package/lib/graphql/resolvers/installed-extension-resolver.js +161 -35
  24. package/lib/graphql/resolvers/installed-extension-resolver.js.map +1 -1
  25. package/lib/graphql/resolvers/marketplace-form-resolver.d.ts +13 -0
  26. package/lib/graphql/resolvers/marketplace-form-resolver.d.ts.map +1 -0
  27. package/lib/graphql/resolvers/marketplace-form-resolver.js +90 -0
  28. package/lib/graphql/resolvers/marketplace-form-resolver.js.map +1 -0
  29. package/lib/graphql/resolvers/publisher-analytics-resolver.d.ts +14 -0
  30. package/lib/graphql/resolvers/publisher-analytics-resolver.d.ts.map +1 -0
  31. package/lib/graphql/resolvers/publisher-analytics-resolver.js +221 -0
  32. package/lib/graphql/resolvers/publisher-analytics-resolver.js.map +1 -0
  33. package/lib/graphql/resolvers/publisher-resolver.d.ts +5 -0
  34. package/lib/graphql/resolvers/publisher-resolver.d.ts.map +1 -0
  35. package/lib/graphql/resolvers/publisher-resolver.js +183 -0
  36. package/lib/graphql/resolvers/publisher-resolver.js.map +1 -0
  37. package/lib/graphql/resolvers/registry-extension-resolver.d.ts.map +1 -1
  38. package/lib/graphql/resolvers/registry-extension-resolver.js +34 -167
  39. package/lib/graphql/resolvers/registry-extension-resolver.js.map +1 -1
  40. package/lib/graphql/schemas/extension-pricing.graphql +546 -0
  41. package/lib/graphql/schemas/extension-pricing.graphql.js +1 -0
  42. package/lib/graphql/schemas/extension-pricing.graphql.js.map +1 -0
  43. package/lib/graphql/schemas/extension-registry.graphql +91 -58
  44. package/lib/graphql/schemas/extension-registry.graphql.js +1 -1
  45. package/lib/graphql/schemas/form-templates.graphql +269 -0
  46. package/lib/graphql/schemas/form-templates.graphql.js +1 -0
  47. package/lib/graphql/schemas/form-templates.graphql.js.map +1 -0
  48. package/lib/graphql/schemas/gallery-schema.graphql +247 -0
  49. package/lib/graphql/schemas/gallery-schema.graphql.js +1 -0
  50. package/lib/graphql/schemas/gallery-schema.graphql.js.map +1 -0
  51. package/lib/graphql/schemas/index.d.ts.map +1 -1
  52. package/lib/graphql/schemas/index.js +3 -1
  53. package/lib/graphql/schemas/index.js.map +1 -1
  54. package/lib/graphql/schemas/installed-extension.graphql +37 -7
  55. package/lib/graphql/schemas/installed-extension.graphql.js +1 -1
  56. package/lib/graphql/schemas/publisher-analytics.graphql +305 -0
  57. package/lib/graphql/schemas/publisher-analytics.graphql.js +1 -0
  58. package/lib/graphql/schemas/publisher-analytics.graphql.js.map +1 -0
  59. package/lib/graphql/schemas/publisher.graphql +584 -0
  60. package/lib/graphql/schemas/publisher.graphql.js +1 -0
  61. package/lib/graphql/schemas/publisher.graphql.js.map +1 -0
  62. package/lib/graphql/schemas/service.graphql +15 -0
  63. package/lib/index.d.ts +1 -1
  64. package/lib/index.js +1 -1
  65. package/lib/index.js.map +1 -1
  66. package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.d.ts +20 -0
  67. package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.d.ts.map +1 -0
  68. package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.js +61 -0
  69. package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.js.map +1 -0
  70. package/lib/migrations/index.d.ts +2 -0
  71. package/lib/migrations/index.d.ts.map +1 -0
  72. package/lib/module.d.ts +1 -1
  73. package/lib/module.d.ts.map +1 -1
  74. package/lib/module.js +11 -26
  75. package/lib/module.js.map +1 -1
  76. package/lib/services/extension-gallery-repository.d.ts +17 -0
  77. package/lib/services/extension-gallery-repository.d.ts.map +1 -0
  78. package/lib/services/extension-gallery-repository.js +192 -0
  79. package/lib/services/extension-gallery-repository.js.map +1 -0
  80. package/lib/services/extension-gallery-service-new.d.ts +39 -0
  81. package/lib/services/extension-gallery-service-new.d.ts.map +1 -0
  82. package/lib/services/extension-gallery-service.d.ts +30 -0
  83. package/lib/services/extension-gallery-service.d.ts.map +1 -0
  84. package/lib/services/extension-gallery-service.js +334 -0
  85. package/lib/services/extension-gallery-service.js.map +1 -0
  86. package/lib/services/index.d.ts +4 -1
  87. package/lib/services/index.d.ts.map +1 -1
  88. package/lib/services/installed-extension-service-ext.d.ts +5 -2
  89. package/lib/services/installed-extension-service-ext.d.ts.map +1 -1
  90. package/lib/services/installed-extension-service-ext.js +364 -117
  91. package/lib/services/installed-extension-service-ext.js.map +1 -1
  92. package/lib/services/installed-extension-service.d.ts +30 -13
  93. package/lib/services/installed-extension-service.d.ts.map +1 -1
  94. package/lib/services/installed-extension-service.js +301 -68
  95. package/lib/services/installed-extension-service.js.map +1 -1
  96. package/lib/services/installed-extension-service.test.d.ts +0 -1
  97. package/lib/services/publisher-analytics-service.d.ts +128 -0
  98. package/lib/services/publisher-analytics-service.d.ts.map +1 -0
  99. package/lib/services/publisher-event-service.d.ts +48 -0
  100. package/lib/services/publisher-event-service.d.ts.map +1 -0
  101. package/lib/services/publisher-event-service.js +296 -0
  102. package/lib/services/publisher-event-service.js.map +1 -0
  103. package/lib/services/publisher-service-context.d.ts +1 -0
  104. package/lib/services/publisher-service-context.d.ts.map +1 -0
  105. package/lib/services/publisher-service.d.ts +62 -0
  106. package/lib/services/publisher-service.d.ts.map +1 -0
  107. package/lib/services/publisher-service.js +135 -0
  108. package/lib/services/publisher-service.js.map +1 -0
  109. package/lib/store/models/index.d.ts +1 -1
  110. package/lib/store/models/index.d.ts.map +1 -1
  111. package/lib/store/models/installed-extension-model.d.ts.map +1 -1
  112. package/lib/store/models/installed-extension-model.js +17 -45
  113. package/lib/store/models/installed-extension-model.js.map +1 -1
  114. package/lib/store/models/publisher-event-model.d.ts +11 -0
  115. package/lib/store/models/publisher-event-model.d.ts.map +1 -0
  116. package/lib/store/models/publisher-model.d.ts +5 -0
  117. package/lib/store/models/publisher-model.d.ts.map +1 -0
  118. package/lib/store/models/publisher-model.js +117 -0
  119. package/lib/store/models/publisher-model.js.map +1 -0
  120. package/lib/store/models/publisher-stats-model.d.ts +1 -0
  121. package/lib/store/models/publisher-stats-model.d.ts.map +1 -0
  122. package/lib/store/repositories/index.d.ts +1 -1
  123. package/lib/store/repositories/index.d.ts.map +1 -1
  124. package/lib/store/repositories/installed-extension-repository.d.ts +17 -11
  125. package/lib/store/repositories/installed-extension-repository.d.ts.map +1 -1
  126. package/lib/store/repositories/installed-extension-repository.js +123 -75
  127. package/lib/store/repositories/installed-extension-repository.js.map +1 -1
  128. package/lib/store/repositories/publisher-analytics-repository.d.ts +1 -0
  129. package/lib/store/repositories/publisher-analytics-repository.d.ts.map +1 -0
  130. package/lib/store/repositories/publisher-repository.d.ts +19 -0
  131. package/lib/store/repositories/publisher-repository.d.ts.map +1 -0
  132. package/lib/store/repositories/publisher-repository.js +87 -0
  133. package/lib/store/repositories/publisher-repository.js.map +1 -0
  134. package/lib/templates/constants/DB_COLL_NAMES.ts.template +1 -1
  135. package/lib/templates/constants/SERVER_TYPES.ts.template +8 -5
  136. package/lib/templates/repositories/ExtensionGalleryRepository.ts.template +44 -0
  137. package/lib/templates/repositories/InstalledExtensionRepository.ts.template +19 -14
  138. package/lib/templates/repositories/MarketplacePublisherRepository.ts.template +24 -0
  139. package/lib/templates/repositories/RegistryExtensionRepository.ts.template +2 -2
  140. package/lib/templates/services/ExtensionGalleryDataLoader.ts.template +2 -0
  141. package/lib/templates/services/ExtensionGalleryService.ts.template +79 -0
  142. package/lib/templates/services/InstalledExtensionService.ts.template +63 -32
  143. package/lib/templates/services/MarketplacePublisherService.ts.template +51 -0
  144. package/lib/templates/services/PublisherDataLoader.ts.template +3 -0
  145. package/lib/templates/services/PublisherEventService.ts.template +56 -0
  146. package/lib/templates/services/RegistryExtensionService.ts.template +46 -2
  147. package/lib/tests/extension-integration.test.d.ts +0 -1
  148. package/lib/tests/install-extension-graphql.test.d.ts +2 -0
  149. package/lib/tests/install-extension-graphql.test.d.ts.map +1 -0
  150. package/lib/utils/publisherValidation.d.ts +23 -0
  151. package/lib/utils/publisherValidation.d.ts.map +1 -0
  152. package/lib/utils/publisherValidation.js +144 -0
  153. package/lib/utils/publisherValidation.js.map +1 -0
  154. package/package.json +13 -9
  155. package/lib/constants/extension-events.d.ts +0 -136
  156. package/lib/constants/extension-events.d.ts.map +0 -1
  157. package/lib/dataloaders/registry-extension-data-loader.d.ts +0 -6
  158. package/lib/dataloaders/registry-extension-data-loader.d.ts.map +0 -1
  159. package/lib/dataloaders/registry-extension-data-loader.js +0 -6
  160. package/lib/dataloaders/registry-extension-data-loader.js.map +0 -1
  161. package/lib/graphql/schemas/service.graphql.js +0 -1
  162. package/lib/graphql/schemas/service.graphql.js.map +0 -1
  163. package/lib/services/extension-service.d.ts +0 -42
  164. package/lib/services/extension-service.d.ts.map +0 -1
  165. package/lib/services/extension-service.js +0 -60
  166. package/lib/services/extension-service.js.map +0 -1
  167. package/lib/store/models/registry-extension-model.d.ts +0 -5
  168. package/lib/store/models/registry-extension-model.d.ts.map +0 -1
  169. package/lib/store/models/registry-extension-model.js +0 -83
  170. package/lib/store/models/registry-extension-model.js.map +0 -1
  171. package/lib/store/repositories/registry-extension-repository.d.ts +0 -54
  172. package/lib/store/repositories/registry-extension-repository.d.ts.map +0 -1
  173. package/lib/store/repositories/registry-extension-repository.js +0 -137
  174. package/lib/store/repositories/registry-extension-repository.js.map +0 -1
  175. package/lib/templates/services/RegistryExtensionDataLoader.ts.template +0 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminide-stack/marketplace-module-server",
3
- "version": "12.0.4-alpha.95",
3
+ "version": "13.0.1-alpha.0",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "UNLICENSED",
6
6
  "author": "CDMBase LLC",
@@ -21,11 +21,11 @@
21
21
  "watch": "yarn build:lib:watch"
22
22
  },
23
23
  "dependencies": {
24
- "@adminide-stack/extension-api": "12.0.4-alpha.95",
24
+ "@adminide-stack/extension-api": "13.0.1-alpha.0",
25
25
  "nanoid": "^5.1.5"
26
26
  },
27
27
  "devDependencies": {
28
- "common": "12.0.4-alpha.95"
28
+ "common": "13.0.1-alpha.0"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "graphql-tag": ">=2.0.0"
@@ -40,19 +40,23 @@
40
40
  "./${libDir}/templates/constants/DB_COLL_NAMES.ts.template"
41
41
  ],
42
42
  "services": [
43
- "./${libDir}/templates/services/RegistryExtensionService.ts.template",
44
43
  "./${libDir}/templates/services/InstalledExtensionService.ts.template",
45
- "./${libDir}/templates/services/RegistryExtensionDataLoader.ts.template",
46
- "./${libDir}/templates/services/InstalledExtensionDataLoader.ts.template"
44
+ "./${libDir}/templates/services/InstalledExtensionDataLoader.ts.template",
45
+ "./${libDir}/templates/services/MarketplacePublisherService.ts.template",
46
+ "./${libDir}/templates/services/PublisherEventService.ts.template",
47
+ "./${libDir}/templates/services/ExtensionGalleryService.ts.template",
48
+ "./${libDir}/templates/services/ExtensionGalleryDataLoader.ts.template",
49
+ "./${libDir}/templates/services/PublisherDataLoader.ts.template"
47
50
  ],
48
51
  "repositories": [
49
- "./${libDir}/templates/repositories/RegistryExtensionRepository.ts.template",
50
- "./${libDir}/templates/repositories/InstalledExtensionRepository.ts.template"
52
+ "./${libDir}/templates/repositories/InstalledExtensionRepository.ts.template",
53
+ "./${libDir}/templates/repositories/MarketplacePublisherRepository.ts.template",
54
+ "./${libDir}/templates/repositories/ExtensionGalleryRepository.ts.template"
51
55
  ]
52
56
  }
53
57
  },
54
58
  "typescript": {
55
59
  "definition": "lib/index.d.ts"
56
60
  },
57
- "gitHead": "1ecc4d25620d22456937857503df6884e49356ad"
61
+ "gitHead": "b3175c46e4227c4fa5ea659e883c2c835ff99ccc"
58
62
  }
@@ -1,136 +0,0 @@
1
- /**
2
- * Extension service actions (events)
3
- */
4
- export declare enum ExtensionServiceAction {
5
- OnExtensionInstalled = "OnExtensionInstalled",
6
- OnExtensionUninstalled = "OnExtensionUninstalled",
7
- OnExtensionEnabled = "OnExtensionEnabled",
8
- OnExtensionDisabled = "OnExtensionDisabled",
9
- OnExtensionUpdated = "OnExtensionUpdated",
10
- OnExtensionVersionUpdated = "OnExtensionVersionUpdated",
11
- OnExtensionConfigurationUpdated = "OnExtensionConfigurationUpdated",
12
- OnExtensionSyncCompleted = "OnExtensionSyncCompleted",
13
- OnExtensionCleanupCompleted = "OnExtensionCleanupCompleted",
14
- OnExtensionStatusChanged = "OnExtensionStatusChanged",
15
- OnExtensionActivationFailed = "OnExtensionActivationFailed",
16
- OnExtensionDeprecated = "OnExtensionDeprecated",
17
- OnExtensionOrphaned = "OnExtensionOrphaned"
18
- }
19
- /**
20
- * Moleculer service name
21
- */
22
- export declare const ExtensionMoleculerServiceName = "ExtensionService";
23
- /**
24
- * Event payload interfaces
25
- */
26
- export interface IExtensionInstalledEvent {
27
- extensionSlug: string;
28
- tenantId: string;
29
- installedBy: string;
30
- installedVersion: string;
31
- registryRef: string;
32
- installedAt: string;
33
- policies?: unknown;
34
- settings?: unknown;
35
- }
36
- export interface IExtensionUninstalledEvent {
37
- extensionSlug: string;
38
- tenantId: string;
39
- uninstalledBy: string;
40
- uninstalledAt: string;
41
- wasEnabled: boolean;
42
- dependencies?: string[];
43
- }
44
- export interface IExtensionEnabledEvent {
45
- extensionSlug: string;
46
- tenantId: string;
47
- enabledBy: string;
48
- enabledAt: string;
49
- previousState: string;
50
- }
51
- export interface IExtensionDisabledEvent {
52
- extensionSlug: string;
53
- tenantId: string;
54
- disabledBy: string;
55
- disabledAt: string;
56
- reason: 'user' | 'admin' | 'policy' | 'system';
57
- }
58
- export interface IExtensionUpdatedEvent {
59
- extensionSlug: string;
60
- tenantId: string;
61
- updatedBy: string;
62
- updatedAt: string;
63
- changes: {
64
- status?: string;
65
- settings?: unknown;
66
- policies?: unknown;
67
- runtime?: unknown;
68
- };
69
- previousVersion?: string;
70
- newVersion?: string;
71
- }
72
- export interface IExtensionVersionUpdatedEvent {
73
- extensionSlug: string;
74
- tenantId: string;
75
- updatedBy: string;
76
- fromVersion: string;
77
- toVersion: string;
78
- updatedAt: string;
79
- isSecurityUpdate: boolean;
80
- }
81
- export interface IExtensionConfigurationUpdatedEvent {
82
- extensionSlug: string;
83
- tenantId: string;
84
- updatedBy: string;
85
- updatedAt: string;
86
- configurationChanges: Record<string, unknown>;
87
- previousConfiguration?: Record<string, unknown>;
88
- }
89
- export interface IExtensionSyncCompletedEvent {
90
- tenantId: string;
91
- syncedAt: string;
92
- syncedExtensions: number;
93
- orphanedExtensions: string[];
94
- deprecatedExtensions: string[];
95
- updatedExtensions: string[];
96
- }
97
- export interface IExtensionCleanupCompletedEvent {
98
- tenantId: string;
99
- cleanupAt: string;
100
- removedExtensions: string[];
101
- deprecatedExtensions: string[];
102
- warnings: string[];
103
- dryRun: boolean;
104
- }
105
- export interface IExtensionStatusChangedEvent {
106
- extensionSlug: string;
107
- tenantId: string;
108
- previousStatus: string;
109
- newStatus: string;
110
- changedAt: string;
111
- reason?: string;
112
- }
113
- export interface IExtensionActivationFailedEvent {
114
- extensionSlug: string;
115
- tenantId: string;
116
- failedAt: string;
117
- errorMessage: string;
118
- errorCode: string;
119
- attemptCount: number;
120
- }
121
- export interface IExtensionDeprecatedEvent {
122
- extensionSlug: string;
123
- tenantId: string;
124
- deprecatedAt: string;
125
- deprecationReason: string;
126
- gracePeriodDays: number;
127
- recommendedAlternatives?: string[];
128
- }
129
- export interface IExtensionOrphanedEvent {
130
- extensionSlug: string;
131
- tenantId: string;
132
- orphanedAt: string;
133
- lastRegistryCheck: string;
134
- allowOrphanedExecution: boolean;
135
- }
136
- //# sourceMappingURL=extension-events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-events.d.ts","sourceRoot":"","sources":["../../src/constants/extension-events.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { IRegistryExtension, IRegistryExtensionService, AsDomainType } from 'common/server';
2
- import { BulkDataLoader2 } from '@common-stack/store-mongo';
3
- export declare class RegistryExtensionDataLoader extends BulkDataLoader2<AsDomainType<IRegistryExtension>> {
4
- constructor(registryExtensionService: IRegistryExtensionService);
5
- }
6
- //# sourceMappingURL=registry-extension-data-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-extension-data-loader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/registry-extension-data-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAA8B,YAAY,EAAE,MAAM,eAAe,CAAC;AAExH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,qBACa,2BAA4B,SAAQ,eAAe,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBAG1F,wBAAwB,EAAE,yBAAyB;CAI1D"}
@@ -1,6 +0,0 @@
1
- import {__decorate,__param,__metadata}from'tslib';import {SERVER_TYPES}from'common/server';import {injectable,inject}from'inversify';import {BulkDataLoader2}from'@common-stack/store-mongo';let RegistryExtensionDataLoader = class RegistryExtensionDataLoader extends BulkDataLoader2 {
2
- constructor(registryExtensionService) {
3
- super(registryExtensionService);
4
- }
5
- };
6
- RegistryExtensionDataLoader = __decorate([injectable(), __param(0, inject(SERVER_TYPES.IRegistryExtensionService)), __metadata("design:paramtypes", [Object])], RegistryExtensionDataLoader);export{RegistryExtensionDataLoader};//# sourceMappingURL=registry-extension-data-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-extension-data-loader.js","sources":["../../src/dataloaders/registry-extension-data-loader.ts"],"sourcesContent":[null],"names":[],"mappings":"6LAYC,IAAA,2BAAA,GAAA,MAAA,2BAAA,SAAA,eAAA,CAAA;;;;;"}
@@ -1 +0,0 @@
1
- var serviceSchema = "\nextend enum MoleculerServiceName {\n ExtensionService\n}\n\nenum ExtensionServiceAction {\n OnExtensionInstalled\n OnExtensionUninstalled\n OnExtensionEnabled\n OnExtensionDisabled\n OnExtensionUpdated\n OnExtensionVersionUpdated\n OnExtensionConfigurationUpdated\n OnExtensionSyncCompleted\n OnExtensionCleanupCompleted\n OnExtensionStatusChanged\n OnExtensionActivationFailed\n OnExtensionDeprecated\n OnExtensionOrphaned\n}\n\n# Extension Event Types for codegen\n\n\"\"\"\nEvent fired when an extension is installed\n\"\"\"\ntype ExtensionInstalledEvent {\n extensionSlug: String!\n tenantId: String!\n installedBy: String!\n installedVersion: String!\n registryRef: String!\n installedAt: String!\n policies: JSON\n settings: JSON\n}\n\n\"\"\"\nEvent fired when an extension is uninstalled\n\"\"\"\ntype ExtensionUninstalledEvent {\n extensionSlug: String!\n tenantId: String!\n uninstalledBy: String!\n uninstalledAt: String!\n wasEnabled: Boolean!\n dependencies: [String!]\n}\n\n\"\"\"\nEvent fired when an extension is enabled\n\"\"\"\ntype ExtensionEnabledEvent {\n extensionSlug: String!\n tenantId: String!\n enabledBy: String!\n enabledAt: String!\n previousState: String!\n}\n\n\"\"\"\nEvent fired when an extension is disabled\n\"\"\"\ntype ExtensionDisabledEvent {\n extensionSlug: String!\n tenantId: String!\n disabledBy: String!\n disabledAt: String!\n reason: String! # 'user', 'admin', 'policy', 'system'\n}\n\n\"\"\"\nEvent fired when an extension is updated\n\"\"\"\ntype ExtensionUpdatedEvent {\n extensionSlug: String!\n tenantId: String!\n updatedBy: String!\n updatedAt: String!\n changes: JSON! # { status?, settings?, policies?, runtime? }\n previousVersion: String\n newVersion: String\n}\n\n\"\"\"\nEvent fired when an extension version is updated\n\"\"\"\ntype ExtensionVersionUpdatedEvent {\n extensionSlug: String!\n tenantId: String!\n updatedBy: String!\n fromVersion: String!\n toVersion: String!\n updatedAt: String!\n isSecurityUpdate: Boolean!\n}\n\n\"\"\"\nEvent fired when extension configuration is updated\n\"\"\"\ntype ExtensionConfigurationUpdatedEvent {\n tenantId: String!\n extensionSlug: String!\n updatedBy: String!\n updatedAt: String!\n configType: String! # 'user' or 'system'\n previousConfig: JSON\n newConfig: JSON!\n}\n\n\"\"\"\nEvent fired when extension sync with registry is completed\n\"\"\"\ntype ExtensionSyncCompletedEvent {\n tenantId: String!\n syncedAt: String!\n extensionsChecked: Int!\n extensionsUpdated: Int!\n extensionsOrphaned: Int!\n errors: [String!]\n}\n\n\"\"\"\nEvent fired when extension cleanup is completed\n\"\"\"\ntype ExtensionCleanupCompletedEvent {\n tenantId: String!\n cleanedAt: String!\n extensionsRemoved: [String!]!\n extensionsDeprecated: [String!]!\n warnings: [String!]\n dryRun: Boolean!\n}\n\n\"\"\"\nEvent fired when extension status changes\n\"\"\"\ntype ExtensionStatusChangedEvent {\n tenantId: String!\n extensionSlug: String!\n previousStatus: String!\n newStatus: String!\n changedBy: String\n changedAt: String!\n reason: String\n}\n\n\"\"\"\nEvent fired when extension activation fails\n\"\"\"\ntype ExtensionActivationFailedEvent {\n tenantId: String!\n extensionSlug: String!\n failedAt: String!\n error: JSON! # { message, code, stack }\n attemptCount: Int!\n willRetry: Boolean!\n}\n\n\"\"\"\nEvent fired when an extension is deprecated\n\"\"\"\ntype ExtensionDeprecatedEvent {\n tenantId: String!\n extensionSlug: String!\n deprecatedAt: String!\n deprecationInfo: JSON! # { reason, alternative, gracePeriod }\n affectedInstallations: Int!\n}\n\n\"\"\"\nEvent fired when an extension becomes orphaned (removed from registry)\n\"\"\"\ntype ExtensionOrphanedEvent {\n tenantId: String!\n extensionSlug: String!\n orphanedAt: String!\n lastKnownVersion: String!\n removalReason: String\n policyAction: String! # 'keep', 'disable', 'remove'\n}";export{serviceSchema as default};//# sourceMappingURL=service.graphql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.graphql.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,42 +0,0 @@
1
- import { CdmLogger } from '@cdm-logger/core';
2
- import { BaseService2 } from '@common-stack/store-mongo';
3
- import { Disposable, DisposableCollection, Emitter } from '@adminide-stack/core';
4
- import { IRegistryExtensionService, IRegistryExtensionRepository, IRegistryExtensionModel } from 'common/server';
5
- export declare class RegistryExtensionService extends BaseService2<IRegistryExtensionModel> implements IRegistryExtensionService, Disposable {
6
- private extensionRepository;
7
- protected readonly onExtensionCreated: Emitter<{
8
- extensionSlug: string;
9
- publisherId: string;
10
- name: string;
11
- createdAt: string;
12
- }>;
13
- protected readonly onExtensionUpdated: Emitter<{
14
- extensionSlug: string;
15
- changes: Record<string, unknown>;
16
- updatedAt: string;
17
- }>;
18
- protected readonly onExtensionDeleted: Emitter<{
19
- extensionSlug: string;
20
- deletedAt: string;
21
- }>;
22
- protected readonly onExtensionPublished: Emitter<{
23
- extensionSlug: string;
24
- version: string;
25
- publishedAt: string;
26
- }>;
27
- protected readonly toDispose: DisposableCollection;
28
- private logger;
29
- constructor(extensionRepository: IRegistryExtensionRepository, logger: CdmLogger.ILogger);
30
- dispose(): void;
31
- createExtension(publisherId: string, name: string): Promise<import("common/server").AsDomainType<IRegistryExtensionModel>>;
32
- updateExtensionName(extensionSlug: string, name: string): Promise<import("common/server").AsDomainType<IRegistryExtensionModel>>;
33
- updateExtension(extensionSlug: string, update: {
34
- installed?: boolean;
35
- }): Promise<import("common/server").AsDomainType<IRegistryExtensionModel>>;
36
- extensionReleases(extensionSlug: string): Promise<import("common/server").AsDomainType<import("common").IExtensionReleaseModel>[]>;
37
- deleteExtension(extensionSlug: string): Promise<boolean>;
38
- publishExtension(request: any): Promise<import("common/server").AsDomainType<IRegistryExtensionModel>>;
39
- findExtensions(first: number, query: string, local?: boolean, remote?: boolean, prioritizeExtensionIDs?: string[]): Promise<import("common/server").AsDomainType<IRegistryExtensionModel>[]>;
40
- findExtension(extensionSlug: string): Promise<import("common/server").AsDomainType<IRegistryExtensionModel>>;
41
- }
42
- //# sourceMappingURL=extension-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-service.d.ts","sourceRoot":"","sources":["../../src/services/extension-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAEH,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EAC1B,MAAM,eAAe,CAAC;AAEvB,qBACa,wBACT,SAAQ,YAAY,CAAC,uBAAuB,CAC5C,YAAW,yBAAyB,EAAE,UAAU;IAqC5C,OAAO,CAAC,mBAAmB;IAnC/B,SAAS,CAAC,QAAQ,CAAC,kBAAkB;uBAClB,MAAM;qBACR,MAAM;cACb,MAAM;mBACD,MAAM;OAChB;IAEL,SAAS,CAAC,QAAQ,CAAC,kBAAkB;uBAClB,MAAM;iBACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACrB,MAAM;OAChB;IAEL,SAAS,CAAC,QAAQ,CAAC,kBAAkB;uBAClB,MAAM;mBACV,MAAM;OAChB;IAEL,SAAS,CAAC,QAAQ,CAAC,oBAAoB;uBACpB,MAAM;iBACZ,MAAM;qBACF,MAAM;OAClB;IAEL,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAK1B;IAEF,OAAO,CAAC,MAAM,CAAoB;gBAItB,mBAAmB,EAAE,4BAA4B,EAGzD,MAAM,EAAE,SAAS,CAAC,OAAO;IAM7B,OAAO,IAAI,IAAI;IAIF,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAIjD,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAIvD,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE;IAqBtE,iBAAiB,CAAC,aAAa,EAAE,MAAM;IAKvC,eAAe,CAAC,aAAa,EAAE,MAAM;IAIrC,gBAAgB,CAAC,OAAO,KAAA;IAIxB,cAAc,CACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,OAAO,EAChB,sBAAsB,CAAC,EAAE,MAAM,EAAE;IAKxB,aAAa,CAAC,aAAa,EAAE,MAAM;CAGnD"}
@@ -1,60 +0,0 @@
1
- import {__decorate,__param,__metadata}from'tslib';import {injectable,inject}from'inversify';import'@cdm-logger/core';import {BaseService2}from'@common-stack/store-mongo';import {Emitter,DisposableCollection}from'@adminide-stack/core';import {SERVER_TYPES}from'common/server';var RegistryExtensionService_1;
2
- let RegistryExtensionService = RegistryExtensionService_1 = class RegistryExtensionService extends BaseService2 {
3
- extensionRepository;
4
- onExtensionCreated = new Emitter();
5
- onExtensionUpdated = new Emitter();
6
- onExtensionDeleted = new Emitter();
7
- onExtensionPublished = new Emitter();
8
- toDispose = new DisposableCollection(this.onExtensionCreated, this.onExtensionUpdated, this.onExtensionDeleted, this.onExtensionPublished);
9
- logger;
10
- constructor(extensionRepository, logger) {
11
- super(extensionRepository);
12
- this.extensionRepository = extensionRepository;
13
- this.logger = logger.child({
14
- className: RegistryExtensionService_1.name
15
- });
16
- }
17
- dispose() {
18
- this.toDispose.dispose();
19
- }
20
- async createExtension(publisherId, name) {
21
- return this.extensionRepository.createExtension(publisherId, name);
22
- }
23
- async updateExtensionName(extensionSlug, name) {
24
- return this.extensionRepository.updateExtensionName(extensionSlug, name);
25
- }
26
- async updateExtension(extensionSlug, update) {
27
- const extension = await this.findExtension(extensionSlug);
28
- if (!extension) {
29
- throw new Error(`Extension ${extensionSlug} not found`);
30
- }
31
- const updatedExtension = await this.extensionRepository.updateExtension(extensionSlug, update);
32
- // Fire events for extension lifecycle changes
33
- if (updatedExtension) {
34
- this.onExtensionUpdated.fire({
35
- extensionSlug: updatedExtension.extensionSlug,
36
- changes: update,
37
- updatedAt: new Date().toISOString()
38
- });
39
- }
40
- return updatedExtension;
41
- }
42
- // TODO: Add method to interface
43
- async extensionReleases(extensionSlug) {
44
- this.logger.debug(`Fetching releases for ${extensionSlug}`);
45
- return this.extensionRepository.extensionReleases(extensionSlug);
46
- }
47
- async deleteExtension(extensionSlug) {
48
- return this.extensionRepository.deleteExtension(extensionSlug);
49
- }
50
- async publishExtension(request) {
51
- return this.extensionRepository.publishExtension(request);
52
- }
53
- async findExtensions(first, query, local, remote, prioritizeExtensionIDs) {
54
- return this.extensionRepository.findExtensions(first, query, local, remote, prioritizeExtensionIDs);
55
- }
56
- async findExtension(extensionSlug) {
57
- return this.extensionRepository.findExtension(extensionSlug);
58
- }
59
- };
60
- RegistryExtensionService = RegistryExtensionService_1 = __decorate([injectable(), __param(0, inject(SERVER_TYPES.IRegistryExtensionRepository)), __param(1, inject('Logger')), __metadata("design:paramtypes", [Object, Object])], RegistryExtensionService);export{RegistryExtensionService};//# sourceMappingURL=extension-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-service.js","sources":["../../src/services/extension-service.ts"],"sourcesContent":[null],"names":[],"mappings":"mRACA,IAAA;4BAgB6B,GAAA,0BAAA,GAAA,MAAA,wBAAA,SAAA,YAAA,CAAA;qBACR;oBACD,GAAA,IAAA,OAAA,EAAA;oBACK,GAAA,IAAA,OAAA,EAAA;AAChB,EAAA,kBAAA,GAAA,IAAA,OAAA,EAAA;sBAEa,GAAmB,IAAA,OAAA,EAAA;sCACZ,CAAA,IAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,oBAAA,CAAA;AACZ,EAAA,MAAA;iCACQ,EAAA,MAAA,EAAA;AAChB,IAAA,KAAA,CAAA,mBAAA,CAAA;IAEL,IAAS,CAAA,mBAA4B,GAAA,mBAAA;wBACZ,CAAA,KAAA,CAAA;2CACJ,CAAA;AAChB,KAAA,CAAA;;;kBAIc,CAAA,OAAA,EAAA;;AAEd,EAAA,MAAA,eAAA,CAAA,WAAA,EAAA,IAAA,EAAA;AAEL,IAAA,OAAA,IAAU,CAAA,mBAKR,CAAA,eAAA,CAAA,WAAA,EAAA,IAAA,CAAA;;AAMU,EAAA,MAAA,mBAAA,CAAA,aAAiD,EAAA,IAAA,EAAA;AAS7D,IAAA,OAAO,IAAI,CAAI,mBAAA,CAAA,mBAAA,CAAA,aAAA,EAAA,IAAA,CAAA;AAIF;AAIA,EAAA,MAAA,eAAmB,CAAC,aAAa,EAAE,MAAM,EAAE;AAI3C,IAAA,MAAA,SAAe,GAAc,MAAA,IAAA,CAAA,2BAAkB,CAAA;QAAE,CAAS,SAAC,EAAE;AAAS,MAAA,MAAA,IAAA,KAAA,CAAA,CAAA,UAAA,EAAA,aAAA,CAAA,UAAA,CAAA,CAAA;;IA0BtE,MAAe,gBAAc,GAAA,MAAE,IAAM,CAAA,mBAAA,CAAA,eAAA,CAAA,aAAA,EAAA,MAAA,CAAA;;IAQrC,IAAc,gBAClB,EAAE;MASe,IAAA,CAAA,kBAAc,CAAA,IAAQ,CAAA;AAGnD,QAAA,aAAA,EAAA,gBAAA,CAAA,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +0,0 @@
1
- import { Model, Connection } from 'mongoose';
2
- import { IRegistryExtensionModel } from 'common/server';
3
- export type RegistryExtensionModelType = Model<IRegistryExtensionModel>;
4
- export declare const RegistryExtensionModelFunc: (db: Connection) => RegistryExtensionModelType;
5
- //# sourceMappingURL=registry-extension-model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-extension-model.d.ts","sourceRoot":"","sources":["../../../src/store/models/registry-extension-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAyC,MAAM,eAAe,CAAC;AAmF/F,MAAM,MAAM,0BAA0B,GAAG,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACxE,eAAO,MAAM,0BAA0B,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,0BACoC,CAAC"}
@@ -1,83 +0,0 @@
1
- import {find}from'lodash-es';import {Schema}from'mongoose';import {DB_COLL_NAMES}from'common/server';import {customAlphabet}from'nanoid';const createRandom = customAlphabet('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 15);
2
- // Define the actual release schema structure that matches MongoDB document
3
- const RegistryExtensionReleaseSchema = new Schema({
4
- creatorUserId: {
5
- type: String
6
- },
7
- releaseVersion: {
8
- type: String
9
- },
10
- extensionSlug: String,
11
- manifest: {
12
- type: String
13
- },
14
- version: {
15
- type: String
16
- },
17
- bundle: {
18
- type: String
19
- },
20
- sourceMap: {
21
- type: String
22
- },
23
- // activationEvents: [String],
24
- bundleURL: String
25
- }, {
26
- strict: true
27
- });
28
- const RegistryExtensionSchema = new Schema({
29
- extensionSlug: String,
30
- extensionIDWithoutRegistry: String,
31
- isLocal: Boolean,
32
- name: {
33
- type: String,
34
- required: true,
35
- default: () => createRandom()
36
- },
37
- releases: [RegistryExtensionReleaseSchema],
38
- remoteURL: String,
39
- updatedAt: Date,
40
- url: String,
41
- uuid: {
42
- type: String,
43
- required: true,
44
- default: () => createRandom()
45
- },
46
- version: String,
47
- viewerCanAdminister: Boolean
48
- }, {
49
- strict: true,
50
- timestamps: true
51
- });
52
- RegistryExtensionSchema.virtual('manifest').get(function () {
53
- const release = find(this.releases, {
54
- version: this.version
55
- });
56
- if (!release || !release.manifest) {
57
- return null;
58
- }
59
- try {
60
- // Parse the JSON string manifest to create a proper ExtensionManifest object
61
- const parsedManifest = JSON.parse(release.manifest);
62
- return {
63
- ...parsedManifest,
64
- raw: release.manifest // Keep the original raw JSON for backwards compatibility
65
- };
66
- } catch (error) {
67
- console.warn('Failed to parse extension manifest for', this.extensionSlug, ':', error);
68
- // Fallback to raw string format for backwards compatibility
69
- return {
70
- raw: release.manifest
71
- };
72
- }
73
- });
74
- RegistryExtensionSchema.virtual('id').get(function () {
75
- return this._id.toHexString();
76
- });
77
- RegistryExtensionSchema.set('toJSON', {
78
- virtuals: true
79
- });
80
- RegistryExtensionSchema.set('toObject', {
81
- virtuals: true
82
- });
83
- const RegistryExtensionModelFunc = db => db.model(DB_COLL_NAMES.ExtensionRegistries, RegistryExtensionSchema);export{RegistryExtensionModelFunc};//# sourceMappingURL=registry-extension-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-extension-model.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,54 +0,0 @@
1
- import * as mongoose from 'mongoose';
2
- import { CdmLogger } from '@cdm-logger/core';
3
- import { IExtensionRelease, IRegistryExtensionRepository, IRegistryExtensionModel, AsDomainType } from 'common/server';
4
- import { BaseMongoRepository } from '@common-stack/store-mongo';
5
- export declare class RegistryExtensionRepository extends BaseMongoRepository<IRegistryExtensionModel> implements IRegistryExtensionRepository {
6
- constructor(db: mongoose.Connection, logger: CdmLogger.ILogger, options?: any);
7
- createExtension(publisherId: string, name: string): Promise<mongoose.Document<unknown, any, IRegistryExtensionModel & {
8
- id: string;
9
- }> & Omit<IRegistryExtensionModel & {
10
- id: string;
11
- } & Required<{
12
- _id: import("bson").ObjectID;
13
- }>, never>>;
14
- updateExtensionName(extensionSlug: string, name: string): Promise<mongoose.Document<unknown, any, IRegistryExtensionModel & {
15
- id: string;
16
- }> & Omit<IRegistryExtensionModel & {
17
- id: string;
18
- } & Required<{
19
- _id: import("bson").ObjectID;
20
- }>, never>>;
21
- updateExtension(extensionSlug: string, update: {
22
- installed?: boolean;
23
- }): Promise<mongoose.Document<unknown, any, IRegistryExtensionModel & {
24
- id: string;
25
- }> & Omit<IRegistryExtensionModel & {
26
- id: string;
27
- } & Required<{
28
- _id: import("bson").ObjectID;
29
- }>, never>>;
30
- deleteExtension(extensionSlug: any): Promise<boolean>;
31
- extensionReleases(extensionSlug: string): Promise<AsDomainType<IExtensionRelease>[]>;
32
- publishExtension(request: any): Promise<mongoose.Document<unknown, any, IRegistryExtensionModel & {
33
- id: string;
34
- }> & Omit<IRegistryExtensionModel & {
35
- id: string;
36
- } & Required<{
37
- _id: import("bson").ObjectID;
38
- }>, never>>;
39
- findExtensions(first: number, query: string, local?: boolean, remote?: boolean, prioritizeExtensionIDs?: string[]): Promise<(mongoose.Document<unknown, any, IRegistryExtensionModel & {
40
- id: string;
41
- }> & Omit<IRegistryExtensionModel & {
42
- id: string;
43
- } & Required<{
44
- _id: import("bson").ObjectID;
45
- }>, never>)[]>;
46
- findExtension(extensionSlug: string, version?: string): Promise<mongoose.Document<unknown, any, IRegistryExtensionModel & {
47
- id: string;
48
- }> & Omit<IRegistryExtensionModel & {
49
- id: string;
50
- } & Required<{
51
- _id: import("bson").ObjectID;
52
- }>, never>>;
53
- }
54
- //# sourceMappingURL=registry-extension-repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-extension-repository.d.ts","sourceRoot":"","sources":["../../../src/store/repositories/registry-extension-repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,qBACa,2BACT,SAAQ,mBAAmB,CAAC,uBAAuB,CACnD,YAAW,4BAA4B;gBAGN,EAAE,EAAE,QAAQ,CAAC,UAAU,EAClC,MAAM,EAAE,SAAS,CAAC,OAAO,EACP,OAAO,CAAC,EAAE,GAAG;IASxC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;;IAcjD,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;;IAMvD,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;IAMtE,eAAe,CAAC,aAAa,KAAA;IAW7B,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAMpF,gBAAgB,CAAC,OAAO,EAAE,GAAG;;;;;;;IA0D7B,cAAc,CACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,OAAO,EAChB,sBAAsB,CAAC,EAAE,MAAM,EAAE;;;;;;;IAKxB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;;;;;;;CASrE"}
@@ -1,137 +0,0 @@
1
- import {__decorate,__param,__metadata}from'tslib';import {pick,get,isEmpty,filter}from'lodash-es';import {injectable,inject,optional}from'inversify';import*as mongoose from'mongoose';import'@cdm-logger/core';import {BaseMongoRepository}from'@common-stack/store-mongo';import {RegistryExtensionModelFunc}from'../models/registry-extension-model.js';import'../models/installed-extension-model.js';var RegistryExtensionRepository_1;
2
- let RegistryExtensionRepository = RegistryExtensionRepository_1 = class RegistryExtensionRepository extends BaseMongoRepository {
3
- constructor(db, logger, options) {
4
- super(RegistryExtensionModelFunc, db, logger, options);
5
- if (!db) {
6
- throw new Error('MongoDB connection is not provided');
7
- }
8
- this.logger = logger.child({
9
- className: RegistryExtensionRepository_1.name
10
- });
11
- }
12
- async createExtension(publisherId, name) {
13
- this.logger.trace('createExtension with publisherId [%s], name [%s]', publisherId, name);
14
- const result = await this.model.create({
15
- publisherId,
16
- name,
17
- manifest: null,
18
- uuid: '',
19
- releases: null,
20
- extensionSlug: ''
21
- });
22
- return result;
23
- }
24
- async updateExtensionName(extensionSlug, name) {
25
- this.logger.trace('updateExtensionName with extension [%s], name [%s]', extensionSlug, name);
26
- await this.model.update({
27
- extensionSlug
28
- }, {
29
- $set: {
30
- name
31
- }
32
- }, {
33
- upsert: true
34
- });
35
- return this.model.findOne({
36
- extensionSlug
37
- }).exec();
38
- }
39
- async updateExtension(extensionSlug, update) {
40
- this.logger.trace('updateExtension with extension [%s], update [%j]', extensionSlug, update);
41
- await this.model.update({
42
- extensionSlug
43
- }, {
44
- $set: update
45
- }, {
46
- upsert: true
47
- });
48
- return this.model.findOne({
49
- extensionSlug
50
- }).exec();
51
- }
52
- async deleteExtension(extensionSlug) {
53
- try {
54
- this.logger.trace('deleteExtension with extensionSlug [%s]', extensionSlug);
55
- const deleteRecord = await this.model.deleteOne({
56
- extensionSlug
57
- }).exec();
58
- return deleteRecord.acknowledged && deleteRecord.deletedCount === 1;
59
- } catch (err) {
60
- this.logger.error(err, 'delete account with payload [%s] failed due to [%o]', extensionSlug);
61
- return false;
62
- }
63
- }
64
- async extensionReleases(extensionSlug) {
65
- const extension = await this.findExtension(extensionSlug);
66
- return extension.releases;
67
- }
68
- // TODO: change param to IPublishRequest
69
- async publishExtension(request) {
70
- let extension = await this.model.findOne({
71
- extensionSlug: request.extensionSlug
72
- }).exec();
73
- const obj = pick(request, ['extensionSlug', 'name', 'description', 'publisher']);
74
- let manifest = {};
75
- try {
76
- manifest = JSON.parse(request.manifest);
77
- } catch (e) {}
78
- obj.type = get(manifest, 'extension.type');
79
- obj.activationEvents = manifest.activationEvents || [];
80
- if (!extension) {
81
- this.logger.debug('New extension created...');
82
- extension = await this.model.create(obj);
83
- }
84
- const release = {
85
- bundle: request.bundle,
86
- version: request.version,
87
- manifest: request.manifest,
88
- sourceMap: request.sourceMap,
89
- extensionSlug: request.extensionSlug,
90
- activationEvents: manifest.activationEvents
91
- };
92
- try {
93
- this.logger.trace('publishExtension with request [%j]', request);
94
- const releaseExists = await this.model.findOne({
95
- extensionSlug: request.extensionSlug,
96
- 'releases.version': request.version
97
- });
98
- if (!isEmpty(extension.releases) && releaseExists && !request.force) {
99
- this.logger.debug('Extension with same version already released. [%j]', request.force);
100
- throw new Error('Extension publish was failed: This version already released. Add `--force` flag.');
101
- } else {
102
- const releases = filter(extension.releases, record => record.version !== request.version).concat([release]);
103
- this.logger.trace('Release updates [%j]', releases);
104
- await this.model.update({
105
- extensionSlug: request.extensionSlug
106
- }, {
107
- $set: {
108
- ...obj,
109
- releases,
110
- version: request.version
111
- }
112
- }, {
113
- upsert: true
114
- });
115
- }
116
- return this.model.findOne({
117
- extensionSlug: request.extensionSlug
118
- }).exec();
119
- } catch (err) {
120
- this.logger.error(err, 'publishExtension was failed for request [%j] with error[%o]', request);
121
- throw new Error('Extension publish was failed');
122
- }
123
- }
124
- async findExtensions(first, query, local, remote, prioritizeExtensionIDs) {
125
- return this.model.find({}).exec();
126
- }
127
- async findExtension(extensionSlug, version) {
128
- const q = {
129
- extensionSlug
130
- };
131
- if (version) {
132
- q.version = version;
133
- }
134
- return this.model.findOne(q);
135
- }
136
- };
137
- RegistryExtensionRepository = RegistryExtensionRepository_1 = __decorate([injectable(), __param(0, inject('MongoDBConnection')), __param(1, inject('Logger')), __param(2, inject('MongoOptions')), __param(2, optional()), __metadata("design:paramtypes", [mongoose.Connection, Object, Object])], RegistryExtensionRepository);export{RegistryExtensionRepository};//# sourceMappingURL=registry-extension-repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-extension-repository.js","sources":["../../../src/store/repositories/registry-extension-repository.ts"],"sourcesContent":[null],"names":[],"mappings":"0YAGA,IAAA,6BAA0B;;;;;AAqCT,MAAA,MAAA,IAAA,KAAA,CAAA,oCAAuD,CAAA;;;;;;;AAMvD,IAAA,IAAA,CAAA,MAAA,CAAA,KAA6B,CAAA,kDAAkB,EAAA,WAAA,EAAA,IAAA,CAAA;UAAW,MAAA,GAAG,MAAA,IAAO,CAAA,KAAA,CAAA,MAAA,CAAA;AAAE,MAAA,WAAA;;;;;;;IAMtE,OAAe,MAAA;AAWf;QAMgB,mBAAQ,CAAA,aAAK,EAAA,IAAA,EAAA;;;;;;;;;;;;;;;;;;;;;AA6E7C,KAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +0,0 @@
1
- import { IRegistryExtension, IDataLoader } from 'common/server';
2
- export type IRegistryExtensionDataLoader = IDataLoader<IRegistryExtension>;