@gorgo/medusa-integration 0.1.0 → 0.1.2

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.
@@ -2188,7 +2188,7 @@ const EditPage = () => {
2188
2188
  IntegrationFieldValue,
2189
2189
  {
2190
2190
  field: f,
2191
- value: (_a = record == null ? void 0 : record.values) == null ? void 0 : _a[f.name],
2191
+ value: ((_a = record == null ? void 0 : record.values) == null ? void 0 : _a[f.name]) ?? f.default,
2192
2192
  secretConfigured: configuredSecrets.has(f.name)
2193
2193
  }
2194
2194
  ) }, f.name);
@@ -2184,7 +2184,7 @@ const EditPage = () => {
2184
2184
  IntegrationFieldValue,
2185
2185
  {
2186
2186
  field: f,
2187
- value: (_a = record == null ? void 0 : record.values) == null ? void 0 : _a[f.name],
2187
+ value: ((_a = record == null ? void 0 : record.values) == null ? void 0 : _a[f.name]) ?? f.default,
2188
2188
  secretConfigured: configuredSecrets.has(f.name)
2189
2189
  }
2190
2190
  ) }, f.name);
@@ -1,7 +1,7 @@
1
1
  import { z } from "@medusajs/deps/zod";
2
2
  export type AdminUpsertIntegrationType = z.infer<typeof AdminUpsertIntegration>;
3
3
  export declare const AdminUpsertIntegration: z.ZodObject<{
4
- title: z.ZodOptional<z.ZodString>;
4
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5
5
  section_id: z.ZodOptional<z.ZodString>;
6
6
  values: z.ZodRecord<z.ZodString, z.ZodUnknown>;
7
7
  }, z.core.$strip>;
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdminGetIntegrationsParams = exports.AdminSetIntegrationEnabled = exports.AdminUpsertIntegration = void 0;
4
4
  const zod_1 = require("@medusajs/deps/zod");
5
5
  exports.AdminUpsertIntegration = zod_1.z.object({
6
- title: zod_1.z.string().optional(),
6
+ // Omitted → the stored title is kept; explicit `null` → cleared.
7
+ title: zod_1.z.string().nullable().optional(),
7
8
  // Which descriptor section these values belong to. Omitted by widgets, which submit
8
9
  // their own option ids directly — the server then validates exactly the submitted keys.
9
10
  section_id: zod_1.z.string().optional(),
@@ -18,4 +19,4 @@ exports.AdminGetIntegrationsParams = zod_1.z.object({
18
19
  limit: zod_1.z.coerce.number().int().min(1).max(1000).optional(),
19
20
  offset: zod_1.z.coerce.number().int().min(0).optional(),
20
21
  });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vaW50ZWdyYXRpb25zL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXNDO0FBR3pCLFFBQUEsc0JBQXNCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixvRkFBb0Y7SUFDcEYsd0ZBQXdGO0lBQ3hGLFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Q0FDMUMsQ0FBQyxDQUFBO0FBR1csUUFBQSwwQkFBMEIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pELFVBQVUsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFO0NBQ3hCLENBQUMsQ0FBQTtBQUdXLFFBQUEsMEJBQTBCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxRCxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ2xELENBQUMsQ0FBQSJ9
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vaW50ZWdyYXRpb25zL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXNDO0FBR3pCLFFBQUEsc0JBQXNCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxpRUFBaUU7SUFDakUsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsb0ZBQW9GO0lBQ3BGLHdGQUF3RjtJQUN4RixVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0NBQzFDLENBQUMsQ0FBQTtBQUdXLFFBQUEsMEJBQTBCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxVQUFVLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRTtDQUN4QixDQUFDLENBQUE7QUFHVyxRQUFBLDBCQUEwQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDakQsQ0FBQyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUQsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUNsRCxDQUFDLENBQUEifQ==
@@ -8,6 +8,10 @@ export { resolveIntegrationOptions } from "./lib/resolve-integration-options";
8
8
  export type { ResolveIntegrationOptionsInput } from "./lib/resolve-integration-options";
9
9
  export { getResolvedIntegrationOptionsWorkflow, getResolvedIntegrationOptionsStep, } from "./workflows/integration";
10
10
  export type { GetResolvedIntegrationOptionsWorkflowInput, GetResolvedIntegrationOptionsStepInput, } from "./workflows/integration";
11
+ export { upsertIntegrationWorkflow } from "./workflows/integration";
12
+ export type { UpsertIntegrationWorkflowInput } from "./workflows/integration";
13
+ export { integrationProviderKey, parseIntegrationProviderKey } from "./modules/integration/utils";
14
+ export type { ParsedIntegrationProviderKey } from "./modules/integration/utils";
11
15
  export { INTEGRATION_MODULE } from "./modules/integration";
12
16
  export { default as IntegrationModuleService } from "./modules/integration/services/integration-module";
13
17
  export type { ResolvedOptions } from "./modules/integration/services/integration-module";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.IntegrationModuleService = exports.INTEGRATION_MODULE = exports.getResolvedIntegrationOptionsStep = exports.getResolvedIntegrationOptionsWorkflow = exports.resolveIntegrationOptions = exports.isDescriptorComplete = exports.collectValidationIssues = exports.AbstractIntegrationProvider = exports.z = exports.defineIntegration = void 0;
6
+ exports.IntegrationModuleService = exports.INTEGRATION_MODULE = exports.parseIntegrationProviderKey = exports.integrationProviderKey = exports.upsertIntegrationWorkflow = exports.getResolvedIntegrationOptionsStep = exports.getResolvedIntegrationOptionsWorkflow = exports.resolveIntegrationOptions = exports.isDescriptorComplete = exports.collectValidationIssues = exports.AbstractIntegrationProvider = exports.z = exports.defineIntegration = void 0;
7
7
  // ── For integration-provider authors ─────────────────────────────────────────
8
8
  var define_1 = require("./modules/integration/descriptor/define");
9
9
  Object.defineProperty(exports, "defineIntegration", { enumerable: true, get: function () { return define_1.defineIntegration; } });
@@ -20,9 +20,16 @@ Object.defineProperty(exports, "resolveIntegrationOptions", { enumerable: true,
20
20
  var integration_1 = require("./workflows/integration");
21
21
  Object.defineProperty(exports, "getResolvedIntegrationOptionsWorkflow", { enumerable: true, get: function () { return integration_1.getResolvedIntegrationOptionsWorkflow; } });
22
22
  Object.defineProperty(exports, "getResolvedIntegrationOptionsStep", { enumerable: true, get: function () { return integration_1.getResolvedIntegrationOptionsStep; } });
23
+ var integration_2 = require("./workflows/integration");
24
+ Object.defineProperty(exports, "upsertIntegrationWorkflow", { enumerable: true, get: function () { return integration_2.upsertIntegrationWorkflow; } });
25
+ // The `provider_id` convention (`int_<identifier>[_<instanceId>]`) — for providers that
26
+ // receive a provider_id on their own routes and need to build or parse one.
27
+ var utils_1 = require("./modules/integration/utils");
28
+ Object.defineProperty(exports, "integrationProviderKey", { enumerable: true, get: function () { return utils_1.integrationProviderKey; } });
29
+ Object.defineProperty(exports, "parseIntegrationProviderKey", { enumerable: true, get: function () { return utils_1.parseIntegrationProviderKey; } });
23
30
  // ── For consumers of the integration module ──────────────────────────────────
24
- var integration_2 = require("./modules/integration");
25
- Object.defineProperty(exports, "INTEGRATION_MODULE", { enumerable: true, get: function () { return integration_2.INTEGRATION_MODULE; } });
31
+ var integration_3 = require("./modules/integration");
32
+ Object.defineProperty(exports, "INTEGRATION_MODULE", { enumerable: true, get: function () { return integration_3.INTEGRATION_MODULE; } });
26
33
  var integration_module_1 = require("./modules/integration/services/integration-module");
27
34
  Object.defineProperty(exports, "IntegrationModuleService", { enumerable: true, get: function () { return __importDefault(integration_module_1).default; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0ZBQWdGO0FBQ2hGLGtFQUE4RTtBQUFyRSwyR0FBQSxpQkFBaUIsT0FBQTtBQUFFLDJGQUFBLENBQUMsT0FBQTtBQUM3QiwyR0FBdUc7QUFBOUYsNElBQUEsMkJBQTJCLE9BQUE7QUFZcEMsZ0ZBQWdGO0FBQ2hGLHNFQUF5RztBQUFoRyxtSEFBQSx1QkFBdUIsT0FBQTtBQUFFLGdIQUFBLG9CQUFvQixPQUFBO0FBSXRELGtGQUFrRjtBQUNsRixpRkFBNkU7QUFBcEUsd0lBQUEseUJBQXlCLE9BQUE7QUFFbEMsdURBR2dDO0FBRjlCLG9JQUFBLHFDQUFxQyxPQUFBO0FBQ3JDLGdJQUFBLGlDQUFpQyxPQUFBO0FBT25DLGdGQUFnRjtBQUNoRixxREFBMEQ7QUFBakQsaUhBQUEsa0JBQWtCLE9BQUE7QUFDM0Isd0ZBQXVHO0FBQTlGLCtJQUFBLE9BQU8sT0FBNEIifQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0ZBQWdGO0FBQ2hGLGtFQUE4RTtBQUFyRSwyR0FBQSxpQkFBaUIsT0FBQTtBQUFFLDJGQUFBLENBQUMsT0FBQTtBQUM3QiwyR0FBdUc7QUFBOUYsNElBQUEsMkJBQTJCLE9BQUE7QUFZcEMsZ0ZBQWdGO0FBQ2hGLHNFQUF5RztBQUFoRyxtSEFBQSx1QkFBdUIsT0FBQTtBQUFFLGdIQUFBLG9CQUFvQixPQUFBO0FBSXRELGtGQUFrRjtBQUNsRixpRkFBNkU7QUFBcEUsd0lBQUEseUJBQXlCLE9BQUE7QUFFbEMsdURBR2dDO0FBRjlCLG9JQUFBLHFDQUFxQyxPQUFBO0FBQ3JDLGdJQUFBLGlDQUFpQyxPQUFBO0FBT25DLHVEQUFtRTtBQUExRCx3SEFBQSx5QkFBeUIsT0FBQTtBQUdsQyx3RkFBd0Y7QUFDeEYsNEVBQTRFO0FBQzVFLHFEQUFpRztBQUF4RiwrR0FBQSxzQkFBc0IsT0FBQTtBQUFFLG9IQUFBLDJCQUEyQixPQUFBO0FBRzVELGdGQUFnRjtBQUNoRixxREFBMEQ7QUFBakQsaUhBQUEsa0JBQWtCLE9BQUE7QUFDM0Isd0ZBQXVHO0FBQTlGLCtJQUFBLE9BQU8sT0FBNEIifQ==
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const types_1 = require("../types");
4
+ const provider_id_1 = require("../utils/provider-id");
4
5
  /**
5
6
  * Thin registry over the integration-providers registered into the module container by
6
7
  * `loadProviders`. Each registration in `options.providers` is one instance, identified
@@ -17,7 +18,7 @@ class IntegrationProviderService {
17
18
  }
18
19
  /** Build the container key for a `(identifier, instanceId)` pair. */
19
20
  static key(identifier, instanceId) {
20
- return `${types_1.IntegrationProviderRegistrationPrefix}${identifier}${instanceId ? `_${instanceId}` : ""}`;
21
+ return (0, provider_id_1.integrationProviderKey)(identifier, instanceId);
21
22
  }
22
23
  /** All registered provider instances. */
23
24
  listProviders() {
@@ -73,4 +74,4 @@ class IntegrationProviderService {
73
74
  }
74
75
  }
75
76
  exports.default = IntegrationProviderService;
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9zZXJ2aWNlcy9pbnRlZ3JhdGlvbi1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG9DQUFnRTtBQWlCaEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBcUIsMEJBQTBCO0lBRzdDLFlBQVksU0FBK0I7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7SUFDaEMsQ0FBQztJQUVELHFFQUFxRTtJQUNyRSxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQWtCLEVBQUUsVUFBMEI7UUFDdkQsT0FBTyxHQUFHLDZDQUFxQyxHQUFHLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFBO0lBQ3JHLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsYUFBYTtRQUNYLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyw2Q0FBcUMsQ0FBQyxDQUFDO2FBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUErQixDQUFDLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsK0VBQStFO0lBQy9FLGlCQUFpQjtRQUNmLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyw2Q0FBcUMsQ0FBQyxDQUFDO2FBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUErQixDQUFDLENBQUE7WUFDcEUsT0FBTztnQkFDTCxHQUFHLEVBQUUsQ0FBQztnQkFDTixVQUFVLEVBQUUsUUFBUSxDQUFDLGFBQWEsRUFBRTtnQkFDcEMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUU7Z0JBQ3BDLFFBQVE7YUFDVCxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQscURBQXFEO0lBQ3JELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBaUMsQ0FBQyxDQUFBO1FBQ3RFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IsNENBQTRDLEdBQUcsc0dBQXNHLENBQ3RKLENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUVELGtFQUFrRTtJQUNsRSxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLFVBQTBCO1FBQzdELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFDbkYsQ0FBQztJQUVELGlGQUFpRjtJQUNqRixXQUFXLENBQUMsVUFBa0IsRUFBRSxVQUEwQjtRQUN4RCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUN6QiwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBK0IsQ0FDckYsQ0FBQTtJQUNILENBQUM7SUFFRCw2RkFBNkY7SUFDN0YsZUFBZSxDQUFDLEdBQVc7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVU7WUFDeEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1lBQ3hCLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtTQUN6QixDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7Q0FDRjtBQTFFRCw2Q0EwRUMifQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9zZXJ2aWNlcy9pbnRlZ3JhdGlvbi1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG9DQUFnRTtBQUNoRSxzREFBNkQ7QUFpQjdEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQXFCLDBCQUEwQjtJQUc3QyxZQUFZLFNBQStCO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxxRUFBcUU7SUFDckUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFVBQTBCO1FBQ3ZELE9BQU8sSUFBQSxvQ0FBc0IsRUFBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxhQUFhO1FBQ1gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDbkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLDZDQUFxQyxDQUFDLENBQUM7YUFDbEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQStCLENBQUMsQ0FBQyxDQUFBO0lBQ3BFLENBQUM7SUFFRCwrRUFBK0U7SUFDL0UsaUJBQWlCO1FBQ2YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDbkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLDZDQUFxQyxDQUFDLENBQUM7YUFDbEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDVCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQStCLENBQUMsQ0FBQTtZQUNwRSxPQUFPO2dCQUNMLEdBQUcsRUFBRSxDQUFDO2dCQUNOLFVBQVUsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFO2dCQUNwQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGFBQWEsRUFBRTtnQkFDcEMsUUFBUTthQUNULENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxxREFBcUQ7SUFDckQsYUFBYSxDQUFDLEdBQVc7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFpQyxDQUFDLENBQUE7UUFDdEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FDYiw0Q0FBNEMsR0FBRyxzR0FBc0csQ0FDdEosQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLGdCQUFnQixDQUFDLFVBQWtCLEVBQUUsVUFBMEI7UUFDN0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLFdBQVcsQ0FBQyxVQUFrQixFQUFFLFVBQTBCO1FBQ3hELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3pCLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUErQixDQUNyRixDQUFBO0lBQ0gsQ0FBQztJQUVELDZGQUE2RjtJQUM3RixlQUFlLENBQUMsR0FBVztRQUN6QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVTtZQUN4QixVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7WUFDeEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1NBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztDQUNGO0FBMUVELDZDQTBFQyJ9
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const provider_id_1 = require("../provider-id");
7
+ const integration_provider_1 = __importDefault(require("../../services/integration-provider"));
8
+ describe("integrationProviderKey", () => {
9
+ it("keys the default instance without a suffix", () => {
10
+ expect((0, provider_id_1.integrationProviderKey)("apiship")).toBe("int_apiship");
11
+ expect((0, provider_id_1.integrationProviderKey)("apiship", null)).toBe("int_apiship");
12
+ expect((0, provider_id_1.integrationProviderKey)("apiship", "")).toBe("int_apiship");
13
+ });
14
+ it("appends a named instance", () => {
15
+ expect((0, provider_id_1.integrationProviderKey)("apiship", "apiship-1")).toBe("int_apiship_apiship-1");
16
+ });
17
+ it("is the same key the registry uses", () => {
18
+ expect(integration_provider_1.default.key("apiship", "eu")).toBe((0, provider_id_1.integrationProviderKey)("apiship", "eu"));
19
+ });
20
+ });
21
+ describe("parseIntegrationProviderKey", () => {
22
+ it("recognises the default instance", () => {
23
+ expect((0, provider_id_1.parseIntegrationProviderKey)("int_apiship", "apiship")).toEqual({
24
+ identifier: "apiship",
25
+ instanceId: null,
26
+ });
27
+ });
28
+ it("extracts a named instance", () => {
29
+ expect((0, provider_id_1.parseIntegrationProviderKey)("int_apiship_apiship-1", "apiship")).toEqual({
30
+ identifier: "apiship",
31
+ instanceId: "apiship-1",
32
+ });
33
+ });
34
+ it("keeps underscores inside the instance id", () => {
35
+ expect((0, provider_id_1.parseIntegrationProviderKey)("int_apiship_eu_west", "apiship")).toEqual({
36
+ identifier: "apiship",
37
+ instanceId: "eu_west",
38
+ });
39
+ });
40
+ it("rejects another provider's key", () => {
41
+ expect((0, provider_id_1.parseIntegrationProviderKey)("int_tkassa", "apiship")).toBeNull();
42
+ expect((0, provider_id_1.parseIntegrationProviderKey)("int_tkassa_1", "apiship")).toBeNull();
43
+ // A different identifier that merely starts with the same characters.
44
+ expect((0, provider_id_1.parseIntegrationProviderKey)("int_apishipx", "apiship")).toBeNull();
45
+ });
46
+ it("rejects malformed and empty input", () => {
47
+ expect((0, provider_id_1.parseIntegrationProviderKey)(undefined, "apiship")).toBeNull();
48
+ expect((0, provider_id_1.parseIntegrationProviderKey)(null, "apiship")).toBeNull();
49
+ expect((0, provider_id_1.parseIntegrationProviderKey)("", "apiship")).toBeNull();
50
+ expect((0, provider_id_1.parseIntegrationProviderKey)("apiship", "apiship")).toBeNull();
51
+ // Trailing separator with no instance id.
52
+ expect((0, provider_id_1.parseIntegrationProviderKey)("int_apiship_", "apiship")).toBeNull();
53
+ });
54
+ it("round-trips with integrationProviderKey", () => {
55
+ for (const instanceId of [null, "a", "apiship-1", "eu_west"]) {
56
+ const key = (0, provider_id_1.integrationProviderKey)("apiship", instanceId);
57
+ expect((0, provider_id_1.parseIntegrationProviderKey)(key, "apiship")).toEqual({
58
+ identifier: "apiship",
59
+ instanceId,
60
+ });
61
+ }
62
+ });
63
+ });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItaWQudW5pdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vdXRpbHMvX190ZXN0c19fL3Byb3ZpZGVyLWlkLnVuaXQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUFvRjtBQUNwRiwrRkFBNEU7QUFFNUUsUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxFQUFFLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO1FBQ3BELE1BQU0sQ0FBQyxJQUFBLG9DQUFzQixFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzdELE1BQU0sQ0FBQyxJQUFBLG9DQUFzQixFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNuRSxNQUFNLENBQUMsSUFBQSxvQ0FBc0IsRUFBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDbkUsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO1FBQ2xDLE1BQU0sQ0FBQyxJQUFBLG9DQUFzQixFQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBQ3RGLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtRQUMzQyxNQUFNLENBQUMsOEJBQTBCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDMUQsSUFBQSxvQ0FBc0IsRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQ3hDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtB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
@@ -1 +1,3 @@
1
1
  export { AbstractIntegrationProvider } from "./abstract-integration-provider";
2
+ export { integrationProviderKey, parseIntegrationProviderKey } from "./provider-id";
3
+ export type { ParsedIntegrationProviderKey } from "./provider-id";
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbstractIntegrationProvider = void 0;
3
+ exports.parseIntegrationProviderKey = exports.integrationProviderKey = exports.AbstractIntegrationProvider = void 0;
4
4
  var abstract_integration_provider_1 = require("./abstract-integration-provider");
5
5
  Object.defineProperty(exports, "AbstractIntegrationProvider", { enumerable: true, get: function () { return abstract_integration_provider_1.AbstractIntegrationProvider; } });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpRkFBNkU7QUFBcEUsNElBQUEsMkJBQTJCLE9BQUEifQ==
6
+ var provider_id_1 = require("./provider-id");
7
+ Object.defineProperty(exports, "integrationProviderKey", { enumerable: true, get: function () { return provider_id_1.integrationProviderKey; } });
8
+ Object.defineProperty(exports, "parseIntegrationProviderKey", { enumerable: true, get: function () { return provider_id_1.parseIntegrationProviderKey; } });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpRkFBNkU7QUFBcEUsNElBQUEsMkJBQTJCLE9BQUE7QUFDcEMsNkNBQW1GO0FBQTFFLHFIQUFBLHNCQUFzQixPQUFBO0FBQUUsMEhBQUEsMkJBQTJCLE9BQUEifQ==
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The `provider_id` convention, in one place: every registration is keyed
3
+ * `int_<identifier>[_<instanceId>]`, and that key is also the stored `provider_id`.
4
+ *
5
+ * Pure (no container, no db) so provider packages can import it to build/parse the ids they
6
+ * receive on their own routes without re-deriving the format.
7
+ */
8
+ export declare function integrationProviderKey(identifier: string, instanceId?: string | null): string;
9
+ export type ParsedIntegrationProviderKey = {
10
+ identifier: string;
11
+ /** `null` for the default (single) instance. */
12
+ instanceId: string | null;
13
+ };
14
+ /**
15
+ * Inverse of {@link integrationProviderKey} for a KNOWN identifier — the only direction that
16
+ * is unambiguous, since both identifiers and instance ids may contain `_`:
17
+ *
18
+ * parseIntegrationProviderKey("int_apiship_eu", "apiship") → { identifier: "apiship", instanceId: "eu" }
19
+ * parseIntegrationProviderKey("int_apiship", "apiship") → { identifier: "apiship", instanceId: null }
20
+ * parseIntegrationProviderKey("int_tkassa", "apiship") → null
21
+ */
22
+ export declare function parseIntegrationProviderKey(providerId: string | null | undefined, identifier: string): ParsedIntegrationProviderKey | null;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.integrationProviderKey = integrationProviderKey;
4
+ exports.parseIntegrationProviderKey = parseIntegrationProviderKey;
5
+ const types_1 = require("../types");
6
+ /**
7
+ * The `provider_id` convention, in one place: every registration is keyed
8
+ * `int_<identifier>[_<instanceId>]`, and that key is also the stored `provider_id`.
9
+ *
10
+ * Pure (no container, no db) so provider packages can import it to build/parse the ids they
11
+ * receive on their own routes without re-deriving the format.
12
+ */
13
+ function integrationProviderKey(identifier, instanceId) {
14
+ return `${types_1.IntegrationProviderRegistrationPrefix}${identifier}${instanceId ? `_${instanceId}` : ""}`;
15
+ }
16
+ /**
17
+ * Inverse of {@link integrationProviderKey} for a KNOWN identifier — the only direction that
18
+ * is unambiguous, since both identifiers and instance ids may contain `_`:
19
+ *
20
+ * parseIntegrationProviderKey("int_apiship_eu", "apiship") → { identifier: "apiship", instanceId: "eu" }
21
+ * parseIntegrationProviderKey("int_apiship", "apiship") → { identifier: "apiship", instanceId: null }
22
+ * parseIntegrationProviderKey("int_tkassa", "apiship") → null
23
+ */
24
+ function parseIntegrationProviderKey(providerId, identifier) {
25
+ if (!providerId)
26
+ return null;
27
+ const base = integrationProviderKey(identifier);
28
+ if (providerId === base)
29
+ return { identifier, instanceId: null };
30
+ const instancePrefix = `${base}_`;
31
+ if (!providerId.startsWith(instancePrefix))
32
+ return null;
33
+ const instanceId = providerId.slice(instancePrefix.length);
34
+ return instanceId ? { identifier, instanceId } : null;
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi91dGlscy9wcm92aWRlci1pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLHdEQUVDO0FBZ0JELGtFQWNDO0FBekNELG9DQUEwRTtBQUUxRTs7Ozs7O0dBTUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxVQUFrQixFQUFFLFVBQTBCO0lBQ25GLE9BQU8sR0FBRyw2Q0FBTSxHQUFHLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFBO0FBQ3RFLENBQUM7QUFRRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQ3pDLFVBQXFDLEVBQ3JDLFVBQWtCO0lBRWxCLElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFFNUIsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDL0MsSUFBSSxVQUFVLEtBQUssSUFBSTtRQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFBO0lBRWhFLE1BQU0sY0FBYyxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUE7SUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFFdkQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDMUQsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFDdkQsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ export * from "./integration";
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Barrel for the `@gorgo/medusa-integration/workflows` subpath declared in package.json.
18
+ __exportStar(require("./integration"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5RkFBeUY7QUFDekYsZ0RBQTZCIn0=
@@ -1,4 +1,5 @@
1
1
  export { upsertIntegrationWorkflow } from "./upsert-integration";
2
+ export type { UpsertIntegrationWorkflowInput } from "./upsert-integration";
2
3
  export { deleteIntegrationWorkflow } from "./delete-integration";
3
4
  export { testIntegrationConnectionWorkflow } from "./test-integration-connection";
4
5
  export { setIntegrationEnabledWorkflow } from "./set-integration-enabled";
@@ -11,4 +11,4 @@ var set_integration_enabled_1 = require("./set-integration-enabled");
11
11
  Object.defineProperty(exports, "setIntegrationEnabledWorkflow", { enumerable: true, get: function () { return set_integration_enabled_1.setIntegrationEnabledWorkflow; } });
12
12
  var get_resolved_integration_options_1 = require("./get-resolved-integration-options");
13
13
  Object.defineProperty(exports, "getResolvedIntegrationOptionsWorkflow", { enumerable: true, get: function () { return get_resolved_integration_options_1.getResolvedIntegrationOptionsWorkflow; } });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2ludGVncmF0aW9uL3dvcmtmbG93cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBZ0U7QUFBdkQsK0hBQUEseUJBQXlCLE9BQUE7QUFDbEMsMkRBQWdFO0FBQXZELCtIQUFBLHlCQUF5QixPQUFBO0FBQ2xDLDZFQUFpRjtBQUF4RSxnSkFBQSxpQ0FBaUMsT0FBQTtBQUMxQyxxRUFBeUU7QUFBaEUsd0lBQUEsNkJBQTZCLE9BQUE7QUFDdEMsdUZBQTBGO0FBQWpGLHlKQUFBLHFDQUFxQyxPQUFBIn0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2ludGVncmF0aW9uL3dvcmtmbG93cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBZ0U7QUFBdkQsK0hBQUEseUJBQXlCLE9BQUE7QUFFbEMsMkRBQWdFO0FBQXZELCtIQUFBLHlCQUF5QixPQUFBO0FBQ2xDLDZFQUFpRjtBQUF4RSxnSkFBQSxpQ0FBaUMsT0FBQTtBQUMxQyxxRUFBeUU7QUFBaEUsd0lBQUEsNkJBQTZCLE9BQUE7QUFDdEMsdUZBQTBGO0FBQWpGLHlKQUFBLHFDQUFxQyxPQUFBIn0=
@@ -12,9 +12,9 @@ exports.upsertIntegrationWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.
12
12
  });
13
13
  const recordInput = (0, workflows_sdk_1.transform)({ input, prepared }, (data) => ({
14
14
  provider_id: data.input.provider_id,
15
- title: data.input.title ?? null,
16
15
  category: data.prepared.category,
17
16
  options: data.prepared.options,
17
+ ...(data.input.title !== undefined ? { title: data.input.title } : {}),
18
18
  }));
19
19
  const record = (0, steps_1.upsertIntegrationRecordStep)(recordInput);
20
20
  (0, steps_1.emitIntegrationEventStep)((0, workflows_sdk_1.transform)({ input }, (d) => ({
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWludGVncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9pbnRlZ3JhdGlvbi93b3JrZmxvd3MvdXBzZXJ0LWludGVncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUErRjtBQUMvRixvQ0FJaUI7QUFTSixRQUFBLDJCQUEyQixHQUFHLG9CQUFvQixDQUFBO0FBRWxELFFBQUEseUJBQXlCLEdBQUcsSUFBQSw4QkFBYyxFQUNyRCxtQ0FBMkIsRUFDM0IsVUFBVSxLQUFxQztJQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFBLG1DQUEyQixFQUFDO1FBQzNDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJO1FBQ3BDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtLQUNyQixDQUFDLENBQUE7SUFFRixNQUFNLFdBQVcsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUQsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVztRQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSTtRQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1FBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87S0FDL0IsQ0FBQyxDQUFDLENBQUE7SUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFBLG1DQUEyQixFQUFDLFdBQVcsQ0FBQyxDQUFBO0lBRXZELElBQUEsZ0NBQXdCLEVBQ3RCLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVztZQUNoQyxNQUFNLEVBQUUsUUFBUTtTQUNqQjtLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUE7SUFFRCxPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUNGLENBQUEifQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWludGVncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9pbnRlZ3JhdGlvbi93b3JrZmxvd3MvdXBzZXJ0LWludGVncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUErRjtBQUMvRixvQ0FJaUI7QUFTSixRQUFBLDJCQUEyQixHQUFHLG9CQUFvQixDQUFBO0FBRWxELFFBQUEseUJBQXlCLEdBQUcsSUFBQSw4QkFBYyxFQUNyRCxtQ0FBMkIsRUFDM0IsVUFBVSxLQUFxQztJQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFBLG1DQUEyQixFQUFDO1FBQzNDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJO1FBQ3BDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtLQUNyQixDQUFDLENBQUE7SUFFRixNQUFNLFdBQVcsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUQsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVztRQUNuQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1FBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87UUFDOUIsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ3ZFLENBQUMsQ0FBQyxDQUFBO0lBRUgsTUFBTSxNQUFNLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQyxXQUFXLENBQUMsQ0FBQTtJQUV2RCxJQUFBLGdDQUF3QixFQUN0QixJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVc7WUFDaEMsTUFBTSxFQUFFLFFBQVE7U0FDakI7S0FDRixDQUFDLENBQUMsQ0FDSixDQUFBO0lBRUQsT0FBTyxJQUFJLGdDQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ3JDLENBQUMsQ0FDRixDQUFBIn0=
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License Copyright (c) 2025 Gorgo
2
+
3
+ Permission is hereby granted, free
4
+ of charge, to any person obtaining a copy of this software and associated
5
+ documentation files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use, copy, modify, merge,
7
+ publish, distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to the
9
+ following conditions:
10
+
11
+ The above copyright notice and this permission notice
12
+ (including the next paragraph) shall be included in all copies or substantial
13
+ portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
16
+ ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
18
+ EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
19
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md CHANGED
@@ -5,7 +5,7 @@ Integration Module for Medusa
5
5
  <p align="center">
6
6
  <a href="https://docs.gorgojs.com/integrations/integration">Documentation</a>
7
7
  <br/>
8
- A Medusa module that lets plugins declare their settings and store admins configure them right in the Admin — no <code>medusa-config</code> edits, no redeploys, secrets encrypted at rest.
8
+ A Medusa module that lets plugins declare their settings and store admins configure them right in the Admin – no <code>medusa-config</code> edits, no redeploys.
9
9
  <br/>
10
10
  <a href="https://github.com/gorgojs/medusa-integrations/blob/HEAD/packages/modules/integration/README-ru.md">Читать README на русском ↗</a>
11
11
  </p>
@@ -79,3 +79,7 @@ npm install @gorgo/medusa-integration
79
79
  ## Documentation
80
80
 
81
81
  The complete installation, configuration, and usage guide is available on the [Gorgo documentation website](https://docs.gorgojs.com/integrations/integration).
82
+
83
+ ## License
84
+
85
+ Licensed under the [MIT License](LICENSE).
package/package.json CHANGED
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "name": "@gorgo/medusa-integration",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Integration module for Medusa",
5
5
  "author": {
6
6
  "name": "Gorgo",
7
7
  "url": "https://gorgojs.com"
8
8
  },
9
+ "license": "MIT",
10
+ "homepage": "https://gorgojs.com/medusa-integration-module",
11
+ "bugs": "https://github.com/gorgojs/medusa-integrations/issues",
9
12
  "files": [
10
13
  ".medusa/server"
11
14
  ],
@@ -46,7 +49,7 @@
46
49
  "test:unit": "TEST_TYPE=unit NODE_OPTIONS=--experimental-vm-modules jest --silent --runInBand --forceExit"
47
50
  },
48
51
  "dependencies": {
49
- "@gorgo/telemetry": "^1.3.0"
52
+ "@gorgo/telemetry": "^1.4.0"
50
53
  },
51
54
  "devDependencies": {
52
55
  "@medusajs/admin-sdk": "^2.17.2",