js-dos 8.1.5 → 8.1.7

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 (140) hide show
  1. package/dist/emulators/emulators.js +2 -0
  2. package/dist/emulators/emulators.js.map +1 -0
  3. package/dist/emulators/types/build.d.ts +28 -0
  4. package/dist/emulators/types/dos/bundle/dos-bundle.d.ts +20 -0
  5. package/dist/emulators/types/dos/dosbox/ts/direct.d.ts +3 -0
  6. package/dist/emulators/types/dos/dosbox/ts/worker.d.ts +3 -0
  7. package/dist/emulators/types/emulators.d.ts +76 -0
  8. package/dist/emulators/types/http.d.ts +9 -0
  9. package/dist/emulators/types/impl/ci-impl.d.ts +29 -0
  10. package/dist/emulators/types/impl/emulators-impl.d.ts +26 -0
  11. package/dist/emulators/types/impl/modules.d.ts +38 -0
  12. package/dist/emulators/types/libzip/libzip.d.ts +16 -0
  13. package/dist/emulators/types/protocol/messages-queue.d.ts +8 -0
  14. package/dist/emulators/types/protocol/protocol.d.ts +128 -0
  15. package/dist/emulators/wdosbox-x.js +55 -0
  16. package/dist/emulators/wdosbox-x.js.symbols +8760 -0
  17. package/dist/emulators/wdosbox-x.wasm +0 -0
  18. package/dist/emulators/wdosbox.js +55 -0
  19. package/dist/emulators/wdosbox.js.symbols +3001 -0
  20. package/dist/emulators/wdosbox.wasm +0 -0
  21. package/dist/emulators/wlibzip.js +21 -0
  22. package/dist/emulators/wlibzip.js.symbols +268 -0
  23. package/dist/emulators/wlibzip.wasm +0 -0
  24. package/dist/js-dos.css +1 -0
  25. package/dist/js-dos.js +22 -0
  26. package/dist/js-dos.js.map +1 -0
  27. package/package.json +1 -1
  28. package/release.zip +0 -0
  29. package/.eslintrc.json +0 -43
  30. package/.github/workflows/build.yml +0 -51
  31. package/.gitmodules +0 -4
  32. package/index.html +0 -110
  33. package/postcss.config.cjs +0 -8
  34. package/src/app.css +0 -14
  35. package/src/base.css +0 -10
  36. package/src/components/checkbox.tsx +0 -41
  37. package/src/components/close-button.tsx +0 -17
  38. package/src/components/components.css +0 -28
  39. package/src/components/dos-option-checkbox.tsx +0 -94
  40. package/src/components/dos-option-select.tsx +0 -108
  41. package/src/components/dos-option-slider.tsx +0 -35
  42. package/src/components/error.tsx +0 -16
  43. package/src/components/loading.tsx +0 -26
  44. package/src/components/lock.tsx +0 -10
  45. package/src/components/select.tsx +0 -33
  46. package/src/components/slider.tsx +0 -69
  47. package/src/download-file.ts +0 -18
  48. package/src/frame/account-frame.tsx +0 -156
  49. package/src/frame/editor/defaults.ts +0 -419
  50. package/src/frame/editor/editor-conf-frame.tsx +0 -227
  51. package/src/frame/editor/editor-frame.css +0 -55
  52. package/src/frame/editor/editor-fs-frame.tsx +0 -314
  53. package/src/frame/fat-drives-frame.tsx +0 -199
  54. package/src/frame/frame.css +0 -119
  55. package/src/frame/frame.tsx +0 -34
  56. package/src/frame/image-rendering-frame.tsx +0 -8
  57. package/src/frame/network-frame.tsx +0 -157
  58. package/src/frame/quick-save-frame.tsx +0 -98
  59. package/src/frame/settings-frame.tsx +0 -14
  60. package/src/frame/stats-frame.tsx +0 -87
  61. package/src/host/bundle-storage.ts +0 -91
  62. package/src/host/fullscreen.ts +0 -35
  63. package/src/host/lcache.ts +0 -203
  64. package/src/host/lstorage.ts +0 -156
  65. package/src/i18n.ts +0 -185
  66. package/src/index.css +0 -7
  67. package/src/load.ts +0 -132
  68. package/src/login/login.css +0 -9
  69. package/src/login/login.tsx +0 -77
  70. package/src/main.tsx +0 -197
  71. package/src/public/types.ts +0 -45
  72. package/src/sidebar/account-button.tsx +0 -33
  73. package/src/sidebar/cloud-save-button.tsx +0 -89
  74. package/src/sidebar/diskette-icon.tsx +0 -14
  75. package/src/sidebar/fullscreen-button.tsx +0 -44
  76. package/src/sidebar/network-button.tsx +0 -39
  77. package/src/sidebar/sidebar-button.tsx +0 -244
  78. package/src/sidebar/sidebar.css +0 -47
  79. package/src/sidebar/sidebar.tsx +0 -30
  80. package/src/sockdrive/LICENSE +0 -674
  81. package/src/sockdrive/README.md +0 -45
  82. package/src/sockdrive/include/sockdrive.h +0 -23
  83. package/src/sockdrive/js/.eslintrc.json +0 -43
  84. package/src/sockdrive/js/package.json +0 -29
  85. package/src/sockdrive/js/src/fatfs/chains.js +0 -318
  86. package/src/sockdrive/js/src/fatfs/dir.js +0 -385
  87. package/src/sockdrive/js/src/fatfs/helpers.js +0 -210
  88. package/src/sockdrive/js/src/fatfs/index.js +0 -606
  89. package/src/sockdrive/js/src/fatfs/structs.js +0 -255
  90. package/src/sockdrive/js/src/fatfs/vol.js +0 -166
  91. package/src/sockdrive/js/src/sockdrive/cache.ts +0 -56
  92. package/src/sockdrive/js/src/sockdrive/drive.ts +0 -471
  93. package/src/sockdrive/js/src/sockdrive/lru.ts +0 -221
  94. package/src/sockdrive/js/src/sockdrive/types.ts +0 -14
  95. package/src/sockdrive/js/src/sockdrive-fat.d.ts +0 -64
  96. package/src/sockdrive/js/src/sockdrive-fat.ts +0 -226
  97. package/src/sockdrive/js/src/sockdrive-native.ts +0 -100
  98. package/src/sockdrive/js/src/test/test.ts +0 -289
  99. package/src/sockdrive/js/tsconfig.json +0 -11
  100. package/src/sockdrive/js/webpack.config.js +0 -68
  101. package/src/sockdrive/js/yarn.lock +0 -1808
  102. package/src/store/auth.ts +0 -115
  103. package/src/store/dos.ts +0 -305
  104. package/src/store/editor.ts +0 -61
  105. package/src/store/init.ts +0 -48
  106. package/src/store/storage.ts +0 -32
  107. package/src/store/ui.ts +0 -191
  108. package/src/store.tsx +0 -116
  109. package/src/ui.tsx +0 -140
  110. package/src/v8/changes.ts +0 -56
  111. package/src/v8/config.ts +0 -20
  112. package/src/v8/subscriptions.ts +0 -62
  113. package/src/vite-env.d.ts +0 -5
  114. package/src/window/dos/controls/keyboard.ts +0 -32
  115. package/src/window/dos/controls/keys.ts +0 -331
  116. package/src/window/dos/controls/mouse/mount.ts +0 -99
  117. package/src/window/dos/controls/mouse/mouse-locked.ts +0 -51
  118. package/src/window/dos/controls/mouse/mouse-not-locked.ts +0 -84
  119. package/src/window/dos/controls/mouse/mouse-swipe.ts +0 -57
  120. package/src/window/dos/controls/mouse/pointer.ts +0 -85
  121. package/src/window/dos/controls/mouse.ts +0 -21
  122. package/src/window/dos/dos-dhry2.tsx +0 -191
  123. package/src/window/dos/dos-runtime.tsx +0 -216
  124. package/src/window/dos/dos-window.tsx +0 -91
  125. package/src/window/dos/render/canvas.ts +0 -65
  126. package/src/window/dos/render/resize.ts +0 -31
  127. package/src/window/dos/render/webgl.ts +0 -173
  128. package/src/window/dos/sound/audio-node.ts +0 -148
  129. package/src/window/error-window.tsx +0 -9
  130. package/src/window/loading-window.tsx +0 -54
  131. package/src/window/prerun-window.tsx +0 -121
  132. package/src/window/select-window.tsx +0 -118
  133. package/src/window/window.css +0 -78
  134. package/src/window/window.tsx +0 -49
  135. package/src/ws/ws-sockdrive.ts +0 -123
  136. package/src/ws/ws-transport-layer.ts +0 -468
  137. package/tailwind.config.cjs +0 -48
  138. package/tsconfig.json +0 -32
  139. package/tsconfig.node.json +0 -9
  140. package/vite.config.ts +0 -25
@@ -1,78 +0,0 @@
1
- .jsdos-rso {
2
- .window {
3
- @apply overflow-hidden;
4
-
5
- .background-image {
6
- @apply absolute left-12 right-0 h-full pointer-events-none;
7
- background-position: center;
8
- background-size: cover;
9
- background-repeat: no-repeat;
10
- &::after {
11
- position: relative;
12
- content: "";
13
- display: block;
14
- width: 100%;
15
- height: 100%;
16
- background-color: hsl(var(--b1)/var(--tw-bg-opacity));
17
- opacity: 0.75;
18
- }
19
- }
20
-
21
- .play-button {
22
- &:hover {
23
- color: hsl(var(--af));
24
- }
25
- }
26
-
27
- .dhry2-window {
28
- @apply absolute left-0 top-0 w-full h-full flex flex-col items-center justify-center;
29
- @apply bg-black bg-opacity-80 text-2xl px-8 py-4 text-white;
30
-
31
- .title {
32
- @apply mb-4 text-center text-4xl;
33
- }
34
-
35
- .backend {
36
- @apply mb-8 text-center;
37
- }
38
-
39
- .results {
40
- @apply grid grid-cols-2 gap-4;
41
-
42
- div:nth-child(even) {
43
- @apply text-green-300;
44
-
45
- span {
46
- @apply text-white;
47
- }
48
- }
49
-
50
- div:nth-child(2),
51
- div:last-child {
52
- @apply text-yellow-300;
53
- }
54
-
55
- }
56
- }
57
-
58
- .pre-run-window {
59
- @apply overflow-x-hidden overflow-y-auto flex-grow flex flex-col items-center justify-center px-8 m-auto;
60
-
61
- .slider {
62
- @apply justify-center w-80 max-w-none;
63
-
64
- .label {
65
- @apply flex-grow;
66
- }
67
-
68
- .touch {
69
- @apply w-40 flex-grow-0;
70
- }
71
- }
72
- }
73
-
74
- .select-window {
75
- @apply m-auto;
76
- }
77
- }
78
- }
@@ -1,49 +0,0 @@
1
- import { useSelector } from "react-redux";
2
- import { State } from "../store";
3
- import { DosWindow } from "./dos/dos-window";
4
- import { ErrorWindow } from "./error-window";
5
- import { LoadingWindow } from "./loading-window";
6
- import { PreRunWindow } from "./prerun-window";
7
- import { SelectWindow } from "./select-window";
8
-
9
- export function Window(props: {}) {
10
- const frameOpened = useSelector((state: State) => state.ui.frame) !== "none";
11
- const frameXs = useSelector((state: State) => state.ui.frameXs);
12
- const window = useSelector((state: State) => state.ui.window);
13
- const background = useSelector((state: State) => state.ui.background);
14
-
15
- let windowComponent = <Loading />;
16
- switch (window) {
17
- case "error": {
18
- windowComponent = <ErrorWindow />;
19
- } break;
20
- case "loading": {
21
- windowComponent = <LoadingWindow />;
22
- } break;
23
- case "prerun": {
24
- windowComponent = <PreRunWindow />;
25
- } break;
26
- case "run": {
27
- windowComponent = <DosWindow />;
28
- } break;
29
- case "select": {
30
- windowComponent = <SelectWindow />;
31
- } break;
32
- default: ;
33
- };
34
-
35
- return <div class="window absolute w-full h-full bg-base-100">
36
- <div class="background-image"
37
- style={{ backgroundImage: (background ? "url(" + background + ")" : undefined ) }} />
38
- <div class="relative flex flex-row h-full w-full items-start justify-start overflow-auto">
39
- <div class={(frameOpened ? (frameXs ? "w-24" : "w-96") : "w-12") + " flex-shrink-0"}></div>
40
- {windowComponent}
41
- </div>
42
- </div>;
43
- }
44
-
45
- function Loading() {
46
- return <div class="w-full h-full flex justify-center items-center">
47
- <div class="radial-progress animate-spin" style="--value:70;"></div>
48
- </div>;
49
- }
@@ -1,123 +0,0 @@
1
- import { Handle, Stats } from "../sockdrive/js/src/sockdrive/types";
2
- import { Drive } from "../sockdrive/js/src/sockdrive/drive";
3
-
4
- interface Template {
5
- name: string,
6
- size: number,
7
- heads: number,
8
- cylinders: number,
9
- sectors: number,
10
- sectorSize: number,
11
- }
12
-
13
- export interface ReadResponse {
14
- buffer?: Uint8Array,
15
- code: number,
16
- }
17
-
18
- export function createSockdrive(
19
- onOpen: (drive: string, read: boolean, write: boolean, imageSize: number, preloadQueue: number[]) => void,
20
- onError: (e: Error) => void,
21
- onPreloadProgress: (drive: string, restBytes: number) => void,
22
- ) {
23
- let seq = 0;
24
- const mapping: { [handle: Handle]: Drive } = {};
25
- const templates: { [handle: number]: Template } = {};
26
- const memory: { [handle: number]: Uint8Array } = {};
27
- const stats: Stats = {
28
- read: 0,
29
- write: 0,
30
- readTotalTime: 0,
31
- cacheHit: 0,
32
- cacheMiss: 0,
33
- cacheUsed: 0,
34
- };
35
- const sockdrive = {
36
- stats,
37
- open: async (url: string, owner: string, name: string, token: string): Promise<{
38
- handle: Handle,
39
- aheadRange: number,
40
- }> => {
41
- const response = await fetch(url.replace("wss://", "https://")
42
- .replace("ws://", "http://") + "/template/" + owner + "/" + name);
43
- const template = await response.json();
44
- if (template.error) {
45
- throw new Error(template.error);
46
- }
47
- seq++;
48
- templates[seq] = {
49
- name: template.name,
50
- size: template.size ?? 0,
51
- heads: template.heads ?? 1,
52
- cylinders: template.cylinders ?? 520,
53
- sectors: template.sectors ?? 63,
54
- sectorSize: template.sector_size ?? 512,
55
- };
56
-
57
- const sectorSize = templates[seq].sectorSize;
58
- const module = { HEAPU8: new Uint8Array(0) };
59
- mapping[seq] = new Drive(url, owner, name, token, stats, module, true, true);
60
- return new Promise<{ handle: Handle, aheadRange: number }>((resolve, reject) => {
61
- const drive = owner + "/" + name;
62
- mapping[seq].onOpen((read, write, imageSize, preloadQueue, aheadRange) => {
63
- memory[seq] = new Uint8Array(sectorSize /* write */ + sectorSize * aheadRange);
64
- module.HEAPU8 = memory[seq];
65
- onOpen(drive, read, write, imageSize, preloadQueue);
66
- resolve({
67
- handle: seq,
68
- aheadRange,
69
- });
70
- });
71
- mapping[seq].onPreloadProgress((restBytes) => {
72
- onPreloadProgress(drive, restBytes);
73
- });
74
- mapping[seq].onError((e) => {
75
- onError(e);
76
- reject(e);
77
- });
78
- });
79
- },
80
- read: async (handle: Handle, sector: number): Promise<ReadResponse> => {
81
- if (mapping[handle]) {
82
- const ptr = templates[seq].sectorSize;
83
- let code = mapping[handle].read(sector, ptr, true) as number;
84
- if (code = 255) {
85
- code = await mapping[handle].read(sector, ptr, false);
86
- }
87
- return {
88
- code,
89
- buffer: memory[handle].slice(ptr),
90
- };
91
- }
92
-
93
- console.error("ERROR! sockdrive handle", handle, "not found");
94
- return Promise.resolve({ code: 1 });
95
- },
96
- write: (handle: Handle, sector: number, buffer: Uint8Array): number => {
97
- if (buffer.byteLength != templates[handle].sectorSize) {
98
- onError(new Error("sockdrive write buffer size " + buffer.byteLength +
99
- " != sector size " + templates[handle].sectorSize));
100
- return 1;
101
- }
102
- if (mapping[handle]) {
103
- memory[handle].set(buffer, 0);
104
- return mapping[handle].write(sector, 0);
105
- }
106
- console.error("ERROR! sockdrive handle", handle, "not found");
107
- return 1;
108
- },
109
- close: (handle: Handle) => {
110
- if (mapping[handle]) {
111
- mapping[handle].close();
112
- delete memory[handle];
113
- delete templates[handle];
114
- delete mapping[handle];
115
- }
116
- },
117
- template: (handle: Handle) => {
118
- return templates[handle];
119
- },
120
- };
121
-
122
- return sockdrive;
123
- }