add name as unique id - #701

This commit is contained in:
Proddy
2023-03-01 21:48:07 +01:00
parent d2c5ae8aa9
commit ee5ec1b7d1
8 changed files with 230 additions and 281 deletions

View File

@@ -97,7 +97,7 @@ const SettingsScheduler: FC = () => {
const schedule_theme = useTheme({ const schedule_theme = useTheme({
Table: ` Table: `
--data-table-library_grid-template-columns: 32px 324px 72px repeat(1, minmax(100px, 1fr)) 100px 100px; --data-table-library_grid-template-columns: 140px 48px 324px 72px 240px repeat(1, minmax(100px, 1fr));
`, `,
BaseRow: ` BaseRow: `
font-size: 14px; font-size: 14px;
@@ -106,21 +106,22 @@ const SettingsScheduler: FC = () => {
} }
`, `,
BaseCell: ` BaseCell: `
&:nth-of-type(1) {
text-align: center;
},
&:nth-of-type(2) { &:nth-of-type(2) {
text-align: center; text-align: center;
}, },
&:nth-of-type(3) { &:nth-of-type(3) {
text-align: center; text-align: center;
}, },
&:nth-of-type(4) {
text-align: center;
},
`, `,
HeaderRow: ` HeaderRow: `
text-transform: uppercase; text-transform: uppercase;
background-color: black; background-color: black;
color: #90CAF9; color: #90CAF9;
.th { .th {
padding: 8px;
border-bottom: 1px solid #565656; border-bottom: 1px solid #565656;
font-weight: 500; font-weight: 500;
height: 36px; height: 36px;
@@ -131,6 +132,7 @@ const SettingsScheduler: FC = () => {
position: relative; position: relative;
cursor: pointer; cursor: pointer;
.td { .td {
padding: 8px;
border-top: 1px solid #565656; border-top: 1px solid #565656;
border-bottom: 1px solid #565656; border-bottom: 1px solid #565656;
} }
@@ -167,6 +169,7 @@ const SettingsScheduler: FC = () => {
setSchedule( setSchedule(
data.map((si) => ({ data.map((si) => ({
...si, ...si,
o_id: si.id,
o_active: si.active, o_active: si.active,
o_deleted: si.deleted, o_deleted: si.deleted,
o_flags: si.flags, o_flags: si.flags,
@@ -217,6 +220,7 @@ const SettingsScheduler: FC = () => {
function hasScheduleChanged(si: ScheduleItem) { function hasScheduleChanged(si: ScheduleItem) {
return ( return (
si.id !== si.o_id ||
(si?.description || '') !== (si?.o_description || '') || (si?.description || '') !== (si?.o_description || '') ||
si.active !== si.o_active || si.active !== si.o_active ||
si.deleted !== si.o_deleted || si.deleted !== si.o_deleted ||
@@ -302,25 +306,14 @@ const SettingsScheduler: FC = () => {
if (si.description === undefined) { if (si.description === undefined) {
si.description = ''; si.description = '';
} }
setScheduleItem(si);
setCreating(false); setCreating(false);
setScheduleItem(si);
}; };
function makeid() {
let result = '';
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
const charactersLength = characters.length;
let counter = 0;
while (counter < 4) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
counter += 1;
}
return result;
}
const addScheduleItem = () => { const addScheduleItem = () => {
setCreating(true);
setScheduleItem({ setScheduleItem({
id: makeid(), // random ID of 4 strings id: '',
active: false, active: false,
deleted: false, deleted: false,
flags: 0, flags: 0,
@@ -329,7 +322,6 @@ const SettingsScheduler: FC = () => {
value: '', value: '',
description: '' description: ''
}); });
setCreating(true);
}; };
const updateScheduleItem = () => { const updateScheduleItem = () => {
@@ -337,7 +329,6 @@ const SettingsScheduler: FC = () => {
const new_schedule = [...schedule.filter((si) => si.id !== scheduleItem.id), scheduleItem].sort((a, b) => const new_schedule = [...schedule.filter((si) => si.id !== scheduleItem.id), scheduleItem].sort((a, b) =>
a.time.localeCompare(b.time) a.time.localeCompare(b.time)
); );
setSchedule(new_schedule); setSchedule(new_schedule);
setScheduleItem(undefined); setScheduleItem(undefined);
} }
@@ -354,19 +345,20 @@ const SettingsScheduler: FC = () => {
<> <>
<Header> <Header>
<HeaderRow> <HeaderRow>
<HeaderCell stiff>{LL.NAME()}</HeaderCell>
<HeaderCell stiff> <HeaderCell stiff>
<CheckIcon sx={{ fontSize: 16, verticalAlign: 'middle' }} /> <CheckIcon sx={{ fontSize: 16, verticalAlign: 'middle' }} />
</HeaderCell> </HeaderCell>
<HeaderCell stiff>{LL.SCHEDULE()}</HeaderCell> <HeaderCell stiff>{LL.SCHEDULE()}</HeaderCell>
<HeaderCell stiff>{LL.TIME()}</HeaderCell> <HeaderCell stiff>{LL.TIME()}</HeaderCell>
<HeaderCell stiff>{LL.COMMAND()}</HeaderCell> <HeaderCell stiff>{LL.COMMAND()}</HeaderCell>
<HeaderCell stiff>{LL.VALUE(0)}</HeaderCell> <HeaderCell>{LL.VALUE(0)}</HeaderCell>
<HeaderCell resize>{LL.DESCRIPTION()}</HeaderCell>
</HeaderRow> </HeaderRow>
</Header> </Header>
<Body> <Body>
{tableList.map((si: ScheduleItem) => ( {tableList.map((si: ScheduleItem) => (
<Row key={si.id} item={si} onClick={() => editScheduleItem(si)}> <Row key={si.id} item={si} onClick={() => editScheduleItem(si)}>
<Cell>{si.id}</Cell>
<Cell stiff> <Cell stiff>
<Checkbox <Checkbox
size="small" size="small"
@@ -403,7 +395,6 @@ const SettingsScheduler: FC = () => {
<Cell>{si.time}</Cell> <Cell>{si.time}</Cell>
<Cell>{si.cmd}</Cell> <Cell>{si.cmd}</Cell>
<Cell>{si.value}</Cell> <Cell>{si.value}</Cell>
<Cell>{si.description}</Cell>
</Row> </Row>
))} ))}
</Body> </Body>
@@ -423,7 +414,7 @@ const SettingsScheduler: FC = () => {
if (scheduleItem) { if (scheduleItem) {
try { try {
setFieldErrors(undefined); setFieldErrors(undefined);
await validate(schedulerItemValidation(scheduleItem, creating), scheduleItem); await validate(schedulerItemValidation(schedule, creating), scheduleItem);
updateScheduleItem(); updateScheduleItem();
} catch (errors: any) { } catch (errors: any) {
setFieldErrors(errors); setFieldErrors(errors);
@@ -436,35 +427,44 @@ const SettingsScheduler: FC = () => {
return ( return (
<Dialog open={!!scheduleItem} onClose={() => setScheduleItem(undefined)}> <Dialog open={!!scheduleItem} onClose={() => setScheduleItem(undefined)}>
<DialogTitle> <DialogTitle>
{(creating ? LL.ADD(0) : LL.EDIT()) + {creating ? LL.ADD(0) + ' ' + LL.NEW() + ' ' + LL.SCHEDULE() : LL.EDIT() + " '" + scheduleItem.id + "'"}
' ' +
((scheduleItem.flags & ScheduleFlag.SCHEDULE_TIMER) === ScheduleFlag.SCHEDULE_TIMER
? LL.TIMER()
: LL.WEEKLY()) +
' ' +
LL.SCHEDULE()}
</DialogTitle> </DialogTitle>
<DialogContent dividers> <DialogContent dividers>
{creating && ( {creating ? (
<RadioGroup <>
row <ValidatedTextField
name="schedule-type" fieldErrors={fieldErrors}
onChange={(event) => { name="id"
if ((event.target as HTMLInputElement).value === 't') { label={LL.NAME()}
scheduleItem.flags = ScheduleFlag.SCHEDULE_TIMER; value={scheduleItem.id}
scheduleItem.time = '01:00'; fullWidth
} else { margin="normal"
scheduleItem.flags = 0; sx={{ width: '60ch' }}
} onChange={updateValue(setScheduleItem)}
updateValue(setScheduleItem); />
setFlags(['']); // refresh screen <RadioGroup
}} row
> name="schedule-type"
<FormControlLabel value="w" control={<Radio />} label={LL.WEEKLY()} /> onChange={(event) => {
<FormControlLabel value="t" control={<Radio />} label={LL.TIMER()} /> if ((event.target as HTMLInputElement).value === 't') {
</RadioGroup> scheduleItem.flags = ScheduleFlag.SCHEDULE_TIMER;
scheduleItem.time = '01:00';
} else {
scheduleItem.flags = 0;
}
updateValue(setScheduleItem);
setFlags(['']); // refresh screen
}}
>
<FormControlLabel value="w" control={<Radio />} label={LL.WEEKLY()} />
<FormControlLabel value="t" control={<Radio />} label={LL.TIMER()} />
</RadioGroup>
</>
) : (
<Typography variant="h6" color="primary" sx={{ pb: 1 }}>
{LL.TYPE()}:&nbsp;{scheduleItem.flags & ScheduleFlag.SCHEDULE_TIMER ? LL.TIMER() : LL.WEEKLY()}
</Typography>
)} )}
<TextField <TextField
name="description" name="description"
label={LL.DESCRIPTION()} label={LL.DESCRIPTION()}
@@ -504,7 +504,6 @@ const SettingsScheduler: FC = () => {
onChange={updateValue(setScheduleItem)} onChange={updateValue(setScheduleItem)}
/> />
)} )}
<ValidatedTextField <ValidatedTextField
fieldErrors={fieldErrors} fieldErrors={fieldErrors}
name="cmd" name="cmd"

View File

@@ -305,7 +305,7 @@ export enum DeviceEntityMask {
} }
export interface ScheduleItem { export interface ScheduleItem {
id: string; // unique index id: string; // unique index which is name
active: boolean; active: boolean;
deleted?: boolean; // optional deleted?: boolean; // optional
flags: number; flags: number;
@@ -313,6 +313,7 @@ export interface ScheduleItem {
cmd: string; cmd: string;
value: string; value: string;
description?: string; // optional description?: string; // optional
o_id?: string;
o_active?: boolean; o_active?: boolean;
o_deleted?: boolean; o_deleted?: boolean;
o_flags?: number; o_flags?: number;

View File

@@ -85,7 +85,29 @@ export const createSettingsValidator = (settings: Settings) =>
}) })
}); });
export const schedulerItemValidation = (si: ScheduleItem, creating: boolean) => export const schedulerItemValidation = (schedule: ScheduleItem[], creating: boolean) =>
new Schema({ new Schema({
cmd: [{ required: true, message: 'Command is required' }] id: [
{ required: true, message: 'Name is required' },
{
type: 'string',
pattern: /^[a-zA-Z0-9_\\.]{1,24}$/,
message: "Must be 1-24 characters: alpha numeric, '_' or '.'"
},
...(creating ? [uniqueIDValidator(schedule)] : [])
],
cmd: [
{ required: true, message: 'Command is required' },
{ type: 'string', min: 1, max: 32, message: 'Command must be 1-32 characters' }
]
}); });
export const uniqueIDValidator = (schedule: ScheduleItem[]) => ({
validator(rule: InternalRuleItem, id: string, callback: (error?: string) => void) {
if (id && schedule.find((si) => si.id === id)) {
callback('Name already in use');
} else {
callback();
}
}
});

View File

@@ -5,7 +5,7 @@ __metadata:
version: 6 version: 6
cacheKey: 8 cacheKey: 8
"@ampproject/remapping@npm:^2.1.0": "@ampproject/remapping@npm:^2.2.0":
version: 2.2.0 version: 2.2.0
resolution: "@ampproject/remapping@npm:2.2.0" resolution: "@ampproject/remapping@npm:2.2.0"
dependencies: dependencies:
@@ -25,43 +25,44 @@ __metadata:
linkType: hard linkType: hard
"@babel/compat-data@npm:^7.20.5": "@babel/compat-data@npm:^7.20.5":
version: 7.20.14 version: 7.21.0
resolution: "@babel/compat-data@npm:7.20.14" resolution: "@babel/compat-data@npm:7.21.0"
checksum: 6c9efe36232094e4ad0b70d165587f21ca718e5d011f7a52a77a18502a7524e90e2855aa5a2e086395bcfd21bd2c7c99128dcd8d9fdffe94316b72acf5c66f2c checksum: dbf632c532f9c75ba0be7d1dc9f6cd3582501af52f10a6b90415d634ec5878735bd46064c91673b10317af94d4cc99c4da5bd9d955978cdccb7905fc33291e4d
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/core@npm:^7.19.6": "@babel/core@npm:^7.19.6":
version: 7.20.12 version: 7.21.0
resolution: "@babel/core@npm:7.20.12" resolution: "@babel/core@npm:7.21.0"
dependencies: dependencies:
"@ampproject/remapping": ^2.1.0 "@ampproject/remapping": ^2.2.0
"@babel/code-frame": ^7.18.6 "@babel/code-frame": ^7.18.6
"@babel/generator": ^7.20.7 "@babel/generator": ^7.21.0
"@babel/helper-compilation-targets": ^7.20.7 "@babel/helper-compilation-targets": ^7.20.7
"@babel/helper-module-transforms": ^7.20.11 "@babel/helper-module-transforms": ^7.21.0
"@babel/helpers": ^7.20.7 "@babel/helpers": ^7.21.0
"@babel/parser": ^7.20.7 "@babel/parser": ^7.21.0
"@babel/template": ^7.20.7 "@babel/template": ^7.20.7
"@babel/traverse": ^7.20.12 "@babel/traverse": ^7.21.0
"@babel/types": ^7.20.7 "@babel/types": ^7.21.0
convert-source-map: ^1.7.0 convert-source-map: ^1.7.0
debug: ^4.1.0 debug: ^4.1.0
gensync: ^1.0.0-beta.2 gensync: ^1.0.0-beta.2
json5: ^2.2.2 json5: ^2.2.2
semver: ^6.3.0 semver: ^6.3.0
checksum: 62e6c3e2149a70b5c9729ef5f0d3e2e97e9dcde89fc039c8d8e3463d5d7ba9b29ee84d10faf79b61532ac1645aa62f2bd42338320617e6e3a8a4d8e2a27076e7 checksum: 357f4dd3638861ceebf6d95ff49ad8b902065ee8b7b352621deed5666c2a6d702a48ca7254dba23ecae2a0afb67d20f90db7dd645c3b75e35e72ad9776c671aa
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/generator@npm:^7.20.7": "@babel/generator@npm:^7.21.0, @babel/generator@npm:^7.21.1":
version: 7.20.14 version: 7.21.1
resolution: "@babel/generator@npm:7.20.14" resolution: "@babel/generator@npm:7.21.1"
dependencies: dependencies:
"@babel/types": ^7.20.7 "@babel/types": ^7.21.0
"@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/gen-mapping": ^0.3.2
"@jridgewell/trace-mapping": ^0.3.17
jsesc: ^2.5.1 jsesc: ^2.5.1
checksum: 5f6aa2d86af26e76d276923a5c34191124a119b16ee9ccc34aef654a7dec84fbd7d2daed2e6458a6a06bf87f3661deb77c9fea59b8f67faff5c90793c96d76d6 checksum: 69085a211ff91a7a608ee3f86e6fcb9cf5e724b756d792a713b0c328a671cd3e423e1ef1b12533f366baba0616caffe0a7ba9d328727eab484de5961badbef00
languageName: node languageName: node
linkType: hard linkType: hard
@@ -87,13 +88,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/helper-function-name@npm:^7.19.0": "@babel/helper-function-name@npm:^7.21.0":
version: 7.19.0 version: 7.21.0
resolution: "@babel/helper-function-name@npm:7.19.0" resolution: "@babel/helper-function-name@npm:7.21.0"
dependencies: dependencies:
"@babel/template": ^7.18.10 "@babel/template": ^7.20.7
"@babel/types": ^7.19.0 "@babel/types": ^7.21.0
checksum: eac1f5db428ba546270c2b8d750c24eb528b8fcfe50c81de2e0bdebf0e20f24bec688d4331533b782e4a907fad435244621ca2193cfcf80a86731299840e0f6e checksum: d63e63c3e0e3e8b3138fa47b0cd321148a300ef12b8ee951196994dcd2a492cc708aeda94c2c53759a5c9177fffaac0fd8778791286746f72a000976968daf4e
languageName: node languageName: node
linkType: hard linkType: hard
@@ -115,9 +116,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/helper-module-transforms@npm:^7.20.11": "@babel/helper-module-transforms@npm:^7.21.0":
version: 7.20.11 version: 7.21.2
resolution: "@babel/helper-module-transforms@npm:7.20.11" resolution: "@babel/helper-module-transforms@npm:7.21.2"
dependencies: dependencies:
"@babel/helper-environment-visitor": ^7.18.9 "@babel/helper-environment-visitor": ^7.18.9
"@babel/helper-module-imports": ^7.18.6 "@babel/helper-module-imports": ^7.18.6
@@ -125,9 +126,9 @@ __metadata:
"@babel/helper-split-export-declaration": ^7.18.6 "@babel/helper-split-export-declaration": ^7.18.6
"@babel/helper-validator-identifier": ^7.19.1 "@babel/helper-validator-identifier": ^7.19.1
"@babel/template": ^7.20.7 "@babel/template": ^7.20.7
"@babel/traverse": ^7.20.10 "@babel/traverse": ^7.21.2
"@babel/types": ^7.20.7 "@babel/types": ^7.21.2
checksum: 29319ebafa693d48756c6ba0d871677bb0037e0da084fbe221a17c38d57093fc8aa38543c07d76e788266a937976e37ab4901971ca7f237c5ab45f524b9ecca0 checksum: 8a1c129a4f90bdf97d8b6e7861732c9580f48f877aaaafbc376ce2482febebcb8daaa1de8bc91676d12886487603f8c62a44f9e90ee76d6cac7f9225b26a49e1
languageName: node languageName: node
linkType: hard linkType: hard
@@ -164,20 +165,20 @@ __metadata:
linkType: hard linkType: hard
"@babel/helper-validator-option@npm:^7.18.6": "@babel/helper-validator-option@npm:^7.18.6":
version: 7.18.6 version: 7.21.0
resolution: "@babel/helper-validator-option@npm:7.18.6" resolution: "@babel/helper-validator-option@npm:7.21.0"
checksum: f9cc6eb7cc5d759c5abf006402180f8d5e4251e9198197428a97e05d65eb2f8ae5a0ce73b1dfd2d35af41d0eb780627a64edf98a4e71f064eeeacef8de58f2cf checksum: 8ece4c78ffa5461fd8ab6b6e57cc51afad59df08192ed5d84b475af4a7193fc1cb794b59e3e7be64f3cdc4df7ac78bf3dbb20c129d7757ae078e6279ff8c2f07
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/helpers@npm:^7.20.7": "@babel/helpers@npm:^7.21.0":
version: 7.20.13 version: 7.21.0
resolution: "@babel/helpers@npm:7.20.13" resolution: "@babel/helpers@npm:7.21.0"
dependencies: dependencies:
"@babel/template": ^7.20.7 "@babel/template": ^7.20.7
"@babel/traverse": ^7.20.13 "@babel/traverse": ^7.21.0
"@babel/types": ^7.20.7 "@babel/types": ^7.21.0
checksum: d62076fa834f342798f8c3fd7aec0870cc1725d273d99e540cbaa8d6c3ed10258228dd14601c8e66bfeabbb9424c3b31090ecc467fe855f7bd72c4734df7fb09 checksum: 9370dad2bb665c551869a08ac87c8bdafad53dbcdce1f5c5d498f51811456a3c005d9857562715151a0f00b2e912ac8d89f56574f837b5689f5f5072221cdf54
languageName: node languageName: node
linkType: hard linkType: hard
@@ -192,25 +193,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/parser@npm:^7.20.13, @babel/parser@npm:^7.20.7": "@babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.0, @babel/parser@npm:^7.21.2":
version: 7.20.15 version: 7.21.2
resolution: "@babel/parser@npm:7.20.15" resolution: "@babel/parser@npm:7.21.2"
bin: bin:
parser: ./bin/babel-parser.js parser: ./bin/babel-parser.js
checksum: 1d0f47ca67ff2652f1c0ff1570bed8deccbc4b53509e7cd73476af9cc7ed23480c99f1179bd6d0be01612368b92b39e206d330ad6054009d699934848a89298b checksum: e2b89de2c63d4cdd2cafeaea34f389bba729727eec7a8728f736bc472a59396059e3e9fe322c9bed8fd126d201fb609712949dc8783f4cae4806acd9a73da6ff
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.7": "@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.7":
version: 7.20.13
resolution: "@babel/runtime@npm:7.20.13"
dependencies:
regenerator-runtime: ^0.13.11
checksum: 09b7a97a05c80540db6c9e4ddf8c5d2ebb06cae5caf3a87e33c33f27f8c4d49d9c67a2d72f1570e796045288fad569f98a26ceba0c4f5fad2af84b6ad855c4fb
languageName: node
linkType: hard
"@babel/runtime@npm:^7.21.0":
version: 7.21.0 version: 7.21.0
resolution: "@babel/runtime@npm:7.21.0" resolution: "@babel/runtime@npm:7.21.0"
dependencies: dependencies:
@@ -219,7 +211,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7": "@babel/template@npm:^7.20.7":
version: 7.20.7 version: 7.20.7
resolution: "@babel/template@npm:7.20.7" resolution: "@babel/template@npm:7.20.7"
dependencies: dependencies:
@@ -230,32 +222,32 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/traverse@npm:^7.20.10, @babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.13": "@babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2":
version: 7.20.13 version: 7.21.2
resolution: "@babel/traverse@npm:7.20.13" resolution: "@babel/traverse@npm:7.21.2"
dependencies: dependencies:
"@babel/code-frame": ^7.18.6 "@babel/code-frame": ^7.18.6
"@babel/generator": ^7.20.7 "@babel/generator": ^7.21.1
"@babel/helper-environment-visitor": ^7.18.9 "@babel/helper-environment-visitor": ^7.18.9
"@babel/helper-function-name": ^7.19.0 "@babel/helper-function-name": ^7.21.0
"@babel/helper-hoist-variables": ^7.18.6 "@babel/helper-hoist-variables": ^7.18.6
"@babel/helper-split-export-declaration": ^7.18.6 "@babel/helper-split-export-declaration": ^7.18.6
"@babel/parser": ^7.20.13 "@babel/parser": ^7.21.2
"@babel/types": ^7.20.7 "@babel/types": ^7.21.2
debug: ^4.1.0 debug: ^4.1.0
globals: ^11.1.0 globals: ^11.1.0
checksum: 30ca6e0bd18233fda48fa09315efd14dfc61dcf5b8fa3712b343bfc61b32bc63b5e85ea1773cc9576c9b293b96f46b4589aaeb0a52e1f3eeac4edc076d049fc7 checksum: d851e3f5cfbdc2fac037a014eae7b0707709de50f7d2fbb82ffbf932d3eeba90a77431529371d6e544f8faaf8c6540eeb18fdd8d1c6fa2b61acea0fb47e18d4b
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/types@npm:^7.18.6, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.8.3": "@babel/types@npm:^7.18.6, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.8.3":
version: 7.20.7 version: 7.21.2
resolution: "@babel/types@npm:7.20.7" resolution: "@babel/types@npm:7.21.2"
dependencies: dependencies:
"@babel/helper-string-parser": ^7.19.4 "@babel/helper-string-parser": ^7.19.4
"@babel/helper-validator-identifier": ^7.19.1 "@babel/helper-validator-identifier": ^7.19.1
to-fast-properties: ^2.0.0 to-fast-properties: ^2.0.0
checksum: b39af241f0b72bba67fd6d0d23914f6faec8c0eba8015c181cbd5ea92e59fc91a52a1ab490d3520c7dbd19ddb9ebb76c476308f6388764f16d8201e37fae6811 checksum: a45a52acde139e575502c6de42c994bdbe262bafcb92ae9381fb54cdf1a3672149086843fda655c7683ce9806e998fd002bbe878fa44984498d0fdc7935ce7ff
languageName: node languageName: node
linkType: hard linkType: hard
@@ -657,7 +649,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@jridgewell/trace-mapping@npm:^0.3.9": "@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9":
version: 0.3.17 version: 0.3.17
resolution: "@jridgewell/trace-mapping@npm:0.3.17" resolution: "@jridgewell/trace-mapping@npm:0.3.17"
dependencies: dependencies:
@@ -1064,90 +1056,90 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-darwin-arm64@npm:1.3.35": "@swc/core-darwin-arm64@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-darwin-arm64@npm:1.3.35" resolution: "@swc/core-darwin-arm64@npm:1.3.37"
conditions: os=darwin & cpu=arm64 conditions: os=darwin & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-darwin-x64@npm:1.3.35": "@swc/core-darwin-x64@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-darwin-x64@npm:1.3.35" resolution: "@swc/core-darwin-x64@npm:1.3.37"
conditions: os=darwin & cpu=x64 conditions: os=darwin & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-linux-arm-gnueabihf@npm:1.3.35": "@swc/core-linux-arm-gnueabihf@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.35" resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.37"
conditions: os=linux & cpu=arm conditions: os=linux & cpu=arm
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-linux-arm64-gnu@npm:1.3.35": "@swc/core-linux-arm64-gnu@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.35" resolution: "@swc/core-linux-arm64-gnu@npm:1.3.37"
conditions: os=linux & cpu=arm64 & libc=glibc conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-linux-arm64-musl@npm:1.3.35": "@swc/core-linux-arm64-musl@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-linux-arm64-musl@npm:1.3.35" resolution: "@swc/core-linux-arm64-musl@npm:1.3.37"
conditions: os=linux & cpu=arm64 & libc=musl conditions: os=linux & cpu=arm64 & libc=musl
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-linux-x64-gnu@npm:1.3.35": "@swc/core-linux-x64-gnu@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-linux-x64-gnu@npm:1.3.35" resolution: "@swc/core-linux-x64-gnu@npm:1.3.37"
conditions: os=linux & cpu=x64 & libc=glibc conditions: os=linux & cpu=x64 & libc=glibc
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-linux-x64-musl@npm:1.3.35": "@swc/core-linux-x64-musl@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-linux-x64-musl@npm:1.3.35" resolution: "@swc/core-linux-x64-musl@npm:1.3.37"
conditions: os=linux & cpu=x64 & libc=musl conditions: os=linux & cpu=x64 & libc=musl
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-win32-arm64-msvc@npm:1.3.35": "@swc/core-win32-arm64-msvc@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.35" resolution: "@swc/core-win32-arm64-msvc@npm:1.3.37"
conditions: os=win32 & cpu=arm64 conditions: os=win32 & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-win32-ia32-msvc@npm:1.3.35": "@swc/core-win32-ia32-msvc@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.35" resolution: "@swc/core-win32-ia32-msvc@npm:1.3.37"
conditions: os=win32 & cpu=ia32 conditions: os=win32 & cpu=ia32
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core-win32-x64-msvc@npm:1.3.35": "@swc/core-win32-x64-msvc@npm:1.3.37":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core-win32-x64-msvc@npm:1.3.35" resolution: "@swc/core-win32-x64-msvc@npm:1.3.37"
conditions: os=win32 & cpu=x64 conditions: os=win32 & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@swc/core@npm:^1.3.35": "@swc/core@npm:^1.3.35":
version: 1.3.35 version: 1.3.37
resolution: "@swc/core@npm:1.3.35" resolution: "@swc/core@npm:1.3.37"
dependencies: dependencies:
"@swc/core-darwin-arm64": 1.3.35 "@swc/core-darwin-arm64": 1.3.37
"@swc/core-darwin-x64": 1.3.35 "@swc/core-darwin-x64": 1.3.37
"@swc/core-linux-arm-gnueabihf": 1.3.35 "@swc/core-linux-arm-gnueabihf": 1.3.37
"@swc/core-linux-arm64-gnu": 1.3.35 "@swc/core-linux-arm64-gnu": 1.3.37
"@swc/core-linux-arm64-musl": 1.3.35 "@swc/core-linux-arm64-musl": 1.3.37
"@swc/core-linux-x64-gnu": 1.3.35 "@swc/core-linux-x64-gnu": 1.3.37
"@swc/core-linux-x64-musl": 1.3.35 "@swc/core-linux-x64-musl": 1.3.37
"@swc/core-win32-arm64-msvc": 1.3.35 "@swc/core-win32-arm64-msvc": 1.3.37
"@swc/core-win32-ia32-msvc": 1.3.35 "@swc/core-win32-ia32-msvc": 1.3.37
"@swc/core-win32-x64-msvc": 1.3.35 "@swc/core-win32-x64-msvc": 1.3.37
dependenciesMeta: dependenciesMeta:
"@swc/core-darwin-arm64": "@swc/core-darwin-arm64":
optional: true optional: true
@@ -1169,7 +1161,7 @@ __metadata:
optional: true optional: true
"@swc/core-win32-x64-msvc": "@swc/core-win32-x64-msvc":
optional: true optional: true
checksum: 263e01904fe4f4d6cbf6deef90439d6d93f28c04252d917fc290aadde131a1716820eb488a615b3c0dbe3f48d6d7ac0f1c886e2c2acd07a72e3d99e4a245b3de checksum: 1cfa1ce8967a1d04361af076023bb50cc90bb413c347b0d7c7e86cf9b8277d05471dd2a24708a77365e527c51ddde3cd752fe49975b9e236c3abf9590e3106dd
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1365,13 +1357,13 @@ __metadata:
linkType: hard linkType: hard
"@typescript-eslint/experimental-utils@npm:^5.0.0": "@typescript-eslint/experimental-utils@npm:^5.0.0":
version: 5.53.0 version: 5.54.0
resolution: "@typescript-eslint/experimental-utils@npm:5.53.0" resolution: "@typescript-eslint/experimental-utils@npm:5.54.0"
dependencies: dependencies:
"@typescript-eslint/utils": 5.53.0 "@typescript-eslint/utils": 5.54.0
peerDependencies: peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
checksum: 654702d564d6680b984a23ab2887ab6a1fceda073bb2522a84edf7c8d16a6dbd42b122be2583b9ddf1cdfd3ce68dac7292739b9c95fd0f3aa713e4414a64f7d1 checksum: 7698471ff64c3590301105e0843563927a4289591365bdcc83b39a4dc7b3a40fd37c8c71e5f3088251ba2a38b51b1fb3edbc85c1294f5b74edbb807ec26cce90
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1392,16 +1384,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/scope-manager@npm:5.53.0":
version: 5.53.0
resolution: "@typescript-eslint/scope-manager@npm:5.53.0"
dependencies:
"@typescript-eslint/types": 5.53.0
"@typescript-eslint/visitor-keys": 5.53.0
checksum: 51f31dc01e95908611f402441f58404da80a338c0237b2b82f4a7b0b2e8868c4bfe8f7cf44b2567dd56533de609156a5d4ac54bb1f9f09c7014b99428aef2543
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:5.54.0": "@typescript-eslint/scope-manager@npm:5.54.0":
version: 5.54.0 version: 5.54.0
resolution: "@typescript-eslint/scope-manager@npm:5.54.0" resolution: "@typescript-eslint/scope-manager@npm:5.54.0"
@@ -1429,13 +1411,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/types@npm:5.53.0":
version: 5.53.0
resolution: "@typescript-eslint/types@npm:5.53.0"
checksum: b0eaf23de4ab13697d4d2095838c959a3f410c30f0d19091e5ca08e62320c3cc3c72bcb631823fb6a4fbb31db0a059e386a0801244930d0a88a6a698e5f46548
languageName: node
linkType: hard
"@typescript-eslint/types@npm:5.54.0": "@typescript-eslint/types@npm:5.54.0":
version: 5.54.0 version: 5.54.0
resolution: "@typescript-eslint/types@npm:5.54.0" resolution: "@typescript-eslint/types@npm:5.54.0"
@@ -1443,24 +1418,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/typescript-estree@npm:5.53.0":
version: 5.53.0
resolution: "@typescript-eslint/typescript-estree@npm:5.53.0"
dependencies:
"@typescript-eslint/types": 5.53.0
"@typescript-eslint/visitor-keys": 5.53.0
debug: ^4.3.4
globby: ^11.1.0
is-glob: ^4.0.3
semver: ^7.3.7
tsutils: ^3.21.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 6e119c8e4167c8495d728c5556a834545a9c064918dd5e7b79b0d836726f4f8e2a0297b0ac82bf2b71f1e5427552217d0b59d8fb1406fd79bd3bf91b75dca873
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:5.54.0": "@typescript-eslint/typescript-estree@npm:5.54.0":
version: 5.54.0 version: 5.54.0
resolution: "@typescript-eslint/typescript-estree@npm:5.54.0" resolution: "@typescript-eslint/typescript-estree@npm:5.54.0"
@@ -1479,24 +1436,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/utils@npm:5.53.0":
version: 5.53.0
resolution: "@typescript-eslint/utils@npm:5.53.0"
dependencies:
"@types/json-schema": ^7.0.9
"@types/semver": ^7.3.12
"@typescript-eslint/scope-manager": 5.53.0
"@typescript-eslint/types": 5.53.0
"@typescript-eslint/typescript-estree": 5.53.0
eslint-scope: ^5.1.1
eslint-utils: ^3.0.0
semver: ^7.3.7
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
checksum: 18e6bac14ae853385a74123759850bca367904723e170c37416fc014673eb714afb6bb090367bff61494a8387e941b6af65ee5f4f845f7177fabb4df85e01643
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:5.54.0": "@typescript-eslint/utils@npm:5.54.0":
version: 5.54.0 version: 5.54.0
resolution: "@typescript-eslint/utils@npm:5.54.0" resolution: "@typescript-eslint/utils@npm:5.54.0"
@@ -1515,16 +1454,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/visitor-keys@npm:5.53.0":
version: 5.53.0
resolution: "@typescript-eslint/visitor-keys@npm:5.53.0"
dependencies:
"@typescript-eslint/types": 5.53.0
eslint-visitor-keys: ^3.3.0
checksum: 090695883c15364c6f401e97f56b13db0f31c1114f3bd22562bd41734864d27f6a3c80de33957e9dedab2d5f94b0f4480ba3fde1d4574e74dca4593917b7b54a
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:5.54.0": "@typescript-eslint/visitor-keys@npm:5.54.0":
version: 5.54.0 version: 5.54.0
resolution: "@typescript-eslint/visitor-keys@npm:5.54.0" resolution: "@typescript-eslint/visitor-keys@npm:5.54.0"
@@ -1970,9 +1899,9 @@ __metadata:
linkType: hard linkType: hard
"caniuse-lite@npm:^1.0.30001449": "caniuse-lite@npm:^1.0.30001449":
version: 1.0.30001451 version: 1.0.30001458
resolution: "caniuse-lite@npm:1.0.30001451" resolution: "caniuse-lite@npm:1.0.30001458"
checksum: 48a06a7881093bb4d8a08ed5428f24a1cbdaa544b0a6f0c3614287d4f34b6c853e79a0f608a5bd901c27995f5e951825606fba11e7930251cc422bd61de9d849 checksum: 258cc5a25babbbfe483bf788c6f321a19400ff80b2bf156b360bac09a6f9f4da44516350d187a30395667cb142c682d9ea96577ea0df236d35f76234b07ccb41
languageName: node languageName: node
linkType: hard linkType: hard
@@ -2306,9 +2235,9 @@ __metadata:
linkType: hard linkType: hard
"electron-to-chromium@npm:^1.4.284": "electron-to-chromium@npm:^1.4.284":
version: 1.4.295 version: 1.4.315
resolution: "electron-to-chromium@npm:1.4.295" resolution: "electron-to-chromium@npm:1.4.315"
checksum: 66fff1341d3c94c2ccd1f2a39cffdb92118304f4b949d3194427e7022d6a6bd8c482b5c4afd9dce210117ba20cac01c1a1466089f5a862fe9c563113b86ff829 checksum: 9b1e9a43afe086aaed9af2a60076a409c0d6a0d9a9f4d0a293131763329c48c86198bda4020155c7ce53d2569840d49d51e8ce2405b6cd90000a77c1bd650ea5
languageName: node languageName: node
linkType: hard linkType: hard
@@ -3788,7 +3717,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"json5@npm:^1.0.1": "json5@npm:^1.0.2":
version: 1.0.2 version: 1.0.2
resolution: "json5@npm:1.0.2" resolution: "json5@npm:1.0.2"
dependencies: dependencies:
@@ -3923,9 +3852,9 @@ __metadata:
linkType: hard linkType: hard
"lru-cache@npm:^7.7.1": "lru-cache@npm:^7.7.1":
version: 7.14.1 version: 7.18.1
resolution: "lru-cache@npm:7.14.1" resolution: "lru-cache@npm:7.18.1"
checksum: d72c6713c6a6d86836a7a6523b3f1ac6764768cca47ec99341c3e76db06aacd4764620e5e2cda719a36848785a52a70e531822dc2b33fb071fa709683746c104 checksum: ab0ec1360c552f1ffa54b1eaf0026126c5116a07bee156b92d1e971f4c8c88e9160f0fad4ab6fed4e0fdea84f25a4590ece085bc57ed9ab1d90b17f0b138c556
languageName: node languageName: node
linkType: hard linkType: hard
@@ -4086,9 +4015,9 @@ __metadata:
linkType: hard linkType: hard
"minipass@npm:^4.0.0": "minipass@npm:^4.0.0":
version: 4.0.3 version: 4.2.4
resolution: "minipass@npm:4.0.3" resolution: "minipass@npm:4.2.4"
checksum: a09f405e2f380ae7f6ee0cbb53b45c1fcc1b6c70fc3896f4d20649d92a10e61892c57bd9960a64cedf6c90b50022cb6c195905b515039c335b423202f99e6f18 checksum: c664f2ae4401408d1e7a6e4f50aca45f87b1b0634bc9261136df5c378e313e77355765f73f59c4a5abcadcdf43d83fcd3eb14e4a7cdcce8e36508e2290345753
languageName: node languageName: node
linkType: hard linkType: hard
@@ -4111,14 +4040,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ms@npm:2.1.2": "ms@npm:2.1.2, ms@npm:^2.1.1":
version: 2.1.2 version: 2.1.2
resolution: "ms@npm:2.1.2" resolution: "ms@npm:2.1.2"
checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f
languageName: node languageName: node
linkType: hard linkType: hard
"ms@npm:^2.0.0, ms@npm:^2.1.1": "ms@npm:^2.0.0":
version: 2.1.3 version: 2.1.3
resolution: "ms@npm:2.1.3" resolution: "ms@npm:2.1.3"
checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
@@ -4400,13 +4329,13 @@ __metadata:
linkType: hard linkType: hard
"open@npm:^8.4.0": "open@npm:^8.4.0":
version: 8.4.1 version: 8.4.2
resolution: "open@npm:8.4.1" resolution: "open@npm:8.4.2"
dependencies: dependencies:
define-lazy-prop: ^2.0.0 define-lazy-prop: ^2.0.0
is-docker: ^2.1.1 is-docker: ^2.1.1
is-wsl: ^2.2.0 is-wsl: ^2.2.0
checksum: dbe8e1d98889df60b5179eab8b94b9591744d1f0033bce1a9a10738ba140bd9d625d6bcde7ff9f043e379aafb918975c2daa03b87cef13eb046ac18ed807f06d checksum: 6388bfff21b40cb9bd8f913f9130d107f2ed4724ea81a8fd29798ee322b361ca31fa2cdfb491a5c31e43a3996cfe9566741238c7a741ada8d7af1cb78d85cf26
languageName: node languageName: node
linkType: hard linkType: hard
@@ -4777,13 +4706,13 @@ __metadata:
linkType: hard linkType: hard
"readable-stream@npm:^3.6.0": "readable-stream@npm:^3.6.0":
version: 3.6.0 version: 3.6.1
resolution: "readable-stream@npm:3.6.0" resolution: "readable-stream@npm:3.6.1"
dependencies: dependencies:
inherits: ^2.0.3 inherits: ^2.0.3
string_decoder: ^1.1.1 string_decoder: ^1.1.1
util-deprecate: ^1.0.1 util-deprecate: ^1.0.1
checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8 checksum: b7ab0508dba3c37277b9e43c0a970ea27635375698859a687f558c3c9393154b6c4f39c3aa5689641de183fffa26771bc1a45878ddde0236ad18fc8fdfde50ea
languageName: node languageName: node
linkType: hard linkType: hard
@@ -4932,8 +4861,8 @@ __metadata:
linkType: hard linkType: hard
"rollup@npm:^3.10.0": "rollup@npm:^3.10.0":
version: 3.15.0 version: 3.18.0
resolution: "rollup@npm:3.15.0" resolution: "rollup@npm:3.18.0"
dependencies: dependencies:
fsevents: ~2.3.2 fsevents: ~2.3.2
dependenciesMeta: dependenciesMeta:
@@ -4941,7 +4870,7 @@ __metadata:
optional: true optional: true
bin: bin:
rollup: dist/bin/rollup rollup: dist/bin/rollup
checksum: 1a75b09503f705b594dcfebf65b9e1ca4536e3facdf5716e10d4272697b4bb7e6bd8ab35be1b3fe1271f864d4c4a75d012bd77cbe7a55579d5138258b9e85c23 checksum: 0bcd1abb1cc383abdd09b5594de862ecb2f946e950954bb472a370289bdc4499aea8d04477be55ce205450d973d38ad255f0dc6926162500a251d73bf0e60e6f
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5428,8 +5357,8 @@ __metadata:
linkType: hard linkType: hard
"tsconfck@npm:^2.0.1": "tsconfck@npm:^2.0.1":
version: 2.0.2 version: 2.0.3
resolution: "tsconfck@npm:2.0.2" resolution: "tsconfck@npm:2.0.3"
peerDependencies: peerDependencies:
typescript: ^4.3.5 typescript: ^4.3.5
peerDependenciesMeta: peerDependenciesMeta:
@@ -5437,19 +5366,19 @@ __metadata:
optional: true optional: true
bin: bin:
tsconfck: bin/tsconfck.js tsconfck: bin/tsconfck.js
checksum: bc914042b2f5e1f9d7bbadd05b74031f32e2f1757061743d70d86d17dda0734d838e67abb0105b81db67c30b66496e5d408cbe216bb43b3d567a181b0448ddc1 checksum: 557060017e35cb45281134568ad64f15fe1702c318c3cfba18d49f7c66f964981f19d5c493ca1848edab31f71aeaade305ae485eb6b11c8fb40fda593f3f4998
languageName: node languageName: node
linkType: hard linkType: hard
"tsconfig-paths@npm:^3.14.1": "tsconfig-paths@npm:^3.14.1":
version: 3.14.1 version: 3.14.2
resolution: "tsconfig-paths@npm:3.14.1" resolution: "tsconfig-paths@npm:3.14.2"
dependencies: dependencies:
"@types/json5": ^0.0.29 "@types/json5": ^0.0.29
json5: ^1.0.1 json5: ^1.0.2
minimist: ^1.2.6 minimist: ^1.2.6
strip-bom: ^3.0.0 strip-bom: ^3.0.0
checksum: 8afa01c673ebb4782ba53d3a12df97fa837ce524f8ad38ee4e2b2fd57f5ac79abc21c574e9e9eb014d93efe7fe8214001b96233b5c6ea75bd1ea82afe17a4c6d checksum: a6162eaa1aed680537f93621b82399c7856afd10ec299867b13a0675e981acac4e0ec00896860480efc59fc10fd0b16fdc928c0b885865b52be62cadac692447
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5805,8 +5734,8 @@ __metadata:
linkType: hard linkType: hard
"yargs@npm:^17.5.1": "yargs@npm:^17.5.1":
version: 17.6.2 version: 17.7.1
resolution: "yargs@npm:17.6.2" resolution: "yargs@npm:17.7.1"
dependencies: dependencies:
cliui: ^8.0.1 cliui: ^8.0.1
escalade: ^3.1.1 escalade: ^3.1.1
@@ -5815,7 +5744,7 @@ __metadata:
string-width: ^4.2.3 string-width: ^4.2.3
y18n: ^5.0.5 y18n: ^5.0.5
yargs-parser: ^21.1.1 yargs-parser: ^21.1.1
checksum: 47da1b0d854fa16d45a3ded57b716b013b2179022352a5f7467409da5a04a1eef5b3b3d97a2dfc13e8bbe5f2ffc0afe3bc6a4a72f8254e60f5a4bd7947138643 checksum: 3d8a43c336a4942bc68080768664aca85c7bd406f018bad362fd255c41c8f4e650277f42fd65d543fce99e084124ddafee7bbfc1a5c6a8fda4cec78609dcf8d4
languageName: node languageName: node
linkType: hard linkType: hard

View File

@@ -603,40 +603,40 @@ const emsesp_devicedata_4 = {
let emsesp_schedule = { let emsesp_schedule = {
schedule: [ schedule: [
{ {
id: '1', id: 'hc1_on',
active: true, active: true,
flags: 31, flags: 31,
time: '07:30', time: '07:30',
cmd: 'hc1/mode', cmd: 'hc1/mode',
value: 'day', value: 'day',
desc: 'Turn on central heating in morning' description: 'Turn on central heating in morning'
}, },
{ {
id: '2', id: 'hc1_off',
active: true, active: true,
flags: 31, flags: 31,
time: '23:00', time: '23:00',
cmd: 'hc1/mode', cmd: 'hc1/mode',
value: 'night', value: 'night',
desc: 'Turn off central heating for the night' description: 'Turn off central heating for the night'
}, },
{ {
id: '3', id: 'set_roomtemp',
active: true, active: true,
flags: 128, flags: 128,
time: '00:01', time: '00:01',
cmd: 'thermostat/hc2/seltemp', cmd: 'thermostat/hc2/seltemp',
value: '20', value: '20',
desc: 'Force thermostat temperature to 20 degrees every minute' description: 'Force thermostat temperature to 20 degrees every minute'
}, },
{ {
id: '4', id: 'restart',
active: false, active: false,
flags: 1, flags: 1,
time: '04:00', time: '04:00',
cmd: 'system/restart', cmd: 'system/restart',
value: '', value: '',
desc: 'auto restart EMS-EPS at 4am every Sunday' description: 'auto restart EMS-EPS at 4am every Sunday'
} }
] ]
}; };

View File

@@ -1 +1 @@
#define EMSESP_APP_VERSION "3.6.0-dev.1" #define EMSESP_APP_VERSION "3.6.0-dev.2"

View File

@@ -36,11 +36,9 @@ void WebSchedulerService::begin() {
// this creates the scheduler file, saving it to the FS // this creates the scheduler file, saving it to the FS
void WebScheduler::read(WebScheduler & webScheduler, JsonObject & root) { void WebScheduler::read(WebScheduler & webScheduler, JsonObject & root) {
JsonArray schedule = root.createNestedArray("schedule"); JsonArray schedule = root.createNestedArray("schedule");
uint8_t count = 0;
char s[3];
for (const ScheduleItem & scheduleItem : webScheduler.scheduleItems) { for (const ScheduleItem & scheduleItem : webScheduler.scheduleItems) {
JsonObject si = schedule.createNestedObject(); JsonObject si = schedule.createNestedObject();
si["id"] = Helpers::smallitoa(s, count++); // create unique ID as a string si["id"] = scheduleItem.id; // name, is unqiue
si["active"] = scheduleItem.active; si["active"] = scheduleItem.active;
si["flags"] = scheduleItem.flags; si["flags"] = scheduleItem.flags;
si["time"] = scheduleItem.time; si["time"] = scheduleItem.time;
@@ -55,8 +53,8 @@ void WebScheduler::read(WebScheduler & webScheduler, JsonObject & root) {
StateUpdateResult WebScheduler::update(JsonObject & root, WebScheduler & webScheduler) { StateUpdateResult WebScheduler::update(JsonObject & root, WebScheduler & webScheduler) {
#ifdef EMSESP_STANDALONE #ifdef EMSESP_STANDALONE
// invoke some fake data for testing // invoke some fake data for testing
const char * json = const char * json = "{[{\"id\":\"test1\",\"active\":true,\"flags\":31,\"time\": \"07:30\",\"cmd\": \"hc1/mode\",\"value\": \"day\",\"description\": \"turn "
"{[{\"active\":true,\"flags\":31,\"time\": \"07:30\",\"cmd\": \"hc1/mode\",\"value\": \"day\",\"description\": \"turn on central heating\"}]}"; "on central heating\"}]}";
StaticJsonDocument<500> doc; StaticJsonDocument<500> doc;
deserializeJson(doc, json); deserializeJson(doc, json);
root = doc.as<JsonObject>(); root = doc.as<JsonObject>();

View File

@@ -29,7 +29,7 @@ namespace emsesp {
class ScheduleItem { class ScheduleItem {
public: public:
std::string id; // unqiue id std::string id; // unqiue id, is the name
boolean active; boolean active;
uint8_t flags; uint8_t flags;
uint16_t elapsed_min; // total mins from 00:00 uint16_t elapsed_min; // total mins from 00:00