dialog-ide 0.5.0
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/CHANGELOG.md +69 -0
- package/LICENSE +201 -0
- package/README.md +211 -0
- package/THIRD_PARTY_LICENSES.md +157 -0
- package/bin/darwin-arm64/aambundle +0 -0
- package/bin/darwin-arm64/dgdebug +0 -0
- package/bin/darwin-arm64/dialogc +0 -0
- package/bin/dialog-lib/stddebug.dg +112 -0
- package/bin/dialog-lib/stdlib.dg +6730 -0
- package/bin/dialog-lib/unit.dg +187 -0
- package/dist/cli/commands/run-skein.d.ts +17 -0
- package/dist/cli/commands/run-skein.d.ts.map +1 -0
- package/dist/cli/commands/run-skein.js +105 -0
- package/dist/cli/commands/run-skein.js.map +1 -0
- package/dist/cli/commands/sources.d.ts +12 -0
- package/dist/cli/commands/sources.d.ts.map +1 -0
- package/dist/cli/commands/sources.js +42 -0
- package/dist/cli/commands/sources.js.map +1 -0
- package/dist/cli/commands/test.d.ts +9 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +41 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/context.d.ts +9 -0
- package/dist/cli/context.d.ts.map +1 -0
- package/dist/cli/context.js +78 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +32 -0
- package/dist/cli.js.map +1 -0
- package/dist/dialog-cover-resize.d.ts +2 -0
- package/dist/dialog-cover-resize.d.ts.map +1 -0
- package/dist/dialog-cover-resize.js +46 -0
- package/dist/dialog-cover-resize.js.map +1 -0
- package/dist/dialog-export.d.ts +23 -0
- package/dist/dialog-export.d.ts.map +1 -0
- package/dist/dialog-export.js +133 -0
- package/dist/dialog-export.js.map +1 -0
- package/dist/dialog-feelies.d.ts +4 -0
- package/dist/dialog-feelies.d.ts.map +1 -0
- package/dist/dialog-feelies.js +62 -0
- package/dist/dialog-feelies.js.map +1 -0
- package/dist/dialog-outline.d.ts +19 -0
- package/dist/dialog-outline.d.ts.map +1 -0
- package/dist/dialog-outline.js +122 -0
- package/dist/dialog-outline.js.map +1 -0
- package/dist/dialog-project-init.d.ts +5 -0
- package/dist/dialog-project-init.d.ts.map +1 -0
- package/dist/dialog-project-init.js +107 -0
- package/dist/dialog-project-init.js.map +1 -0
- package/dist/dialog-source-coverage.d.ts +9 -0
- package/dist/dialog-source-coverage.d.ts.map +1 -0
- package/dist/dialog-source-coverage.js +61 -0
- package/dist/dialog-source-coverage.js.map +1 -0
- package/dist/dialog-source-decoration-provider.d.ts +11 -0
- package/dist/dialog-source-decoration-provider.d.ts.map +1 -0
- package/dist/dialog-source-decoration-provider.js +79 -0
- package/dist/dialog-source-decoration-provider.js.map +1 -0
- package/dist/dialog-symbol-index.d.ts +19 -0
- package/dist/dialog-symbol-index.d.ts.map +1 -0
- package/dist/dialog-symbol-index.js +107 -0
- package/dist/dialog-symbol-index.js.map +1 -0
- package/dist/dialog-symbol-provider.d.ts +5 -0
- package/dist/dialog-symbol-provider.d.ts.map +1 -0
- package/dist/dialog-symbol-provider.js +56 -0
- package/dist/dialog-symbol-provider.js.map +1 -0
- package/dist/dialog-web-export.d.ts +25 -0
- package/dist/dialog-web-export.d.ts.map +1 -0
- package/dist/dialog-web-export.js +283 -0
- package/dist/dialog-web-export.js.map +1 -0
- package/dist/dialog-workspace-symbol-provider.d.ts +16 -0
- package/dist/dialog-workspace-symbol-provider.d.ts.map +1 -0
- package/dist/dialog-workspace-symbol-provider.js +107 -0
- package/dist/dialog-workspace-symbol-provider.js.map +1 -0
- package/dist/dialog-workspace-watcher.d.ts +22 -0
- package/dist/dialog-workspace-watcher.d.ts.map +1 -0
- package/dist/dialog-workspace-watcher.js +102 -0
- package/dist/dialog-workspace-watcher.js.map +1 -0
- package/dist/dialoged/skein/compile-error.d.ts +10 -0
- package/dist/dialoged/skein/compile-error.d.ts.map +1 -0
- package/dist/dialoged/skein/compile-error.js +28 -0
- package/dist/dialoged/skein/compile-error.js.map +1 -0
- package/dist/dialoged/skein/dynamic.d.ts +14 -0
- package/dist/dialoged/skein/dynamic.d.ts.map +1 -0
- package/dist/dialoged/skein/dynamic.js +176 -0
- package/dist/dialoged/skein/dynamic.js.map +1 -0
- package/dist/dialoged/skein/frotz-build.d.ts +10 -0
- package/dist/dialoged/skein/frotz-build.d.ts.map +1 -0
- package/dist/dialoged/skein/frotz-build.js +70 -0
- package/dist/dialoged/skein/frotz-build.js.map +1 -0
- package/dist/dialoged/skein/index.d.ts +15 -0
- package/dist/dialoged/skein/index.d.ts.map +1 -0
- package/dist/dialoged/skein/index.js +31 -0
- package/dist/dialoged/skein/index.js.map +1 -0
- package/dist/dialoged/skein/io.d.ts +15 -0
- package/dist/dialoged/skein/io.d.ts.map +1 -0
- package/dist/dialoged/skein/io.js +53 -0
- package/dist/dialoged/skein/io.js.map +1 -0
- package/dist/dialoged/skein/persistence.d.ts +13 -0
- package/dist/dialoged/skein/persistence.d.ts.map +1 -0
- package/dist/dialoged/skein/persistence.js +228 -0
- package/dist/dialoged/skein/persistence.js.map +1 -0
- package/dist/dialoged/skein/process.d.ts +38 -0
- package/dist/dialoged/skein/process.d.ts.map +1 -0
- package/dist/dialoged/skein/process.js +189 -0
- package/dist/dialoged/skein/process.js.map +1 -0
- package/dist/dialoged/skein/progress.d.ts +17 -0
- package/dist/dialoged/skein/progress.d.ts.map +1 -0
- package/dist/dialoged/skein/progress.js +9 -0
- package/dist/dialoged/skein/progress.js.map +1 -0
- package/dist/dialoged/skein/project.d.ts +44 -0
- package/dist/dialoged/skein/project.d.ts.map +1 -0
- package/dist/dialoged/skein/project.js +223 -0
- package/dist/dialoged/skein/project.js.map +1 -0
- package/dist/dialoged/skein/search.d.ts +15 -0
- package/dist/dialoged/skein/search.d.ts.map +1 -0
- package/dist/dialoged/skein/search.js +99 -0
- package/dist/dialoged/skein/search.js.map +1 -0
- package/dist/dialoged/skein/service.d.ts +91 -0
- package/dist/dialoged/skein/service.d.ts.map +1 -0
- package/dist/dialoged/skein/service.js +1097 -0
- package/dist/dialoged/skein/service.js.map +1 -0
- package/dist/dialoged/skein/session.d.ts +96 -0
- package/dist/dialoged/skein/session.d.ts.map +1 -0
- package/dist/dialoged/skein/session.js +690 -0
- package/dist/dialoged/skein/session.js.map +1 -0
- package/dist/dialoged/skein/syntax.d.ts +5 -0
- package/dist/dialoged/skein/syntax.d.ts.map +1 -0
- package/dist/dialoged/skein/syntax.js +150 -0
- package/dist/dialoged/skein/syntax.js.map +1 -0
- package/dist/dialoged/skein/trace.d.ts +31 -0
- package/dist/dialoged/skein/trace.d.ts.map +1 -0
- package/dist/dialoged/skein/trace.js +172 -0
- package/dist/dialoged/skein/trace.js.map +1 -0
- package/dist/dialoged/skein/tree.d.ts +114 -0
- package/dist/dialoged/skein/tree.d.ts.map +1 -0
- package/dist/dialoged/skein/tree.js +701 -0
- package/dist/dialoged/skein/tree.js.map +1 -0
- package/dist/dialoged/skein/ui/ansi.d.ts +4 -0
- package/dist/dialoged/skein/ui/ansi.d.ts.map +1 -0
- package/dist/dialoged/skein/ui/ansi.js +215 -0
- package/dist/dialoged/skein/ui/ansi.js.map +1 -0
- package/dist/dialoged/skein/ui/diff.d.ts +7 -0
- package/dist/dialoged/skein/ui/diff.d.ts.map +1 -0
- package/dist/dialoged/skein/ui/diff.js +17 -0
- package/dist/dialoged/skein/ui/diff.js.map +1 -0
- package/dist/dialoged/skein/ui/knot-menu.d.ts +5 -0
- package/dist/dialoged/skein/ui/knot-menu.d.ts.map +1 -0
- package/dist/dialoged/skein/ui/knot-menu.js +89 -0
- package/dist/dialoged/skein/ui/knot-menu.js.map +1 -0
- package/dist/dialoged/skein/ui/marker-colors.d.ts +5 -0
- package/dist/dialoged/skein/ui/marker-colors.d.ts.map +1 -0
- package/dist/dialoged/skein/ui/marker-colors.js +18 -0
- package/dist/dialoged/skein/ui/marker-colors.js.map +1 -0
- package/dist/dialoged/skein/ui/render.d.ts +13 -0
- package/dist/dialoged/skein/ui/render.d.ts.map +1 -0
- package/dist/dialoged/skein/ui/render.js +332 -0
- package/dist/dialoged/skein/ui/render.js.map +1 -0
- package/dist/dialoged/skein/ui/traceRender.d.ts +11 -0
- package/dist/dialoged/skein/ui/traceRender.d.ts.map +1 -0
- package/dist/dialoged/skein/ui/traceRender.js +139 -0
- package/dist/dialoged/skein/ui/traceRender.js.map +1 -0
- package/dist/dialoged/skein/ui/tree-pane.d.ts +3 -0
- package/dist/dialoged/skein/ui/tree-pane.d.ts.map +1 -0
- package/dist/dialoged/skein/ui/tree-pane.js +135 -0
- package/dist/dialoged/skein/ui/tree-pane.js.map +1 -0
- package/dist/dialoged/skein/ui/webExportPage.d.ts +29 -0
- package/dist/dialoged/skein/ui/webExportPage.d.ts.map +1 -0
- package/dist/dialoged/skein/ui/webExportPage.js +72 -0
- package/dist/dialoged/skein/ui/webExportPage.js.map +1 -0
- package/dist/extension.d.ts +4 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +885 -0
- package/dist/extension.js.map +1 -0
- package/dist/session-runner.d.ts +23 -0
- package/dist/session-runner.d.ts.map +1 -0
- package/dist/session-runner.js +92 -0
- package/dist/session-runner.js.map +1 -0
- package/language-configuration.json +43 -0
- package/media/icon.png +0 -0
- package/media/icons/arrow-down-circle-solid.svg +3 -0
- package/media/icons/arrow-down-solid.svg +3 -0
- package/media/icons/arrow-path-solid.svg +3 -0
- package/media/icons/arrow-right-solid.svg +3 -0
- package/media/icons/arrow-up-on-square-stack-solid.svg +5 -0
- package/media/icons/arrow-up-solid.svg +3 -0
- package/media/icons/arrow-uturn-left.svg +3 -0
- package/media/icons/arrow-uturn-right.svg +3 -0
- package/media/icons/bookmark-solid.svg +3 -0
- package/media/icons/bug-ant-solid.svg +3 -0
- package/media/icons/check-badge-solid.svg +3 -0
- package/media/icons/check-circle-solid.svg +3 -0
- package/media/icons/chevron-double-down-solid.svg +4 -0
- package/media/icons/chevron-double-up-solid.svg +4 -0
- package/media/icons/command-line-solid.svg +3 -0
- package/media/icons/cpu-chip-solid.svg +4 -0
- package/media/icons/dg-file-dark.svg +6 -0
- package/media/icons/dg-file-light.svg +6 -0
- package/media/icons/ellipsis-vertical-solid.svg +3 -0
- package/media/icons/exclamation-triangle.svg +3 -0
- package/media/icons/folder-arrow-down-solid.svg +3 -0
- package/media/icons/globe-alt.svg +3 -0
- package/media/icons/lock-closed-solid.svg +3 -0
- package/media/icons/magnifying-glass-solid.svg +3 -0
- package/media/icons/pencil-solid.svg +4 -0
- package/media/icons/play-solid.svg +3 -0
- package/media/icons/plus-circle-solid.svg +3 -0
- package/media/icons/scissors-solid.svg +5 -0
- package/media/icons/tag-solid.svg +3 -0
- package/media/icons/trash-solid.svg +3 -0
- package/media/icons/x-circle-solid.svg +3 -0
- package/media/js/datastar.js +9 -0
- package/media/js/main.js +1109 -0
- package/media/js/skein-loader.js +10 -0
- package/media/js/trace-loader.js +4 -0
- package/media/js/trace.js +147 -0
- package/media/style.css +5783 -0
- package/package.json +231 -0
- package/resources/bundle/default-cover.png +0 -0
- package/resources/bundle/introduction-to-if.pdf +0 -0
- package/resources/bundle/play-if-card.pdf +1990 -1
- package/resources/bundle/play.css +432 -0
- package/resources/bundle/style.css +450 -0
- package/resources/dfrotz-skein-patch.dg +4 -0
- package/syntaxes/dialog.tmLanguage.json +490 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface ProjectSources {
|
|
2
|
+
main: string[];
|
|
3
|
+
test?: string[];
|
|
4
|
+
debug?: string[];
|
|
5
|
+
library?: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface ExportConfig {
|
|
8
|
+
name: string;
|
|
9
|
+
format: 'zblorb' | 'z8' | 'aa';
|
|
10
|
+
includeDebug: boolean;
|
|
11
|
+
output: string;
|
|
12
|
+
dialogcOptions?: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface FeelieConfig {
|
|
15
|
+
path: string;
|
|
16
|
+
name: string;
|
|
17
|
+
}
|
|
18
|
+
export interface DialogProject {
|
|
19
|
+
name: string;
|
|
20
|
+
binDir?: string;
|
|
21
|
+
sources: ProjectSources;
|
|
22
|
+
exports: ExportConfig[];
|
|
23
|
+
dialogcOptions?: string[];
|
|
24
|
+
feelies?: FeelieConfig[];
|
|
25
|
+
rootDir: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function readProject(rootDir: string): DialogProject;
|
|
28
|
+
export interface ExpandSourcesOptions {
|
|
29
|
+
debug?: boolean;
|
|
30
|
+
test?: boolean;
|
|
31
|
+
target?: string;
|
|
32
|
+
prePatch?: string[];
|
|
33
|
+
}
|
|
34
|
+
export declare function expandSources(project: DialogProject, options?: ExpandSourcesOptions): string[];
|
|
35
|
+
export declare function isFileCoveredBySource(project: DialogProject, filePath: string): boolean;
|
|
36
|
+
export interface DuplicateSourceFile {
|
|
37
|
+
filePath: string;
|
|
38
|
+
categories: string[];
|
|
39
|
+
}
|
|
40
|
+
export declare function findDuplicateSourceFiles(project: DialogProject): DuplicateSourceFile[];
|
|
41
|
+
export declare function resolveCommandPath(binDir: string | undefined, command: string, bundledBinDir?: string): string;
|
|
42
|
+
export declare function resolveBundledBinDir(extensionPath: string): string | undefined;
|
|
43
|
+
export declare function resolveBundledLibraryDir(extensionPath: string): string | undefined;
|
|
44
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/dialoged/skein/project.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IAIf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AASD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,YAAY,EAAE,CAAC;IAKxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAoBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA6B1D;AAsED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAgBD,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAclG;AAUD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAevF;AAQD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAoBD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,mBAAmB,EAAE,CA+BtF;AAwCD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAIR;AASD,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI9E;AAQD,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGlF"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.readProject = readProject;
|
|
37
|
+
exports.expandSources = expandSources;
|
|
38
|
+
exports.isFileCoveredBySource = isFileCoveredBySource;
|
|
39
|
+
exports.findDuplicateSourceFiles = findDuplicateSourceFiles;
|
|
40
|
+
exports.resolveCommandPath = resolveCommandPath;
|
|
41
|
+
exports.resolveBundledBinDir = resolveBundledBinDir;
|
|
42
|
+
exports.resolveBundledLibraryDir = resolveBundledLibraryDir;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
function resolveBinDir(rootDir, binDir) {
|
|
46
|
+
if (!binDir) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return path.isAbsolute(binDir) ? binDir : path.join(rootDir, binDir);
|
|
50
|
+
}
|
|
51
|
+
function readProject(rootDir) {
|
|
52
|
+
const filePath = path.join(rootDir, 'dialog.json');
|
|
53
|
+
if (!fs.existsSync(filePath)) {
|
|
54
|
+
throw new Error(`${filePath} does not exist`);
|
|
55
|
+
}
|
|
56
|
+
let parsed;
|
|
57
|
+
try {
|
|
58
|
+
parsed = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
throw new Error(`Could not read ${filePath}: ${error.message}`);
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
name: parsed.name ?? '',
|
|
65
|
+
binDir: resolveBinDir(rootDir, parsed.binDir),
|
|
66
|
+
sources: { main: [], ...parsed.sources },
|
|
67
|
+
exports: normalizeExports(parsed.exports),
|
|
68
|
+
dialogcOptions: normalizeDialogcOptions(parsed.dialogcOptions),
|
|
69
|
+
feelies: normalizeFeelies(parsed.feelies),
|
|
70
|
+
rootDir
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function normalizeDialogcOptions(value) {
|
|
74
|
+
if (!Array.isArray(value) || !value.every((entry) => typeof entry === 'string')) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
return value;
|
|
78
|
+
}
|
|
79
|
+
function normalizeExports(exports) {
|
|
80
|
+
if (!Array.isArray(exports)) {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
const result = [];
|
|
84
|
+
for (const entry of exports) {
|
|
85
|
+
if (entry &&
|
|
86
|
+
typeof entry === 'object' &&
|
|
87
|
+
typeof entry.name === 'string' &&
|
|
88
|
+
typeof entry.format === 'string' &&
|
|
89
|
+
typeof entry.output === 'string') {
|
|
90
|
+
const { name, format, output } = entry;
|
|
91
|
+
const dialogcOptions = normalizeDialogcOptions(entry.dialogcOptions);
|
|
92
|
+
result.push({
|
|
93
|
+
name,
|
|
94
|
+
format,
|
|
95
|
+
output,
|
|
96
|
+
includeDebug: Boolean(entry.includeDebug),
|
|
97
|
+
...(dialogcOptions ? { dialogcOptions } : {})
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.warn(`Skipping malformed dialog.json export entry: ${JSON.stringify(entry)}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
function normalizeFeelies(feelies) {
|
|
107
|
+
if (!Array.isArray(feelies)) {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
const result = [];
|
|
111
|
+
for (const entry of feelies) {
|
|
112
|
+
if (entry &&
|
|
113
|
+
typeof entry === 'object' &&
|
|
114
|
+
typeof entry.path === 'string' &&
|
|
115
|
+
typeof entry.name === 'string') {
|
|
116
|
+
const { path: feeliePath, name } = entry;
|
|
117
|
+
result.push({ path: feeliePath, name });
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
console.warn(`Skipping malformed dialog.json feelie entry: ${JSON.stringify(entry)}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
const TARGET_SUFFIX_RE = /\.([^.]+)\.dg$/i;
|
|
126
|
+
function expandSources(project, options = {}) {
|
|
127
|
+
const { debug = false, test = false, target, prePatch = [] } = options;
|
|
128
|
+
const { main, test: testSources = [], debug: debugSources = [], library = [] } = project.sources;
|
|
129
|
+
const entries = [
|
|
130
|
+
...prePatch,
|
|
131
|
+
...main,
|
|
132
|
+
...(test ? testSources : []),
|
|
133
|
+
...(debug ? debugSources : []),
|
|
134
|
+
...library
|
|
135
|
+
];
|
|
136
|
+
const expanded = entries.flatMap((entry) => expandSourceEntry(project.rootDir, entry));
|
|
137
|
+
return filterByTarget(expanded, target);
|
|
138
|
+
}
|
|
139
|
+
function isFileCoveredBySource(project, filePath) {
|
|
140
|
+
const resolvedFile = path.resolve(filePath);
|
|
141
|
+
const { main, test = [], debug = [], library = [] } = project.sources;
|
|
142
|
+
const entries = [...main, ...test, ...debug, ...library];
|
|
143
|
+
return entries.some((entry) => {
|
|
144
|
+
const fullPath = path.isAbsolute(entry) ? entry : path.join(project.rootDir, entry);
|
|
145
|
+
if (!fs.existsSync(fullPath)) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
if (fs.statSync(fullPath).isDirectory()) {
|
|
149
|
+
return path.dirname(resolvedFile) === path.resolve(fullPath);
|
|
150
|
+
}
|
|
151
|
+
return path.resolve(fullPath) === resolvedFile;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
function findDuplicateSourceFiles(project) {
|
|
155
|
+
const { main, test = [], debug = [], library = [] } = project.sources;
|
|
156
|
+
const categoryEntries = [
|
|
157
|
+
['main', main],
|
|
158
|
+
['test', test],
|
|
159
|
+
['debug', debug],
|
|
160
|
+
['library', library]
|
|
161
|
+
];
|
|
162
|
+
const categoriesByFile = new Map();
|
|
163
|
+
for (const [category, entries] of categoryEntries) {
|
|
164
|
+
for (const entry of entries) {
|
|
165
|
+
for (const filePath of expandSourceEntry(project.rootDir, entry)) {
|
|
166
|
+
const resolved = path.resolve(filePath);
|
|
167
|
+
const categories = categoriesByFile.get(resolved);
|
|
168
|
+
if (categories) {
|
|
169
|
+
categories.push(category);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
categoriesByFile.set(resolved, [category]);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const duplicates = [];
|
|
178
|
+
for (const [filePath, categories] of categoriesByFile) {
|
|
179
|
+
if (categories.length > 1) {
|
|
180
|
+
duplicates.push({ filePath, categories });
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return duplicates.sort((a, b) => a.filePath.localeCompare(b.filePath));
|
|
184
|
+
}
|
|
185
|
+
function expandSourceEntry(rootDir, entry) {
|
|
186
|
+
const fullPath = path.isAbsolute(entry) ? entry : path.join(rootDir, entry);
|
|
187
|
+
if (!fs.existsSync(fullPath)) {
|
|
188
|
+
console.warn(`No match for ${entry}`);
|
|
189
|
+
return [];
|
|
190
|
+
}
|
|
191
|
+
if (fs.statSync(fullPath).isDirectory()) {
|
|
192
|
+
return fs
|
|
193
|
+
.readdirSync(fullPath)
|
|
194
|
+
.filter((name) => name.endsWith('.dg'))
|
|
195
|
+
.sort()
|
|
196
|
+
.map((name) => path.join(fullPath, name));
|
|
197
|
+
}
|
|
198
|
+
return [fullPath];
|
|
199
|
+
}
|
|
200
|
+
function filterByTarget(paths, target) {
|
|
201
|
+
if (!target) {
|
|
202
|
+
return paths;
|
|
203
|
+
}
|
|
204
|
+
return paths.filter((filePath) => {
|
|
205
|
+
const match = TARGET_SUFFIX_RE.exec(path.basename(filePath));
|
|
206
|
+
return !match || match[1] === target;
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
function resolveCommandPath(binDir, command, bundledBinDir) {
|
|
210
|
+
const named = process.platform === 'win32' ? `${command}.exe` : command;
|
|
211
|
+
const dir = binDir ?? bundledBinDir;
|
|
212
|
+
return dir ? path.join(dir, named) : named;
|
|
213
|
+
}
|
|
214
|
+
function resolveBundledBinDir(extensionPath) {
|
|
215
|
+
const dir = path.join(extensionPath, 'bin', `${process.platform}-${process.arch}`);
|
|
216
|
+
const named = process.platform === 'win32' ? 'dgdebug.exe' : 'dgdebug';
|
|
217
|
+
return fs.existsSync(path.join(dir, named)) ? dir : undefined;
|
|
218
|
+
}
|
|
219
|
+
function resolveBundledLibraryDir(extensionPath) {
|
|
220
|
+
const dir = path.join(extensionPath, 'bin', 'dialog-lib');
|
|
221
|
+
return fs.existsSync(path.join(dir, 'stdlib.dg')) ? dir : undefined;
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/dialoged/skein/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SkeinTree } from './tree';
|
|
2
|
+
export type SearchField = 'label' | 'response';
|
|
3
|
+
export interface SearchResult {
|
|
4
|
+
knotId: number;
|
|
5
|
+
field: SearchField;
|
|
6
|
+
command: string;
|
|
7
|
+
label: string | null;
|
|
8
|
+
snippet: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SearchResults {
|
|
11
|
+
results: SearchResult[];
|
|
12
|
+
totalMatches: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function searchKnots(tree: SkeinTree, query: string): SearchResults;
|
|
15
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/dialoged/skein/search.ts"],"names":[],"mappings":"AAQA,OAAO,EAAe,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;IAEnB,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAE5B,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,YAAY,EAAE,MAAM,CAAC;CACtB;AAyHD,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CA0CzE"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.searchKnots = searchKnots;
|
|
4
|
+
const MAX_RESULTS = 50;
|
|
5
|
+
const SNIPPET_RADIUS = 60;
|
|
6
|
+
const ANSI_PATTERN = /\x1b\[[0-9;]*m/g;
|
|
7
|
+
function stripAnsi(text) {
|
|
8
|
+
return text.replace(ANSI_PATTERN, '');
|
|
9
|
+
}
|
|
10
|
+
function stripCommandEcho(responseText, command) {
|
|
11
|
+
const echo = `> ${command}\n`;
|
|
12
|
+
return responseText.startsWith(echo) ? responseText.slice(echo.length) : responseText;
|
|
13
|
+
}
|
|
14
|
+
function searchableResponseText(knot) {
|
|
15
|
+
const raw = stripAnsi(knot.state === 'new' ? knot.unblessedResponse ?? '' : knot.response);
|
|
16
|
+
return stripCommandEcho(raw, knot.command);
|
|
17
|
+
}
|
|
18
|
+
function queryTerms(query) {
|
|
19
|
+
return query
|
|
20
|
+
.toLowerCase()
|
|
21
|
+
.split(/\s+/)
|
|
22
|
+
.filter((term) => term.length > 0);
|
|
23
|
+
}
|
|
24
|
+
function matchesAllTerms(text, terms) {
|
|
25
|
+
const lower = text.toLowerCase();
|
|
26
|
+
return terms.every((term) => lower.includes(term));
|
|
27
|
+
}
|
|
28
|
+
function escapeHtml(text) {
|
|
29
|
+
return text
|
|
30
|
+
.replace(/&/g, '&')
|
|
31
|
+
.replace(/</g, '<')
|
|
32
|
+
.replace(/>/g, '>')
|
|
33
|
+
.replace(/"/g, '"')
|
|
34
|
+
.replace(/'/g, ''');
|
|
35
|
+
}
|
|
36
|
+
function escapeRegExp(text) {
|
|
37
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
38
|
+
}
|
|
39
|
+
function highlightTerms(escapedText, terms) {
|
|
40
|
+
const pattern = new RegExp(`(${terms.map(escapeRegExp).join('|')})`, 'gi');
|
|
41
|
+
return escapedText.replace(pattern, '<mark class="bg-warning/60 rounded-sm px-0.5">$1</mark>');
|
|
42
|
+
}
|
|
43
|
+
function buildSnippet(text, terms) {
|
|
44
|
+
const lower = text.toLowerCase();
|
|
45
|
+
let matchIndex = 0;
|
|
46
|
+
let matchLength = 0;
|
|
47
|
+
let earliest = Infinity;
|
|
48
|
+
for (const term of terms) {
|
|
49
|
+
const index = lower.indexOf(term);
|
|
50
|
+
if (index !== -1 && index < earliest) {
|
|
51
|
+
earliest = index;
|
|
52
|
+
matchIndex = index;
|
|
53
|
+
matchLength = term.length;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const start = Math.max(0, matchIndex - SNIPPET_RADIUS);
|
|
57
|
+
const end = Math.min(text.length, matchIndex + matchLength + SNIPPET_RADIUS);
|
|
58
|
+
const prefix = start > 0 ? '…' : '';
|
|
59
|
+
const suffix = end < text.length ? '…' : '';
|
|
60
|
+
const window = text.slice(start, end).replace(/\s+/g, ' ').trim();
|
|
61
|
+
return prefix + highlightTerms(escapeHtml(window), terms) + suffix;
|
|
62
|
+
}
|
|
63
|
+
function searchKnots(tree, query) {
|
|
64
|
+
const terms = queryTerms(query);
|
|
65
|
+
if (terms.length === 0) {
|
|
66
|
+
return { results: [], totalMatches: 0 };
|
|
67
|
+
}
|
|
68
|
+
const results = [];
|
|
69
|
+
let totalMatches = 0;
|
|
70
|
+
const record = (knot, field, text) => {
|
|
71
|
+
totalMatches++;
|
|
72
|
+
if (results.length < MAX_RESULTS) {
|
|
73
|
+
results.push({
|
|
74
|
+
knotId: knot.id,
|
|
75
|
+
field,
|
|
76
|
+
command: escapeHtml(knot.command),
|
|
77
|
+
label: knot.label ? escapeHtml(knot.label) : null,
|
|
78
|
+
snippet: buildSnippet(text, terms)
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const ids = tree
|
|
83
|
+
.getAllKnots()
|
|
84
|
+
.map((knot) => knot.id)
|
|
85
|
+
.sort((a, b) => a - b);
|
|
86
|
+
for (const id of ids) {
|
|
87
|
+
const knot = tree.getDerivedKnot(id);
|
|
88
|
+
const label = knot.label ? stripAnsi(knot.label) : null;
|
|
89
|
+
if (label && matchesAllTerms(label, terms)) {
|
|
90
|
+
record(knot, 'label', label);
|
|
91
|
+
}
|
|
92
|
+
const responseText = searchableResponseText(knot);
|
|
93
|
+
if (responseText && matchesAllTerms(responseText, terms)) {
|
|
94
|
+
record(knot, 'response', responseText);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return { results, totalMatches };
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/dialoged/skein/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { SkeinSession } from './session';
|
|
2
|
+
import { DialogCompileError } from './compile-error';
|
|
3
|
+
import { SkeinTree } from './tree';
|
|
4
|
+
import { ProgressHost, ProgressReporter, CancellationToken } from './progress';
|
|
5
|
+
export interface ServiceConfig {
|
|
6
|
+
port: number;
|
|
7
|
+
host: string;
|
|
8
|
+
mediaRoot: string;
|
|
9
|
+
grammarPath?: string;
|
|
10
|
+
onTraceRequested?: () => void;
|
|
11
|
+
onCompileError?: (error: DialogCompileError) => void;
|
|
12
|
+
}
|
|
13
|
+
export interface SseEvent {
|
|
14
|
+
type: string;
|
|
15
|
+
data: any;
|
|
16
|
+
}
|
|
17
|
+
export declare class SkeinService implements ProgressHost {
|
|
18
|
+
private config;
|
|
19
|
+
private sessions;
|
|
20
|
+
private isRunning;
|
|
21
|
+
private server;
|
|
22
|
+
private port;
|
|
23
|
+
private activeSession;
|
|
24
|
+
private activeSessionId;
|
|
25
|
+
private saveHandler;
|
|
26
|
+
private readonly sseClients;
|
|
27
|
+
private readonly onActiveSessionChange;
|
|
28
|
+
private cancelCurrentReplay;
|
|
29
|
+
private currentProgress;
|
|
30
|
+
private currentTrace;
|
|
31
|
+
private searchQuery;
|
|
32
|
+
private traceLoading;
|
|
33
|
+
private readonly traceSseClients;
|
|
34
|
+
private grammarPromise;
|
|
35
|
+
constructor(config: ServiceConfig);
|
|
36
|
+
start(): Promise<void>;
|
|
37
|
+
stop(): Promise<void>;
|
|
38
|
+
getPort(): number;
|
|
39
|
+
setActiveSession(session: SkeinSession | undefined, sessionId: string | undefined, onSave?: () => Promise<void>): void;
|
|
40
|
+
private currentDisplayInfo;
|
|
41
|
+
private currentSearchResults;
|
|
42
|
+
private handleRequest;
|
|
43
|
+
private reportIfCompileError;
|
|
44
|
+
private handleSendCommand;
|
|
45
|
+
private handleSendKeystroke;
|
|
46
|
+
private handleNavigateSpine;
|
|
47
|
+
private handleSeekStatus;
|
|
48
|
+
private handleKnotAction;
|
|
49
|
+
private handleSetLabel;
|
|
50
|
+
private handleSetMarker;
|
|
51
|
+
private handleSetMarkerFilter;
|
|
52
|
+
private handleInsertParent;
|
|
53
|
+
private handleSetCommand;
|
|
54
|
+
private handleSearch;
|
|
55
|
+
private handleReplayAll;
|
|
56
|
+
private handleCancelReplay;
|
|
57
|
+
private handleSave;
|
|
58
|
+
private handleCloseMenus;
|
|
59
|
+
private handleToggleDynamicState;
|
|
60
|
+
private handleTraceKnot;
|
|
61
|
+
private handleTraceStartup;
|
|
62
|
+
private handleTraceSearch;
|
|
63
|
+
private handleTraceToggleNode;
|
|
64
|
+
private handleTraceExpandCollapseAll;
|
|
65
|
+
private handleTraceSourcePreview;
|
|
66
|
+
private getGrammar;
|
|
67
|
+
private handleUndoRedo;
|
|
68
|
+
private handleSseConnect;
|
|
69
|
+
private broadcast;
|
|
70
|
+
private handleTraceSseConnect;
|
|
71
|
+
private broadcastTrace;
|
|
72
|
+
private sendTracePatch;
|
|
73
|
+
private sendPatch;
|
|
74
|
+
private broadcastScript;
|
|
75
|
+
private broadcastFlash;
|
|
76
|
+
withProgress<T>(options: {
|
|
77
|
+
title: string;
|
|
78
|
+
cancellable: boolean;
|
|
79
|
+
}, task: (progress: ProgressReporter, token: CancellationToken) => Promise<T>): Promise<T>;
|
|
80
|
+
private sendScript;
|
|
81
|
+
private serveStaticFile;
|
|
82
|
+
createSession(config: any): SkeinSession;
|
|
83
|
+
loadSession(tree: SkeinTree, config: any): SkeinSession;
|
|
84
|
+
getSession(id: string): SkeinSession | null;
|
|
85
|
+
getAllSessions(): SkeinSession[];
|
|
86
|
+
handleSkeinEndpoints(): Promise<void>;
|
|
87
|
+
serveUiComponents(): void;
|
|
88
|
+
sendSseUpdate(event: SseEvent): void;
|
|
89
|
+
isRunningService(): boolean;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/dialoged/skein/service.ts"],"names":[],"mappings":"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"}
|