@isolated-vm/experimental 0.0.9 → 0.0.11

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 (151) hide show
  1. package/addon/CMakeLists.txt +1 -1
  2. package/addon/handle/local_of.cc +149 -0
  3. package/addon/handle/types.cc +8 -137
  4. package/addon/handle/value_of.cc +82 -27
  5. package/addon/support/callback_info.cc +5 -5
  6. package/addon/support/callback_storage.cc +2 -2
  7. package/addon/support/free_function.cc +3 -3
  8. package/addon/support/initialize.cc +5 -5
  9. package/addon/transfer/accept.cc +104 -72
  10. package/addon/transfer/visit.cc +97 -54
  11. package/addon/value/array.cc +6 -6
  12. package/addon/value/array_buffer.cc +27 -18
  13. package/addon/value/function.cc +5 -5
  14. package/addon/value/function.h.cc +5 -5
  15. package/addon/value/object.cc +3 -3
  16. package/addon/value/primitive.cc +36 -36
  17. package/addon/value/prototype.cc +7 -7
  18. package/addon/value/record.cc +20 -20
  19. package/addon/value/value.cc +1 -1
  20. package/addon/value/vector.cc +9 -9
  21. package/backend/backend.d.cts +9 -9
  22. package/dist/frontend/agent.d.ts +1 -0
  23. package/dist/frontend/agent.d.ts.map +1 -1
  24. package/dist/frontend/agent.js.map +1 -1
  25. package/dist/frontend/module.d.ts +1 -1
  26. package/dist/frontend/module.d.ts.map +1 -1
  27. package/dist/frontend/module.js.map +1 -1
  28. package/dist/frontend/realm.d.ts +1 -1
  29. package/dist/frontend/realm.d.ts.map +1 -1
  30. package/dist/frontend/reference.d.ts +3 -3
  31. package/dist/frontend/reference.d.ts.map +1 -1
  32. package/dist/test/00.agent/00.prerequisites.d.ts +2 -0
  33. package/dist/test/00.agent/00.prerequisites.d.ts.map +1 -0
  34. package/dist/test/00.agent/00.prerequisites.js +25 -0
  35. package/dist/test/00.agent/00.prerequisites.js.map +1 -0
  36. package/dist/test/00.agent/10.clock.d.ts +2 -0
  37. package/dist/test/00.agent/10.clock.d.ts.map +1 -0
  38. package/dist/test/{00.datetime.js → 00.agent/10.clock.js} +8 -8
  39. package/dist/test/00.agent/10.clock.js.map +1 -0
  40. package/dist/test/00.agent/10.random.d.ts +2 -0
  41. package/dist/test/00.agent/10.random.d.ts.map +1 -0
  42. package/dist/test/{00.random.js → 00.agent/10.random.js} +4 -4
  43. package/dist/test/00.agent/10.random.js.map +1 -0
  44. package/dist/test/10.transfer/00.primitives.d.ts +2 -0
  45. package/dist/test/10.transfer/00.primitives.d.ts.map +1 -0
  46. package/dist/test/10.transfer/00.primitives.js +54 -0
  47. package/dist/test/10.transfer/00.primitives.js.map +1 -0
  48. package/dist/test/10.transfer/10.array_buffer.d.ts +2 -0
  49. package/dist/test/10.transfer/10.array_buffer.d.ts.map +1 -0
  50. package/dist/test/{20.array_buffer.js → 10.transfer/10.array_buffer.js} +69 -64
  51. package/dist/test/10.transfer/10.array_buffer.js.map +1 -0
  52. package/dist/test/10.transfer/90.regressions.d.ts +2 -0
  53. package/dist/test/10.transfer/90.regressions.d.ts.map +1 -0
  54. package/dist/test/10.transfer/90.regressions.js +72 -0
  55. package/dist/test/10.transfer/90.regressions.js.map +1 -0
  56. package/dist/test/20.intrinsics/00.script.d.ts +2 -0
  57. package/dist/test/20.intrinsics/00.script.d.ts.map +1 -0
  58. package/dist/test/{10.script.js → 20.intrinsics/00.script.js} +32 -7
  59. package/dist/test/20.intrinsics/00.script.js.map +1 -0
  60. package/dist/test/20.intrinsics/05.global.d.ts.map +1 -0
  61. package/dist/test/{05.global.js → 20.intrinsics/05.global.js} +5 -5
  62. package/dist/test/20.intrinsics/05.global.js.map +1 -0
  63. package/dist/test/20.intrinsics/10.reference.d.ts.map +1 -0
  64. package/dist/test/{10.reference.js → 20.intrinsics/10.reference.js} +73 -27
  65. package/dist/test/20.intrinsics/10.reference.js.map +1 -0
  66. package/dist/test/20.intrinsics/20.module.d.ts +2 -0
  67. package/dist/test/20.intrinsics/20.module.d.ts.map +1 -0
  68. package/dist/test/{10.module.js → 20.intrinsics/20.module.js} +70 -39
  69. package/dist/test/20.intrinsics/20.module.js.map +1 -0
  70. package/dist/test/50.features/50.timers.d.ts.map +1 -0
  71. package/dist/test/{50.timers.js → 50.features/50.timers.js} +8 -8
  72. package/dist/test/50.features/50.timers.js.map +1 -0
  73. package/dist/test/50.features/90.i18n.d.ts +2 -0
  74. package/dist/test/50.features/90.i18n.d.ts.map +1 -0
  75. package/dist/test/{99.i18n.js → 50.features/90.i18n.js} +6 -6
  76. package/dist/test/50.features/90.i18n.js.map +1 -0
  77. package/dist/test/90.isolation/00.dispose.d.ts +1 -1
  78. package/dist/test/90.isolation/00.dispose.d.ts.map +1 -1
  79. package/dist/test/90.isolation/00.dispose.js +23 -5
  80. package/dist/test/90.isolation/00.dispose.js.map +1 -1
  81. package/dist/test/90.isolation/10.memory.d.ts +2 -0
  82. package/dist/test/90.isolation/10.memory.d.ts.map +1 -0
  83. package/dist/test/90.isolation/10.memory.js +51 -0
  84. package/dist/test/90.isolation/10.memory.js.map +1 -0
  85. package/dist/test/fixtures.js +2 -2
  86. package/dist/test/fixtures.js.map +1 -1
  87. package/dist/test/glob.d.ts +2 -0
  88. package/dist/test/glob.d.ts.map +1 -0
  89. package/dist/test/glob.js +11 -0
  90. package/dist/test/glob.js.map +1 -0
  91. package/dist/tsconfig.tsbuildinfo +1 -1
  92. package/dist/utility/completion.d.ts +2 -1
  93. package/dist/utility/completion.d.ts.map +1 -1
  94. package/dist/utility/completion.js +4 -0
  95. package/dist/utility/completion.js.map +1 -1
  96. package/frontend/agent.ts +1 -0
  97. package/frontend/module.ts +1 -1
  98. package/frontend/realm.ts +4 -1
  99. package/frontend/reference.ts +3 -3
  100. package/package.json +13 -13
  101. package/test/00.agent/00.prerequisites.ts +12 -0
  102. package/test/{00.datetime.ts → 00.agent/10.clock.ts} +7 -7
  103. package/test/{00.random.ts → 00.agent/10.random.ts} +3 -3
  104. package/test/10.transfer/00.primitives.ts +47 -0
  105. package/test/{20.array_buffer.ts → 10.transfer/10.array_buffer.ts} +40 -35
  106. package/test/10.transfer/90.regressions.ts +38 -0
  107. package/test/{10.script.ts → 20.intrinsics/00.script.ts} +21 -6
  108. package/test/{05.global.ts → 20.intrinsics/05.global.ts} +5 -5
  109. package/test/20.intrinsics/10.reference.ts +111 -0
  110. package/test/{10.module.ts → 20.intrinsics/20.module.ts} +39 -17
  111. package/test/{50.timers.ts → 50.features/50.timers.ts} +8 -8
  112. package/test/{99.i18n.ts → 50.features/90.i18n.ts} +5 -5
  113. package/test/90.isolation/00.dispose.ts +12 -5
  114. package/test/90.isolation/10.memory.ts +28 -0
  115. package/test/fixtures.ts +4 -4
  116. package/test/glob.ts +11 -0
  117. package/utility/completion.ts +6 -1
  118. package/addon/handle/bound_value.cc +0 -45
  119. package/dist/test/00.datetime.d.ts +0 -2
  120. package/dist/test/00.datetime.d.ts.map +0 -1
  121. package/dist/test/00.datetime.js.map +0 -1
  122. package/dist/test/00.random.d.ts +0 -2
  123. package/dist/test/00.random.d.ts.map +0 -1
  124. package/dist/test/00.random.js.map +0 -1
  125. package/dist/test/00.transfer.d.ts +0 -2
  126. package/dist/test/00.transfer.d.ts.map +0 -1
  127. package/dist/test/00.transfer.js +0 -168
  128. package/dist/test/00.transfer.js.map +0 -1
  129. package/dist/test/05.global.d.ts.map +0 -1
  130. package/dist/test/05.global.js.map +0 -1
  131. package/dist/test/10.module.d.ts +0 -2
  132. package/dist/test/10.module.d.ts.map +0 -1
  133. package/dist/test/10.module.js.map +0 -1
  134. package/dist/test/10.reference.d.ts.map +0 -1
  135. package/dist/test/10.reference.js.map +0 -1
  136. package/dist/test/10.script.d.ts +0 -2
  137. package/dist/test/10.script.d.ts.map +0 -1
  138. package/dist/test/10.script.js.map +0 -1
  139. package/dist/test/20.array_buffer.d.ts +0 -2
  140. package/dist/test/20.array_buffer.d.ts.map +0 -1
  141. package/dist/test/20.array_buffer.js.map +0 -1
  142. package/dist/test/50.timers.d.ts.map +0 -1
  143. package/dist/test/50.timers.js.map +0 -1
  144. package/dist/test/99.i18n.d.ts +0 -2
  145. package/dist/test/99.i18n.d.ts.map +0 -1
  146. package/dist/test/99.i18n.js.map +0 -1
  147. package/test/00.transfer.ts +0 -134
  148. package/test/10.reference.ts +0 -82
  149. /package/dist/test/{05.global.d.ts → 20.intrinsics/05.global.d.ts} +0 -0
  150. /package/dist/test/{10.reference.d.ts → 20.intrinsics/10.reference.d.ts} +0 -0
  151. /package/dist/test/{50.timers.d.ts → 50.features/50.timers.d.ts} +0 -0
@@ -1,21 +1,21 @@
1
1
  module;
2
2
  #include "auto_js/export_tag.h"
3
3
  export module isolated_vm:value.prototype;
4
- import :handle.value_of;
4
+ import :handle.local_of;
5
5
  import :support.callback_storage;
6
6
 
7
7
  namespace isolated_vm {
8
8
  using namespace js;
9
9
 
10
- // value_of<prototype_tag>
11
- class EXPORT value_for_prototype : public value_next<prototype_tag> {
10
+ // local_of<prototype_tag>
11
+ class EXPORT local_for_prototype : public local_next<prototype_tag> {
12
12
  public:
13
- using value_next<prototype_tag>::value_next;
14
- [[nodiscard]] static auto make(const basic_lock& lock, runtime_callback_data_allocated_type data, int length) -> value_of<function_prototype_tag>;
15
- [[nodiscard]] static auto make(const basic_lock& lock, runtime_callback_data_span_type data, int length) -> value_of<function_prototype_tag>;
13
+ using local_next<prototype_tag>::local_next;
14
+ [[nodiscard]] static auto make(const basic_lock& lock, runtime_callback_data_allocated_type data, int length) -> local_of<function_prototype_tag>;
15
+ [[nodiscard]] static auto make(const basic_lock& lock, runtime_callback_data_span_type data, int length) -> local_of<function_prototype_tag>;
16
16
 
17
17
  template <class Type>
18
- [[nodiscard]] static auto make(const basic_lock& lock, runtime_callback_function_storage<Type> data, int length) -> value_of<function_prototype_tag> {
18
+ [[nodiscard]] static auto make(const basic_lock& lock, runtime_callback_function_storage<Type> data, int length) -> local_of<function_prototype_tag> {
19
19
  auto data_span = std::span{reinterpret_cast<std::byte*>(&data), sizeof(data)};
20
20
  return make(lock, data_span, length);
21
21
  }
@@ -6,45 +6,45 @@ import :value.vector;
6
6
  namespace isolated_vm {
7
7
  using namespace js;
8
8
 
9
- // value_of<record_tag>
10
- class EXPORT value_for_record : public value_next<record_tag> {
9
+ // local_of<record_tag>
10
+ class EXPORT local_for_record : public local_next<record_tag> {
11
11
  public:
12
- using value_next<record_tag>::value_next;
13
- auto set(const runtime_lock& lock, value_of<> key, value_of<> value) const -> void;
14
- static auto make(const runtime_lock& lock) -> value_of<record_tag>;
12
+ using local_next<record_tag>::local_next;
13
+ auto set(const runtime_lock& lock, local_of<> key, local_of<> value) const -> void;
14
+ static auto make(const runtime_lock& lock) -> local_of<record_tag>;
15
15
  };
16
16
 
17
- // bound_value<record_tag>
18
- class EXPORT bound_value_for_record : public bound_value_next<record_tag> {
17
+ // value_of<record_tag>
18
+ class EXPORT value_for_record : public value_next<record_tag> {
19
19
  private:
20
- using internal_keys_type = bound_value<vector_tag>;
20
+ using internal_keys_type = value_of<vector_tag>;
21
21
 
22
22
  public:
23
- using bound_value_next<record_tag>::bound_value_next;
24
- using key_type = value_of<primitive_tag>;
25
- using mapped_type = value_of<>;
23
+ using value_next<record_tag>::value_next;
24
+ using key_type = local_of<primitive_tag>;
25
+ using mapped_type = local_of<>;
26
26
  using value_type = std::pair<key_type, mapped_type>;
27
27
 
28
28
  private:
29
29
  class EXPORT iterator_transform {
30
30
  public:
31
- explicit iterator_transform(const bound_value_for_record& subject);
32
- auto operator()(value_of<> key) const -> value_type;
31
+ explicit iterator_transform(const value_for_record& subject);
32
+ auto operator()(local_of<> key) const -> value_type;
33
33
 
34
34
  private:
35
- const bound_value_for_record* subject_;
35
+ const value_for_record* subject_;
36
36
  };
37
37
 
38
38
  public:
39
39
  using range_type = std::ranges::transform_view<std::views::all_t<const internal_keys_type&>, iterator_transform>;
40
40
  using iterator = std::ranges::iterator_t<range_type>;
41
41
 
42
- [[nodiscard]] auto get(value_of<name_tag> key) const -> value_of<>;
43
- [[nodiscard]] auto get(value_of<number_tag> key) const -> value_of<>;
44
- [[nodiscard]] auto get(value_of<primitive_tag> key) const -> value_of<>;
45
- [[nodiscard]] auto has(value_of<name_tag> key) const -> bool;
46
- [[nodiscard]] auto has(value_of<number_tag> key) const -> bool;
47
- [[nodiscard]] auto has(value_of<primitive_tag> key) const -> bool;
42
+ [[nodiscard]] auto get(local_of<name_tag> key) const -> local_of<>;
43
+ [[nodiscard]] auto get(local_of<number_tag> key) const -> local_of<>;
44
+ [[nodiscard]] auto get(local_of<primitive_tag> key) const -> local_of<>;
45
+ [[nodiscard]] auto has(local_of<name_tag> key) const -> bool;
46
+ [[nodiscard]] auto has(local_of<number_tag> key) const -> bool;
47
+ [[nodiscard]] auto has(local_of<primitive_tag> key) const -> bool;
48
48
  [[nodiscard]] auto into_range() const -> range_type;
49
49
  [[nodiscard]] auto size() const -> std::size_t;
50
50
 
@@ -1,5 +1,5 @@
1
1
  export module isolated_vm:value;
2
- export import :handle.bound_value;
2
+ export import :handle.local_of;
3
3
  export import :handle.value_of;
4
4
  export import :support.lock_fwd;
5
5
  export import :value.array_buffer;
@@ -1,7 +1,7 @@
1
1
  module;
2
2
  #include "auto_js/export_tag.h"
3
3
  export module isolated_vm:value.vector;
4
- import :handle.bound_value;
4
+ import :handle.local_of;
5
5
  import :handle.value_of;
6
6
  import :value.object;
7
7
  import auto_js;
@@ -11,12 +11,12 @@ import util;
11
11
  namespace isolated_vm {
12
12
  using namespace js;
13
13
 
14
- // bound_value<vector_tag>
15
- class EXPORT bound_value_for_vector : public bound_value_next<vector_tag> {
14
+ // value_of<vector_tag>
15
+ class EXPORT value_for_vector : public value_next<vector_tag> {
16
16
  public:
17
17
  class iterator;
18
- using bound_value_next<vector_tag>::bound_value_next;
19
- using value_type = value_of<>;
18
+ using value_next<vector_tag>::value_next;
19
+ using value_type = local_of<>;
20
20
 
21
21
  [[nodiscard]] auto begin() const -> iterator;
22
22
  [[nodiscard]] auto end() const -> iterator;
@@ -26,15 +26,15 @@ class EXPORT bound_value_for_vector : public bound_value_next<vector_tag> {
26
26
  mutable std::uint32_t size_{};
27
27
  };
28
28
 
29
- class EXPORT bound_value_for_vector::iterator : public util::random_access_iterator_facade<std::int32_t, std::int64_t> {
29
+ class EXPORT value_for_vector::iterator : public util::random_access_iterator_facade<std::int32_t, std::int64_t> {
30
30
  public:
31
31
  using arithmetic_facade::operator+;
32
32
  using difference_type = arithmetic_facade::difference_type;
33
33
  using size_type = std::uint32_t;
34
- using value_type = bound_value_for_vector::value_type;
34
+ using value_type = value_for_vector::value_type;
35
35
 
36
36
  iterator() = default;
37
- iterator(bound_value_for_vector subject, size_type index);
37
+ iterator(value_for_vector subject, size_type index);
38
38
 
39
39
  auto operator*() const -> value_type;
40
40
 
@@ -49,7 +49,7 @@ class EXPORT bound_value_for_vector::iterator : public util::random_access_itera
49
49
  private:
50
50
  constexpr auto operator+() const -> size_type { return index_; }
51
51
 
52
- bound_value_for_vector subject_;
52
+ value_for_vector subject_;
53
53
  size_type index_{};
54
54
  };
55
55
 
@@ -28,21 +28,21 @@ export class Agent {
28
28
  disposeAsync(): Promise<void>;
29
29
  compileModule(code: string, options?: CompileModuleOptions): Promise<MaybeCompletionOf<_Module>>;
30
30
  compileScript(code: string, options?: CompileScriptOptions): Promise<MaybeCompletionOf<Script>>;
31
- createRealm(): Promise<Realm>;
31
+ createRealm(): Promise<Realm | null>;
32
32
  static create(options?: CreateAgentOptions): Promise<_Agent>;
33
33
  }
34
34
 
35
35
  export class Module {
36
36
  readonly #private;
37
37
  protected constructor(secret: Secret, ...args: unknown[]);
38
- /** @internal */ _link(realm: Realm, linker: ModuleLinkRecord): Promise<void>;
39
- evaluate(realm: Realm): Promise<MaybeCompletionOf<unknown>>;
38
+ /** @internal */ _link(realm: Realm | null, linker: ModuleLinkRecord): Promise<void>;
39
+ evaluate(realm: Realm | null): Promise<MaybeCompletionOf<unknown>>;
40
40
  }
41
41
 
42
42
  export class NativeModule {
43
43
  readonly #private;
44
44
  protected constructor(secret: Secret, ...args: unknown[]);
45
- instantiate(realm: Realm): Promise<Module>;
45
+ instantiate(realm: Realm | null): Promise<Module | null>;
46
46
  static create(filename: string, options: CreateNativeModuleOptions): Promise<NativeModule>;
47
47
  }
48
48
 
@@ -50,23 +50,23 @@ export class Realm {
50
50
  readonly #private;
51
51
  protected constructor(secret: Secret, ...args: unknown[]);
52
52
  acquireGlobalObject(): Promise<_Reference<Record<string, unknown>>>;
53
- createCapability(make: CapabilityMake, options: CreateCapabilityOptions): Promise<Module>;
54
- instantiateRuntime(): Promise<Module>;
53
+ createCapability(make: CapabilityMake, options: CreateCapabilityOptions): Promise<Module | null>;
54
+ instantiateRuntime(): Promise<Module | null>;
55
55
  }
56
56
 
57
57
  export class Reference {
58
58
  readonly #private;
59
59
  protected constructor(secret: Secret, ...args: unknown[]);
60
60
  copy(): Promise<unknown>;
61
- get(property: string): Promise<Reference>;
62
- set(property: string, value: unknown): Promise<void>;
61
+ get(property: string): Promise<Reference | null>;
62
+ set(property: string, value: unknown): Promise<true | null>;
63
63
  invoke(args: unknown[]): Promise<MaybeCompletionOf<unknown>>;
64
64
  }
65
65
 
66
66
  export class Script {
67
67
  readonly #private;
68
68
  protected constructor(secret: Secret, ...args: unknown[]);
69
- run(realm: Realm, options?: RunScriptOptions): Promise<MaybeCompletionOf<unknown>>;
69
+ run(realm: Realm | null, options?: RunScriptOptions): Promise<MaybeCompletionOf<unknown>>;
70
70
  }
71
71
 
72
72
  export class SubscriberCapability {
@@ -24,6 +24,7 @@ export declare namespace Agent {
24
24
  }
25
25
  interface CreateOptions {
26
26
  clock?: CreateOptions.Clock | undefined;
27
+ memoryLimitBytes?: number | undefined;
27
28
  randomSeed?: number | undefined;
28
29
  }
29
30
  interface CompileModuleOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../frontend/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAGpC,yBAAiB,KAAK,CAAC;IACtB,UAAiB,KAAK,CAAC;QACtB,UAAiB,aAAa;YAC7B,IAAI,EAAE,eAAe,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC;YACZ,QAAQ,EAAE,MAAM,CAAC;SACjB;QAED,UAAiB,SAAS;YACzB,IAAI,EAAE,WAAW,CAAC;YAClB,KAAK,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;SACzB;QAED,UAAiB,QAAQ;YACxB,IAAI,EAAE,UAAU,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC;SACZ;QAED,UAAiB,MAAM;YACtB,IAAI,EAAE,QAAQ,CAAC;SACf;KACD;IAED,UAAiB,aAAa,CAAC;QAC9B,KAAY,KAAK,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;KAE1F;IAED,UAAiB,aAAa;QAC7B,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,GAAG,SAAS,CAAC;QACxC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC;IAED,UAAiB,oBAAoB;QACpC,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB;IAED,UAAiB,oBAAoB;QACpC,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB;CACD;AAID,qBAAa,KAAM,SAAQ,OAAO,CAAC,KAAK;WACvB,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IAQ/D,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5C"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../frontend/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAGpC,yBAAiB,KAAK,CAAC;IACtB,UAAiB,KAAK,CAAC;QACtB,UAAiB,aAAa;YAC7B,IAAI,EAAE,eAAe,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC;YACZ,QAAQ,EAAE,MAAM,CAAC;SACjB;QAED,UAAiB,SAAS;YACzB,IAAI,EAAE,WAAW,CAAC;YAClB,KAAK,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;SACzB;QAED,UAAiB,QAAQ;YACxB,IAAI,EAAE,UAAU,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC;SACZ;QAED,UAAiB,MAAM;YACtB,IAAI,EAAE,QAAQ,CAAC;SACf;KACD;IAED,UAAiB,aAAa,CAAC;QAC9B,KAAY,KAAK,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;KAE1F;IAED,UAAiB,aAAa;QAC7B,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,GAAG,SAAS,CAAC;QACxC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC;IAED,UAAiB,oBAAoB;QACpC,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB;IAED,UAAiB,oBAAoB;QACpC,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB;CACD;AAID,qBAAa,KAAM,SAAQ,OAAO,CAAC,KAAK;WACvB,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IAQ/D,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../frontend/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA4CrC,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,MAAM,OAAO,KAAM,SAAQ,OAAO,CAAC,KAAK;IACvC,MAAM,CAAU,MAAM,CAAC,OAA6B;QACnD,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,aAAa,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC3B,CAAC;CACD"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../frontend/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA6CrC,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,MAAM,OAAO,KAAM,SAAQ,OAAO,CAAC,KAAK;IACvC,MAAM,CAAU,MAAM,CAAC,OAA6B;QACnD,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,aAAa,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC3B,CAAC;CACD"}
@@ -46,6 +46,6 @@ export declare class Module extends backend.Module {
46
46
  readonly requests: readonly Module.Request[];
47
47
  readonly specifier: string | undefined;
48
48
  constructor(secret: backend.Secret, specifier: string | undefined, requests: readonly Module.Request[]);
49
- link(realm: backend.Realm, linker: Module.Linker): Promise<void>;
49
+ link(realm: backend.Realm | null, linker: Module.Linker): Promise<void>;
50
50
  }
51
51
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../frontend/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,eAAO,MAAM,cAAc,EAAE,OAAO,OAAO,CAAC,MAAuB,CAAC;AACpE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;AAE5C,yBAAiB,MAAM,CAAC;IACvB,KAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtD,KAAY,MAAM,GAAG;IACpB;;OAEG;IACH,SAAS,EAAE,MAAM;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS;IAE5B;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,KACzB,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAEtE,mBAAmB;IACnB,UAAiB,UAAU;QAC1B,6CAA6C;QAC7C,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,iCAAiC;QACjC,OAAO,EAAE,MAAM,EAAE,CAAC;KAClB;IAED,UAAiB,OAAO;QACvB;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;QAElB;;WAEG;QACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;KAC9B;CACD;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,cAAc;CAAG;AAEjD;;GAEG;AACH,qBAAa,MAAO,SAAQ,OAAO,CAAC,MAAM;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE3B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE;IAMhG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqCtE"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../frontend/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,eAAO,MAAM,cAAc,EAAE,OAAO,OAAO,CAAC,MAAuB,CAAC;AACpE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;AAE5C,yBAAiB,MAAM,CAAC;IACvB,KAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtD,KAAY,MAAM,GAAG;IACpB;;OAEG;IACH,SAAS,EAAE,MAAM;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS;IAE5B;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,KACzB,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAEtE,mBAAmB;IACnB,UAAiB,UAAU;QAC1B,6CAA6C;QAC7C,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,iCAAiC;QACjC,OAAO,EAAE,MAAM,EAAE,CAAC;KAClB;IAED,UAAiB,OAAO;QACvB;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;QAElB;;WAEG;QACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;KAC9B;CACD;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,cAAc;CAAG;AAEjD;;GAEG;AACH,qBAAa,MAAO,SAAQ,OAAO,CAAC,MAAM;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE3B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE;IAMhG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqC7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../frontend/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,MAAM,CAAC,MAAM,cAAc,GAA0B,OAAO,CAAC,MAAM,CAAC;AA4CpE;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,cAAc;CAAG;AAEjD;;GAEG;AACH,MAAM,OAAO,MAAO,SAAQ,OAAO,CAAC,MAAM;IAChC,QAAQ,CAA4B;IACpC,SAAS,CAAqB;IAEvC,YAAY,MAAsB,EAAE,SAA6B,EAAE,QAAmC;QACrG,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAoB,EAAE,MAAqB;QACrD,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,EAAE,MAAsB,EAAmB,EAAE;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,QAAQ,CAAC;YACjB,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC7E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;oBACrE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC1B,IAAI,OAAO,GAAG,uBAAuB,SAAS,GAAG,CAAC;wBAClD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;4BACpC,OAAO,IAAI,kBAAkB,MAAM,CAAC,SAAS,EAAE,CAAC;wBACjD,CAAC;wBACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;4BAC9B,OAAO,IAAI,oBAAoB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC7D,CAAC;wBACD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC1B,CAAC;oBACD,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YACD,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;CACD"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../frontend/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,MAAM,CAAC,MAAM,cAAc,GAA0B,OAAO,CAAC,MAAM,CAAC;AA4CpE;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,cAAc;CAAG;AAEjD;;GAEG;AACH,MAAM,OAAO,MAAO,SAAQ,OAAO,CAAC,MAAM;IAChC,QAAQ,CAA4B;IACpC,SAAS,CAAqB;IAEvC,YAAY,MAAsB,EAAE,SAA6B,EAAE,QAAmC;QACrG,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAA2B,EAAE,MAAqB;QAC5D,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,EAAE,MAAsB,EAAmB,EAAE;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,QAAQ,CAAC;YACjB,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC7E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;oBACrE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC1B,IAAI,OAAO,GAAG,uBAAuB,SAAS,GAAG,CAAC;wBAClD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;4BACpC,OAAO,IAAI,kBAAkB,MAAM,CAAC,SAAS,EAAE,CAAC;wBACjD,CAAC;wBACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;4BAC9B,OAAO,IAAI,oBAAoB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC7D,CAAC;wBACD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC1B,CAAC;oBACD,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YACD,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;CACD"}
@@ -3,7 +3,7 @@ export { Realm } from "#backend";
3
3
  export declare namespace Realm {
4
4
  type CapabilityInterface = Record<string, CapabilitySignature>;
5
5
  type CapabilityMake = (subscriber: backend.SubscriberCapability) => CapabilityInterface;
6
- type CapabilitySignature = ((...args: unknown[]) => void) | backend.SubscriberCapability;
6
+ type CapabilitySignature = ((...args: unknown[]) => void) | backend.SubscriberCapability | string;
7
7
  interface CreateCapabilityOptions {
8
8
  origin: string;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"realm.d.ts","sourceRoot":"","sources":["../../frontend/realm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,yBAAiB,KAAK,CAAC;IACtB,KAAY,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACtE,KAAY,cAAc,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,oBAAoB,KAAK,mBAAmB,CAAC;IAC/F,KAAY,mBAAmB,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAEhG,UAAiB,uBAAuB;QACvC,MAAM,EAAE,MAAM,CAAC;KACf;CACD"}
1
+ {"version":3,"file":"realm.d.ts","sourceRoot":"","sources":["../../frontend/realm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,yBAAiB,KAAK,CAAC;IACtB,KAAY,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACtE,KAAY,cAAc,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,oBAAoB,KAAK,mBAAmB,CAAC;IAC/F,KAAY,mBAAmB,GAC9B,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,GAC9B,OAAO,CAAC,oBAAoB,GAC5B,MAAM,CAAC;IAER,UAAiB,uBAAuB;QACvC,MAAM,EAAE,MAAM,CAAC;KACf;CACD"}
@@ -5,9 +5,9 @@ type InvokeResult<Value> = Value extends (...args: unknown[]) => infer Result ?
5
5
  export declare interface Reference<Type = unknown> extends backend.Reference {
6
6
  copy: () => Promise<Type>;
7
7
  invoke: (args: InvokeArguments<Type>) => Promise<MaybeCompletionOf<InvokeResult<Type>>>;
8
- set: (property: string, value: unknown) => Promise<void>;
9
- get<Key extends keyof Type>(property: Key): Promise<Reference<Type[Key]>>;
10
- get(property: string): Promise<Reference>;
8
+ set: (property: string, value: unknown) => Promise<true | null>;
9
+ get<Key extends keyof Type>(property: Key): Promise<Reference<Type[Key]> | null>;
10
+ get(property: string): Promise<Reference | null>;
11
11
  }
12
12
  export {};
13
13
  //# sourceMappingURL=reference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../frontend/reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,KAAK,eAAe,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AAC5F,KAAK,YAAY,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/F,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,OAAO,CAAC,SAAS;IAC3E,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxF,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzD,GAAG,CAAC,GAAG,SAAS,MAAM,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE1E,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC1C"}
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../frontend/reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,KAAK,eAAe,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AAC5F,KAAK,YAAY,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/F,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,OAAO,CAAC,SAAS;IAC3E,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxF,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAGhE,GAAG,CAAC,GAAG,SAAS,MAAM,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEjF,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CACjD"}
@@ -0,0 +1,2 @@
1
+ import "@isolated-vm/experimental/test/fixtures";
2
+ //# sourceMappingURL=00.prerequisites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"00.prerequisites.d.ts","sourceRoot":"","sources":["../../../test/00.agent/00.prerequisites.ts"],"names":[],"mappings":"AAGA,OAAO,yCAAyC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { __addDisposableResource, __disposeResources } from "tslib";
2
+ import * as assert from "node:assert/strict";
3
+ import { test } from "node:test";
4
+ import { Agent, expectComplete } from "@isolated-vm/experimental";
5
+ import "@isolated-vm/experimental/test/fixtures";
6
+ // Minimal support, without which the rest of the suites don't really make any sense.
7
+ await test("prerequisites", async () => {
8
+ const env_1 = { stack: [], error: void 0, hasError: false };
9
+ try {
10
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
11
+ const realm = await agent.createRealm();
12
+ const script = expectComplete(await agent.compileScript('"hello world";'));
13
+ assert.strictEqual(expectComplete(await script.run(realm)), "hello world");
14
+ }
15
+ catch (e_1) {
16
+ env_1.error = e_1;
17
+ env_1.hasError = true;
18
+ }
19
+ finally {
20
+ const result_1 = __disposeResources(env_1);
21
+ if (result_1)
22
+ await result_1;
23
+ }
24
+ });
25
+ //# sourceMappingURL=00.prerequisites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"00.prerequisites.js","sourceRoot":"","sources":["../../../test/00.agent/00.prerequisites.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,qFAAqF;AACrF,MAAM,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;;;QACtC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;;;;;;;;;;;CAC3E,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=10.clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.clock.d.ts","sourceRoot":"","sources":["../../../test/00.agent/10.clock.ts"],"names":[],"mappings":""}
@@ -2,15 +2,15 @@ import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { test } from "node:test";
4
4
  import { setTimeout } from "node:timers/promises";
5
- import * as ivm from "@isolated-vm/experimental";
6
- import { unsafeEvalAsString, unsafeEvalAsStringInRealm } from "./fixtures.js";
5
+ import { Agent } from "@isolated-vm/experimental";
6
+ import { unsafeEvalAsString, unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
7
7
  const y2k = new Date("2000-01-01T00:00:00Z");
8
8
  // Figure out how many loops to waste ~25ms on this build. Extra slop factor is added afterwards.
9
9
  const speedFactorMs = 25;
10
10
  const speedFactor = await async function () {
11
11
  const env_1 = { stack: [], error: void 0, hasError: false };
12
12
  try {
13
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
13
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
14
14
  return await unsafeEvalAsString(agent, speedFactorMs => Math.min(...Array(3).fill(undefined).map(() => {
15
15
  let factor = 2 ** 20;
16
16
  const slopFactor = 1.2;
@@ -39,7 +39,7 @@ const speedFactor = await async function () {
39
39
  await test("deterministic clock", async () => {
40
40
  const env_2 = { stack: [], error: void 0, hasError: false };
41
41
  try {
42
- const agent = __addDisposableResource(env_2, await ivm.Agent.create({
42
+ const agent = __addDisposableResource(env_2, await Agent.create({
43
43
  clock: { type: "deterministic", epoch: y2k, interval: 1 },
44
44
  }), true);
45
45
  const realm = await agent.createRealm();
@@ -63,7 +63,7 @@ await test("deterministic clock", async () => {
63
63
  await test("microtask clock", async () => {
64
64
  const env_3 = { stack: [], error: void 0, hasError: false };
65
65
  try {
66
- const agent = __addDisposableResource(env_3, await ivm.Agent.create({
66
+ const agent = __addDisposableResource(env_3, await Agent.create({
67
67
  clock: { type: "microtask", epoch: y2k },
68
68
  }), true);
69
69
  const realm = await agent.createRealm();
@@ -94,7 +94,7 @@ await test("microtask clock", async () => {
94
94
  await test("realtime clock", async () => {
95
95
  const env_4 = { stack: [], error: void 0, hasError: false };
96
96
  try {
97
- const agent = __addDisposableResource(env_4, await ivm.Agent.create({
97
+ const agent = __addDisposableResource(env_4, await Agent.create({
98
98
  clock: { type: "realtime", epoch: y2k },
99
99
  }), true);
100
100
  const realm = await agent.createRealm();
@@ -123,7 +123,7 @@ await test("system clock", async () => {
123
123
  try {
124
124
  // `std::system_clock` on Windows returns jittering results across different CPU cores.
125
125
  const threshold = process.platform === "win32" ? 10 : 0;
126
- const agent = __addDisposableResource(env_5, await ivm.Agent.create(), true);
126
+ const agent = __addDisposableResource(env_5, await Agent.create(), true);
127
127
  const realm = await agent.createRealm();
128
128
  for (let ii = 0; ii < 5; ++ii) {
129
129
  const then = new Date();
@@ -143,4 +143,4 @@ await test("system clock", async () => {
143
143
  await result_5;
144
144
  }
145
145
  });
146
- //# sourceMappingURL=00.datetime.js.map
146
+ //# sourceMappingURL=10.clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.clock.js","sourceRoot":"","sources":["../../../test/00.agent/10.clock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=10.random.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.random.d.ts","sourceRoot":"","sources":["../../../test/00.agent/10.random.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
  const makeAgentRandom = async (randomSeed) => {
7
7
  const env_1 = { stack: [], error: void 0, hasError: false };
8
8
  try {
9
- const agent = __addDisposableResource(env_1, await ivm.Agent.create({ randomSeed }), true);
9
+ const agent = __addDisposableResource(env_1, await Agent.create({ randomSeed }), true);
10
10
  return await unsafeEvalAsString(agent, () => Math.random());
11
11
  }
12
12
  catch (e_1) {
@@ -34,4 +34,4 @@ await test("different seeds", async () => {
34
34
  const result2 = await makeAgentRandom(456);
35
35
  assert.notEqual(result1, result2);
36
36
  });
37
- //# sourceMappingURL=00.random.js.map
37
+ //# sourceMappingURL=10.random.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.random.js","sourceRoot":"","sources":["../../../test/00.agent/10.random.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,eAAe,GAAG,KAAK,EAAE,UAAmB,EAAE,EAAE;;;QACrD,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,OAAA,CAAC;QACvD,OAAO,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;;;;;;;;;;;CAC5D,CAAC;AAEF,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;IACtC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IACxC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=00.primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"00.primitives.d.ts","sourceRoot":"","sources":["../../../test/10.transfer/00.primitives.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import { __addDisposableResource, __disposeResources } from "tslib";
2
+ import * as assert from "node:assert/strict";
3
+ import { test } from "node:test";
4
+ import { Agent, Realm } from "@isolated-vm/experimental";
5
+ import { unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
6
+ async function check(agent, realm, fn) {
7
+ const result = await unsafeEvalAsStringInRealm(agent, realm, fn);
8
+ assert.deepStrictEqual(result, fn());
9
+ }
10
+ await test("primitives", async () => {
11
+ const env_1 = { stack: [], error: void 0, hasError: false };
12
+ try {
13
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
14
+ const realm = await agent.createRealm();
15
+ // null, undefined, bool
16
+ await check(agent, realm, () => null);
17
+ await check(agent, realm, () => undefined);
18
+ await check(agent, realm, () => true);
19
+ await check(agent, realm, () => false);
20
+ // boolean
21
+ await check(agent, realm, () => true);
22
+ await check(agent, realm, () => false);
23
+ // string
24
+ await check(agent, realm, () => "hello world");
25
+ await check(agent, realm, () => "\u{10ffff}");
26
+ // number
27
+ await check(agent, realm, () => 0);
28
+ await check(agent, realm, () => Number.MAX_SAFE_INTEGER);
29
+ await check(agent, realm, () => Number.MAX_SAFE_INTEGER + 1);
30
+ await check(agent, realm, () => Number.MIN_SAFE_INTEGER);
31
+ await check(agent, realm, () => Number.MIN_SAFE_INTEGER - 1);
32
+ await check(agent, realm, () => Math.PI);
33
+ // bigint
34
+ await check(agent, realm, () => 0n);
35
+ await check(agent, realm, () => 9223372036854775807n); // int64 max
36
+ await check(agent, realm, () => 9223372036854775808n); // int64 max + 1
37
+ await check(agent, realm, () => -9223372036854775808n); // int64 min
38
+ await check(agent, realm, () => -9223372036854775809n); // int64 min - 1
39
+ await check(agent, realm, () => 18446744073709551615n); // uint64 max
40
+ await check(agent, realm, () => 18446744073709551616n); // uint64 max + 1
41
+ await check(agent, realm, () => 502360950888298027355518043327124471675959709617316205938938264006428765255489n); // 256 bit number
42
+ await check(agent, realm, () => -502360950888298027355518043327124471675959709617316205938938264006428765255490n); // 256 bit negative
43
+ }
44
+ catch (e_1) {
45
+ env_1.error = e_1;
46
+ env_1.hasError = true;
47
+ }
48
+ finally {
49
+ const result_1 = __disposeResources(env_1);
50
+ if (result_1)
51
+ await result_1;
52
+ }
53
+ });
54
+ //# sourceMappingURL=00.primitives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"00.primitives.js","sourceRoot":"","sources":["../../../test/10.transfer/00.primitives.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=10.array_buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.array_buffer.d.ts","sourceRoot":"","sources":["../../../test/10.transfer/10.array_buffer.ts"],"names":[],"mappings":""}