js-dos 8.1.4 → 8.1.6

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 (141) hide show
  1. package/README.md +1 -1
  2. package/dist/emulators/emulators.js +2 -0
  3. package/dist/emulators/emulators.js.map +1 -0
  4. package/dist/emulators/types/build.d.ts +28 -0
  5. package/dist/emulators/types/dos/bundle/dos-bundle.d.ts +20 -0
  6. package/dist/emulators/types/dos/dosbox/ts/direct.d.ts +3 -0
  7. package/dist/emulators/types/dos/dosbox/ts/worker.d.ts +3 -0
  8. package/dist/emulators/types/emulators.d.ts +76 -0
  9. package/dist/emulators/types/http.d.ts +9 -0
  10. package/dist/emulators/types/impl/ci-impl.d.ts +29 -0
  11. package/dist/emulators/types/impl/emulators-impl.d.ts +26 -0
  12. package/dist/emulators/types/impl/modules.d.ts +38 -0
  13. package/dist/emulators/types/libzip/libzip.d.ts +16 -0
  14. package/dist/emulators/types/protocol/messages-queue.d.ts +8 -0
  15. package/dist/emulators/types/protocol/protocol.d.ts +128 -0
  16. package/dist/emulators/wdosbox-x.js +55 -0
  17. package/dist/emulators/wdosbox-x.js.symbols +8760 -0
  18. package/dist/emulators/wdosbox-x.wasm +0 -0
  19. package/dist/emulators/wdosbox.js +55 -0
  20. package/dist/emulators/wdosbox.js.symbols +3001 -0
  21. package/dist/emulators/wdosbox.wasm +0 -0
  22. package/dist/emulators/wlibzip.js +21 -0
  23. package/dist/emulators/wlibzip.js.symbols +268 -0
  24. package/dist/emulators/wlibzip.wasm +0 -0
  25. package/dist/js-dos.css +1 -0
  26. package/dist/js-dos.js +22 -0
  27. package/dist/js-dos.js.map +1 -0
  28. package/package.json +1 -1
  29. package/release.zip +0 -0
  30. package/.eslintrc.json +0 -43
  31. package/.github/workflows/build.yml +0 -51
  32. package/.gitmodules +0 -4
  33. package/index.html +0 -110
  34. package/postcss.config.cjs +0 -8
  35. package/src/app.css +0 -14
  36. package/src/base.css +0 -10
  37. package/src/components/checkbox.tsx +0 -41
  38. package/src/components/close-button.tsx +0 -17
  39. package/src/components/components.css +0 -28
  40. package/src/components/dos-option-checkbox.tsx +0 -94
  41. package/src/components/dos-option-select.tsx +0 -108
  42. package/src/components/dos-option-slider.tsx +0 -35
  43. package/src/components/error.tsx +0 -16
  44. package/src/components/loading.tsx +0 -26
  45. package/src/components/lock.tsx +0 -10
  46. package/src/components/select.tsx +0 -33
  47. package/src/components/slider.tsx +0 -69
  48. package/src/download-file.ts +0 -18
  49. package/src/frame/account-frame.tsx +0 -156
  50. package/src/frame/editor/defaults.ts +0 -419
  51. package/src/frame/editor/editor-conf-frame.tsx +0 -227
  52. package/src/frame/editor/editor-frame.css +0 -55
  53. package/src/frame/editor/editor-fs-frame.tsx +0 -314
  54. package/src/frame/fat-drives-frame.tsx +0 -199
  55. package/src/frame/frame.css +0 -119
  56. package/src/frame/frame.tsx +0 -34
  57. package/src/frame/image-rendering-frame.tsx +0 -8
  58. package/src/frame/network-frame.tsx +0 -157
  59. package/src/frame/quick-save-frame.tsx +0 -98
  60. package/src/frame/settings-frame.tsx +0 -14
  61. package/src/frame/stats-frame.tsx +0 -87
  62. package/src/host/bundle-storage.ts +0 -91
  63. package/src/host/fullscreen.ts +0 -35
  64. package/src/host/lcache.ts +0 -203
  65. package/src/host/lstorage.ts +0 -156
  66. package/src/i18n.ts +0 -185
  67. package/src/index.css +0 -7
  68. package/src/load.ts +0 -132
  69. package/src/login/login.css +0 -9
  70. package/src/login/login.tsx +0 -77
  71. package/src/main.tsx +0 -197
  72. package/src/public/types.ts +0 -45
  73. package/src/sidebar/account-button.tsx +0 -33
  74. package/src/sidebar/cloud-save-button.tsx +0 -89
  75. package/src/sidebar/diskette-icon.tsx +0 -14
  76. package/src/sidebar/fullscreen-button.tsx +0 -44
  77. package/src/sidebar/network-button.tsx +0 -39
  78. package/src/sidebar/sidebar-button.tsx +0 -244
  79. package/src/sidebar/sidebar.css +0 -47
  80. package/src/sidebar/sidebar.tsx +0 -30
  81. package/src/sockdrive/LICENSE +0 -674
  82. package/src/sockdrive/README.md +0 -45
  83. package/src/sockdrive/include/sockdrive.h +0 -23
  84. package/src/sockdrive/js/.eslintrc.json +0 -43
  85. package/src/sockdrive/js/package.json +0 -29
  86. package/src/sockdrive/js/src/fatfs/chains.js +0 -318
  87. package/src/sockdrive/js/src/fatfs/dir.js +0 -385
  88. package/src/sockdrive/js/src/fatfs/helpers.js +0 -210
  89. package/src/sockdrive/js/src/fatfs/index.js +0 -606
  90. package/src/sockdrive/js/src/fatfs/structs.js +0 -255
  91. package/src/sockdrive/js/src/fatfs/vol.js +0 -166
  92. package/src/sockdrive/js/src/sockdrive/cache.ts +0 -56
  93. package/src/sockdrive/js/src/sockdrive/drive.ts +0 -471
  94. package/src/sockdrive/js/src/sockdrive/lru.ts +0 -221
  95. package/src/sockdrive/js/src/sockdrive/types.ts +0 -14
  96. package/src/sockdrive/js/src/sockdrive-fat.d.ts +0 -64
  97. package/src/sockdrive/js/src/sockdrive-fat.ts +0 -226
  98. package/src/sockdrive/js/src/sockdrive-native.ts +0 -100
  99. package/src/sockdrive/js/src/test/test.ts +0 -289
  100. package/src/sockdrive/js/tsconfig.json +0 -11
  101. package/src/sockdrive/js/webpack.config.js +0 -68
  102. package/src/sockdrive/js/yarn.lock +0 -1808
  103. package/src/store/auth.ts +0 -115
  104. package/src/store/dos.ts +0 -305
  105. package/src/store/editor.ts +0 -61
  106. package/src/store/init.ts +0 -48
  107. package/src/store/storage.ts +0 -32
  108. package/src/store/ui.ts +0 -191
  109. package/src/store.tsx +0 -116
  110. package/src/ui.tsx +0 -140
  111. package/src/v8/changes.ts +0 -56
  112. package/src/v8/config.ts +0 -20
  113. package/src/v8/subscriptions.ts +0 -62
  114. package/src/vite-env.d.ts +0 -5
  115. package/src/window/dos/controls/keyboard.ts +0 -32
  116. package/src/window/dos/controls/keys.ts +0 -331
  117. package/src/window/dos/controls/mouse/mount.ts +0 -99
  118. package/src/window/dos/controls/mouse/mouse-locked.ts +0 -51
  119. package/src/window/dos/controls/mouse/mouse-not-locked.ts +0 -84
  120. package/src/window/dos/controls/mouse/mouse-swipe.ts +0 -57
  121. package/src/window/dos/controls/mouse/pointer.ts +0 -85
  122. package/src/window/dos/controls/mouse.ts +0 -21
  123. package/src/window/dos/dos-dhry2.tsx +0 -191
  124. package/src/window/dos/dos-runtime.tsx +0 -216
  125. package/src/window/dos/dos-window.tsx +0 -91
  126. package/src/window/dos/render/canvas.ts +0 -65
  127. package/src/window/dos/render/resize.ts +0 -31
  128. package/src/window/dos/render/webgl.ts +0 -173
  129. package/src/window/dos/sound/audio-node.ts +0 -148
  130. package/src/window/error-window.tsx +0 -9
  131. package/src/window/loading-window.tsx +0 -54
  132. package/src/window/prerun-window.tsx +0 -121
  133. package/src/window/select-window.tsx +0 -118
  134. package/src/window/window.css +0 -78
  135. package/src/window/window.tsx +0 -49
  136. package/src/ws/ws-sockdrive.ts +0 -123
  137. package/src/ws/ws-transport-layer.ts +0 -468
  138. package/tailwind.config.cjs +0 -48
  139. package/tsconfig.json +0 -32
  140. package/tsconfig.node.json +0 -9
  141. 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
- }