@aalis/plugin-session-settings 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +19 -2
- package/dist/caps.d.ts +14 -0
- package/dist/caps.d.ts.map +1 -0
- package/dist/caps.js +21 -0
- package/dist/caps.js.map +1 -0
- package/dist/commands.d.ts +60 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +308 -0
- package/dist/commands.js.map +1 -0
- package/dist/doc.d.ts +32 -0
- package/dist/doc.d.ts.map +1 -0
- package/dist/doc.js +103 -0
- package/dist/doc.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/locales/en.d.ts +66 -0
- package/dist/locales/en.d.ts.map +1 -0
- package/dist/locales/en.js +66 -0
- package/dist/locales/en.js.map +1 -0
- package/dist/provider.d.ts +120 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +531 -0
- package/dist/provider.js.map +1 -0
- package/dist/text-values.d.ts +13 -0
- package/dist/text-values.d.ts.map +1 -0
- package/dist/text-values.js +93 -0
- package/dist/text-values.js.map +1 -0
- package/dist/texts.d.ts +134 -0
- package/dist/texts.d.ts.map +1 -0
- package/dist/texts.js +81 -0
- package/dist/texts.js.map +1 -0
- package/package.json +66 -3
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// ════════════════════════════════════════════════════════════
|
|
2
|
+
// 指令的文字读写:文字读成取值(/session.set 与父会话改子会话设置的工具),取值写成回执里的文字。只有本插件的指令用,不导出。
|
|
3
|
+
// 读:boolean 收 true、false、on、off、1、0,number 收数字,select 有静态可选项时只收选项值(不收选项标签),multiselect 与
|
|
4
|
+
// list 按逗号或顿号拆,string、textarea 原样,外来类型调字段的 fromText(没有时回不合法),map 只收空值。空值与界面写空值同一结果:
|
|
5
|
+
// 列表与映射写 `[]`,文字是空串(聊天里写 `""`,指令拆参数时成了空串)。
|
|
6
|
+
// 写:select 写选项标签,开关写开或关,空列表、空映射与空串写「无」,列表按界面语言连起来,外来类型调 toText,其余写成文字。
|
|
7
|
+
// ════════════════════════════════════════════════════════════
|
|
8
|
+
import { t } from './texts.js';
|
|
9
|
+
const TRUE = new Set(['true', 'on', '1']);
|
|
10
|
+
const FALSE = new Set(['false', 'off', '0']);
|
|
11
|
+
/** 列表与映射的空值写法 */
|
|
12
|
+
const EMPTY_LIST = '[]';
|
|
13
|
+
/** 取值只能是静态可选项之一 */
|
|
14
|
+
export const fixedChoices = (field) => field.options && field.dynamicOptions === undefined && field.allowCustom !== true
|
|
15
|
+
? field.options.map(option => String(option.value))
|
|
16
|
+
: undefined;
|
|
17
|
+
/** 文字读成取值;读不出时给出原因 */
|
|
18
|
+
export function readText(field, text) {
|
|
19
|
+
const trimmed = text.trim();
|
|
20
|
+
switch (field.type) {
|
|
21
|
+
case 'boolean': {
|
|
22
|
+
const lower = trimmed.toLowerCase();
|
|
23
|
+
if (TRUE.has(lower))
|
|
24
|
+
return { value: true };
|
|
25
|
+
return FALSE.has(lower) ? { value: false } : { invalid: t('notBoolean') };
|
|
26
|
+
}
|
|
27
|
+
case 'number': {
|
|
28
|
+
const number = Number(trimmed);
|
|
29
|
+
return trimmed !== '' && Number.isFinite(number) ? { value: number } : { invalid: t('notNumber') };
|
|
30
|
+
}
|
|
31
|
+
case 'select': {
|
|
32
|
+
const choices = fixedChoices(field);
|
|
33
|
+
if (!choices)
|
|
34
|
+
return { value: trimmed };
|
|
35
|
+
const option = field.options?.find(o => String(o.value) === trimmed);
|
|
36
|
+
return option ? { value: option.value } : { invalid: t('notChoice') };
|
|
37
|
+
}
|
|
38
|
+
case 'multiselect':
|
|
39
|
+
case 'list':
|
|
40
|
+
return {
|
|
41
|
+
value: trimmed === EMPTY_LIST
|
|
42
|
+
? []
|
|
43
|
+
: trimmed
|
|
44
|
+
.split(/[,,、]/)
|
|
45
|
+
.map(part => part.trim())
|
|
46
|
+
.filter(part => part !== ''),
|
|
47
|
+
};
|
|
48
|
+
case 'string':
|
|
49
|
+
case 'textarea':
|
|
50
|
+
return { value: text };
|
|
51
|
+
case 'map':
|
|
52
|
+
return trimmed === EMPTY_LIST ? { value: {} } : { invalid: t('mapUnsupported') };
|
|
53
|
+
default: {
|
|
54
|
+
if (typeof field.fromText !== 'function')
|
|
55
|
+
return { invalid: t('noTextForm') };
|
|
56
|
+
try {
|
|
57
|
+
const value = field.fromText(trimmed);
|
|
58
|
+
return value === undefined ? { invalid: t('unreadable') } : { value };
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return { invalid: t('unreadable') };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** 取值写成回执里的文字 */
|
|
67
|
+
export function writeText(field, value) {
|
|
68
|
+
const option = field.type === 'select' ? field.options?.find(o => String(o.value) === String(value)) : undefined;
|
|
69
|
+
if (option)
|
|
70
|
+
return option.label;
|
|
71
|
+
if (field.type === 'boolean')
|
|
72
|
+
return value === true ? t('on') : t('off');
|
|
73
|
+
if (isEmpty(value))
|
|
74
|
+
return t('empty');
|
|
75
|
+
if (Array.isArray(value))
|
|
76
|
+
return t('listValue', { items: value.map(String) });
|
|
77
|
+
if (typeof field.toText === 'function') {
|
|
78
|
+
// 严格字段的坏值原样交到这里,toText 认不得时按原样写
|
|
79
|
+
try {
|
|
80
|
+
return field.toText(value);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return JSON.stringify(value);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
87
|
+
}
|
|
88
|
+
/** 空列表、空映射与空串 */
|
|
89
|
+
const isEmpty = (value) => value === '' ||
|
|
90
|
+
(Array.isArray(value)
|
|
91
|
+
? value.length === 0
|
|
92
|
+
: typeof value === 'object' && value !== null && Object.keys(value).length === 0);
|
|
93
|
+
//# sourceMappingURL=text-values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-values.js","sourceRoot":"","sources":["../src/text-values.ts"],"names":[],"mappings":"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"}
|
package/dist/texts.d.ts
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { type TextRef } from '@aalis/schema-i18n';
|
|
2
|
+
declare const SOURCE: {
|
|
3
|
+
readonly displayName: "会话设置";
|
|
4
|
+
readonly notRegistered: "没有这一项:{item}(提供它的插件没装或没启用)";
|
|
5
|
+
readonly notSessionField: "{item} 不能按会话设";
|
|
6
|
+
readonly invalidValue: "{item}的值不合法:{reason}";
|
|
7
|
+
readonly noSession: "会话不存在:{id}";
|
|
8
|
+
readonly noPlace: "场所不存在:{key}";
|
|
9
|
+
readonly placeOnly: "{item}只能设到场所为止,不能设在单个会话上";
|
|
10
|
+
readonly notApplicable: "{item}不适用于{kind, select, owner { owner 的会话} room {房间} task {子会话} other {这类会话}}";
|
|
11
|
+
readonly notForRooms: "{item}不适用于房间,平台类型档不收它";
|
|
12
|
+
readonly itemNamed: "{label}({item})";
|
|
13
|
+
readonly badLayerName: "层的标识不合法:{name}(非空、不含 :、不是 *)";
|
|
14
|
+
readonly unknownLayer: "不认识这一层:{layer}";
|
|
15
|
+
readonly noHostConfig: "宿主没有提供配置文档,全局层与平台档、平台类型档无处保存";
|
|
16
|
+
readonly notObject: "配置文件里的 {path} 不是对象,先改正它再写这一层";
|
|
17
|
+
readonly unknownProvider: "{item} 指向的 {contextId} 不是 {service} 的提供者";
|
|
18
|
+
readonly workspacePlace: "工作区「{name}」";
|
|
19
|
+
readonly windowPlace: "{type}「{name}」";
|
|
20
|
+
readonly notBoolean: "要写 on、off、true、false、1 或 0";
|
|
21
|
+
readonly notNumber: "要写一个数字";
|
|
22
|
+
readonly notChoice: "要写可选值之一";
|
|
23
|
+
readonly mapUnsupported: "这一项在聊天里改不了,到设置页里改";
|
|
24
|
+
readonly noTextForm: "这一项没有文字写法,到设置页里改";
|
|
25
|
+
readonly unreadable: "读不出这个值";
|
|
26
|
+
readonly on: "开";
|
|
27
|
+
readonly off: "关";
|
|
28
|
+
readonly listValue: "{items, list}";
|
|
29
|
+
readonly empty: "无";
|
|
30
|
+
readonly sessionDescription: "查看当前对话里你能改的设置。每项另写它来自哪一层";
|
|
31
|
+
readonly setDescription: "改当前对话的一项设置,下一轮起生效。写到场所、平台类型档、平台档或全局等上层用 --at;同名的项写成 <实例 id>/<键>;-n 改会话显示名";
|
|
32
|
+
readonly resetDescription: "把一项设置恢复继承,下一轮起生效。不写项时清掉本会话或场所这一层你能改的全部项";
|
|
33
|
+
readonly atDescription: "写到哪一层:session(本会话,缺省)、place、platformType、platform、global";
|
|
34
|
+
readonly nameDescription: "会话显示名";
|
|
35
|
+
readonly itemArgument: "项:字段名,几个插件同名时写 <实例 id>/<键>";
|
|
36
|
+
readonly valueArgument: "值:取余下的内容,按指令的分词规则读:含空格、换行或引号时整段加引号,反斜杠一律写两个;以 - 开头时前面加 --。列表与映射写 []、文字写 \"\" 即设成空";
|
|
37
|
+
readonly authorityAbsent: "要装上权限插件才能在聊天里改设置";
|
|
38
|
+
readonly notFiled: "这个会话还没收录,没有场所层";
|
|
39
|
+
readonly noPlatformType: "这个会话没有聊天窗口,不属于任何平台类型档";
|
|
40
|
+
readonly placeLayer: "{layer}「{name}」";
|
|
41
|
+
readonly namedLayer: "{layer}「{name}」";
|
|
42
|
+
readonly platformTypeLayer: "{layer}「{platform} · {type}」";
|
|
43
|
+
readonly noSuchItem: "没有这一项:{item}";
|
|
44
|
+
readonly ambiguous: "有几个插件都有 {item},要写成 <实例 id>/<键>:{items, list}";
|
|
45
|
+
readonly editable: "{layer}里你能改的:{items, list}";
|
|
46
|
+
readonly noneEditable: "{layer}里没有你能改的项";
|
|
47
|
+
readonly layerOwnerOnly: "{layer}只有 owner 能改";
|
|
48
|
+
readonly layerLevel: "{layer}要 {level} 级才能改";
|
|
49
|
+
readonly needItem: "要写明改哪一项";
|
|
50
|
+
readonly needValue: "要写出 {item} 的值";
|
|
51
|
+
readonly choices: "可选:{choices, list}";
|
|
52
|
+
readonly setDone: "已改{layer}:{item} 为 {value},下一轮起生效";
|
|
53
|
+
readonly renamed: "会话已改名:{name}";
|
|
54
|
+
readonly resetDone: "已把{layer}的 {items, list} 恢复{global, select, yes {默认} other {继承}},下一轮起生效";
|
|
55
|
+
readonly resetNeedsItem: "{layer}要写明清哪一项";
|
|
56
|
+
readonly setHere: "这一层设过的:{items, list}";
|
|
57
|
+
readonly nothingToReset: "{layer}里没有你能清的项";
|
|
58
|
+
readonly sessionHeader: "{session} 的设置:";
|
|
59
|
+
readonly row: "{label}({item}):{value} — 来自 {source}";
|
|
60
|
+
readonly rowUnset: "{label}({item}):{value}";
|
|
61
|
+
readonly unsetNow: "{unset}(此刻:{now})";
|
|
62
|
+
readonly unsetValue: "没设";
|
|
63
|
+
readonly sourceDefault: "默认";
|
|
64
|
+
readonly onlyYours: "只列出你能改的项";
|
|
65
|
+
};
|
|
66
|
+
export type Source = typeof SOURCE;
|
|
67
|
+
export declare const t: import("@aalis/schema-i18n").TextFactory<{
|
|
68
|
+
readonly displayName: "会话设置";
|
|
69
|
+
readonly notRegistered: "没有这一项:{item}(提供它的插件没装或没启用)";
|
|
70
|
+
readonly notSessionField: "{item} 不能按会话设";
|
|
71
|
+
readonly invalidValue: "{item}的值不合法:{reason}";
|
|
72
|
+
readonly noSession: "会话不存在:{id}";
|
|
73
|
+
readonly noPlace: "场所不存在:{key}";
|
|
74
|
+
readonly placeOnly: "{item}只能设到场所为止,不能设在单个会话上";
|
|
75
|
+
readonly notApplicable: "{item}不适用于{kind, select, owner { owner 的会话} room {房间} task {子会话} other {这类会话}}";
|
|
76
|
+
readonly notForRooms: "{item}不适用于房间,平台类型档不收它";
|
|
77
|
+
readonly itemNamed: "{label}({item})";
|
|
78
|
+
readonly badLayerName: "层的标识不合法:{name}(非空、不含 :、不是 *)";
|
|
79
|
+
readonly unknownLayer: "不认识这一层:{layer}";
|
|
80
|
+
readonly noHostConfig: "宿主没有提供配置文档,全局层与平台档、平台类型档无处保存";
|
|
81
|
+
readonly notObject: "配置文件里的 {path} 不是对象,先改正它再写这一层";
|
|
82
|
+
readonly unknownProvider: "{item} 指向的 {contextId} 不是 {service} 的提供者";
|
|
83
|
+
readonly workspacePlace: "工作区「{name}」";
|
|
84
|
+
readonly windowPlace: "{type}「{name}」";
|
|
85
|
+
readonly notBoolean: "要写 on、off、true、false、1 或 0";
|
|
86
|
+
readonly notNumber: "要写一个数字";
|
|
87
|
+
readonly notChoice: "要写可选值之一";
|
|
88
|
+
readonly mapUnsupported: "这一项在聊天里改不了,到设置页里改";
|
|
89
|
+
readonly noTextForm: "这一项没有文字写法,到设置页里改";
|
|
90
|
+
readonly unreadable: "读不出这个值";
|
|
91
|
+
readonly on: "开";
|
|
92
|
+
readonly off: "关";
|
|
93
|
+
readonly listValue: "{items, list}";
|
|
94
|
+
readonly empty: "无";
|
|
95
|
+
readonly sessionDescription: "查看当前对话里你能改的设置。每项另写它来自哪一层";
|
|
96
|
+
readonly setDescription: "改当前对话的一项设置,下一轮起生效。写到场所、平台类型档、平台档或全局等上层用 --at;同名的项写成 <实例 id>/<键>;-n 改会话显示名";
|
|
97
|
+
readonly resetDescription: "把一项设置恢复继承,下一轮起生效。不写项时清掉本会话或场所这一层你能改的全部项";
|
|
98
|
+
readonly atDescription: "写到哪一层:session(本会话,缺省)、place、platformType、platform、global";
|
|
99
|
+
readonly nameDescription: "会话显示名";
|
|
100
|
+
readonly itemArgument: "项:字段名,几个插件同名时写 <实例 id>/<键>";
|
|
101
|
+
readonly valueArgument: "值:取余下的内容,按指令的分词规则读:含空格、换行或引号时整段加引号,反斜杠一律写两个;以 - 开头时前面加 --。列表与映射写 []、文字写 \"\" 即设成空";
|
|
102
|
+
readonly authorityAbsent: "要装上权限插件才能在聊天里改设置";
|
|
103
|
+
readonly notFiled: "这个会话还没收录,没有场所层";
|
|
104
|
+
readonly noPlatformType: "这个会话没有聊天窗口,不属于任何平台类型档";
|
|
105
|
+
readonly placeLayer: "{layer}「{name}」";
|
|
106
|
+
readonly namedLayer: "{layer}「{name}」";
|
|
107
|
+
readonly platformTypeLayer: "{layer}「{platform} · {type}」";
|
|
108
|
+
readonly noSuchItem: "没有这一项:{item}";
|
|
109
|
+
readonly ambiguous: "有几个插件都有 {item},要写成 <实例 id>/<键>:{items, list}";
|
|
110
|
+
readonly editable: "{layer}里你能改的:{items, list}";
|
|
111
|
+
readonly noneEditable: "{layer}里没有你能改的项";
|
|
112
|
+
readonly layerOwnerOnly: "{layer}只有 owner 能改";
|
|
113
|
+
readonly layerLevel: "{layer}要 {level} 级才能改";
|
|
114
|
+
readonly needItem: "要写明改哪一项";
|
|
115
|
+
readonly needValue: "要写出 {item} 的值";
|
|
116
|
+
readonly choices: "可选:{choices, list}";
|
|
117
|
+
readonly setDone: "已改{layer}:{item} 为 {value},下一轮起生效";
|
|
118
|
+
readonly renamed: "会话已改名:{name}";
|
|
119
|
+
readonly resetDone: "已把{layer}的 {items, list} 恢复{global, select, yes {默认} other {继承}},下一轮起生效";
|
|
120
|
+
readonly resetNeedsItem: "{layer}要写明清哪一项";
|
|
121
|
+
readonly setHere: "这一层设过的:{items, list}";
|
|
122
|
+
readonly nothingToReset: "{layer}里没有你能清的项";
|
|
123
|
+
readonly sessionHeader: "{session} 的设置:";
|
|
124
|
+
readonly row: "{label}({item}):{value} — 来自 {source}";
|
|
125
|
+
readonly rowUnset: "{label}({item}):{value}";
|
|
126
|
+
readonly unsetNow: "{unset}(此刻:{now})";
|
|
127
|
+
readonly unsetValue: "没设";
|
|
128
|
+
readonly sourceDefault: "默认";
|
|
129
|
+
readonly onlyYours: "只列出你能改的项";
|
|
130
|
+
}>;
|
|
131
|
+
/** 写入被拒的原因里点名一项:行上的称呼加键(「<称呼>(<键>)」),界面与指令同一句 */
|
|
132
|
+
export declare const itemName: (label: string | TextRef, item: string) => TextRef;
|
|
133
|
+
export {};
|
|
134
|
+
//# sourceMappingURL=texts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../src/texts.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG/D,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEF,CAAC;AACX,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKZ,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,GAAG,OAAO,EAAE,MAAM,MAAM,KAAG,OAA0C,CAAC"}
|
package/dist/texts.js
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// 本插件自己的原文字典:写入被拒的原因、指令的说明与回执、取值写成的文字
|
|
2
|
+
import { defineTexts } from '@aalis/schema-i18n';
|
|
3
|
+
import en from './locales/en.js';
|
|
4
|
+
const SOURCE = {
|
|
5
|
+
displayName: '会话设置',
|
|
6
|
+
// 写入被拒(协议与指令共用)
|
|
7
|
+
notRegistered: '没有这一项:{item}(提供它的插件没装或没启用)',
|
|
8
|
+
notSessionField: '{item} 不能按会话设',
|
|
9
|
+
invalidValue: '{item}的值不合法:{reason}',
|
|
10
|
+
noSession: '会话不存在:{id}',
|
|
11
|
+
noPlace: '场所不存在:{key}',
|
|
12
|
+
placeOnly: '{item}只能设到场所为止,不能设在单个会话上',
|
|
13
|
+
notApplicable: '{item}不适用于{kind, select, owner { owner 的会话} room {房间} task {子会话} other {这类会话}}',
|
|
14
|
+
notForRooms: '{item}不适用于房间,平台类型档不收它',
|
|
15
|
+
itemNamed: '{label}({item})',
|
|
16
|
+
badLayerName: '层的标识不合法:{name}(非空、不含 :、不是 *)',
|
|
17
|
+
unknownLayer: '不认识这一层:{layer}',
|
|
18
|
+
noHostConfig: '宿主没有提供配置文档,全局层与平台档、平台类型档无处保存',
|
|
19
|
+
notObject: '配置文件里的 {path} 不是对象,先改正它再写这一层',
|
|
20
|
+
unknownProvider: '{item} 指向的 {contextId} 不是 {service} 的提供者',
|
|
21
|
+
// 层的称呼
|
|
22
|
+
workspacePlace: '工作区「{name}」',
|
|
23
|
+
windowPlace: '{type}「{name}」',
|
|
24
|
+
// 文字读成取值
|
|
25
|
+
notBoolean: '要写 on、off、true、false、1 或 0',
|
|
26
|
+
notNumber: '要写一个数字',
|
|
27
|
+
notChoice: '要写可选值之一',
|
|
28
|
+
mapUnsupported: '这一项在聊天里改不了,到设置页里改',
|
|
29
|
+
noTextForm: '这一项没有文字写法,到设置页里改',
|
|
30
|
+
unreadable: '读不出这个值',
|
|
31
|
+
// 取值写成文字
|
|
32
|
+
on: '开',
|
|
33
|
+
off: '关',
|
|
34
|
+
listValue: '{items, list}',
|
|
35
|
+
empty: '无',
|
|
36
|
+
// 指令
|
|
37
|
+
sessionDescription: '查看当前对话里你能改的设置。每项另写它来自哪一层',
|
|
38
|
+
setDescription: '改当前对话的一项设置,下一轮起生效。写到场所、平台类型档、平台档或全局等上层用 --at;同名的项写成 <实例 id>/<键>;-n 改会话显示名',
|
|
39
|
+
resetDescription: '把一项设置恢复继承,下一轮起生效。不写项时清掉本会话或场所这一层你能改的全部项',
|
|
40
|
+
atDescription: '写到哪一层:session(本会话,缺省)、place、platformType、platform、global',
|
|
41
|
+
nameDescription: '会话显示名',
|
|
42
|
+
itemArgument: '项:字段名,几个插件同名时写 <实例 id>/<键>',
|
|
43
|
+
valueArgument: '值:取余下的内容,按指令的分词规则读:含空格、换行或引号时整段加引号,反斜杠一律写两个;以 - 开头时前面加 --。列表与映射写 []、文字写 "" 即设成空',
|
|
44
|
+
authorityAbsent: '要装上权限插件才能在聊天里改设置',
|
|
45
|
+
notFiled: '这个会话还没收录,没有场所层',
|
|
46
|
+
noPlatformType: '这个会话没有聊天窗口,不属于任何平台类型档',
|
|
47
|
+
placeLayer: '{layer}「{name}」',
|
|
48
|
+
namedLayer: '{layer}「{name}」',
|
|
49
|
+
platformTypeLayer: '{layer}「{platform} · {type}」',
|
|
50
|
+
noSuchItem: '没有这一项:{item}',
|
|
51
|
+
ambiguous: '有几个插件都有 {item},要写成 <实例 id>/<键>:{items, list}',
|
|
52
|
+
editable: '{layer}里你能改的:{items, list}',
|
|
53
|
+
noneEditable: '{layer}里没有你能改的项',
|
|
54
|
+
layerOwnerOnly: '{layer}只有 owner 能改',
|
|
55
|
+
layerLevel: '{layer}要 {level} 级才能改',
|
|
56
|
+
needItem: '要写明改哪一项',
|
|
57
|
+
needValue: '要写出 {item} 的值',
|
|
58
|
+
choices: '可选:{choices, list}',
|
|
59
|
+
setDone: '已改{layer}:{item} 为 {value},下一轮起生效',
|
|
60
|
+
renamed: '会话已改名:{name}',
|
|
61
|
+
resetDone: '已把{layer}的 {items, list} 恢复{global, select, yes {默认} other {继承}},下一轮起生效',
|
|
62
|
+
resetNeedsItem: '{layer}要写明清哪一项',
|
|
63
|
+
setHere: '这一层设过的:{items, list}',
|
|
64
|
+
nothingToReset: '{layer}里没有你能清的项',
|
|
65
|
+
sessionHeader: '{session} 的设置:',
|
|
66
|
+
row: '{label}({item}):{value} — 来自 {source}',
|
|
67
|
+
rowUnset: '{label}({item}):{value}',
|
|
68
|
+
unsetNow: '{unset}(此刻:{now})',
|
|
69
|
+
unsetValue: '没设',
|
|
70
|
+
sourceDefault: '默认',
|
|
71
|
+
onlyYours: '只列出你能改的项',
|
|
72
|
+
};
|
|
73
|
+
export const t = defineTexts({
|
|
74
|
+
ns: '@aalis/plugin-session-settings',
|
|
75
|
+
language: 'zh-CN',
|
|
76
|
+
source: SOURCE,
|
|
77
|
+
locales: { en },
|
|
78
|
+
});
|
|
79
|
+
/** 写入被拒的原因里点名一项:行上的称呼加键(「<称呼>(<键>)」),界面与指令同一句 */
|
|
80
|
+
export const itemName = (label, item) => t('itemNamed', { label, item });
|
|
81
|
+
//# sourceMappingURL=texts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texts.js","sourceRoot":"","sources":["../src/texts.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAgB,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEjC,MAAM,MAAM,GAAG;IACb,WAAW,EAAE,MAAM;IACnB,gBAAgB;IAChB,aAAa,EAAE,4BAA4B;IAC3C,eAAe,EAAE,eAAe;IAChC,YAAY,EAAE,sBAAsB;IACpC,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,aAAa;IACtB,SAAS,EAAE,0BAA0B;IACrC,aAAa,EAAE,gFAAgF;IAC/F,WAAW,EAAE,uBAAuB;IACpC,SAAS,EAAE,iBAAiB;IAC5B,YAAY,EAAE,8BAA8B;IAC5C,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,8BAA8B;IAC5C,SAAS,EAAE,8BAA8B;IACzC,eAAe,EAAE,0CAA0C;IAC3D,OAAO;IACP,cAAc,EAAE,aAAa;IAC7B,WAAW,EAAE,gBAAgB;IAC7B,SAAS;IACT,UAAU,EAAE,4BAA4B;IACxC,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,SAAS;IACpB,cAAc,EAAE,mBAAmB;IACnC,UAAU,EAAE,kBAAkB;IAC9B,UAAU,EAAE,QAAQ;IACpB,SAAS;IACT,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,GAAG;IACR,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,GAAG;IACV,KAAK;IACL,kBAAkB,EAAE,0BAA0B;IAC9C,cAAc,EACZ,2EAA2E;IAC7E,gBAAgB,EAAE,yCAAyC;IAC3D,aAAa,EAAE,0DAA0D;IACzE,eAAe,EAAE,OAAO;IACxB,YAAY,EAAE,4BAA4B;IAC1C,aAAa,EACX,iFAAiF;IACnF,eAAe,EAAE,kBAAkB;IACnC,QAAQ,EAAE,gBAAgB;IAC1B,cAAc,EAAE,uBAAuB;IACvC,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,iBAAiB;IAC7B,iBAAiB,EAAE,8BAA8B;IACjD,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,8CAA8C;IACzD,QAAQ,EAAE,4BAA4B;IACtC,YAAY,EAAE,iBAAiB;IAC/B,cAAc,EAAE,oBAAoB;IACpC,UAAU,EAAE,uBAAuB;IACnC,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,oBAAoB;IAC7B,OAAO,EAAE,mCAAmC;IAC5C,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,yEAAyE;IACpF,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,sBAAsB;IAC/B,cAAc,EAAE,iBAAiB;IACjC,aAAa,EAAE,gBAAgB;IAC/B,GAAG,EAAE,uCAAuC;IAC5C,QAAQ,EAAE,yBAAyB;IACnC,QAAQ,EAAE,mBAAmB;IAC7B,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,UAAU;CACb,CAAC;AAGX,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;IAC3B,EAAE,EAAE,gCAAgC;IACpC,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,EAAE,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAuB,EAAE,IAAY,EAAW,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,69 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-session-settings",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/AalisLabs/Aalis.git",
|
|
8
|
+
"directory": "packages/plugin-session-settings"
|
|
9
|
+
},
|
|
10
|
+
"author": "Ace Nyan <ace@acenyan.com>",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/AalisLabs/Aalis/issues"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/AalisLabs/Aalis#readme",
|
|
15
|
+
"description": "会话设置:插件配置字段按平台档、平台类型档、场所与会话覆盖的存放、解析与修改,以及 /session 系列指令",
|
|
16
|
+
"type": "module",
|
|
17
|
+
"keywords": [
|
|
18
|
+
"aalis",
|
|
19
|
+
"aalis-plugin"
|
|
20
|
+
],
|
|
21
|
+
"main": "dist/index.js",
|
|
22
|
+
"types": "dist/index.d.ts",
|
|
23
|
+
"files": [
|
|
24
|
+
"dist"
|
|
25
|
+
],
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@aalis/api-authority": ">=0.12.0 <1.0.0",
|
|
28
|
+
"@aalis/api-commands": ">=0.9.0 <1.0.0",
|
|
29
|
+
"@aalis/api-gateway": ">=0.10.0 <1.0.0",
|
|
30
|
+
"@aalis/api-host-config": ">=0.3.0 <1.0.0",
|
|
31
|
+
"@aalis/api-platform": ">=0.11.0 <1.0.0",
|
|
32
|
+
"@aalis/api-session-manager": ">=0.12.0 <1.0.0",
|
|
33
|
+
"@aalis/api-session-settings": ">=0.1.0 <1.0.0",
|
|
34
|
+
"@aalis/schema-config": ">=0.16.0 <1.0.0",
|
|
35
|
+
"@aalis/schema-i18n": ">=0.1.0 <1.0.0"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/node": "^22.0.0",
|
|
39
|
+
"typescript": "^5.7.0",
|
|
40
|
+
"@aalis/core": "0.21.0"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"@aalis/core": ">=0.21.0 <1.0.0"
|
|
44
|
+
},
|
|
45
|
+
"aalis": {
|
|
46
|
+
"service": {
|
|
47
|
+
"required": [
|
|
48
|
+
"events",
|
|
49
|
+
"logger",
|
|
50
|
+
"provide",
|
|
51
|
+
"services",
|
|
52
|
+
"session-manager"
|
|
53
|
+
],
|
|
54
|
+
"optional": [
|
|
55
|
+
"authority",
|
|
56
|
+
"commands",
|
|
57
|
+
"host-config",
|
|
58
|
+
"platform"
|
|
59
|
+
],
|
|
60
|
+
"provides": [
|
|
61
|
+
"session-settings"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"scripts": {
|
|
66
|
+
"build": "tsc",
|
|
67
|
+
"dev": "tsc --watch"
|
|
68
|
+
}
|
|
6
69
|
}
|