@multiplayer-app/sandbox 0.0.33-beta.3 → 0.0.34

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.
Files changed (122) hide show
  1. package/dist/agents/content-generator.agent.d.ts.map +1 -1
  2. package/dist/agents/content-generator.agent.js +8 -0
  3. package/dist/agents/content-generator.agent.js.map +1 -1
  4. package/dist/agents/shared/content-generator-system-prompt.d.ts.map +1 -1
  5. package/dist/agents/shared/content-generator-system-prompt.js +2 -0
  6. package/dist/agents/shared/content-generator-system-prompt.js.map +1 -1
  7. package/dist/agents/shared/design-skills.d.ts +48 -0
  8. package/dist/agents/shared/design-skills.d.ts.map +1 -0
  9. package/dist/agents/shared/design-skills.js +230 -0
  10. package/dist/agents/shared/design-skills.js.map +1 -0
  11. package/dist/agents/shared/generate-session-images.tool.d.ts +15 -0
  12. package/dist/agents/shared/generate-session-images.tool.d.ts.map +1 -0
  13. package/dist/agents/shared/generate-session-images.tool.js +98 -0
  14. package/dist/agents/shared/generate-session-images.tool.js.map +1 -0
  15. package/dist/lib/session-pages/write-binary-session-artifact.d.ts +12 -0
  16. package/dist/lib/session-pages/write-binary-session-artifact.d.ts.map +1 -0
  17. package/dist/lib/session-pages/write-binary-session-artifact.js +23 -0
  18. package/dist/lib/session-pages/write-binary-session-artifact.js.map +1 -0
  19. package/dist/routes/files/download.d.ts +8 -0
  20. package/dist/routes/files/download.d.ts.map +1 -0
  21. package/dist/routes/files/download.js +44 -0
  22. package/dist/routes/files/download.js.map +1 -0
  23. package/dist/routes/files/index.d.ts.map +1 -1
  24. package/dist/routes/files/index.js +2 -0
  25. package/dist/routes/files/index.js.map +1 -1
  26. package/package.json +9 -9
  27. package/dist/agents/blocknote.agent.d.ts +0 -6
  28. package/dist/agents/blocknote.agent.d.ts.map +0 -1
  29. package/dist/agents/blocknote.agent.js +0 -18
  30. package/dist/agents/blocknote.agent.js.map +0 -1
  31. package/dist/agents/filingramp-fetch.agent.d.ts +0 -4
  32. package/dist/agents/filingramp-fetch.agent.d.ts.map +0 -1
  33. package/dist/agents/filingramp-fetch.agent.js +0 -195
  34. package/dist/agents/filingramp-fetch.agent.js.map +0 -1
  35. package/dist/agents/knowledge/filingramp-endpoints.d.ts +0 -23
  36. package/dist/agents/knowledge/filingramp-endpoints.d.ts.map +0 -1
  37. package/dist/agents/knowledge/filingramp-endpoints.js +0 -116
  38. package/dist/agents/knowledge/filingramp-endpoints.js.map +0 -1
  39. package/dist/agents/shared/blocknote-system-prompt.d.ts +0 -2
  40. package/dist/agents/shared/blocknote-system-prompt.d.ts.map +0 -1
  41. package/dist/agents/shared/blocknote-system-prompt.js +0 -40
  42. package/dist/agents/shared/blocknote-system-prompt.js.map +0 -1
  43. package/dist/agents/shared/get-latest-session-artifact.tool.d.ts +0 -7
  44. package/dist/agents/shared/get-latest-session-artifact.tool.d.ts.map +0 -1
  45. package/dist/agents/shared/get-latest-session-artifact.tool.js +0 -43
  46. package/dist/agents/shared/get-latest-session-artifact.tool.js.map +0 -1
  47. package/dist/agents/shared/get-session-artifact-content.tool.d.ts +0 -7
  48. package/dist/agents/shared/get-session-artifact-content.tool.d.ts.map +0 -1
  49. package/dist/agents/shared/get-session-artifact-content.tool.js +0 -44
  50. package/dist/agents/shared/get-session-artifact-content.tool.js.map +0 -1
  51. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts +0 -5
  52. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts.map +0 -1
  53. package/dist/agents/shared/list-session-artifact-paths.tool.js +0 -37
  54. package/dist/agents/shared/list-session-artifact-paths.tool.js.map +0 -1
  55. package/dist/lib/ai/agent-ai-service.d.ts +0 -3
  56. package/dist/lib/ai/agent-ai-service.d.ts.map +0 -1
  57. package/dist/lib/ai/agent-ai-service.js +0 -15
  58. package/dist/lib/ai/agent-ai-service.js.map +0 -1
  59. package/dist/lib/ai/ai-error-details.d.ts +0 -13
  60. package/dist/lib/ai/ai-error-details.d.ts.map +0 -1
  61. package/dist/lib/ai/ai-error-details.js +0 -84
  62. package/dist/lib/ai/ai-error-details.js.map +0 -1
  63. package/dist/lib/ai/generate-ai-text.d.ts +0 -12
  64. package/dist/lib/ai/generate-ai-text.d.ts.map +0 -1
  65. package/dist/lib/ai/generate-ai-text.js +0 -105
  66. package/dist/lib/ai/generate-ai-text.js.map +0 -1
  67. package/dist/lib/ai/run-explicit-agent.d.ts +0 -15
  68. package/dist/lib/ai/run-explicit-agent.d.ts.map +0 -1
  69. package/dist/lib/ai/run-explicit-agent.js +0 -30
  70. package/dist/lib/ai/run-explicit-agent.js.map +0 -1
  71. package/dist/lib/notebooks/notebook-sql-client.d.ts +0 -5
  72. package/dist/lib/notebooks/notebook-sql-client.d.ts.map +0 -1
  73. package/dist/lib/notebooks/notebook-sql-client.js +0 -37
  74. package/dist/lib/notebooks/notebook-sql-client.js.map +0 -1
  75. package/dist/lib/notebooks/notebook-sql-schema.d.ts +0 -16
  76. package/dist/lib/notebooks/notebook-sql-schema.d.ts.map +0 -1
  77. package/dist/lib/notebooks/notebook-sql-schema.js +0 -117
  78. package/dist/lib/notebooks/notebook-sql-schema.js.map +0 -1
  79. package/dist/lib/notebooks/notebook-sql.d.ts +0 -9
  80. package/dist/lib/notebooks/notebook-sql.d.ts.map +0 -1
  81. package/dist/lib/notebooks/notebook-sql.js +0 -36
  82. package/dist/lib/notebooks/notebook-sql.js.map +0 -1
  83. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts +0 -3
  84. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts.map +0 -1
  85. package/dist/lib/session-artifacts/apply-hashline-edits.js +0 -25
  86. package/dist/lib/session-artifacts/apply-hashline-edits.js.map +0 -1
  87. package/dist/lib/session-artifacts/artifact-text-edit.d.ts +0 -8
  88. package/dist/lib/session-artifacts/artifact-text-edit.d.ts.map +0 -1
  89. package/dist/lib/session-artifacts/artifact-text-edit.js +0 -23
  90. package/dist/lib/session-artifacts/artifact-text-edit.js.map +0 -1
  91. package/dist/lib/session-artifacts/hashline-tag.d.ts +0 -33
  92. package/dist/lib/session-artifacts/hashline-tag.d.ts.map +0 -1
  93. package/dist/lib/session-artifacts/hashline-tag.js +0 -80
  94. package/dist/lib/session-artifacts/hashline-tag.js.map +0 -1
  95. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts +0 -3
  96. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts.map +0 -1
  97. package/dist/lib/session-pages/inject-preview-error-reporter.js +0 -30
  98. package/dist/lib/session-pages/inject-preview-error-reporter.js.map +0 -1
  99. package/dist/lib/session-pages/read-session-artifact.d.ts +0 -7
  100. package/dist/lib/session-pages/read-session-artifact.d.ts.map +0 -1
  101. package/dist/lib/session-pages/read-session-artifact.js +0 -60
  102. package/dist/lib/session-pages/read-session-artifact.js.map +0 -1
  103. package/dist/lib/session-pages/session-pico-css.d.ts +0 -5
  104. package/dist/lib/session-pages/session-pico-css.d.ts.map +0 -1
  105. package/dist/lib/session-pages/session-pico-css.js +0 -11
  106. package/dist/lib/session-pages/session-pico-css.js.map +0 -1
  107. package/dist/realtime/realtime-auth.d.ts +0 -12
  108. package/dist/realtime/realtime-auth.d.ts.map +0 -1
  109. package/dist/realtime/realtime-auth.js +0 -25
  110. package/dist/realtime/realtime-auth.js.map +0 -1
  111. package/dist/realtime/yjs-account-namespace.d.ts +0 -5
  112. package/dist/realtime/yjs-account-namespace.d.ts.map +0 -1
  113. package/dist/realtime/yjs-account-namespace.js +0 -21
  114. package/dist/realtime/yjs-account-namespace.js.map +0 -1
  115. package/dist/routes/notebooks/sql-execute.d.ts +0 -3
  116. package/dist/routes/notebooks/sql-execute.d.ts.map +0 -1
  117. package/dist/routes/notebooks/sql-execute.js +0 -45
  118. package/dist/routes/notebooks/sql-execute.js.map +0 -1
  119. package/dist/routes/sql.d.ts +0 -2
  120. package/dist/routes/sql.d.ts.map +0 -1
  121. package/dist/routes/sql.js +0 -50
  122. package/dist/routes/sql.js.map +0 -1
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyHashlineEditsToContent = applyHashlineEditsToContent;
4
- const hashline_tag_1 = require("./hashline-tag");
5
- function applyHashlineEditsToContent(content, edits) {
6
- if (edits.length === 0) {
7
- throw new Error('At least one hashline edit is required');
8
- }
9
- const baseDocument = (0, hashline_tag_1.buildHashlineDocument)(content);
10
- const { trailingNewline } = baseDocument;
11
- let lineTexts = baseDocument.lines.map((line) => line.text);
12
- const resolveStartIndex = (edit) => {
13
- const snapshot = (0, hashline_tag_1.buildHashlineDocument)((0, hashline_tag_1.joinContentLines)(lineTexts, trailingNewline));
14
- return (0, hashline_tag_1.resolveHashlineRange)(snapshot, edit.startTag, edit.endTag).startIndex;
15
- };
16
- const sortedEdits = [...edits].sort((a, b) => resolveStartIndex(b) - resolveStartIndex(a));
17
- for (const edit of sortedEdits) {
18
- const snapshot = (0, hashline_tag_1.buildHashlineDocument)((0, hashline_tag_1.joinContentLines)(lineTexts, trailingNewline));
19
- const { startIndex, endIndex } = (0, hashline_tag_1.resolveHashlineRange)(snapshot, edit.startTag, edit.endTag);
20
- const replacementLines = (0, hashline_tag_1.splitContentLines)(edit.content).lines;
21
- lineTexts.splice(startIndex, endIndex - startIndex + 1, ...replacementLines);
22
- }
23
- return (0, hashline_tag_1.joinContentLines)(lineTexts, trailingNewline);
24
- }
25
- //# sourceMappingURL=apply-hashline-edits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply-hashline-edits.js","sourceRoot":"","sources":["../../../src/lib/session-artifacts/apply-hashline-edits.ts"],"names":[],"mappings":";;AAQA,kEAwBC;AAhCD,iDAKuB;AAGvB,SAAgB,2BAA2B,CAAC,OAAe,EAAE,KAA4B;IACvF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,oCAAqB,EAAC,OAAO,CAAC,CAAA;IACnD,MAAM,EAAE,eAAe,EAAE,GAAG,YAAY,CAAA;IACxC,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE3D,MAAM,iBAAiB,GAAG,CAAC,IAAyB,EAAU,EAAE;QAC9D,MAAM,QAAQ,GAAG,IAAA,oCAAqB,EAAC,IAAA,+BAAgB,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAA;QACpF,OAAO,IAAA,mCAAoB,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAA;IAC9E,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IAE1F,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAA,oCAAqB,EAAC,IAAA,+BAAgB,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAA;QACpF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAA,mCAAoB,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3F,MAAM,gBAAgB,GAAG,IAAA,gCAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAA;QAC9D,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAA;IAC9E,CAAC;IAED,OAAO,IAAA,+BAAgB,EAAC,SAAS,EAAE,eAAe,CAAC,CAAA;AACrD,CAAC"}
@@ -1,8 +0,0 @@
1
- export interface ArtifactTextEdit {
2
- /** Exact substring in the current document (must occur exactly once). */
3
- search: string;
4
- /** Replacement text (empty string deletes the match). */
5
- replace: string;
6
- }
7
- export declare function applyArtifactTextEditsToContent(content: string, edits: ArtifactTextEdit[]): string;
8
- //# sourceMappingURL=artifact-text-edit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifact-text-edit.d.ts","sourceRoot":"","sources":["../../../src/lib/session-artifacts/artifact-text-edit.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAA;IACd,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,EAAE,GACxB,MAAM,CAuBR"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyArtifactTextEditsToContent = applyArtifactTextEditsToContent;
4
- function applyArtifactTextEditsToContent(content, edits) {
5
- let current = content;
6
- for (let index = 0; index < edits.length; index++) {
7
- const edit = edits[index];
8
- if (!edit.search.length) {
9
- throw new Error(`Edit ${index + 1}: search must not be empty`);
10
- }
11
- const first = current.indexOf(edit.search);
12
- if (first === -1) {
13
- throw new Error(`Edit ${index + 1}: search text not found in document`);
14
- }
15
- const second = current.indexOf(edit.search, first + edit.search.length);
16
- if (second !== -1) {
17
- throw new Error(`Edit ${index + 1}: search text is ambiguous (multiple matches)`);
18
- }
19
- current = current.slice(0, first) + edit.replace + current.slice(first + edit.search.length);
20
- }
21
- return current;
22
- }
23
- //# sourceMappingURL=artifact-text-edit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifact-text-edit.js","sourceRoot":"","sources":["../../../src/lib/session-artifacts/artifact-text-edit.ts"],"names":[],"mappings":";;AAOA,0EA0BC;AA1BD,SAAgB,+BAA+B,CAC7C,OAAe,EACf,KAAyB;IAEzB,IAAI,OAAO,GAAG,OAAO,CAAA;IAErB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,4BAA4B,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,qCAAqC,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvE,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,+CAA+C,CAAC,CAAA;QACnF,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9F,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,33 +0,0 @@
1
- export interface HashlineLine {
2
- /** 1-based line number in the current document snapshot */
3
- lineNumber: number;
4
- text: string;
5
- /** e.g. 45:d4 — line number + content fingerprint */
6
- tag: string;
7
- }
8
- export declare function hashlineFingerprint(text: string): string;
9
- export declare function buildLineTag(lineNumber: number, text: string): string;
10
- export declare function parseLineTag(tag: string): {
11
- lineNumber: number;
12
- hash: string;
13
- };
14
- export declare function parseTagRange(range: string): {
15
- startTag: string;
16
- endTag: string;
17
- };
18
- export declare function splitContentLines(content: string): {
19
- lines: string[];
20
- trailingNewline: boolean;
21
- };
22
- export declare function joinContentLines(lines: string[], trailingNewline: boolean): string;
23
- export declare function buildHashlineDocument(content: string): {
24
- lines: HashlineLine[];
25
- trailingNewline: boolean;
26
- };
27
- export declare function resolveHashlineRange(document: {
28
- lines: HashlineLine[];
29
- }, startTag: string, endTag: string): {
30
- startIndex: number;
31
- endIndex: number;
32
- };
33
- //# sourceMappingURL=hashline-tag.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hashline-tag.d.ts","sourceRoot":"","sources":["../../../src/lib/session-artifacts/hashline-tag.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAM9E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAcjF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAYhG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAKlF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IACtD,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;CACzB,CAOA;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE;IAAE,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,EACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAiB1C"}
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hashlineFingerprint = hashlineFingerprint;
4
- exports.buildLineTag = buildLineTag;
5
- exports.parseLineTag = parseLineTag;
6
- exports.parseTagRange = parseTagRange;
7
- exports.splitContentLines = splitContentLines;
8
- exports.joinContentLines = joinContentLines;
9
- exports.buildHashlineDocument = buildHashlineDocument;
10
- exports.resolveHashlineRange = resolveHashlineRange;
11
- const node_crypto_1 = require("node:crypto");
12
- function hashlineFingerprint(text) {
13
- return (0, node_crypto_1.createHash)('sha256').update(text, 'utf8').digest('hex').slice(0, 2);
14
- }
15
- function buildLineTag(lineNumber, text) {
16
- return `${lineNumber}:${hashlineFingerprint(text)}`;
17
- }
18
- function parseLineTag(tag) {
19
- const match = /^(\d+):([0-9a-f]+)$/i.exec(tag.trim());
20
- if (!match) {
21
- throw new Error(`Invalid line tag: ${tag}`);
22
- }
23
- return { lineNumber: Number(match[1]), hash: match[2].toLowerCase() };
24
- }
25
- function parseTagRange(range) {
26
- const trimmed = range.trim();
27
- const separator = trimmed.indexOf('..');
28
- if (separator === -1) {
29
- const tag = trimmed;
30
- return { startTag: tag, endTag: tag };
31
- }
32
- const startTag = trimmed.slice(0, separator).trim();
33
- const endTag = trimmed.slice(separator + 2).trim();
34
- if (!startTag || !endTag) {
35
- throw new Error(`Invalid tag range: ${range}`);
36
- }
37
- return { startTag, endTag };
38
- }
39
- function splitContentLines(content) {
40
- if (content.length === 0) {
41
- return { lines: [], trailingNewline: false };
42
- }
43
- const trailingNewline = content.endsWith('\n');
44
- const body = trailingNewline ? content.slice(0, -1) : content;
45
- if (body.length === 0) {
46
- return { lines: [], trailingNewline };
47
- }
48
- return { lines: body.split('\n'), trailingNewline };
49
- }
50
- function joinContentLines(lines, trailingNewline) {
51
- if (lines.length === 0) {
52
- return trailingNewline ? '\n' : '';
53
- }
54
- return lines.join('\n') + (trailingNewline ? '\n' : '');
55
- }
56
- function buildHashlineDocument(content) {
57
- const { lines: rawLines, trailingNewline } = splitContentLines(content);
58
- const lines = rawLines.map((text, index) => {
59
- const lineNumber = index + 1;
60
- return { lineNumber, text, tag: buildLineTag(lineNumber, text) };
61
- });
62
- return { lines, trailingNewline };
63
- }
64
- function resolveHashlineRange(document, startTag, endTag) {
65
- const normalizedStart = startTag.trim();
66
- const normalizedEnd = endTag.trim();
67
- const startIndex = document.lines.findIndex((line) => line.tag === normalizedStart);
68
- const endIndex = document.lines.findIndex((line) => line.tag === normalizedEnd);
69
- if (startIndex === -1) {
70
- throw new Error(`Start tag not found: ${normalizedStart}`);
71
- }
72
- if (endIndex === -1) {
73
- throw new Error(`End tag not found: ${normalizedEnd}`);
74
- }
75
- if (startIndex > endIndex) {
76
- throw new Error(`Invalid tag range: ${normalizedStart}..${normalizedEnd}`);
77
- }
78
- return { startIndex, endIndex };
79
- }
80
- //# sourceMappingURL=hashline-tag.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hashline-tag.js","sourceRoot":"","sources":["../../../src/lib/session-artifacts/hashline-tag.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function buildPreviewErrorReporterScript(sessionId: string, previewPath: string): string;
2
- export declare function injectPreviewErrorReporter(html: string, sessionId: string, previewPath: string): string;
3
- //# sourceMappingURL=inject-preview-error-reporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inject-preview-error-reporter.d.ts","sourceRoot":"","sources":["../../../src/lib/session-pages/inject-preview-error-reporter.ts"],"names":[],"mappings":"AAMA,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAG9F;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAoBR"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildPreviewErrorReporterScript = buildPreviewErrorReporterScript;
4
- exports.injectPreviewErrorReporter = injectPreviewErrorReporter;
5
- const REPORTER_MARKER = 'id="multiplayer-artifact-preview-error-reporter"';
6
- function escapeJsString(value) {
7
- return value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
8
- }
9
- function buildPreviewErrorReporterScript(sessionId, previewPath) {
10
- const meta = `{sessionId:"${escapeJsString(sessionId)}",path:"${escapeJsString(previewPath)}"}`;
11
- return `<script ${REPORTER_MARKER}>(function(){var meta=${meta};function report(d){try{parent.postMessage(Object.assign({type:"artifact-preview-error"},meta,d),"*")}catch(e){}}window.addEventListener("error",function(e){report({kind:"error",message:e.message||String(e.error||"Unknown error"),filename:e.filename||"",lineno:e.lineno||0,colno:e.colno||0,at:new Date().toISOString()})});window.addEventListener("unhandledrejection",function(e){report({kind:"unhandledrejection",message:String(e.reason),filename:"",lineno:0,colno:0,at:new Date().toISOString()})})})();</script>`;
12
- }
13
- function injectPreviewErrorReporter(html, sessionId, previewPath) {
14
- if (html.includes(REPORTER_MARKER)) {
15
- return html;
16
- }
17
- const script = buildPreviewErrorReporterScript(sessionId, previewPath);
18
- const headMatch = html.match(/<head(\s[^>]*)?>/i);
19
- if (headMatch && headMatch.index !== undefined) {
20
- const insertAt = headMatch.index + headMatch[0].length;
21
- return `${html.slice(0, insertAt)}${script}${html.slice(insertAt)}`;
22
- }
23
- const htmlMatch = html.match(/<html(\s[^>]*)?>/i);
24
- if (htmlMatch && htmlMatch.index !== undefined) {
25
- const insertAt = htmlMatch.index + htmlMatch[0].length;
26
- return `${html.slice(0, insertAt)}${script}${html.slice(insertAt)}`;
27
- }
28
- return `${script}${html}`;
29
- }
30
- //# sourceMappingURL=inject-preview-error-reporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inject-preview-error-reporter.js","sourceRoot":"","sources":["../../../src/lib/session-pages/inject-preview-error-reporter.ts"],"names":[],"mappings":";;AAMA,0EAGC;AAED,gEAwBC;AAnCD,MAAM,eAAe,GAAG,kDAAkD,CAAA;AAE1E,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC1D,CAAC;AAED,SAAgB,+BAA+B,CAAC,SAAiB,EAAE,WAAmB;IACpF,MAAM,IAAI,GAAG,eAAe,cAAc,CAAC,SAAS,CAAC,WAAW,cAAc,CAAC,WAAW,CAAC,IAAI,CAAA;IAC/F,OAAO,WAAW,eAAe,yBAAyB,IAAI,kgBAAkgB,CAAA;AAClkB,CAAC;AAED,SAAgB,0BAA0B,CACxC,IAAY,EACZ,SAAiB,EACjB,WAAmB;IAEnB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,+BAA+B,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAEtE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACjD,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAA;IACrE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACjD,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAA;IACrE,CAAC;IAED,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAA;AAC3B,CAAC"}
@@ -1,7 +0,0 @@
1
- export interface ReadLatestSessionArtifactResult {
2
- path: string;
3
- content: string;
4
- bytes: number;
5
- }
6
- export declare function readLatestSessionArtifactText(sessionId: string, artifactPath: string): Promise<ReadLatestSessionArtifactResult>;
7
- //# sourceMappingURL=read-session-artifact.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-session-artifact.d.ts","sourceRoot":"","sources":["../../../src/lib/session-pages/read-session-artifact.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,+BAA+B,CAAC,CAoB1C"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.readLatestSessionArtifactText = readLatestSessionArtifactText;
7
- const promises_1 = __importDefault(require("node:fs/promises"));
8
- const session_artifact_yjs_store_1 = require("../../realtime/session-artifact-yjs-store");
9
- const paths_1 = require("./paths");
10
- const BINARY_EXTENSIONS = new Set([
11
- 'png',
12
- 'jpg',
13
- 'jpeg',
14
- 'gif',
15
- 'svg',
16
- 'webp',
17
- 'ico',
18
- 'bmp',
19
- 'avif',
20
- 'woff',
21
- 'woff2',
22
- 'ttf',
23
- 'otf',
24
- 'eot',
25
- 'pdf',
26
- 'zip',
27
- 'tar',
28
- 'gz',
29
- 'br',
30
- 'mp3',
31
- 'mp4',
32
- 'wav',
33
- 'ogg',
34
- 'webm',
35
- ]);
36
- function isLikelyBinaryArtifactPath(artifactPath) {
37
- var _a, _b;
38
- const ext = (_b = (_a = artifactPath.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
39
- return BINARY_EXTENSIONS.has(ext);
40
- }
41
- async function readLatestSessionArtifactText(sessionId, artifactPath) {
42
- const path = (0, paths_1.normalizeArtifactPath)(artifactPath);
43
- if (isLikelyBinaryArtifactPath(path)) {
44
- throw new Error(`Cannot read binary artifact as text: ${path}`);
45
- }
46
- const absolutePath = (0, paths_1.resolveArtifactPath)(sessionId, path);
47
- try {
48
- await promises_1.default.access(absolutePath);
49
- }
50
- catch (_a) {
51
- throw new Error(`Artifact not found: ${path}`);
52
- }
53
- const content = await (0, session_artifact_yjs_store_1.getSessionArtifactYjsStore)().getLatestArtifactText(sessionId, path);
54
- return {
55
- path,
56
- content,
57
- bytes: Buffer.byteLength(content, 'utf8'),
58
- };
59
- }
60
- //# sourceMappingURL=read-session-artifact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-session-artifact.js","sourceRoot":"","sources":["../../../src/lib/session-pages/read-session-artifact.ts"],"names":[],"mappings":";;;;;AA0CA,sEAuBC;AAjED,gEAAiC;AACjC,0FAAsF;AACtF,mCAAoE;AAEpE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;CACP,CAAC,CAAA;AAEF,SAAS,0BAA0B,CAAC,YAAoB;;IACtD,MAAM,GAAG,GAAG,MAAA,MAAA,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,0CAAE,WAAW,EAAE,mCAAI,EAAE,CAAA;IAC9D,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACnC,CAAC;AAQM,KAAK,UAAU,6BAA6B,CACjD,SAAiB,EACjB,YAAoB;IAEpB,MAAM,IAAI,GAAG,IAAA,6BAAqB,EAAC,YAAY,CAAC,CAAA;IAEhD,IAAI,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,2BAAmB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACzD,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,uDAA0B,GAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACzF,OAAO;QACL,IAAI;QACJ,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1C,CAAA;AACH,CAAC"}
@@ -1,5 +0,0 @@
1
- /** Pico CSS v2 from jsDelivr — injected into each published .html file. */
2
- export declare const PICO_CSS_HREF = "https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css";
3
- export declare const SESSION_PICO_CSS_LINK = "<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css\">";
4
- export declare function htmlIncludesPicoCss(html: string): boolean;
5
- //# sourceMappingURL=session-pico-css.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-pico-css.d.ts","sourceRoot":"","sources":["../../../src/lib/session-pages/session-pico-css.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,eAAO,MAAM,aAAa,kEAAkE,CAAA;AAE5F,eAAO,MAAM,qBAAqB,qGAAoD,CAAA;AAEtF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SESSION_PICO_CSS_LINK = exports.PICO_CSS_HREF = void 0;
4
- exports.htmlIncludesPicoCss = htmlIncludesPicoCss;
5
- /** Pico CSS v2 from jsDelivr — injected into each published .html file. */
6
- exports.PICO_CSS_HREF = 'https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css';
7
- exports.SESSION_PICO_CSS_LINK = `<link rel="stylesheet" href="${exports.PICO_CSS_HREF}">`;
8
- function htmlIncludesPicoCss(html) {
9
- return html.includes('pico.min.css') || html.includes('@picocss/pico');
10
- }
11
- //# sourceMappingURL=session-pico-css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-pico-css.js","sourceRoot":"","sources":["../../../src/lib/session-pages/session-pico-css.ts"],"names":[],"mappings":";;;AAKA,kDAEC;AAPD,2EAA2E;AAC9D,QAAA,aAAa,GAAG,+DAA+D,CAAA;AAE/E,QAAA,qBAAqB,GAAG,gCAAgC,qBAAa,IAAI,CAAA;AAEtF,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;AACxE,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { AuthenticatedPresentUser } from '@multiplayer-app/realtime-types';
2
- import type { Middleware } from '@multiplayer-app/realtime-server';
3
- export type RealtimeDocumentAuthHandler = (request: unknown) => Promise<{
4
- name: string;
5
- id: string;
6
- color: string;
7
- }>;
8
- export declare function toRealtimeAuthMiddleware(handler: RealtimeDocumentAuthHandler): Middleware;
9
- export declare function getSocketPresentUser(socket: {
10
- request: unknown;
11
- }): AuthenticatedPresentUser | null;
12
- //# sourceMappingURL=realtime-auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"realtime-auth.d.ts","sourceRoot":"","sources":["../../src/realtime/realtime-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAElE,MAAM,MAAM,2BAA2B,GAAG,CACxC,OAAO,EAAE,OAAO,KACb,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAQzD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,2BAA2B,GAAG,UAAU,CAazF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,wBAAwB,GAAG,IAAI,CAGlG"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toRealtimeAuthMiddleware = toRealtimeAuthMiddleware;
4
- exports.getSocketPresentUser = getSocketPresentUser;
5
- function toRealtimeAuthMiddleware(handler) {
6
- return async (request, _response, next) => {
7
- try {
8
- const presentUser = await handler(request);
9
- const req = request;
10
- req.presentUser = presentUser;
11
- req.userId = presentUser.id;
12
- next();
13
- }
14
- catch (error) {
15
- const err = error instanceof Error ? error : new Error(String(error));
16
- next(err);
17
- }
18
- };
19
- }
20
- function getSocketPresentUser(socket) {
21
- var _a;
22
- const req = socket.request;
23
- return (_a = req.presentUser) !== null && _a !== void 0 ? _a : null;
24
- }
25
- //# sourceMappingURL=realtime-auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"realtime-auth.js","sourceRoot":"","sources":["../../src/realtime/realtime-auth.ts"],"names":[],"mappings":";;AAaA,4DAaC;AAED,oDAGC;AAlBD,SAAgB,wBAAwB,CAAC,OAAoC;IAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,OAAsB,CAAA;YAClC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAA;YAC7B,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;YAC3B,IAAI,EAAE,CAAA;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YACrE,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAA4B;;IAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,OAAsB,CAAA;IACzC,OAAO,MAAA,GAAG,CAAC,WAAW,mCAAI,IAAI,CAAA;AAChC,CAAC"}
@@ -1,5 +0,0 @@
1
- /** Dynamic Socket.IO namespace for per-account Yjs collaboration. */
2
- export declare const YJS_ACCOUNT_NAMESPACE: RegExp;
3
- export declare function buildYjsAccountNamespace(accountId: string): string;
4
- export declare function parseYjsAccountIdFromNamespace(namespaceName: string): string | null;
5
- //# sourceMappingURL=yjs-account-namespace.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yjs-account-namespace.d.ts","sourceRoot":"","sources":["../../src/realtime/yjs-account-namespace.ts"],"names":[],"mappings":"AAEA,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,QAAwC,CAAA;AAE1E,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED,wBAAgB,8BAA8B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnF"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.YJS_ACCOUNT_NAMESPACE = void 0;
4
- exports.buildYjsAccountNamespace = buildYjsAccountNamespace;
5
- exports.parseYjsAccountIdFromNamespace = parseYjsAccountIdFromNamespace;
6
- const MONGO_OBJECT_ID_PATTERN = /^[A-Fa-f0-9]{24}$/;
7
- /** Dynamic Socket.IO namespace for per-account Yjs collaboration. */
8
- exports.YJS_ACCOUNT_NAMESPACE = /^\/yjs\/account\/([A-Fa-f0-9]{24})$/;
9
- function buildYjsAccountNamespace(accountId) {
10
- const normalized = accountId.trim();
11
- if (!MONGO_OBJECT_ID_PATTERN.test(normalized)) {
12
- throw new Error(`Invalid account id: ${accountId}`);
13
- }
14
- return `/yjs/account/${normalized}`;
15
- }
16
- function parseYjsAccountIdFromNamespace(namespaceName) {
17
- var _a;
18
- const match = namespaceName.match(exports.YJS_ACCOUNT_NAMESPACE);
19
- return (_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : null;
20
- }
21
- //# sourceMappingURL=yjs-account-namespace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yjs-account-namespace.js","sourceRoot":"","sources":["../../src/realtime/yjs-account-namespace.ts"],"names":[],"mappings":";;;AAKA,4DAMC;AAED,wEAGC;AAhBD,MAAM,uBAAuB,GAAG,mBAAmB,CAAA;AAEnD,qEAAqE;AACxD,QAAA,qBAAqB,GAAG,qCAAqC,CAAA;AAE1E,SAAgB,wBAAwB,CAAC,SAAiB;IACxD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IACnC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,gBAAgB,UAAU,EAAE,CAAA;AACrC,CAAC;AAED,SAAgB,8BAA8B,CAAC,aAAqB;;IAClE,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,6BAAqB,CAAC,CAAA;IACxD,OAAO,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,mCAAI,IAAI,CAAA;AAC3B,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Request, Response } from 'express';
2
- export declare const executeNotebookSqlHandler: (req: Request, res: Response) => Promise<void>;
3
- //# sourceMappingURL=sql-execute.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-execute.d.ts","sourceRoot":"","sources":["../../../src/routes/notebooks/sql-execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAehD,eAAO,MAAM,yBAAyB,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,kBA6B1E,CAAA"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.executeNotebookSqlHandler = void 0;
4
- const zod_1 = require("zod");
5
- const context_1 = require("../../context");
6
- const notebook_sql_1 = require("../../lib/notebooks/notebook-sql");
7
- const errors_1 = require("./errors");
8
- const validatedSchema = zod_1.z.object({
9
- params: zod_1.z.object({
10
- notebookId: zod_1.z.string().min(1),
11
- }),
12
- body: zod_1.z.object({
13
- query: zod_1.z.string().min(1, 'query is required'),
14
- }),
15
- });
16
- const executeNotebookSqlHandler = async (req, res) => {
17
- var _a;
18
- try {
19
- const { params, body } = validatedSchema.parse({
20
- params: req.params,
21
- body: (_a = req.body) !== null && _a !== void 0 ? _a : {},
22
- });
23
- if (!req.accountId) {
24
- res.status(401).json({ message: 'Unauthorized: accountId is required' });
25
- return;
26
- }
27
- const repository = (0, context_1.getBuilderApiContext)().notebookRepository;
28
- if (!repository) {
29
- res.status(503).json({ message: 'Notebook repository is not configured' });
30
- return;
31
- }
32
- const notebook = await repository.getById(req.accountId, params.notebookId);
33
- if (!notebook) {
34
- res.status(404).json({ message: 'Notebook not found' });
35
- return;
36
- }
37
- const result = await (0, notebook_sql_1.executeNotebookSqlQuery)(body.query);
38
- res.json(result);
39
- }
40
- catch (error) {
41
- (0, errors_1.respondNotebookError)(res, error);
42
- }
43
- };
44
- exports.executeNotebookSqlHandler = executeNotebookSqlHandler;
45
- //# sourceMappingURL=sql-execute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-execute.js","sourceRoot":"","sources":["../../../src/routes/notebooks/sql-execute.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AACvB,2CAAoD;AACpD,mEAA0E;AAC1E,qCAA+C;AAE/C,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;QACf,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B,CAAC;IACF,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC;QACb,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;KAC9C,CAAC;CACH,CAAC,CAAA;AAEK,MAAM,yBAAyB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;;IAC7E,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;YAC7C,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE;SACrB,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAA;YACxE,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,8BAAoB,GAAE,CAAC,kBAAkB,CAAA;QAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC,CAAA;YAC1E,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAA;YACvD,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAuB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,6BAAoB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC;AACH,CAAC,CAAA;AA7BY,QAAA,yBAAyB,6BA6BrC"}
@@ -1,2 +0,0 @@
1
- export declare const sqlRoutes: import("express-serve-static-core").Router;
2
- //# sourceMappingURL=sql.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/routes/sql.ts"],"names":[],"mappings":"AA8CA,eAAO,MAAM,SAAS,4CAAmB,CAAA"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.sqlRoutes = void 0;
7
- const express_1 = __importDefault(require("express"));
8
- const zod_1 = require("zod");
9
- const notebook_sql_schema_1 = require("../lib/notebooks/notebook-sql-schema");
10
- const errors_1 = require("./notebooks/errors");
11
- const tableNameSchema = zod_1.z.object({
12
- params: zod_1.z.object({
13
- tableName: zod_1.z.string().min(1),
14
- }),
15
- });
16
- const listSqlTables = async (req, res) => {
17
- try {
18
- if (!req.accountId) {
19
- res.status(401).json({ message: 'Unauthorized: accountId is required' });
20
- return;
21
- }
22
- const tables = await (0, notebook_sql_schema_1.listNotebookSqlTables)();
23
- res.json({ tables });
24
- }
25
- catch (error) {
26
- (0, errors_1.respondNotebookError)(res, error);
27
- }
28
- };
29
- const getSqlTableSchema = async (req, res) => {
30
- try {
31
- const { params } = tableNameSchema.parse({ params: req.params });
32
- if (!req.accountId) {
33
- res.status(401).json({ message: 'Unauthorized: accountId is required' });
34
- return;
35
- }
36
- const table = await (0, notebook_sql_schema_1.getNotebookSqlTableSchema)(params.tableName);
37
- if (!table) {
38
- res.status(404).json({ message: `Table "${params.tableName}" not found` });
39
- return;
40
- }
41
- res.json({ table });
42
- }
43
- catch (error) {
44
- (0, errors_1.respondNotebookError)(res, error);
45
- }
46
- };
47
- exports.sqlRoutes = express_1.default.Router();
48
- exports.sqlRoutes.get('/sql/tables', listSqlTables);
49
- exports.sqlRoutes.get('/sql/tables/:tableName', getSqlTableSchema);
50
- //# sourceMappingURL=sql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/routes/sql.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAsD;AACtD,6BAAuB;AACvB,8EAAuG;AACvG,+CAAyD;AAEzD,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;QACf,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7B,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,aAAa,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACvD,IAAI,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAA;YACxE,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,2CAAqB,GAAE,CAAA;QAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,6BAAoB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAEhE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAA;YACxE,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAA,+CAAyB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,MAAM,CAAC,SAAS,aAAa,EAAE,CAAC,CAAA;YAC1E,OAAM;QACR,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,6BAAoB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC;AACH,CAAC,CAAA;AAEY,QAAA,SAAS,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;AAEzC,iBAAS,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;AAC3C,iBAAS,CAAC,GAAG,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAA"}