@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
@@ -66,8 +66,8 @@ const IntegrationsPage = () => {
66
66
  i.instance_id && /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { size: "2xsmall", color: "grey", children: i.instance_id })
67
67
  ] }),
68
68
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
69
- i.last_test_status === "ok" && /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { color: "green", size: "2xsmall", children: t("integration.list.tested") }),
70
- i.last_test_status === "fail" && /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { color: "red", size: "2xsmall", children: t("integration.list.testFailed") }),
69
+ i.last_test_status === "passed" && /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { color: "green", size: "2xsmall", children: t("integration.list.tested") }),
70
+ i.last_test_status === "failed" && /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { color: "red", size: "2xsmall", children: t("integration.list.testFailed") }),
71
71
  i.is_configured && !i.is_complete ? /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: "orange", children: t("integration.status.incomplete") }) : /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: configured ? "green" : "grey", children: !i.is_configured ? t("integration.status.notConfigured") : i.is_enabled ? t("integration.status.enabled") : t("integration.status.disabled") })
72
72
  ] })
73
73
  ]
@@ -98,7 +98,6 @@ const IntegrationFieldValue = ({
98
98
  }) => {
99
99
  var _a;
100
100
  const { t } = reactI18next.useTranslation();
101
- if (field.readonly && (value == null || value === "")) value = field.readonlyValue;
102
101
  if (field.secret || field.control === "secret") {
103
102
  return secretConfigured ? /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "small", leading: "compact", children: "••••••••" }) : /* @__PURE__ */ jsxRuntime.jsx(Dash, {});
104
103
  }
@@ -1810,11 +1809,10 @@ function isFieldVisible(field, values) {
1810
1809
  function sectionDefaults(section, values) {
1811
1810
  const out = {};
1812
1811
  for (const f of section.fields) {
1813
- if (f.readonly) out[f.name] = f.readonlyValue;
1814
- else if (f.secret || f.control === "secret") out[f.name] = "";
1815
- else if (f.control === "switch") out[f.name] = (values == null ? void 0 : values[f.name]) ?? false;
1816
- else if (f.control === "json") out[f.name] = values == null ? void 0 : values[f.name];
1817
- else out[f.name] = (values == null ? void 0 : values[f.name]) ?? "";
1812
+ if (f.secret || f.control === "secret") out[f.name] = "";
1813
+ else if (f.control === "switch") out[f.name] = (values == null ? void 0 : values[f.name]) ?? f.default ?? false;
1814
+ else if (f.control === "json") out[f.name] = (values == null ? void 0 : values[f.name]) ?? f.default;
1815
+ else out[f.name] = (values == null ? void 0 : values[f.name]) ?? f.default ?? "";
1818
1816
  }
1819
1817
  return out;
1820
1818
  }
@@ -1872,7 +1870,7 @@ const EditSectionDrawer = ({
1872
1870
  ] })
1873
1871
  ] }) });
1874
1872
  };
1875
- const testColor = (s) => s === "ok" ? "green" : s === "fail" ? "red" : "grey";
1873
+ const testColor = (s) => s === "passed" ? "green" : s === "failed" ? "red" : "grey";
1876
1874
  const Row = ({ label, children }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-ui-fg-subtle grid grid-cols-2 px-6 py-4", children: [
1877
1875
  /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "small", weight: "plus", leading: "compact", children: label }),
1878
1876
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-x-2", children })
@@ -1902,7 +1900,7 @@ const EditPage = () => {
1902
1900
  { method: "POST" }
1903
1901
  ),
1904
1902
  onSuccess: (r) => {
1905
- r.status === "ok" ? ui.toast.success(t("integration.toast.connectionOk")) : ui.toast.warning(r.message ?? r.status);
1903
+ r.status === "passed" ? ui.toast.success(t("integration.toast.connectionOk")) : ui.toast.warning(r.message ?? r.status);
1906
1904
  invalidate();
1907
1905
  },
1908
1906
  onError: (e) => ui.toast.error((e == null ? void 0 : e.message) ?? t("integration.toast.testFailed"))
@@ -1950,7 +1948,7 @@ const EditPage = () => {
1950
1948
  const editing = descriptor.sections.find((s) => s.id === editingSection) ?? null;
1951
1949
  const sectionData = {
1952
1950
  providerId: provider_id,
1953
- pluginId: descriptor.pluginId,
1951
+ identifier: descriptor.identifier,
1954
1952
  values: (record == null ? void 0 : record.values) ?? {},
1955
1953
  isComplete
1956
1954
  };
@@ -2014,13 +2012,7 @@ const EditPage = () => {
2014
2012
  ] }),
2015
2013
  /* @__PURE__ */ jsxRuntime.jsx(Row, { label: t("integration.labels.status"), children: !isConfigured ? /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: "grey", children: t("integration.status.notConfigured") }) : !isComplete ? /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: "orange", children: t("integration.status.incomplete") }) : /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: record.is_enabled ? "green" : "grey", children: record.is_enabled ? t("integration.status.enabled") : t("integration.status.disabled") }) }),
2016
2014
  /* @__PURE__ */ jsxRuntime.jsx(Row, { label: t("integration.labels.module"), children: /* @__PURE__ */ jsxRuntime.jsx(ui.Badge, { size: "2xsmall", color: "grey", children: t(`integration.modules.${descriptor.module}`) }) }),
2017
- /* @__PURE__ */ jsxRuntime.jsx(Row, { label: t("integration.labels.lastTest"), children: (record == null ? void 0 : record.last_test_status) ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2018
- /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: testColor(record.last_test_status), children: t(`integration.testStatus.${record.last_test_status}`) }),
2019
- /* @__PURE__ */ jsxRuntime.jsxs(ui.Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: [
2020
- record.last_test_at && new Date(record.last_test_at).toLocaleString(),
2021
- record.last_test_message ? ` · ${record.last_test_message}` : ""
2022
- ] })
2023
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: t("integration.labels.neverTested") }) })
2015
+ /* @__PURE__ */ jsxRuntime.jsx(Row, { label: t("integration.labels.lastTest"), children: (record == null ? void 0 : record.last_test_status) ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.StatusBadge, { color: testColor(record.last_test_status), children: t(`integration.testStatus.${record.last_test_status}`) }) }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: t("integration.labels.neverTested") }) })
2024
2016
  ] }) }),
2025
2017
  mainSections.map(renderSection),
2026
2018
  editing && /* @__PURE__ */ jsxRuntime.jsx(
@@ -2040,7 +2032,7 @@ const EditPage = () => {
2040
2032
  return /* @__PURE__ */ jsxRuntime.jsx(
2041
2033
  components.LayoutComposer,
2042
2034
  {
2043
- widgetsZonePrefix: `gorgo.integration.${descriptor.pluginId}`,
2035
+ widgetsZonePrefix: `gorgo.integration.${descriptor.identifier}`,
2044
2036
  preferredLayoutId: descriptor.preferredLayoutId,
2045
2037
  sections: { main, side },
2046
2038
  data: sectionData,
@@ -2097,8 +2089,8 @@ const integration$1 = {
2097
2089
  other: "Other"
2098
2090
  },
2099
2091
  testStatus: {
2100
- ok: "OK",
2101
- fail: "Failed",
2092
+ passed: "Passed",
2093
+ failed: "Failed",
2102
2094
  skipped: "Skipped"
2103
2095
  },
2104
2096
  actions: {
@@ -2170,8 +2162,8 @@ const integration = {
2170
2162
  other: "Прочее"
2171
2163
  },
2172
2164
  testStatus: {
2173
- ok: "OK",
2174
- fail: "Ошибка",
2165
+ passed: "Пройдено",
2166
+ failed: "Ошибка",
2175
2167
  skipped: "Пропущено"
2176
2168
  },
2177
2169
  actions: {
@@ -62,8 +62,8 @@ const IntegrationsPage = () => {
62
62
  i.instance_id && /* @__PURE__ */ jsx(Badge, { size: "2xsmall", color: "grey", children: i.instance_id })
63
63
  ] }),
64
64
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65
- i.last_test_status === "ok" && /* @__PURE__ */ jsx(Badge, { color: "green", size: "2xsmall", children: t("integration.list.tested") }),
66
- i.last_test_status === "fail" && /* @__PURE__ */ jsx(Badge, { color: "red", size: "2xsmall", children: t("integration.list.testFailed") }),
65
+ i.last_test_status === "passed" && /* @__PURE__ */ jsx(Badge, { color: "green", size: "2xsmall", children: t("integration.list.tested") }),
66
+ i.last_test_status === "failed" && /* @__PURE__ */ jsx(Badge, { color: "red", size: "2xsmall", children: t("integration.list.testFailed") }),
67
67
  i.is_configured && !i.is_complete ? /* @__PURE__ */ jsx(StatusBadge, { color: "orange", children: t("integration.status.incomplete") }) : /* @__PURE__ */ jsx(StatusBadge, { color: configured ? "green" : "grey", children: !i.is_configured ? t("integration.status.notConfigured") : i.is_enabled ? t("integration.status.enabled") : t("integration.status.disabled") })
68
68
  ] })
69
69
  ]
@@ -94,7 +94,6 @@ const IntegrationFieldValue = ({
94
94
  }) => {
95
95
  var _a;
96
96
  const { t } = useTranslation();
97
- if (field.readonly && (value == null || value === "")) value = field.readonlyValue;
98
97
  if (field.secret || field.control === "secret") {
99
98
  return secretConfigured ? /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", children: "••••••••" }) : /* @__PURE__ */ jsx(Dash, {});
100
99
  }
@@ -1806,11 +1805,10 @@ function isFieldVisible(field, values) {
1806
1805
  function sectionDefaults(section, values) {
1807
1806
  const out = {};
1808
1807
  for (const f of section.fields) {
1809
- if (f.readonly) out[f.name] = f.readonlyValue;
1810
- else if (f.secret || f.control === "secret") out[f.name] = "";
1811
- else if (f.control === "switch") out[f.name] = (values == null ? void 0 : values[f.name]) ?? false;
1812
- else if (f.control === "json") out[f.name] = values == null ? void 0 : values[f.name];
1813
- else out[f.name] = (values == null ? void 0 : values[f.name]) ?? "";
1808
+ if (f.secret || f.control === "secret") out[f.name] = "";
1809
+ else if (f.control === "switch") out[f.name] = (values == null ? void 0 : values[f.name]) ?? f.default ?? false;
1810
+ else if (f.control === "json") out[f.name] = (values == null ? void 0 : values[f.name]) ?? f.default;
1811
+ else out[f.name] = (values == null ? void 0 : values[f.name]) ?? f.default ?? "";
1814
1812
  }
1815
1813
  return out;
1816
1814
  }
@@ -1868,7 +1866,7 @@ const EditSectionDrawer = ({
1868
1866
  ] })
1869
1867
  ] }) });
1870
1868
  };
1871
- const testColor = (s) => s === "ok" ? "green" : s === "fail" ? "red" : "grey";
1869
+ const testColor = (s) => s === "passed" ? "green" : s === "failed" ? "red" : "grey";
1872
1870
  const Row = ({ label, children }) => /* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle grid grid-cols-2 px-6 py-4", children: [
1873
1871
  /* @__PURE__ */ jsx(Text, { size: "small", weight: "plus", leading: "compact", children: label }),
1874
1872
  /* @__PURE__ */ jsx("div", { className: "flex items-center gap-x-2", children })
@@ -1898,7 +1896,7 @@ const EditPage = () => {
1898
1896
  { method: "POST" }
1899
1897
  ),
1900
1898
  onSuccess: (r) => {
1901
- r.status === "ok" ? toast.success(t("integration.toast.connectionOk")) : toast.warning(r.message ?? r.status);
1899
+ r.status === "passed" ? toast.success(t("integration.toast.connectionOk")) : toast.warning(r.message ?? r.status);
1902
1900
  invalidate();
1903
1901
  },
1904
1902
  onError: (e) => toast.error((e == null ? void 0 : e.message) ?? t("integration.toast.testFailed"))
@@ -1946,7 +1944,7 @@ const EditPage = () => {
1946
1944
  const editing = descriptor.sections.find((s) => s.id === editingSection) ?? null;
1947
1945
  const sectionData = {
1948
1946
  providerId: provider_id,
1949
- pluginId: descriptor.pluginId,
1947
+ identifier: descriptor.identifier,
1950
1948
  values: (record == null ? void 0 : record.values) ?? {},
1951
1949
  isComplete
1952
1950
  };
@@ -2010,13 +2008,7 @@ const EditPage = () => {
2010
2008
  ] }),
2011
2009
  /* @__PURE__ */ jsx(Row, { label: t("integration.labels.status"), children: !isConfigured ? /* @__PURE__ */ jsx(StatusBadge, { color: "grey", children: t("integration.status.notConfigured") }) : !isComplete ? /* @__PURE__ */ jsx(StatusBadge, { color: "orange", children: t("integration.status.incomplete") }) : /* @__PURE__ */ jsx(StatusBadge, { color: record.is_enabled ? "green" : "grey", children: record.is_enabled ? t("integration.status.enabled") : t("integration.status.disabled") }) }),
2012
2010
  /* @__PURE__ */ jsx(Row, { label: t("integration.labels.module"), children: /* @__PURE__ */ jsx(Badge, { size: "2xsmall", color: "grey", children: t(`integration.modules.${descriptor.module}`) }) }),
2013
- /* @__PURE__ */ jsx(Row, { label: t("integration.labels.lastTest"), children: (record == null ? void 0 : record.last_test_status) ? /* @__PURE__ */ jsxs(Fragment, { children: [
2014
- /* @__PURE__ */ jsx(StatusBadge, { color: testColor(record.last_test_status), children: t(`integration.testStatus.${record.last_test_status}`) }),
2015
- /* @__PURE__ */ jsxs(Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: [
2016
- record.last_test_at && new Date(record.last_test_at).toLocaleString(),
2017
- record.last_test_message ? ` · ${record.last_test_message}` : ""
2018
- ] })
2019
- ] }) : /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: t("integration.labels.neverTested") }) })
2011
+ /* @__PURE__ */ jsx(Row, { label: t("integration.labels.lastTest"), children: (record == null ? void 0 : record.last_test_status) ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(StatusBadge, { color: testColor(record.last_test_status), children: t(`integration.testStatus.${record.last_test_status}`) }) }) : /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: t("integration.labels.neverTested") }) })
2020
2012
  ] }) }),
2021
2013
  mainSections.map(renderSection),
2022
2014
  editing && /* @__PURE__ */ jsx(
@@ -2036,7 +2028,7 @@ const EditPage = () => {
2036
2028
  return /* @__PURE__ */ jsx(
2037
2029
  LayoutComposer,
2038
2030
  {
2039
- widgetsZonePrefix: `gorgo.integration.${descriptor.pluginId}`,
2031
+ widgetsZonePrefix: `gorgo.integration.${descriptor.identifier}`,
2040
2032
  preferredLayoutId: descriptor.preferredLayoutId,
2041
2033
  sections: { main, side },
2042
2034
  data: sectionData,
@@ -2093,8 +2085,8 @@ const integration$1 = {
2093
2085
  other: "Other"
2094
2086
  },
2095
2087
  testStatus: {
2096
- ok: "OK",
2097
- fail: "Failed",
2088
+ passed: "Passed",
2089
+ failed: "Failed",
2098
2090
  skipped: "Skipped"
2099
2091
  },
2100
2092
  actions: {
@@ -2166,8 +2158,8 @@ const integration = {
2166
2158
  other: "Прочее"
2167
2159
  },
2168
2160
  testStatus: {
2169
- ok: "OK",
2170
- fail: "Ошибка",
2161
+ passed: "Пройдено",
2162
+ failed: "Ошибка",
2171
2163
  skipped: "Пропущено"
2172
2164
  },
2173
2165
  actions: {
@@ -43,10 +43,8 @@ function maskedView(record, secretKeys) {
43
43
  title: record.title ?? null,
44
44
  is_enabled: record.is_enabled,
45
45
  has_secrets,
46
- last_test_at: record.last_test_at ?? null,
47
46
  last_test_status: record.last_test_status ?? null,
48
- last_test_message: record.last_test_message ?? null,
49
47
  values,
50
48
  };
51
49
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2hlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2ludGVncmF0aW9ucy9faGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDBCQUVDO0FBTUQsMENBSUM7QUFRRCxnQ0F3QkM7QUFqREQscURBQXVEO0FBQ3ZELDhEQUFpRTtBQUlqRSxTQUFnQixPQUFPLENBQUMsR0FBa0I7SUFDeEMsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQ0FBa0IsQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixlQUFlLENBQUMsR0FBNkIsRUFBRSxVQUFrQjtJQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsVUFBVSxHQUFHLENBQUMsQ0FBQTtJQUMzRixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE1BQVcsRUFBRSxVQUFvQjtJQUMxRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNsQyxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUE0QixDQUFBO0lBQ2hFLE1BQU0sTUFBTSxHQUE0QixFQUFFLENBQUE7SUFDMUMsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFBO0lBQ3ZCLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDNUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUFFLFdBQVcsR0FBRyxJQUFJLENBQUE7WUFDN0MsU0FBUTtRQUNWLENBQUM7UUFDRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsQ0FBQztJQUNELE9BQU87UUFDTCxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDYixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ3JCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUk7UUFDM0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1FBQzdCLFdBQVc7UUFDWCxZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksSUFBSSxJQUFJO1FBQ3pDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJO1FBQ2pELGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxJQUFJO1FBQ25ELE1BQU07S0FDUCxDQUFBO0FBQ0gsQ0FBQyJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2hlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2ludGVncmF0aW9ucy9faGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDBCQUVDO0FBTUQsMENBSUM7QUFRRCxnQ0FzQkM7QUEvQ0QscURBQXVEO0FBQ3ZELDhEQUFpRTtBQUlqRSxTQUFnQixPQUFPLENBQUMsR0FBa0I7SUFDeEMsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQ0FBa0IsQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixlQUFlLENBQUMsR0FBNkIsRUFBRSxVQUFrQjtJQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsVUFBVSxHQUFHLENBQUMsQ0FBQTtJQUMzRixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE1BQVcsRUFBRSxVQUFvQjtJQUMxRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNsQyxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUE0QixDQUFBO0lBQ2hFLE1BQU0sTUFBTSxHQUE0QixFQUFFLENBQUE7SUFDMUMsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFBO0lBQ3ZCLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDNUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUFFLFdBQVcsR0FBRyxJQUFJLENBQUE7WUFDN0MsU0FBUTtRQUNWLENBQUM7UUFDRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsQ0FBQztJQUNELE9BQU87UUFDTCxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDYixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ3JCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUk7UUFDM0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1FBQzdCLFdBQVc7UUFDWCxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSTtRQUNqRCxNQUFNO0tBQ1AsQ0FBQTtBQUNILENBQUMifQ==
@@ -32,7 +32,7 @@ async function testIntegrationConnectionsJob(container) {
32
32
  });
33
33
  counts[result.status]++;
34
34
  const line = `[integration] ${target.provider_id} → ${result.status}${result.message ? `: ${result.message}` : ""}`;
35
- if (result.status === "fail")
35
+ if (result.status === "failed")
36
36
  logger.warn(line);
37
37
  else
38
38
  logger.info(line);
@@ -50,4 +50,4 @@ exports.config = {
50
50
  // Once a day, off-peak (03:00). Cron: minute hour day-of-month month day-of-week.
51
51
  schedule: "0 3 * * *",
52
52
  };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1pbnRlZ3JhdGlvbi1jb25uZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9qb2JzL3Rlc3QtaW50ZWdyYXRpb24tY29ubmVjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEsZ0RBdUNDO0FBckRELHdEQUEyRDtBQUUzRCwwREFBNEU7QUFFNUU7Ozs7Ozs7OztHQVNHO0FBQ1ksS0FBSyxVQUFVLDZCQUE2QixDQUFDLFNBQTBCO0lBQ3BGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQVMsUUFBUSxDQUFDLENBQUE7SUFDbEQsTUFBTSxPQUFPLEdBQTZCLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0NBQWtCLENBQUMsQ0FBQTtJQUUvRSxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO0lBQ3pELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQzdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLG1CQUFtQixDQUNoRSxDQUFBO0lBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUVBQXVFLENBQUMsQ0FBQTtRQUNwRixPQUFNO0lBQ1IsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsOENBQThDLE9BQU8sQ0FBQyxNQUFNLGlCQUFpQixDQUFDLENBQUE7SUFFMUYsTUFBTSxNQUFNLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUE7SUFFekQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLCtDQUFpQyxFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDeEUsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUU7YUFDM0MsQ0FBQyxDQUFBO1lBQ0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFBO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixNQUFNLENBQUMsV0FBVyxNQUFNLE1BQU0sQ0FBQyxNQUFNLEdBQ2pFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUMzQyxFQUFFLENBQUE7WUFDRixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTTtnQkFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBOztnQkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDaEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsTUFBTSxDQUFDLFdBQVcsa0JBQWtCLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN0RixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQ1QsZ0RBQWdELE1BQU0sQ0FBQyxFQUFFLFdBQVcsTUFBTSxDQUFDLElBQUksSUFBSTtRQUNqRixZQUFZLE1BQU0sQ0FBQyxPQUFPLGNBQWMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUMzRCxDQUFBO0FBQ0gsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLElBQUksRUFBRSxvQ0FBb0M7SUFDMUMsa0ZBQWtGO0lBQ2xGLFFBQVEsRUFBRSxXQUFXO0NBQ3RCLENBQUEifQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1pbnRlZ3JhdGlvbi1jb25uZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9qb2JzL3Rlc3QtaW50ZWdyYXRpb24tY29ubmVjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEsZ0RBdUNDO0FBckRELHdEQUEyRDtBQUUzRCwwREFBNEU7QUFFNUU7Ozs7Ozs7OztHQVNHO0FBQ1ksS0FBSyxVQUFVLDZCQUE2QixDQUFDLFNBQTBCO0lBQ3BGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQVMsUUFBUSxDQUFDLENBQUE7SUFDbEQsTUFBTSxPQUFPLEdBQTZCLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0NBQWtCLENBQUMsQ0FBQTtJQUUvRSxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO0lBQ3pELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQzdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLG1CQUFtQixDQUNoRSxDQUFBO0lBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUVBQXVFLENBQUMsQ0FBQTtRQUNwRixPQUFNO0lBQ1IsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsOENBQThDLE9BQU8sQ0FBQyxNQUFNLGlCQUFpQixDQUFDLENBQUE7SUFFMUYsTUFBTSxNQUFNLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUE7SUFFekQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLCtDQUFpQyxFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDeEUsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUU7YUFDM0MsQ0FBQyxDQUFBO1lBQ0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFBO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixNQUFNLENBQUMsV0FBVyxNQUFNLE1BQU0sQ0FBQyxNQUFNLEdBQ2pFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUMzQyxFQUFFLENBQUE7WUFDRixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUTtnQkFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBOztnQkFDNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDaEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsTUFBTSxDQUFDLFdBQVcsa0JBQWtCLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN0RixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQ1QsZ0RBQWdELE1BQU0sQ0FBQyxFQUFFLFdBQVcsTUFBTSxDQUFDLElBQUksSUFBSTtRQUNqRixZQUFZLE1BQU0sQ0FBQyxPQUFPLGNBQWMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUMzRCxDQUFBO0FBQ0gsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLElBQUksRUFBRSxvQ0FBb0M7SUFDMUMsa0ZBQWtGO0lBQ2xGLFFBQVEsRUFBRSxXQUFXO0NBQ3RCLENBQUEifQ==
@@ -26,7 +26,7 @@ const base = (0, define_1.defineIntegration)({
26
26
  { id: "behavior", title: "demo.sections.behavior", options: ["test_mode", "region", "webhooks"] },
27
27
  ],
28
28
  });
29
- const descriptor = { ...base, pluginId: "demo", instanceId: null };
29
+ const descriptor = { ...base, identifier: "demo", instanceId: null };
30
30
  (0, globals_1.describe)("introspect", () => {
31
31
  (0, globals_1.it)("groups referenced options by section, omits catalog-only options", () => {
32
32
  const ui = (0, introspect_1.introspectDescriptor)(descriptor);
@@ -69,25 +69,25 @@ const descriptor = { ...base, pluginId: "demo", instanceId: null };
69
69
  },
70
70
  apiSecret: {
71
71
  type: "string",
72
- readonly: true,
73
72
  secret: true,
73
+ readonly: true,
74
74
  default: "shh",
75
75
  label: "demo.fields.apiSecret",
76
76
  },
77
77
  },
78
78
  sections: [{ id: "s", title: "t", options: ["endpoint", "apiSecret"] }],
79
79
  });
80
- const roDescriptor = { ...base, pluginId: "demo", instanceId: null };
81
- (0, globals_1.it)("surfaces readonly + readonlyValue (the default) for a non-secret constant", () => {
80
+ const roDescriptor = { ...base, identifier: "demo", instanceId: null };
81
+ (0, globals_1.it)("marks a readonly field disabled and surfaces its default for display", () => {
82
82
  const f = (0, introspect_1.introspectDescriptor)(roDescriptor).sections[0].fields.find((x) => x.name === "endpoint");
83
83
  (0, globals_1.expect)(f.readonly).toBe(true);
84
- (0, globals_1.expect)(f.readonlyValue).toBe("https://api.example.com/hook");
84
+ (0, globals_1.expect)(f.default).toBe("https://api.example.com/hook");
85
85
  });
86
- (0, globals_1.it)("never exposes a secret readonly option's default", () => {
86
+ (0, globals_1.it)("never exposes a secret's default (readonly or not)", () => {
87
87
  const f = (0, introspect_1.introspectDescriptor)(roDescriptor).sections[0].fields.find((x) => x.name === "apiSecret");
88
88
  (0, globals_1.expect)(f.readonly).toBe(true);
89
89
  (0, globals_1.expect)(f.secret).toBe(true);
90
- (0, globals_1.expect)(f.readonlyValue).toBeUndefined();
90
+ (0, globals_1.expect)(f.default).toBeUndefined();
91
91
  });
92
92
  });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50cm9zcGVjdC51bml0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9kZXNjcmlwdG9yL19fdGVzdHNfXy9pbnRyb3NwZWN0LnVuaXQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUFvRDtBQUNwRCw4Q0FBc0U7QUFDdEUsc0NBQTZDO0FBRzdDLE1BQU0sSUFBSSxHQUFHLElBQUEsMEJBQWlCLEVBQUM7SUFDN0IsTUFBTSxFQUFFLFNBQVM7SUFDakIsV0FBVyxFQUFFLFdBQVc7SUFDeEIsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7UUFDcEcsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtRQUMxSCxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7UUFDakcsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3BCLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUU7WUFDM0QsT0FBTyxFQUFFLFFBQVE7WUFDakIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7U0FDbEQ7UUFDRCxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7UUFDdkYsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRTtLQUNoRjtJQUNELFFBQVEsRUFBRTtRQUNSLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQ2pGLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRTtLQUNsRztDQUNGLENBQUMsQ0FBQTtBQUNGLE1BQU0sVUFBVSxHQUEwQixFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFBO0FBRXpGLElBQUEsa0JBQVEsRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQzFCLElBQUEsWUFBRSxFQUFDLGtFQUFrRSxFQUFFLEdBQUcsRUFBRTtRQUMxRSxNQUFNLEVBQUUsR0FBRyxJQUFBLGlDQUFvQixFQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzNDLElBQUEsZ0JBQU0sRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFDckUsSUFBQSxnQkFBTSxFQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO1FBQzdGLElBQUEsZ0JBQU0sRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUM5RixDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUEsWUFBRSxFQUFDLHNFQUFzRSxFQUFFLEdBQUcsRUFBRTtRQUM5RSxNQUFNLEVBQUUsR0FBRyxJQUFBLGlDQUFvQixFQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzNDLElBQUEsZ0JBQU0sRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2xGLElBQUEsZ0JBQU0sRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsY0FBYztJQUN4RyxDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUEsWUFBRSxFQUFDLG9FQUFvRSxFQUFFLEdBQUcsRUFBRTtRQUM1RSxNQUFNLEVBQUUsR0FBRyxJQUFB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
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50cm9zcGVjdC51bml0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9kZXNjcmlwdG9yL19fdGVzdHNfXy9pbnRyb3NwZWN0LnVuaXQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUFvRDtBQUNwRCw4Q0FBc0U7QUFDdEUsc0NBQTZDO0FBRzdDLE1BQU0sSUFBSSxHQUFHLElBQUEsMEJBQWlCLEVBQUM7SUFDN0IsTUFBTSxFQUFFLFNBQVM7SUFDakIsV0FBVyxFQUFFLFdBQVc7SUFDeEIsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7UUFDcEcsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtRQUMxSCxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7UUFDakcsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3BCLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUU7WUFDM0QsT0FBTyxFQUFFLFFBQVE7WUFDakIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7U0FDbEQ7UUFDRCxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7UUFDdkYsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRTtLQUNoRjtJQUNELFFBQVEsRUFBRTtRQUNSLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQ2pGLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRTtLQUNsRztDQUNGLENBQUMsQ0FBQTtBQUNGLE1BQU0sVUFBVSxHQUEwQixFQUFFLEdBQUcsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFBO0FBRTNGLElBQUEsa0JBQVEsRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQzFCLElBQUEsWUFBRSxFQUFDLGtFQUFrRSxFQUFFLEdBQUcsRUFBRTtRQUMxRSxNQUFNLEVBQUUsR0FBRyxJQUFBLGlDQUFvQixFQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzNDLElBQUEsZ0JBQU0sRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFDckUsSUFBQSxnQkFBTSxFQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO1FBQzdGLElBQUEsZ0JBQU0sRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUM5RixDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUEsWUFBRSxFQUFDLHNFQUFzRSxFQUFFLEdBQUcsRUFBRTtRQUM5RSxNQUFNLEVBQUUsR0FBRyxJQUFBLGlDQUFvQixFQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzNDLElBQUEsZ0JBQU0sRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2xGLElBQUEsZ0JBQU0sRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsY0FBYztJQUN4RyxDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUEsWUFBRSxFQUFDLG9FQUFvRSxFQUFFLEdBQUcsRUFBRTtRQUM1RSxNQUFNLEVBQUUsR0FBRyxJQUFB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
@@ -27,7 +27,7 @@ const base = (0, define_1.defineIntegration)({
27
27
  ctx.addIssue({ path: ["terminalKey"], message: "terminalKey required when capture is on" });
28
28
  },
29
29
  });
30
- const descriptor = { ...base, pluginId: "demo", instanceId: null };
30
+ const descriptor = { ...base, identifier: "demo", instanceId: null };
31
31
  (0, globals_1.describe)("validateOptions", () => {
32
32
  (0, globals_1.it)("validates only the submitted ids and applies their defaults", () => {
33
33
  const res = (0, validate_1.validateOptions)(descriptor, ["capture"], { capture: undefined });
@@ -61,4 +61,4 @@ const descriptor = { ...base, pluginId: "demo", instanceId: null };
61
61
  (0, globals_1.expect)(issues.some((i) => i.path === "terminalKey")).toBe(true);
62
62
  });
63
63
  });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUudW5pdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vZGVzY3JpcHRvci9fX3Rlc3RzX18vdmFsaWRhdGUudW5pdC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQW9EO0FBQ3BELHNDQUE2QztBQUU3QywwQ0FBNEY7QUFFNUYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQVUsRUFBRSxDQUFNLEVBQUUsRUFBRTtJQUNqRCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUE7QUFDMUcsQ0FBQyxDQUFBO0FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBQSwwQkFBaUIsRUFBQztJQUM3QixNQUFNLEVBQUUsU0FBUztJQUNqQixXQUFXLEVBQUUsV0FBVztJQUN4QixPQUFPLEVBQUU7UUFDUCxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQ3pFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtRQUNwRixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtRQUN2RCxxREFBcUQ7UUFDckQsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVB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
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUudW5pdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vZGVzY3JpcHRvci9fX3Rlc3RzX18vdmFsaWRhdGUudW5pdC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQW9EO0FBQ3BELHNDQUE2QztBQUU3QywwQ0FBNEY7QUFFNUYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQVUsRUFBRSxDQUFNLEVBQUUsRUFBRTtJQUNqRCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUE7QUFDMUcsQ0FBQyxDQUFBO0FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBQSwwQkFBaUIsRUFBQztJQUM3QixNQUFNLEVBQUUsU0FBUztJQUNqQixXQUFXLEVBQUUsV0FBVztJQUN4QixPQUFPLEVBQUU7UUFDUCxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQ3pFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtRQUNwRixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtRQUN2RCxxREFBcUQ7UUFDckQsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVB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
@@ -26,7 +26,6 @@ export type IntegrationValidateContext = {
26
26
  type DescriptorBase = {
27
27
  /** Which Medusa module this integration configures (payment, fulfillment, …). */
28
28
  module: ModuleKind;
29
- optionsVersion?: number;
30
29
  displayName: I18nKey;
31
30
  description?: I18nKey;
32
31
  icon?: string;
@@ -42,17 +41,19 @@ type CrossSectionRules = {
42
41
  */
43
42
  validate?: (full: Record<string, unknown>, ctx: IntegrationValidateContext) => void;
44
43
  };
45
- /** What `defineIntegration` returns (and what a provider's `getDescriptor()` returns). */
44
+ /** What `defineIntegration` returns (and what a provider's `descriptor` getter returns). */
46
45
  export type IntegrationDescriptorInput = DescriptorBase & CrossSectionRules & {
47
46
  /** Flat catalog: single source of truth for every option (type/validation/UI/secret). */
48
47
  options: Record<string, OptionDef>;
49
48
  /** Composed from `options` by `defineIntegration` — for `z.infer`, defaults, full validation. */
50
49
  optionsSchema: z.ZodType<any>;
51
50
  sections: readonly IntegrationSection[];
51
+ /** Optional connection check; runs against the resolved options. Omit if unsupported. */
52
+ testConnection?(ctx: TestConnectionContext): Promise<TestConnectionResult>;
52
53
  };
53
54
  export type IntegrationDescriptor = IntegrationDescriptorInput & {
54
55
  /** Stamped by the registry from the provider's `static identifier`. */
55
- pluginId: string;
56
+ identifier: string;
56
57
  /** Stamped from the registration id (null = single/default instance). */
57
58
  instanceId?: string | null;
58
59
  };
@@ -67,8 +68,13 @@ export type IntegrationDescriptor = IntegrationDescriptorInput & {
67
68
  export declare function defineIntegration<const O extends Record<string, OptionDef>>(input: DescriptorBase & CrossSectionRules & {
68
69
  options: O;
69
70
  sections: readonly IntegrationSection[];
71
+ /** Connection check with fully-typed, resolved options. */
72
+ testConnection?(ctx: {
73
+ options: Settings<O>;
74
+ }): Promise<TestConnectionResult>;
70
75
  }): DescriptorBase & CrossSectionRules & {
71
76
  options: O;
72
77
  optionsSchema: z.ZodType<Settings<O>>;
73
78
  sections: readonly IntegrationSection[];
79
+ testConnection?(ctx: TestConnectionContext): Promise<TestConnectionResult>;
74
80
  };
@@ -28,4 +28,4 @@ function defineIntegration(input) {
28
28
  const optionsSchema = zod_1.z.object(shape);
29
29
  return { ...input, optionsSchema };
30
30
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vZGVzY3JpcHRvci9kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUVBLDhDQXFCQztBQTVGRCw0Q0FBc0M7QUFNN0Isa0ZBTkEsT0FBQyxPQU1BO0FBSFYsMkNBQXlDO0FBNER6Qzs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQy9CLEtBQzZFO0lBTzdFLGdFQUFnRTtJQUNoRSxLQUFLLE1BQU0sT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxLQUFLLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLE9BQU8sQ0FBQyxFQUFFLGdDQUFnQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQzlFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUE4QixFQUFFLENBQUE7SUFDM0MsS0FBSyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFBLHVCQUFXLEVBQUMsR0FBRyxDQUFDLENBQUE7SUFDbkYsTUFBTSxhQUFhLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQXNDLENBQUE7SUFDMUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSxDQUFBO0FBQ3BDLENBQUMifQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24vZGVzY3JpcHRvci9kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0VBLDhDQTJCQztBQW5HRCw0Q0FBc0M7QUFNN0Isa0ZBTkEsT0FBQyxPQU1BO0FBSFYsMkNBQXlDO0FBNkR6Qzs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQy9CLEtBTUc7SUFRSCxnRUFBZ0U7SUFDaEUsS0FBSyxNQUFNLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsS0FBSyxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzdELE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxPQUFPLENBQUMsRUFBRSxnQ0FBZ0MsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUM5RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLEtBQUssR0FBOEIsRUFBRSxDQUFBO0lBQzNDLEtBQUssTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBQSx1QkFBVyxFQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25GLE1BQU0sYUFBYSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFzQyxDQUFBO0lBQzFFLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQTtBQUNwQyxDQUFDIn0=
@@ -2,4 +2,4 @@ import type { IntegrationDescriptor } from "./define";
2
2
  import type { UiField, UiSection, UiDescriptor } from "../../../types";
3
3
  export type { UiField, UiSection, UiDescriptor };
4
4
  export declare function secretFieldNames(descriptor: Pick<IntegrationDescriptor, "options">): string[];
5
- export declare function introspectDescriptor(descriptor: IntegrationDescriptor, hasTestConnection?: boolean): UiDescriptor;
5
+ export declare function introspectDescriptor(descriptor: IntegrationDescriptor): UiDescriptor;
@@ -26,10 +26,10 @@ function introspectField(name, def) {
26
26
  placeholder: def.placeholder,
27
27
  options: def.type === "enum" ? [...def.values] : undefined,
28
28
  optionLabels: def.type === "enum" ? def.valueLabels : undefined,
29
+ default: def.secret !== true ? def.default : undefined,
29
30
  visibleWhen: def.visibleWhen,
30
- readonly: def.readonly,
31
- // The constant to display; never expose a secret's default to the client.
32
- readonlyValue: def.readonly && def.secret !== true ? def.default : undefined,
31
+ // UI-only: render the control disabled. The displayed/persisted value is the field's `default`.
32
+ readonly: def.readonly === true,
33
33
  };
34
34
  }
35
35
  function introspectSection(section, options) {
@@ -48,20 +48,19 @@ function secretFieldNames(descriptor) {
48
48
  .filter(([, def]) => def.secret === true)
49
49
  .map(([name]) => name);
50
50
  }
51
- function introspectDescriptor(descriptor, hasTestConnection = false) {
51
+ function introspectDescriptor(descriptor) {
52
52
  return {
53
53
  module: descriptor.module,
54
- pluginId: descriptor.pluginId,
54
+ identifier: descriptor.identifier,
55
55
  instanceId: descriptor.instanceId ?? null,
56
- optionsVersion: descriptor.optionsVersion ?? 1,
57
56
  displayName: descriptor.displayName,
58
57
  description: descriptor.description,
59
58
  icon: descriptor.icon,
60
59
  docsUrl: descriptor.docsUrl,
61
60
  supportsMultipleInstances: descriptor.supportsMultipleInstances ?? false,
62
61
  preferredLayoutId: descriptor.preferredLayoutId ?? "core:single-column",
63
- hasTestConnection,
62
+ hasTestConnection: typeof descriptor.testConnection === "function",
64
63
  sections: descriptor.sections.map((s) => introspectSection(s, descriptor.options)),
65
64
  };
66
65
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50cm9zcGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uL2Rlc2NyaXB0b3IvaW50cm9zcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1EQSw0Q0FJQztBQUVELG9EQWtCQztBQW5FRCxTQUFTLFVBQVUsQ0FBQyxHQUFjO0lBQ2hDLElBQUksR0FBRyxDQUFDLE9BQU87UUFBRSxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUE7SUFDbkMsUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLFFBQVEsQ0FBQTtRQUMvQixLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFBO1FBQzlCLEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUE7UUFDNUIsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQTtRQUMxQixLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFBO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFBO0lBQ3hCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsSUFBWSxFQUFFLEdBQWM7SUFDbkQsT0FBTztRQUNMLElBQUk7UUFDSixPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUN4QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sS0FBSyxJQUFJO1FBQzNCLGdHQUFnRztRQUNoRyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLE9BQU8sS0FBSyxTQUFTO1FBQzVELEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztRQUNoQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJ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
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50cm9zcGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uL2Rlc2NyaXB0b3IvaW50cm9zcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1EQSw0Q0FJQztBQUVELG9EQWNDO0FBL0RELFNBQVMsVUFBVSxDQUFDLEdBQWM7SUFDaEMsSUFBSSxHQUFHLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQTtJQUNuQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFBO1FBQy9CLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUE7UUFDOUIsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLFFBQVEsQ0FBQTtRQUM1QixLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFBO1FBQzFCLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7UUFDeEIsT0FBTyxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUE7SUFDeEIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxJQUFZLEVBQUUsR0FBYztJQUNuRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxLQUFLLElBQUk7UUFDM0IsZ0dBQWdHO1FBQ2hHLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxLQUFLLFNBQVM7UUFDNUQsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ2hCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVztRQUM1QixPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUks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
@@ -1,8 +1,14 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_path_1 = __importDefault(require("node:path"));
3
7
  const awilix_1 = require("@medusajs/framework/awilix");
4
8
  const modules_sdk_1 = require("@medusajs/framework/modules-sdk");
9
+ const telemetry_1 = require("@gorgo/telemetry");
5
10
  const types_1 = require("../types");
11
+ const integration_provider_1 = __importDefault(require("../services/integration-provider"));
6
12
  /**
7
13
  * Registers each integration-provider class into the module container under
8
14
  * `int_<identifier>[_<id>]`, mirroring how the payment/fulfillment modules load
@@ -22,6 +28,55 @@ const registrationFn = async (klass, container, pluginOptions) => {
22
28
  });
23
29
  container.registerAdd(types_1.IntegrationProviderRegistrationKey, (0, awilix_1.asValue)(key));
24
30
  };
31
+ const trackStarted = async (container, providers) => {
32
+ try {
33
+ const telemetry = (0, telemetry_1.createTelemetryClient)({ packageDir: __dirname });
34
+ // Map each provider's static identifier → its npm package (name/version), resolved from the
35
+ // `resolve` specifier. identifier↔package is 1:1, so this keys the lookup below no matter
36
+ // how many instances share the same class.
37
+ const pkgByIdentifier = new Map();
38
+ for (const entry of providers) {
39
+ const spec = entry.resolve;
40
+ if (!spec)
41
+ continue;
42
+ try {
43
+ const pkg = await (0, telemetry_1.findPackageJson)(node_path_1.default.dirname(require.resolve(spec)));
44
+ if (!pkg)
45
+ continue;
46
+ const mod = require(spec);
47
+ const services = (mod?.default ?? mod)?.services ?? [];
48
+ for (const svc of services) {
49
+ if (svc?.identifier)
50
+ pkgByIdentifier.set(svc.identifier, pkg);
51
+ }
52
+ }
53
+ catch {
54
+ // a single unresolvable provider must not sink the whole event
55
+ }
56
+ }
57
+ let machineId = "";
58
+ try {
59
+ machineId = (0, telemetry_1.getMachineId)();
60
+ }
61
+ catch {
62
+ // hash without a salt rather than dropping the event
63
+ }
64
+ const providerService = new integration_provider_1.default(container.cradle);
65
+ const list = providerService.listRegistrations().map((r) => {
66
+ const pkg = pkgByIdentifier.get(r.identifier);
67
+ return {
68
+ module: r.provider.descriptor.module,
69
+ id: r.identifier,
70
+ package_name: pkg?.name ?? null,
71
+ package_version: pkg?.version ?? null,
72
+ };
73
+ });
74
+ telemetry.track("plugin.started", { providers: list, provider_count: list.length });
75
+ }
76
+ catch {
77
+ // never throw from telemetry
78
+ }
79
+ };
25
80
  exports.default = async ({ container, options, }) => {
26
81
  container.register({
27
82
  [types_1.INTEGRATION_OPTIONS_KEY]: (0, awilix_1.asValue)(options ?? {}),
@@ -31,5 +86,7 @@ exports.default = async ({ container, options, }) => {
31
86
  providers: options?.providers || [],
32
87
  registerServiceFn: registrationFn,
33
88
  });
89
+ // Providers are now registered — announce them (guarded; never throws).
90
+ await trackStarted(container, options?.providers ?? []);
34
91
  };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9sb2FkZXJzL2xvYWQtcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQTBFO0FBQzFFLGlFQUFzRTtBQU10RSxvQ0FJaUI7QUFFakI7Ozs7OztHQU1HO0FBQ0gsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUMxQixLQUFVLEVBQ1YsU0FBYyxFQUNkLGFBQWlFLEVBQ2pFLEVBQUU7SUFDRixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxHQUFHLDZDQUFxQyxHQUFHLEtBQUssQ0FBQyxVQUFVLEdBQ3JFLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDbEMsRUFBRSxDQUFBO0lBRUYsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNqQixtRkFBbUY7UUFDbkYsdUZBQXVGO1FBQ3ZGLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBQSxtQkFBVSxFQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRTtZQUN2RixRQUFRLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxpQkFBUSxDQUFDLFNBQVM7U0FDaEQsQ0FBQztLQUNILENBQUMsQ0FBQTtJQUVGLFNBQVMsQ0FBQyxXQUFXLENBQUMsMENBQWtDLEVBQUUsSUFBQSxnQkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDekUsQ0FBQyxDQUFBO0FBRUQsa0JBQWUsS0FBSyxFQUFFLEVBQ3BCLFNBQVMsRUFDVCxPQUFPLEdBTVIsRUFBaUIsRUFBRTtJQUNsQixTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ2pCLENBQUMsK0JBQXVCLENBQUMsRUFBRSxJQUFBLGdCQUFPLEVBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztLQUNsRCxDQUFDLENBQUE7SUFFRixNQUFNLElBQUEsa0NBQW9CLEVBQUM7UUFDekIsU0FBUztRQUNULFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLEVBQUU7UUFDbkMsaUJBQWlCLEVBQUUsY0FBYztLQUNsQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUEifQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9sb2FkZXJzL2xvYWQtcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsMERBQTRCO0FBQzVCLHVEQUEwRTtBQUMxRSxpRUFBc0U7QUFNdEUsZ0RBQXVGO0FBQ3ZGLG9DQUlpQjtBQUNqQiw0RkFBeUU7QUFFekU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUMxQixLQUFVLEVBQ1YsU0FBYyxFQUNkLGFBQWlFLEVBQ2pFLEVBQUU7SUFDRixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxHQUFHLDZDQUFxQyxHQUFHLEtBQUssQ0FBQyxVQUFVLEdBQ3JFLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDbEMsRUFBRSxDQUFBO0lBRUYsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNqQixtRkFBbUY7UUFDbkYsdUZBQXVGO1FBQ3ZGLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBQSxtQkFBVSxFQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRTtZQUN2RixRQUFRLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxpQkFBUSxDQUFDLFNBQVM7U0FDaEQsQ0FBQztLQUNILENBQUMsQ0FBQTtJQUVGLFNBQVMsQ0FBQyxXQUFXLENBQUMsMENBQWtDLEVBQUUsSUFBQSxnQkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDekUsQ0FBQyxDQUFBO0FBU0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLFNBQWMsRUFBRSxTQUEyQixFQUFpQixF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
@@ -0,0 +1,5 @@
1
+ import { Migration } from "@medusajs/framework/mikro-orm/migrations";
2
+ export declare class Migration20260716110756 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260716110756 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260716110756 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "integration" drop constraint if exists "integration_last_test_status_check";`);
8
+ this.addSql(`alter table if exists "integration" add constraint "integration_last_test_status_check" check("last_test_status" in ('passed', 'failed', 'skipped'));`);
9
+ }
10
+ async down() {
11
+ this.addSql(`alter table if exists "integration" drop constraint if exists "integration_last_test_status_check";`);
12
+ this.addSql(`alter table if exists "integration" add constraint "integration_last_test_status_check" check("last_test_status" in ('ok', 'fail', 'skipped'));`);
13
+ }
14
+ }
15
+ exports.Migration20260716110756 = Migration20260716110756;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA3MTYxMTA3NTYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYwNzE2MTEwNzU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFxRTtBQUVyRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxR0FBcUcsQ0FBQyxDQUFDO1FBRW5ILElBQUksQ0FBQyxNQUFNLENBQUMsdUpBQXVKLENBQUMsQ0FBQztJQUN2SyxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxR0FBcUcsQ0FBQyxDQUFDO1FBRW5ILElBQUksQ0FBQyxNQUFNLENBQUMsaUpBQWlKLENBQUMsQ0FBQztJQUNqSyxDQUFDO0NBRUY7QUFkRCwwREFjQyJ9
@@ -0,0 +1,5 @@
1
+ import { Migration } from "@medusajs/framework/mikro-orm/migrations";
2
+ export declare class Migration20260716132041 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }