@smartmemory/compose 0.2.51-beta → 0.2.52-beta
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/assets/App-Ddhfx18X.js +889 -0
- package/dist/assets/{_baseUniq-CsOHc_iS.js → _baseUniq-CoEVVYyC.js} +1 -1
- package/dist/assets/{arc-BXht3LyE.js → arc-DFnGxuCB.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-BV1r86-w.js → architectureDiagram-Q4EWVU46-66rx01Tn.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-BgcMJjAR.js → blockDiagram-DXYQGD6D-AE5PKSak.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-nBIRLJTv.js → c4Diagram-AHTNJAMY-DtDSNlOX.js} +1 -1
- package/dist/assets/channel-CScyWprq.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB-CNmGyhrp.js → chunk-4BX2VUAB-oXU2npoL.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-MLT7I7w4.js → chunk-4TB4RGXK-5w2lZAjW.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-D8KuKVLa.js → chunk-55IACEB6-BEEk2FdH.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-TPlt1bS2.js → chunk-EDXVE4YY-Bse2kdRh.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-tYY8xcjr.js → chunk-FMBD7UC4-BAa7Edp6.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-yBPwT1AT.js → chunk-OYMX7WX6-CGr_YiAc.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-B4Wfybww.js → chunk-QZHKN3VN-BMWFLZ8t.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-DE6_5aqh.js → chunk-YZCP3GAM-CqjNXooj.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-DibVYYdr.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-DibVYYdr.js +1 -0
- package/dist/assets/clone-ZMALIFmw.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-DzzRyJtB.js → cose-bilkent-S5V4N54A-NYnH3mVW.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-CTcTVGdU.js → dagre-KV5264BT--mrfaTHR.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-qR6mc8kJ.js → diagram-5BDNPKRD-DjXvyFzh.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-CUcGXyNb.js → diagram-G4DWMVQ6-BrrexEvm.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-B68cPonH.js → diagram-MMDJMWI5-D3Q0OT2M.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-q8Id8eFG.js → diagram-TYMM5635-DKTntmxE.js} +1 -1
- package/dist/assets/{erDiagram-SMLLAGMA-CtxJi57K.js → erDiagram-SMLLAGMA-BWbR0dPj.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-BzzO4JYU.js → flowDiagram-DWJPFMVM-Dj5M5XaY.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-Dn0wIyhR.js → ganttDiagram-T4ZO3ILL-DKppFh_5.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-tnNFXfMM.js → gitGraphDiagram-UUTBAWPF-9xQ9O25V.js} +1 -1
- package/dist/assets/{graph-Tq_bs_r0.js → graph-Cgmhvu1T.js} +1 -1
- package/dist/assets/index-BxRamj_i.css +1 -0
- package/dist/assets/{index-8UhRLbGq.js → index-D8uDfn8y.js} +2 -2
- package/dist/assets/{infoDiagram-42DDH7IO-BXLvLeS0.js → infoDiagram-42DDH7IO-DQYWVzVN.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-DWx-7BBy.js → ishikawaDiagram-UXIWVN3A-CK2IFFAP.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-C42hXNha.js → journeyDiagram-VCZTEJTY-DAH5Stkf.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-CEq930ew.js → kanban-definition-6JOO6SKY-Bi0aCqkv.js} +1 -1
- package/dist/assets/{layout-qtUgN9BC.js → layout-DN13RkA1.js} +1 -1
- package/dist/assets/{linear-D158F7OT.js → linear-ClGEGlS2.js} +1 -1
- package/dist/assets/{min-hESxN-c0.js → min-CXr-fUFS.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-d9SSh2nG.js → mindmap-definition-QFDTVHPH-Wjr-PgC6.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-gglmeMav.js → pieDiagram-DEJITSTG-CVipbIlr.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-CqFC_htU.js → quadrantDiagram-34T5L4WZ-CHJFyhm-.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-B1ZFIotK.js → requirementDiagram-MS252O5E-CU9Rlyq5.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6-BvItvZt5.js → sankeyDiagram-XADWPNL6-BSULeqST.js} +1 -1
- package/dist/assets/{sequenceDiagram-FGHM5R23-CAIn5Z3U.js → sequenceDiagram-FGHM5R23-CCOKXvjj.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-CyJrGzib.js → stateDiagram-FHFEXIEX-B91gKA7Q.js} +1 -1
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-Dc8ur9ta.js +1 -0
- package/dist/assets/{timeline-definition-GMOUNBTQ-k_0vJQAK.js → timeline-definition-GMOUNBTQ-C8SZmaLp.js} +1 -1
- package/dist/assets/{vennDiagram-DHZGUBPP-TZAW60b0.js → vennDiagram-DHZGUBPP-YvEPDlsM.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-DzQEoG6X.js → wardley-RL74JXVD-TMBUq_w1.js} +1 -1
- package/dist/assets/{wardleyDiagram-NUSXRM2D-BAoVVIjZ.js → wardleyDiagram-NUSXRM2D-DzEkPrri.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-CynkZcUb.js → xychartDiagram-5P7HB3ND-BIiCeiYk.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/scripts/release-manual.sh +98 -0
- package/server/file-watcher.js +33 -0
- package/server/index.js +7 -0
- package/server/pipeline-routes.js +773 -3
- package/dist/assets/App-CT0vXPgd.js +0 -724
- package/dist/assets/channel-Dd4XaiYv.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-DshSQDF9.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-DshSQDF9.js +0 -1
- package/dist/assets/clone-CBsbNGAa.js +0 -1
- package/dist/assets/index-CRqB9els.css +0 -1
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-DprhF_Ho.js +0 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# Manual release for @smartmemory/compose — a stand-in for
|
|
4
|
+
# .github/workflows/{beta,publish}.yml while GitHub Actions is dormant.
|
|
5
|
+
#
|
|
6
|
+
# WHY: the smartmemory org's sole owner account (smartmem-dev) is suspended, so
|
|
7
|
+
# pushes by it don't trigger Actions. This reproduces the CI publish locally.
|
|
8
|
+
# DELETE this script once CI is restored (a non-frozen owner pushing, or an
|
|
9
|
+
# org-owned GitHub App). The CI workflows remain the source of truth.
|
|
10
|
+
#
|
|
11
|
+
# Usage:
|
|
12
|
+
# scripts/release-manual.sh beta # publish next X.Y.(Z+1)-beta to the `beta` tag
|
|
13
|
+
# scripts/release-manual.sh stable [X.Y.Z] # publish stable to `latest` + git tag + GH release
|
|
14
|
+
# scripts/release-manual.sh beta --dry-run # build + dry-run publish, no upload
|
|
15
|
+
# scripts/release-manual.sh stable --dry-run
|
|
16
|
+
#
|
|
17
|
+
# Requires: NPM_SM_TOKEN = npm granular token with "bypass 2FA" (the same token
|
|
18
|
+
# CI uses as the NPM_TOKEN secret). The token is written only to a
|
|
19
|
+
# temp npmrc (removed on exit) — never to ~/.npmrc, argv, or logs.
|
|
20
|
+
#
|
|
21
|
+
# Mirrors CI exactly except: no --provenance (needs CI OIDC) and tests are not
|
|
22
|
+
# re-run (run `npm test` yourself first if the tree changed since the last green).
|
|
23
|
+
set -euo pipefail
|
|
24
|
+
|
|
25
|
+
MODE="${1:-beta}"
|
|
26
|
+
ARG2="${2:-}"
|
|
27
|
+
DRY=""
|
|
28
|
+
for a in "$@"; do [ "$a" = "--dry-run" ] && DRY="--dry-run"; done
|
|
29
|
+
|
|
30
|
+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
31
|
+
cd "$REPO_ROOT"
|
|
32
|
+
PKG="@smartmemory/compose"
|
|
33
|
+
|
|
34
|
+
if [ -z "${NPM_SM_TOKEN:-}" ]; then
|
|
35
|
+
echo "ERROR: NPM_SM_TOKEN is not set (need an npm granular token with 'bypass 2FA')." >&2
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
TMPRC="$(mktemp)"
|
|
40
|
+
printf '//registry.npmjs.org/:_authToken=%s\nregistry=https://registry.npmjs.org/\n' "$NPM_SM_TOKEN" > "$TMPRC"
|
|
41
|
+
cleanup() { rm -f "$TMPRC"; git checkout -- package.json 2>/dev/null || true; }
|
|
42
|
+
trap cleanup EXIT
|
|
43
|
+
|
|
44
|
+
set_version() {
|
|
45
|
+
node -e "const fs=require('fs');const p=JSON.parse(fs.readFileSync('package.json','utf8'));p.version='$1';fs.writeFileSync('package.json',JSON.stringify(p,null,2)+'\n');"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
ORIG_VERSION="$(node -p "require('./package.json').version")"
|
|
49
|
+
NPM_BETA="$(npm view "$PKG@beta" version 2>/dev/null || echo '')"
|
|
50
|
+
|
|
51
|
+
case "$MODE" in
|
|
52
|
+
beta)
|
|
53
|
+
NPM_BASE="${NPM_BETA%-beta}"; PKG_BASE="${ORIG_VERSION%-beta}"
|
|
54
|
+
if [ -n "$NPM_BETA" ] && [ "$(printf '%s\n' "$NPM_BASE" "$PKG_BASE" | sort -V | tail -n1)" = "$NPM_BASE" ]; then
|
|
55
|
+
BASE="$NPM_BASE"
|
|
56
|
+
else
|
|
57
|
+
BASE="$PKG_BASE"
|
|
58
|
+
fi
|
|
59
|
+
IFS=. read -r MA MI PA <<< "$BASE"
|
|
60
|
+
VERSION="${MA}.${MI}.$((PA+1))-beta"
|
|
61
|
+
TAG="beta"
|
|
62
|
+
;;
|
|
63
|
+
stable)
|
|
64
|
+
if [ -n "$ARG2" ] && [ "$ARG2" != "--dry-run" ]; then
|
|
65
|
+
VERSION="$ARG2"
|
|
66
|
+
else
|
|
67
|
+
VERSION="${NPM_BETA%-beta}"; [ -z "$VERSION" ] && VERSION="${ORIG_VERSION%-beta}"
|
|
68
|
+
fi
|
|
69
|
+
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
70
|
+
echo "ERROR: stable version must be X.Y.Z (got '$VERSION'). Pass it explicitly: stable 0.2.52" >&2
|
|
71
|
+
exit 1
|
|
72
|
+
fi
|
|
73
|
+
TAG="latest"
|
|
74
|
+
;;
|
|
75
|
+
*)
|
|
76
|
+
echo "Usage: $0 {beta | stable [X.Y.Z]} [--dry-run]" >&2
|
|
77
|
+
exit 1
|
|
78
|
+
;;
|
|
79
|
+
esac
|
|
80
|
+
|
|
81
|
+
echo ">> $MODE: $PKG@$VERSION -> dist-tag '$TAG' ${DRY:+[DRY-RUN]}"
|
|
82
|
+
set_version "$VERSION"
|
|
83
|
+
echo ">> build (vite)"; npm run build >/dev/null
|
|
84
|
+
echo ">> publish"
|
|
85
|
+
npm publish --access public --tag "$TAG" --ignore-scripts $DRY --userconfig "$TMPRC"
|
|
86
|
+
|
|
87
|
+
if [ "$MODE" = "stable" ] && [ -z "$DRY" ]; then
|
|
88
|
+
echo ">> git tag v$VERSION (+ push via origin SSH)"
|
|
89
|
+
git rev-parse "v$VERSION" >/dev/null 2>&1 || git tag "v$VERSION"
|
|
90
|
+
git push origin "v$VERSION" 2>&1 || echo " (tag push skipped — may already exist on origin)"
|
|
91
|
+
echo ">> GitHub release (best-effort; needs gh authed to an account that can write to the repo)"
|
|
92
|
+
gh release create "v$VERSION" --repo smartmemory/compose --title "v$VERSION" \
|
|
93
|
+
--notes "Stable release v$VERSION" --latest 2>&1 \
|
|
94
|
+
|| echo " (release create failed — e.g. gh active account lacks repo access; create it manually if wanted)"
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
echo ">> done. live dist-tags:"
|
|
98
|
+
npm view "$PKG" dist-tags --prefer-online 2>/dev/null || true
|
package/server/file-watcher.js
CHANGED
|
@@ -14,6 +14,24 @@ import { resolveDocsPathFromConfig, resolveFeaturesPathFromConfig } from '../lib
|
|
|
14
14
|
|
|
15
15
|
const PROJECT_ROOT = getTargetRoot();
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* fs.watch fileFilter for the pipelines/ watch (COMP-PIPE-EDIT-6): only
|
|
19
|
+
* *.stratum.yaml files trigger a specChanged. `filename` is what fs.watch hands
|
|
20
|
+
* us (a name, possibly with a subdir prefix on recursive watches).
|
|
21
|
+
*/
|
|
22
|
+
export function isStratumSpecFile(filename) {
|
|
23
|
+
return typeof filename === 'string' && filename.endsWith('.stratum.yaml');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Shape of the vision-WS `specChanged` broadcast (COMP-PIPE-EDIT-6). `file` is a
|
|
28
|
+
* BASENAME (editorSpecFile is a bare filename, so the store compares on basename);
|
|
29
|
+
* `path` carries the prefixed relative path for diagnostics.
|
|
30
|
+
*/
|
|
31
|
+
export function buildSpecChangedMessage(file, relativePath) {
|
|
32
|
+
return { type: 'specChanged', file, path: relativePath };
|
|
33
|
+
}
|
|
34
|
+
|
|
17
35
|
export class FileWatcherServer {
|
|
18
36
|
constructor() {
|
|
19
37
|
this.clients = new Set();
|
|
@@ -215,6 +233,21 @@ export class FileWatcherServer {
|
|
|
215
233
|
}
|
|
216
234
|
});
|
|
217
235
|
|
|
236
|
+
// Watch pipelines/ for *.stratum.yaml changes (COMP-PIPE-EDIT-6). A spec the
|
|
237
|
+
// pipeline editor has open can be edited externally (another writer, the user
|
|
238
|
+
// editing the file directly). The editor store lives on the VISION WS, not
|
|
239
|
+
// /ws/files, so emit a DEDICATED `specChanged` message via the onSpecChanged
|
|
240
|
+
// callback (wired in server/index.js to visionServer.broadcastMessage), NOT a
|
|
241
|
+
// `fileChanged` on this server's /ws/files. The payload carries `file` as a
|
|
242
|
+
// BASENAME because editorSpecFile is a bare filename (a prefixed relative path
|
|
243
|
+
// would never match the store's compare).
|
|
244
|
+
const pipelinesDir = path.join(PROJECT_ROOT, 'pipelines');
|
|
245
|
+
watchDir(pipelinesDir, 'pipelines', (relativePath, fullPath) => {
|
|
246
|
+
if (typeof this.onSpecChanged === 'function') {
|
|
247
|
+
this.onSpecChanged(buildSpecChangedMessage(path.basename(fullPath), relativePath));
|
|
248
|
+
}
|
|
249
|
+
}, isStratumSpecFile);
|
|
250
|
+
|
|
218
251
|
// Watch .compose/data/ for active-build.json changes
|
|
219
252
|
const self = this;
|
|
220
253
|
const dataDir = path.join(PROJECT_ROOT, '.compose', 'data');
|
package/server/index.js
CHANGED
|
@@ -231,6 +231,13 @@ fileWatcher.onBuildStateChanged = (state) => {
|
|
|
231
231
|
}
|
|
232
232
|
};
|
|
233
233
|
|
|
234
|
+
// Wire pipelines/*.stratum.yaml external changes → broadcast `specChanged` on
|
|
235
|
+
// the VISION WS (COMP-PIPE-EDIT-6 — the channel the pipeline editor store uses,
|
|
236
|
+
// not /ws/files). The message already carries { type:'specChanged', file, path }.
|
|
237
|
+
fileWatcher.onSpecChanged = (message) => {
|
|
238
|
+
visionServer.broadcastMessage(message);
|
|
239
|
+
};
|
|
240
|
+
|
|
234
241
|
// ---------------------------------------------------------------------------
|
|
235
242
|
// Static serving + SPA fallback (BOTH modes — additive)
|
|
236
243
|
// Mounted AFTER all API routes so /api/* is never shadowed.
|