@gorgo/medusa-integration 0.0.3 → 0.0.5

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 (75) hide show
  1. package/.medusa/server/src/admin/index.js +546 -119
  2. package/.medusa/server/src/admin/index.mjs +549 -122
  3. package/.medusa/server/src/api/admin/integrations/[provider_id]/route.js +7 -2
  4. package/.medusa/server/src/api/admin/integrations/__tests__/helpers.unit.spec.d.ts +1 -0
  5. package/.medusa/server/src/api/admin/integrations/__tests__/helpers.unit.spec.js +30 -0
  6. package/.medusa/server/src/api/admin/integrations/_helpers.d.ts +3 -3
  7. package/.medusa/server/src/api/admin/integrations/_helpers.js +8 -8
  8. package/.medusa/server/src/api/admin/integrations/catalog/route.d.ts +3 -0
  9. package/.medusa/server/src/api/admin/integrations/catalog/route.js +10 -0
  10. package/.medusa/server/src/api/admin/integrations/middlewares.js +16 -1
  11. package/.medusa/server/src/api/admin/integrations/route.js +17 -3
  12. package/.medusa/server/src/api/admin/integrations/validators.d.ts +7 -0
  13. package/.medusa/server/src/api/admin/integrations/validators.js +8 -2
  14. package/.medusa/server/src/index.d.ts +1 -1
  15. package/.medusa/server/src/jobs/__tests__/test-integration-connections.unit.spec.d.ts +1 -0
  16. package/.medusa/server/src/jobs/__tests__/test-integration-connections.unit.spec.js +27 -0
  17. package/.medusa/server/src/jobs/test-integration-connections.d.ts +7 -0
  18. package/.medusa/server/src/jobs/test-integration-connections.js +21 -8
  19. package/.medusa/server/src/lib/__tests__/catalog-fallback.unit.spec.d.ts +1 -0
  20. package/.medusa/server/src/lib/__tests__/catalog-fallback.unit.spec.js +37 -0
  21. package/.medusa/server/src/lib/__tests__/catalog.unit.spec.d.ts +1 -0
  22. package/.medusa/server/src/lib/__tests__/catalog.unit.spec.js +71 -0
  23. package/.medusa/server/src/lib/catalog.d.ts +9 -0
  24. package/.medusa/server/src/lib/catalog.generated.d.ts +2 -0
  25. package/.medusa/server/src/lib/catalog.generated.js +88 -0
  26. package/.medusa/server/src/lib/catalog.js +55 -0
  27. package/.medusa/server/src/modules/integration/descriptor/__tests__/build-zod.unit.spec.js +43 -1
  28. package/.medusa/server/src/modules/integration/descriptor/__tests__/define.unit.spec.js +3 -3
  29. package/.medusa/server/src/modules/integration/descriptor/__tests__/introspect.unit.spec.js +3 -3
  30. package/.medusa/server/src/modules/integration/descriptor/__tests__/section-write.unit.spec.d.ts +1 -0
  31. package/.medusa/server/src/modules/integration/descriptor/__tests__/section-write.unit.spec.js +64 -0
  32. package/.medusa/server/src/modules/integration/descriptor/__tests__/validate.unit.spec.js +28 -2
  33. package/.medusa/server/src/modules/integration/descriptor/build-zod.js +7 -1
  34. package/.medusa/server/src/modules/integration/descriptor/define.d.ts +5 -5
  35. package/.medusa/server/src/modules/integration/descriptor/define.js +1 -1
  36. package/.medusa/server/src/modules/integration/descriptor/introspect.js +2 -2
  37. package/.medusa/server/src/modules/integration/descriptor/meta.d.ts +1 -1
  38. package/.medusa/server/src/modules/integration/descriptor/section-write.d.ts +10 -0
  39. package/.medusa/server/src/modules/integration/descriptor/section-write.js +24 -0
  40. package/.medusa/server/src/modules/integration/loaders/__tests__/package-meta.unit.spec.d.ts +1 -0
  41. package/.medusa/server/src/modules/integration/loaders/__tests__/package-meta.unit.spec.js +63 -0
  42. package/.medusa/server/src/modules/integration/loaders/load-providers.js +10 -38
  43. package/.medusa/server/src/modules/integration/loaders/package-meta.d.ts +22 -0
  44. package/.medusa/server/src/modules/integration/loaders/package-meta.js +45 -0
  45. package/.medusa/server/src/modules/integration/loaders/resolve-package-meta.d.ts +8 -0
  46. package/.medusa/server/src/modules/integration/loaders/resolve-package-meta.js +59 -0
  47. package/.medusa/server/src/modules/integration/migrations/Migration20260720130920.d.ts +5 -0
  48. package/.medusa/server/src/modules/integration/migrations/Migration20260720130920.js +18 -0
  49. package/.medusa/server/src/modules/integration/migrations/Migration20260724101525.d.ts +5 -0
  50. package/.medusa/server/src/modules/integration/migrations/Migration20260724101525.js +16 -0
  51. package/.medusa/server/src/modules/integration/models/integration.d.ts +9 -5
  52. package/.medusa/server/src/modules/integration/models/integration.js +3 -3
  53. package/.medusa/server/src/modules/integration/services/__tests__/integration-module.unit.spec.d.ts +1 -0
  54. package/.medusa/server/src/modules/integration/services/__tests__/integration-module.unit.spec.js +344 -0
  55. package/.medusa/server/src/modules/integration/services/__tests__/integration-provider.unit.spec.js +2 -2
  56. package/.medusa/server/src/modules/integration/services/integration-module.d.ts +48 -11
  57. package/.medusa/server/src/modules/integration/services/integration-module.js +56 -6
  58. package/.medusa/server/src/modules/integration/types/index.d.ts +11 -0
  59. package/.medusa/server/src/modules/integration/types/index.js +4 -2
  60. package/.medusa/server/src/modules/integration/utils/integration.d.ts +11 -7
  61. package/.medusa/server/src/modules/integration/utils/integration.js +12 -8
  62. package/.medusa/server/src/subscribers/__tests__/invalidate-options-cache.unit.spec.d.ts +1 -0
  63. package/.medusa/server/src/subscribers/__tests__/invalidate-options-cache.unit.spec.js +53 -0
  64. package/.medusa/server/src/types/http/integration/admin/entities.d.ts +39 -4
  65. package/.medusa/server/src/types/http/integration/admin/responses.d.ts +17 -2
  66. package/.medusa/server/src/types/integration/common.d.ts +3 -3
  67. package/.medusa/server/src/workflows/integration/steps/apply-integration-section.d.ts +1 -1
  68. package/.medusa/server/src/workflows/integration/steps/apply-integration-section.js +13 -20
  69. package/.medusa/server/src/workflows/integration/steps/set-integration-enabled.d.ts +1 -1
  70. package/.medusa/server/src/workflows/integration/steps/upsert-integration-record.d.ts +2 -2
  71. package/.medusa/server/src/workflows/integration/workflows/set-integration-enabled.d.ts +1 -1
  72. package/.medusa/server/src/workflows/integration/workflows/upsert-integration.js +2 -2
  73. package/README.md +41 -2
  74. package/README.ru.md +85 -0
  75. package/package.json +7 -3
@@ -11,6 +11,7 @@ const integration_provider_1 = __importDefault(require("./integration-provider")
11
11
  const introspect_1 = require("../descriptor/introspect");
12
12
  const validate_1 = require("../descriptor/validate");
13
13
  const types_1 = require("../types");
14
+ const catalog_1 = require("../../../lib/catalog");
14
15
  const CACHE_TTL_MS = 60_000;
15
16
  class IntegrationModuleService extends (0, utils_1.MedusaService)({
16
17
  Integration: integration_1.default,
@@ -20,6 +21,7 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
20
21
  this.cache_ = new Map();
21
22
  this.providerService_ = deps.integrationProviderService;
22
23
  this.options_ = deps[types_1.INTEGRATION_OPTIONS_KEY] ?? {};
24
+ this.packageMeta_ = deps[types_1.INTEGRATION_PACKAGE_META_KEY] ?? {};
23
25
  }
24
26
  // ── descriptors (sourced from registered integration-providers) ──────────────
25
27
  /** UI descriptors for every registration (one per instance). */
@@ -83,22 +85,25 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
83
85
  }
84
86
  /**
85
87
  * Admin overview: every declared instance (registration) merged with its current row
86
- * state. Lets the UI list configurable integrations before any row exists. No secrets.
88
+ * state, then filtered + paginated server-side. `categories` is the UNFILTERED facet so
89
+ * the UI's tab bar stays stable while a tab is active. No secrets.
87
90
  */
88
- async listIntegrationsOverview() {
91
+ async listIntegrationsOverview(query = {}) {
89
92
  const regs = this.providerService_.listRegistrations();
90
93
  const rows = await this.listIntegrations({}, { take: 1000 });
91
94
  const byId = new Map(rows.map((r) => [r.provider_id, r]));
92
- return regs.map((r) => {
95
+ const all = regs.map((r) => {
93
96
  const d = r.provider.descriptor;
94
97
  const row = byId.get(r.key);
95
98
  return {
96
99
  provider_id: r.key,
97
100
  identifier: r.identifier,
98
101
  instance_id: r.instanceId,
99
- module: d.module,
102
+ category: d.category,
100
103
  display_name: d.displayName,
104
+ description: d.description,
101
105
  icon: d.icon,
106
+ ...this.mapPackageMeta(r.identifier),
102
107
  supports_multiple_instances: d.supportsMultipleInstances ?? false,
103
108
  has_test_connection: typeof d.testConnection === "function",
104
109
  is_configured: !!row,
@@ -107,6 +112,22 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
107
112
  last_test_status: row?.last_test_status ?? null,
108
113
  };
109
114
  });
115
+ // Unfiltered facet — distinct categories across every registration (stable tab bar).
116
+ const categories = [...new Set(all.map((i) => i.category))];
117
+ let filtered = all;
118
+ if (query.category)
119
+ filtered = filtered.filter((i) => i.category === query.category);
120
+ const q = query.q?.trim().toLowerCase();
121
+ if (q) {
122
+ filtered = filtered.filter((i) => [i.display_name, i.identifier, i.instance_id, i.description]
123
+ .filter(Boolean)
124
+ .some((s) => String(s).toLowerCase().includes(q)));
125
+ }
126
+ const count = filtered.length;
127
+ const offset = query.offset ?? 0;
128
+ const limit = query.limit ?? filtered.length;
129
+ const integrations = filtered.slice(offset, offset + limit);
130
+ return { integrations, count, categories };
110
131
  }
111
132
  /**
112
133
  * Run the connection test against the currently-resolved settings.
@@ -135,6 +156,35 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
135
156
  return { status: "failed", message: e?.message ?? "Test failed" };
136
157
  }
137
158
  }
159
+ /** Map a provider identifier to its public package-meta fields (snake_case), or nulls. */
160
+ mapPackageMeta(identifier) {
161
+ const meta = identifier ? this.packageMeta_[identifier] : undefined;
162
+ return { version: meta?.version ?? null, author: meta?.author ?? null, author_url: meta?.authorUrl ?? null };
163
+ }
164
+ /**
165
+ * Package metadata (version/author) for one `provider_id` — resolved by the registration's
166
+ * `identifier` from the loader-injected map. Feeds the detail page's identity header.
167
+ * Returns nulls when the provider is unregistered or its package wasn't resolvable.
168
+ */
169
+ getPackageMeta(providerId) {
170
+ return this.mapPackageMeta(this.providerService_.getRegistration(providerId)?.identifier);
171
+ }
172
+ /**
173
+ * The integration catalog (from the live Gorgo catalog API via loadCatalog(), with an offline fallback) merged with local install state: each entry gets
174
+ * `installed`/`provider_id` by matching its `integrationId` to a registered provider's
175
+ * `identifier`. 1c is a plain module (not an integration provider) → always not installed.
176
+ */
177
+ async getCatalog() {
178
+ const catalog = await (0, catalog_1.loadCatalog)();
179
+ const { integrations } = await this.listIntegrationsOverview();
180
+ // Keyed by identifier; if one identifier has multiple registered instances, the last wins
181
+ // (catalog "installed" is per-integration, so Settings links to that single provider_id).
182
+ const byId = new Map(integrations.map((i) => [i.identifier, i]));
183
+ return catalog.map((c) => {
184
+ const reg = byId.get(c.integrationId);
185
+ return { ...c, installed: !!reg, provider_id: reg?.provider_id ?? null };
186
+ });
187
+ }
138
188
  // ── encryption ───────────────────────────────────────────────────────────────
139
189
  /** The configured passphrase (any non-empty string). Throws if missing. */
140
190
  resolveKey() {
@@ -203,7 +253,7 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
203
253
  options: parsed.success ? parsed.data : assembled,
204
254
  meta: {
205
255
  provider_id: record.provider_id,
206
- module: record.module ?? null,
256
+ category: record.category ?? null,
207
257
  is_enabled: record.is_enabled,
208
258
  },
209
259
  };
@@ -214,4 +264,4 @@ class IntegrationModuleService extends (0, utils_1.MedusaService)({
214
264
  }
215
265
  }
216
266
  exports.default = IntegrationModuleService;
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vc2VydmljZXMvaW50ZWdyYXRpb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXlEO0FBRXpELHdFQUErQztBQUMvQyxxQ0FBb0M7QUFDcEMsdUNBQXNFO0FBQ3RFLGtGQUErRDtBQUUvRCx5REFBb0c7QUFDcEcscURBQTZEO0FBQzdELG9DQUFpRjtBQWNqRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUE7QUFFM0IsTUFBcUIsd0JBQXlCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ2xFLFdBQVcsRUFBWCxxQkFBVztDQUNaLENBQUM7SUFNQSxZQUFZLElBQTBCO1FBQ3BDLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBSlgsV0FBTSxHQUFHLElBQUksR0FBRyxFQUFnRSxDQUFBO1FBS3hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUE7UUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsK0JBQXVCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDckQsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixnRUFBZ0U7SUFDaEUsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN6RCxJQUFBLGlDQUFvQixFQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQ3ZHLENBQUE7SUFDSCxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLHFCQUFxQixDQUFDLFVBQWtCO1FBQ3RD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
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vc2VydmljZXMvaW50ZWdyYXRpb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXlEO0FBRXpELHdFQUErQztBQUMvQyxxQ0FBb0M7QUFDcEMsdUNBQXNFO0FBQ3RFLGtGQUErRDtBQUUvRCx5REFBb0c7QUFDcEcscURBQTZEO0FBQzdELG9DQUFvSTtBQUNwSSxrREFBa0Q7QUE2QmxELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQTtBQUUzQixNQUFxQix3QkFBeUIsU0FBUSxJQUFBLHFCQUFhLEVBQUM7SUFDbEUsV0FBVyxFQUFYLHFCQUFXO0NBQ1osQ0FBQztJQU9BLFlBQVksSUFBMEI7UUFDcEMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFKWCxXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWdFLENBQUE7UUFLeEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQTtRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQywrQkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQ0FBNEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM5RCxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLGdFQUFnRTtJQUNoRSxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3pELElBQUEsaUNBQW9CLEVBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMs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
@@ -5,6 +5,17 @@ export declare const IntegrationProviderRegistrationKey = "integration_providers
5
5
  export declare const IntegrationProviderRegistrationPrefix = "int_";
6
6
  /** Container key under which the resolved module options are registered. */
7
7
  export declare const INTEGRATION_OPTIONS_KEY = "integrationModuleOptions";
8
+ /** Container key under which the resolved per-identifier package metadata map is registered. */
9
+ export declare const INTEGRATION_PACKAGE_META_KEY = "integrationPackageMeta";
10
+ /** Resolved npm-package facts for one provider identifier (from its package.json). */
11
+ export type PackageMeta = {
12
+ name: string | null;
13
+ version: string | null;
14
+ author: string | null;
15
+ authorUrl: string | null;
16
+ };
17
+ /** identifier → PackageMeta. Empty when resolution is unavailable. */
18
+ export type PackageMetaMap = Record<string, PackageMeta>;
8
19
  export type IntegrationModuleOptions = {
9
20
  /** Any non-empty secret; SHA-256-derived to a 32-byte AES-256-GCM key. High-entropy recommended (openssl rand -hex 32). */
10
21
  encryptionKey?: string;
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.INTEGRATION_OPTIONS_KEY = exports.IntegrationProviderRegistrationPrefix = exports.IntegrationProviderRegistrationKey = void 0;
3
+ exports.INTEGRATION_PACKAGE_META_KEY = exports.INTEGRATION_OPTIONS_KEY = exports.IntegrationProviderRegistrationPrefix = exports.IntegrationProviderRegistrationKey = void 0;
4
4
  /** Awilix list-key under which every registered integration-provider key is collected. */
5
5
  exports.IntegrationProviderRegistrationKey = "integration_providers";
6
6
  /** Prefix for each provider's container registration key: `int_<identifier>[_<id>]`. */
7
7
  exports.IntegrationProviderRegistrationPrefix = "int_";
8
8
  /** Container key under which the resolved module options are registered. */
9
9
  exports.INTEGRATION_OPTIONS_KEY = "integrationModuleOptions";
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwwRkFBMEY7QUFDN0UsUUFBQSxrQ0FBa0MsR0FBRyx1QkFBdUIsQ0FBQTtBQUV6RSx3RkFBd0Y7QUFDM0UsUUFBQSxxQ0FBcUMsR0FBRyxNQUFNLENBQUE7QUFFM0QsNEVBQTRFO0FBQy9ELFFBQUEsdUJBQXVCLEdBQUcsMEJBQTBCLENBQUEifQ==
10
+ /** Container key under which the resolved per-identifier package metadata map is registered. */
11
+ exports.INTEGRATION_PACKAGE_META_KEY = "integrationPackageMeta";
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwwRkFBMEY7QUFDN0UsUUFBQSxrQ0FBa0MsR0FBRyx1QkFBdUIsQ0FBQTtBQUV6RSx3RkFBd0Y7QUFDM0UsUUFBQSxxQ0FBcUMsR0FBRyxNQUFNLENBQUE7QUFFM0QsNEVBQTRFO0FBQy9ELFFBQUEsdUJBQXVCLEdBQUcsMEJBQTBCLENBQUE7QUFFakUsZ0dBQWdHO0FBQ25GLFFBQUEsNEJBQTRCLEdBQUcsd0JBQXdCLENBQUEifQ==
@@ -1,17 +1,21 @@
1
- /** Which Medusa module an integration configures. */
2
- export declare const IntegrationModule: {
1
+ /** Integration category — which Medusa module a provider configures. */
2
+ export declare const IntegrationCategory: {
3
3
  readonly PAYMENT: "payment";
4
+ readonly NOTIFICATION: "notification";
4
5
  readonly FULFILLMENT: "fulfillment";
5
- readonly MARKETPLACE: "marketplace";
6
- readonly CRM: "crm";
6
+ readonly SEARCH: "search";
7
+ readonly CONTENT: "content";
8
+ readonly ANALYTICS: "analytics";
9
+ readonly AUTHENTICATION: "authentication";
7
10
  readonly ERP: "erp";
11
+ readonly CRM: "crm";
8
12
  readonly PIM: "pim";
9
- readonly NOTIFICATION: "notification";
13
+ readonly MARKETPLACE: "marketplace";
10
14
  readonly FEED: "feed";
11
- readonly TAX: "tax";
15
+ readonly FILE_PROVIDERS: "file_providers";
12
16
  readonly OTHER: "other";
13
17
  };
14
- export type ModuleKind = (typeof IntegrationModule)[keyof typeof IntegrationModule];
18
+ export type CategoryKind = (typeof IntegrationCategory)[keyof typeof IntegrationCategory];
15
19
  /** Outcome of a provider's connection test. */
16
20
  export declare const IntegrationTestStatus: {
17
21
  readonly PASSED: "passed";
@@ -1,17 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IntegrationTestStatus = exports.IntegrationModule = void 0;
4
- /** Which Medusa module an integration configures. */
5
- exports.IntegrationModule = {
3
+ exports.IntegrationTestStatus = exports.IntegrationCategory = void 0;
4
+ /** Integration category — which Medusa module a provider configures. */
5
+ exports.IntegrationCategory = {
6
6
  PAYMENT: "payment",
7
+ NOTIFICATION: "notification",
7
8
  FULFILLMENT: "fulfillment",
8
- MARKETPLACE: "marketplace",
9
- CRM: "crm",
9
+ SEARCH: "search",
10
+ CONTENT: "content",
11
+ ANALYTICS: "analytics",
12
+ AUTHENTICATION: "authentication",
10
13
  ERP: "erp",
14
+ CRM: "crm",
11
15
  PIM: "pim",
12
- NOTIFICATION: "notification",
16
+ MARKETPLACE: "marketplace",
13
17
  FEED: "feed",
14
- TAX: "tax",
18
+ FILE_PROVIDERS: "file_providers",
15
19
  OTHER: "other",
16
20
  };
17
21
  /** Outcome of a provider's connection test. */
@@ -20,4 +24,4 @@ exports.IntegrationTestStatus = {
20
24
  FAILED: "failed",
21
25
  SKIPPED: "skipped",
22
26
  };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi91dGlscy9pbnRlZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBcUQ7QUFDeEMsUUFBQSxpQkFBaUIsR0FBRztJQUMvQixPQUFPLEVBQUUsU0FBUztJQUNsQixXQUFXLEVBQUUsYUFBYTtJQUMxQixXQUFXLEVBQUUsYUFBYTtJQUMxQixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixZQUFZLEVBQUUsY0FBYztJQUM1QixJQUFJLEVBQUUsTUFBTTtJQUNaLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLE9BQU87Q0FDTixDQUFBO0FBR1YsK0NBQStDO0FBQ2xDLFFBQUEscUJBQXFCLEdBQUc7SUFDbkMsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFNBQVM7Q0FDVixDQUFBIn0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi91dGlscy9pbnRlZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3RUFBd0U7QUFDM0QsUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxPQUFPLEVBQUUsU0FBUztJQUNsQixZQUFZLEVBQUUsY0FBYztJQUM1QixXQUFXLEVBQUUsYUFBYTtJQUMxQixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsU0FBUztJQUNsQixTQUFTLEVBQUUsV0FBVztJQUN0QixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLFdBQVcsRUFBRSxhQUFhO0lBQzFCLElBQUksRUFBRSxNQUFNO0lBQ1osY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxLQUFLLEVBQUUsT0FBTztDQUNOLENBQUE7QUFHViwrQ0FBK0M7QUFDbEMsUUFBQSxxQkFBcUIsR0FBRztJQUNuQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsU0FBUztDQUNWLENBQUEifQ==
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const globals_1 = require("@jest/globals");
37
+ const invalidate_options_cache_1 = __importStar(require("../invalidate-options-cache"));
38
+ const integration_1 = require("../../modules/integration");
39
+ (0, globals_1.describe)("invalidate-options-cache subscriber", () => {
40
+ (0, globals_1.it)("clears the resolved-options cache for the event's provider_id", async () => {
41
+ const clearOptionsCache = globals_1.jest.fn();
42
+ const container = {
43
+ resolve: (key) => (key === integration_1.INTEGRATION_MODULE ? { clearOptionsCache } : undefined),
44
+ };
45
+ await (0, invalidate_options_cache_1.default)({ event: { data: { provider_id: "int_demo" } }, container });
46
+ (0, globals_1.expect)(clearOptionsCache).toHaveBeenCalledTimes(1);
47
+ (0, globals_1.expect)(clearOptionsCache).toHaveBeenCalledWith("int_demo");
48
+ });
49
+ (0, globals_1.it)("subscribes to integration.updated", () => {
50
+ (0, globals_1.expect)(invalidate_options_cache_1.config.event).toBe("integration.updated");
51
+ });
52
+ });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZGF0ZS1vcHRpb25zLWNhY2hlLnVuaXQuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9fX3Rlc3RzX18vaW52YWxpZGF0ZS1vcHRpb25zLWNhY2hlLnVuaXQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUEwRDtBQUMxRCx3RkFBNEU7QUFDNUUsMkRBQThEO0FBRTlELElBQUEsa0JBQVEsRUFBQyxxQ0FBcUMsRUFBRSxHQUFHLEVBQUU7SUFDbkQsSUFBQSxZQUFFLEVBQUMsK0RBQStELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDN0UsTUFBTSxpQkFBaUIsR0FBRyxjQUFJLENBQUMsRUFBRSxFQUFFLENBQUE7UUFDbkMsTUFBTSxTQUFTLEdBQVE7WUFDckIsT0FBTyxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxnQ0FBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDM0YsQ0FBQTtRQUNELE1BQU0sSUFBQSxrQ0FBc0IsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBUyxDQUFDLENBQUE7UUFDaEcsSUFBQSxnQkFBTSxFQUFDLGlCQUFpQixDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEQsSUFBQSxnQkFBTSxFQUFDLGlCQUFpQixDQUFDLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDNUQsQ0FBQyxDQUFDLENBQUE7SUFFRixJQUFBLFlBQUUsRUFBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7UUFDM0MsSUFBQSxnQkFBTSxFQUFDLGlDQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDbEQsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSJ9
@@ -1,13 +1,21 @@
1
- import type { I18nKey, ModuleKind, TestStatus } from "../../../integration";
1
+ import type { I18nKey, CategoryKind, TestStatus } from "../../../integration";
2
2
  /** One declared integration instance (registration) merged with its current row state. */
3
3
  export interface IntegrationOverviewItem {
4
4
  provider_id: string;
5
5
  identifier: string;
6
6
  instance_id: string | null;
7
- module: ModuleKind;
7
+ category: CategoryKind;
8
8
  display_name: I18nKey;
9
+ /** Descriptor description (i18n key) — shown in the list's Description column. */
10
+ description?: I18nKey;
9
11
  /** Descriptor icon — any `<img src>` string (data URI / URL / `/static` path). */
10
12
  icon?: string;
13
+ /** Plugin package version (from package.json), or null if unresolved. */
14
+ version: string | null;
15
+ /** Plugin author name (package.json author, else npm-scope-derived), or null. */
16
+ author: string | null;
17
+ /** Author link (package.json author.url / homepage), or null. */
18
+ author_url: string | null;
11
19
  supports_multiple_instances: boolean;
12
20
  has_test_connection: boolean;
13
21
  is_configured: boolean;
@@ -20,10 +28,37 @@ export interface IntegrationOverviewItem {
20
28
  export interface MaskedIntegration {
21
29
  id: string;
22
30
  provider_id: string;
23
- module: ModuleKind;
31
+ category: CategoryKind;
24
32
  title: string | null;
25
33
  is_enabled: boolean;
26
- has_secrets: boolean;
34
+ /** Secret option keys that currently have a stored value (per field; the value is never sent). */
35
+ configured_secrets: string[];
27
36
  last_test_status: TestStatus | null;
28
37
  values: Record<string, unknown>;
29
38
  }
39
+ /** One integration in the Gorgo catalog (from the live Gorgo API, with an offline yml fallback). */
40
+ export interface CatalogIntegration {
41
+ integrationId: string;
42
+ slug: string;
43
+ npm: string;
44
+ category: string;
45
+ author: string;
46
+ authorLocalized: string;
47
+ label: string;
48
+ shortDescription: string;
49
+ repository: string;
50
+ docsUrl: string;
51
+ /** Config to paste into medusa-config (absent for some providers). */
52
+ configSnippet?: string;
53
+ /** Icon URL (relative to the Gorgo host). */
54
+ icon: string;
55
+ stars: number | null;
56
+ downloads: number | null;
57
+ }
58
+ /** A catalog entry merged with local install state. */
59
+ export interface CatalogItem extends CatalogIntegration {
60
+ /** True when a provider with this `integrationId` is registered in this project. */
61
+ installed: boolean;
62
+ /** The registered `provider_id` when installed, else null. */
63
+ provider_id: string | null;
64
+ }
@@ -1,14 +1,26 @@
1
1
  import type { DeleteResponse } from "@medusajs/framework/types";
2
- import type { IntegrationOverviewItem, MaskedIntegration } from "./entities";
3
- import type { TestConnectionResult, UiDescriptor } from "../../../integration";
2
+ import type { CatalogItem, IntegrationOverviewItem, MaskedIntegration } from "./entities";
3
+ import type { CategoryKind, TestConnectionResult, UiDescriptor } from "../../../integration";
4
4
  export interface AdminIntegrationListResponse {
5
5
  integrations: IntegrationOverviewItem[];
6
+ /** Total items after filtering (pagination total). */
7
+ count: number;
8
+ limit: number;
9
+ offset: number;
10
+ /** Distinct categories across ALL registrations (unfiltered) — drives the tab bar. */
11
+ categories: CategoryKind[];
6
12
  }
7
13
  export interface AdminIntegrationResponse {
8
14
  descriptor?: UiDescriptor;
9
15
  integration: MaskedIntegration | null;
10
16
  /** Whether the stored config passes full validation (all required + cross-section rules). */
11
17
  is_complete: boolean;
18
+ /** Plugin package version (from package.json), or null if unresolved. */
19
+ version: string | null;
20
+ /** Plugin author name (package.json author, else npm-scope-derived), or null. */
21
+ author: string | null;
22
+ /** Author link (package.json author.url / homepage), or null. */
23
+ author_url: string | null;
12
24
  }
13
25
  export interface AdminIntegrationUpsertResponse {
14
26
  integration: MaskedIntegration;
@@ -17,3 +29,6 @@ export interface AdminIntegrationDeleteResponse extends DeleteResponse<"integrat
17
29
  }
18
30
  export interface AdminIntegrationTestResponse extends TestConnectionResult {
19
31
  }
32
+ export interface AdminIntegrationCatalogResponse {
33
+ integrations: CatalogItem[];
34
+ }
@@ -1,7 +1,7 @@
1
1
  import type { I18nKey, FieldControl } from "../../modules/integration/descriptor/meta";
2
2
  export type { I18nKey };
3
- import type { ModuleKind, TestStatus } from "../../modules/integration/utils/integration";
4
- export type { ModuleKind, TestStatus };
3
+ import type { CategoryKind, TestStatus } from "../../modules/integration/utils/integration";
4
+ export type { CategoryKind, TestStatus };
5
5
  export type IntegrationLayouts = "core:single-column" | "core:two-column";
6
6
  export interface TestConnectionContext {
7
7
  options: Record<string, unknown>;
@@ -53,7 +53,7 @@ export interface IntegrationSectionData {
53
53
  isComplete: boolean;
54
54
  }
55
55
  export interface UiDescriptor {
56
- module: string;
56
+ category: string;
57
57
  identifier: string;
58
58
  instanceId: string | null;
59
59
  displayName: I18nKey;
@@ -16,6 +16,6 @@ export type ApplyIntegrationSectionStepInput = {
16
16
  * draft. Full validation happens lazily at resolve (IntegrationModuleService.getResolvedOptions).
17
17
  */
18
18
  export declare const applyIntegrationSectionStep: import("@medusajs/framework/workflows-sdk").StepFunction<ApplyIntegrationSectionStepInput, {
19
- module: import("../../..").ModuleKind;
19
+ category: import("../../..").CategoryKind;
20
20
  options: Record<string, unknown>;
21
21
  }>;
@@ -6,6 +6,7 @@ const utils_1 = require("@medusajs/framework/utils");
6
6
  const integration_1 = require("../../../modules/integration");
7
7
  const introspect_1 = require("../../../modules/integration/descriptor/introspect");
8
8
  const validate_1 = require("../../../modules/integration/descriptor/validate");
9
+ const section_write_1 = require("../../../modules/integration/descriptor/section-write");
9
10
  /**
10
11
  * Resolve which option ids this request may write, merge them over the stored config, run
11
12
  * per-option validation, and encrypt secret options inline.
@@ -23,35 +24,27 @@ exports.applyIntegrationSectionStep = (0, workflows_sdk_1.createStep)("apply-int
23
24
  if (!descriptor) {
24
25
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `No integration provider registered for "${input.provider_id}"`);
25
26
  }
26
- // Resolve the set of option ids this request is allowed to write.
27
- let allowed;
27
+ // Resolve which option ids this request is *scoped* to write: a built-in section may write
28
+ // exactly its own options; a widget (no section_id) may write the declared keys it submits.
29
+ let scopeIds;
28
30
  if (input.section_id != null) {
29
31
  const section = descriptor.sections.find((s) => s.id === input.section_id);
30
32
  if (!section) {
31
33
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Unknown section "${input.section_id}"`);
32
34
  }
33
- allowed = [...section.options];
35
+ scopeIds = [...section.options];
34
36
  }
35
37
  else {
36
- allowed = Object.keys(input.values).filter((k) => Object.prototype.hasOwnProperty.call(descriptor.options, k));
38
+ scopeIds = Object.keys(input.values).filter((k) => Object.prototype.hasOwnProperty.call(descriptor.options, k));
37
39
  }
38
- // Secrets are never sent to the client, so a blank/absent secret means "keep existing".
40
+ // Persist only the ids actually submitted (a partial section save is a draft — unsubmitted
41
+ // fields are left as stored, never wiped; blank secrets keep their existing value).
39
42
  const current = await service.getStoredValues(input.provider_id);
40
43
  const secretKeys = new Set((0, introspect_1.secretFieldNames)(descriptor));
41
- const submitted = {};
42
- for (const id of allowed) {
43
- let v = input.values[id];
44
- if (secretKeys.has(id) && (v == null || v === "")) {
45
- if (id in current)
46
- v = current[id];
47
- else
48
- continue;
49
- }
50
- submitted[id] = v;
51
- }
52
- // Validate submitted ids against the merged config (per-option cross-field rules see siblings).
44
+ const { writeIds, submitted } = (0, section_write_1.selectWritableValues)(scopeIds, input.values, secretKeys);
45
+ // Validate exactly the submitted ids against the merged config (cross-field rules see siblings).
53
46
  const merged = { ...current, ...submitted };
54
- const validated = (0, validate_1.validateOptions)(descriptor, allowed, merged);
47
+ const validated = (0, validate_1.validateOptions)(descriptor, writeIds, merged);
55
48
  if (!validated.success) {
56
49
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, validated.issues.map((i) => `${i.path}: ${i.message}`).join("; "));
57
50
  }
@@ -59,8 +52,8 @@ exports.applyIntegrationSectionStep = (0, workflows_sdk_1.createStep)("apply-int
59
52
  const full = { ...current, ...validated.data };
60
53
  const options = service.encryptForStorage(descriptor, full);
61
54
  return new workflows_sdk_1.StepResponse({
62
- module: descriptor.module,
55
+ category: descriptor.category,
63
56
  options,
64
57
  });
65
58
  });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktaW50ZWdyYXRpb24tc2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaW50ZWdyYXRpb24vc3RlcHMvYXBwbHktaW50ZWdyYXRpb24tc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNEU7QUFDNUUscURBQXVEO0FBQ3ZELDhEQUFpRTtBQUVqRSxtRkFBcUY7QUFDckYsK0VBQWtGO0FBU2xGOzs7Ozs7Ozs7O0dBVUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLElBQUEsMEJBQVUsRUFDbkQsMkJBQTJCLEVBQzNCLEtBQUssRUFBRSxLQUF1QyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMvRCxNQUFNLE9BQU8sR0FBNkIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQ0FBa0IsQ0FBQyxDQUFBO0lBRS9FLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDbkUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLDJDQUEyQyxLQUFLLENBQUMsV0FBVyxHQUFHLENBQ2hFLENBQUE7SUFDSCxDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLElBQUksT0FBaUIsQ0FBQTtJQUNyQixJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENB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
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktaW50ZWdyYXRpb24tc2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaW50ZWdyYXRpb24vc3RlcHMvYXBwbHktaW50ZWdyYXRpb24tc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNEU7QUFDNUUscURBQXVEO0FBQ3ZELDhEQUFpRTtBQUVqRSxtRkFBcUY7QUFDckYsK0VBQWtGO0FBQ2xGLHlGQUE0RjtBQVM1Rjs7Ozs7Ozs7OztHQVVHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRyxJQUFBLDBCQUFVLEVBQ25ELDJCQUEyQixFQUMzQixLQUFLLEVBQUUsS0FBdUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDL0QsTUFBTSxPQUFPLEdBQTZCLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0NBQWtCLENBQUMsQ0FBQTtJQUUvRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ25FLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQiwyQ0FBMkMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUNoRSxDQUFBO0lBQ0gsQ0FBQztJQUVELDJGQUEyRjtJQUMzRiw0RkFBNEY7SUFDNUYsSUFBSSxRQUFrQixDQUFBO0lBQ3RCLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDMUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLG9CQUFvQixLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtRQUNoRyxDQUFDO1FBQ0QsUUFBUSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDakMsQ0FBQztTQUFNLENBQUM7UUFDTixRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pILENBQUM7SUFFRCwyRkFBMkY7SUFDM0Ysb0ZBQW9GO0lBQ3BGLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBQSw2QkFBZ0IsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBQ3hELE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBQSxvQ0FBb0IsRUFBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUV4RixpR0FBaUc7SUFDakcsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFBO0lBQzNDLE1BQU0sU0FBUyxHQUFHLElBQUEsMEJBQWUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2xFLENBQUE7SUFDSCxDQUFDO0lBRUQsbUdBQW1HO0lBQ25HLE1BQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDOUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMzRCxPQUFPLElBQUksNEJBQVksQ0FBQztRQUN0QixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7UUFDN0IsT0FBTztLQUNSLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FDRixDQUFBIn0=
@@ -4,7 +4,7 @@ export type SetIntegrationEnabledStepInput = {
4
4
  };
5
5
  export declare const setIntegrationEnabledStep: import("@medusajs/framework/workflows-sdk").StepFunction<SetIntegrationEnabledStepInput, {
6
6
  id: string;
7
- module: "payment" | "fulfillment" | "marketplace" | "crm" | "erp" | "pim" | "notification" | "feed" | "tax" | "other";
7
+ category: "search" | "payment" | "notification" | "fulfillment" | "content" | "analytics" | "authentication" | "erp" | "crm" | "pim" | "marketplace" | "feed" | "file_providers" | "other";
8
8
  provider_id: string;
9
9
  title: string | null;
10
10
  options: Record<string, unknown>;
@@ -1,7 +1,7 @@
1
- import type { ModuleKind } from "../../../modules/integration/descriptor/define";
1
+ import type { CategoryKind } from "../../../modules/integration/descriptor/define";
2
2
  export type UpsertIntegrationRecordStepInput = {
3
3
  provider_id: string;
4
- module: ModuleKind;
4
+ category: CategoryKind;
5
5
  options: Record<string, unknown>;
6
6
  title?: string | null;
7
7
  };
@@ -5,7 +5,7 @@ export type SetIntegrationEnabledWorkflowInput = {
5
5
  export declare const setIntegrationEnabledWorkflowId = "set-integration-enabled";
6
6
  export declare const setIntegrationEnabledWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<SetIntegrationEnabledWorkflowInput, {
7
7
  id: string;
8
- module: "payment" | "fulfillment" | "marketplace" | "crm" | "erp" | "pim" | "notification" | "feed" | "tax" | "other";
8
+ category: "search" | "payment" | "notification" | "fulfillment" | "content" | "analytics" | "authentication" | "erp" | "crm" | "pim" | "marketplace" | "feed" | "file_providers" | "other";
9
9
  provider_id: string;
10
10
  title: string | null;
11
11
  options: Record<string, unknown>;
@@ -13,7 +13,7 @@ exports.upsertIntegrationWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.
13
13
  const recordInput = (0, workflows_sdk_1.transform)({ input, prepared }, (data) => ({
14
14
  provider_id: data.input.provider_id,
15
15
  title: data.input.title ?? null,
16
- module: data.prepared.module,
16
+ category: data.prepared.category,
17
17
  options: data.prepared.options,
18
18
  }));
19
19
  const record = (0, steps_1.upsertIntegrationRecordStep)(recordInput);
@@ -26,4 +26,4 @@ exports.upsertIntegrationWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.
26
26
  })));
27
27
  return new workflows_sdk_1.WorkflowResponse(record);
28
28
  });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWludGVncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9pbnRlZ3JhdGlvbi93b3JrZmxvd3MvdXBzZXJ0LWludGVncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUErRjtBQUMvRixvQ0FJaUI7QUFTSixRQUFBLDJCQUEyQixHQUFHLG9CQUFvQixDQUFBO0FBRWxELFFBQUEseUJBQXlCLEdBQUcsSUFBQSw4QkFBYyxFQUNyRCxtQ0FBMkIsRUFDM0IsVUFBVSxLQUFxQztJQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFBLG1DQUEyQixFQUFDO1FBQzNDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJO1FBQ3BDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtLQUNyQixDQUFDLENBQUE7SUFFRixNQUFNLFdBQVcsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUQsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVztRQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSTtRQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQzVCLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87S0FDL0IsQ0FBQyxDQUFDLENBQUE7SUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFBLG1DQUEyQixFQUFDLFdBQVcsQ0FBQyxDQUFBO0lBRXZELElBQUEsZ0NBQXdCLEVBQ3RCLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVztZQUNoQyxNQUFNLEVBQUUsUUFBUTtTQUNqQjtLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUE7SUFFRCxPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUNGLENBQUEifQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWludGVncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9pbnRlZ3JhdGlvbi93b3JrZmxvd3MvdXBzZXJ0LWludGVncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUErRjtBQUMvRixvQ0FJaUI7QUFTSixRQUFBLDJCQUEyQixHQUFHLG9CQUFvQixDQUFBO0FBRWxELFFBQUEseUJBQXlCLEdBQUcsSUFBQSw4QkFBYyxFQUNyRCxtQ0FBMkIsRUFDM0IsVUFBVSxLQUFxQztJQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFBLG1DQUEyQixFQUFDO1FBQzNDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJO1FBQ3BDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtLQUNyQixDQUFDLENBQUE7SUFFRixNQUFNLFdBQVcsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUQsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVztRQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSTtRQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1FBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87S0FDL0IsQ0FBQyxDQUFDLENBQUE7SUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFBLG1DQUEyQixFQUFDLFdBQVcsQ0FBQyxDQUFBO0lBRXZELElBQUEsZ0NBQXdCLEVBQ3RCLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVztZQUNoQyxNQUFNLEVBQUUsUUFBUTtTQUNqQjtLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUE7SUFFRCxPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUNGLENBQUEifQ==