@nocobase/plugin-api-keys 0.11.1-alpha.5 → 0.12.0-alpha.1

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 (94) hide show
  1. package/client.d.ts +2 -2
  2. package/client.js +1 -1
  3. package/dist/client/index.js +483 -0
  4. package/dist/collections/api-keys.js +98 -0
  5. package/dist/collections/index.d.ts +1 -0
  6. package/dist/collections/index.js +11 -0
  7. package/dist/constants.js +5 -0
  8. package/{lib → dist}/index.d.ts +1 -0
  9. package/dist/index.js +18 -0
  10. package/dist/locale/en-US.js +6 -0
  11. package/dist/locale/fr-FR.js +6 -0
  12. package/dist/locale/zh-CN.js +24 -0
  13. package/dist/locale.js +9 -0
  14. package/dist/server/actions/api-keys.js +51 -0
  15. package/dist/server/index.js +11 -0
  16. package/dist/server/locale/en-US.js +5 -0
  17. package/dist/server/locale/fr-FR.js +5 -0
  18. package/dist/server/locale/index.js +20 -0
  19. package/dist/server/locale/zh-CN.js +7 -0
  20. package/dist/server/plugin.js +48 -0
  21. package/docs/en-US/changelog.md +1 -0
  22. package/docs/en-US/index.md +9 -0
  23. package/docs/en-US/tabs.json +14 -0
  24. package/docs/en-US/usage.md +19 -0
  25. package/docs/zh-CN/changelog.md +1 -0
  26. package/docs/zh-CN/index.md +10 -0
  27. package/docs/zh-CN/tabs.json +14 -0
  28. package/docs/zh-CN/usage.md +19 -0
  29. package/package.json +19 -27
  30. package/server.d.ts +2 -3
  31. package/server.js +1 -30
  32. package/lib/client/Configuration/ExpiresSelect.js +0 -130
  33. package/lib/client/Configuration/index.js +0 -47
  34. package/lib/client/Configuration/roles.js +0 -20
  35. package/lib/client/Configuration/schema.js +0 -319
  36. package/lib/client/index.js +0 -56
  37. package/lib/client/locale/index.js +0 -32
  38. package/lib/collections/api-keys.js +0 -87
  39. package/lib/collections/index.d.ts +0 -1
  40. package/lib/collections/index.js +0 -13
  41. package/lib/constants.js +0 -8
  42. package/lib/index.js +0 -13
  43. package/lib/locale/en-US.js +0 -9
  44. package/lib/locale/fr-FR.js +0 -9
  45. package/lib/locale/zh-CN.js +0 -27
  46. package/lib/locale.js +0 -10
  47. package/lib/server/actions/api-keys.js +0 -71
  48. package/lib/server/index.js +0 -13
  49. package/lib/server/locale/en-US.js +0 -8
  50. package/lib/server/locale/fr-FR.js +0 -8
  51. package/lib/server/locale/index.js +0 -20
  52. package/lib/server/locale/zh-CN.js +0 -10
  53. package/lib/server/plugin.js +0 -77
  54. package/src/client/Configuration/ExpiresSelect.tsx +0 -80
  55. package/src/client/Configuration/index.tsx +0 -18
  56. package/src/client/Configuration/roles.ts +0 -9
  57. package/src/client/Configuration/schema.tsx +0 -264
  58. package/src/client/index.tsx +0 -35
  59. package/src/client/locale/index.ts +0 -13
  60. package/src/collections/api-keys.ts +0 -95
  61. package/src/collections/index.ts +0 -1
  62. package/src/constants.ts +0 -1
  63. package/src/index.ts +0 -1
  64. package/src/locale/en-US.ts +0 -3
  65. package/src/locale/fr-FR.ts +0 -3
  66. package/src/locale/zh-CN.ts +0 -22
  67. package/src/locale.ts +0 -5
  68. package/src/server/__tests__/actions.test.ts +0 -181
  69. package/src/server/actions/api-keys.ts +0 -49
  70. package/src/server/index.ts +0 -1
  71. package/src/server/locale/en-US.ts +0 -1
  72. package/src/server/locale/fr-FR.ts +0 -1
  73. package/src/server/locale/index.ts +0 -2
  74. package/src/server/locale/zh-CN.ts +0 -3
  75. package/src/server/plugin.ts +0 -53
  76. /package/{lib → dist}/client/Configuration/ExpiresSelect.d.ts +0 -0
  77. /package/{lib → dist}/client/Configuration/index.d.ts +0 -0
  78. /package/{lib → dist}/client/Configuration/roles.d.ts +0 -0
  79. /package/{lib → dist}/client/Configuration/schema.d.ts +0 -0
  80. /package/{lib → dist}/client/index.d.ts +0 -0
  81. /package/{lib → dist}/client/locale/index.d.ts +0 -0
  82. /package/{lib → dist}/collections/api-keys.d.ts +0 -0
  83. /package/{lib → dist}/constants.d.ts +0 -0
  84. /package/{lib → dist}/locale/en-US.d.ts +0 -0
  85. /package/{lib → dist}/locale/fr-FR.d.ts +0 -0
  86. /package/{lib → dist}/locale/zh-CN.d.ts +0 -0
  87. /package/{lib → dist}/locale.d.ts +0 -0
  88. /package/{lib → dist}/server/actions/api-keys.d.ts +0 -0
  89. /package/{lib → dist}/server/index.d.ts +0 -0
  90. /package/{lib → dist}/server/locale/en-US.d.ts +0 -0
  91. /package/{lib → dist}/server/locale/fr-FR.d.ts +0 -0
  92. /package/{lib → dist}/server/locale/index.d.ts +0 -0
  93. /package/{lib → dist}/server/locale/zh-CN.d.ts +0 -0
  94. /package/{lib → dist}/server/plugin.d.ts +0 -0
package/dist/locale.js ADDED
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var constants = require('./constants');
4
+
5
+ function generateNTemplate(key) {
6
+ return `{{t('${key}', { ns: '${constants.NAMESPACE}', nsMode: 'fallback' })}}`;
7
+ }
8
+
9
+ exports.generateNTemplate = generateNTemplate;
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var actions = require('@nocobase/actions');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var actions__default = /*#__PURE__*/_interopDefault(actions);
8
+
9
+ async function create(ctx, next) {
10
+ const { values } = ctx.action.params;
11
+ if (!values.role) {
12
+ return;
13
+ }
14
+ const repository = ctx.db.getRepository("users.roles", ctx.auth.user.id);
15
+ const role = await repository.findOne({
16
+ filter: {
17
+ name: values.role.name
18
+ }
19
+ });
20
+ if (!role) {
21
+ throw ctx.throw(400, ctx.t("Role not found"));
22
+ }
23
+ const token = ctx.app.authManager.jwt.sign(
24
+ { userId: ctx.auth.user.id, roleName: role.name },
25
+ { expiresIn: values.expiresIn }
26
+ );
27
+ ctx.action.mergeParams({
28
+ values: {
29
+ token
30
+ }
31
+ });
32
+ return actions__default.default.create(ctx, async () => {
33
+ ctx.body = {
34
+ token
35
+ };
36
+ await next();
37
+ });
38
+ }
39
+ async function destroy(ctx, next) {
40
+ const repo = ctx.db.getRepository(ctx.action.resourceName);
41
+ const { filterByTk } = ctx.action.params;
42
+ const data = await repo.findById(filterByTk);
43
+ const token = data == null ? void 0 : data.get("token");
44
+ if (token) {
45
+ await ctx.app.authManager.jwt.block(token);
46
+ }
47
+ return actions__default.default.destroy(ctx, next);
48
+ }
49
+
50
+ exports.create = create;
51
+ exports.destroy = destroy;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var plugin = require('./plugin');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var plugin__default = /*#__PURE__*/_interopDefault(plugin);
8
+
9
+
10
+
11
+ module.exports = plugin__default.default;
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ var en_US_default = {};
4
+
5
+ module.exports = en_US_default;
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ var fr_FR_default = {};
4
+
5
+ module.exports = fr_FR_default;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var enUS = require('./en-US');
4
+ var zhCN = require('./zh-CN');
5
+
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var enUS__default = /*#__PURE__*/_interopDefault(enUS);
9
+ var zhCN__default = /*#__PURE__*/_interopDefault(zhCN);
10
+
11
+
12
+
13
+ Object.defineProperty(exports, 'enUS', {
14
+ enumerable: true,
15
+ get: function () { return enUS__default.default; }
16
+ });
17
+ Object.defineProperty(exports, 'zhCN', {
18
+ enumerable: true,
19
+ get: function () { return zhCN__default.default; }
20
+ });
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var zh_CN_default = {
4
+ "Role not found": "\u89D2\u8272\u4E0D\u5B58\u5728"
5
+ };
6
+
7
+ module.exports = zh_CN_default;
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var server = require('@nocobase/server');
4
+ var path = require('path');
5
+ var constants = require('../constants');
6
+ var apiKeys = require('./actions/api-keys');
7
+ var locale = require('./locale');
8
+
9
+ class ApiKeysPlugin extends server.Plugin {
10
+ resourceName = "apiKeys";
11
+ constructor(app, options) {
12
+ super(app, options);
13
+ }
14
+ async beforeLoad() {
15
+ this.app.i18n.addResources("zh-CN", constants.NAMESPACE, locale.zhCN);
16
+ this.app.i18n.addResources("en-US", constants.NAMESPACE, locale.enUS);
17
+ await this.app.resourcer.define({
18
+ name: this.resourceName,
19
+ actions: {
20
+ create: apiKeys.create,
21
+ destroy: apiKeys.destroy
22
+ },
23
+ only: ["list", "create", "destroy"]
24
+ });
25
+ this.app.acl.registerSnippet({
26
+ name: ["pm", this.name, "configuration"].join("."),
27
+ actions: ["apiKeys:list", "apiKeys:create", "apiKeys:destroy"]
28
+ });
29
+ }
30
+ async load() {
31
+ await this.db.import({
32
+ directory: path.resolve(__dirname, "../collections")
33
+ });
34
+ this.app.resourcer.use(async (ctx, next) => {
35
+ const { resourceName, actionName } = ctx.action.params;
36
+ if (resourceName == this.resourceName && ["list", "destroy"].includes(actionName)) {
37
+ ctx.action.mergeParams({
38
+ filter: {
39
+ createdById: ctx.auth.user.id
40
+ }
41
+ });
42
+ }
43
+ await next();
44
+ });
45
+ }
46
+ }
47
+
48
+ module.exports = ApiKeysPlugin;
@@ -0,0 +1 @@
1
+ # API keys Changelog
@@ -0,0 +1,9 @@
1
+ # API keys
2
+
3
+ ## Introduction
4
+
5
+ This plugin allows you to create and manage API keys. The generated API key can be used to access all `NocoBase` APIs.
6
+
7
+ ## Access Control
8
+
9
+ When creating an API key, you can bind it to a role, and the role's permissions will be the same as the Key's permissions.
@@ -0,0 +1,14 @@
1
+ [
2
+ {
3
+ "title": "Introduction",
4
+ "path": "index"
5
+ },
6
+ {
7
+ "title": "Usage",
8
+ "path": "usage"
9
+ },
10
+ {
11
+ "title": "Changelog",
12
+ "path": "changelog"
13
+ }
14
+ ]
@@ -0,0 +1,19 @@
1
+ # API keys Usage
2
+
3
+ ## Creating an API key
4
+
5
+ After enabling the plugin, go to the API keys plugin management page, click `Add API key`, fill in the relevant information, and click Save to create an API key.
6
+
7
+ ## Using an API key
8
+
9
+ Add the `Authorization` field to the request header, with the value of `Bearer ${API_KEY}`, to access all `NocoBase` APIs using the API key.
10
+
11
+ Here's an example using cURL:
12
+
13
+ ```bash
14
+ curl '{domain}/api/roles:check' -H 'Authorization: Bearer {API key}'
15
+ ```
16
+
17
+ ## Deleting an API key
18
+
19
+ After deleting the API key, it will no longer be usable.
@@ -0,0 +1 @@
1
+ # API keys 更新日志
@@ -0,0 +1,10 @@
1
+ # API keys
2
+
3
+ ## 简介
4
+
5
+ 该插件允许你创建和管理 API keys,生成的 API key 可以用于访问 `NocoBase` 所有 API。
6
+
7
+
8
+ ## 权限控制
9
+
10
+ 创建 API key 时,可以为该 Key 绑定角色,角色的权限就是 Key 的权限。
@@ -0,0 +1,14 @@
1
+ [
2
+ {
3
+ "title": "介绍",
4
+ "path": "index"
5
+ },
6
+ {
7
+ "title": "用法",
8
+ "path": "usage"
9
+ },
10
+ {
11
+ "title": "日志",
12
+ "path": "changelog"
13
+ }
14
+ ]
@@ -0,0 +1,19 @@
1
+ # API keys 使用方法
2
+
3
+ ## 创建 API key
4
+
5
+ 当你启用插件后,前往 API keys 的插件管理页面,点击 `添加 API key` 并填写相关信息,点击 `保存` 即可创建 API key。
6
+
7
+ ## 使用 API key
8
+
9
+ 在请求头中添加 `Authorization` 字段,值为 `Bearer ${API_KEY}`,即可使用 API key 访问 `NocoBase` 所有 API。
10
+
11
+ cURL 的例子如下
12
+
13
+ ```bash
14
+ curl '{domain}/api/roles:check' -H 'Authorization: Bearer {API key}'
15
+ ```
16
+
17
+ ## 删除 API key
18
+
19
+ 删除 API key 后,该 Key 将无法继续使用。
package/package.json CHANGED
@@ -1,39 +1,31 @@
1
1
  {
2
2
  "name": "@nocobase/plugin-api-keys",
3
3
  "displayName": "API keys",
4
- "displayName.zh-CN": "API keys",
5
- "description": "Allow users to use API key to access NocoBase's api",
6
- "description.zh-CN": "允许用户使用 API key 访问 NocoBase api",
7
- "version": "0.11.1-alpha.5",
4
+ "displayName.zh-CN": "API 秘钥",
5
+ "description": "Allow users to use API key to access NocoBase server API",
6
+ "description.zh-CN": "允许用户使用 API key 访问 NocoBase server API",
7
+ "version": "0.12.0-alpha.1",
8
8
  "license": "AGPL-3.0",
9
- "main": "./lib/server/index.js",
10
- "files": [
11
- "lib",
12
- "src",
13
- "README.md",
14
- "README.zh-CN.md",
15
- "CHANGELOG.md",
16
- "server.js",
17
- "server.d.ts",
18
- "client.js",
19
- "client.d.ts"
20
- ],
9
+ "main": "./dist/server/index.js",
21
10
  "devDependencies": {
22
- "@formily/react": "^2.2.27",
23
- "@formily/shared": "^2.2.27",
24
- "@nocobase/actions": "0.11.1-alpha.5",
25
- "@nocobase/client": "0.11.1-alpha.5",
26
- "@nocobase/database": "0.11.1-alpha.5",
27
- "@nocobase/resourcer": "0.11.1-alpha.5",
28
- "@nocobase/server": "0.11.1-alpha.5",
29
- "@nocobase/test": "0.11.1-alpha.5",
30
- "@nocobase/utils": "0.11.1-alpha.5",
31
- "antd": "^5.6.4",
11
+ "@formily/react": "2.x",
12
+ "@formily/shared": "2.x",
13
+ "ahooks": "^3.7.2",
14
+ "antd": "5.x",
32
15
  "dayjs": "^1.11.8",
33
16
  "i18next": "^22.4.9",
34
17
  "react": "^18.2.0",
35
18
  "react-dom": "^18.2.0",
36
19
  "react-i18next": "^11.15.1"
37
20
  },
38
- "gitHead": "1dcfd15a7d95a40b0a2f60e1de19ec574066fb20"
21
+ "peerDependencies": {
22
+ "@nocobase/actions": "0.x",
23
+ "@nocobase/client": "0.x",
24
+ "@nocobase/database": "0.x",
25
+ "@nocobase/resourcer": "0.x",
26
+ "@nocobase/server": "0.x",
27
+ "@nocobase/test": "0.x",
28
+ "@nocobase/utils": "0.x"
29
+ },
30
+ "gitHead": "543dcc0216b7b1451b552b0f685bc3e0682f9d59"
39
31
  }
package/server.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  // @ts-nocheck
2
- export * from './lib/server';
3
- export { default } from './lib/server';
4
-
2
+ export * from './dist/server';
3
+ export { default } from './dist/server';
package/server.js CHANGED
@@ -1,30 +1 @@
1
- "use strict";
2
-
3
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
4
-
5
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
6
-
7
- var _index = _interopRequireWildcard(require("./lib/server"));
8
-
9
- Object.defineProperty(exports, "__esModule", {
10
- value: true
11
- });
12
- var _exportNames = {};
13
- Object.defineProperty(exports, "default", {
14
- enumerable: true,
15
- get: function get() {
16
- return _index.default;
17
- }
18
- });
19
-
20
- Object.keys(_index).forEach(function (key) {
21
- if (key === "default" || key === "__esModule") return;
22
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
23
- if (key in exports && exports[key] === _index[key]) return;
24
- Object.defineProperty(exports, key, {
25
- enumerable: true,
26
- get: function get() {
27
- return _index[key];
28
- }
29
- });
30
- });
1
+ module.exports = require('./dist/server/index.js');
@@ -1,130 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ExpiresSelect = void 0;
7
- function _css() {
8
- const data = require("@emotion/css");
9
- _css = function _css() {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function _react() {
15
- const data = require("@formily/react");
16
- _react = function _react() {
17
- return data;
18
- };
19
- return data;
20
- }
21
- function _client() {
22
- const data = require("@nocobase/client");
23
- _client = function _client() {
24
- return data;
25
- };
26
- return data;
27
- }
28
- function _client2() {
29
- const data = require("@nocobase/utils/client");
30
- _client2 = function _client2() {
31
- return data;
32
- };
33
- return data;
34
- }
35
- function _ahooks() {
36
- const data = require("ahooks");
37
- _ahooks = function _ahooks() {
38
- return data;
39
- };
40
- return data;
41
- }
42
- function _antd() {
43
- const data = require("antd");
44
- _antd = function _antd() {
45
- return data;
46
- };
47
- return data;
48
- }
49
- function _react2() {
50
- const data = _interopRequireWildcard(require("react"));
51
- _react2 = function _react2() {
52
- return data;
53
- };
54
- return data;
55
- }
56
- var _locale = require("../locale");
57
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
58
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
59
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
60
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
61
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
62
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
63
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
64
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
65
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
66
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
67
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
68
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
69
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
70
- const TOMORROW = (0, _client2().dayjs)().add(1, 'days');
71
- const spaceCSS = (0, _css().css)`
72
- width: 100%;
73
- & > .ant-space-item {
74
- flex: 1;
75
- }
76
- `;
77
- const InternalExpiresSelect = props => {
78
- const onChange = props.onChange;
79
- const _useBoolean = (0, _ahooks().useBoolean)(),
80
- _useBoolean2 = _slicedToArray(_useBoolean, 2),
81
- isCustom = _useBoolean2[0],
82
- _useBoolean2$ = _useBoolean2[1],
83
- toggleShowDatePicker = _useBoolean2$.toggle,
84
- setFalse = _useBoolean2$.setFalse;
85
- const onSelectChange = v => {
86
- if (v === 'custom') {
87
- onChange('1d');
88
- return toggleShowDatePicker();
89
- } else {
90
- setFalse();
91
- onChange(v);
92
- }
93
- };
94
- const onDatePickerChange = v => {
95
- v = v.millisecond(0).second(0);
96
- const NOW = (0, _client2().dayjs)().millisecond(0).second(0);
97
- const value = `${v.diff(NOW, 'd')}d`;
98
- onChange(value);
99
- };
100
- return _react2().default.createElement(_antd().Space, {
101
- className: spaceCSS
102
- }, _react2().default.createElement(_antd().Select, _objectSpread(_objectSpread({}, props), {}, {
103
- value: isCustom ? 'custom' : props.value,
104
- onChange: onSelectChange
105
- })), isCustom ? _react2().default.createElement(_antd().DatePicker, {
106
- disabledDate: date => {
107
- return date.isSameOrBefore();
108
- },
109
- defaultValue: TOMORROW,
110
- onChange: onDatePickerChange,
111
- showToday: false,
112
- allowClear: false
113
- }) : null);
114
- };
115
- const ReadPretty = () => {
116
- const _useRecord = (0, _client().useRecord)(),
117
- expiresIn = _useRecord.expiresIn,
118
- createdAt = _useRecord.createdAt;
119
- const _useTranslation = (0, _locale.useTranslation)(),
120
- t = _useTranslation.t;
121
- const expiresDate = (0, _react2().useMemo)(() => {
122
- if (expiresIn === 'never') return t('Never expires');
123
- return (0, _client2().dayjs)(createdAt).add((expiresIn === null || expiresIn === void 0 ? void 0 : expiresIn.replace('d', '')) || 0, 'days').format('YYYY-MM-DD HH:mm:ss');
124
- }, [createdAt, expiresIn]);
125
- return _react2().default.createElement(_antd().Typography.Text, null, expiresDate);
126
- };
127
- const ExpiresSelect = (0, _react().connect)(InternalExpiresSelect, (0, _react().mapProps)({
128
- dataSource: 'options'
129
- }), (0, _react().mapReadPretty)(ReadPretty));
130
- exports.ExpiresSelect = ExpiresSelect;
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Configuration = void 0;
7
- function _react() {
8
- const data = require("@formily/react");
9
- _react = function _react() {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function _client() {
15
- const data = require("@nocobase/client");
16
- _client = function _client() {
17
- return data;
18
- };
19
- return data;
20
- }
21
- function _react2() {
22
- const data = _interopRequireDefault(require("react"));
23
- _react2 = function _react2() {
24
- return data;
25
- };
26
- return data;
27
- }
28
- var _collections = require("../../collections");
29
- var _ExpiresSelect = require("./ExpiresSelect");
30
- var _schema = require("./schema");
31
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
- const Configuration = () => {
33
- const currentRoles = (0, _client().useCurrentRoles)();
34
- return _react2().default.createElement(_client().CollectionManagerProvider, {
35
- collections: [_collections.apiKeysCollection]
36
- }, _react2().default.createElement(_client().SchemaComponentOptions, {
37
- scope: {
38
- currentRoles
39
- },
40
- components: {
41
- ExpiresSelect: _ExpiresSelect.ExpiresSelect
42
- }
43
- }, _react2().default.createElement(_react().RecursionField, {
44
- schema: _schema.configurationSchema
45
- })));
46
- };
47
- exports.Configuration = Configuration;
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useCurrentRolesProps = void 0;
7
- function _client() {
8
- const data = require("@nocobase/client");
9
- _client = function _client() {
10
- return data;
11
- };
12
- return data;
13
- }
14
- const useCurrentRolesProps = () => {
15
- const options = (0, _client().useCurrentRoles)();
16
- return {
17
- options
18
- };
19
- };
20
- exports.useCurrentRolesProps = useCurrentRolesProps;