snapexcel 1.2.7 → 1.2.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.
@@ -0,0 +1,125 @@
1
+ # Walmart Internal NPM Publishing Guide
2
+
3
+ ## Overview
4
+ Walmart uses **Proximity** (also called Backpack) as its internal npm registry for publishing Node.js packages.
5
+
6
+ ---
7
+
8
+ ## Registry URL
9
+ ```
10
+ https://npme.walmart.com
11
+ ```
12
+
13
+ ---
14
+
15
+ ## Step 1: Configure .npmrc
16
+
17
+ Create or update your `.npmrc` file (in project root or `$HOME/.npmrc`):
18
+
19
+ ```
20
+ registry=https://npme.walmart.com
21
+ email=your.email@walmartlabs.com
22
+ ```
23
+
24
+ **Important:** Do NOT include `authToken` in your `.npmrc` for the internal registry.
25
+
26
+ ---
27
+
28
+ ## Step 2: Update package.json with Scope
29
+
30
+ Walmart requires scoped packages. Use `@walmart` or `@walmartlabs`:
31
+
32
+ ```json
33
+ {
34
+ "name": "@walmart/snapexcel",
35
+ "version": "1.2.5",
36
+ "description": "Desktop Screenshot Logger for UI Testing",
37
+ "publishConfig": {
38
+ "registry": "https://npme.walmart.com"
39
+ }
40
+ }
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Step 3: Publishing via Looper (Required)
46
+
47
+ ⚠️ **Manual publishing from local machines is NOT allowed.**
48
+
49
+ Publishing must be done through **Looper** (Walmart's CI/CD platform):
50
+
51
+ 1. Push your code to gecgithub01.walmart.com
52
+ 2. Configure Looper pipeline for npm publish
53
+ 3. Looper handles authentication automatically
54
+
55
+ ### Looper Configuration Example (looper.yml):
56
+ ```yaml
57
+ pipelines:
58
+ publish:
59
+ steps:
60
+ - npm:
61
+ command: publish
62
+ registry: https://npme.walmart.com
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Step 4: Best Practices
68
+
69
+ 1. **Always use `package-lock.json`** - Ensures deterministic builds
70
+ 2. **Use scoped packages** - `@walmart/` or `@walmartlabs/`
71
+ 3. **No manual publishing** - Always use Looper
72
+ 4. **Remove authToken lines** - Don't comment them, remove completely
73
+
74
+ ---
75
+
76
+ ## Troubleshooting
77
+
78
+ ### Error: `npm ERR! need auth`
79
+ - You're trying to publish from local machine (not allowed)
80
+ - Your `.npmrc` has an `authToken` line - remove it completely
81
+
82
+ ### Error: Authentication failed
83
+ - Ensure you're using Looper, not local publish
84
+ - Check `.npmrc` configuration
85
+
86
+ ---
87
+
88
+ ## References
89
+
90
+ - [Using NPM at Walmart](https://dx.walmart.com/proximity/documentation/dx/Using-NPM-D7drllinbbb)
91
+ - [NPM Best Practices](https://dx.walmart.com/artifactory/documentation/confluence/NPM-Best-Practices-2555353509)
92
+ - [Proximity FAQs](https://dx.walmart.com/proximity/documentation/dx/Proximity-FAQs-Dg9qp321adg)
93
+
94
+ ---
95
+
96
+ ## Quick Summary
97
+
98
+ | Item | Value |
99
+ |------|-------|
100
+ | Registry URL | `https://npme.walmart.com` |
101
+ | Scope | `@walmart` or `@walmartlabs` |
102
+ | Publishing | Via Looper only (not local) |
103
+ | Auth | Handled by Looper automatically |
104
+
105
+ ---
106
+
107
+ ## For SnapExcel
108
+
109
+ To publish SnapExcel to Walmart's internal registry:
110
+
111
+ 1. Update `package.json`:
112
+ ```json
113
+ {
114
+ "name": "@walmart/snapexcel",
115
+ "publishConfig": {
116
+ "registry": "https://npme.walmart.com"
117
+ }
118
+ }
119
+ ```
120
+
121
+ 2. Push to gecgithub01.walmart.com
122
+ 3. Set up Looper pipeline for publishing
123
+ 4. Looper will handle the rest
124
+
125
+ **Note:** You cannot publish from your local machine to Walmart's registry.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "snapexcel",
3
- "version": "1.2.7",
3
+ "version": "1.2.8",
4
4
  "description": "Desktop Screenshot Logger for UI Testing - Capture any window including Android emulators",
5
5
  "main": "src/main.js",
6
6
  "bin": {
package/src/index.html CHANGED
@@ -103,11 +103,11 @@
103
103
  <!-- Keyboard Shortcuts -->
104
104
  <div class="shortcut-hint">
105
105
  <div class="shortcut-item">
106
- <span class="shortcut-key">⌘⇧S</span>
106
+ <span class="shortcut-key">⌘⇧A</span>
107
107
  <span class="shortcut-label">Fullscreen</span>
108
108
  </div>
109
109
  <div class="shortcut-item">
110
- <span class="shortcut-key">⌘⇧A</span>
110
+ <span class="shortcut-key">⌘⇧S</span>
111
111
  <span class="shortcut-label">Region</span>
112
112
  </div>
113
113
  </div>
package/src/main.js CHANGED
@@ -29,13 +29,13 @@ function createWindow() {
29
29
 
30
30
  mainWindow.loadFile(path.join(__dirname, 'index.html'));
31
31
 
32
- // Register global shortcut for capture (Cmd/Ctrl + Shift + S)
33
- globalShortcut.register('CommandOrControl+Shift+S', () => {
32
+ // Register global shortcut for fullscreen capture (Cmd/Ctrl + Shift + A for All)
33
+ globalShortcut.register('CommandOrControl+Shift+A', () => {
34
34
  mainWindow.webContents.send('trigger-capture');
35
35
  });
36
36
 
37
- // Register global shortcut for region capture (Cmd/Ctrl + Shift + A for Area)
38
- globalShortcut.register('CommandOrControl+Shift+A', () => {
37
+ // Register global shortcut for region capture (Cmd/Ctrl + Shift + S for Select)
38
+ globalShortcut.register('CommandOrControl+Shift+S', () => {
39
39
  mainWindow.webContents.send('trigger-region-capture');
40
40
  });
41
41