@gen3/toolsff 0.12.44 → 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.
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
@@ -0,0 +1,4 @@
1
+ // Intentional no-op: used as a dummy Rollup input for copy-only entries.
2
+ var noop = {};
3
+
4
+ export { noop as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gen3/toolsff",
3
- "version": "0.12.44",
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": "be9886cec24499b104395e8c26d912d9aca464ad"
51
+ "gitHead": "24a5383c30b654ae045004043c4b2bc540fd68cb"
52
52
  }