devicely 2.1.7 → 2.1.8
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/lib/scriptLoader.js +2 -2
- package/lib/server.js +51 -17
- package/package.json +1 -1
- package/scripts/shell/android_device_control.enc +1 -0
- package/scripts/shell/connect_android_usb_multi_final.enc +1 -0
- package/scripts/shell/connect_android_wireless.enc +1 -0
- package/scripts/shell/connect_android_wireless_multi_final.enc +1 -0
- package/scripts/shell/connect_ios_usb_multi_final.enc +1 -0
- package/scripts/shell/connect_ios_wireless_multi_final.enc +1 -0
- package/scripts/shell/ios_device_control.enc +1 -0
- package/scripts/shell/android_device_control.sh +0 -848
- package/scripts/shell/connect_android_usb_multi_final.sh +0 -289
- package/scripts/shell/connect_android_wireless.sh +0 -58
- package/scripts/shell/connect_android_wireless_multi_final.sh +0 -476
- package/scripts/shell/connect_ios_usb_multi_final.sh +0 -4225
- package/scripts/shell/connect_ios_wireless_multi_final.sh +0 -4167
- package/scripts/shell/create_production_scripts.sh +0 -38
- package/scripts/shell/install_uiautomator2.sh +0 -93
- package/scripts/shell/ios_device_control.sh +0 -220
- package/scripts/shell/organize_project.sh +0 -59
- package/scripts/shell/pre-publish-check.sh +0 -238
- package/scripts/shell/publish-to-npm.sh +0 -366
- package/scripts/shell/publish.sh +0 -100
- package/scripts/shell/setup.sh +0 -121
- package/scripts/shell/start.sh +0 -59
- package/scripts/shell/sync-to-npm-package-final.sh +0 -60
- package/scripts/shell/test-local-package.sh +0 -95
- package/scripts/shell/verify-shell-protection.sh +0 -73
|
@@ -1,366 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
###############################################################################
|
|
4
|
-
# NPM Publish Script
|
|
5
|
-
# Handles version bumping and publishing to NPM with full build pipeline
|
|
6
|
-
###############################################################################
|
|
7
|
-
|
|
8
|
-
set -e
|
|
9
|
-
|
|
10
|
-
# Colors
|
|
11
|
-
RED='\033[0;31m'
|
|
12
|
-
GREEN='\033[0;32m'
|
|
13
|
-
YELLOW='\033[1;33m'
|
|
14
|
-
BLUE='\033[0;34m'
|
|
15
|
-
CYAN='\033[0;36m'
|
|
16
|
-
MAGENTA='\033[0;35m'
|
|
17
|
-
NC='\033[0m' # No Color
|
|
18
|
-
|
|
19
|
-
# Directories
|
|
20
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
21
|
-
NPM_PKG_DIR="$SCRIPT_DIR/npm-package"
|
|
22
|
-
DIST_DIR="$NPM_PKG_DIR/dist"
|
|
23
|
-
|
|
24
|
-
# Banner
|
|
25
|
-
echo -e "${CYAN}"
|
|
26
|
-
cat << "EOF"
|
|
27
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
28
|
-
____ _ __
|
|
29
|
-
/ __ \___ __ __(_)____ / /_ __
|
|
30
|
-
/ / / / _ \ | | / / / ___/ / / / / /
|
|
31
|
-
/ /_/ / __/ | |/ / / / / / /_/ /
|
|
32
|
-
\____/\___/ |___/_/_/ /_/\__, /
|
|
33
|
-
/____/
|
|
34
|
-
|
|
35
|
-
NPM PUBLISH AUTOMATION SCRIPT
|
|
36
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
37
|
-
EOF
|
|
38
|
-
echo -e "${NC}"
|
|
39
|
-
|
|
40
|
-
# Function to show usage
|
|
41
|
-
show_usage() {
|
|
42
|
-
echo -e "${YELLOW}Usage:${NC}"
|
|
43
|
-
echo " $0 [patch|minor|major] [--dry-run] [--skip-tests]"
|
|
44
|
-
echo ""
|
|
45
|
-
echo -e "${YELLOW}Version Types:${NC}"
|
|
46
|
-
echo " patch - Bug fixes (1.0.0 -> 1.0.1)"
|
|
47
|
-
echo " minor - New features (1.0.0 -> 1.1.0)"
|
|
48
|
-
echo " major - Breaking changes (1.0.0 -> 2.0.0)"
|
|
49
|
-
echo ""
|
|
50
|
-
echo -e "${YELLOW}Options:${NC}"
|
|
51
|
-
echo " --dry-run - Run without actually publishing"
|
|
52
|
-
echo " --skip-tests - Skip test validation"
|
|
53
|
-
echo ""
|
|
54
|
-
echo -e "${YELLOW}Examples:${NC}"
|
|
55
|
-
echo " $0 patch # Publish patch version"
|
|
56
|
-
echo " $0 minor # Publish minor version"
|
|
57
|
-
echo " $0 major # Publish major version"
|
|
58
|
-
echo " $0 patch --dry-run # Test the process without publishing"
|
|
59
|
-
exit 1
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
# Parse arguments
|
|
63
|
-
VERSION_TYPE=""
|
|
64
|
-
DRY_RUN=false
|
|
65
|
-
SKIP_TESTS=false
|
|
66
|
-
|
|
67
|
-
while [[ $# -gt 0 ]]; do
|
|
68
|
-
case $1 in
|
|
69
|
-
patch|minor|major)
|
|
70
|
-
VERSION_TYPE="$1"
|
|
71
|
-
shift
|
|
72
|
-
;;
|
|
73
|
-
--dry-run)
|
|
74
|
-
DRY_RUN=true
|
|
75
|
-
shift
|
|
76
|
-
;;
|
|
77
|
-
--skip-tests)
|
|
78
|
-
SKIP_TESTS=true
|
|
79
|
-
shift
|
|
80
|
-
;;
|
|
81
|
-
-h|--help)
|
|
82
|
-
show_usage
|
|
83
|
-
;;
|
|
84
|
-
*)
|
|
85
|
-
echo -e "${RED}❌ Unknown argument: $1${NC}"
|
|
86
|
-
show_usage
|
|
87
|
-
;;
|
|
88
|
-
esac
|
|
89
|
-
done
|
|
90
|
-
|
|
91
|
-
# Validate version type
|
|
92
|
-
if [[ -z "$VERSION_TYPE" ]]; then
|
|
93
|
-
echo -e "${RED}❌ Error: Version type is required${NC}\n"
|
|
94
|
-
show_usage
|
|
95
|
-
fi
|
|
96
|
-
|
|
97
|
-
# Header
|
|
98
|
-
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
99
|
-
echo -e "${CYAN}📦 Publishing Devicely to NPM${NC}"
|
|
100
|
-
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
101
|
-
echo ""
|
|
102
|
-
echo -e "${YELLOW}Version Type:${NC} $VERSION_TYPE"
|
|
103
|
-
echo -e "${YELLOW}Dry Run:${NC} $DRY_RUN"
|
|
104
|
-
echo -e "${YELLOW}Skip Tests:${NC} $SKIP_TESTS"
|
|
105
|
-
echo ""
|
|
106
|
-
|
|
107
|
-
# Function to run step
|
|
108
|
-
run_step() {
|
|
109
|
-
local step_num=$1
|
|
110
|
-
local step_name=$2
|
|
111
|
-
local step_desc=$3
|
|
112
|
-
|
|
113
|
-
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
114
|
-
echo -e "${CYAN}Step $step_num: $step_name${NC}"
|
|
115
|
-
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
116
|
-
[[ -n "$step_desc" ]] && echo -e "${YELLOW}$step_desc${NC}"
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
# Step 1: Pre-flight checks
|
|
120
|
-
run_step 1 "Pre-flight Checks" "Verifying environment and dependencies"
|
|
121
|
-
|
|
122
|
-
# Check if npm is installed
|
|
123
|
-
if ! command -v npm &> /dev/null; then
|
|
124
|
-
echo -e "${RED}❌ npm is not installed${NC}"
|
|
125
|
-
exit 1
|
|
126
|
-
fi
|
|
127
|
-
echo -e "${GREEN}✅ npm found: $(npm --version)${NC}"
|
|
128
|
-
|
|
129
|
-
# Check if node is installed
|
|
130
|
-
if ! command -v node &> /dev/null; then
|
|
131
|
-
echo -e "${RED}❌ node is not installed${NC}"
|
|
132
|
-
exit 1
|
|
133
|
-
fi
|
|
134
|
-
echo -e "${GREEN}✅ node found: $(node --version)${NC}"
|
|
135
|
-
|
|
136
|
-
# Check if git is clean
|
|
137
|
-
if [[ -n $(git status --porcelain 2>/dev/null) ]]; then
|
|
138
|
-
echo -e "${YELLOW}⚠️ Warning: You have uncommitted changes${NC}"
|
|
139
|
-
read -p "Continue anyway? (y/N): " -n 1 -r
|
|
140
|
-
echo
|
|
141
|
-
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
142
|
-
echo -e "${RED}❌ Aborted${NC}"
|
|
143
|
-
exit 1
|
|
144
|
-
fi
|
|
145
|
-
fi
|
|
146
|
-
|
|
147
|
-
# Check NPM authentication
|
|
148
|
-
echo -e "\n${CYAN}Checking NPM authentication...${NC}"
|
|
149
|
-
if ! npm whoami &> /dev/null; then
|
|
150
|
-
echo -e "${RED}❌ You are not logged in to NPM${NC}"
|
|
151
|
-
echo -e "${YELLOW}Please run: npm login${NC}"
|
|
152
|
-
exit 1
|
|
153
|
-
fi
|
|
154
|
-
echo -e "${GREEN}✅ Logged in as: $(npm whoami)${NC}"
|
|
155
|
-
|
|
156
|
-
# Get current version
|
|
157
|
-
CURRENT_VERSION=$(node -p "require('$NPM_PKG_DIR/package.json').version")
|
|
158
|
-
echo -e "\n${CYAN}Current version:${NC} $CURRENT_VERSION"
|
|
159
|
-
|
|
160
|
-
# Calculate new version
|
|
161
|
-
case $VERSION_TYPE in
|
|
162
|
-
patch)
|
|
163
|
-
NEW_VERSION=$(npm version patch --no-git-tag-version --prefix "$NPM_PKG_DIR" 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' || echo "")
|
|
164
|
-
;;
|
|
165
|
-
minor)
|
|
166
|
-
NEW_VERSION=$(npm version minor --no-git-tag-version --prefix "$NPM_PKG_DIR" 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' || echo "")
|
|
167
|
-
;;
|
|
168
|
-
major)
|
|
169
|
-
NEW_VERSION=$(npm version major --no-git-tag-version --prefix "$NPM_PKG_DIR" 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' || echo "")
|
|
170
|
-
;;
|
|
171
|
-
esac
|
|
172
|
-
|
|
173
|
-
# If npm version failed, calculate manually
|
|
174
|
-
if [[ -z "$NEW_VERSION" ]]; then
|
|
175
|
-
IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION"
|
|
176
|
-
case $VERSION_TYPE in
|
|
177
|
-
patch)
|
|
178
|
-
NEW_VERSION="${VERSION_PARTS[0]}.${VERSION_PARTS[1]}.$((VERSION_PARTS[2] + 1))"
|
|
179
|
-
;;
|
|
180
|
-
minor)
|
|
181
|
-
NEW_VERSION="${VERSION_PARTS[0]}.$((VERSION_PARTS[1] + 1)).0"
|
|
182
|
-
;;
|
|
183
|
-
major)
|
|
184
|
-
NEW_VERSION="$((VERSION_PARTS[0] + 1)).0.0"
|
|
185
|
-
;;
|
|
186
|
-
esac
|
|
187
|
-
# Update package.json manually
|
|
188
|
-
node -e "const pkg = require('$NPM_PKG_DIR/package.json'); pkg.version = '$NEW_VERSION'; require('fs').writeFileSync('$NPM_PKG_DIR/package.json', JSON.stringify(pkg, null, 2) + '\n');"
|
|
189
|
-
fi
|
|
190
|
-
|
|
191
|
-
echo -e "${GREEN}✅ New version:${NC} ${MAGENTA}$NEW_VERSION${NC}"
|
|
192
|
-
echo ""
|
|
193
|
-
|
|
194
|
-
# Confirmation
|
|
195
|
-
if [[ "$DRY_RUN" == false ]]; then
|
|
196
|
-
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
197
|
-
echo -e "${YELLOW}⚠️ You are about to publish:${NC}"
|
|
198
|
-
echo -e "${YELLOW} Package: ${NC}${MAGENTA}devicely${NC}"
|
|
199
|
-
echo -e "${YELLOW} Version: ${NC}${MAGENTA}$CURRENT_VERSION → $NEW_VERSION${NC}"
|
|
200
|
-
echo -e "${YELLOW} Type: ${NC}${MAGENTA}$VERSION_TYPE${NC}"
|
|
201
|
-
echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
202
|
-
read -p "Continue? (y/N): " -n 1 -r
|
|
203
|
-
echo
|
|
204
|
-
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
205
|
-
echo -e "${RED}❌ Aborted${NC}"
|
|
206
|
-
# Revert version change
|
|
207
|
-
node -e "const pkg = require('$NPM_PKG_DIR/package.json'); pkg.version = '$CURRENT_VERSION'; require('fs').writeFileSync('$NPM_PKG_DIR/package.json', JSON.stringify(pkg, null, 2) + '\n');"
|
|
208
|
-
exit 1
|
|
209
|
-
fi
|
|
210
|
-
fi
|
|
211
|
-
|
|
212
|
-
# Step 2: Sync changes to npm-package
|
|
213
|
-
run_step 2 "Sync Changes" "Syncing from main project to npm-package"
|
|
214
|
-
cd "$SCRIPT_DIR"
|
|
215
|
-
if [[ -f "./sync-to-npm-package.sh" ]]; then
|
|
216
|
-
echo -e "${CYAN}Running sync script...${NC}"
|
|
217
|
-
./sync-to-npm-package.sh
|
|
218
|
-
echo -e "${GREEN}✅ Sync complete${NC}"
|
|
219
|
-
else
|
|
220
|
-
echo -e "${YELLOW}⚠️ No sync script found, skipping...${NC}"
|
|
221
|
-
fi
|
|
222
|
-
|
|
223
|
-
# Update version in npm-package after sync (in case sync overwrote it)
|
|
224
|
-
node -e "const pkg = require('$NPM_PKG_DIR/package.json'); pkg.version = '$NEW_VERSION'; require('fs').writeFileSync('$NPM_PKG_DIR/package.json', JSON.stringify(pkg, null, 2) + '\n');"
|
|
225
|
-
|
|
226
|
-
# Step 3: Run tests
|
|
227
|
-
if [[ "$SKIP_TESTS" == false ]]; then
|
|
228
|
-
run_step 3 "Run Tests" "Validating functionality"
|
|
229
|
-
|
|
230
|
-
# Check if test script exists
|
|
231
|
-
if [[ -f "$SCRIPT_DIR/test_fixes.sh" ]]; then
|
|
232
|
-
echo -e "${CYAN}Running tests...${NC}"
|
|
233
|
-
cd "$SCRIPT_DIR"
|
|
234
|
-
if ./test_fixes.sh > /dev/null 2>&1; then
|
|
235
|
-
echo -e "${GREEN}✅ Tests passed${NC}"
|
|
236
|
-
else
|
|
237
|
-
echo -e "${YELLOW}⚠️ Some tests may have failed, but continuing...${NC}"
|
|
238
|
-
fi
|
|
239
|
-
else
|
|
240
|
-
echo -e "${YELLOW}⚠️ No test script found, skipping...${NC}"
|
|
241
|
-
fi
|
|
242
|
-
else
|
|
243
|
-
echo -e "${YELLOW}⚠️ Skipping tests as requested${NC}"
|
|
244
|
-
fi
|
|
245
|
-
|
|
246
|
-
# Step 4: Build obfuscated package
|
|
247
|
-
run_step 4 "Build Package" "Building obfuscated distribution"
|
|
248
|
-
|
|
249
|
-
cd "$NPM_PKG_DIR"
|
|
250
|
-
echo -e "${CYAN}Running build:obfuscated...${NC}"
|
|
251
|
-
npm run build:obfuscated
|
|
252
|
-
|
|
253
|
-
if [[ ! -d "$DIST_DIR" ]]; then
|
|
254
|
-
echo -e "${RED}❌ Build failed: dist directory not found${NC}"
|
|
255
|
-
exit 1
|
|
256
|
-
fi
|
|
257
|
-
echo -e "${GREEN}✅ Build complete${NC}"
|
|
258
|
-
|
|
259
|
-
# Verify compiled scripts
|
|
260
|
-
SCRIPT_COUNT=$(ls -1 "$DIST_DIR/scripts/shell" 2>/dev/null | wc -l)
|
|
261
|
-
echo -e "${GREEN}✅ Shell scripts compiled: $SCRIPT_COUNT files${NC}"
|
|
262
|
-
|
|
263
|
-
# Step 5: Verify package contents
|
|
264
|
-
run_step 5 "Verify Package" "Checking package contents"
|
|
265
|
-
|
|
266
|
-
cd "$DIST_DIR"
|
|
267
|
-
echo -e "${CYAN}Package contents:${NC}"
|
|
268
|
-
echo " 📁 lib/ - $(find lib -type f | wc -l | tr -d ' ') files"
|
|
269
|
-
echo " 📁 bin/ - $(find bin -type f | wc -l | tr -d ' ') files"
|
|
270
|
-
echo " 📁 scripts/ - $(find scripts -type f | wc -l | tr -d ' ') files"
|
|
271
|
-
echo " 📁 config/ - $(find config -type f | wc -l | tr -d ' ') files"
|
|
272
|
-
echo " 📁 frontend/ - $(find frontend -type f | wc -l | tr -d ' ') files"
|
|
273
|
-
|
|
274
|
-
# Verify version in dist
|
|
275
|
-
DIST_VERSION=$(node -p "require('./package.json').version")
|
|
276
|
-
if [[ "$DIST_VERSION" != "$NEW_VERSION" ]]; then
|
|
277
|
-
echo -e "${YELLOW}⚠️ Version mismatch detected, fixing...${NC}"
|
|
278
|
-
node -e "const pkg = require('./package.json'); pkg.version = '$NEW_VERSION'; require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\n');"
|
|
279
|
-
echo -e "${GREEN}✅ Version fixed: $NEW_VERSION${NC}"
|
|
280
|
-
else
|
|
281
|
-
echo -e "${GREEN}✅ Version verified: $NEW_VERSION${NC}"
|
|
282
|
-
fi
|
|
283
|
-
|
|
284
|
-
# Step 6: Test local installation (dry run)
|
|
285
|
-
run_step 6 "Test Installation" "Testing package locally"
|
|
286
|
-
|
|
287
|
-
echo -e "${CYAN}Creating test installation...${NC}"
|
|
288
|
-
TEST_DIR=$(mktemp -d)
|
|
289
|
-
cd "$TEST_DIR"
|
|
290
|
-
|
|
291
|
-
if npm pack "$DIST_DIR" > /dev/null 2>&1; then
|
|
292
|
-
PACKAGE_FILE=$(ls devicely-*.tgz)
|
|
293
|
-
echo -e "${GREEN}✅ Package created: $PACKAGE_FILE${NC}"
|
|
294
|
-
|
|
295
|
-
# Verify package size
|
|
296
|
-
SIZE=$(du -h "$PACKAGE_FILE" | cut -f1)
|
|
297
|
-
echo -e "${GREEN}✅ Package size: $SIZE${NC}"
|
|
298
|
-
|
|
299
|
-
# Clean up
|
|
300
|
-
rm -rf "$TEST_DIR"
|
|
301
|
-
else
|
|
302
|
-
echo -e "${RED}❌ Package creation failed${NC}"
|
|
303
|
-
rm -rf "$TEST_DIR"
|
|
304
|
-
exit 1
|
|
305
|
-
fi
|
|
306
|
-
|
|
307
|
-
# Step 7: Publish to NPM
|
|
308
|
-
if [[ "$DRY_RUN" == true ]]; then
|
|
309
|
-
run_step 7 "Dry Run Complete" "No changes were published"
|
|
310
|
-
echo -e "${GREEN}✅ Dry run completed successfully${NC}"
|
|
311
|
-
echo -e "${YELLOW}To publish for real, run without --dry-run flag${NC}"
|
|
312
|
-
else
|
|
313
|
-
run_step 7 "Publish to NPM" "Publishing package to registry"
|
|
314
|
-
|
|
315
|
-
cd "$DIST_DIR"
|
|
316
|
-
echo -e "${CYAN}Publishing to NPM...${NC}"
|
|
317
|
-
|
|
318
|
-
if npm publish --access public; then
|
|
319
|
-
echo -e "${GREEN}✅ Published successfully!${NC}"
|
|
320
|
-
|
|
321
|
-
# Step 8: Git tag and commit
|
|
322
|
-
run_step 8 "Git Operations" "Tagging and committing changes"
|
|
323
|
-
|
|
324
|
-
cd "$SCRIPT_DIR"
|
|
325
|
-
|
|
326
|
-
# Commit version change
|
|
327
|
-
git add "$NPM_PKG_DIR/package.json"
|
|
328
|
-
git commit -m "chore: bump version to $NEW_VERSION" || echo "No changes to commit"
|
|
329
|
-
|
|
330
|
-
# Create git tag
|
|
331
|
-
git tag -a "v$NEW_VERSION" -m "Release version $NEW_VERSION"
|
|
332
|
-
echo -e "${GREEN}✅ Created git tag: v$NEW_VERSION${NC}"
|
|
333
|
-
|
|
334
|
-
echo -e "\n${YELLOW}Don't forget to push:${NC}"
|
|
335
|
-
echo " git push origin main"
|
|
336
|
-
echo " git push origin v$NEW_VERSION"
|
|
337
|
-
|
|
338
|
-
# Step 9: Success summary
|
|
339
|
-
echo ""
|
|
340
|
-
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
341
|
-
echo -e "${GREEN}🎉 SUCCESS!${NC}"
|
|
342
|
-
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
343
|
-
echo ""
|
|
344
|
-
echo -e "${CYAN}Package published:${NC} ${MAGENTA}devicely@$NEW_VERSION${NC}"
|
|
345
|
-
echo -e "${CYAN}Registry:${NC} https://www.npmjs.com/package/devicely"
|
|
346
|
-
echo ""
|
|
347
|
-
echo -e "${YELLOW}Next steps:${NC}"
|
|
348
|
-
echo " 1. Push changes: git push origin main"
|
|
349
|
-
echo " 2. Push tag: git push origin v$NEW_VERSION"
|
|
350
|
-
echo " 3. Test installation: npm install -g devicely"
|
|
351
|
-
echo " 4. Verify: devicely --version"
|
|
352
|
-
echo " 5. Create GitHub release: https://github.com/sureshkumarm8/Devicely/releases/new"
|
|
353
|
-
echo ""
|
|
354
|
-
echo -e "${CYAN}Installation:${NC}"
|
|
355
|
-
echo " npm install -g devicely"
|
|
356
|
-
echo ""
|
|
357
|
-
|
|
358
|
-
else
|
|
359
|
-
echo -e "${RED}❌ Publish failed${NC}"
|
|
360
|
-
exit 1
|
|
361
|
-
fi
|
|
362
|
-
fi
|
|
363
|
-
|
|
364
|
-
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
365
|
-
echo -e "${GREEN}✨ All done!${NC}"
|
|
366
|
-
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
package/scripts/shell/publish.sh
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
###############################################################################
|
|
4
|
-
# QUICK PUBLISH HELPER
|
|
5
|
-
# Interactive wrapper for publish-to-npm.sh
|
|
6
|
-
###############################################################################
|
|
7
|
-
|
|
8
|
-
set -e
|
|
9
|
-
|
|
10
|
-
# Colors
|
|
11
|
-
RED='\033[0;31m'
|
|
12
|
-
GREEN='\033[0;32m'
|
|
13
|
-
YELLOW='\033[1;33m'
|
|
14
|
-
BLUE='\033[0;34m'
|
|
15
|
-
CYAN='\033[0;36m'
|
|
16
|
-
MAGENTA='\033[0;35m'
|
|
17
|
-
NC='\033[0m'
|
|
18
|
-
|
|
19
|
-
clear
|
|
20
|
-
|
|
21
|
-
echo -e "${CYAN}"
|
|
22
|
-
cat << "EOF"
|
|
23
|
-
╔════════════════════════════════════════════════╗
|
|
24
|
-
║ ║
|
|
25
|
-
║ 📦 NPM PUBLISH HELPER 📦 ║
|
|
26
|
-
║ ║
|
|
27
|
-
║ Quick Publish Menu ║
|
|
28
|
-
║ ║
|
|
29
|
-
╚════════════════════════════════════════════════╝
|
|
30
|
-
EOF
|
|
31
|
-
echo -e "${NC}"
|
|
32
|
-
|
|
33
|
-
# Get current version
|
|
34
|
-
CURRENT_VERSION=$(node -p "require('./npm-package/package.json').version" 2>/dev/null || echo "unknown")
|
|
35
|
-
echo -e "${YELLOW}Current Version:${NC} ${MAGENTA}$CURRENT_VERSION${NC}\n"
|
|
36
|
-
|
|
37
|
-
# Calculate potential versions
|
|
38
|
-
if [[ "$CURRENT_VERSION" != "unknown" ]]; then
|
|
39
|
-
IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION"
|
|
40
|
-
PATCH_VERSION="${VERSION_PARTS[0]}.${VERSION_PARTS[1]}.$((VERSION_PARTS[2] + 1))"
|
|
41
|
-
MINOR_VERSION="${VERSION_PARTS[0]}.$((VERSION_PARTS[1] + 1)).0"
|
|
42
|
-
MAJOR_VERSION="$((VERSION_PARTS[0] + 1)).0.0"
|
|
43
|
-
fi
|
|
44
|
-
|
|
45
|
-
echo -e "${CYAN}What type of release?${NC}\n"
|
|
46
|
-
echo -e "${GREEN}1)${NC} Patch - Bug fixes ${MAGENTA}($CURRENT_VERSION → $PATCH_VERSION)${NC}"
|
|
47
|
-
echo -e "${GREEN}2)${NC} Minor - New features ${MAGENTA}($CURRENT_VERSION → $MINOR_VERSION)${NC}"
|
|
48
|
-
echo -e "${GREEN}3)${NC} Major - Breaking changes ${MAGENTA}($CURRENT_VERSION → $MAJOR_VERSION)${NC}"
|
|
49
|
-
echo ""
|
|
50
|
-
echo -e "${YELLOW}4)${NC} Dry Run - Test without publishing"
|
|
51
|
-
echo -e "${RED}5)${NC} Cancel"
|
|
52
|
-
echo ""
|
|
53
|
-
|
|
54
|
-
read -p "Enter choice [1-5]: " choice
|
|
55
|
-
|
|
56
|
-
case $choice in
|
|
57
|
-
1)
|
|
58
|
-
echo -e "\n${CYAN}Publishing patch version...${NC}\n"
|
|
59
|
-
./publish-to-npm.sh patch
|
|
60
|
-
;;
|
|
61
|
-
2)
|
|
62
|
-
echo -e "\n${CYAN}Publishing minor version...${NC}\n"
|
|
63
|
-
./publish-to-npm.sh minor
|
|
64
|
-
;;
|
|
65
|
-
3)
|
|
66
|
-
echo -e "\n${RED}⚠️ Major version! This indicates breaking changes.${NC}"
|
|
67
|
-
read -p "Are you sure? (yes/no): " confirm
|
|
68
|
-
if [[ "$confirm" == "yes" ]]; then
|
|
69
|
-
echo -e "\n${CYAN}Publishing major version...${NC}\n"
|
|
70
|
-
./publish-to-npm.sh major
|
|
71
|
-
else
|
|
72
|
-
echo -e "${YELLOW}Cancelled${NC}"
|
|
73
|
-
fi
|
|
74
|
-
;;
|
|
75
|
-
4)
|
|
76
|
-
echo -e "\n${CYAN}Choose version type for dry run:${NC}\n"
|
|
77
|
-
echo "1) Patch"
|
|
78
|
-
echo "2) Minor"
|
|
79
|
-
echo "3) Major"
|
|
80
|
-
read -p "Enter choice [1-3]: " dry_choice
|
|
81
|
-
|
|
82
|
-
case $dry_choice in
|
|
83
|
-
1) VERSION_TYPE="patch" ;;
|
|
84
|
-
2) VERSION_TYPE="minor" ;;
|
|
85
|
-
3) VERSION_TYPE="major" ;;
|
|
86
|
-
*) echo -e "${RED}Invalid choice${NC}"; exit 1 ;;
|
|
87
|
-
esac
|
|
88
|
-
|
|
89
|
-
echo -e "\n${CYAN}Running dry run with $VERSION_TYPE...${NC}\n"
|
|
90
|
-
./publish-to-npm.sh $VERSION_TYPE --dry-run
|
|
91
|
-
;;
|
|
92
|
-
5)
|
|
93
|
-
echo -e "${YELLOW}Cancelled${NC}"
|
|
94
|
-
exit 0
|
|
95
|
-
;;
|
|
96
|
-
*)
|
|
97
|
-
echo -e "${RED}Invalid choice${NC}"
|
|
98
|
-
exit 1
|
|
99
|
-
;;
|
|
100
|
-
esac
|
package/scripts/shell/setup.sh
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# iOS Device Mind Control - Setup Script
|
|
4
|
-
# This script sets up the web application for the first time
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
echo "🚀 iOS Device Mind Control - Setup"
|
|
9
|
-
echo "===================================="
|
|
10
|
-
echo ""
|
|
11
|
-
|
|
12
|
-
# Colors
|
|
13
|
-
GREEN='\033[0;32m'
|
|
14
|
-
YELLOW='\033[1;33m'
|
|
15
|
-
RED='\033[0;31m'
|
|
16
|
-
NC='\033[0m'
|
|
17
|
-
|
|
18
|
-
# Check if Node.js is installed
|
|
19
|
-
if ! command -v node &> /dev/null; then
|
|
20
|
-
echo -e "${RED}❌ Node.js is not installed${NC}"
|
|
21
|
-
echo "Please install Node.js from https://nodejs.org/"
|
|
22
|
-
exit 1
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
echo -e "${GREEN}✅ Node.js found: $(node --version)${NC}"
|
|
26
|
-
echo -e "${GREEN}✅ npm found: $(npm --version)${NC}"
|
|
27
|
-
echo ""
|
|
28
|
-
|
|
29
|
-
# Check if devices.conf exists
|
|
30
|
-
if [ ! -f "devices.conf" ]; then
|
|
31
|
-
echo -e "${YELLOW}⚠️ devices.conf not found${NC}"
|
|
32
|
-
echo "Creating example configuration..."
|
|
33
|
-
cat > devices.conf << 'EOF'
|
|
34
|
-
# Device Configuration
|
|
35
|
-
# Format: device_name,udid,ip_address
|
|
36
|
-
# Example:
|
|
37
|
-
# iphone16p,00008140-001C24361E41801C,10.173.221.204
|
|
38
|
-
# ipad,00008132-000A24C022FB801C,10.173.221.66
|
|
39
|
-
EOF
|
|
40
|
-
echo -e "${GREEN}✅ Created devices.conf - please edit with your device details${NC}"
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
# Check if apps_presets.conf exists
|
|
44
|
-
if [ ! -f "apps_presets.conf" ]; then
|
|
45
|
-
echo -e "${YELLOW}⚠️ apps_presets.conf not found${NC}"
|
|
46
|
-
echo "Creating default app presets..."
|
|
47
|
-
cat > apps_presets.conf << 'EOF'
|
|
48
|
-
safari,com.apple.mobilesafari
|
|
49
|
-
settings,com.apple.Preferences
|
|
50
|
-
messages,com.apple.MobileSMS
|
|
51
|
-
camera,com.apple.camera
|
|
52
|
-
photos,com.apple.mobileslideshow
|
|
53
|
-
notes,com.apple.mobilenotes
|
|
54
|
-
mail,com.apple.mobilemail
|
|
55
|
-
EOF
|
|
56
|
-
echo -e "${GREEN}✅ Created apps_presets.conf${NC}"
|
|
57
|
-
fi
|
|
58
|
-
|
|
59
|
-
echo ""
|
|
60
|
-
echo "📦 Installing Backend Dependencies..."
|
|
61
|
-
cd webapp/backend
|
|
62
|
-
if [ ! -d "node_modules" ]; then
|
|
63
|
-
npm install
|
|
64
|
-
echo -e "${GREEN}✅ Backend dependencies installed${NC}"
|
|
65
|
-
else
|
|
66
|
-
echo -e "${YELLOW}Backend dependencies already installed${NC}"
|
|
67
|
-
fi
|
|
68
|
-
|
|
69
|
-
# Setup .env file
|
|
70
|
-
if [ ! -f ".env" ]; then
|
|
71
|
-
echo ""
|
|
72
|
-
echo "🔑 Setting up environment configuration..."
|
|
73
|
-
cp .env.example .env
|
|
74
|
-
echo -e "${GREEN}✅ Created .env file${NC}"
|
|
75
|
-
echo -e "${YELLOW}⚠️ Please edit webapp/backend/.env and add your OpenAI API key${NC}"
|
|
76
|
-
echo " OpenAI API key is optional but required for AI command conversion"
|
|
77
|
-
echo " Get your key from: https://platform.openai.com/api-keys"
|
|
78
|
-
else
|
|
79
|
-
echo -e "${YELLOW}⚠️ .env already exists${NC}"
|
|
80
|
-
fi
|
|
81
|
-
|
|
82
|
-
echo ""
|
|
83
|
-
echo "📦 Installing Frontend Dependencies..."
|
|
84
|
-
cd ../frontend
|
|
85
|
-
if [ ! -d "node_modules" ]; then
|
|
86
|
-
npm install
|
|
87
|
-
echo -e "${GREEN}✅ Frontend dependencies installed${NC}"
|
|
88
|
-
else
|
|
89
|
-
echo -e "${YELLOW}Frontend dependencies already installed${NC}"
|
|
90
|
-
fi
|
|
91
|
-
|
|
92
|
-
cd ../..
|
|
93
|
-
|
|
94
|
-
echo ""
|
|
95
|
-
echo "============================================"
|
|
96
|
-
echo -e "${GREEN}✅ Setup Complete!${NC}"
|
|
97
|
-
echo "============================================"
|
|
98
|
-
echo ""
|
|
99
|
-
echo "📋 Next Steps:"
|
|
100
|
-
echo ""
|
|
101
|
-
echo "1. Configure your devices:"
|
|
102
|
-
echo " Edit: devices.conf"
|
|
103
|
-
echo " Format: device_name,udid,ip_address"
|
|
104
|
-
echo ""
|
|
105
|
-
echo "2. (Optional) Add OpenAI API key for AI features:"
|
|
106
|
-
echo " Edit: webapp/backend/.env"
|
|
107
|
-
echo " Add: OPENAI_API_KEY=your_key_here"
|
|
108
|
-
echo ""
|
|
109
|
-
echo "3. Start the backend server:"
|
|
110
|
-
echo " cd webapp/backend"
|
|
111
|
-
echo " npm start"
|
|
112
|
-
echo ""
|
|
113
|
-
echo "4. Start the frontend (in a new terminal):"
|
|
114
|
-
echo " cd webapp/frontend"
|
|
115
|
-
echo " npm start"
|
|
116
|
-
echo ""
|
|
117
|
-
echo "5. Open your browser:"
|
|
118
|
-
echo " http://localhost:3000"
|
|
119
|
-
echo ""
|
|
120
|
-
echo "🎉 Enjoy iOS Device Mind Control!"
|
|
121
|
-
echo ""
|
package/scripts/shell/start.sh
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# iOS Device Mind Control - Start Script
|
|
4
|
-
# Starts backend server only (uses production build for frontend)
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
echo "🚀 Starting iOS Device Mind Control"
|
|
9
|
-
echo "===================================="
|
|
10
|
-
|
|
11
|
-
# Colors
|
|
12
|
-
GREEN='\033[0;32m'
|
|
13
|
-
YELLOW='\033[1;33m'
|
|
14
|
-
BLUE='\033[0;34m'
|
|
15
|
-
NC='\033[0m'
|
|
16
|
-
|
|
17
|
-
# Function to cleanup on exit
|
|
18
|
-
cleanup() {
|
|
19
|
-
echo ""
|
|
20
|
-
echo -e "${YELLOW}Stopping servers...${NC}"
|
|
21
|
-
kill $BACKEND_PID 2>/dev/null || true
|
|
22
|
-
exit 0
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
trap cleanup SIGINT SIGTERM
|
|
26
|
-
|
|
27
|
-
# Check if setup was run
|
|
28
|
-
if [ ! -d "webapp/backend/node_modules" ]; then
|
|
29
|
-
echo -e "${YELLOW}⚠️ Backend dependencies not installed. Running setup...${NC}"
|
|
30
|
-
cd webapp/backend && npm install && cd ../..
|
|
31
|
-
fi
|
|
32
|
-
|
|
33
|
-
# Check if frontend build exists
|
|
34
|
-
if [ ! -d "webapp/frontend/build" ]; then
|
|
35
|
-
echo -e "${YELLOW}⚠️ Frontend not built. Building production version...${NC}"
|
|
36
|
-
cd webapp/frontend && npm install && npm run build && cd ../..
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
# Start backend (serves both API and static frontend)
|
|
40
|
-
echo -e "${BLUE}Starting backend server...${NC}"
|
|
41
|
-
cd webapp/backend
|
|
42
|
-
npm start &
|
|
43
|
-
BACKEND_PID=$!
|
|
44
|
-
echo -e "${GREEN}✅ Backend started (PID: $BACKEND_PID)${NC}"
|
|
45
|
-
echo -e "${GREEN} API: http://localhost:3001${NC}"
|
|
46
|
-
echo -e "${GREEN} Web: http://localhost:3001${NC}"
|
|
47
|
-
|
|
48
|
-
echo ""
|
|
49
|
-
echo "============================================"
|
|
50
|
-
echo -e "${GREEN}✅ Server running!${NC}"
|
|
51
|
-
echo "============================================"
|
|
52
|
-
echo ""
|
|
53
|
-
echo "📱 Open http://localhost:3001 in your browser"
|
|
54
|
-
echo ""
|
|
55
|
-
echo "Press Ctrl+C to stop the server"
|
|
56
|
-
echo ""
|
|
57
|
-
|
|
58
|
-
# Wait for process
|
|
59
|
-
wait
|