@anvil-works/anvil-cli 0.6.2 → 0.6.4
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/dist/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/package.json +1 -1
- package/scripts/install/install.sh +66 -12
package/dist/api.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { AppIdCandidate, AppIdWithContext, CheckoutAppListItem, detectAppIdsByCo
|
|
|
5
5
|
export { getAccountsForUrl, getAvailableAnvilUrls, getTokensForUrl, getValidAuthToken, hasTokensForUrl, login, LoginResult, LogoutResult, logout, StoredTokens, TokenData, verifyAuth, } from "./services/auth";
|
|
6
6
|
export { DeviceAuthorizationResponse, OAuthTokenResponse, pollDeviceAuthorization, requestDeviceAuthorization, runInteractiveLoginFlow, } from "./services/oauth-login";
|
|
7
7
|
export { CheckoutCloneOptions, CheckoutExecutionDeps, CheckoutOptions, ensureCheckoutAuthToken, executeCheckout, getDefaultDestinationDirectory, isDirectoryNonEmpty, isPathInsideGitRepo, openPathInEditorOrDefault, parseCheckoutInput, ParsedCheckoutInput, resolveCheckoutUrl, resolveCheckoutUsername, sanitizeDirectoryName, validateCheckoutDestination, } from "./commands/checkout";
|
|
8
|
-
export { deleteConfig, getAllConfig, getConfig, getInstalledPreferredEditors, getPreferredEditorCommand, getSettableConfigKeys, isCommandAvailable, normalizeAnvilUrl, parseConfigSetValue, preferredEditors, PreferredEditor, resetConfig, resolveAnvilUrl, setConfig, SettableConfigKey, } from "./config";
|
|
8
|
+
export { deleteConfig, getAllConfig, getConfig, getInstalledPreferredEditors, getPreferredEditorCommand, getSettableConfigKeys, isCommandAvailable, normalizeAnvilUrl, parseConfigSetValue, preferredEditors, PreferredEditor, resetConfig, resolveAnvilUrl, setAuthTokensForAccount, setConfig, SettableConfigKey, } from "./config";
|
|
9
9
|
export { BranchSyncStatus, validateAnvilApp, validateBranchSyncStatus } from "./services/validation";
|
|
10
10
|
export { AnvilYamlValidationResult, FormTemplateValidationResult, ValidatePathResult, ValidationTarget, ValidationIssue, formatValidationPath, validatePath, validateAnvilYaml, validateFormTemplate, } from "./validators";
|
|
11
11
|
export interface UncommittedChanges {
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAkB,QAAQ,EAAgB,MAAM,UAAU,CAAC;AAG7E,OAAO,EAA4B,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGzF,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,aAAa,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,KAAK,EACL,WAAW,EACX,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,SAAS,EACT,UAAU,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,8BAA8B,EAC9B,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,SAAS,EACT,iBAAiB,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EACH,yBAAyB,EACzB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAQtB,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,sBAAsB,CAAC;AAMvE;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsB3F;AAMD;;;;GAIG;AACH,wBAAsB,YAAY,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAMD;;;GAGG;AACH,wBAAsB,KAAK,CACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,SAAoB,EAC5B,UAAU,UAAQ,EAClB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAmGvB"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAkB,QAAQ,EAAgB,MAAM,UAAU,CAAC;AAG7E,OAAO,EAA4B,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGzF,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,aAAa,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,KAAK,EACL,WAAW,EACX,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,SAAS,EACT,UAAU,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,8BAA8B,EAC9B,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,iBAAiB,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EACH,yBAAyB,EACzB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAQtB,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,sBAAsB,CAAC;AAMvE;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsB3F;AAMD;;;;GAIG;AACH,wBAAsB,YAAY,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAMD;;;GAGG;AACH,wBAAsB,KAAK,CACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,SAAoB,EAC5B,UAAU,UAAQ,EAClB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAmGvB"}
|
package/dist/index.js
CHANGED
|
@@ -31355,6 +31355,7 @@ var __webpack_exports__ = {};
|
|
|
31355
31355
|
requestDeviceAuthorization: ()=>requestDeviceAuthorization,
|
|
31356
31356
|
validateAnvilApp: ()=>validation_validateAnvilApp,
|
|
31357
31357
|
getGitPushUrl: ()=>anvil_api_getGitPushUrl,
|
|
31358
|
+
setAuthTokensForAccount: ()=>setAccountTokens,
|
|
31358
31359
|
ValidateAppIdResponse: ()=>anvil_api_namespaceObject.ValidateAppIdResponse,
|
|
31359
31360
|
formatValidationPath: ()=>formatValidationPath,
|
|
31360
31361
|
resolveAnvilUrl: ()=>resolveAnvilUrl,
|
|
@@ -31441,6 +31442,7 @@ var __webpack_exports__ = {};
|
|
|
31441
31442
|
cx: ()=>preferredEditors,
|
|
31442
31443
|
E6: ()=>resetConfig,
|
|
31443
31444
|
mk: ()=>resolveAnvilUrl,
|
|
31445
|
+
Px: ()=>setAccountTokens,
|
|
31444
31446
|
Nk: ()=>setConfig
|
|
31445
31447
|
});
|
|
31446
31448
|
var auth_namespaceObject = {};
|
|
@@ -50418,6 +50420,7 @@ exports.resolveCheckoutUsername = __webpack_exports__.resolveCheckoutUsername;
|
|
|
50418
50420
|
exports.runInteractiveLoginFlow = __webpack_exports__.runInteractiveLoginFlow;
|
|
50419
50421
|
exports.sanitizeDirectoryName = __webpack_exports__.sanitizeDirectoryName;
|
|
50420
50422
|
exports.saveUpdates = __webpack_exports__.saveUpdates;
|
|
50423
|
+
exports.setAuthTokensForAccount = __webpack_exports__.setAuthTokensForAccount;
|
|
50421
50424
|
exports.setConfig = __webpack_exports__.setConfig;
|
|
50422
50425
|
exports.syncToLatest = __webpack_exports__.syncToLatest;
|
|
50423
50426
|
exports.validateAnvilApp = __webpack_exports__.validateAnvilApp;
|
|
@@ -50498,6 +50501,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
50498
50501
|
"runInteractiveLoginFlow",
|
|
50499
50502
|
"sanitizeDirectoryName",
|
|
50500
50503
|
"saveUpdates",
|
|
50504
|
+
"setAuthTokensForAccount",
|
|
50501
50505
|
"setConfig",
|
|
50502
50506
|
"syncToLatest",
|
|
50503
50507
|
"validateAnvilApp",
|
package/package.json
CHANGED
|
@@ -21,6 +21,27 @@ need_cmd() {
|
|
|
21
21
|
command -v "$1" >/dev/null 2>&1 || fail "Required command not found: $1"
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
is_windows_posix() {
|
|
25
|
+
case "$(uname -s 2>/dev/null || true)" in
|
|
26
|
+
MINGW*|MSYS*|CYGWIN*) return 0 ;;
|
|
27
|
+
*) return 1 ;;
|
|
28
|
+
esac
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
windows_posix_node_error() {
|
|
32
|
+
fail "Windows Git Bash installs require existing Node.js v20+ and npm. Use PowerShell instead: irm https://anvil.works/install-cli.ps1 | iex"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
normalize_npm_prefix() {
|
|
36
|
+
prefix="$1"
|
|
37
|
+
if is_windows_posix && command -v cygpath >/dev/null 2>&1; then
|
|
38
|
+
cygpath -u "$prefix" 2>/dev/null || printf '%s\n' "$prefix"
|
|
39
|
+
return
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
printf '%s\n' "$prefix"
|
|
43
|
+
}
|
|
44
|
+
|
|
24
45
|
warn_if_missing_git() {
|
|
25
46
|
if ! command -v git >/dev/null 2>&1; then
|
|
26
47
|
log "Warning: git was not found on PATH."
|
|
@@ -30,11 +51,13 @@ warn_if_missing_git() {
|
|
|
30
51
|
}
|
|
31
52
|
|
|
32
53
|
cleanup_legacy_npm_prefix() {
|
|
33
|
-
current_prefix="$(npm config get prefix 2>/dev/null || true)"
|
|
54
|
+
current_prefix="$(npm config get prefix 2>/dev/null | tr -d '\r' || true)"
|
|
34
55
|
[ -n "$current_prefix" ] || return 0
|
|
35
56
|
|
|
36
57
|
legacy_prefix="$NPM_PREFIX"
|
|
37
|
-
|
|
58
|
+
normalized_current_prefix="$(normalize_npm_prefix "$current_prefix")"
|
|
59
|
+
normalized_legacy_prefix="$(normalize_npm_prefix "$legacy_prefix")"
|
|
60
|
+
if [ "$current_prefix" = "$legacy_prefix" ] || [ "$normalized_current_prefix" = "$normalized_legacy_prefix" ]; then
|
|
38
61
|
log "Detected legacy anvil npm prefix in user config; restoring npm default prefix behavior."
|
|
39
62
|
npm config delete prefix --location=user >/dev/null 2>&1 || true
|
|
40
63
|
fi
|
|
@@ -42,7 +65,11 @@ cleanup_legacy_npm_prefix() {
|
|
|
42
65
|
|
|
43
66
|
append_path_export() {
|
|
44
67
|
profile_file="$1"
|
|
45
|
-
|
|
68
|
+
if is_windows_posix; then
|
|
69
|
+
line='export PATH="$HOME/.anvil-cli/npm-global:$HOME/.anvil-cli/npm-global/bin:$HOME/.anvil-cli/node-v20/bin:$PATH"'
|
|
70
|
+
else
|
|
71
|
+
line='export PATH="$HOME/.anvil-cli/npm-global/bin:$HOME/.anvil-cli/node-v20/bin:$PATH"'
|
|
72
|
+
fi
|
|
46
73
|
|
|
47
74
|
[ -f "$profile_file" ] || touch "$profile_file"
|
|
48
75
|
grep -F "$line" "$profile_file" >/dev/null 2>&1 || {
|
|
@@ -131,23 +158,54 @@ ensure_node() {
|
|
|
131
158
|
log "Using existing Node.js $(node -v)"
|
|
132
159
|
return
|
|
133
160
|
fi
|
|
161
|
+
if is_windows_posix; then
|
|
162
|
+
windows_posix_node_error
|
|
163
|
+
fi
|
|
134
164
|
log "Existing Node.js $(node -v) is too old; installing Node.js v20 user-local"
|
|
135
165
|
install_node_v20
|
|
136
166
|
return
|
|
137
167
|
fi
|
|
138
168
|
|
|
169
|
+
if is_windows_posix; then
|
|
170
|
+
windows_posix_node_error
|
|
171
|
+
fi
|
|
139
172
|
install_node_v20
|
|
140
173
|
}
|
|
141
174
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
175
|
+
configure_current_path() {
|
|
176
|
+
if is_windows_posix; then
|
|
177
|
+
export PATH="$NPM_PREFIX:$NPM_PREFIX/bin:$NODE_DIR/bin:$PATH"
|
|
178
|
+
else
|
|
179
|
+
export PATH="$NPM_PREFIX/bin:$NODE_DIR/bin:$PATH"
|
|
180
|
+
fi
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
anvil_version() {
|
|
184
|
+
if command -v anvil >/dev/null 2>&1 && anvil --version 2>/dev/null; then
|
|
185
|
+
return 0
|
|
186
|
+
fi
|
|
187
|
+
|
|
188
|
+
if [ -f "$NPM_PREFIX/anvil" ] && "$NPM_PREFIX/anvil" --version 2>/dev/null; then
|
|
189
|
+
return 0
|
|
190
|
+
fi
|
|
145
191
|
|
|
192
|
+
if [ -f "$NPM_PREFIX/anvil.cmd" ] && "$NPM_PREFIX/anvil.cmd" --version 2>/dev/null; then
|
|
193
|
+
return 0
|
|
194
|
+
fi
|
|
195
|
+
|
|
196
|
+
if [ -x "$NPM_PREFIX/bin/anvil" ] && "$NPM_PREFIX/bin/anvil" --version 2>/dev/null; then
|
|
197
|
+
return 0
|
|
198
|
+
fi
|
|
199
|
+
|
|
200
|
+
return 1
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
main() {
|
|
146
204
|
mkdir -p "$ANVIL_HOME" "$NPM_PREFIX"
|
|
147
205
|
|
|
148
206
|
ensure_node
|
|
149
207
|
|
|
150
|
-
|
|
208
|
+
configure_current_path
|
|
151
209
|
persist_path_hint
|
|
152
210
|
|
|
153
211
|
need_cmd npm
|
|
@@ -157,11 +215,7 @@ main() {
|
|
|
157
215
|
log "Installing anvil-cli..."
|
|
158
216
|
NPM_CONFIG_PREFIX="$NPM_PREFIX" npm install -g @anvil-works/anvil-cli@latest
|
|
159
217
|
|
|
160
|
-
if
|
|
161
|
-
version="$(anvil --version 2>/dev/null || true)"
|
|
162
|
-
elif [ -x "$NPM_PREFIX/bin/anvil" ]; then
|
|
163
|
-
version="$($NPM_PREFIX/bin/anvil --version 2>/dev/null || true)"
|
|
164
|
-
else
|
|
218
|
+
if ! version="$(anvil_version)"; then
|
|
165
219
|
fail "anvil installed but command not found on PATH"
|
|
166
220
|
fi
|
|
167
221
|
|