@yongdall/numbering 0.5.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.
@@ -0,0 +1,104 @@
1
+ import { createField, createModel, now, uuid } from "@yongdall/model";
2
+
3
+ //#region plugins/numbering/models/NumberingRule.mjs
4
+ const NumberingSequence = createModel("numbering.sequence", {
5
+ patternId: createField("uuid", {
6
+ nullable: false,
7
+ primary: 1,
8
+ uncreatable: true,
9
+ layout: { hidden: true }
10
+ }),
11
+ key: createField("text", {
12
+ nullable: false,
13
+ renderer: "string",
14
+ label: "标识模式",
15
+ layout: { colSpan: 6 }
16
+ }),
17
+ sequence: createField("i32", {
18
+ size: 255,
19
+ nullable: false,
20
+ default: 0,
21
+ label: "当前值",
22
+ layout: { colSpan: 6 }
23
+ })
24
+ }, {
25
+ label: "编号生成序列",
26
+ labelField: "label",
27
+ permissions: [{
28
+ permission: "system:pattern",
29
+ fields: ["*"],
30
+ authorizations: [
31
+ "options",
32
+ "query",
33
+ "read"
34
+ ]
35
+ }]
36
+ });
37
+ const NumberingRule = createModel("numbering.rule", {
38
+ id: createField("uuid", {
39
+ nullable: false,
40
+ default: uuid,
41
+ primary: 1,
42
+ uncreatable: true,
43
+ layout: { hidden: true }
44
+ }),
45
+ label: createField("string", {
46
+ size: 255,
47
+ nullable: false,
48
+ default: "",
49
+ label: "名称",
50
+ layout: { colSpan: 6 }
51
+ }),
52
+ pattern: createField("text", {
53
+ nullable: false,
54
+ renderer: "string",
55
+ label: "模式",
56
+ layout: { colSpan: 6 }
57
+ }),
58
+ keyPattern: createField("text", {
59
+ nullable: false,
60
+ renderer: "string",
61
+ default: "",
62
+ label: "标识模式",
63
+ layout: { colSpan: 6 }
64
+ }),
65
+ createdAt: createField("timestamp", {
66
+ nullable: false,
67
+ creating: now,
68
+ label: "创建日期",
69
+ layout: { hidden: true }
70
+ }),
71
+ updatedAt: createField("timestamp", {
72
+ nullable: false,
73
+ updating: now,
74
+ label: "最后更新日期",
75
+ layout: { hidden: true }
76
+ })
77
+ }, {
78
+ label: "编号生成规则",
79
+ labelField: "label",
80
+ permissions: [{
81
+ permission: "",
82
+ fields: ["*"],
83
+ authorizations: [
84
+ "options",
85
+ "query",
86
+ "read"
87
+ ]
88
+ }, {
89
+ permission: "system:numbering",
90
+ fields: ["*"],
91
+ authorizations: [
92
+ "options",
93
+ "query",
94
+ "read",
95
+ "create",
96
+ "update",
97
+ "destroy"
98
+ ]
99
+ }]
100
+ });
101
+
102
+ //#endregion
103
+ export { NumberingSequence as n, NumberingRule as t };
104
+ //# sourceMappingURL=NumberingRule-DjKTGF7Q.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberingRule-DjKTGF7Q.mjs","names":[],"sources":["../../plugins/numbering/models/NumberingRule.mjs"],"sourcesContent":["import { createField, createModel, uuid, now } from '@yongdall/model';\n\nexport const NumberingSequence = createModel('numbering.sequence', {\n\tpatternId: createField('uuid', { nullable: false, primary: 1, uncreatable: true, layout: { hidden: true } }),\n\tkey: createField('text', { nullable: false, renderer: 'string', label: '标识模式', layout: { colSpan: 6 } }),\n\tsequence: createField('i32', { size: 255, nullable: false, default: 0, label: '当前值', layout: { colSpan: 6 } }),\n}, {\n\tlabel: '编号生成序列',\n\tlabelField: 'label',\n\tpermissions: [\n\t\t{ permission: 'system:pattern', fields: ['*'], authorizations: ['options', 'query', 'read'] },\n\t],\n});\nexport const NumberingRule = createModel('numbering.rule', {\n\tid: createField('uuid', { nullable: false, default: uuid, primary: 1, uncreatable: true, layout: { hidden: true } }),\n\tlabel: createField('string', { size: 255, nullable: false, default: '', label: '名称', layout: { colSpan: 6 } }),\n\tpattern: createField('text', { nullable: false, renderer: 'string', label: '模式', layout: { colSpan: 6 } }),\n\tkeyPattern: createField('text', { nullable: false, renderer: 'string', default: '', label: '标识模式', layout: { colSpan: 6 } }),\n\tcreatedAt: createField('timestamp', { nullable: false, creating: now, label: '创建日期', layout: { hidden: true } }),\n\tupdatedAt: createField('timestamp', { nullable: false, updating: now, label: '最后更新日期', layout: { hidden: true } }),\n}, {\n\tlabel: '编号生成规则',\n\tlabelField: 'label',\n\tpermissions: [\n\t\t{ permission: '', fields: ['*'], authorizations: ['options', 'query', 'read'] },\n\t\t{ permission: 'system:numbering', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'update', 'destroy'] },\n\t],\n});\n"],"mappings":";;;AAEA,MAAa,oBAAoB,YAAY,sBAAsB;CAClE,WAAW,YAAY,QAAQ;EAAE,UAAU;EAAO,SAAS;EAAG,aAAa;EAAM,QAAQ,EAAE,QAAQ,MAAM;EAAE,CAAC;CAC5G,KAAK,YAAY,QAAQ;EAAE,UAAU;EAAO,UAAU;EAAU,OAAO;EAAQ,QAAQ,EAAE,SAAS,GAAG;EAAE,CAAC;CACxG,UAAU,YAAY,OAAO;EAAE,MAAM;EAAK,UAAU;EAAO,SAAS;EAAG,OAAO;EAAO,QAAQ,EAAE,SAAS,GAAG;EAAE,CAAC;CAC9G,EAAE;CACF,OAAO;CACP,YAAY;CACZ,aAAa,CACZ;EAAE,YAAY;EAAkB,QAAQ,CAAC,IAAI;EAAE,gBAAgB;GAAC;GAAW;GAAS;GAAO;EAAE,CAC7F;CACD,CAAC;AACF,MAAa,gBAAgB,YAAY,kBAAkB;CAC1D,IAAI,YAAY,QAAQ;EAAE,UAAU;EAAO,SAAS;EAAM,SAAS;EAAG,aAAa;EAAM,QAAQ,EAAE,QAAQ,MAAM;EAAE,CAAC;CACpH,OAAO,YAAY,UAAU;EAAE,MAAM;EAAK,UAAU;EAAO,SAAS;EAAI,OAAO;EAAM,QAAQ,EAAE,SAAS,GAAG;EAAE,CAAC;CAC9G,SAAS,YAAY,QAAQ;EAAE,UAAU;EAAO,UAAU;EAAU,OAAO;EAAM,QAAQ,EAAE,SAAS,GAAG;EAAE,CAAC;CAC1G,YAAY,YAAY,QAAQ;EAAE,UAAU;EAAO,UAAU;EAAU,SAAS;EAAI,OAAO;EAAQ,QAAQ,EAAE,SAAS,GAAG;EAAE,CAAC;CAC5H,WAAW,YAAY,aAAa;EAAE,UAAU;EAAO,UAAU;EAAK,OAAO;EAAQ,QAAQ,EAAE,QAAQ,MAAM;EAAE,CAAC;CAChH,WAAW,YAAY,aAAa;EAAE,UAAU;EAAO,UAAU;EAAK,OAAO;EAAU,QAAQ,EAAE,QAAQ,MAAM;EAAE,CAAC;CAClH,EAAE;CACF,OAAO;CACP,YAAY;CACZ,aAAa,CACZ;EAAE,YAAY;EAAI,QAAQ,CAAC,IAAI;EAAE,gBAAgB;GAAC;GAAW;GAAS;GAAO;EAAE,EAC/E;EAAE,YAAY;EAAoB,QAAQ,CAAC,IAAI;EAAE,gBAAgB;GAAC;GAAW;GAAS;GAAQ;GAAU;GAAU;GAAU;EAAE,CAC9H;CACD,CAAC"}
package/index.d.mts ADDED
@@ -0,0 +1,33 @@
1
+ import * as imodel0 from "imodel";
2
+ import * as _yongdall_model0 from "@yongdall/model";
3
+
4
+ //#region plugins/numbering/models/NumberingRule.d.mts
5
+ declare const NumberingSequence: _yongdall_model0.ModelTable<{
6
+ patternId: imodel0.FieldDefine<"uuid", false, false>;
7
+ key: imodel0.FieldDefine<"text", false, false>;
8
+ sequence: imodel0.FieldDefine<"i32", false, false>;
9
+ }, "numbering.sequence">;
10
+ declare const NumberingRule: _yongdall_model0.ModelTable<{
11
+ id: imodel0.FieldDefine<"uuid", false, false>;
12
+ label: imodel0.FieldDefine<"string", false, false>;
13
+ pattern: imodel0.FieldDefine<"text", false, false>;
14
+ keyPattern: imodel0.FieldDefine<"text", false, false>;
15
+ createdAt: imodel0.FieldDefine<"timestamp", false, false>;
16
+ updatedAt: imodel0.FieldDefine<"timestamp", false, false>;
17
+ }, "numbering.rule">;
18
+ //#endregion
19
+ //#region plugins/numbering/index.d.mts
20
+ /**
21
+ *
22
+ * @param {string} id
23
+ * @param {Record<string, any>} data
24
+ */
25
+ declare function next(id: string, data: Record<string, any>): Promise<number | null>;
26
+ /**
27
+ *
28
+ * @param {string} id
29
+ * @param {Record<string, any>} data
30
+ */
31
+ declare function generate(id: string, data: Record<string, any>): Promise<string | null>;
32
+ //#endregion
33
+ export { NumberingRule, NumberingSequence, generate, next };
package/index.mjs ADDED
@@ -0,0 +1,50 @@
1
+ import { n as NumberingSequence, t as NumberingRule } from "./NumberingRule-DjKTGF7Q.mjs";
2
+ import { Query, increment } from "@yongdall/model";
3
+ import { useDatabase } from "@yongdall/connection";
4
+ import { Pattern } from "@yongdall/common";
5
+
6
+ //#region plugins/numbering/index.mjs
7
+ /** @import { TableValue } from '@yongdall/model' */
8
+ /**
9
+ *
10
+ * @param {string} id
11
+ * @returns {Promise<TableValue<NumberingRule>?>}
12
+ */
13
+ async function find(id) {
14
+ return await useDatabase(NumberingRule.databaseId).first(new Query(NumberingRule).primary(id)) || null;
15
+ }
16
+ /**
17
+ *
18
+ * @param {string} id
19
+ * @param {Record<string, any>} data
20
+ */
21
+ async function next(id, data) {
22
+ const pattern = await find(id);
23
+ if (!pattern) return null;
24
+ const key = Pattern.generate(pattern.keyPattern || "", data) || "";
25
+ return (await useDatabase(NumberingRule.databaseId).upsert(NumberingSequence, {
26
+ patternId: pattern.id,
27
+ key,
28
+ sequence: 1
29
+ }, { sequence: increment(1) })).sequence;
30
+ }
31
+ /**
32
+ *
33
+ * @param {string} id
34
+ * @param {Record<string, any>} data
35
+ */
36
+ async function generate(id, data) {
37
+ const pattern = await find(id);
38
+ if (!pattern) return null;
39
+ const key = Pattern.generate(pattern.keyPattern || "", data) || "";
40
+ const seq = await useDatabase(NumberingRule.databaseId).upsert(NumberingSequence, {
41
+ patternId: pattern.id,
42
+ key,
43
+ sequence: 1
44
+ }, { sequence: increment(1) });
45
+ return Pattern.generate(pattern.pattern, data, seq.sequence);
46
+ }
47
+
48
+ //#endregion
49
+ export { NumberingRule, NumberingSequence, generate, next };
50
+ //# sourceMappingURL=index.mjs.map
package/index.mjs.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../plugins/numbering/index.mjs"],"sourcesContent":["/** @import { TableValue } from '@yongdall/model' */\nimport { useDatabase } from '@yongdall/connection';\nimport { Pattern } from '@yongdall/common';\nimport { Query, increment } from '@yongdall/model';\nimport { NumberingRule, NumberingSequence } from './models/NumberingRule.mjs';\n\nexport { NumberingRule, NumberingSequence } from './models/NumberingRule.mjs';\n\n/**\n * \n * @param {string} id \n * @returns {Promise<TableValue<NumberingRule>?>}\n */\nasync function find(id) {\n\tconst database = useDatabase(NumberingRule.databaseId);\n\tconst pattern = await database.first(new Query(NumberingRule).primary(id));\n\treturn pattern || null;\n}\n\n\n/**\n * \n * @param {string} id \n * @param {Record<string, any>} data \n */\nexport async function next(id, data) {\n\tconst pattern = await find(id);\n\tif (!pattern) { return null; }\n\tconst key = Pattern.generate(pattern.keyPattern || '', data) || '';\n\tconst database = useDatabase(NumberingRule.databaseId);\n\tconst seq = await database.upsert(NumberingSequence, {\n\t\tpatternId: pattern.id,\n\t\tkey,\n\t\tsequence: 1,\n\t}, { sequence: increment(1) })\n\treturn seq.sequence;\n}\n\n/**\n * \n * @param {string} id \n * @param {Record<string, any>} data \n */\nexport async function generate(id, data) {\n\tconst pattern = await find(id);\n\tif (!pattern) { return null; }\n\tconst key = Pattern.generate(pattern.keyPattern || '', data) || '';\n\tconst database = useDatabase(NumberingRule.databaseId);\n\tconst seq = await database.upsert(NumberingSequence, {\n\t\tpatternId: pattern.id, key, sequence: 1,\n\t}, { sequence: increment(1) });\n\treturn Pattern.generate(pattern.pattern, data, seq.sequence);\n}\n"],"mappings":";;;;;;;;;;;;AAaA,eAAe,KAAK,IAAI;AAGvB,QADgB,MADC,YAAY,cAAc,WAAW,CACvB,MAAM,IAAI,MAAM,cAAc,CAAC,QAAQ,GAAG,CAAC,IACxD;;;;;;;AASnB,eAAsB,KAAK,IAAI,MAAM;CACpC,MAAM,UAAU,MAAM,KAAK,GAAG;AAC9B,KAAI,CAAC,QAAW,QAAO;CACvB,MAAM,MAAM,QAAQ,SAAS,QAAQ,cAAc,IAAI,KAAK,IAAI;AAOhE,SALY,MADK,YAAY,cAAc,WAAW,CAC3B,OAAO,mBAAmB;EACpD,WAAW,QAAQ;EACnB;EACA,UAAU;EACV,EAAE,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC,EACnB;;;;;;;AAQZ,eAAsB,SAAS,IAAI,MAAM;CACxC,MAAM,UAAU,MAAM,KAAK,GAAG;AAC9B,KAAI,CAAC,QAAW,QAAO;CACvB,MAAM,MAAM,QAAQ,SAAS,QAAQ,cAAc,IAAI,KAAK,IAAI;CAEhE,MAAM,MAAM,MADK,YAAY,cAAc,WAAW,CAC3B,OAAO,mBAAmB;EACpD,WAAW,QAAQ;EAAI;EAAK,UAAU;EACtC,EAAE,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC;AAC9B,QAAO,QAAQ,SAAS,QAAQ,SAAS,MAAM,IAAI,SAAS"}
package/package.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@yongdall/numbering",
3
+ "version": "0.5.0",
4
+ "type": "module",
5
+ "main": "./index.mjs",
6
+ "exports": {
7
+ ".": "./index.mjs"
8
+ },
9
+ "description": "",
10
+ "keywords": [],
11
+ "author": "",
12
+ "license": "ISC",
13
+ "dependencies": {
14
+ "@yongdall/common": "^0.5.0",
15
+ "@yongdall/connection": "^0.5.0",
16
+ "@yongdall/core": "^0.5.0",
17
+ "@yongdall/model": "^0.5.0"
18
+ },
19
+ "devDependencies": {
20
+ "@yongdall/migrate": "^0.5.0"
21
+ }
22
+ }
@@ -0,0 +1,10 @@
1
+ import { n as NumberingSequence, t as NumberingRule } from "../NumberingRule-DjKTGF7Q.mjs";
2
+
3
+ //#region plugins/numbering/yongdall/migration.mjs
4
+ /** @import { Profile } from '@yongdall/migrate' */
5
+ /** @type {Profile['models']} */
6
+ const models = [NumberingRule, NumberingSequence];
7
+
8
+ //#endregion
9
+ export { models };
10
+ //# sourceMappingURL=migration.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.mjs","names":[],"sources":["../../../plugins/numbering/yongdall/migration.mjs"],"sourcesContent":["/** @import { Profile } from '@yongdall/migrate' */\n\nimport { NumberingRule, NumberingSequence } from '../models/NumberingRule.mjs';\n\n\n/** @type {Profile['models']} */\nexport const models = [\n\tNumberingRule,\n\tNumberingSequence,\n]\n"],"mappings":";;;;;AAMA,MAAa,SAAS,CACrB,eACA,kBACA"}
@@ -0,0 +1,13 @@
1
+ import { n as NumberingSequence, t as NumberingRule } from "../NumberingRule-DjKTGF7Q.mjs";
2
+
3
+ //#region plugins/numbering/yongdall/model.mjs
4
+ /** @import { ModelProfile } from '@yongdall/core' */
5
+ /** @type {ModelProfile['models']} */
6
+ const models = {
7
+ numberingRule: NumberingRule,
8
+ numberingSequence: NumberingSequence
9
+ };
10
+
11
+ //#endregion
12
+ export { models };
13
+ //# sourceMappingURL=model.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.mjs","names":[],"sources":["../../../plugins/numbering/yongdall/model.mjs"],"sourcesContent":["/** @import { ModelProfile } from '@yongdall/core' */\nimport { NumberingRule, NumberingSequence } from '../models/NumberingRule.mjs';\n\n/** @type {ModelProfile['models']} */\nexport const models = {\n\tnumberingRule: NumberingRule,\n\tnumberingSequence: NumberingSequence,\n};\n"],"mappings":";;;;;AAIA,MAAa,SAAS;CACrB,eAAe;CACf,mBAAmB;CACnB"}
@@ -0,0 +1 @@
1
+ label: 编号生成