@posx/core 5.5.258 → 5.5.259
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/CLAUDE.md +13 -0
- package/LICENSE +21 -21
- package/README.md +85 -85
- package/build/index.d.ts +75 -11
- package/build/index.js +1 -1
- package/package.json +1 -1
- package/package.publish.json +116 -116
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Claude AI Development Guidelines
|
|
2
|
+
|
|
3
|
+
## Best Practices for AI-Assisted Development
|
|
4
|
+
|
|
5
|
+
1. **在开始编码前先充分讨论和规划架构,确保理解用户的真实需求和使用场景,避免过度设计。**
|
|
6
|
+
|
|
7
|
+
2. **不要急于提交代码,应该等待用户明确指示后再进行 commit 和 push 操作。**
|
|
8
|
+
|
|
9
|
+
3. **优先选择简洁的实现方式(如函数导出而非类),并删除冗余的中间层方法以保持代码清晰。**
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
*This file contains guidelines learned from AI-human collaboration to improve development efficiency and code quality.*
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2019 Francisco Hodge
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019 Francisco Hodge
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
# 第一阶段
|
|
2
|
-
- 1. 创建,更新,删除都是通过 -> Http API
|
|
3
|
-
- 2. 读取是通过本地数据库 -> 本地, (例外:订单从云端读取)
|
|
4
|
-
|
|
5
|
-
# 第二阶段 (单机版)
|
|
6
|
-
1. 创建,更新,删除,读取都通过本地数据库,然后进行数据和云端同步(Web Worker)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
<div align="center">
|
|
19
|
-
<img align="center" width="230" src="https://i.imgur.com/iHgtvmg.png" />
|
|
20
|
-
<h2>Typescript Library Boilerplate Basic</h2>
|
|
21
|
-
<blockquote>Minimal Library Starter Kit for your Typescript projects</blockquote>
|
|
22
|
-
|
|
23
|
-
<a href="https://www.npmjs.com/package/@hodgef/ts-library-boilerplate-basic"><img src="https://badgen.net/npm/v/@hodgef/ts-library-boilerplate-basic?color=blue" alt="npm version"></a> <a href="https://github.com/hodgef/ts-library-boilerplate"><img src="https://img.shields.io/github/last-commit/hodgef/ts-library-boilerplate" alt="latest commit"></a> <a href="https://github.com/hodgef/ts-library-boilerplate-basic/actions"><img alt="Build Status" src="https://github.com/hodgef/ts-library-boilerplate-basic/workflows/Build/badge.svg?color=green" /></a> <a href="https://github.com/hodgef/ts-library-boilerplate-basic/actions"> <img alt="Publish Status" src="https://github.com/hodgef/ts-library-boilerplate-basic/workflows/Publish/badge.svg?color=green" /></a>
|
|
24
|
-
|
|
25
|
-
<strong>For a plain Javascript alternative, check out [js-library-boilerplate-basic](https://github.com/hodgef/js-library-boilerplate-basic).</strong>
|
|
26
|
-
|
|
27
|
-
</div>
|
|
28
|
-
|
|
29
|
-
## ⭐️ Features
|
|
30
|
-
|
|
31
|
-
- Webpack 5
|
|
32
|
-
- Babel 7
|
|
33
|
-
- Hot reloading (`npm start`)
|
|
34
|
-
- Automatic Types file generation (index.d.ts)
|
|
35
|
-
- UMD exports, so your library works everywhere.
|
|
36
|
-
- Jest unit testing
|
|
37
|
-
- Customizable file headers for your build [(Example 1)](https://github.com/hodgef/ts-library-boilerplate-basic/blob/master/build/index.js) [(Example2)](https://github.com/hodgef/ts-library-boilerplate-basic/blob/master/build/css/index.css)
|
|
38
|
-
- Daily [dependabot](https://dependabot.com) dependency updates
|
|
39
|
-
|
|
40
|
-
## 📦 Getting Started
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
git clone https://github.com/hodgef/ts-library-boilerplate-basic.git myLibrary
|
|
44
|
-
npm install
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## 💎 Customization
|
|
48
|
-
|
|
49
|
-
> Before shipping, make sure to:
|
|
50
|
-
|
|
51
|
-
1. Edit `LICENSE` file
|
|
52
|
-
2. Edit `package.json` information (These will be used to generate the headers for your built files)
|
|
53
|
-
3. Edit `library: "MyLibrary"` with your library's export name in `./webpack.config.js`
|
|
54
|
-
|
|
55
|
-
## 🚀 Deployment
|
|
56
|
-
|
|
57
|
-
1. `npm publish`
|
|
58
|
-
2. Your users can include your library as usual
|
|
59
|
-
|
|
60
|
-
### npm
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
import MyLibrary from 'my-library';
|
|
64
|
-
const libraryInstance = new MyLibrary();
|
|
65
|
-
...
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### self-host/cdn
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
<script src="build/index.js"></script>
|
|
72
|
-
|
|
73
|
-
const MyLibrary = window.MyLibrary.default;
|
|
74
|
-
const libraryInstance = new MyLibrary();
|
|
75
|
-
...
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## ✅ Libraries built with this boilerplate
|
|
79
|
-
|
|
80
|
-
> Made a library using this starter kit? Share it here by [submitting a pull request](https://github.com/hodgef/ts-library-boilerplate-basic/pulls)!
|
|
81
|
-
|
|
82
|
-
- [simple-keyboard](https://github.com/hodgef/simple-keyboard) - Javascript Virtual Keyboard
|
|
83
|
-
- [react-simple-keyboard](https://github.com/hodgef/react-simple-keyboard) - React Virtual Keyboard
|
|
84
|
-
- [simple-keyboard-layouts](https://github.com/hodgef/simple-keyboard-layouts) - Keyboard layouts for simple-keyboard
|
|
85
|
-
- [atlas-monaco](https://github.com/datdao/atlas-monaco) - AtlasHCL for monaco editor
|
|
1
|
+
# 第一阶段
|
|
2
|
+
- 1. 创建,更新,删除都是通过 -> Http API
|
|
3
|
+
- 2. 读取是通过本地数据库 -> 本地, (例外:订单从云端读取)
|
|
4
|
+
|
|
5
|
+
# 第二阶段 (单机版)
|
|
6
|
+
1. 创建,更新,删除,读取都通过本地数据库,然后进行数据和云端同步(Web Worker)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
<div align="center">
|
|
19
|
+
<img align="center" width="230" src="https://i.imgur.com/iHgtvmg.png" />
|
|
20
|
+
<h2>Typescript Library Boilerplate Basic</h2>
|
|
21
|
+
<blockquote>Minimal Library Starter Kit for your Typescript projects</blockquote>
|
|
22
|
+
|
|
23
|
+
<a href="https://www.npmjs.com/package/@hodgef/ts-library-boilerplate-basic"><img src="https://badgen.net/npm/v/@hodgef/ts-library-boilerplate-basic?color=blue" alt="npm version"></a> <a href="https://github.com/hodgef/ts-library-boilerplate"><img src="https://img.shields.io/github/last-commit/hodgef/ts-library-boilerplate" alt="latest commit"></a> <a href="https://github.com/hodgef/ts-library-boilerplate-basic/actions"><img alt="Build Status" src="https://github.com/hodgef/ts-library-boilerplate-basic/workflows/Build/badge.svg?color=green" /></a> <a href="https://github.com/hodgef/ts-library-boilerplate-basic/actions"> <img alt="Publish Status" src="https://github.com/hodgef/ts-library-boilerplate-basic/workflows/Publish/badge.svg?color=green" /></a>
|
|
24
|
+
|
|
25
|
+
<strong>For a plain Javascript alternative, check out [js-library-boilerplate-basic](https://github.com/hodgef/js-library-boilerplate-basic).</strong>
|
|
26
|
+
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
## ⭐️ Features
|
|
30
|
+
|
|
31
|
+
- Webpack 5
|
|
32
|
+
- Babel 7
|
|
33
|
+
- Hot reloading (`npm start`)
|
|
34
|
+
- Automatic Types file generation (index.d.ts)
|
|
35
|
+
- UMD exports, so your library works everywhere.
|
|
36
|
+
- Jest unit testing
|
|
37
|
+
- Customizable file headers for your build [(Example 1)](https://github.com/hodgef/ts-library-boilerplate-basic/blob/master/build/index.js) [(Example2)](https://github.com/hodgef/ts-library-boilerplate-basic/blob/master/build/css/index.css)
|
|
38
|
+
- Daily [dependabot](https://dependabot.com) dependency updates
|
|
39
|
+
|
|
40
|
+
## 📦 Getting Started
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
git clone https://github.com/hodgef/ts-library-boilerplate-basic.git myLibrary
|
|
44
|
+
npm install
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 💎 Customization
|
|
48
|
+
|
|
49
|
+
> Before shipping, make sure to:
|
|
50
|
+
|
|
51
|
+
1. Edit `LICENSE` file
|
|
52
|
+
2. Edit `package.json` information (These will be used to generate the headers for your built files)
|
|
53
|
+
3. Edit `library: "MyLibrary"` with your library's export name in `./webpack.config.js`
|
|
54
|
+
|
|
55
|
+
## 🚀 Deployment
|
|
56
|
+
|
|
57
|
+
1. `npm publish`
|
|
58
|
+
2. Your users can include your library as usual
|
|
59
|
+
|
|
60
|
+
### npm
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
import MyLibrary from 'my-library';
|
|
64
|
+
const libraryInstance = new MyLibrary();
|
|
65
|
+
...
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### self-host/cdn
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
<script src="build/index.js"></script>
|
|
72
|
+
|
|
73
|
+
const MyLibrary = window.MyLibrary.default;
|
|
74
|
+
const libraryInstance = new MyLibrary();
|
|
75
|
+
...
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## ✅ Libraries built with this boilerplate
|
|
79
|
+
|
|
80
|
+
> Made a library using this starter kit? Share it here by [submitting a pull request](https://github.com/hodgef/ts-library-boilerplate-basic/pulls)!
|
|
81
|
+
|
|
82
|
+
- [simple-keyboard](https://github.com/hodgef/simple-keyboard) - Javascript Virtual Keyboard
|
|
83
|
+
- [react-simple-keyboard](https://github.com/hodgef/react-simple-keyboard) - React Virtual Keyboard
|
|
84
|
+
- [simple-keyboard-layouts](https://github.com/hodgef/simple-keyboard-layouts) - Keyboard layouts for simple-keyboard
|
|
85
|
+
- [atlas-monaco](https://github.com/datdao/atlas-monaco) - AtlasHCL for monaco editor
|
package/build/index.d.ts
CHANGED
|
@@ -249,6 +249,8 @@ declare module '@posx/core/index' {
|
|
|
249
249
|
export * from '@posx/core/libs/escpos.printer';
|
|
250
250
|
export * from '@posx/core/services/ods.service';
|
|
251
251
|
export * from '@posx/core/types/ods.type';
|
|
252
|
+
export * from '@posx/core/types/csv.type';
|
|
253
|
+
export { createCSVExport, importFromCSV } from '@posx/core/utils/csv.utils';
|
|
252
254
|
export * from '@posx/core/utils/autoquery.utils';
|
|
253
255
|
export * from '@posx/core/libs/electron.socket';
|
|
254
256
|
export * from '@posx/core/types/condition.type';
|
|
@@ -256,17 +258,6 @@ declare module '@posx/core/index' {
|
|
|
256
258
|
export * from '@posx/core/types/storage.type';
|
|
257
259
|
export * from '@posx/core/types/menu.type';
|
|
258
260
|
|
|
259
|
-
}
|
|
260
|
-
declare module '@posx/core/libs/FindOptions' {
|
|
261
|
-
export const Include: (query?: string) => (val: any) => any;
|
|
262
|
-
export const In: (query?: never[]) => (val: never) => boolean;
|
|
263
|
-
export const Between: (begin: number, end: number) => (val: number) => boolean;
|
|
264
|
-
export const Not: (query?: any) => (val: any, values: any) => boolean;
|
|
265
|
-
export const Raw: (fn: any) => any;
|
|
266
|
-
export const filterByParams: (params: {
|
|
267
|
-
[key: string]: any;
|
|
268
|
-
}) => (values: any) => boolean;
|
|
269
|
-
|
|
270
261
|
}
|
|
271
262
|
declare module '@posx/core/libs/electron.socket' {
|
|
272
263
|
export class ElectronSocket {
|
|
@@ -486,6 +477,17 @@ declare module '@posx/core/libs/escpos.printer' {
|
|
|
486
477
|
items: IPrintCommandLine[];
|
|
487
478
|
}
|
|
488
479
|
|
|
480
|
+
}
|
|
481
|
+
declare module '@posx/core/libs/FindOptions' {
|
|
482
|
+
export const Include: (query?: string) => (val: any) => any;
|
|
483
|
+
export const In: (query?: never[]) => (val: never) => boolean;
|
|
484
|
+
export const Between: (begin: number, end: number) => (val: number) => boolean;
|
|
485
|
+
export const Not: (query?: any) => (val: any, values: any) => boolean;
|
|
486
|
+
export const Raw: (fn: any) => any;
|
|
487
|
+
export const filterByParams: (params: {
|
|
488
|
+
[key: string]: any;
|
|
489
|
+
}) => (values: any) => boolean;
|
|
490
|
+
|
|
489
491
|
}
|
|
490
492
|
declare module '@posx/core/service.factory' {
|
|
491
493
|
import { IServiceOptions } from '@posx/core/types/misc.type';
|
|
@@ -2076,6 +2078,10 @@ declare module '@posx/core/test/services/report/modifier-sales-report-test/modif
|
|
|
2076
2078
|
declare module '@posx/core/test/services/tax/tax-exempt-test/tax-exempt.test' {
|
|
2077
2079
|
export {};
|
|
2078
2080
|
|
|
2081
|
+
}
|
|
2082
|
+
declare module '@posx/core/test/utils/csv-test/csv-export-import.test' {
|
|
2083
|
+
export {};
|
|
2084
|
+
|
|
2079
2085
|
}
|
|
2080
2086
|
declare module '@posx/core/test/utils/query-builder-test/query-builder.test' {
|
|
2081
2087
|
export {};
|
|
@@ -2951,6 +2957,41 @@ declare module '@posx/core/types/config.type' {
|
|
|
2951
2957
|
constructor();
|
|
2952
2958
|
}
|
|
2953
2959
|
|
|
2960
|
+
}
|
|
2961
|
+
declare module '@posx/core/types/csv.type' {
|
|
2962
|
+
/**
|
|
2963
|
+
* Interface for CSV export rows
|
|
2964
|
+
*
|
|
2965
|
+
* CSV Structure:
|
|
2966
|
+
* Type,Name,SKU,Price
|
|
2967
|
+
* category,Beverages,,
|
|
2968
|
+
* product,Americano,AME001,4.00
|
|
2969
|
+
* product,Espresso,ESP001,3.50
|
|
2970
|
+
* modifier_category,Extras,,
|
|
2971
|
+
* modifier,Extra Sugar,SUGAR001,0.50
|
|
2972
|
+
* modifier,Extra Milk,MILK001,1.00
|
|
2973
|
+
* category,Food,,
|
|
2974
|
+
* product,Burger,BUR001,12.00
|
|
2975
|
+
*/
|
|
2976
|
+
export interface IExportRow {
|
|
2977
|
+
/**
|
|
2978
|
+
* Type of the row: category, product, modifier_category, or modifier
|
|
2979
|
+
*/
|
|
2980
|
+
type: 'category' | 'product' | 'modifier_category' | 'modifier';
|
|
2981
|
+
/**
|
|
2982
|
+
* Name of the category, product, or modifier
|
|
2983
|
+
*/
|
|
2984
|
+
name: string;
|
|
2985
|
+
/**
|
|
2986
|
+
* SKU (Stock Keeping Unit) - only for products and modifiers
|
|
2987
|
+
*/
|
|
2988
|
+
sku?: string;
|
|
2989
|
+
/**
|
|
2990
|
+
* Price - only for products and modifiers
|
|
2991
|
+
*/
|
|
2992
|
+
price?: number;
|
|
2993
|
+
}
|
|
2994
|
+
|
|
2954
2995
|
}
|
|
2955
2996
|
declare module '@posx/core/types/employee.type' {
|
|
2956
2997
|
import { AppCoreModel, IAppCoreModel } from '@posx/core/types/abstract.type';
|
|
@@ -4593,6 +4634,8 @@ declare module '@posx/core/types/product.type' {
|
|
|
4593
4634
|
is_internal: boolean;
|
|
4594
4635
|
is_delisted: boolean;
|
|
4595
4636
|
uid: string;
|
|
4637
|
+
modifiers?: Array<ICoreItem>;
|
|
4638
|
+
modifier_categories?: Array<ICoreCategory>;
|
|
4596
4639
|
kitchen_printers_uids: any[];
|
|
4597
4640
|
order_printers_uids: any[];
|
|
4598
4641
|
label_printers_uids: any[];
|
|
@@ -5451,6 +5494,27 @@ declare module '@posx/core/utils/autoquery.utils' {
|
|
|
5451
5494
|
search_keywords?: string;
|
|
5452
5495
|
};
|
|
5453
5496
|
|
|
5497
|
+
}
|
|
5498
|
+
declare module '@posx/core/utils/csv.utils' {
|
|
5499
|
+
import { ICategory, IItem } from '@posx/core/types/product.type';
|
|
5500
|
+
/**
|
|
5501
|
+
* Create CSV export blob from categories and products
|
|
5502
|
+
* @param categories Array of categories
|
|
5503
|
+
* @param products Array of products (products contain modifiers and modifier_categories)
|
|
5504
|
+
* @param filename Optional filename (default: 'export.csv')
|
|
5505
|
+
* @returns Blob object for download
|
|
5506
|
+
*/
|
|
5507
|
+
export function createCSVExport(categories: ICategory[], products: IItem[], filename?: string): Blob;
|
|
5508
|
+
/**
|
|
5509
|
+
* Import categories and products from CSV file
|
|
5510
|
+
* @param file CSV file to import
|
|
5511
|
+
* @returns Promise with categories and products arrays (products include modifiers and modifier_categories)
|
|
5512
|
+
*/
|
|
5513
|
+
export function importFromCSV(file: File): Promise<{
|
|
5514
|
+
categories: ICategory[];
|
|
5515
|
+
products: IItem[];
|
|
5516
|
+
}>;
|
|
5517
|
+
|
|
5454
5518
|
}
|
|
5455
5519
|
declare module '@posx/core/utils/http.utils' {
|
|
5456
5520
|
/**
|