@isolated-vm/experimental 0.0.8 → 0.0.10

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 (192) hide show
  1. package/addon/CMakeLists.txt +1 -1
  2. package/addon/handle/local_of.cc +150 -0
  3. package/addon/handle/types.cc +8 -137
  4. package/addon/handle/value_of.cc +82 -27
  5. package/addon/resolve.js +2 -2
  6. package/addon/support/callback_info.cc +5 -5
  7. package/addon/support/callback_storage.cc +2 -2
  8. package/addon/support/free_function.cc +2 -2
  9. package/addon/support/initialize.cc +2 -2
  10. package/addon/transfer/accept.cc +84 -64
  11. package/addon/transfer/visit.cc +90 -47
  12. package/addon/value/array.cc +6 -6
  13. package/addon/value/array_buffer.cc +27 -18
  14. package/addon/value/function.cc +5 -5
  15. package/addon/value/function.h.cc +5 -5
  16. package/addon/value/object.cc +3 -3
  17. package/addon/value/primitive.cc +36 -36
  18. package/addon/value/prototype.cc +7 -7
  19. package/addon/value/record.cc +20 -20
  20. package/addon/value/value.cc +1 -1
  21. package/addon/value/vector.cc +9 -9
  22. package/backend/backend.cts +7 -0
  23. package/backend/backend.d.cts +87 -0
  24. package/backend/host.cts +41 -0
  25. package/backend/require.cts +17 -0
  26. package/dist/backend/backend.cjs +9 -0
  27. package/dist/backend/backend.cjs.map +1 -0
  28. package/dist/backend/backend.d.cts +2 -0
  29. package/dist/backend/backend.d.cts.map +1 -0
  30. package/dist/backend/host.cjs +41 -0
  31. package/dist/backend/host.cjs.map +1 -0
  32. package/dist/backend/host.d.cts +2 -0
  33. package/dist/backend/host.d.cts.map +1 -0
  34. package/dist/backend/require.cjs +19 -0
  35. package/dist/backend/require.cjs.map +1 -0
  36. package/dist/backend/require.d.cts +2 -0
  37. package/dist/backend/require.d.cts.map +1 -0
  38. package/dist/frontend/agent.d.ts +2 -1
  39. package/dist/frontend/agent.d.ts.map +1 -1
  40. package/dist/frontend/agent.js +1 -1
  41. package/dist/frontend/agent.js.map +1 -1
  42. package/dist/frontend/module.d.ts +2 -2
  43. package/dist/frontend/module.d.ts.map +1 -1
  44. package/dist/frontend/module.js +1 -1
  45. package/dist/frontend/module.js.map +1 -1
  46. package/dist/frontend/realm.d.ts +2 -2
  47. package/dist/frontend/realm.d.ts.map +1 -1
  48. package/dist/frontend/realm.js +2 -2
  49. package/dist/frontend/realm.js.map +1 -1
  50. package/dist/frontend/reference.d.ts +4 -4
  51. package/dist/frontend/reference.d.ts.map +1 -1
  52. package/dist/frontend/script.d.ts +1 -1
  53. package/dist/frontend/script.d.ts.map +1 -1
  54. package/dist/frontend/script.js +1 -1
  55. package/dist/frontend/script.js.map +1 -1
  56. package/dist/isolated-vm.d.ts +1 -1
  57. package/dist/isolated-vm.d.ts.map +1 -1
  58. package/dist/isolated-vm.js +1 -1
  59. package/dist/isolated-vm.js.map +1 -1
  60. package/dist/test/00.agent/00.prerequisites.d.ts +2 -0
  61. package/dist/test/00.agent/00.prerequisites.d.ts.map +1 -0
  62. package/dist/test/00.agent/00.prerequisites.js +25 -0
  63. package/dist/test/00.agent/00.prerequisites.js.map +1 -0
  64. package/dist/test/00.agent/10.clock.d.ts +2 -0
  65. package/dist/test/00.agent/10.clock.d.ts.map +1 -0
  66. package/dist/test/{00.datetime.js → 00.agent/10.clock.js} +8 -8
  67. package/dist/test/00.agent/10.clock.js.map +1 -0
  68. package/dist/test/00.agent/10.random.d.ts +2 -0
  69. package/dist/test/00.agent/10.random.d.ts.map +1 -0
  70. package/dist/test/{00.random.js → 00.agent/10.random.js} +4 -4
  71. package/dist/test/00.agent/10.random.js.map +1 -0
  72. package/dist/test/10.transfer/00.primitives.d.ts +2 -0
  73. package/dist/test/10.transfer/00.primitives.d.ts.map +1 -0
  74. package/dist/test/10.transfer/00.primitives.js +54 -0
  75. package/dist/test/10.transfer/00.primitives.js.map +1 -0
  76. package/dist/test/10.transfer/10.array_buffer.d.ts +2 -0
  77. package/dist/test/10.transfer/10.array_buffer.d.ts.map +1 -0
  78. package/dist/test/{20.array_buffer.js → 10.transfer/10.array_buffer.js} +90 -84
  79. package/dist/test/10.transfer/10.array_buffer.js.map +1 -0
  80. package/dist/test/10.transfer/50.interceptors.d.ts +2 -0
  81. package/dist/test/10.transfer/50.interceptors.d.ts.map +1 -0
  82. package/dist/test/10.transfer/50.interceptors.js +108 -0
  83. package/dist/test/10.transfer/50.interceptors.js.map +1 -0
  84. package/dist/test/10.transfer/90.regressions.d.ts +2 -0
  85. package/dist/test/10.transfer/90.regressions.d.ts.map +1 -0
  86. package/dist/test/10.transfer/90.regressions.js +72 -0
  87. package/dist/test/10.transfer/90.regressions.js.map +1 -0
  88. package/dist/test/20.intrinsics/00.script.d.ts +2 -0
  89. package/dist/test/20.intrinsics/00.script.d.ts.map +1 -0
  90. package/dist/test/{10.script.js → 20.intrinsics/00.script.js} +7 -7
  91. package/dist/test/20.intrinsics/00.script.js.map +1 -0
  92. package/dist/test/20.intrinsics/05.global.d.ts.map +1 -0
  93. package/dist/test/{05.global.js → 20.intrinsics/05.global.js} +5 -5
  94. package/dist/test/20.intrinsics/05.global.js.map +1 -0
  95. package/dist/test/20.intrinsics/10.reference.d.ts.map +1 -0
  96. package/dist/test/{10.reference.js → 20.intrinsics/10.reference.js} +15 -15
  97. package/dist/test/20.intrinsics/10.reference.js.map +1 -0
  98. package/dist/test/20.intrinsics/20.module.d.ts +2 -0
  99. package/dist/test/20.intrinsics/20.module.d.ts.map +1 -0
  100. package/dist/test/{10.module.js → 20.intrinsics/20.module.js} +18 -18
  101. package/dist/test/20.intrinsics/20.module.js.map +1 -0
  102. package/dist/test/50.features/50.timers.d.ts.map +1 -0
  103. package/dist/test/{50.timers.js → 50.features/50.timers.js} +8 -8
  104. package/dist/test/50.features/50.timers.js.map +1 -0
  105. package/dist/test/50.features/90.i18n.d.ts +2 -0
  106. package/dist/test/50.features/90.i18n.d.ts.map +1 -0
  107. package/dist/test/{99.i18n.js → 50.features/90.i18n.js} +6 -6
  108. package/dist/test/50.features/90.i18n.js.map +1 -0
  109. package/dist/test/90.isolation/00.dispose.d.ts +1 -1
  110. package/dist/test/90.isolation/00.dispose.d.ts.map +1 -1
  111. package/dist/test/90.isolation/00.dispose.js +23 -5
  112. package/dist/test/90.isolation/00.dispose.js.map +1 -1
  113. package/dist/test/90.isolation/10.memory.d.ts +2 -0
  114. package/dist/test/90.isolation/10.memory.d.ts.map +1 -0
  115. package/dist/test/90.isolation/10.memory.js +31 -0
  116. package/dist/test/90.isolation/10.memory.js.map +1 -0
  117. package/dist/test/fixtures.js +2 -3
  118. package/dist/test/fixtures.js.map +1 -1
  119. package/dist/test/glob.d.ts +2 -0
  120. package/dist/test/glob.d.ts.map +1 -0
  121. package/dist/test/glob.js +11 -0
  122. package/dist/test/glob.js.map +1 -0
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/dist/utility/completion.d.ts +2 -1
  125. package/dist/utility/completion.d.ts.map +1 -1
  126. package/dist/utility/completion.js +4 -0
  127. package/dist/utility/completion.js.map +1 -1
  128. package/frontend/agent.ts +3 -2
  129. package/frontend/module.ts +2 -2
  130. package/frontend/realm.ts +2 -2
  131. package/frontend/reference.ts +4 -4
  132. package/frontend/script.ts +1 -1
  133. package/isolated-vm.ts +1 -1
  134. package/package.json +29 -17
  135. package/test/00.agent/00.prerequisites.ts +12 -0
  136. package/test/{00.datetime.ts → 00.agent/10.clock.ts} +7 -7
  137. package/test/{00.random.ts → 00.agent/10.random.ts} +4 -4
  138. package/test/10.transfer/00.primitives.ts +47 -0
  139. package/test/{20.array_buffer.ts → 10.transfer/10.array_buffer.ts} +49 -43
  140. package/test/10.transfer/50.interceptors.ts +63 -0
  141. package/test/10.transfer/90.regressions.ts +38 -0
  142. package/test/{10.script.ts → 20.intrinsics/00.script.ts} +6 -6
  143. package/test/{05.global.ts → 20.intrinsics/05.global.ts} +5 -5
  144. package/test/{10.reference.ts → 20.intrinsics/10.reference.ts} +18 -17
  145. package/test/{10.module.ts → 20.intrinsics/20.module.ts} +17 -17
  146. package/test/{50.timers.ts → 50.features/50.timers.ts} +8 -8
  147. package/test/{99.i18n.ts → 50.features/90.i18n.ts} +5 -5
  148. package/test/90.isolation/00.dispose.ts +12 -5
  149. package/test/90.isolation/10.memory.ts +19 -0
  150. package/test/fixtures.ts +5 -5
  151. package/test/glob.ts +11 -0
  152. package/utility/completion.ts +6 -1
  153. package/addon/handle/bound_value.cc +0 -45
  154. package/backend/backend_v8.d.ts +0 -89
  155. package/backend/backend_v8.js +0 -18
  156. package/backend/specifier.ts +0 -20
  157. package/dist/backend/specifier.d.ts +0 -3
  158. package/dist/backend/specifier.d.ts.map +0 -1
  159. package/dist/backend/specifier.js +0 -21
  160. package/dist/backend/specifier.js.map +0 -1
  161. package/dist/test/00.datetime.d.ts +0 -2
  162. package/dist/test/00.datetime.d.ts.map +0 -1
  163. package/dist/test/00.datetime.js.map +0 -1
  164. package/dist/test/00.random.d.ts +0 -2
  165. package/dist/test/00.random.d.ts.map +0 -1
  166. package/dist/test/00.random.js.map +0 -1
  167. package/dist/test/00.transfer.d.ts +0 -2
  168. package/dist/test/00.transfer.d.ts.map +0 -1
  169. package/dist/test/00.transfer.js +0 -166
  170. package/dist/test/00.transfer.js.map +0 -1
  171. package/dist/test/05.global.d.ts.map +0 -1
  172. package/dist/test/05.global.js.map +0 -1
  173. package/dist/test/10.module.d.ts +0 -2
  174. package/dist/test/10.module.d.ts.map +0 -1
  175. package/dist/test/10.module.js.map +0 -1
  176. package/dist/test/10.reference.d.ts.map +0 -1
  177. package/dist/test/10.reference.js.map +0 -1
  178. package/dist/test/10.script.d.ts +0 -2
  179. package/dist/test/10.script.d.ts.map +0 -1
  180. package/dist/test/10.script.js.map +0 -1
  181. package/dist/test/20.array_buffer.d.ts +0 -2
  182. package/dist/test/20.array_buffer.d.ts.map +0 -1
  183. package/dist/test/20.array_buffer.js.map +0 -1
  184. package/dist/test/50.timers.d.ts.map +0 -1
  185. package/dist/test/50.timers.js.map +0 -1
  186. package/dist/test/99.i18n.d.ts +0 -2
  187. package/dist/test/99.i18n.d.ts.map +0 -1
  188. package/dist/test/99.i18n.js.map +0 -1
  189. package/test/00.transfer.ts +0 -132
  190. /package/dist/test/{05.global.d.ts → 20.intrinsics/05.global.d.ts} +0 -0
  191. /package/dist/test/{10.reference.d.ts → 20.intrinsics/10.reference.d.ts} +0 -0
  192. /package/dist/test/{50.timers.d.ts → 50.features/50.timers.d.ts} +0 -0
@@ -1,13 +1,13 @@
1
1
  import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { test } from "node:test";
4
- import * as ivm from "@isolated-vm/experimental";
5
- import { expectComplete, unsafeEvalAsStringInRealm } from "./fixtures.js";
4
+ import { Agent, expect } from "@isolated-vm/experimental";
5
+ import { expectComplete, unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
6
6
  await test("function reference invoke", async () => {
7
7
  const env_1 = { stack: [], error: void 0, hasError: false };
8
8
  try {
9
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
10
- const realm = await agent.createRealm();
9
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
10
+ const realm = expect(await agent.createRealm());
11
11
  await unsafeEvalAsStringInRealm(agent, realm, () => {
12
12
  // @ts-expect-error
13
13
  globalThis.fn = () => "wow";
@@ -30,8 +30,8 @@ await test("function reference invoke", async () => {
30
30
  await test("invoke function cross-param reference", async () => {
31
31
  const env_2 = { stack: [], error: void 0, hasError: false };
32
32
  try {
33
- const agent = __addDisposableResource(env_2, await ivm.Agent.create(), true);
34
- const realm = await agent.createRealm();
33
+ const agent = __addDisposableResource(env_2, await Agent.create(), true);
34
+ const realm = expect(await agent.createRealm());
35
35
  await unsafeEvalAsStringInRealm(agent, realm, () => {
36
36
  // @ts-expect-error
37
37
  globalThis.fn = (...values) => values;
@@ -56,8 +56,8 @@ await test("invoke function cross-param reference", async () => {
56
56
  await test("invoke function reference with circular object", async () => {
57
57
  const env_3 = { stack: [], error: void 0, hasError: false };
58
58
  try {
59
- const agent = __addDisposableResource(env_3, await ivm.Agent.create(), true);
60
- const realm = await agent.createRealm();
59
+ const agent = __addDisposableResource(env_3, await Agent.create(), true);
60
+ const realm = expect(await agent.createRealm());
61
61
  await unsafeEvalAsStringInRealm(agent, realm, () => {
62
62
  // @ts-expect-error
63
63
  globalThis.fn = (value) => value;
@@ -90,8 +90,8 @@ await test("invoke function reference with circular object", async () => {
90
90
  await test("get & set should not invoke proxies", async () => {
91
91
  const env_4 = { stack: [], error: void 0, hasError: false };
92
92
  try {
93
- const agent = __addDisposableResource(env_4, await ivm.Agent.create(), true);
94
- const realm = await agent.createRealm();
93
+ const agent = __addDisposableResource(env_4, await Agent.create(), true);
94
+ const realm = expect(await agent.createRealm());
95
95
  await unsafeEvalAsStringInRealm(agent, realm, () => {
96
96
  // @ts-expect-error
97
97
  globalThis.prox = new Proxy({}, {
@@ -102,17 +102,17 @@ await test("get & set should not invoke proxies", async () => {
102
102
  });
103
103
  });
104
104
  const global = await realm.acquireGlobalObject();
105
- const prox = await global.get("prox");
105
+ const prox = expect(await global.get("prox"));
106
106
  await prox.get("name");
107
- assert.equal(await (await global.get("failed")).copy(), undefined);
108
- await prox.set("name", undefined);
109
- assert.equal(await (await global.get("failed")).copy(), undefined);
107
+ assert.equal(await expect(await global.get("failed")).copy(), undefined);
108
+ expect(await prox.set("name", undefined));
109
+ assert.equal(await expect(await global.get("failed")).copy(), undefined);
110
110
  // sanity check
111
111
  await unsafeEvalAsStringInRealm(agent, realm, () => {
112
112
  // @ts-expect-error
113
113
  globalThis.failed = true;
114
114
  });
115
- assert.equal(await (await global.get("failed")).copy(), true);
115
+ assert.equal(await expect(await global.get("failed")).copy(), true);
116
116
  }
117
117
  catch (e_4) {
118
118
  env_4.error = e_4;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.reference.js","sourceRoot":"","sources":["../../../test/20.intrinsics/10.reference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=20.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20.module.d.ts","sourceRoot":"","sources":["../../../test/20.intrinsics/20.module.ts"],"names":[],"mappings":""}
@@ -1,13 +1,13 @@
1
1
  import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { test } from "node:test";
4
- import * as ivm from "@isolated-vm/experimental";
5
- import { makeNullLinker } from "../utility/linker.js";
6
- import { expectComplete, expectThrow } from "./fixtures.js";
4
+ import { Agent, expect } from "@isolated-vm/experimental";
5
+ import { expectComplete, expectThrow } from "@isolated-vm/experimental/test/fixtures";
6
+ import { makeNullLinker } from "@isolated-vm/experimental/utility/linker";
7
7
  await test("module linker", async () => {
8
8
  const env_1 = { stack: [], error: void 0, hasError: false };
9
9
  try {
10
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
10
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
11
11
  const realm = await agent.createRealm();
12
12
  const left = expectComplete(await agent.compileModule('import { right } from "right"; globalThis.right = right;'));
13
13
  const right = expectComplete(await agent.compileModule('export function right() { return "hello"; }'));
@@ -33,7 +33,7 @@ await test("module linker", async () => {
33
33
  await test("nested compilation in module linker", async () => {
34
34
  const env_2 = { stack: [], error: void 0, hasError: false };
35
35
  try {
36
- const agent = __addDisposableResource(env_2, await ivm.Agent.create(), true);
36
+ const agent = __addDisposableResource(env_2, await Agent.create(), true);
37
37
  const realm = await agent.createRealm();
38
38
  const left = expectComplete(await agent.compileModule('import "right";'));
39
39
  await left.link(realm, async () => expectComplete(await agent.compileModule("export {};")));
@@ -51,17 +51,17 @@ await test("nested compilation in module linker", async () => {
51
51
  await test("synthetic module capability", async () => {
52
52
  const env_3 = { stack: [], error: void 0, hasError: false };
53
53
  try {
54
- const agent = __addDisposableResource(env_3, await ivm.Agent.create(), true);
54
+ const agent = __addDisposableResource(env_3, await Agent.create(), true);
55
55
  const capabilityName = "isolated-vm:///capability";
56
56
  let didInvoke = false;
57
- const realm = await agent.createRealm();
58
- const capability = await realm.createCapability(() => ({
57
+ const realm = expect(await agent.createRealm());
58
+ const capability = expect(await realm.createCapability(() => ({
59
59
  default: (value1, value2) => {
60
60
  didInvoke = true;
61
61
  assert.equal(value1, "hello");
62
62
  assert.equal(value2, "world");
63
63
  },
64
- }), { origin: capabilityName });
64
+ }), { origin: capabilityName }));
65
65
  const left = expectComplete(await agent.compileModule(`
66
66
  import capability from ${JSON.stringify(capabilityName)};
67
67
  capability("hello", "world");
@@ -86,17 +86,17 @@ await test("synthetic module capability", async () => {
86
86
  await test("synthetic module with circular reference", async () => {
87
87
  const env_4 = { stack: [], error: void 0, hasError: false };
88
88
  try {
89
- const agent = __addDisposableResource(env_4, await ivm.Agent.create(), true);
89
+ const agent = __addDisposableResource(env_4, await Agent.create(), true);
90
90
  const capabilityName = "isolated-vm:///capability";
91
- const realm = await agent.createRealm();
92
- const capability = await realm.createCapability(() => ({
91
+ const realm = expect(await agent.createRealm());
92
+ const capability = expect(await realm.createCapability(() => ({
93
93
  default: (value1) => {
94
94
  // @ts-expect-error
95
95
  assert.strictEqual(value1.date1, value1.date2);
96
96
  // @ts-expect-error
97
97
  assert.strictEqual(value1.object, value1);
98
98
  },
99
- }), { origin: capabilityName });
99
+ }), { origin: capabilityName }));
100
100
  const left = expectComplete(await agent.compileModule(`
101
101
  import capability from ${JSON.stringify(capabilityName)};
102
102
  const date = new Date();
@@ -127,7 +127,7 @@ await test("synthetic module with circular reference", async () => {
127
127
  // TODO: This terminates the process. It should probably raise an async error, because there is no
128
128
  // promise.
129
129
  // await test("throw from synthetic module", async () => {
130
- // await using agent = await ivm.Agent.create();
130
+ // await using agent = await Agent.create();
131
131
  // const capabilityName = "isolated-vm:///capability";
132
132
  // const realm = await agent.createRealm();
133
133
  // const capability = await realm.createCapability(
@@ -150,7 +150,7 @@ await test("synthetic module with circular reference", async () => {
150
150
  await test("throw from linker", async () => {
151
151
  const env_5 = { stack: [], error: void 0, hasError: false };
152
152
  try {
153
- const agent = __addDisposableResource(env_5, await ivm.Agent.create(), true);
153
+ const agent = __addDisposableResource(env_5, await Agent.create(), true);
154
154
  const realm = await agent.createRealm();
155
155
  const left = expectComplete(await agent.compileModule('import "right";'));
156
156
  await assert.rejects(left.link(realm, () => {
@@ -170,7 +170,7 @@ await test("throw from linker", async () => {
170
170
  await test("throw from evaluation", async () => {
171
171
  const env_6 = { stack: [], error: void 0, hasError: false };
172
172
  try {
173
- const agent = __addDisposableResource(env_6, await ivm.Agent.create(), true);
173
+ const agent = __addDisposableResource(env_6, await Agent.create(), true);
174
174
  const realm = await agent.createRealm();
175
175
  const module = expectComplete(await agent.compileModule('throw new Error("wow");', { origin: { name: "test:module" } }));
176
176
  await module.link(realm, makeNullLinker());
@@ -191,7 +191,7 @@ await test("throw from evaluation", async () => {
191
191
  await test("missing imports", async () => {
192
192
  const env_7 = { stack: [], error: void 0, hasError: false };
193
193
  try {
194
- const agent = __addDisposableResource(env_7, await ivm.Agent.create(), true);
194
+ const agent = __addDisposableResource(env_7, await Agent.create(), true);
195
195
  const realm = await agent.createRealm();
196
196
  const left = expectComplete(await agent.compileModule('import { nothing } from "right";'));
197
197
  await assert.rejects(left.link(realm, async () => expectComplete(await agent.compileModule("export {};"))));
@@ -206,4 +206,4 @@ await test("missing imports", async () => {
206
206
  await result_7;
207
207
  }
208
208
  });
209
- //# sourceMappingURL=10.module.js.map
209
+ //# sourceMappingURL=20.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20.module.js","sourceRoot":"","sources":["../../../test/20.intrinsics/20.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"50.timers.d.ts","sourceRoot":"","sources":["../../../test/50.features/50.timers.ts"],"names":[],"mappings":""}
@@ -1,27 +1,27 @@
1
1
  import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { test } from "node:test";
4
- import * as ivm from "@isolated-vm/experimental";
4
+ import { Agent, expect } from "@isolated-vm/experimental";
5
+ import { expectComplete } from "@isolated-vm/experimental/test/fixtures";
5
6
  import { makeCompositeLinker, makeDirectResolver, makeFileSystemCompilationLoader, makeLinker, makeLocalResolver, makeStaticLoader } from "@isolated-vm/experimental/utility/linker";
6
- import { expectComplete } from "./fixtures.js";
7
7
  await test("setTimeout capability", async () => {
8
8
  const env_1 = { stack: [], error: void 0, hasError: false };
9
9
  try {
10
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
11
- const realm = await agent.createRealm();
10
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
11
+ const realm = expect(await agent.createRealm());
12
12
  const runTimers = expectComplete(await agent.compileScript("runTimers()"));
13
13
  const resolvers = Promise.withResolvers();
14
14
  const capabilities = makeStaticLoader({
15
- "isolated-vm:capability/timers": await realm.createCapability(() => ({
15
+ "isolated-vm:capability/timers": expect(await realm.createCapability(() => ({
16
16
  default: ( /*timeout*/) => {
17
17
  void async function () {
18
18
  await runTimers.run(realm);
19
19
  }();
20
20
  },
21
- }), { origin: "isolated-vm:capability/timers" }),
22
- "notify-test": await realm.createCapability(() => ({
21
+ }), { origin: "isolated-vm:capability/timers" })),
22
+ "notify-test": expect(await realm.createCapability(() => ({
23
23
  default: (message) => { resolvers.resolve(message); },
24
- }), { origin: "notify-test" }),
24
+ }), { origin: "notify-test" })),
25
25
  });
26
26
  const runtime = makeFileSystemCompilationLoader(agent);
27
27
  const linker = makeCompositeLinker(makeLinker(makeDirectResolver(), capabilities), makeLinker(makeLocalResolver(import.meta), runtime));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"50.timers.js","sourceRoot":"","sources":["../../../test/50.features/50.timers.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,+BAA+B,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAErL,MAAM,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;;;QAC9C,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,gBAAgB,CAAC;YACrC,+BAA+B,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,gBAAgB,CACnE,GAAG,EAAE,CAAC,CAAC;gBACN,OAAO,EAAE,EAAC,WAAW,EAAE,EAAE;oBACxB,KAAK,KAAK;wBACT,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC,EAAE,CAAC;gBACL,CAAC;aACD,CAAC,EACF,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC;YAC9C,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,gBAAgB,CACjD,GAAG,EAAE,CAAC,CAAC;gBACN,OAAO,EAAE,CAAC,OAAgB,EAAE,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC9D,CAAC,EACF,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;SAC5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,mBAAmB,CACjC,UAAU,CAAC,kBAAkB,EAAE,EAAE,YAAY,CAAC,EAC9C,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC;;;;EAIvD,CAAC,CAAC,CAAC;QACJ,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;CAC/C,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=90.i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"90.i18n.d.ts","sourceRoot":"","sources":["../../../test/50.features/90.i18n.ts"],"names":[],"mappings":""}
@@ -1,12 +1,12 @@
1
1
  import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { test } from "node:test";
4
- import * as ivm from "@isolated-vm/experimental";
5
- import { unsafeEvalAsString } from "./fixtures.js";
4
+ import { Agent } from "@isolated-vm/experimental";
5
+ import { unsafeEvalAsString } from "@isolated-vm/experimental/test/fixtures";
6
6
  await test("localCompare", async () => {
7
7
  const env_1 = { stack: [], error: void 0, hasError: false };
8
8
  try {
9
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
9
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
10
10
  const result = await unsafeEvalAsString(agent, () => "a".localeCompare("b"));
11
11
  assert.equal(result, -1);
12
12
  }
@@ -23,7 +23,7 @@ await test("localCompare", async () => {
23
23
  await test("i18n locales", async () => {
24
24
  const env_2 = { stack: [], error: void 0, hasError: false };
25
25
  try {
26
- const agent = __addDisposableResource(env_2, await ivm.Agent.create(), true);
26
+ const agent = __addDisposableResource(env_2, await Agent.create(), true);
27
27
  const supported = await unsafeEvalAsString(agent, () => Intl.NumberFormat.supportedLocalesOf(["ar-EG", "fa-IR", "zh-Hans", "hi-IN", "th-TH", "km-KH"]));
28
28
  // no "km-KH"
29
29
  assert.deepEqual(supported, ["ar-EG", "fa-IR", "zh-Hans", "hi-IN", "th-TH"]);
@@ -41,7 +41,7 @@ await test("i18n locales", async () => {
41
41
  await test("i18n format", async () => {
42
42
  const env_3 = { stack: [], error: void 0, hasError: false };
43
43
  try {
44
- const agent = __addDisposableResource(env_3, await ivm.Agent.create(), true);
44
+ const agent = __addDisposableResource(env_3, await Agent.create(), true);
45
45
  const german = await unsafeEvalAsString(agent, () => new Intl.NumberFormat("de-DE").format(1234567.89));
46
46
  assert.equal(german, "1.234.567,89");
47
47
  }
@@ -55,4 +55,4 @@ await test("i18n format", async () => {
55
55
  await result_3;
56
56
  }
57
57
  });
58
- //# sourceMappingURL=99.i18n.js.map
58
+ //# sourceMappingURL=90.i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"90.i18n.js","sourceRoot":"","sources":["../../../test/50.features/90.i18n.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;QACrC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;CACzB,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;QACrC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CACtD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAE,CAAC,CAAC,CAAC;QACnG,aAAa;QACb,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAE,CAAC,CAAC;;;;;;;;;;;CAC/E,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;;;QACpC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACxG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;;;;;;;;;;;CACrC,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ import "@isolated-vm/experimental/test/fixtures";
2
2
  //# sourceMappingURL=00.dispose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"00.dispose.d.ts","sourceRoot":"","sources":["../../../test/90.isolation/00.dispose.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"00.dispose.d.ts","sourceRoot":"","sources":["../../../test/90.isolation/00.dispose.ts"],"names":[],"mappings":"AAGA,OAAO,yCAAyC,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { test } from "node:test";
4
- import * as ivm from "@isolated-vm/experimental";
5
- import {} from "@isolated-vm/experimental/test/fixtures";
4
+ import { Agent, expectComplete } from "@isolated-vm/experimental";
5
+ import "@isolated-vm/experimental/test/fixtures";
6
6
  await test("dispose while running", async () => {
7
7
  const result = async function () {
8
8
  const env_1 = { stack: [], error: void 0, hasError: false };
9
9
  try {
10
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
10
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
11
11
  const realm = await agent.createRealm();
12
- const script = ivm.expectComplete(await agent.compileScript("for(;;);"));
12
+ const script = expectComplete(await agent.compileScript("for(;;);"));
13
13
  // eslint-disable-next-line @typescript-eslint/return-await
14
14
  return script.run(realm);
15
15
  }
@@ -23,6 +23,24 @@ await test("dispose while running", async () => {
23
23
  await result_1;
24
24
  }
25
25
  }();
26
- assert.strictEqual(await result, undefined);
26
+ assert.strictEqual(await result, null);
27
+ });
28
+ await test("busy dispose", async () => {
29
+ const env_2 = { stack: [], error: void 0, hasError: false };
30
+ try {
31
+ const agent = __addDisposableResource(env_2, await Agent.create(), true);
32
+ const [dispose, realm] = await Promise.all([agent.disposeAsync(), agent.createRealm()]);
33
+ assert.strictEqual(dispose, undefined);
34
+ assert.strictEqual(realm, null);
35
+ }
36
+ catch (e_2) {
37
+ env_2.error = e_2;
38
+ env_2.hasError = true;
39
+ }
40
+ finally {
41
+ const result_2 = __disposeResources(env_2);
42
+ if (result_2)
43
+ await result_2;
44
+ }
27
45
  });
28
46
  //# sourceMappingURL=00.dispose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"00.dispose.js","sourceRoot":"","sources":["../../../test/90.isolation/00.dispose.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAEzD,MAAM,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IAC9C,MAAM,MAAM,GAAG,KAAK;;;YACnB,MAAY,KAAK,kCAAG,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;YACzE,2DAA2D;YAC3D,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;;;;;;;;;;KACzB,EAAE,CAAC;IACJ,MAAM,CAAC,WAAW,CAAC,MAAM,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"00.dispose.js","sourceRoot":"","sources":["../../../test/90.isolation/00.dispose.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,yCAAyC,CAAC;AAEjD,MAAM,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IAC9C,MAAM,MAAM,GAAG,KAAK;;;YACnB,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;YACrE,2DAA2D;YAC3D,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;;;;;;;;;;KACzB,EAAE,CAAC;IACJ,MAAM,CAAC,WAAW,CAAC,MAAM,MAAM,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;QACrC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,CAAE,OAAO,EAAE,KAAK,CAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAE,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,CAAE,CAAC,CAAC;QAC5F,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;;;;;;;;;;;CAChC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import "@isolated-vm/experimental/test/fixtures";
2
+ //# sourceMappingURL=10.memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.memory.d.ts","sourceRoot":"","sources":["../../../test/90.isolation/10.memory.ts"],"names":[],"mappings":"AAGA,OAAO,yCAAyC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { __addDisposableResource, __disposeResources } from "tslib";
2
+ import assert from "node:assert";
3
+ import { test } from "node:test";
4
+ import { Agent, expectComplete } from "@isolated-vm/experimental";
5
+ import "@isolated-vm/experimental/test/fixtures";
6
+ await test("memory limit", async () => {
7
+ const env_1 = { stack: [], error: void 0, hasError: false };
8
+ try {
9
+ const agent = __addDisposableResource(env_1, await Agent.create({ memoryLimitBytes: 128 << 20 }), true);
10
+ const realm = await agent.createRealm();
11
+ const sourceText = `const x = [];
12
+ for (;;) {
13
+ let a = 'a';
14
+ for(; a.length < 2**28;) a += a;
15
+ x.push(a);
16
+ }`;
17
+ const script = expectComplete(await agent.compileScript(sourceText));
18
+ const result = await script.run(realm);
19
+ assert.strictEqual(result, null);
20
+ }
21
+ catch (e_1) {
22
+ env_1.error = e_1;
23
+ env_1.hasError = true;
24
+ }
25
+ finally {
26
+ const result_1 = __disposeResources(env_1);
27
+ if (result_1)
28
+ await result_1;
29
+ }
30
+ });
31
+ //# sourceMappingURL=10.memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.memory.js","sourceRoot":"","sources":["../../../test/90.isolation/10.memory.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,yCAAyC,CAAC;AAEjD,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;QACrC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAA,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,UAAU,GACjB;;;;;EAKE,CAAC;QACF,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;;;;;;;;;;CACjC,CAAC,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { afterEach } from "node:test";
2
- import { Agent, Realm } from "@isolated-vm/experimental";
3
- import { expectComplete } from "@isolated-vm/experimental/utility/completion";
2
+ import { expect, expectComplete } from "@isolated-vm/experimental/utility/completion";
4
3
  export { expectComplete, expectThrow } from "@isolated-vm/experimental/utility/completion";
5
4
  /** @internal */
6
5
  export function injectAssert(agent, realm) {
@@ -33,7 +32,7 @@ export function unsafeIIFEAsString(code) {
33
32
  }
34
33
  /** @internal */
35
34
  export async function unsafeEvalAsString(agent, code, ...args) {
36
- const realm = await agent.createRealm();
35
+ const realm = expect(await agent.createRealm());
37
36
  return unsafeEvalAsStringInRealm(agent, realm, code, ...args);
38
37
  }
39
38
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../test/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAE3F,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,KAAY;IACtD,OAAO,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG;YACd,EAAE,CAAC,KAAc,EAAE,OAAgB;gBAClC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;YACD,eAAe,CAAC,MAAe,EAAE,QAAiB,EAAE,OAAgB;gBACnE,KAAK;gBACL,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzD,4EAA4E;oBAC5E,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,YAAY,MAAM,oBAAoB,QAAQ,EAAE,CAAC,CAAC;gBAC9E,CAAC;YACF,CAAC;YACD,WAAW,CAAC,MAAe,EAAE,QAAiB,EAAE,OAAgB;gBAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAClC,4EAA4E;oBAC5E,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,YAAY,MAAM,sBAAsB,QAAQ,EAAE,CAAC,CAAC;gBAChF,CAAC;YACF,CAAC;SACD,CAAC;QACF,mBAAmB;QACnB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;IAC5B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CACjC,IAAmB;IAEnB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,KAAY,EACZ,IAA6B,EAC7B,GAAG,IAAU;IAEb,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,KAAY,EACZ,KAAY,EACZ,IAA6B,EAC7B,GAAG,IAAU;IAEb,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjI,OAAO,cAAc,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAS,CAAC;AACxD,CAAC;AAED,kFAAkF;AAClF,SAAS,CAAC,GAAG,EAAE;IACd,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;AACf,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../test/fixtures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAEtF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAE3F,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,KAAmB;IAC7D,OAAO,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG;YACd,EAAE,CAAC,KAAc,EAAE,OAAgB;gBAClC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;YACD,eAAe,CAAC,MAAe,EAAE,QAAiB,EAAE,OAAgB;gBACnE,KAAK;gBACL,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzD,4EAA4E;oBAC5E,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,YAAY,MAAM,oBAAoB,QAAQ,EAAE,CAAC,CAAC;gBAC9E,CAAC;YACF,CAAC;YACD,WAAW,CAAC,MAAe,EAAE,QAAiB,EAAE,OAAgB;gBAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAClC,4EAA4E;oBAC5E,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,YAAY,MAAM,sBAAsB,QAAQ,EAAE,CAAC,CAAC;gBAChF,CAAC;YACF,CAAC;SACD,CAAC;QACF,mBAAmB;QACnB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;IAC5B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CACjC,IAAmB;IAEnB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,KAAY,EACZ,IAA6B,EAC7B,GAAG,IAAU;IAEb,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,OAAO,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,KAAY,EACZ,KAAmB,EACnB,IAA6B,EAC7B,GAAG,IAAU;IAEb,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjI,OAAO,cAAc,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAS,CAAC;AACxD,CAAC;AAED,kFAAkF;AAClF,SAAS,CAAC,GAAG,EAAE;IACd,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;AACf,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=glob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../test/glob.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { glob } from "node:fs/promises";
2
+ // Bun's `node:test` implementation is broken
3
+ // https://github.com/oven-sh/bun/issues/23077
4
+ // https://github.com/oven-sh/bun/issues/5090 (red herring)
5
+ const cwd = new URL(".", import.meta.url);
6
+ for await (const file of glob("**/*.ts", { cwd })) {
7
+ if (/^[0-9]{2}/.test(file)) {
8
+ await import(new URL(file, cwd).href);
9
+ }
10
+ }
11
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../test/glob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,6CAA6C;AAC7C,8CAA8C;AAC9C,2DAA2D;AAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACnD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;AACF,CAAC"}