@gen3/toolsff 0.12.43 → 0.12.45
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/jupyter-workspaces/build-jupyter-lite.sh +0 -0
- package/dist/jupyter-workspaces/build-jupyterlite-free.sh +39 -0
- package/dist/jupyter-workspaces/build-jupyterlite-remote.sh +39 -0
- package/dist/jupyter-workspaces/sync-jupyter-assets-into-package.sh +35 -0
- package/dist/jupyter-workspaces/validate-jupyterlite-assets.sh +101 -0
- package/dist/noop.js +4 -0
- package/package.json +2 -2
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../" && pwd)"
|
|
5
|
+
SRC_DIR="$ROOT_DIR/jupyterlite-builds/free-private"
|
|
6
|
+
CONFIG_FILE="$SRC_DIR/jupyter_lite_config.json"
|
|
7
|
+
REQUIREMENTS_FILE="$SRC_DIR/requirements.txt"
|
|
8
|
+
PYTHON_BIN="${PYTHON_BIN:-$(command -v python3)}"
|
|
9
|
+
VENV_DIR="$SRC_DIR/.venv"
|
|
10
|
+
VENV_PYTHON="$VENV_DIR/bin/python"
|
|
11
|
+
VENV_JUPYTER_LITE="$VENV_DIR/bin/jupyter-lite"
|
|
12
|
+
|
|
13
|
+
if [[ -z "$PYTHON_BIN" ]] || ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then
|
|
14
|
+
echo "python3 executable not found. Set PYTHON_BIN to a valid Python interpreter."
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
if [[ ! -f "$REQUIREMENTS_FILE" ]]; then
|
|
19
|
+
echo "Missing requirements file: $REQUIREMENTS_FILE"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
mkdir -p "$SRC_DIR"
|
|
24
|
+
|
|
25
|
+
"$PYTHON_BIN" -m venv "$VENV_DIR"
|
|
26
|
+
|
|
27
|
+
"$VENV_PYTHON" -m pip install --upgrade pip
|
|
28
|
+
"$VENV_PYTHON" -m pip install -r "$REQUIREMENTS_FILE"
|
|
29
|
+
|
|
30
|
+
if [[ ! -x "$VENV_JUPYTER_LITE" ]]; then
|
|
31
|
+
echo "jupyter-lite executable not found in $VENV_DIR after dependency install."
|
|
32
|
+
exit 1
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
"$VENV_JUPYTER_LITE" build \
|
|
36
|
+
--config "$CONFIG_FILE" \
|
|
37
|
+
--output-dir "$SRC_DIR/site"
|
|
38
|
+
|
|
39
|
+
echo "Free-tier JupyterLite build complete: $SRC_DIR/site (venv: $VENV_DIR)"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
|
+
OUT_DIR="$ROOT_DIR/jupyterlite-builds/remote-private"
|
|
6
|
+
CONFIG_FILE="$OUT_DIR/jupyter_lite_config.json"
|
|
7
|
+
REQUIREMENTS_FILE="$OUT_DIR/requirements.txt"
|
|
8
|
+
PYTHON_BIN="${PYTHON_BIN:-$(command -v python3)}"
|
|
9
|
+
VENV_DIR="$OUT_DIR/.venv"
|
|
10
|
+
VENV_PYTHON="$VENV_DIR/bin/python"
|
|
11
|
+
VENV_JUPYTER_LITE="$VENV_DIR/bin/jupyter-lite"
|
|
12
|
+
|
|
13
|
+
if [[ -z "$PYTHON_BIN" ]] || ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then
|
|
14
|
+
echo "python3 executable not found. Set PYTHON_BIN to a valid Python interpreter."
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
if [[ ! -f "$REQUIREMENTS_FILE" ]]; then
|
|
19
|
+
echo "Missing requirements file: $REQUIREMENTS_FILE"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
mkdir -p "$OUT_DIR"
|
|
24
|
+
|
|
25
|
+
"$PYTHON_BIN" -m venv "$VENV_DIR"
|
|
26
|
+
|
|
27
|
+
"$VENV_PYTHON" -m pip install --upgrade pip
|
|
28
|
+
"$VENV_PYTHON" -m pip install -r "$REQUIREMENTS_FILE"
|
|
29
|
+
|
|
30
|
+
if [[ ! -x "$VENV_JUPYTER_LITE" ]]; then
|
|
31
|
+
echo "jupyter-lite executable not found in $VENV_DIR after dependency install."
|
|
32
|
+
exit 1
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
"$VENV_JUPYTER_LITE" build \
|
|
36
|
+
--config "$CONFIG_FILE" \
|
|
37
|
+
--output-dir "$OUT_DIR/site"
|
|
38
|
+
|
|
39
|
+
echo "Remote-tier JupyterLite build complete: $OUT_DIR/site (venv: $VENV_DIR)"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
|
+
PKG_DIR="$ROOT_DIR/packages/jupyter-workspaces"
|
|
6
|
+
FREE_SRC="$ROOT_DIR/jupyterlite-builds/free-private/site"
|
|
7
|
+
REMOTE_SRC="$ROOT_DIR/jupyterlite-builds/remote-private/site"
|
|
8
|
+
FREE_DST="$PKG_DIR/assets/free"
|
|
9
|
+
REMOTE_DST="$PKG_DIR/assets/remote"
|
|
10
|
+
VALIDATE_SCRIPT="$ROOT_DIR/scripts/validate-jupyterlite-assets.sh"
|
|
11
|
+
|
|
12
|
+
if [[ ! -d "$FREE_SRC" ]]; then
|
|
13
|
+
echo "Missing free JupyterLite build output: $FREE_SRC"
|
|
14
|
+
echo "Run: npm run build:jupyterlite:free"
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
if [[ ! -d "$REMOTE_SRC" ]]; then
|
|
19
|
+
echo "Missing remote JupyterLite build output: $REMOTE_SRC"
|
|
20
|
+
echo "Run: npm run build:jupyterlite:remote"
|
|
21
|
+
exit 1
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
bash "$VALIDATE_SCRIPT" --free-dir "$FREE_SRC" --remote-dir "$REMOTE_SRC"
|
|
25
|
+
|
|
26
|
+
rm -rf "$FREE_DST" "$REMOTE_DST"
|
|
27
|
+
mkdir -p "$PKG_DIR/assets"
|
|
28
|
+
cp -R "$FREE_SRC" "$FREE_DST"
|
|
29
|
+
cp -R "$REMOTE_SRC" "$REMOTE_DST"
|
|
30
|
+
|
|
31
|
+
bash "$VALIDATE_SCRIPT" --free-dir "$FREE_DST" --remote-dir "$REMOTE_DST"
|
|
32
|
+
|
|
33
|
+
echo "Synced JupyterLite assets into package:"
|
|
34
|
+
echo " $FREE_DST"
|
|
35
|
+
echo " $REMOTE_DST"
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
usage() {
|
|
5
|
+
cat <<'EOF'
|
|
6
|
+
Validate that free/remote JupyterLite assets are not mixed.
|
|
7
|
+
|
|
8
|
+
Usage:
|
|
9
|
+
bash scripts/validate-jupyterlite-assets.sh --free-dir <path> --remote-dir <path>
|
|
10
|
+
|
|
11
|
+
Rules:
|
|
12
|
+
- free jupyter-lite.json must NOT include federated extension "jupyterlite-remote-server"
|
|
13
|
+
- remote jupyter-lite.json must include federated extension "jupyterlite-remote-server"
|
|
14
|
+
EOF
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
FREE_DIR=""
|
|
18
|
+
REMOTE_DIR=""
|
|
19
|
+
|
|
20
|
+
while [[ $# -gt 0 ]]; do
|
|
21
|
+
case "$1" in
|
|
22
|
+
--free-dir)
|
|
23
|
+
FREE_DIR="$2"
|
|
24
|
+
shift 2
|
|
25
|
+
;;
|
|
26
|
+
--remote-dir)
|
|
27
|
+
REMOTE_DIR="$2"
|
|
28
|
+
shift 2
|
|
29
|
+
;;
|
|
30
|
+
-h|--help)
|
|
31
|
+
usage
|
|
32
|
+
exit 0
|
|
33
|
+
;;
|
|
34
|
+
*)
|
|
35
|
+
echo "Unknown argument: $1"
|
|
36
|
+
usage
|
|
37
|
+
exit 1
|
|
38
|
+
;;
|
|
39
|
+
esac
|
|
40
|
+
done
|
|
41
|
+
|
|
42
|
+
if [[ -z "$FREE_DIR" || -z "$REMOTE_DIR" ]]; then
|
|
43
|
+
echo "Both --free-dir and --remote-dir are required."
|
|
44
|
+
usage
|
|
45
|
+
exit 1
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
FREE_JSON="$FREE_DIR/jupyter-lite.json"
|
|
49
|
+
REMOTE_JSON="$REMOTE_DIR/jupyter-lite.json"
|
|
50
|
+
|
|
51
|
+
if [[ ! -f "$FREE_JSON" ]]; then
|
|
52
|
+
echo "Missing free config: $FREE_JSON"
|
|
53
|
+
exit 1
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
if [[ ! -f "$REMOTE_JSON" ]]; then
|
|
57
|
+
echo "Missing remote config: $REMOTE_JSON"
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
HAS_FREE_REMOTE_EXT="$(python3 - <<'PY' "$FREE_JSON"
|
|
62
|
+
import json
|
|
63
|
+
import sys
|
|
64
|
+
|
|
65
|
+
path = sys.argv[1]
|
|
66
|
+
with open(path, 'r', encoding='utf-8') as f:
|
|
67
|
+
data = json.load(f)
|
|
68
|
+
|
|
69
|
+
exts = data.get('jupyter-config-data', {}).get('federated_extensions', [])
|
|
70
|
+
has_remote = any(ext.get('name') == 'jupyterlite-remote-server' for ext in exts if isinstance(ext, dict))
|
|
71
|
+
print(1 if has_remote else 0)
|
|
72
|
+
PY
|
|
73
|
+
)"
|
|
74
|
+
|
|
75
|
+
HAS_REMOTE_REMOTE_EXT="$(python3 - <<'PY' "$REMOTE_JSON"
|
|
76
|
+
import json
|
|
77
|
+
import sys
|
|
78
|
+
|
|
79
|
+
path = sys.argv[1]
|
|
80
|
+
with open(path, 'r', encoding='utf-8') as f:
|
|
81
|
+
data = json.load(f)
|
|
82
|
+
|
|
83
|
+
exts = data.get('jupyter-config-data', {}).get('federated_extensions', [])
|
|
84
|
+
has_remote = any(ext.get('name') == 'jupyterlite-remote-server' for ext in exts if isinstance(ext, dict))
|
|
85
|
+
print(1 if has_remote else 0)
|
|
86
|
+
PY
|
|
87
|
+
)"
|
|
88
|
+
|
|
89
|
+
if [[ "$HAS_FREE_REMOTE_EXT" -ne 0 ]]; then
|
|
90
|
+
echo "Validation failed: free assets include jupyterlite-remote-server: $FREE_JSON"
|
|
91
|
+
exit 1
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
if [[ "$HAS_REMOTE_REMOTE_EXT" -ne 1 ]]; then
|
|
95
|
+
echo "Validation failed: remote assets do not include jupyterlite-remote-server: $REMOTE_JSON"
|
|
96
|
+
exit 1
|
|
97
|
+
fi
|
|
98
|
+
|
|
99
|
+
echo "JupyterLite asset validation passed."
|
|
100
|
+
echo " free: $FREE_JSON"
|
|
101
|
+
echo " remote: $REMOTE_JSON"
|
package/dist/noop.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gen3/toolsff",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.45",
|
|
4
4
|
"description": "tools for processing Gen3 commons content: color theme, icons, sharedFilters",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"axios": "^1.8.2"
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "24a5383c30b654ae045004043c4b2bc540fd68cb"
|
|
52
52
|
}
|