@adminide-stack/marketplace-module-server 12.0.4-alpha.95 → 13.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/containers/module.d.ts +4 -4
- package/lib/containers/module.d.ts.map +1 -1
- package/lib/containers/module.js +12 -7
- package/lib/containers/module.js.map +1 -1
- package/lib/dataloaders/index.d.ts +1 -1
- package/lib/dataloaders/index.d.ts.map +1 -1
- package/lib/dataloaders/publisher-data-loader.d.ts +6 -0
- package/lib/dataloaders/publisher-data-loader.d.ts.map +1 -0
- package/lib/demo/test-graphql-examples.d.ts +73 -0
- package/lib/demo/test-graphql-examples.d.ts.map +1 -0
- package/lib/graphql/resolvers/form-templates-resolver.d.ts +220 -0
- package/lib/graphql/resolvers/form-templates-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/form-templates-resolver.js +170 -0
- package/lib/graphql/resolvers/form-templates-resolver.js.map +1 -0
- package/lib/graphql/resolvers/gallery-resolver.d.ts +15 -0
- package/lib/graphql/resolvers/gallery-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/gallery-resolver.js +35 -0
- package/lib/graphql/resolvers/gallery-resolver.js.map +1 -0
- package/lib/graphql/resolvers/index.d.ts +247 -1
- package/lib/graphql/resolvers/index.d.ts.map +1 -1
- package/lib/graphql/resolvers/index.js +1 -1
- package/lib/graphql/resolvers/installed-extension-resolver.d.ts.map +1 -1
- package/lib/graphql/resolvers/installed-extension-resolver.js +161 -35
- package/lib/graphql/resolvers/installed-extension-resolver.js.map +1 -1
- package/lib/graphql/resolvers/marketplace-form-resolver.d.ts +13 -0
- package/lib/graphql/resolvers/marketplace-form-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/marketplace-form-resolver.js +90 -0
- package/lib/graphql/resolvers/marketplace-form-resolver.js.map +1 -0
- package/lib/graphql/resolvers/publisher-analytics-resolver.d.ts +14 -0
- package/lib/graphql/resolvers/publisher-analytics-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/publisher-analytics-resolver.js +221 -0
- package/lib/graphql/resolvers/publisher-analytics-resolver.js.map +1 -0
- package/lib/graphql/resolvers/publisher-resolver.d.ts +5 -0
- package/lib/graphql/resolvers/publisher-resolver.d.ts.map +1 -0
- package/lib/graphql/resolvers/publisher-resolver.js +183 -0
- package/lib/graphql/resolvers/publisher-resolver.js.map +1 -0
- package/lib/graphql/resolvers/registry-extension-resolver.d.ts.map +1 -1
- package/lib/graphql/resolvers/registry-extension-resolver.js +34 -167
- package/lib/graphql/resolvers/registry-extension-resolver.js.map +1 -1
- package/lib/graphql/schemas/extension-pricing.graphql +546 -0
- package/lib/graphql/schemas/extension-pricing.graphql.js +1 -0
- package/lib/graphql/schemas/extension-pricing.graphql.js.map +1 -0
- package/lib/graphql/schemas/extension-registry.graphql +91 -58
- package/lib/graphql/schemas/extension-registry.graphql.js +1 -1
- package/lib/graphql/schemas/form-templates.graphql +269 -0
- package/lib/graphql/schemas/form-templates.graphql.js +1 -0
- package/lib/graphql/schemas/form-templates.graphql.js.map +1 -0
- package/lib/graphql/schemas/gallery-schema.graphql +247 -0
- package/lib/graphql/schemas/gallery-schema.graphql.js +1 -0
- package/lib/graphql/schemas/gallery-schema.graphql.js.map +1 -0
- package/lib/graphql/schemas/index.d.ts.map +1 -1
- package/lib/graphql/schemas/index.js +3 -1
- package/lib/graphql/schemas/index.js.map +1 -1
- package/lib/graphql/schemas/installed-extension.graphql +37 -7
- package/lib/graphql/schemas/installed-extension.graphql.js +1 -1
- package/lib/graphql/schemas/publisher-analytics.graphql +305 -0
- package/lib/graphql/schemas/publisher-analytics.graphql.js +1 -0
- package/lib/graphql/schemas/publisher-analytics.graphql.js.map +1 -0
- package/lib/graphql/schemas/publisher.graphql +584 -0
- package/lib/graphql/schemas/publisher.graphql.js +1 -0
- package/lib/graphql/schemas/publisher.graphql.js.map +1 -0
- package/lib/graphql/schemas/service.graphql +15 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.d.ts +20 -0
- package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.d.ts.map +1 -0
- package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.js +61 -0
- package/lib/migrations/dbMigrations/DropOldPublisherIndexMigration.js.map +1 -0
- package/lib/migrations/index.d.ts +2 -0
- package/lib/migrations/index.d.ts.map +1 -0
- package/lib/module.d.ts +1 -1
- package/lib/module.d.ts.map +1 -1
- package/lib/module.js +11 -26
- package/lib/module.js.map +1 -1
- package/lib/services/extension-gallery-repository.d.ts +17 -0
- package/lib/services/extension-gallery-repository.d.ts.map +1 -0
- package/lib/services/extension-gallery-repository.js +192 -0
- package/lib/services/extension-gallery-repository.js.map +1 -0
- package/lib/services/extension-gallery-service-new.d.ts +39 -0
- package/lib/services/extension-gallery-service-new.d.ts.map +1 -0
- package/lib/services/extension-gallery-service.d.ts +30 -0
- package/lib/services/extension-gallery-service.d.ts.map +1 -0
- package/lib/services/extension-gallery-service.js +334 -0
- package/lib/services/extension-gallery-service.js.map +1 -0
- package/lib/services/index.d.ts +4 -1
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/installed-extension-service-ext.d.ts +5 -2
- package/lib/services/installed-extension-service-ext.d.ts.map +1 -1
- package/lib/services/installed-extension-service-ext.js +364 -117
- package/lib/services/installed-extension-service-ext.js.map +1 -1
- package/lib/services/installed-extension-service.d.ts +30 -13
- package/lib/services/installed-extension-service.d.ts.map +1 -1
- package/lib/services/installed-extension-service.js +301 -68
- package/lib/services/installed-extension-service.js.map +1 -1
- package/lib/services/installed-extension-service.test.d.ts +0 -1
- package/lib/services/publisher-analytics-service.d.ts +128 -0
- package/lib/services/publisher-analytics-service.d.ts.map +1 -0
- package/lib/services/publisher-event-service.d.ts +48 -0
- package/lib/services/publisher-event-service.d.ts.map +1 -0
- package/lib/services/publisher-event-service.js +296 -0
- package/lib/services/publisher-event-service.js.map +1 -0
- package/lib/services/publisher-service-context.d.ts +1 -0
- package/lib/services/publisher-service-context.d.ts.map +1 -0
- package/lib/services/publisher-service.d.ts +62 -0
- package/lib/services/publisher-service.d.ts.map +1 -0
- package/lib/services/publisher-service.js +135 -0
- package/lib/services/publisher-service.js.map +1 -0
- package/lib/store/models/index.d.ts +1 -1
- package/lib/store/models/index.d.ts.map +1 -1
- package/lib/store/models/installed-extension-model.d.ts.map +1 -1
- package/lib/store/models/installed-extension-model.js +17 -45
- package/lib/store/models/installed-extension-model.js.map +1 -1
- package/lib/store/models/publisher-event-model.d.ts +11 -0
- package/lib/store/models/publisher-event-model.d.ts.map +1 -0
- package/lib/store/models/publisher-model.d.ts +5 -0
- package/lib/store/models/publisher-model.d.ts.map +1 -0
- package/lib/store/models/publisher-model.js +117 -0
- package/lib/store/models/publisher-model.js.map +1 -0
- package/lib/store/models/publisher-stats-model.d.ts +1 -0
- package/lib/store/models/publisher-stats-model.d.ts.map +1 -0
- package/lib/store/repositories/index.d.ts +1 -1
- package/lib/store/repositories/index.d.ts.map +1 -1
- package/lib/store/repositories/installed-extension-repository.d.ts +17 -11
- package/lib/store/repositories/installed-extension-repository.d.ts.map +1 -1
- package/lib/store/repositories/installed-extension-repository.js +123 -75
- package/lib/store/repositories/installed-extension-repository.js.map +1 -1
- package/lib/store/repositories/publisher-analytics-repository.d.ts +1 -0
- package/lib/store/repositories/publisher-analytics-repository.d.ts.map +1 -0
- package/lib/store/repositories/publisher-repository.d.ts +19 -0
- package/lib/store/repositories/publisher-repository.d.ts.map +1 -0
- package/lib/store/repositories/publisher-repository.js +87 -0
- package/lib/store/repositories/publisher-repository.js.map +1 -0
- package/lib/templates/constants/DB_COLL_NAMES.ts.template +1 -1
- package/lib/templates/constants/SERVER_TYPES.ts.template +8 -5
- package/lib/templates/repositories/ExtensionGalleryRepository.ts.template +44 -0
- package/lib/templates/repositories/InstalledExtensionRepository.ts.template +19 -14
- package/lib/templates/repositories/MarketplacePublisherRepository.ts.template +24 -0
- package/lib/templates/repositories/RegistryExtensionRepository.ts.template +2 -2
- package/lib/templates/services/ExtensionGalleryDataLoader.ts.template +2 -0
- package/lib/templates/services/ExtensionGalleryService.ts.template +79 -0
- package/lib/templates/services/InstalledExtensionService.ts.template +63 -32
- package/lib/templates/services/MarketplacePublisherService.ts.template +51 -0
- package/lib/templates/services/PublisherDataLoader.ts.template +3 -0
- package/lib/templates/services/PublisherEventService.ts.template +56 -0
- package/lib/templates/services/RegistryExtensionService.ts.template +46 -2
- package/lib/tests/extension-integration.test.d.ts +0 -1
- package/lib/tests/install-extension-graphql.test.d.ts +2 -0
- package/lib/tests/install-extension-graphql.test.d.ts.map +1 -0
- package/lib/utils/publisherValidation.d.ts +23 -0
- package/lib/utils/publisherValidation.d.ts.map +1 -0
- package/lib/utils/publisherValidation.js +144 -0
- package/lib/utils/publisherValidation.js.map +1 -0
- package/package.json +13 -9
- package/lib/constants/extension-events.d.ts +0 -136
- package/lib/constants/extension-events.d.ts.map +0 -1
- package/lib/dataloaders/registry-extension-data-loader.d.ts +0 -6
- package/lib/dataloaders/registry-extension-data-loader.d.ts.map +0 -1
- package/lib/dataloaders/registry-extension-data-loader.js +0 -6
- package/lib/dataloaders/registry-extension-data-loader.js.map +0 -1
- package/lib/graphql/schemas/service.graphql.js +0 -1
- package/lib/graphql/schemas/service.graphql.js.map +0 -1
- package/lib/services/extension-service.d.ts +0 -42
- package/lib/services/extension-service.d.ts.map +0 -1
- package/lib/services/extension-service.js +0 -60
- package/lib/services/extension-service.js.map +0 -1
- package/lib/store/models/registry-extension-model.d.ts +0 -5
- package/lib/store/models/registry-extension-model.d.ts.map +0 -1
- package/lib/store/models/registry-extension-model.js +0 -83
- package/lib/store/models/registry-extension-model.js.map +0 -1
- package/lib/store/repositories/registry-extension-repository.d.ts +0 -54
- package/lib/store/repositories/registry-extension-repository.d.ts.map +0 -1
- package/lib/store/repositories/registry-extension-repository.js +0 -137
- package/lib/store/repositories/registry-extension-repository.js.map +0 -1
- package/lib/templates/services/RegistryExtensionDataLoader.ts.template +0 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adminide-stack/marketplace-module-server",
|
|
3
|
-
"version": "
|
|
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": "
|
|
24
|
+
"@adminide-stack/extension-api": "13.0.1-alpha.0",
|
|
25
25
|
"nanoid": "^5.1.5"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"common": "
|
|
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/
|
|
46
|
-
"./${libDir}/templates/services/
|
|
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/
|
|
50
|
-
"./${libDir}/templates/repositories/
|
|
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": "
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|