@gorgo/medusa-integration 0.0.2 → 0.0.3
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/.medusa/server/src/modules/integration/descriptor/define.d.ts +7 -0
- package/.medusa/server/src/modules/integration/descriptor/define.js +1 -1
- package/.medusa/server/src/modules/integration/descriptor/introspect.d.ts +1 -1
- package/.medusa/server/src/modules/integration/descriptor/introspect.js +3 -3
- package/.medusa/server/src/modules/integration/services/__tests__/integration-provider.unit.spec.js +2 -3
- package/.medusa/server/src/modules/integration/services/integration-module.d.ts +2 -2
- package/.medusa/server/src/modules/integration/services/integration-module.js +9 -10
- package/.medusa/server/src/modules/integration/utils/abstract-integration-provider.d.ts +5 -8
- package/.medusa/server/src/modules/integration/utils/abstract-integration-provider.js +4 -5
- package/package.json +1 -1
|
@@ -48,6 +48,8 @@ export type IntegrationDescriptorInput = DescriptorBase & CrossSectionRules & {
|
|
|
48
48
|
/** Composed from `options` by `defineIntegration` — for `z.infer`, defaults, full validation. */
|
|
49
49
|
optionsSchema: z.ZodType<any>;
|
|
50
50
|
sections: readonly IntegrationSection[];
|
|
51
|
+
/** Optional connection check; runs against the resolved options. Omit if unsupported. */
|
|
52
|
+
testConnection?(ctx: TestConnectionContext): Promise<TestConnectionResult>;
|
|
51
53
|
};
|
|
52
54
|
export type IntegrationDescriptor = IntegrationDescriptorInput & {
|
|
53
55
|
/** Stamped by the registry from the provider's `static identifier`. */
|
|
@@ -66,8 +68,13 @@ export type IntegrationDescriptor = IntegrationDescriptorInput & {
|
|
|
66
68
|
export declare function defineIntegration<const O extends Record<string, OptionDef>>(input: DescriptorBase & CrossSectionRules & {
|
|
67
69
|
options: O;
|
|
68
70
|
sections: readonly IntegrationSection[];
|
|
71
|
+
/** Connection check with fully-typed, resolved options. */
|
|
72
|
+
testConnection?(ctx: {
|
|
73
|
+
options: Settings<O>;
|
|
74
|
+
}): Promise<TestConnectionResult>;
|
|
69
75
|
}): DescriptorBase & CrossSectionRules & {
|
|
70
76
|
options: O;
|
|
71
77
|
optionsSchema: z.ZodType<Settings<O>>;
|
|
72
78
|
sections: readonly IntegrationSection[];
|
|
79
|
+
testConnection?(ctx: TestConnectionContext): Promise<TestConnectionResult>;
|
|
73
80
|
};
|
|
@@ -28,4 +28,4 @@ function defineIntegration(input) {
|
|
|
28
28
|
const optionsSchema = zod_1.z.object(shape);
|
|
29
29
|
return { ...input, optionsSchema };
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vZGVzY3JpcHRvci9kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0VBLDhDQTJCQztBQW5HRCw0Q0FBc0M7QUFNN0Isa0ZBTkEsT0FBQyxPQU1BO0FBSFYsMkNBQXlDO0FBNkR6Qzs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQy9CLEtBTUc7SUFRSCxnRUFBZ0U7SUFDaEUsS0FBSyxNQUFNLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsS0FBSyxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzdELE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxPQUFPLENBQUMsRUFBRSxnQ0FBZ0MsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUM5RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLEtBQUssR0FBOEIsRUFBRSxDQUFBO0lBQzNDLEtBQUssTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBQSx1QkFBVyxFQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25GLE1BQU0sYUFBYSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFzQyxDQUFBO0lBQzFFLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQTtBQUNwQyxDQUFDIn0=
|
|
@@ -2,4 +2,4 @@ import type { IntegrationDescriptor } from "./define";
|
|
|
2
2
|
import type { UiField, UiSection, UiDescriptor } from "../../../types";
|
|
3
3
|
export type { UiField, UiSection, UiDescriptor };
|
|
4
4
|
export declare function secretFieldNames(descriptor: Pick<IntegrationDescriptor, "options">): string[];
|
|
5
|
-
export declare function introspectDescriptor(descriptor: IntegrationDescriptor
|
|
5
|
+
export declare function introspectDescriptor(descriptor: IntegrationDescriptor): UiDescriptor;
|
|
@@ -48,7 +48,7 @@ function secretFieldNames(descriptor) {
|
|
|
48
48
|
.filter(([, def]) => def.secret === true)
|
|
49
49
|
.map(([name]) => name);
|
|
50
50
|
}
|
|
51
|
-
function introspectDescriptor(descriptor
|
|
51
|
+
function introspectDescriptor(descriptor) {
|
|
52
52
|
return {
|
|
53
53
|
module: descriptor.module,
|
|
54
54
|
identifier: descriptor.identifier,
|
|
@@ -59,8 +59,8 @@ function introspectDescriptor(descriptor, hasTestConnection = false) {
|
|
|
59
59
|
docsUrl: descriptor.docsUrl,
|
|
60
60
|
supportsMultipleInstances: descriptor.supportsMultipleInstances ?? false,
|
|
61
61
|
preferredLayoutId: descriptor.preferredLayoutId ?? "core:single-column",
|
|
62
|
-
hasTestConnection,
|
|
62
|
+
hasTestConnection: typeof descriptor.testConnection === "function",
|
|
63
63
|
sections: descriptor.sections.map((s) => introspectSection(s, descriptor.options)),
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50cm9zcGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uL2Rlc2NyaXB0b3IvaW50cm9zcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1EQSw0Q0FJQztBQUVELG9EQWNDO0FBL0RELFNBQVMsVUFBVSxDQUFDLEdBQWM7SUFDaEMsSUFBSSxHQUFHLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQTtJQUNuQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFBO1FBQy9CLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUE7UUFDOUIsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLFFBQVEsQ0FBQTtRQUM1QixLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFBO1FBQzFCLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7UUFDeEIsT0FBTyxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUE7SUFDeEIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxJQUFZLEVBQUUsR0FBYztJQUNuRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxLQUFLLElBQUk7UUFDM0IsZ0dBQWdHO1FBQ2hHLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxLQUFLLFNBQVM7UUFDNUQsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ2hCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVztRQUM1QixPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUks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
|
package/.medusa/server/src/modules/integration/services/__tests__/integration-provider.unit.spec.js
CHANGED
|
@@ -16,11 +16,10 @@ const mkProvider = (identifier, instanceId, withTest = false) => {
|
|
|
16
16
|
displayName: `${identifier}.name`,
|
|
17
17
|
options: {},
|
|
18
18
|
sections: [],
|
|
19
|
+
...(withTest ? { testConnection: async () => ({ status: "passed" }) } : {}),
|
|
19
20
|
};
|
|
20
21
|
},
|
|
21
22
|
};
|
|
22
|
-
if (withTest)
|
|
23
|
-
p.testConnection = async () => ({ status: "passed" });
|
|
24
23
|
return p;
|
|
25
24
|
};
|
|
26
25
|
// Mimics the awilix cradle: container keys are `int_<identifier>[_<id>]`.
|
|
@@ -76,4 +75,4 @@ const makeRegistry = () => new integration_provider_1.default({
|
|
|
76
75
|
(0, globals_1.expect)(ds.find((d) => d.identifier === "tkassa").instanceId).toBe(null);
|
|
77
76
|
});
|
|
78
77
|
});
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tcHJvdmlkZXIudW5pdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vc2VydmljZXMvX190ZXN0c19fL2ludGVncmF0aW9uLXByb3ZpZGVyLnVuaXQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUFvRDtBQUNwRCxtRkFBZ0U7QUFFaEUsMkZBQTJGO0FBQzNGLE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBa0IsRUFBRSxVQUF5QixFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsRUFBRTtJQUNyRixNQUFNLENBQUMsR0FBUTtRQUNiLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVO1FBQy9CLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVO1FBQy9CLElBQUksVUFBVTtZQUNaLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFdBQVcsRUFBRSxHQUFHLFVBQVUsT0FBTztnQkFDakMsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQzVFLENBQUE7UUFDSCxDQUFDO0tBQ0YsQ0FBQTtJQUNELE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQyxDQUFBO0FBRUQsMEVBQTBFO0FBQzFFLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUN4QixJQUFJLDhCQUEwQixDQUFDO0lBQzdCLFVBQVUsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztJQUN0QyxjQUFjLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFB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
|
|
@@ -96,8 +96,8 @@ export default class IntegrationModuleService extends IntegrationModuleService_b
|
|
|
96
96
|
*/
|
|
97
97
|
listIntegrationsOverview(): Promise<IntegrationOverviewItem[]>;
|
|
98
98
|
/**
|
|
99
|
-
* Run the
|
|
100
|
-
* Delegates to the
|
|
99
|
+
* Run the connection test against the currently-resolved settings.
|
|
100
|
+
* Delegates to the descriptor's `testConnection` (if it declares one).
|
|
101
101
|
*/
|
|
102
102
|
runTestConnection(providerId: string): Promise<TestConnectionResult>;
|
|
103
103
|
/** The configured passphrase (any non-empty string). Throws if missing. */
|
|
@@ -24,7 +24,7 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
|
|
|
24
24
|
// ── descriptors (sourced from registered integration-providers) ──────────────
|
|
25
25
|
/** UI descriptors for every registration (one per instance). */
|
|
26
26
|
listUiDescriptors() {
|
|
27
|
-
return this.providerService_.listRegistrations().map((r) => (0, introspect_1.introspectDescriptor)({ ...r.provider.descriptor, identifier: r.identifier, instanceId: r.instanceId }
|
|
27
|
+
return this.providerService_.listRegistrations().map((r) => (0, introspect_1.introspectDescriptor)({ ...r.provider.descriptor, identifier: r.identifier, instanceId: r.instanceId }));
|
|
28
28
|
}
|
|
29
29
|
/** Stamped descriptor (schema + identifier/instanceId) for one `provider_id`. */
|
|
30
30
|
getProviderDescriptor(providerId) {
|
|
@@ -38,7 +38,7 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
|
|
|
38
38
|
const r = this.providerService_.getRegistration(providerId);
|
|
39
39
|
if (!r)
|
|
40
40
|
return undefined;
|
|
41
|
-
return (0, introspect_1.introspectDescriptor)({ ...r.provider.descriptor, identifier: r.identifier, instanceId: r.instanceId }
|
|
41
|
+
return (0, introspect_1.introspectDescriptor)({ ...r.provider.descriptor, identifier: r.identifier, instanceId: r.instanceId });
|
|
42
42
|
}
|
|
43
43
|
/** Whether a provider is registered under this `provider_id` (container key). */
|
|
44
44
|
hasProviderId(providerId) {
|
|
@@ -100,7 +100,7 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
|
|
|
100
100
|
display_name: d.displayName,
|
|
101
101
|
icon: d.icon,
|
|
102
102
|
supports_multiple_instances: d.supportsMultipleInstances ?? false,
|
|
103
|
-
has_test_connection: typeof
|
|
103
|
+
has_test_connection: typeof d.testConnection === "function",
|
|
104
104
|
is_configured: !!row,
|
|
105
105
|
is_enabled: row?.is_enabled ?? false,
|
|
106
106
|
is_complete: row ? this.isComplete(row) : false,
|
|
@@ -109,8 +109,8 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
|
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
/**
|
|
112
|
-
* Run the
|
|
113
|
-
* Delegates to the
|
|
112
|
+
* Run the connection test against the currently-resolved settings.
|
|
113
|
+
* Delegates to the descriptor's `testConnection` (if it declares one).
|
|
114
114
|
*/
|
|
115
115
|
async runTestConnection(providerId) {
|
|
116
116
|
let provider;
|
|
@@ -120,7 +120,8 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
|
|
|
120
120
|
catch {
|
|
121
121
|
return { status: "failed", message: `Unknown integration provider "${providerId}"` };
|
|
122
122
|
}
|
|
123
|
-
|
|
123
|
+
const testConnection = provider.descriptor.testConnection;
|
|
124
|
+
if (!testConnection) {
|
|
124
125
|
return { status: "skipped", message: "No test configured" };
|
|
125
126
|
}
|
|
126
127
|
const resolved = await this.getResolvedOptions(provider.getIdentifier(), provider.getInstanceId());
|
|
@@ -128,9 +129,7 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
|
|
|
128
129
|
return { status: "failed", message: "Not configured" };
|
|
129
130
|
}
|
|
130
131
|
try {
|
|
131
|
-
return await
|
|
132
|
-
options: resolved.options,
|
|
133
|
-
});
|
|
132
|
+
return await testConnection({ options: resolved.options });
|
|
134
133
|
}
|
|
135
134
|
catch (e) {
|
|
136
135
|
return { status: "failed", message: e?.message ?? "Test failed" };
|
|
@@ -215,4 +214,4 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
|
|
|
215
214
|
}
|
|
216
215
|
}
|
|
217
216
|
exports.default = IntegrationModuleService;
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vc2VydmljZXMvaW50ZWdyYXRpb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXlEO0FBRXpELHdFQUErQztBQUMvQyxxQ0FBb0M7QUFDcEMsdUNBQXNFO0FBQ3RFLGtGQUErRDtBQUUvRCx5REFBb0c7QUFDcEcscURBQTZEO0FBQzdELG9DQUFpRjtBQWNqRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUE7QUFFM0IsTUFBcUIsd0JBQXlCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ2xFLFdBQVcsRUFBWCxxQkFBVztDQUNaLENBQUM7SUFNQSxZQUFZLElBQTBCO1FBQ3BDLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBSlgsV0FBTSxHQUFHLElBQUksR0FBRyxFQUFnRSxDQUFBO1FBS3hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUE7UUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsK0JBQXVCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDckQsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixnRUFBZ0U7SUFDaEUsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN6RCxJQUFBLGlDQUFvQixFQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQ3ZHLENBQUE7SUFDSCxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLHFCQUFxQixDQUFDLFVBQWtCO1FBQ3RDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDM0QsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQTtRQUN4QixPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQ3pGLENBQUM7SUFFRCwyREFBMkQ7SUFDM0QsdUJBQXVCLENBQUMsVUFBa0I7UUFDeEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMzRCxJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFBO1FBQ3hCLE9BQU8sSUFBQSxpQ0FBb0IsRUFBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFBO0lBQy9HLENBQUM7SUFFRCxpRkFBaUY7SUFDakYsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFrQjtRQUN2QyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN0RixPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxVQUFrQjtRQUN0QyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN0RCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLE1BQVc7UUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNqRSxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sS0FBSyxDQUFBO1FBQzdCLE9BQU8sSUFBQSwrQkFBb0IsRUFBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ3RFLENBQUM7SUFFRCx3RkFBd0Y7SUFDOUUsY0FBYyxDQUFDLE1BQVc7UUFDbEMsTUFBTSxPQUFPLEdBQUcsQ0FBRSxNQUFNLENBQUMsT0FBbUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNuRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBQSw2QkFBZ0IsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQ2pFLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUE7UUFDbEQsT0FBTyxJQUFBLDhCQUFvQixFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDakUsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyx3QkFBd0I7UUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM5RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNwQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQTtZQUMvQixNQUFNLEdBQUcsR0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNoQyxPQUFPO2dCQUNMLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRztnQkFDbEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO2dCQUN4QixXQUFXLEVBQUUsQ0FBQyxDQUFDLFVBQVU7Z0JBQ3pCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtnQkFDaEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxXQUFXO2dCQUMzQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLHlCQUF5QixJQUFJLEtBQUs7Z0JBQ2pFLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFDLGNBQWMsS0FBSyxVQUFVO2dCQUMzRCxhQUFhLEVBQUUsQ0FBQyxDQUFDLEdBQUc7Z0JBQ3BCLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxJQUFJLEtBQUs7Z0JBQ3BDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQy9DLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsSUFBSSxJQUFJO2FBQ2hELENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBa0I7UUFDeEMsSUFBSSxRQUFRLENBQUE7UUFDWixJQUFJLENBQUM7WUFDSCxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUM1RCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGlDQUFpQyxVQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ3RGLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQTtRQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLENBQUE7UUFDN0QsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtRQUNsRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQTtRQUN4RCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLGNBQWMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUM1RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsQ0FBQTtRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVELGdGQUFnRjtJQUNoRiwyRUFBMkU7SUFDakUsVUFBVTtRQUNsQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQTtRQUN2QyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQTtRQUNyQyxNQUFNLElBQUksS0FBSyxDQUNiLHVGQUF1RjtZQUNyRiwyRUFBMkUsQ0FDOUUsQ0FBQTtJQUNILENBQUM7SUFFRCxzRUFBc0U7SUFDNUQsTUFBTTtRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUEsa0JBQVMsRUFBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCw4RkFBOEY7SUFDOUYsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN6RCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBQSw2QkFBZ0IsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ3ZELENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FDZixVQUFpQyxFQUNqQyxNQUErQjtRQUUvQixNQUFNLFVBQVUsR0FBRyxJQUFBLDZCQUFnQixFQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQy9DLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUE7UUFDakQsT0FBTyxJQUFBLDhCQUFvQixFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixtRkFBbUY7SUFDbkYsaUJBQWlCLENBQUMsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDbkIsT0FBTTtRQUNSLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixVQUFrQixFQUNsQixVQUEwQjtRQUUxQixNQUFNLFVBQVUsR0FBRyw4QkFBMEIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQ3pFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUFFLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQTtRQUV2RCwrRUFBK0U7UUFDL0Usa0ZBQWtGO1FBQ2xGLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkNBQTJDLFVBQVUsS0FBSztnQkFDeEQsK0VBQStFLENBQ2xGLENBQUE7UUFDSCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFdEQsSUFBSSxLQUFLLEdBQTJCLElBQUksQ0FBQTtRQUN4Qyx1RkFBdUY7UUFDdkYsdUZBQXVGO1FBQ3ZGLDZFQUE2RTtRQUM3RSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBRSxDQUFBO1lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDN0MsSUFBSSxJQUFBLCtCQUFvQixFQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxrRUFBa0U7Z0JBQ2xFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUM1RCxLQUFLLEdBQUc7b0JBQ04sT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLE1BQU0sQ0FBQyxJQUFnQyxDQUFDLENBQUMsQ0FBQyxTQUFTO29CQUM5RSxJQUFJLEVBQUU7d0JBQ0osV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO3dCQUMvQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJO3dCQUM3QixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7cUJBQzlCO2lCQUNGLENBQUE7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDLENBQUE7UUFDNUUsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0NBQ0Y7QUFsT0QsMkNBa09DIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IntegrationDescriptorInput
|
|
1
|
+
import type { IntegrationDescriptorInput } from "../descriptor/define";
|
|
2
2
|
/**
|
|
3
3
|
* Base class AND contract for integration-providers. A plugin ships a subclass and
|
|
4
4
|
* registers it via `ModuleProvider(INTEGRATION_MODULE, { services: [MyProvider] })`.
|
|
@@ -6,12 +6,11 @@ import type { IntegrationDescriptorInput, TestConnectionContext, TestConnectionR
|
|
|
6
6
|
* export class TkassaIntegrationProvider extends AbstractIntegrationProvider {
|
|
7
7
|
* static identifier = "tkassa"
|
|
8
8
|
* get descriptor() { return tkassaDescriptor }
|
|
9
|
-
* async testConnection({ credentials }) { ... }
|
|
10
9
|
* }
|
|
11
10
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* The whole provider contract — options, sections, cross-section `validate` and
|
|
12
|
+
* `testConnection` — is declared in the descriptor (`defineIntegration`); the class only
|
|
13
|
+
* pairs a `static identifier` with that descriptor.
|
|
15
14
|
*
|
|
16
15
|
* `static identifier` becomes the descriptor's `identifier` (settings are stored/resolved
|
|
17
16
|
* under it); authors don't repeat it in the descriptor.
|
|
@@ -31,9 +30,7 @@ export declare abstract class AbstractIntegrationProvider {
|
|
|
31
30
|
getIdentifier(): string;
|
|
32
31
|
/** This instance's id (the registration `id`), or null for the single/default instance. */
|
|
33
32
|
getInstanceId(): string | null;
|
|
34
|
-
/**
|
|
33
|
+
/** This plugin's descriptor (options + sections + `validate` + `testConnection`). */
|
|
35
34
|
abstract get descriptor(): IntegrationDescriptorInput;
|
|
36
|
-
/** Optional connection check; omit if the plugin can't quickly verify credentials. */
|
|
37
|
-
testConnection?(ctx: TestConnectionContext): Promise<TestConnectionResult>;
|
|
38
35
|
}
|
|
39
36
|
export default AbstractIntegrationProvider;
|
|
@@ -8,12 +8,11 @@ exports.AbstractIntegrationProvider = void 0;
|
|
|
8
8
|
* export class TkassaIntegrationProvider extends AbstractIntegrationProvider {
|
|
9
9
|
* static identifier = "tkassa"
|
|
10
10
|
* get descriptor() { return tkassaDescriptor }
|
|
11
|
-
* async testConnection({ credentials }) { ... }
|
|
12
11
|
* }
|
|
13
12
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* The whole provider contract — options, sections, cross-section `validate` and
|
|
14
|
+
* `testConnection` — is declared in the descriptor (`defineIntegration`); the class only
|
|
15
|
+
* pairs a `static identifier` with that descriptor.
|
|
17
16
|
*
|
|
18
17
|
* `static identifier` becomes the descriptor's `identifier` (settings are stored/resolved
|
|
19
18
|
* under it); authors don't repeat it in the descriptor.
|
|
@@ -39,4 +38,4 @@ class AbstractIntegrationProvider {
|
|
|
39
38
|
}
|
|
40
39
|
exports.AbstractIntegrationProvider = AbstractIntegrationProvider;
|
|
41
40
|
exports.default = AbstractIntegrationProvider;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaW50ZWdyYXRpb24tcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi91dGlscy9hYnN0cmFjdC1pbnRlZ3JhdGlvbi1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFzQiwyQkFBMkI7SUFNL0MsWUFBWSxVQUFvQixFQUFFLFFBQWtCLEVBQUUsVUFBMEI7UUFDOUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFBO0lBQ3ZDLENBQUM7SUFFRCw4RUFBOEU7SUFDOUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFpQyxJQUFpQixDQUFDO0lBRTFFLGFBQWE7UUFDWCxPQUFRLElBQUksQ0FBQyxXQUFrRCxDQUFDLFVBQVUsQ0FBQTtJQUM1RSxDQUFDO0lBRUQsMkZBQTJGO0lBQzNGLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUE7SUFDekIsQ0FBQztDQUlGO0FBeEJELGtFQXdCQztBQUVELGtCQUFlLDJCQUEyQixDQUFBIn0=
|