esa-cli 1.0.9 → 1.0.11

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.
Files changed (42) hide show
  1. package/README.md +206 -22
  2. package/bin/enter.cjs +45 -12
  3. package/dist/bin/enter.cjs +45 -12
  4. package/dist/commands/commit/index.js +5 -4
  5. package/dist/commands/deployments/delete.js +1 -1
  6. package/dist/commands/deployments/list.js +1 -1
  7. package/dist/commands/dev/build.js +4 -1
  8. package/dist/commands/dev/doProcess.js +94 -36
  9. package/dist/commands/domain/add.js +1 -1
  10. package/dist/commands/domain/delete.js +2 -3
  11. package/dist/commands/domain/list.js +1 -1
  12. package/dist/commands/init/helper.js +12 -8
  13. package/dist/commands/init/index.js +3 -4
  14. package/dist/commands/login/index.js +108 -5
  15. package/dist/commands/logout.js +11 -4
  16. package/dist/commands/route/add.js +1 -1
  17. package/dist/commands/route/delete.js +1 -1
  18. package/dist/commands/route/list.js +1 -1
  19. package/dist/commands/routine/delete.js +1 -2
  20. package/dist/commands/routine/list.js +1 -1
  21. package/dist/commands/site/list.js +1 -1
  22. package/dist/commands/utils.js +21 -19
  23. package/dist/components/mutiSelectTable.js +16 -83
  24. package/dist/components/routeBuilder.js +30 -54
  25. package/dist/components/selectInput.js +27 -13
  26. package/dist/docs/Commands_en.md +14 -2
  27. package/dist/docs/Commands_zh_CN.md +11 -1
  28. package/dist/i18n/locales.json +25 -1
  29. package/dist/index.js +8 -3
  30. package/dist/libs/api.js +4 -15
  31. package/dist/libs/apiService.js +8 -14
  32. package/dist/libs/logger.js +7 -2
  33. package/dist/utils/fileMd5.js +13 -3
  34. package/dist/utils/fileUtils/base.js +14 -18
  35. package/dist/utils/fileUtils/index.js +25 -3
  36. package/dist/utils/validateCredentials.js +12 -16
  37. package/package.json +18 -20
  38. package/zh_CN.md +2 -2
  39. package/dist/components/descriptionInput.js +0 -38
  40. package/dist/components/filterSelector.js +0 -132
  41. package/dist/components/selectItem.js +0 -6
  42. package/dist/components/yesNoPrompt.js +0 -9
@@ -1,132 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { Box, render, Text, useInput } from 'ink';
11
- import TextInput from 'ink-text-input';
12
- import React, { useState, useEffect } from 'react';
13
- import t from '../i18n/index.js';
14
- export const FilterSelector = ({ data, onSubmit, hideCount = 20 }) => {
15
- const [inputValue, setInputValue] = useState('');
16
- const [filteredData, setFilteredData] = useState(data);
17
- const [isShowFilteredData, setIsShowFilteredData] = useState(false);
18
- const [isSelectionMode, setIsSelectionMode] = useState(false);
19
- const [selectedIndex, setSelectedIndex] = useState(-1);
20
- const [tabPressCount, setTabPressCount] = useState(0);
21
- const [showAll, setShowAll] = useState(false);
22
- useEffect(() => {
23
- if (showAll && !isSelectionMode) {
24
- setFilteredData(data.filter((site) => site.label.includes(inputValue)));
25
- }
26
- }, [inputValue, data]);
27
- const handleSubmit = () => {
28
- onSubmit(inputValue);
29
- };
30
- useInput((input, key) => {
31
- if (key.return && isSelectionMode && filteredData[selectedIndex]) {
32
- setInputValue(filteredData[selectedIndex].label);
33
- setIsSelectionMode(false);
34
- setIsShowFilteredData(false);
35
- setSelectedIndex(-1);
36
- setTabPressCount(0);
37
- }
38
- else if (key.tab) {
39
- if (tabPressCount === 0) {
40
- const filteredDataInner = data.filter((site) => site.label.includes(inputValue));
41
- setFilteredData(filteredDataInner);
42
- if (filteredData.length === 1) {
43
- setIsShowFilteredData(false);
44
- setInputValue(filteredDataInner[0].label);
45
- setSelectedIndex(0);
46
- }
47
- else {
48
- setIsShowFilteredData(true);
49
- }
50
- }
51
- else if (tabPressCount === 1) {
52
- const filteredDataInner = data.filter((site) => site.label.includes(inputValue));
53
- setFilteredData(filteredDataInner);
54
- // Enter selection mode when match results >= 1
55
- if ((filteredDataInner.length >= 1 &&
56
- showAll &&
57
- filteredDataInner.length > hideCount) ||
58
- (filteredDataInner.length >= 1 &&
59
- filteredDataInner.length <= hideCount)) {
60
- setIsSelectionMode(true);
61
- setSelectedIndex(0);
62
- setInputValue(filteredDataInner[0].label);
63
- }
64
- }
65
- else if (tabPressCount >= 2 &&
66
- isSelectionMode &&
67
- (showAll || filteredData.length <= hideCount) &&
68
- filteredData.length > 1) {
69
- setSelectedIndex((prevIndex) => (prevIndex + 1) % filteredData.length);
70
- setInputValue(filteredData[(selectedIndex + 1) % filteredData.length].label);
71
- }
72
- setTabPressCount((prevCount) => prevCount + 1);
73
- }
74
- else if (key.downArrow && isSelectionMode) {
75
- setSelectedIndex((prevIndex) => (prevIndex + 1) % filteredData.length);
76
- setInputValue(filteredData[(selectedIndex + 1) % filteredData.length].label);
77
- }
78
- else if (key.upArrow && isSelectionMode) {
79
- setSelectedIndex((prevIndex) => (prevIndex - 1 + filteredData.length) % filteredData.length);
80
- setInputValue(filteredData[(selectedIndex - 1 + filteredData.length) % filteredData.length].label);
81
- }
82
- else if (key.leftArrow || key.rightArrow) {
83
- }
84
- else if (key.return) {
85
- handleSubmit();
86
- setTabPressCount(0);
87
- }
88
- else if (input === 'y' &&
89
- !showAll &&
90
- isShowFilteredData &&
91
- (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) > hideCount) {
92
- setShowAll(true);
93
- setIsSelectionMode(true);
94
- }
95
- else {
96
- setIsSelectionMode(false);
97
- setIsShowFilteredData(false);
98
- setSelectedIndex(-1);
99
- setTabPressCount(0);
100
- setShowAll(false);
101
- }
102
- });
103
- const renderFilterData = () => {
104
- return ((showAll || filteredData.length <= hideCount) &&
105
- filteredData.length > 1 && (React.createElement(React.Fragment, null,
106
- React.createElement(Text, null, `👉 ${t('route_add_tab_tip').d('Press Tab to select')}`),
107
- filteredData.map((item, index) => (React.createElement(Text, { key: index, inverse: index === selectedIndex }, item.label))))));
108
- };
109
- return (React.createElement(Box, { flexDirection: "column" },
110
- React.createElement(TextInput, { value: inputValue, highlightPastedText: true, onChange: (value) => {
111
- if (!showAll &&
112
- value[value.length - 1] === 'y' &&
113
- tabPressCount === 1) {
114
- return;
115
- }
116
- setInputValue(value);
117
- } }),
118
- isShowFilteredData && (React.createElement(React.Fragment, null,
119
- filteredData.length > hideCount && !showAll && (React.createElement(Text, null, t('route_add_see_more').d(`Do you wish to see all ${filteredData.length} possibilities? (y/n)`))),
120
- renderFilterData()))));
121
- };
122
- export const promptFilterSelector = (siteList) => __awaiter(void 0, void 0, void 0, function* () {
123
- return new Promise((resolve) => {
124
- const { unmount } = render(React.createElement(FilterSelector, { onSubmit: (input) => {
125
- unmount();
126
- resolve(siteList.find((site) => site.label === input) || {
127
- label: '',
128
- value: ''
129
- });
130
- }, data: siteList }));
131
- });
132
- });
@@ -1,6 +0,0 @@
1
- import { Text } from 'ink';
2
- import * as React from 'react';
3
- function Item({ isSelected = false, label }) {
4
- return React.createElement(Text, { color: isSelected ? 'green' : undefined }, label);
5
- }
6
- export default Item;
@@ -1,9 +0,0 @@
1
- import SelectItems from './selectInput.js';
2
- const yesNoItems = [
3
- { label: 'Yes', value: 'yes' },
4
- { label: 'No', value: 'no' }
5
- ];
6
- export const yesNoPrompt = (handleSelect, title) => {
7
- console.log(title);
8
- SelectItems({ items: yesNoItems, handleSelect });
9
- };