@object-ui/i18n 13.1.0 → 13.2.0

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @object-ui/i18n
2
2
 
3
+ ## 13.2.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 53c40c2: feat: identity import — the stock ImportWizard now drives sys_user bulk import (framework#2782)
8
+
9
+ The Users list gets an Import entry for platform admins (gated on
10
+ `features.admin` from `/api/v1/auth/config` plus workspace-admin), wired to
11
+ the dedicated `POST /api/v1/auth/admin/import-users` pipeline instead of the
12
+ generic data import (which would bypass better-auth hashing and produce
13
+ accounts that can never sign in).
14
+
15
+ - **plugin-grid**: two generic, backend-agnostic ImportWizard slots —
16
+ `extraOptionsContent` (host-injected options on the preview step) and
17
+ `renderResultExtra` (host-rendered content on the result step).
18
+ - **app-shell**: identity import dataSource adapter — splits files into the
19
+ endpoint's ≤500-row batches (idempotent upsert makes re-runs safe), injects
20
+ the selected password policy, renumbers per-batch results onto the whole
21
+ file, and enriches rows with their sign-in identity. Password policy panel
22
+ (`none` default / `invite` / `temporary`) and a one-shot temporary-password
23
+ reveal with CSV download (client memory only — nothing is persisted).
24
+ Async-job/undo surfaces are hidden for identity import by design.
25
+ - **auth**: `AuthPublicConfig.features.admin` typing.
26
+ - **i18n**: en/zh strings for the identity import panels.
27
+
3
28
  ## 13.1.0
4
29
 
5
30
  ## 13.0.0
@@ -330,6 +330,10 @@ declare const en: {
330
330
  readonly title: "No users yet";
331
331
  readonly message: "User accounts are provisioned by the authentication provider, not created here. Invite teammates to your organization and they appear automatically on first sign-in (SSO just-in-time provisioning). App end-users arrive when they sign up through your app.";
332
332
  };
333
+ readonly betterAuthTeam: {
334
+ readonly title: "No teams yet";
335
+ readonly message: "Teams group members within an organization. Create one with “Create Team”, or they arrive through your auth provider’s organization and SSO provisioning flows.";
336
+ };
333
337
  };
334
338
  readonly showAll: "Show all";
335
339
  readonly pullToRefresh: "Pull to refresh";
@@ -482,6 +486,7 @@ declare const en: {
482
486
  readonly saveChanges: "Save changes";
483
487
  readonly saving: "Saving…";
484
488
  readonly editFieldsInline: "Edit fields";
489
+ readonly editInlineHint: "Double-click to edit";
485
490
  readonly lockedByApproval: "Locked for approval";
486
491
  readonly lockedTooltip: "This record has a pending approval request; editing is locked";
487
492
  readonly cancelApproval: "Recall approval";
@@ -1258,6 +1263,22 @@ declare const en: {
1258
1263
  readonly noAccessTitle: "Access denied";
1259
1264
  readonly noAccess: "You do not have permission to view this data.";
1260
1265
  };
1266
+ readonly identityImport: {
1267
+ readonly policyTitle: "Sign-in setup for imported users";
1268
+ readonly policy: {
1269
+ readonly none: "No password (recommended)";
1270
+ readonly invite: "Send invitations";
1271
+ readonly temporary: "Temporary passwords";
1272
+ };
1273
+ readonly policyHint: {
1274
+ readonly none: "Users first sign in with a phone OTP, magic link, or password-reset link, then set their own password.";
1275
+ readonly invite: "Each created user gets a set-your-password email (or an invitation SMS for phone-only rows). Requires a configured email/SMS service.";
1276
+ readonly temporary: "For deployments without email/SMS: each created user gets a one-time password, shown ONCE on the result screen. First sign-in forces a change.";
1277
+ };
1278
+ readonly passwordsNote: "Temporary passwords — shown once, never stored. Save them now; each user must change theirs at first sign-in.";
1279
+ readonly passwordsMore: "More entries omitted — use the download.";
1280
+ readonly passwordsDownload: "Download CSV";
1281
+ };
1261
1282
  readonly objectView: {
1262
1283
  readonly objectNotFound: "Object Not Found";
1263
1284
  readonly objectNotFoundDescription: "The object \"{{objectName}}\" does not exist in the current configuration.";
@@ -330,6 +330,10 @@ const en = {
330
330
  title: 'No users yet',
331
331
  message: 'User accounts are provisioned by the authentication provider, not created here. Invite teammates to your organization and they appear automatically on first sign-in (SSO just-in-time provisioning). App end-users arrive when they sign up through your app.',
332
332
  },
333
+ betterAuthTeam: {
334
+ title: 'No teams yet',
335
+ message: 'Teams group members within an organization. Create one with “Create Team”, or they arrive through your auth provider’s organization and SSO provisioning flows.',
336
+ },
333
337
  },
334
338
  showAll: 'Show all',
335
339
  pullToRefresh: 'Pull to refresh',
@@ -482,6 +486,7 @@ const en = {
482
486
  saveChanges: 'Save changes',
483
487
  saving: 'Saving…',
484
488
  editFieldsInline: 'Edit fields',
489
+ editInlineHint: 'Double-click to edit',
485
490
  lockedByApproval: 'Locked for approval',
486
491
  lockedTooltip: 'This record has a pending approval request; editing is locked',
487
492
  cancelApproval: 'Recall approval',
@@ -1274,6 +1279,22 @@ const en = {
1274
1279
  noAccessTitle: 'Access denied',
1275
1280
  noAccess: 'You do not have permission to view this data.',
1276
1281
  },
1282
+ identityImport: {
1283
+ policyTitle: 'Sign-in setup for imported users',
1284
+ policy: {
1285
+ none: 'No password (recommended)',
1286
+ invite: 'Send invitations',
1287
+ temporary: 'Temporary passwords',
1288
+ },
1289
+ policyHint: {
1290
+ none: 'Users first sign in with a phone OTP, magic link, or password-reset link, then set their own password.',
1291
+ invite: 'Each created user gets a set-your-password email (or an invitation SMS for phone-only rows). Requires a configured email/SMS service.',
1292
+ temporary: 'For deployments without email/SMS: each created user gets a one-time password, shown ONCE on the result screen. First sign-in forces a change.',
1293
+ },
1294
+ passwordsNote: 'Temporary passwords — shown once, never stored. Save them now; each user must change theirs at first sign-in.',
1295
+ passwordsMore: 'More entries omitted — use the download.',
1296
+ passwordsDownload: 'Download CSV',
1297
+ },
1277
1298
  objectView: {
1278
1299
  objectNotFound: 'Object Not Found',
1279
1300
  objectNotFoundDescription: 'The object "{{objectName}}" does not exist in the current configuration.',
@@ -342,6 +342,10 @@ export declare const builtInLocales: {
342
342
  readonly title: "No users yet";
343
343
  readonly message: "User accounts are provisioned by the authentication provider, not created here. Invite teammates to your organization and they appear automatically on first sign-in (SSO just-in-time provisioning). App end-users arrive when they sign up through your app.";
344
344
  };
345
+ readonly betterAuthTeam: {
346
+ readonly title: "No teams yet";
347
+ readonly message: "Teams group members within an organization. Create one with “Create Team”, or they arrive through your auth provider’s organization and SSO provisioning flows.";
348
+ };
345
349
  };
346
350
  readonly showAll: "Show all";
347
351
  readonly pullToRefresh: "Pull to refresh";
@@ -494,6 +498,7 @@ export declare const builtInLocales: {
494
498
  readonly saveChanges: "Save changes";
495
499
  readonly saving: "Saving…";
496
500
  readonly editFieldsInline: "Edit fields";
501
+ readonly editInlineHint: "Double-click to edit";
497
502
  readonly lockedByApproval: "Locked for approval";
498
503
  readonly lockedTooltip: "This record has a pending approval request; editing is locked";
499
504
  readonly cancelApproval: "Recall approval";
@@ -1270,6 +1275,22 @@ export declare const builtInLocales: {
1270
1275
  readonly noAccessTitle: "Access denied";
1271
1276
  readonly noAccess: "You do not have permission to view this data.";
1272
1277
  };
1278
+ readonly identityImport: {
1279
+ readonly policyTitle: "Sign-in setup for imported users";
1280
+ readonly policy: {
1281
+ readonly none: "No password (recommended)";
1282
+ readonly invite: "Send invitations";
1283
+ readonly temporary: "Temporary passwords";
1284
+ };
1285
+ readonly policyHint: {
1286
+ readonly none: "Users first sign in with a phone OTP, magic link, or password-reset link, then set their own password.";
1287
+ readonly invite: "Each created user gets a set-your-password email (or an invitation SMS for phone-only rows). Requires a configured email/SMS service.";
1288
+ readonly temporary: "For deployments without email/SMS: each created user gets a one-time password, shown ONCE on the result screen. First sign-in forces a change.";
1289
+ };
1290
+ readonly passwordsNote: "Temporary passwords — shown once, never stored. Save them now; each user must change theirs at first sign-in.";
1291
+ readonly passwordsMore: "More entries omitted — use the download.";
1292
+ readonly passwordsDownload: "Download CSV";
1293
+ };
1273
1294
  readonly objectView: {
1274
1295
  readonly objectNotFound: "Object Not Found";
1275
1296
  readonly objectNotFoundDescription: "The object \"{{objectName}}\" does not exist in the current configuration.";
@@ -2831,6 +2852,10 @@ export declare const builtInLocales: {
2831
2852
  readonly title: "暂无用户";
2832
2853
  readonly message: "用户账号由认证提供方预置,无法在此处手动创建。邀请团队成员加入你的组织,他们首次登录时会自动出现(SSO 即时预置)。应用的终端用户会在通过你的应用注册时出现。";
2833
2854
  };
2855
+ readonly betterAuthTeam: {
2856
+ readonly title: "暂无团队";
2857
+ readonly message: "团队用于在组织内对成员分组。可用「创建团队」新建,或通过认证提供方的组织与 SSO 预置流程自动出现。";
2858
+ };
2834
2859
  };
2835
2860
  readonly showAll: "显示全部";
2836
2861
  readonly pullToRefresh: "下拉刷新";
@@ -2987,6 +3012,7 @@ export declare const builtInLocales: {
2987
3012
  readonly saveChanges: "保存更改";
2988
3013
  readonly saving: "保存中…";
2989
3014
  readonly editFieldsInline: "编辑字段";
3015
+ readonly editInlineHint: "双击编辑";
2990
3016
  readonly lockedByApproval: "审批中已锁定";
2991
3017
  readonly lockedTooltip: "该记录有待审批的请求,编辑已被锁定";
2992
3018
  readonly cancelApproval: "撤回审批";
@@ -3756,6 +3782,22 @@ export declare const builtInLocales: {
3756
3782
  readonly noAccessTitle: "无访问权限";
3757
3783
  readonly noAccess: "您没有权限查看此数据。";
3758
3784
  };
3785
+ readonly identityImport: {
3786
+ readonly policyTitle: "导入用户的登录方式";
3787
+ readonly policy: {
3788
+ readonly none: "不设密码(推荐)";
3789
+ readonly invite: "发送邀请";
3790
+ readonly temporary: "临时密码";
3791
+ };
3792
+ readonly policyHint: {
3793
+ readonly none: "用户通过手机验证码、魔法链接或重置链接首次登录,之后自行设置密码。";
3794
+ readonly invite: "为每个新建用户发送\"设置密码\"邮件(仅手机号的行发送邀请短信)。需要已配置邮件/短信服务。";
3795
+ readonly temporary: "适用于未配置邮件/短信的部署:为每个新建用户生成一次性密码,仅在结果页显示一次,首次登录强制修改。";
3796
+ };
3797
+ readonly passwordsNote: "临时密码——仅显示一次,不会被保存。请立即保存;用户首次登录时必须修改。";
3798
+ readonly passwordsMore: "更多条目已省略——请使用下载。";
3799
+ readonly passwordsDownload: "下载 CSV";
3800
+ };
3759
3801
  readonly objectView: {
3760
3802
  readonly systemViewReadonly: "系统视图由代码定义,只读。";
3761
3803
  readonly expandToPage: "以完整页面打开";
@@ -397,6 +397,10 @@ declare const zh: {
397
397
  readonly title: "暂无用户";
398
398
  readonly message: "用户账号由认证提供方预置,无法在此处手动创建。邀请团队成员加入你的组织,他们首次登录时会自动出现(SSO 即时预置)。应用的终端用户会在通过你的应用注册时出现。";
399
399
  };
400
+ readonly betterAuthTeam: {
401
+ readonly title: "暂无团队";
402
+ readonly message: "团队用于在组织内对成员分组。可用「创建团队」新建,或通过认证提供方的组织与 SSO 预置流程自动出现。";
403
+ };
400
404
  };
401
405
  readonly showAll: "显示全部";
402
406
  readonly pullToRefresh: "下拉刷新";
@@ -553,6 +557,7 @@ declare const zh: {
553
557
  readonly saveChanges: "保存更改";
554
558
  readonly saving: "保存中…";
555
559
  readonly editFieldsInline: "编辑字段";
560
+ readonly editInlineHint: "双击编辑";
556
561
  readonly lockedByApproval: "审批中已锁定";
557
562
  readonly lockedTooltip: "该记录有待审批的请求,编辑已被锁定";
558
563
  readonly cancelApproval: "撤回审批";
@@ -1322,6 +1327,22 @@ declare const zh: {
1322
1327
  readonly noAccessTitle: "无访问权限";
1323
1328
  readonly noAccess: "您没有权限查看此数据。";
1324
1329
  };
1330
+ readonly identityImport: {
1331
+ readonly policyTitle: "导入用户的登录方式";
1332
+ readonly policy: {
1333
+ readonly none: "不设密码(推荐)";
1334
+ readonly invite: "发送邀请";
1335
+ readonly temporary: "临时密码";
1336
+ };
1337
+ readonly policyHint: {
1338
+ readonly none: "用户通过手机验证码、魔法链接或重置链接首次登录,之后自行设置密码。";
1339
+ readonly invite: "为每个新建用户发送\"设置密码\"邮件(仅手机号的行发送邀请短信)。需要已配置邮件/短信服务。";
1340
+ readonly temporary: "适用于未配置邮件/短信的部署:为每个新建用户生成一次性密码,仅在结果页显示一次,首次登录强制修改。";
1341
+ };
1342
+ readonly passwordsNote: "临时密码——仅显示一次,不会被保存。请立即保存;用户首次登录时必须修改。";
1343
+ readonly passwordsMore: "更多条目已省略——请使用下载。";
1344
+ readonly passwordsDownload: "下载 CSV";
1345
+ };
1325
1346
  readonly objectView: {
1326
1347
  readonly systemViewReadonly: "系统视图由代码定义,只读。";
1327
1348
  readonly expandToPage: "以完整页面打开";
@@ -406,6 +406,10 @@ const zh = {
406
406
  title: '暂无用户',
407
407
  message: '用户账号由认证提供方预置,无法在此处手动创建。邀请团队成员加入你的组织,他们首次登录时会自动出现(SSO 即时预置)。应用的终端用户会在通过你的应用注册时出现。',
408
408
  },
409
+ betterAuthTeam: {
410
+ title: '暂无团队',
411
+ message: '团队用于在组织内对成员分组。可用「创建团队」新建,或通过认证提供方的组织与 SSO 预置流程自动出现。',
412
+ },
409
413
  },
410
414
  showAll: '显示全部',
411
415
  pullToRefresh: '下拉刷新',
@@ -562,6 +566,7 @@ const zh = {
562
566
  saveChanges: '保存更改',
563
567
  saving: '保存中…',
564
568
  editFieldsInline: '编辑字段',
569
+ editInlineHint: '双击编辑',
565
570
  lockedByApproval: '审批中已锁定',
566
571
  lockedTooltip: '该记录有待审批的请求,编辑已被锁定',
567
572
  cancelApproval: '撤回审批',
@@ -1352,6 +1357,22 @@ const zh = {
1352
1357
  noAccessTitle: '无访问权限',
1353
1358
  noAccess: '您没有权限查看此数据。',
1354
1359
  },
1360
+ identityImport: {
1361
+ policyTitle: '导入用户的登录方式',
1362
+ policy: {
1363
+ none: '不设密码(推荐)',
1364
+ invite: '发送邀请',
1365
+ temporary: '临时密码',
1366
+ },
1367
+ policyHint: {
1368
+ none: '用户通过手机验证码、魔法链接或重置链接首次登录,之后自行设置密码。',
1369
+ invite: '为每个新建用户发送"设置密码"邮件(仅手机号的行发送邀请短信)。需要已配置邮件/短信服务。',
1370
+ temporary: '适用于未配置邮件/短信的部署:为每个新建用户生成一次性密码,仅在结果页显示一次,首次登录强制修改。',
1371
+ },
1372
+ passwordsNote: '临时密码——仅显示一次,不会被保存。请立即保存;用户首次登录时必须修改。',
1373
+ passwordsMore: '更多条目已省略——请使用下载。',
1374
+ passwordsDownload: '下载 CSV',
1375
+ },
1355
1376
  objectView: {
1356
1377
  systemViewReadonly: '系统视图由代码定义,只读。',
1357
1378
  expandToPage: '以完整页面打开',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@object-ui/i18n",
3
- "version": "13.1.0",
3
+ "version": "13.2.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "license": "MIT",