@gorgo/medusa-integration 0.0.1 → 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.
Files changed (37) hide show
  1. package/.medusa/server/src/admin/index.js +15 -23
  2. package/.medusa/server/src/admin/index.mjs +15 -23
  3. package/.medusa/server/src/api/admin/integrations/_helpers.js +1 -3
  4. package/.medusa/server/src/jobs/test-integration-connections.js +2 -2
  5. package/.medusa/server/src/modules/integration/descriptor/__tests__/introspect.unit.spec.js +8 -8
  6. package/.medusa/server/src/modules/integration/descriptor/__tests__/validate.unit.spec.js +2 -2
  7. package/.medusa/server/src/modules/integration/descriptor/define.d.ts +9 -3
  8. package/.medusa/server/src/modules/integration/descriptor/define.js +1 -1
  9. package/.medusa/server/src/modules/integration/descriptor/introspect.d.ts +1 -1
  10. package/.medusa/server/src/modules/integration/descriptor/introspect.js +7 -8
  11. package/.medusa/server/src/modules/integration/loaders/load-providers.js +58 -1
  12. package/.medusa/server/src/modules/integration/migrations/Migration20260716110756.d.ts +5 -0
  13. package/.medusa/server/src/modules/integration/migrations/Migration20260716110756.js +16 -0
  14. package/.medusa/server/src/modules/integration/migrations/Migration20260716132041.d.ts +5 -0
  15. package/.medusa/server/src/modules/integration/migrations/Migration20260716132041.js +14 -0
  16. package/.medusa/server/src/modules/integration/models/integration.d.ts +17 -5
  17. package/.medusa/server/src/modules/integration/models/integration.js +4 -9
  18. package/.medusa/server/src/modules/integration/services/__tests__/integration-provider.unit.spec.js +19 -18
  19. package/.medusa/server/src/modules/integration/services/integration-module.d.ts +24 -15
  20. package/.medusa/server/src/modules/integration/services/integration-module.js +20 -22
  21. package/.medusa/server/src/modules/integration/services/integration-provider.d.ts +11 -11
  22. package/.medusa/server/src/modules/integration/services/integration-provider.js +17 -17
  23. package/.medusa/server/src/modules/integration/utils/abstract-integration-provider.d.ts +8 -11
  24. package/.medusa/server/src/modules/integration/utils/abstract-integration-provider.js +6 -7
  25. package/.medusa/server/src/modules/integration/utils/integration.d.ts +21 -0
  26. package/.medusa/server/src/modules/integration/utils/integration.js +23 -0
  27. package/.medusa/server/src/types/http/integration/admin/entities.d.ts +2 -5
  28. package/.medusa/server/src/types/integration/common.d.ts +8 -11
  29. package/.medusa/server/src/workflows/integration/steps/apply-integration-section.d.ts +0 -1
  30. package/.medusa/server/src/workflows/integration/steps/apply-integration-section.js +1 -5
  31. package/.medusa/server/src/workflows/integration/steps/run-test-connection.js +1 -3
  32. package/.medusa/server/src/workflows/integration/steps/set-integration-enabled.d.ts +1 -4
  33. package/.medusa/server/src/workflows/integration/steps/upsert-integration-record.d.ts +0 -1
  34. package/.medusa/server/src/workflows/integration/steps/upsert-integration-record.js +1 -1
  35. package/.medusa/server/src/workflows/integration/workflows/set-integration-enabled.d.ts +1 -4
  36. package/.medusa/server/src/workflows/integration/workflows/upsert-integration.js +1 -2
  37. package/package.json +10 -3
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260716132041 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260716132041 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "integration" drop column if exists "options_version", drop column if exists "last_test_at", drop column if exists "last_test_message";`);
8
+ }
9
+ async down() {
10
+ this.addSql(`alter table if exists "integration" add column if not exists "options_version" integer not null default 1, add column if not exists "last_test_at" timestamptz null, add column if not exists "last_test_message" text null;`);
11
+ }
12
+ }
13
+ exports.Migration20260716132041 = Migration20260716132041;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA3MTYxMzIwNDEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYwNzE2MTMyMDQxLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFxRTtBQUVyRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQywrSkFBK0osQ0FBQyxDQUFDO0lBQy9LLENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLDhOQUE4TixDQUFDLENBQUM7SUFDOU8sQ0FBQztDQUVGO0FBVkQsMERBVUMifQ==
@@ -1,13 +1,25 @@
1
1
  declare const Integration: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
2
2
  id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
3
- module: import("@medusajs/framework/utils").EnumProperty<["payment", "fulfillment", "marketplace", "crm", "erp", "pim", "notification", "feed", "tax", "other"]>;
3
+ module: import("@medusajs/framework/utils").EnumProperty<{
4
+ readonly PAYMENT: "payment";
5
+ readonly FULFILLMENT: "fulfillment";
6
+ readonly MARKETPLACE: "marketplace";
7
+ readonly CRM: "crm";
8
+ readonly ERP: "erp";
9
+ readonly PIM: "pim";
10
+ readonly NOTIFICATION: "notification";
11
+ readonly FEED: "feed";
12
+ readonly TAX: "tax";
13
+ readonly OTHER: "other";
14
+ }>;
4
15
  provider_id: import("@medusajs/framework/utils").TextProperty;
5
16
  title: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
6
17
  options: import("@medusajs/framework/utils").JSONProperty;
7
- options_version: import("@medusajs/framework/utils").NumberProperty;
8
18
  is_enabled: import("@medusajs/framework/utils").BooleanProperty;
9
- last_test_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
10
- last_test_status: import("@medusajs/framework/utils").NullableModifier<"ok" | "fail" | "skipped", import("@medusajs/framework/utils").EnumProperty<["ok", "fail", "skipped"]>>;
11
- last_test_message: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
19
+ last_test_status: import("@medusajs/framework/utils").NullableModifier<"passed" | "failed" | "skipped", import("@medusajs/framework/utils").EnumProperty<{
20
+ readonly PASSED: "passed";
21
+ readonly FAILED: "failed";
22
+ readonly SKIPPED: "skipped";
23
+ }>>;
12
24
  }>, "integration">;
13
25
  export default Integration;
@@ -1,27 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("@medusajs/framework/utils");
4
+ const integration_1 = require("../utils/integration");
4
5
  const Integration = utils_1.model.define("integration", {
5
6
  id: utils_1.model.id({ prefix: "int" }).primaryKey(),
6
7
  // Plugin identity
7
- module: utils_1.model.enum([
8
- "payment", "fulfillment", "marketplace", "crm", "erp", "pim",
9
- "notification", "feed", "tax", "other",
10
- ]),
8
+ module: utils_1.model.enum(integration_1.IntegrationModule),
11
9
  provider_id: utils_1.model.text(),
12
10
  title: utils_1.model.text().nullable(),
13
11
  // Integration options (non-secret settings)
14
12
  options: utils_1.model.json().default({}),
15
13
  // Metadata
16
- options_version: utils_1.model.number().default(1),
17
14
  is_enabled: utils_1.model.boolean().default(true),
18
- last_test_at: utils_1.model.dateTime().nullable(),
19
- last_test_status: utils_1.model.enum(["ok", "fail", "skipped"]).nullable(),
20
- last_test_message: utils_1.model.text().nullable(),
15
+ last_test_status: utils_1.model.enum(integration_1.IntegrationTestStatus).nullable(),
21
16
  })
22
17
  .indexes([
23
18
  { on: ["provider_id"], unique: true },
24
19
  { on: ["module"] },
25
20
  ]);
26
21
  exports.default = Integration;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9tb2RlbHMvaW50ZWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQsTUFBTSxXQUFXLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUU7SUFDOUMsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUU7SUFFNUMsa0JBQWtCO0lBQ2xCLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2pCLFNBQVMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSztRQUM1RCxjQUFjLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPO0tBQ3ZDLENBQUM7SUFDRixXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUN6QixLQUFLLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUU5Qiw0Q0FBNEM7SUFDNUMsT0FBTyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBRWpDLFdBQVc7SUFDWCxlQUFlLEVBQUUsYUFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUMsVUFBVSxFQUFFLGFBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3pDLFlBQVksRUFBRSxhQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pDLGdCQUFnQixFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2xFLGlCQUFpQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDM0MsQ0FBQztLQUNELE9BQU8sQ0FBQztJQUNQLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtJQUNyQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFO0NBQ25CLENBQUMsQ0FBQTtBQUVGLGtCQUFlLFdBQVcsQ0FBQSJ9
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9tb2RlbHMvaW50ZWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFDakQsc0RBQStFO0FBRS9FLE1BQU0sV0FBVyxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFO0lBQzlDLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBRTVDLGtCQUFrQjtJQUNsQixNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksQ0FBQywrQkFBaUIsQ0FBQztJQUNyQyxXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUN6QixLQUFLLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUU5Qiw0Q0FBNEM7SUFDNUMsT0FBTyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBRWpDLFdBQVc7SUFDWCxVQUFVLEVBQUUsYUFBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDekMsZ0JBQWdCLEVBQUUsYUFBSyxDQUFDLElBQUksQ0FBQyxtQ0FBcUIsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUMvRCxDQUFDO0tBQ0QsT0FBTyxDQUFDO0lBQ1AsRUFBRSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0lBQ3JDLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7Q0FDbkIsQ0FBQyxDQUFBO0FBRUYsa0JBQWUsV0FBVyxDQUFBIn0=
@@ -5,20 +5,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const globals_1 = require("@jest/globals");
7
7
  const integration_provider_1 = __importDefault(require("../integration-provider"));
8
- // Minimal provider stubs — the registry only needs getIdentifier/getInstanceId/getDescriptor.
8
+ // Minimal provider stubs — the registry only needs getIdentifier/getInstanceId/descriptor.
9
9
  const mkProvider = (identifier, instanceId, withTest = false) => {
10
10
  const p = {
11
11
  getIdentifier: () => identifier,
12
12
  getInstanceId: () => instanceId,
13
- getDescriptor: () => ({
14
- module: "payment",
15
- displayName: `${identifier}.name`,
16
- options: {},
17
- sections: [],
18
- }),
13
+ get descriptor() {
14
+ return {
15
+ module: "payment",
16
+ displayName: `${identifier}.name`,
17
+ options: {},
18
+ sections: [],
19
+ ...(withTest ? { testConnection: async () => ({ status: "passed" }) } : {}),
20
+ };
21
+ },
19
22
  };
20
- if (withTest)
21
- p.testConnection = async () => ({ status: "ok" });
22
23
  return p;
23
24
  };
24
25
  // Mimics the awilix cradle: container keys are `int_<identifier>[_<id>]`.
@@ -30,20 +31,20 @@ const makeRegistry = () => new integration_provider_1.default({
30
31
  integrationModuleOptions: { encryptionKey: "x" },
31
32
  });
32
33
  (0, globals_1.describe)("IntegrationProviderService (registration identity)", () => {
33
- (0, globals_1.it)("builds container keys from (pluginId, instanceId)", () => {
34
+ (0, globals_1.it)("builds container keys from (identifier, instanceId)", () => {
34
35
  (0, globals_1.expect)(integration_provider_1.default.key("tkassa")).toBe("int_tkassa");
35
36
  (0, globals_1.expect)(integration_provider_1.default.key("tkassa", null)).toBe("int_tkassa");
36
37
  (0, globals_1.expect)(integration_provider_1.default.key("ozon", "acct1")).toBe("int_ozon_acct1");
37
38
  });
38
39
  (0, globals_1.it)("lists registrations with derived identity, ignoring non-provider keys", () => {
39
40
  const regs = makeRegistry().listRegistrations();
40
- (0, globals_1.expect)(regs.map((r) => [r.key, r.pluginId, r.instanceId]).sort()).toEqual([
41
+ (0, globals_1.expect)(regs.map((r) => [r.key, r.identifier, r.instanceId]).sort()).toEqual([
41
42
  ["int_ozon_acct1", "ozon", "acct1"],
42
43
  ["int_ozon_acct2", "ozon", "acct2"],
43
44
  ["int_tkassa", "tkassa", null],
44
45
  ]);
45
46
  });
46
- (0, globals_1.it)("resolves a provider by key and by (pluginId, instanceId)", () => {
47
+ (0, globals_1.it)("resolves a provider by key and by (identifier, instanceId)", () => {
47
48
  const reg = makeRegistry();
48
49
  (0, globals_1.expect)(reg.retrieveByKey("int_ozon_acct1").getInstanceId()).toBe("acct1");
49
50
  (0, globals_1.expect)(reg.retrieveProvider("ozon", "acct2").getInstanceId()).toBe("acct2");
@@ -57,9 +58,9 @@ const makeRegistry = () => new integration_provider_1.default({
57
58
  (0, globals_1.expect)(reg.hasProvider("ozon")).toBe(false); // no null-instance ozon
58
59
  (0, globals_1.expect)(reg.hasProvider("ozon", "nope")).toBe(false);
59
60
  });
60
- (0, globals_1.it)("maps a key back to its (pluginId, instanceId)", () => {
61
+ (0, globals_1.it)("maps a key back to its (identifier, instanceId)", () => {
61
62
  (0, globals_1.expect)(makeRegistry().getRegistration("int_ozon_acct2")).toMatchObject({
62
- pluginId: "ozon",
63
+ identifier: "ozon",
63
64
  instanceId: "acct2",
64
65
  });
65
66
  (0, globals_1.expect)(makeRegistry().getRegistration("int_unknown")).toBeUndefined();
@@ -67,11 +68,11 @@ const makeRegistry = () => new integration_provider_1.default({
67
68
  (0, globals_1.it)("throws on an unknown key", () => {
68
69
  (0, globals_1.expect)(() => makeRegistry().retrieveByKey("int_nope")).toThrow(/Unable to retrieve/);
69
70
  });
70
- (0, globals_1.it)("stamps pluginId + instanceId onto each descriptor", () => {
71
+ (0, globals_1.it)("stamps identifier + instanceId onto each descriptor", () => {
71
72
  const ds = makeRegistry().listDescriptors();
72
73
  const ozon1 = ds.find((d) => d.instanceId === "acct1");
73
- (0, globals_1.expect)(ozon1.pluginId).toBe("ozon");
74
- (0, globals_1.expect)(ds.find((d) => d.pluginId === "tkassa").instanceId).toBe(null);
74
+ (0, globals_1.expect)(ozon1.identifier).toBe("ozon");
75
+ (0, globals_1.expect)(ds.find((d) => d.identifier === "tkassa").instanceId).toBe(null);
75
76
  });
76
77
  });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tcHJvdmlkZXIudW5pdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vc2VydmljZXMvX190ZXN0c19fL2ludGVncmF0aW9uLXByb3ZpZGVyLnVuaXQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUFvRDtBQUNwRCxtRkFBZ0U7QUFFaEUsOEZBQThGO0FBQzlGLE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBa0IsRUFBRSxVQUF5QixFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsRUFBRTtJQUNyRixNQUFNLENBQUMsR0FBUTtRQUNiLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVO1FBQy9CLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVO1FBQy9CLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFdBQVcsRUFBRSxHQUFHLFVBQVUsT0FBTztZQUNqQyxPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztLQUNILENBQUE7SUFDRCxJQUFJLFFBQVE7UUFBRSxDQUFDLENBQUMsY0FBYyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQy9ELE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQyxDQUFBO0FBRUQsMEVBQTBFO0FBQzFFLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUN4QixJQUFJLDhCQUEwQixDQUFDO0lBQzdCLFVBQVUsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztJQUN0QyxjQUFjLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQ2pELGNBQWMsRUFBRSxVQUFVLENBQUMsTUFBTSxF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
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tcHJvdmlkZXIudW5pdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vc2VydmljZXMvX190ZXN0c19fL2ludGVncmF0aW9uLXByb3ZpZGVyLnVuaXQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUFvRDtBQUNwRCxtRkFBZ0U7QUFFaEUsMkZBQTJGO0FBQzNGLE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBa0IsRUFBRSxVQUF5QixFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsRUFBRTtJQUNyRixNQUFNLENBQUMsR0FBUTtRQUNiLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVO1FBQy9CLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVO1FBQy9CLElBQUksVUFBVTtZQUNaLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFdBQVcsRUFBRSxHQUFHLFVBQVUsT0FBTztnQkFDakMsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQzVFLENBQUE7UUFDSCxDQUFDO0tBQ0YsQ0FBQTtJQUNELE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQyxDQUFBO0FBRUQsMEVBQTBFO0FBQzFFLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUN4QixJQUFJLDhCQUEwQixDQUFDO0lBQzdCLFVBQVUsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztJQUN0QyxjQUFjLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQ2pELGNBQWMsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztJQUMzQyw4Q0FBOEM7SUFDOUMsd0JBQXdCLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFO0NBQzFDLENBQUMsQ0FBQTtBQUVYLElBQUEsa0JBQVEsRUFBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7SUFDbEUsSUFBQSxZQUFFLEVBQUMscURBQXFELEVBQUUsR0FBRyxFQUFFO1FBQzdELElBQUEsZ0JBQU0sRUFBQyw4QkFBMEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDbkUsSUFBQSxnQkFBTSxFQUFDLDhCQUEwQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDekUsSUFBQSxnQkFBTSxFQUFDLDhCQUEwQixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUNoRixDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUEsWUFBRSxFQUFDLHVFQUF1RSxFQUFFLEdBQUcsRUFBRTtRQUMvRSxNQUFNLElBQUksR0FBRyxZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQy9DLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMxRSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFDbkMsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1lBQ25DLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7U0FDL0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7SUFFRixJQUFBLFlBQUUsRUFBQyw0REFBNEQsRUFBRSxHQUFHLEVBQUU7UUFDcEUsTUFBTSxHQUFHLEdBQUcsWUFBWSxFQUFFLENBQUE7UUFDMUIsSUFBQSxnQkFBTSxFQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN6RSxJQUFBLGdCQUFNLEVBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMzRSxJQUFBLGdCQUFNLEVBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ25FLENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBQSxZQUFFLEVBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sR0FBRyxHQUFHLFlBQVksRUFBRSxDQUFBO1FBQzFCLElBQUEsZ0JBQU0sRUFBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzVDLElBQUEsZ0JBQU0sRUFBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsRCxJQUFBLGdCQUFNLEVBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkQsSUFBQSxnQkFBTSxFQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyx3QkFBd0I7UUFDcEUsSUFBQSxnQkFBTSxFQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JELENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBQSxZQUFFLEVBQUMsaURBQWlELEVBQUUsR0FBRyxFQUFFO1FBQ3pELElBQUEsZ0JBQU0sRUFBQyxZQUFZLEVBQUUsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUNyRSxVQUFVLEVBQUUsTUFBTTtZQUNsQixVQUFVLEVBQUUsT0FBTztTQUNwQixDQUFDLENBQUE7UUFDRixJQUFBLGdCQUFNLEVBQUMsWUFBWSxFQUFFLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdkUsQ0FBQyxDQUFDLENBQUE7SUFFRixJQUFBLFlBQUUsRUFBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbEMsSUFBQSxnQkFBTSxFQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3RGLENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBQSxZQUFFLEVBQUMscURBQXFELEVBQUUsR0FBRyxFQUFFO1FBQzdELE1BQU0sRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQzNDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssT0FBTyxDQUFFLENBQUE7UUFDdkQsSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckMsSUFBQSxnQkFBTSxFQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFFLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEifQ==
@@ -20,15 +20,27 @@ export type ResolvedOptions = {
20
20
  declare const IntegrationModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
21
21
  readonly Integration: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
22
22
  id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
23
- module: import("@medusajs/framework/utils").EnumProperty<["payment", "fulfillment", "marketplace", "crm", "erp", "pim", "notification", "feed", "tax", "other"]>;
23
+ module: import("@medusajs/framework/utils").EnumProperty<{
24
+ readonly PAYMENT: "payment";
25
+ readonly FULFILLMENT: "fulfillment";
26
+ readonly MARKETPLACE: "marketplace";
27
+ readonly CRM: "crm";
28
+ readonly ERP: "erp";
29
+ readonly PIM: "pim";
30
+ readonly NOTIFICATION: "notification";
31
+ readonly FEED: "feed";
32
+ readonly TAX: "tax";
33
+ readonly OTHER: "other";
34
+ }>;
24
35
  provider_id: import("@medusajs/framework/utils").TextProperty;
25
36
  title: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
26
37
  options: import("@medusajs/framework/utils").JSONProperty;
27
- options_version: import("@medusajs/framework/utils").NumberProperty;
28
38
  is_enabled: import("@medusajs/framework/utils").BooleanProperty;
29
- last_test_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
30
- last_test_status: import("@medusajs/framework/utils").NullableModifier<"ok" | "fail" | "skipped", import("@medusajs/framework/utils").EnumProperty<["ok", "fail", "skipped"]>>;
31
- last_test_message: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
39
+ last_test_status: import("@medusajs/framework/utils").NullableModifier<"passed" | "failed" | "skipped", import("@medusajs/framework/utils").EnumProperty<{
40
+ readonly PASSED: "passed";
41
+ readonly FAILED: "failed";
42
+ readonly SKIPPED: "skipped";
43
+ }>>;
32
44
  }>, "integration">;
33
45
  }>>;
34
46
  export default class IntegrationModuleService extends IntegrationModuleService_base {
@@ -42,7 +54,7 @@ export default class IntegrationModuleService extends IntegrationModuleService_b
42
54
  constructor(deps: InjectedDependencies);
43
55
  /** UI descriptors for every registration (one per instance). */
44
56
  listUiDescriptors(): UiDescriptor[];
45
- /** Stamped descriptor (schema + pluginId/instanceId) for one `provider_id`. */
57
+ /** Stamped descriptor (schema + identifier/instanceId) for one `provider_id`. */
46
58
  getProviderDescriptor(providerId: string): IntegrationDescriptor | undefined;
47
59
  /** UI descriptor for one `provider_id` (container key). */
48
60
  getProviderUiDescriptor(providerId: string): UiDescriptor | undefined;
@@ -58,11 +70,8 @@ export default class IntegrationModuleService extends IntegrationModuleService_b
58
70
  provider_id: string;
59
71
  title: string | null;
60
72
  options: Record<string, unknown>;
61
- options_version: number;
62
73
  is_enabled: boolean;
63
- last_test_at: Date | null;
64
- last_test_status: "ok" | "fail" | "skipped" | null;
65
- last_test_message: string | null;
74
+ last_test_status: "passed" | "failed" | "skipped" | null;
66
75
  created_at: Date;
67
76
  updated_at: Date;
68
77
  deleted_at: Date | null;
@@ -87,8 +96,8 @@ export default class IntegrationModuleService extends IntegrationModuleService_b
87
96
  */
88
97
  listIntegrationsOverview(): Promise<IntegrationOverviewItem[]>;
89
98
  /**
90
- * Run the provider's connection test against the currently-resolved settings.
91
- * Delegates to the integration-provider's `testConnection` (if it has one).
99
+ * Run the connection test against the currently-resolved settings.
100
+ * Delegates to the descriptor's `testConnection` (if it declares one).
92
101
  */
93
102
  runTestConnection(providerId: string): Promise<TestConnectionResult>;
94
103
  /** The configured passphrase (any non-empty string). Throws if missing. */
@@ -105,9 +114,9 @@ export default class IntegrationModuleService extends IntegrationModuleService_b
105
114
  /** Clear the resolved-options cache for one `provider_id`, or all when omitted. */
106
115
  clearOptionsCache(providerId?: string): void;
107
116
  /**
108
- * Resolve decrypted options for a `(pluginId, instanceId)` pair (the consumer-facing
109
- * shape) — mapped internally to the `provider_id` key `int_<pluginId>[_<instanceId>]`.
117
+ * Resolve decrypted options for a `(identifier, instanceId)` pair (the consumer-facing
118
+ * shape) — mapped internally to the `provider_id` key `int_<identifier>[_<instanceId>]`.
110
119
  */
111
- getResolvedOptions(pluginId: string, instanceId?: string | null): Promise<ResolvedOptions | null>;
120
+ getResolvedOptions(identifier: string, instanceId?: string | null): Promise<ResolvedOptions | null>;
112
121
  }
113
122
  export {};
@@ -24,21 +24,21 @@ 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.getDescriptor(), pluginId: r.pluginId, instanceId: r.instanceId }, typeof r.provider.testConnection === "function"));
27
+ return this.providerService_.listRegistrations().map((r) => (0, introspect_1.introspectDescriptor)({ ...r.provider.descriptor, identifier: r.identifier, instanceId: r.instanceId }));
28
28
  }
29
- /** Stamped descriptor (schema + pluginId/instanceId) for one `provider_id`. */
29
+ /** Stamped descriptor (schema + identifier/instanceId) for one `provider_id`. */
30
30
  getProviderDescriptor(providerId) {
31
31
  const r = this.providerService_.getRegistration(providerId);
32
32
  if (!r)
33
33
  return undefined;
34
- return { ...r.provider.getDescriptor(), pluginId: r.pluginId, instanceId: r.instanceId };
34
+ return { ...r.provider.descriptor, identifier: r.identifier, instanceId: r.instanceId };
35
35
  }
36
36
  /** UI descriptor for one `provider_id` (container key). */
37
37
  getProviderUiDescriptor(providerId) {
38
38
  const r = this.providerService_.getRegistration(providerId);
39
39
  if (!r)
40
40
  return undefined;
41
- return (0, introspect_1.introspectDescriptor)({ ...r.provider.getDescriptor(), pluginId: r.pluginId, instanceId: r.instanceId }, typeof r.provider.testConnection === "function");
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) {
@@ -90,28 +90,27 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
90
90
  const rows = await this.listIntegrations({}, { take: 1000 });
91
91
  const byId = new Map(rows.map((r) => [r.provider_id, r]));
92
92
  return regs.map((r) => {
93
- const d = r.provider.getDescriptor();
93
+ const d = r.provider.descriptor;
94
94
  const row = byId.get(r.key);
95
95
  return {
96
96
  provider_id: r.key,
97
- plugin_id: r.pluginId,
97
+ identifier: r.identifier,
98
98
  instance_id: r.instanceId,
99
99
  module: d.module,
100
100
  display_name: d.displayName,
101
101
  icon: d.icon,
102
102
  supports_multiple_instances: d.supportsMultipleInstances ?? false,
103
- has_test_connection: typeof r.provider.testConnection === "function",
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,
107
107
  last_test_status: row?.last_test_status ?? null,
108
- last_test_at: row?.last_test_at ?? null,
109
108
  };
110
109
  });
111
110
  }
112
111
  /**
113
- * Run the provider's connection test against the currently-resolved settings.
114
- * Delegates to the integration-provider's `testConnection` (if it has one).
112
+ * Run the connection test against the currently-resolved settings.
113
+ * Delegates to the descriptor's `testConnection` (if it declares one).
115
114
  */
116
115
  async runTestConnection(providerId) {
117
116
  let provider;
@@ -119,22 +118,21 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
119
118
  provider = this.providerService_.retrieveByKey(providerId);
120
119
  }
121
120
  catch {
122
- return { status: "fail", message: `Unknown integration provider "${providerId}"` };
121
+ return { status: "failed", message: `Unknown integration provider "${providerId}"` };
123
122
  }
124
- if (!provider.testConnection) {
123
+ const testConnection = provider.descriptor.testConnection;
124
+ if (!testConnection) {
125
125
  return { status: "skipped", message: "No test configured" };
126
126
  }
127
127
  const resolved = await this.getResolvedOptions(provider.getIdentifier(), provider.getInstanceId());
128
128
  if (!resolved) {
129
- return { status: "fail", message: "Not configured" };
129
+ return { status: "failed", message: "Not configured" };
130
130
  }
131
131
  try {
132
- return await provider.testConnection({
133
- options: resolved.options,
134
- });
132
+ return await testConnection({ options: resolved.options });
135
133
  }
136
134
  catch (e) {
137
- return { status: "fail", message: e?.message ?? "Test failed" };
135
+ return { status: "failed", message: e?.message ?? "Test failed" };
138
136
  }
139
137
  }
140
138
  // ── encryption ───────────────────────────────────────────────────────────────
@@ -175,11 +173,11 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
175
173
  this.cache_.delete(providerId);
176
174
  }
177
175
  /**
178
- * Resolve decrypted options for a `(pluginId, instanceId)` pair (the consumer-facing
179
- * shape) — mapped internally to the `provider_id` key `int_<pluginId>[_<instanceId>]`.
176
+ * Resolve decrypted options for a `(identifier, instanceId)` pair (the consumer-facing
177
+ * shape) — mapped internally to the `provider_id` key `int_<identifier>[_<instanceId>]`.
180
178
  */
181
- async getResolvedOptions(pluginId, instanceId) {
182
- const providerId = integration_provider_1.default.key(pluginId, instanceId);
179
+ async getResolvedOptions(identifier, instanceId) {
180
+ const providerId = integration_provider_1.default.key(identifier, instanceId);
183
181
  const hit = this.cache_.get(providerId);
184
182
  if (hit && hit.expiresAt > Date.now())
185
183
  return hit.value;
@@ -216,4 +214,4 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
216
214
  }
217
215
  }
218
216
  exports.default = IntegrationModuleService;
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vc2VydmljZXMvaW50ZWdyYXRpb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXlEO0FBRXpELHdFQUErQztBQUMvQyxxQ0FBb0M7QUFDcEMsdUNBQXNFO0FBQ3RFLGtGQUErRDtBQUUvRCx5REFBb0c7QUFDcEcscURBQTZEO0FBQzdELG9DQUFpRjtBQWNqRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUE7QUFFM0IsTUFBcUIsd0JBQXlCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ2xFLFdBQVcsRUFBWCxxQkFBVztDQUNaLENBQUM7SUFNQSxZQUFZLElBQTBCO1FBQ3BDLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBSlgsV0FBTSxHQUFHLElBQUksR0FBRyxFQUFnRSxDQUFBO1FBS3hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUE7UUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsK0JBQXVCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDckQsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixnRUFBZ0U7SUFDaEUsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN6RCxJQUFBLGlDQUFvQixFQUNsQixFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUNqRixPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxLQUFLLFVBQVUsQ0FDaEQsQ0FDRixDQUFB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
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vc2VydmljZXMvaW50ZWdyYXRpb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXlEO0FBRXpELHdFQUErQztBQUMvQyxxQ0FBb0M7QUFDcEMsdUNBQXNFO0FBQ3RFLGtGQUErRDtBQUUvRCx5REFBb0c7QUFDcEcscURBQTZEO0FBQzdELG9DQUFpRjtBQWNqRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUE7QUFFM0IsTUFBcUIsd0JBQXlCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ2xFLFdBQVcsRUFBWCxxQkFBVztDQUNaLENBQUM7SUFNQSxZQUFZLElBQTBCO1FBQ3BDLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBSlgsV0FBTSxHQUFHLElBQUksR0FBRyxFQUFnRSxDQUFBO1FBS3hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUE7UUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsK0JBQXVCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDckQsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixnRUFBZ0U7SUFDaEUsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN6RCxJQUFBLGlDQUFvQixFQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQ3ZHLENBQUE7SUFDSCxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLHFCQUFxQixDQUFDLFVBQWtCO1FBQ3RD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
@@ -8,7 +8,7 @@ type InjectedDependencies = {
8
8
  export type ProviderRegistration = {
9
9
  /** Container key `int_<identifier>[_<id>]` — the instance's stable identity. */
10
10
  key: string;
11
- pluginId: string;
11
+ identifier: string;
12
12
  instanceId: string | null;
13
13
  provider: AbstractIntegrationProvider;
14
14
  };
@@ -16,7 +16,7 @@ export type ProviderRegistration = {
16
16
  * Thin registry over the integration-providers registered into the module container by
17
17
  * `loadProviders`. Each registration in `options.providers` is one instance, identified
18
18
  * by its container key `int_<identifier>[_<id>]` — which is also the DB `provider_id`.
19
- * Instances are declared in medusa-config, not created at runtime. `pluginId`/`instanceId`
19
+ * Instances are declared in medusa-config, not created at runtime. `identifier`/`instanceId`
20
20
  * (= `getIdentifier()`/`getInstanceId()`) are derived for descriptors/UI.
21
21
  *
22
22
  * Intentionally minimal: it locates providers; callers invoke provider methods directly,
@@ -25,23 +25,23 @@ export type ProviderRegistration = {
25
25
  export default class IntegrationProviderService {
26
26
  protected dependencies_: InjectedDependencies;
27
27
  constructor(container: InjectedDependencies);
28
- /** Build the container key for a `(pluginId, instanceId)` pair. */
29
- static key(pluginId: string, instanceId?: string | null): string;
28
+ /** Build the container key for a `(identifier, instanceId)` pair. */
29
+ static key(identifier: string, instanceId?: string | null): string;
30
30
  /** All registered provider instances. */
31
31
  listProviders(): AbstractIntegrationProvider[];
32
- /** Every registration with its derived `(pluginId, instanceId)` identity. */
32
+ /** Every registration with its derived `(identifier, instanceId)` identity. */
33
33
  listRegistrations(): ProviderRegistration[];
34
34
  /** Resolve a provider by its exact container key. */
35
35
  retrieveByKey(key: string): AbstractIntegrationProvider;
36
- /** Resolve the provider for a `(pluginId, instanceId)` pair. */
37
- retrieveProvider(pluginId: string, instanceId?: string | null): AbstractIntegrationProvider;
38
- /** Whether a provider is registered for this `(pluginId, instanceId)` pair. */
39
- hasProvider(pluginId: string, instanceId?: string | null): boolean;
40
- /** Resolve `(pluginId, instanceId)` from a container key, or undefined if unregistered. */
36
+ /** Resolve the provider for a `(identifier, instanceId)` pair. */
37
+ retrieveProvider(identifier: string, instanceId?: string | null): AbstractIntegrationProvider;
38
+ /** Whether a provider is registered for this `(identifier, instanceId)` pair. */
39
+ hasProvider(identifier: string, instanceId?: string | null): boolean;
40
+ /** Resolve `(identifier, instanceId)` from a container key, or undefined if unregistered. */
41
41
  getRegistration(key: string): ProviderRegistration | undefined;
42
42
  /**
43
43
  * Descriptors of every registered provider — feeds the introspection/UI pipeline.
44
- * `pluginId`/`instanceId` are stamped from each registration, so authors never repeat
44
+ * `identifier`/`instanceId` are stamped from each registration, so authors never repeat
45
45
  * them in the descriptor. One descriptor per registration (one per instance).
46
46
  */
47
47
  listDescriptors(): IntegrationDescriptor[];
@@ -5,7 +5,7 @@ const types_1 = require("../types");
5
5
  * Thin registry over the integration-providers registered into the module container by
6
6
  * `loadProviders`. Each registration in `options.providers` is one instance, identified
7
7
  * by its container key `int_<identifier>[_<id>]` — which is also the DB `provider_id`.
8
- * Instances are declared in medusa-config, not created at runtime. `pluginId`/`instanceId`
8
+ * Instances are declared in medusa-config, not created at runtime. `identifier`/`instanceId`
9
9
  * (= `getIdentifier()`/`getInstanceId()`) are derived for descriptors/UI.
10
10
  *
11
11
  * Intentionally minimal: it locates providers; callers invoke provider methods directly,
@@ -15,9 +15,9 @@ class IntegrationProviderService {
15
15
  constructor(container) {
16
16
  this.dependencies_ = container;
17
17
  }
18
- /** Build the container key for a `(pluginId, instanceId)` pair. */
19
- static key(pluginId, instanceId) {
20
- return `${types_1.IntegrationProviderRegistrationPrefix}${pluginId}${instanceId ? `_${instanceId}` : ""}`;
18
+ /** Build the container key for a `(identifier, instanceId)` pair. */
19
+ static key(identifier, instanceId) {
20
+ return `${types_1.IntegrationProviderRegistrationPrefix}${identifier}${instanceId ? `_${instanceId}` : ""}`;
21
21
  }
22
22
  /** All registered provider instances. */
23
23
  listProviders() {
@@ -25,7 +25,7 @@ class IntegrationProviderService {
25
25
  .filter((k) => k.startsWith(types_1.IntegrationProviderRegistrationPrefix))
26
26
  .map((k) => this.dependencies_[k]);
27
27
  }
28
- /** Every registration with its derived `(pluginId, instanceId)` identity. */
28
+ /** Every registration with its derived `(identifier, instanceId)` identity. */
29
29
  listRegistrations() {
30
30
  return Object.keys(this.dependencies_)
31
31
  .filter((k) => k.startsWith(types_1.IntegrationProviderRegistrationPrefix))
@@ -33,7 +33,7 @@ class IntegrationProviderService {
33
33
  const provider = this.dependencies_[k];
34
34
  return {
35
35
  key: k,
36
- pluginId: provider.getIdentifier(),
36
+ identifier: provider.getIdentifier(),
37
37
  instanceId: provider.getInstanceId(),
38
38
  provider,
39
39
  };
@@ -47,30 +47,30 @@ class IntegrationProviderService {
47
47
  }
48
48
  return provider;
49
49
  }
50
- /** Resolve the provider for a `(pluginId, instanceId)` pair. */
51
- retrieveProvider(pluginId, instanceId) {
52
- return this.retrieveByKey(IntegrationProviderService.key(pluginId, instanceId));
50
+ /** Resolve the provider for a `(identifier, instanceId)` pair. */
51
+ retrieveProvider(identifier, instanceId) {
52
+ return this.retrieveByKey(IntegrationProviderService.key(identifier, instanceId));
53
53
  }
54
- /** Whether a provider is registered for this `(pluginId, instanceId)` pair. */
55
- hasProvider(pluginId, instanceId) {
56
- return !!this.dependencies_[IntegrationProviderService.key(pluginId, instanceId)];
54
+ /** Whether a provider is registered for this `(identifier, instanceId)` pair. */
55
+ hasProvider(identifier, instanceId) {
56
+ return !!this.dependencies_[IntegrationProviderService.key(identifier, instanceId)];
57
57
  }
58
- /** Resolve `(pluginId, instanceId)` from a container key, or undefined if unregistered. */
58
+ /** Resolve `(identifier, instanceId)` from a container key, or undefined if unregistered. */
59
59
  getRegistration(key) {
60
60
  return this.listRegistrations().find((r) => r.key === key);
61
61
  }
62
62
  /**
63
63
  * Descriptors of every registered provider — feeds the introspection/UI pipeline.
64
- * `pluginId`/`instanceId` are stamped from each registration, so authors never repeat
64
+ * `identifier`/`instanceId` are stamped from each registration, so authors never repeat
65
65
  * them in the descriptor. One descriptor per registration (one per instance).
66
66
  */
67
67
  listDescriptors() {
68
68
  return this.listRegistrations().map((r) => ({
69
- ...r.provider.getDescriptor(),
70
- pluginId: r.pluginId,
69
+ ...r.provider.descriptor,
70
+ identifier: r.identifier,
71
71
  instanceId: r.instanceId,
72
72
  }));
73
73
  }
74
74
  }
75
75
  exports.default = IntegrationProviderService;
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9zZXJ2aWNlcy9pbnRlZ3JhdGlvbi1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG9DQUFnRTtBQWlCaEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBcUIsMEJBQTBCO0lBRzdDLFlBQVksU0FBK0I7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7SUFDaEMsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQWdCLEVBQUUsVUFBMEI7UUFDckQsT0FBTyxHQUFHLDZDQUFxQyxHQUFHLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFBO0lBQ25HLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsYUFBYTtRQUNYLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyw2Q0FBcUMsQ0FBQyxDQUFDO2FBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUErQixDQUFDLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLGlCQUFpQjtRQUNmLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyw2Q0FBcUMsQ0FBQyxDQUFDO2FBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUErQixDQUFDLENBQUE7WUFDcEUsT0FBTztnQkFDTCxHQUFHLEVBQUUsQ0FBQztnQkFDTixRQUFRLEVBQUUsUUFBUSxDQUFDLGFBQWEsRUFBRTtnQkFDbEMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUU7Z0JBQ3BDLFFBQVE7YUFDVCxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQscURBQXFEO0lBQ3JELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBaUMsQ0FBQyxDQUFBO1FBQ3RFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IsNENBQTRDLEdBQUcsc0dBQXNHLENBQ3RKLENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUVELGdFQUFnRTtJQUNoRSxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLFVBQTBCO1FBQzNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFDakYsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxXQUFXLENBQUMsUUFBZ0IsRUFBRSxVQUEwQjtRQUN0RCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUN6QiwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBK0IsQ0FDbkYsQ0FBQTtJQUNILENBQUM7SUFFRCwyRkFBMkY7SUFDM0YsZUFBZSxDQUFDLEdBQVc7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUM3QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7WUFDcEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1NBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztDQUNGO0FBMUVELDZDQTBFQyJ9
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9zZXJ2aWNlcy9pbnRlZ3JhdGlvbi1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG9DQUFnRTtBQWlCaEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBcUIsMEJBQTBCO0lBRzdDLFlBQVksU0FBK0I7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7SUFDaEMsQ0FBQztJQUVELHFFQUFxRTtJQUNyRSxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQWtCLEVBQUUsVUFBMEI7UUFDdkQsT0FBTyxHQUFHLDZDQUFxQyxHQUFHLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFBO0lBQ3JHLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsYUFBYTtRQUNYLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyw2Q0FBcUMsQ0FBQyxDQUFDO2FBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUErQixDQUFDLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsK0VBQStFO0lBQy9FLGlCQUFpQjtRQUNmLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyw2Q0FBcUMsQ0FBQyxDQUFDO2FBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUErQixDQUFDLENBQUE7WUFDcEUsT0FBTztnQkFDTCxHQUFHLEVBQUUsQ0FBQztnQkFDTixVQUFVLEVBQUUsUUFBUSxDQUFDLGFBQWEsRUFBRTtnQkFDcEMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUU7Z0JBQ3BDLFFBQVE7YUFDVCxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQscURBQXFEO0lBQ3JELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBaUMsQ0FBQyxDQUFBO1FBQ3RFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IsNENBQTRDLEdBQUcsc0dBQXNHLENBQ3RKLENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUVELGtFQUFrRTtJQUNsRSxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLFVBQTBCO1FBQzdELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFDbkYsQ0FBQztJQUVELGlGQUFpRjtJQUNqRixXQUFXLENBQUMsVUFBa0IsRUFBRSxVQUEwQjtRQUN4RCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUN6QiwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBK0IsQ0FDckYsQ0FBQTtJQUNILENBQUM7SUFFRCw2RkFBNkY7SUFDN0YsZUFBZSxDQUFDLEdBQVc7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVU7WUFDeEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1lBQ3hCLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtTQUN6QixDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7Q0FDRjtBQTFFRCw2Q0EwRUMifQ==
@@ -1,19 +1,18 @@
1
- import type { IntegrationDescriptorInput, TestConnectionContext, TestConnectionResult } from "../descriptor/define";
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] })`.
5
5
  *
6
6
  * export class TkassaIntegrationProvider extends AbstractIntegrationProvider {
7
7
  * static identifier = "tkassa"
8
- * getDescriptor() { return tkassaDescriptor }
9
- * async testConnection({ credentials }) { ... }
8
+ * get descriptor() { return tkassaDescriptor }
10
9
  * }
11
10
  *
12
- * This class is the single source of truth for the provider contract — code that
13
- * consumes providers (the registry) types against it, so adding a method here is the
14
- * only place to touch (besides implementing it in concrete providers).
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
- * `static identifier` becomes the descriptor's `pluginId` (settings are stored/resolved
15
+ * `static identifier` becomes the descriptor's `identifier` (settings are stored/resolved
17
16
  * under it); authors don't repeat it in the descriptor.
18
17
  *
19
18
  * Each registration in `options.providers` is one *instance*: its `id` (if any) is
@@ -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
- /** Return this plugin's settings descriptor (zod schema + UI metadata + sections). */
35
- abstract getDescriptor(): IntegrationDescriptorInput;
36
- /** Optional connection check; omit if the plugin can't quickly verify credentials. */
37
- testConnection?(ctx: TestConnectionContext): Promise<TestConnectionResult>;
33
+ /** This plugin's descriptor (options + sections + `validate` + `testConnection`). */
34
+ abstract get descriptor(): IntegrationDescriptorInput;
38
35
  }
39
36
  export default AbstractIntegrationProvider;