@moonwatch/js 0.1.13 → 0.1.14
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/index.js +9 -7
- package/dist/index.mjs +9 -7
- package/package.json +1 -1
- package/dist/init.js +0 -106
package/dist/index.js
CHANGED
|
@@ -347,7 +347,7 @@ var LEVEL_ORDER = {
|
|
|
347
347
|
ERROR: 3,
|
|
348
348
|
FATAL: 4
|
|
349
349
|
};
|
|
350
|
-
var SDK_VERSION = "0.1.
|
|
350
|
+
var SDK_VERSION = "0.1.14";
|
|
351
351
|
var DEFAULT_BASE_URL = "https://ingest.moonwatch.dev";
|
|
352
352
|
var BATCH_SIZE = 50;
|
|
353
353
|
var MAX_BUFFER_SIZE = 1e3;
|
|
@@ -788,12 +788,14 @@ ${arg.stack}`;
|
|
|
788
788
|
}
|
|
789
789
|
registerLifecycleHooks() {
|
|
790
790
|
if (typeof window !== "undefined") {
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
791
|
+
if (typeof document !== "undefined") {
|
|
792
|
+
this._onVisibilityChange = () => {
|
|
793
|
+
if (document.visibilityState === "hidden") {
|
|
794
|
+
this.flushSync();
|
|
795
|
+
}
|
|
796
|
+
};
|
|
797
|
+
document.addEventListener("visibilitychange", this._onVisibilityChange);
|
|
798
|
+
}
|
|
797
799
|
this._onBeforeUnload = () => {
|
|
798
800
|
this.flushSync();
|
|
799
801
|
};
|
package/dist/index.mjs
CHANGED
|
@@ -318,7 +318,7 @@ var LEVEL_ORDER = {
|
|
|
318
318
|
ERROR: 3,
|
|
319
319
|
FATAL: 4
|
|
320
320
|
};
|
|
321
|
-
var SDK_VERSION = "0.1.
|
|
321
|
+
var SDK_VERSION = "0.1.14";
|
|
322
322
|
var DEFAULT_BASE_URL = "https://ingest.moonwatch.dev";
|
|
323
323
|
var BATCH_SIZE = 50;
|
|
324
324
|
var MAX_BUFFER_SIZE = 1e3;
|
|
@@ -759,12 +759,14 @@ ${arg.stack}`;
|
|
|
759
759
|
}
|
|
760
760
|
registerLifecycleHooks() {
|
|
761
761
|
if (typeof window !== "undefined") {
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
762
|
+
if (typeof document !== "undefined") {
|
|
763
|
+
this._onVisibilityChange = () => {
|
|
764
|
+
if (document.visibilityState === "hidden") {
|
|
765
|
+
this.flushSync();
|
|
766
|
+
}
|
|
767
|
+
};
|
|
768
|
+
document.addEventListener("visibilitychange", this._onVisibilityChange);
|
|
769
|
+
}
|
|
768
770
|
this._onBeforeUnload = () => {
|
|
769
771
|
this.flushSync();
|
|
770
772
|
};
|
package/package.json
CHANGED
package/dist/init.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
// src/init.ts
|
|
5
|
-
var import_fs = require("fs");
|
|
6
|
-
var import_path = require("path");
|
|
7
|
-
var import_readline = require("readline");
|
|
8
|
-
var CLAUDE_MD = "CLAUDE.md";
|
|
9
|
-
var CURSORRULES = ".cursorrules";
|
|
10
|
-
var MARKER = "@moonwatch/js";
|
|
11
|
-
var cwd = process.cwd();
|
|
12
|
-
function prompt(question) {
|
|
13
|
-
const rl = (0, import_readline.createInterface)({ input: process.stdin, output: process.stdout });
|
|
14
|
-
return new Promise((resolve2) => {
|
|
15
|
-
rl.question(question, (answer) => {
|
|
16
|
-
rl.close();
|
|
17
|
-
resolve2(answer.trim());
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
function findSkillRef() {
|
|
22
|
-
const skillPath = (0, import_path.resolve)(__dirname, "..", "SKILL.md");
|
|
23
|
-
if ((0, import_fs.existsSync)(skillPath)) {
|
|
24
|
-
const relative = (0, import_path.resolve)(cwd) === (0, import_path.resolve)((0, import_path.join)(skillPath, "..", "..")) ? "node_modules/@moonwatch/js/SKILL.md" : skillPath.replace(/\\/g, "/");
|
|
25
|
-
return `> See ${relative} for the @moonwatch/js logging workflow.`;
|
|
26
|
-
}
|
|
27
|
-
return "> See node_modules/@moonwatch/js/SKILL.md for the @moonwatch/js logging workflow.";
|
|
28
|
-
}
|
|
29
|
-
function appendIfMissing(filename) {
|
|
30
|
-
const filepath = (0, import_path.resolve)(cwd, filename);
|
|
31
|
-
let content = "";
|
|
32
|
-
if ((0, import_fs.existsSync)(filepath)) {
|
|
33
|
-
content = (0, import_fs.readFileSync)(filepath, "utf-8");
|
|
34
|
-
if (content.includes(MARKER)) {
|
|
35
|
-
console.log(` ${filename}: already configured, skipping`);
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
const skillRef = findSkillRef();
|
|
40
|
-
const separator = content.length > 0 && !content.endsWith("\n") ? "\n\n" : content.length > 0 ? "\n" : "";
|
|
41
|
-
(0, import_fs.writeFileSync)(filepath, content + separator + skillRef + "\n", "utf-8");
|
|
42
|
-
console.log(` ${filename}: ${content.length > 0 ? "updated" : "created"}`);
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
function setupClaudeApiKey(apiKey) {
|
|
46
|
-
const claudeDir = (0, import_path.join)(cwd, ".claude");
|
|
47
|
-
const settingsPath = (0, import_path.join)(claudeDir, "settings.local.json");
|
|
48
|
-
let settings = {};
|
|
49
|
-
if ((0, import_fs.existsSync)(settingsPath)) {
|
|
50
|
-
try {
|
|
51
|
-
settings = JSON.parse((0, import_fs.readFileSync)(settingsPath, "utf-8"));
|
|
52
|
-
} catch {
|
|
53
|
-
}
|
|
54
|
-
if (settings.env?.MOONWATCH_API_KEY) {
|
|
55
|
-
const existing = settings.env.MOONWATCH_API_KEY;
|
|
56
|
-
const masked = existing.slice(0, 6) + "..." + existing.slice(-4);
|
|
57
|
-
console.log(` .claude/settings.local.json: API key already set (${masked}), overwriting`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (!(0, import_fs.existsSync)(claudeDir)) {
|
|
61
|
-
(0, import_fs.mkdirSync)(claudeDir, { recursive: true });
|
|
62
|
-
}
|
|
63
|
-
settings.env = settings.env || {};
|
|
64
|
-
settings.env.MOONWATCH_API_KEY = apiKey;
|
|
65
|
-
(0, import_fs.writeFileSync)(settingsPath, JSON.stringify(settings, null, 2) + "\n", "utf-8");
|
|
66
|
-
console.log(` .claude/settings.local.json: API key saved`);
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
async function main() {
|
|
70
|
-
console.log("\n@moonwatch/js init\n");
|
|
71
|
-
console.log("Setting up AI assistant integration...");
|
|
72
|
-
const claudeUpdated = appendIfMissing(CLAUDE_MD);
|
|
73
|
-
const cursorUpdated = appendIfMissing(CURSORRULES);
|
|
74
|
-
if (!claudeUpdated && !cursorUpdated) {
|
|
75
|
-
console.log(" Already set up.\n");
|
|
76
|
-
} else {
|
|
77
|
-
console.log("");
|
|
78
|
-
}
|
|
79
|
-
console.log("Setting up Claude Code MCP connection...");
|
|
80
|
-
const existingSettings = (0, import_path.join)(cwd, ".claude", "settings.local.json");
|
|
81
|
-
let hasKey = false;
|
|
82
|
-
if ((0, import_fs.existsSync)(existingSettings)) {
|
|
83
|
-
try {
|
|
84
|
-
const s = JSON.parse((0, import_fs.readFileSync)(existingSettings, "utf-8"));
|
|
85
|
-
hasKey = !!s.env?.MOONWATCH_API_KEY;
|
|
86
|
-
} catch {
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (hasKey) {
|
|
90
|
-
const overwrite = await prompt(" API key already configured. Overwrite? (y/N) ");
|
|
91
|
-
if (overwrite.toLowerCase() !== "y") {
|
|
92
|
-
console.log(" Skipping.\n");
|
|
93
|
-
console.log("Done.\n");
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
const apiKey = await prompt(" Enter your Moonwatch API key: ");
|
|
98
|
-
if (!apiKey) {
|
|
99
|
-
console.log(" No key provided, skipping.\n");
|
|
100
|
-
} else {
|
|
101
|
-
setupClaudeApiKey(apiKey);
|
|
102
|
-
console.log("");
|
|
103
|
-
}
|
|
104
|
-
console.log("Done. Your AI assistant now has access to the Moonwatch workflow guide.\n");
|
|
105
|
-
}
|
|
106
|
-
main();
|