@wecode-team/cms-supabase-api 0.1.50 → 0.1.51

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.
@@ -0,0 +1,23 @@
1
+ import { Context } from "hono";
2
+ export declare function getConfig(c: Context): Promise<(Response & import("hono").TypedResponse<{
3
+ success: boolean;
4
+ message?: string | undefined;
5
+ data?: any;
6
+ error?: string | undefined;
7
+ }, 200, "json">) | (Response & import("hono").TypedResponse<{
8
+ success: boolean;
9
+ message?: string | undefined;
10
+ data?: any;
11
+ error?: string | undefined;
12
+ }, 500, "json">)>;
13
+ export declare function updateConfig(c: Context): Promise<(Response & import("hono").TypedResponse<{
14
+ success: boolean;
15
+ message?: string | undefined;
16
+ data?: any;
17
+ error?: string | undefined;
18
+ }, 200, "json">) | (Response & import("hono").TypedResponse<{
19
+ success: boolean;
20
+ message?: string | undefined;
21
+ data?: any;
22
+ error?: string | undefined;
23
+ }, 500, "json">)>;
package/dist/index.d.ts CHANGED
@@ -10,8 +10,9 @@ export { getModels, createModel, updateModel, deleteModel, } from "./handlers/mo
10
10
  export { getTableData, createTableData, updateTableData, deleteTableData, getRelationOptions, getTableDataWithRelations, dropForeignKeys, } from "./handlers/data";
11
11
  export { login, signup, signupStatus, forgotPassword, resetPassword, verifyAuth, getCurrentUser, requireAuth, } from "./handlers/auth";
12
12
  export { uploadToOss, } from "./handlers/upload";
13
+ export { getConfig, updateConfig, } from "./handlers/configs";
13
14
  export type { SchemaField, JsonSchema, CmsModelAttributes, CmsModelCreationAttributes, ApiResponse, PaginatedResponse, SupabaseConfig, DatabaseConfig, TableDataOptions, SupabaseFilter, FieldTypeMapping, RelationType, RelationConfig, RelationOption, GetRelationOptionsParams, } from "./types";
14
15
  export type { User, UserInfo, LoginRequest, ForgotPasswordRequest, ResetPasswordRequest, LoginResponse, } from "./handlers/auth";
15
- export { createCmsRoutes, createModelRoute, createDynamicDataRoute, createDynamicAuthRoute, createDataRoute, createAuthRoute, createOssUploadRoute, } from "./utils/route-helpers";
16
+ export { createCmsRoutes, createModelRoute, createDynamicDataRoute, createDynamicAuthRoute, createDataRoute, createAuthRoute, createOssUploadRoute, createConfigRoute, } from "./utils/route-helpers";
16
17
  export { notifyCmsCrudErrorToFeishu, reportCmsCrudErrorToFeishu, } from "./utils/feishu-alert";
17
18
  export type { OssUploadProvider, OssUploadReturnMode, OssUploadConfig, NormalizedOssUploadConfig, OssUploadInput, OssUploadResult, UploadRouteResponse, } from "./types/upload";
package/dist/index.esm.js CHANGED
@@ -1012,8 +1012,8 @@ function _defineProperty(e, r, t) {
1012
1012
  }) : e[r] = t, e;
1013
1013
  }
1014
1014
 
1015
- function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1016
- function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1015
+ function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1016
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1017
1017
  function _createForOfIteratorHelper$2(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$3(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
1018
1018
  function _unsupportedIterableToArray$3(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$3(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$3(r, a) : void 0; } }
1019
1019
  function _arrayLikeToArray$3(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -2069,7 +2069,7 @@ var DynamicTableService = /*#__PURE__*/function () {
2069
2069
  throw error;
2070
2070
  case 2:
2071
2071
  return _context14.abrupt("return", (data || []).map(function (item) {
2072
- return _objectSpread$3({
2072
+ return _objectSpread$4({
2073
2073
  id: item.id,
2074
2074
  label: item[displayField] || "ID: ".concat(item.id)
2075
2075
  }, item);
@@ -2182,8 +2182,8 @@ function getDynamicTableService() {
2182
2182
  return defaultService$1;
2183
2183
  }
2184
2184
 
2185
- function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2186
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2185
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2186
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2187
2187
  var AuthService = /*#__PURE__*/function () {
2188
2188
  function AuthService() {
2189
2189
  _classCallCheck(this, AuthService);
@@ -2360,7 +2360,7 @@ var AuthService = /*#__PURE__*/function () {
2360
2360
  return _regeneratorRuntime.wrap(function (_context4) {
2361
2361
  while (1) switch (_context4.prev = _context4.next) {
2362
2362
  case 0:
2363
- finalUserData = _objectSpread$2({
2363
+ finalUserData = _objectSpread$3({
2364
2364
  tableName: this.defaultTableName
2365
2365
  }, userData);
2366
2366
  _context4.prev = 1;
@@ -2418,7 +2418,7 @@ var AuthService = /*#__PURE__*/function () {
2418
2418
  case 0:
2419
2419
  updateData = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : {};
2420
2420
  // 设置默认值
2421
- finalUpdateData = _objectSpread$2({
2421
+ finalUpdateData = _objectSpread$3({
2422
2422
  tableName: this.defaultTableName
2423
2423
  }, updateData);
2424
2424
  _context5.prev = 1;
@@ -2826,8 +2826,8 @@ function _toConsumableArray(r) {
2826
2826
  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$2(r) || _nonIterableSpread();
2827
2827
  }
2828
2828
 
2829
- function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2830
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2829
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2830
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2831
2831
  function _callSuper$1(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$1() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
2832
2832
  function _isNativeReflectConstruct$1() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$1 = function _isNativeReflectConstruct() { return !!t; })(); }
2833
2833
  // src/error.ts
@@ -3355,7 +3355,7 @@ var DEFAULT_LIMITS = {
3355
3355
  other: 10 * 1024 * 1024
3356
3356
  };
3357
3357
  function getSizeLimit(fileName, limits) {
3358
- var merged = _objectSpread$1(_objectSpread$1({}, DEFAULT_LIMITS), limits);
3358
+ var merged = _objectSpread$2(_objectSpread$2({}, DEFAULT_LIMITS), limits);
3359
3359
  if (isImage(fileName)) return merged.image;
3360
3360
  if (isVideo(fileName)) return merged.video;
3361
3361
  return merged.other;
@@ -3383,7 +3383,7 @@ function _compressImageBlob() {
3383
3383
  return _regeneratorRuntime.wrap(function (_context10) {
3384
3384
  while (1) switch (_context10.prev = _context10.next) {
3385
3385
  case 0:
3386
- opts = _objectSpread$1(_objectSpread$1({}, DEFAULT_COMPRESS), options);
3386
+ opts = _objectSpread$2(_objectSpread$2({}, DEFAULT_COMPRESS), options);
3387
3387
  if (!(typeof createImageBitmap === "undefined" || typeof OffscreenCanvas === "undefined")) {
3388
3388
  _context10.next = 1;
3389
3389
  break;
@@ -3449,7 +3449,7 @@ function _processFile() {
3449
3449
  return _regeneratorRuntime.wrap(function (_context11) {
3450
3450
  while (1) switch (_context11.prev = _context11.next) {
3451
3451
  case 0:
3452
- opts = _objectSpread$1(_objectSpread$1({}, DEFAULT_COMPRESS), compress);
3452
+ opts = _objectSpread$2(_objectSpread$2({}, DEFAULT_COMPRESS), compress);
3453
3453
  if (!(opts.enabled && isImage(fileName))) {
3454
3454
  _context11.next = 2;
3455
3455
  break;
@@ -3513,7 +3513,7 @@ function createOssClient() {
3513
3513
  var allowedExtensions = options.allowedExtensions;
3514
3514
  function mergeRetry(override) {
3515
3515
  if (!defaultRetry && !override) return void 0;
3516
- return _objectSpread$1(_objectSpread$1({}, defaultRetry), override);
3516
+ return _objectSpread$2(_objectSpread$2({}, defaultRetry), override);
3517
3517
  }
3518
3518
  function resolveCompress(override) {
3519
3519
  if (override === false) return {
@@ -3523,7 +3523,7 @@ function createOssClient() {
3523
3523
  enabled: false
3524
3524
  };
3525
3525
  var base = _typeof$1(defaultCompress) === "object" ? defaultCompress : {};
3526
- return override ? _objectSpread$1(_objectSpread$1({}, base), override) : Object.keys(base).length ? base : void 0;
3526
+ return override ? _objectSpread$2(_objectSpread$2({}, base), override) : Object.keys(base).length ? base : void 0;
3527
3527
  }
3528
3528
  function uploadOne(_x25, _x26, _x27, _x28) {
3529
3529
  return _uploadOne.apply(this, arguments);
@@ -3609,7 +3609,7 @@ function createOssClient() {
3609
3609
  var i = index++;
3610
3610
  var item = files[i];
3611
3611
  running++;
3612
- var fileOpts = _objectSpread$1({
3612
+ var fileOpts = _objectSpread$2({
3613
3613
  retry: opts === null || opts === void 0 ? void 0 : opts.retry,
3614
3614
  compress: opts === null || opts === void 0 ? void 0 : opts.compress
3615
3615
  }, item.options);
@@ -4774,8 +4774,8 @@ var _excluded = ["id", "created_at", "updated_at"],
4774
4774
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n2 = 0, F = function F() {}; return { s: F, n: function n() { return _n2 >= r.length ? { done: !0 } : { done: !1, value: r[_n2++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
4775
4775
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4776
4776
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
4777
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4778
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4777
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4778
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4779
4779
  function normalizeJsonLikeFields(schemaFields, payload) {
4780
4780
  if (!schemaFields || schemaFields.length === 0) return payload;
4781
4781
  var jsonLikeFieldNames = new Set(schemaFields.filter(function (f) {
@@ -4784,7 +4784,7 @@ function normalizeJsonLikeFields(schemaFields, payload) {
4784
4784
  return f.name;
4785
4785
  }));
4786
4786
  if (jsonLikeFieldNames.size === 0) return payload;
4787
- var normalized = _objectSpread({}, payload);
4787
+ var normalized = _objectSpread$1({}, payload);
4788
4788
  for (var _i = 0, _Object$entries = Object.entries(payload); _i < _Object$entries.length; _i++) {
4789
4789
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
4790
4790
  key = _Object$entries$_i[0],
@@ -6908,6 +6908,225 @@ function _uploadToOss() {
6908
6908
  return _uploadToOss.apply(this, arguments);
6909
6909
  }
6910
6910
 
6911
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6912
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6913
+ var CONFIG_NAMESPACE_RE = /^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/;
6914
+ var CONFIG_SESSION_RE = /^[a-zA-Z0-9_]{1,128}$/;
6915
+ function getConfigSessionId(c) {
6916
+ return normalizeSessionId(c.req.header("X-Session-Id") || c.req.header("x-session-id"));
6917
+ }
6918
+ function validateConfigSessionId(sessionId) {
6919
+ if (!sessionId) return "缺少 X-Session-Id,无法访问配置中心";
6920
+ if (!CONFIG_SESSION_RE.test(sessionId)) {
6921
+ return "X-Session-Id 格式不合法";
6922
+ }
6923
+ return null;
6924
+ }
6925
+ function getConfigsTableName(sessionId) {
6926
+ return "".concat(sessionId, "__config__");
6927
+ }
6928
+ function normalizeValues(values) {
6929
+ if (!values || _typeof$1(values) !== "object" || Array.isArray(values)) {
6930
+ return {};
6931
+ }
6932
+ return values;
6933
+ }
6934
+ function buildFieldStatus(values) {
6935
+ return Object.fromEntries(Object.entries(values).map(function (_ref) {
6936
+ var _ref2 = _slicedToArray(_ref, 2),
6937
+ key = _ref2[0],
6938
+ value = _ref2[1];
6939
+ return [key, {
6940
+ configured: value !== null && value !== undefined && String(value).trim() !== ""
6941
+ }];
6942
+ }));
6943
+ }
6944
+ function validateNamespace(namespace) {
6945
+ if (!namespace) return "缺少 namespace";
6946
+ if (!CONFIG_NAMESPACE_RE.test(namespace)) {
6947
+ return "namespace 只能包含字母、数字、下划线和连字符,且必须以字母开头";
6948
+ }
6949
+ return null;
6950
+ }
6951
+ function toConfigResponse(row, fallbackNamespace) {
6952
+ var values = normalizeValues(row === null || row === void 0 ? void 0 : row.values);
6953
+ return {
6954
+ id: row === null || row === void 0 ? void 0 : row.id,
6955
+ namespace: (row === null || row === void 0 ? void 0 : row.namespace) || fallbackNamespace,
6956
+ values: values,
6957
+ fields: buildFieldStatus(values),
6958
+ created_at: row === null || row === void 0 ? void 0 : row.created_at,
6959
+ updated_at: row === null || row === void 0 ? void 0 : row.updated_at
6960
+ };
6961
+ }
6962
+ function getConfig(_x2) {
6963
+ return _getConfig.apply(this, arguments);
6964
+ }
6965
+ function _getConfig() {
6966
+ _getConfig = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(c) {
6967
+ var namespace, namespaceError, _response, sessionId, sessionError, _response2, tableName, supabase, _yield$supabase$from$, data, error, response, _response3, _t;
6968
+ return _regeneratorRuntime.wrap(function (_context2) {
6969
+ while (1) switch (_context2.prev = _context2.next) {
6970
+ case 0:
6971
+ _context2.prev = 0;
6972
+ namespace = (c.req.query("namespace") || "").trim();
6973
+ namespaceError = validateNamespace(namespace);
6974
+ if (!namespaceError) {
6975
+ _context2.next = 1;
6976
+ break;
6977
+ }
6978
+ _response = {
6979
+ success: false,
6980
+ message: namespaceError
6981
+ };
6982
+ return _context2.abrupt("return", c.json(_response, 200));
6983
+ case 1:
6984
+ sessionId = getConfigSessionId(c);
6985
+ sessionError = validateConfigSessionId(sessionId);
6986
+ if (!sessionError) {
6987
+ _context2.next = 2;
6988
+ break;
6989
+ }
6990
+ _response2 = {
6991
+ success: false,
6992
+ message: sessionError
6993
+ };
6994
+ return _context2.abrupt("return", c.json(_response2, 200));
6995
+ case 2:
6996
+ tableName = getConfigsTableName(sessionId);
6997
+ supabase = getSupabase();
6998
+ _context2.next = 3;
6999
+ return supabase.from(tableName).select("*").eq("namespace", namespace).maybeSingle();
7000
+ case 3:
7001
+ _yield$supabase$from$ = _context2.sent;
7002
+ data = _yield$supabase$from$.data;
7003
+ error = _yield$supabase$from$.error;
7004
+ if (!error) {
7005
+ _context2.next = 4;
7006
+ break;
7007
+ }
7008
+ throw error;
7009
+ case 4:
7010
+ response = {
7011
+ success: true,
7012
+ data: toConfigResponse(data, namespace)
7013
+ };
7014
+ return _context2.abrupt("return", c.json(response, 200));
7015
+ case 5:
7016
+ _context2.prev = 5;
7017
+ _t = _context2["catch"](0);
7018
+ console.error("获取配置失败:", _t);
7019
+ _response3 = {
7020
+ success: false,
7021
+ message: "获取配置失败",
7022
+ error: _t.message
7023
+ };
7024
+ return _context2.abrupt("return", c.json(_response3, 500));
7025
+ case 6:
7026
+ case "end":
7027
+ return _context2.stop();
7028
+ }
7029
+ }, _callee2, null, [[0, 5]]);
7030
+ }));
7031
+ return _getConfig.apply(this, arguments);
7032
+ }
7033
+ function updateConfig(_x3) {
7034
+ return _updateConfig.apply(this, arguments);
7035
+ }
7036
+ function _updateConfig() {
7037
+ _updateConfig = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(c) {
7038
+ var namespace, namespaceError, _response4, body, values, sessionId, sessionError, _response5, tableName, supabase, _yield$supabase$from$2, existing, existingError, nextValues, _yield$supabase$from$3, data, error, response, _response6, _t2;
7039
+ return _regeneratorRuntime.wrap(function (_context3) {
7040
+ while (1) switch (_context3.prev = _context3.next) {
7041
+ case 0:
7042
+ _context3.prev = 0;
7043
+ namespace = (c.req.param("namespace") || "").trim();
7044
+ namespaceError = validateNamespace(namespace);
7045
+ if (!namespaceError) {
7046
+ _context3.next = 1;
7047
+ break;
7048
+ }
7049
+ _response4 = {
7050
+ success: false,
7051
+ message: namespaceError
7052
+ };
7053
+ return _context3.abrupt("return", c.json(_response4, 200));
7054
+ case 1:
7055
+ _context3.next = 2;
7056
+ return c.req.json();
7057
+ case 2:
7058
+ body = _context3.sent;
7059
+ values = normalizeValues(body === null || body === void 0 ? void 0 : body.values);
7060
+ sessionId = getConfigSessionId(c);
7061
+ sessionError = validateConfigSessionId(sessionId);
7062
+ if (!sessionError) {
7063
+ _context3.next = 3;
7064
+ break;
7065
+ }
7066
+ _response5 = {
7067
+ success: false,
7068
+ message: sessionError
7069
+ };
7070
+ return _context3.abrupt("return", c.json(_response5, 200));
7071
+ case 3:
7072
+ tableName = getConfigsTableName(sessionId);
7073
+ supabase = getSupabase();
7074
+ _context3.next = 4;
7075
+ return supabase.from(tableName).select("values").eq("namespace", namespace).maybeSingle();
7076
+ case 4:
7077
+ _yield$supabase$from$2 = _context3.sent;
7078
+ existing = _yield$supabase$from$2.data;
7079
+ existingError = _yield$supabase$from$2.error;
7080
+ if (!existingError) {
7081
+ _context3.next = 5;
7082
+ break;
7083
+ }
7084
+ throw existingError;
7085
+ case 5:
7086
+ nextValues = _objectSpread(_objectSpread({}, normalizeValues(existing === null || existing === void 0 ? void 0 : existing.values)), values);
7087
+ _context3.next = 6;
7088
+ return supabase.from(tableName).upsert({
7089
+ namespace: namespace,
7090
+ values: nextValues,
7091
+ updated_at: new Date().toISOString()
7092
+ }, {
7093
+ onConflict: "namespace"
7094
+ }).select("*").single();
7095
+ case 6:
7096
+ _yield$supabase$from$3 = _context3.sent;
7097
+ data = _yield$supabase$from$3.data;
7098
+ error = _yield$supabase$from$3.error;
7099
+ if (!error) {
7100
+ _context3.next = 7;
7101
+ break;
7102
+ }
7103
+ throw error;
7104
+ case 7:
7105
+ response = {
7106
+ success: true,
7107
+ message: "配置保存成功",
7108
+ data: toConfigResponse(data, namespace)
7109
+ };
7110
+ return _context3.abrupt("return", c.json(response, 200));
7111
+ case 8:
7112
+ _context3.prev = 8;
7113
+ _t2 = _context3["catch"](0);
7114
+ console.error("保存配置失败:", _t2);
7115
+ _response6 = {
7116
+ success: false,
7117
+ message: "保存配置失败",
7118
+ error: _t2.message
7119
+ };
7120
+ return _context3.abrupt("return", c.json(_response6, 500));
7121
+ case 9:
7122
+ case "end":
7123
+ return _context3.stop();
7124
+ }
7125
+ }, _callee3, null, [[0, 8]]);
7126
+ }));
7127
+ return _updateConfig.apply(this, arguments);
7128
+ }
7129
+
6911
7130
  var AUTH_REQUIRED = "CMS_AUTH_REQUIRED";
6912
7131
  var AUTH_INVALID = "CMS_AUTH_INVALID";
6913
7132
  var CMS_FORBIDDEN = "CMS_FORBIDDEN";
@@ -7419,13 +7638,21 @@ function createOssUploadRoute(app) {
7419
7638
  app.post("/upload", requireJwtAuth, requireAdminRole, uploadToOss);
7420
7639
  return app;
7421
7640
  }
7641
+ function createConfigRoute(app) {
7642
+ app.get("/configs", requireJwtAuth, requireAdminRole, getConfig);
7643
+ app.put("/configs/:namespace", requireJwtAuth, requireAdminRole, function (c) {
7644
+ return updateConfig(c);
7645
+ });
7646
+ return app;
7647
+ }
7422
7648
  // 一键创建所有CMS路由
7423
7649
  function createCmsRoutes(app) {
7424
7650
  createModelRoute(app);
7651
+ createConfigRoute(app);
7425
7652
  createDynamicDataRoute(app);
7426
7653
  createDynamicAuthRoute(app);
7427
7654
  return app;
7428
7655
  }
7429
7656
 
7430
- export { AuthService, getCmsModelService as CmsModel, CmsModelService, DynamicTableService, OssUploadError, OssUploadService, closeSupabase as closeDatabase, closeSupabase, createAuthRoute, createCmsRoutes, createDataRoute, createDynamicAuthRoute, createDynamicDataRoute, createModel, createModelRoute, createOssUploadRoute, createTableData, deleteModel, deleteTableData, dropForeignKeys, executeSupabaseSetup, feishuAlertConfig, forgotPassword, getAuthService, getCmsModelService, getCurrentUser, getSupabase as getDatabase, getDynamicTableService, getModels, getOssUploadService, getRelationOptions, getSupabase, getSupabaseSetupSQL, getTableData, getTableDataWithRelations, initializeCmsModel, initializeCmsSystem, initializeSupabase as initializeDatabase, initializeOssUpload, initializeSupabase, login, notifyCmsCrudErrorToFeishu, reportCmsCrudErrorToFeishu, requireAuth, resetPassword, signup, signupStatus, initializeCmsSystem as syncDatabase, testConnection, updateModel, updateTableData, uploadToOss, verifyAuth };
7657
+ export { AuthService, getCmsModelService as CmsModel, CmsModelService, DynamicTableService, OssUploadError, OssUploadService, closeSupabase as closeDatabase, closeSupabase, createAuthRoute, createCmsRoutes, createConfigRoute, createDataRoute, createDynamicAuthRoute, createDynamicDataRoute, createModel, createModelRoute, createOssUploadRoute, createTableData, deleteModel, deleteTableData, dropForeignKeys, executeSupabaseSetup, feishuAlertConfig, forgotPassword, getAuthService, getCmsModelService, getConfig, getCurrentUser, getSupabase as getDatabase, getDynamicTableService, getModels, getOssUploadService, getRelationOptions, getSupabase, getSupabaseSetupSQL, getTableData, getTableDataWithRelations, initializeCmsModel, initializeCmsSystem, initializeSupabase as initializeDatabase, initializeOssUpload, initializeSupabase, login, notifyCmsCrudErrorToFeishu, reportCmsCrudErrorToFeishu, requireAuth, resetPassword, signup, signupStatus, initializeCmsSystem as syncDatabase, testConnection, updateConfig, updateModel, updateTableData, uploadToOss, verifyAuth };
7431
7658
  //# sourceMappingURL=index.esm.js.map