@edgedev/create-edge-app 1.2.34 → 1.2.35

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/edge-pull.sh CHANGED
@@ -1,2 +1,16 @@
1
- git fetch edge-vue-components
2
- git subtree pull --prefix=edge edge-vue-components main --squash
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
5
+ # shellcheck source=./edge-remote.sh
6
+ source "$SCRIPT_DIR/edge-remote.sh"
7
+
8
+ fetch_edge_remote
9
+
10
+ if [ -d "$SCRIPT_DIR/edge" ]
11
+ then
12
+ git subtree pull --prefix=edge "$EDGE_REMOTE_NAME" main --squash
13
+ else
14
+ echo "No edge subtree found. Initializing with git subtree add."
15
+ git subtree add --prefix=edge "$EDGE_REMOTE_NAME" main --squash
16
+ fi
package/edge-push.sh CHANGED
@@ -1 +1,9 @@
1
- git subtree push --prefix=edge edge-vue-components main
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
5
+ # shellcheck source=./edge-remote.sh
6
+ source "$SCRIPT_DIR/edge-remote.sh"
7
+
8
+ ensure_edge_remote
9
+ git subtree push --prefix=edge "$EDGE_REMOTE_NAME" main
package/edge-remote.sh ADDED
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ EDGE_REMOTE_NAME="${EDGE_REMOTE_NAME:-edge-vue-components}"
5
+ EDGE_REMOTE_URL="${EDGE_REMOTE_URL:-https://github.com/Edge-Marketing-and-Design/edge-vue-components.git}"
6
+
7
+ ensure_edge_remote() {
8
+ if git remote get-url "$EDGE_REMOTE_NAME" >/dev/null 2>&1
9
+ then
10
+ return 0
11
+ fi
12
+
13
+ echo "Remote '$EDGE_REMOTE_NAME' is not configured. Adding '$EDGE_REMOTE_URL'."
14
+ git remote add "$EDGE_REMOTE_NAME" "$EDGE_REMOTE_URL"
15
+ }
16
+
17
+ fetch_edge_remote() {
18
+ ensure_edge_remote
19
+ git fetch "$EDGE_REMOTE_NAME"
20
+ }
package/edge-status.sh CHANGED
@@ -1,14 +1,18 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- git fetch edge-vue-components >/dev/null 2>&1
4
+ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
5
+ # shellcheck source=./edge-remote.sh
6
+ source "$SCRIPT_DIR/edge-remote.sh"
5
7
 
6
- UP_TREE="$(git rev-parse edge-vue-components/main^{tree})"
8
+ fetch_edge_remote >/dev/null 2>&1
9
+
10
+ UP_TREE="$(git rev-parse "$EDGE_REMOTE_NAME/main^{tree}")"
7
11
  LOCAL_TREE="$(git rev-parse HEAD:edge)"
8
12
 
9
13
  if [ "$UP_TREE" = "$LOCAL_TREE" ]
10
14
  then
11
- echo "edge is in sync with edge-vue-components/main"
15
+ echo "edge is in sync with $EDGE_REMOTE_NAME/main"
12
16
  else
13
- echo "edge differs from edge-vue-components/main"
14
- fi
17
+ echo "edge differs from $EDGE_REMOTE_NAME/main"
18
+ fi
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/env sh
2
+ set -eu
3
+
4
+ SCRIPT_DIR="$(cd -- "$(dirname -- "$0")" && pwd)"
5
+ cd "$SCRIPT_DIR"
6
+
7
+ usage() {
8
+ cat <<'EOF'
9
+ Usage: ./edge-update-all.sh
10
+
11
+ Updates:
12
+ 1) edge subtree (via edge-pull.sh)
13
+ 2) remove @edgedev/template-engine and @edgedev/firebase
14
+ 3) install latest @edgedev/template-engine and @edgedev/firebase
15
+ EOF
16
+ }
17
+
18
+ for arg in "$@"
19
+ do
20
+ case "$arg" in
21
+ -h|--help)
22
+ usage
23
+ exit 0
24
+ ;;
25
+ *)
26
+ echo "Unknown argument: $arg"
27
+ echo
28
+ usage
29
+ exit 1
30
+ ;;
31
+ esac
32
+ done
33
+
34
+ if ! command -v pnpm >/dev/null 2>&1
35
+ then
36
+ echo "pnpm is required (pnpm-lock.yaml is present), but it is not installed."
37
+ echo "Install pnpm and rerun."
38
+ exit 1
39
+ fi
40
+
41
+ sync_edge_functions() {
42
+ edge_functions_dir="$SCRIPT_DIR/edge/functions"
43
+ local_functions_dir="$SCRIPT_DIR/functions"
44
+
45
+ if [ ! -d "$edge_functions_dir" ]; then
46
+ return
47
+ fi
48
+
49
+ echo "==> Syncing edge/functions into local functions/"
50
+
51
+ find "$edge_functions_dir" -type f | sort | while IFS= read -r src_file; do
52
+ rel_path="${src_file#$edge_functions_dir/}"
53
+ dest_file="$local_functions_dir/$rel_path"
54
+ dest_dir="$(dirname "$dest_file")"
55
+
56
+ mkdir -p "$dest_dir"
57
+
58
+ cp "$src_file" "$dest_file"
59
+ done
60
+ }
61
+
62
+ merge_firestore_indexes() {
63
+ edge_indexes="$SCRIPT_DIR/edge/root/firestore.indexes.json"
64
+ local_indexes="$SCRIPT_DIR/firestore.indexes.json"
65
+
66
+ if [ ! -f "$edge_indexes" ]; then
67
+ return
68
+ fi
69
+
70
+ if [ ! -f "$local_indexes" ]; then
71
+ echo "==> Writing firestore.indexes.json from edge/root"
72
+ cp "$edge_indexes" "$local_indexes"
73
+ return
74
+ fi
75
+
76
+ echo "==> Merging firestore.indexes.json with edge/root priority"
77
+ EDGE_INDEXES_PATH="$edge_indexes" LOCAL_INDEXES_PATH="$local_indexes" node <<'EOF'
78
+ const fs = require('fs')
79
+
80
+ const edgePath = process.env.EDGE_INDEXES_PATH
81
+ const localPath = process.env.LOCAL_INDEXES_PATH
82
+
83
+ const readJson = (filePath) => JSON.parse(fs.readFileSync(filePath, 'utf8'))
84
+ const edgeJson = readJson(edgePath)
85
+ const localJson = readJson(localPath)
86
+
87
+ const normalizeArray = value => Array.isArray(value) ? value : []
88
+ const makeKey = index => JSON.stringify({
89
+ collectionGroup: index?.collectionGroup || '',
90
+ queryScope: index?.queryScope || 'COLLECTION',
91
+ fields: normalizeArray(index?.fields).map(field => ({
92
+ fieldPath: field?.fieldPath || '',
93
+ order: field?.order || '',
94
+ arrayConfig: field?.arrayConfig || '',
95
+ vectorConfig: field?.vectorConfig || null,
96
+ })),
97
+ })
98
+
99
+ const mergedMap = new Map()
100
+ for (const index of normalizeArray(localJson.indexes))
101
+ mergedMap.set(makeKey(index), index)
102
+ for (const index of normalizeArray(edgeJson.indexes))
103
+ mergedMap.set(makeKey(index), index)
104
+
105
+ const merged = {
106
+ ...localJson,
107
+ ...edgeJson,
108
+ indexes: Array.from(mergedMap.values()),
109
+ }
110
+
111
+ fs.writeFileSync(localPath, `${JSON.stringify(merged, null, 2)}\n`)
112
+ EOF
113
+ }
114
+
115
+ echo "==> Updating edge subtree"
116
+ "$SCRIPT_DIR/edge-pull.sh"
117
+
118
+ sync_edge_functions
119
+ merge_firestore_indexes
120
+
121
+ echo "==> Removing @edgedev packages"
122
+ pnpm remove @edgedev/template-engine @edgedev/firebase
123
+
124
+ echo "==> Installing latest @edgedev packages"
125
+ pnpm add @edgedev/template-engine@latest @edgedev/firebase@latest
126
+
127
+ echo "==> Done"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgedev/create-edge-app",
3
- "version": "1.2.34",
3
+ "version": "1.2.35",
4
4
  "description": "Create Edge Starter App",
5
5
  "bin": {
6
6
  "create-edge-app": "./bin/cli.js"