adnbn 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/cli/builders/locale/LocaleStructureValidator.js +7 -0
  2. package/dist/cli/builders/locale/LocaleStructureValidator.js.map +1 -1
  3. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js +3 -7
  4. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js.map +1 -1
  5. package/dist/cli/entrypoint/file/injectors/core.js +9 -1
  6. package/dist/cli/entrypoint/file/injectors/core.js.map +1 -1
  7. package/dist/cli/entrypoint/parser/ContentParser.d.ts +2 -2
  8. package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
  9. package/dist/cli/entrypoint/parser/RelayParser.js +2 -1
  10. package/dist/cli/entrypoint/parser/RelayParser.js.map +1 -1
  11. package/dist/cli/index.js +2 -0
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/cli/plugins/content/ContentDriver.d.ts +21 -8
  14. package/dist/cli/plugins/content/ContentDriver.js +24 -2
  15. package/dist/cli/plugins/content/ContentDriver.js.map +1 -1
  16. package/dist/cli/plugins/content/ContentManager.d.ts +8 -3
  17. package/dist/cli/plugins/content/ContentManager.js +41 -6
  18. package/dist/cli/plugins/content/ContentManager.js.map +1 -1
  19. package/dist/cli/plugins/content/Relay.d.ts +6 -8
  20. package/dist/cli/plugins/content/Relay.js +2 -14
  21. package/dist/cli/plugins/content/Relay.js.map +1 -1
  22. package/dist/cli/plugins/content/RelayDeclaration.d.ts +0 -1
  23. package/dist/cli/plugins/content/RelayDeclaration.js +0 -3
  24. package/dist/cli/plugins/content/RelayDeclaration.js.map +1 -1
  25. package/dist/cli/plugins/content/RelayDriver.d.ts +10 -0
  26. package/dist/cli/plugins/content/RelayDriver.js +39 -0
  27. package/dist/cli/plugins/content/RelayDriver.js.map +1 -0
  28. package/dist/cli/plugins/content/index.js +1 -10
  29. package/dist/cli/plugins/content/index.js.map +1 -1
  30. package/dist/cli/plugins/content/types.d.ts +3 -0
  31. package/dist/cli/plugins/locale/Locale.js +5 -1
  32. package/dist/cli/plugins/locale/Locale.js.map +1 -1
  33. package/dist/cli/plugins/locale/declaration/LocaleDeclaration.js +2 -3
  34. package/dist/cli/plugins/locale/declaration/LocaleDeclaration.js.map +1 -1
  35. package/dist/cli/plugins/locale/declaration/locale.d.ts +3 -124
  36. package/dist/cli/virtual/index.js +2 -2
  37. package/dist/cli/virtual/virtual.d.ts +52 -147
  38. package/dist/entry/relay/index.d.ts +2 -1
  39. package/dist/entry/relay/index.js.map +1 -1
  40. package/dist/locale/adapters/react/LocaleProvider.js +2 -0
  41. package/dist/locale/adapters/react/LocaleProvider.js.map +1 -1
  42. package/dist/locale/adapters/react/context.d.ts +1 -0
  43. package/dist/locale/adapters/react/context.js +3 -2
  44. package/dist/locale/adapters/react/context.js.map +1 -1
  45. package/dist/locale/helpers.js.map +1 -1
  46. package/dist/locale/providers/AbstractLocale.d.ts +2 -0
  47. package/dist/locale/providers/AbstractLocale.js +5 -0
  48. package/dist/locale/providers/AbstractLocale.js.map +1 -1
  49. package/dist/locale/providers/NativeLocale.d.ts +3 -2
  50. package/dist/locale/providers/NativeLocale.js +1 -1
  51. package/dist/locale/providers/NativeLocale.js.map +1 -1
  52. package/dist/main/relay.d.ts +7 -6
  53. package/dist/main/relay.js +12 -5
  54. package/dist/main/relay.js.map +1 -1
  55. package/dist/message/error.d.ts +6 -0
  56. package/dist/message/error.js +21 -0
  57. package/dist/message/error.js.map +1 -1
  58. package/dist/message/index.d.ts +2 -1
  59. package/dist/message/index.js +2 -0
  60. package/dist/message/index.js.map +1 -1
  61. package/dist/message/providers/Message.d.ts +3 -0
  62. package/dist/message/providers/Message.js +36 -6
  63. package/dist/message/providers/Message.js.map +1 -1
  64. package/dist/offscreen/providers/ProxyOffscreen.d.ts +2 -2
  65. package/dist/offscreen/providers/ProxyOffscreen.js.map +1 -1
  66. package/dist/relay/RelayPermission.d.ts +6 -3
  67. package/dist/relay/RelayPermission.js +28 -12
  68. package/dist/relay/RelayPermission.js.map +1 -1
  69. package/dist/relay/adapters/RelayAdapter.d.ts +8 -0
  70. package/dist/relay/adapters/RelayAdapter.js +16 -0
  71. package/dist/relay/adapters/RelayAdapter.js.map +1 -0
  72. package/dist/relay/adapters/RelayMessagingAdapter.d.ts +11 -0
  73. package/dist/relay/adapters/RelayMessagingAdapter.js +91 -0
  74. package/dist/relay/adapters/RelayMessagingAdapter.js.map +1 -0
  75. package/dist/relay/adapters/RelayScriptingAdapter.d.ts +15 -0
  76. package/dist/relay/adapters/RelayScriptingAdapter.js +170 -0
  77. package/dist/relay/adapters/RelayScriptingAdapter.js.map +1 -0
  78. package/dist/relay/discovery/RelayDiscovery.d.ts +10 -0
  79. package/dist/relay/discovery/RelayDiscovery.js +62 -0
  80. package/dist/relay/discovery/RelayDiscovery.js.map +1 -0
  81. package/dist/relay/index.d.ts +1 -4
  82. package/dist/relay/index.js +1 -3
  83. package/dist/relay/index.js.map +1 -1
  84. package/dist/relay/providers/ProxyRelay.d.ts +20 -17
  85. package/dist/relay/providers/ProxyRelay.js +79 -52
  86. package/dist/relay/providers/ProxyRelay.js.map +1 -1
  87. package/dist/relay/providers/RegisterRelay.js +1 -2
  88. package/dist/relay/providers/RegisterRelay.js.map +1 -1
  89. package/dist/relay/result.d.ts +12 -0
  90. package/dist/relay/result.js +88 -0
  91. package/dist/relay/result.js.map +1 -0
  92. package/dist/sandbox/index.d.ts +2 -2
  93. package/dist/sandbox/index.js.map +1 -1
  94. package/dist/sandbox/providers/ProxySandbox.d.ts +2 -2
  95. package/dist/sandbox/providers/ProxySandbox.js.map +1 -1
  96. package/dist/service/providers/ProxyService.d.ts +2 -2
  97. package/dist/service/providers/ProxyService.js.map +1 -1
  98. package/dist/transport/ProxyTransport.d.ts +2 -2
  99. package/dist/transport/ProxyTransport.js.map +1 -1
  100. package/dist/transport/index.d.ts +3 -2
  101. package/dist/types/helpers.d.ts +0 -4
  102. package/dist/types/locale.d.ts +3 -0
  103. package/dist/types/locale.js +58 -0
  104. package/dist/types/locale.js.map +1 -1
  105. package/dist/types/relay.d.ts +130 -3
  106. package/dist/types/relay.js +16 -0
  107. package/dist/types/relay.js.map +1 -1
  108. package/dist/types/rpc.d.ts +4 -0
  109. package/dist/types/rpc.js +1 -0
  110. package/dist/types/rpc.js.map +1 -0
  111. package/dist/types/transport.d.ts +3 -2
  112. package/package.json +5 -4
@@ -1,20 +1,147 @@
1
1
  import { EntrypointOptions } from "./entrypoint.js";
2
2
  import { ContentScriptConfig, ContentScriptContext, ContentScriptDefinition } from "./content.js";
3
- import { TransportConfig, TransportDefinition, TransportType } from "./transport.js";
3
+ import { TransportConfig, TransportDefinition, TransportType, type TransportProxyTarget } from "./transport.js";
4
4
  import { Awaiter } from "./helpers.js";
5
+ import type { MessageError } from "./message.js";
6
+ import type { RelayRegistry } from "../relay/index.js";
5
7
  export declare const RelayGlobalKey = "adnbnRelay";
6
8
  export declare enum RelayMethod {
7
9
  Scripting = "scripting",
8
10
  Messaging = "messaging"
9
11
  }
10
- export interface RelayConfig extends TransportConfig, ContentScriptConfig {
12
+ export declare enum RelayAllFrames {
13
+ /**
14
+ * Executes the method in every frame reached by the selected transport and returns one outcome:
15
+ * Scripting prefers a fulfilled result, while Messaging returns the first response.
16
+ *
17
+ * Warning: mutating methods can execute in multiple frames even though only one outcome is returned.
18
+ */
19
+ Any = "any",
20
+ /** Executes the method in every discovered frame and returns an outcome for each frame. */
21
+ All = "all"
22
+ }
23
+ export declare enum RelayFrameErrorKind {
24
+ Remote = "remote",
25
+ Execution = "execution",
26
+ Delivery = "delivery",
27
+ Timeout = "timeout",
28
+ TargetGone = "target-gone",
29
+ Unobservable = "unobservable"
30
+ }
31
+ export type RelayNonEmptyReadonlyArray<T> = readonly [T, ...T[]];
32
+ export interface RelayExecutionOptions {
33
+ /** Maximum execution time per addressed Messaging frame or for the Inject Script operation. */
34
+ timeoutMs?: number;
35
+ }
36
+ interface RelayTargetBase extends RelayExecutionOptions {
37
+ tabId: number;
38
+ }
39
+ export interface RelayTopFrameOptions extends RelayTargetBase {
40
+ allFrames?: false;
41
+ frameId?: never;
42
+ frameIds?: never;
43
+ documentId?: never;
44
+ documentIds?: never;
45
+ }
46
+ export interface RelayFrameOptions extends RelayTargetBase {
47
+ frameId: number;
48
+ allFrames?: never;
49
+ frameIds?: never;
50
+ documentId?: never;
51
+ documentIds?: never;
52
+ }
53
+ export interface RelayFramesOptions extends RelayTargetBase {
54
+ frameIds: RelayNonEmptyReadonlyArray<number>;
55
+ allFrames?: never;
56
+ frameId?: never;
57
+ documentId?: never;
58
+ documentIds?: never;
59
+ }
60
+ export interface RelayDocumentOptions extends RelayTargetBase {
61
+ documentId: string;
62
+ allFrames?: never;
63
+ frameId?: never;
64
+ frameIds?: never;
65
+ documentIds?: never;
66
+ }
67
+ export interface RelayDocumentsOptions extends RelayTargetBase {
68
+ documentIds: RelayNonEmptyReadonlyArray<string>;
69
+ allFrames?: never;
70
+ frameId?: never;
71
+ frameIds?: never;
72
+ documentId?: never;
73
+ }
74
+ /**
75
+ * Broadcasts the call to all frames without requiring an exhaustive frame list and returns one outcome.
76
+ * `true` is an alias for `RelayAllFrames.Any`.
77
+ *
78
+ * Warning: mutating methods can execute in multiple frames even though only one outcome is returned.
79
+ */
80
+ export interface RelayAnyFramesOptions extends RelayTargetBase {
81
+ allFrames: true | RelayAllFrames.Any;
82
+ frameId?: never;
83
+ frameIds?: never;
84
+ documentId?: never;
85
+ documentIds?: never;
86
+ }
87
+ export interface RelayEveryFrameOptions extends RelayTargetBase {
88
+ allFrames: RelayAllFrames.All;
89
+ frameId?: never;
90
+ frameIds?: never;
91
+ documentId?: never;
92
+ documentIds?: never;
93
+ }
94
+ export type RelayAllFramesOptions = RelayAnyFramesOptions | RelayEveryFrameOptions;
95
+ export type RelayScalarOptions = RelayTopFrameOptions | RelayFrameOptions | RelayDocumentOptions;
96
+ export type RelayBatchOptions = RelayFramesOptions | RelayDocumentsOptions | RelayAllFramesOptions;
97
+ export type RelayCallOptions = RelayScalarOptions | RelayBatchOptions;
98
+ export type RelayAddressTarget = {
99
+ tabId: number;
100
+ frameId: number;
101
+ documentId?: string;
102
+ allFrames?: never;
103
+ } | {
104
+ tabId: number;
105
+ frameId?: never;
106
+ documentId: string;
107
+ allFrames?: never;
108
+ };
109
+ export type RelayOperationTarget = {
110
+ tabId: number;
111
+ allFrames: RelayAllFrames;
112
+ frameId?: never;
113
+ documentId?: never;
114
+ };
115
+ export type RelayResultTarget = RelayAddressTarget | RelayOperationTarget;
116
+ export interface RelayFrameError extends MessageError {
117
+ kind: RelayFrameErrorKind;
118
+ }
119
+ export type RelayFrameResult<T> = {
120
+ target: RelayResultTarget;
121
+ status: "fulfilled";
122
+ result: T;
123
+ } | {
124
+ target: RelayResultTarget;
125
+ status: "rejected";
126
+ error: RelayFrameError;
127
+ };
128
+ export type RelayFramesResult<T> = readonly RelayFrameResult<T>[];
129
+ export type RelayBatchRpcProxy<T> = {
130
+ [K in keyof T]: T[K] extends (...args: any[]) => any ? (...args: Parameters<T[K]>) => Promise<RelayFramesResult<Awaited<ReturnType<T[K]>>>> : T[K] extends object ? RelayBatchRpcProxyObject<T[K]> : () => Promise<RelayFramesResult<Awaited<T[K]>>>;
131
+ };
132
+ export type RelayBatchRpcProxyObject<T> = (() => Promise<RelayFramesResult<Awaited<T>>>) & RelayBatchRpcProxy<T>;
133
+ export type RelayProxyTarget<N extends keyof RelayRegistry> = TransportProxyTarget<RelayRegistry, N>;
134
+ export type RelayBatchProxyTarget<N extends keyof RelayRegistry> = RelayBatchRpcProxy<RelayRegistry[N]>;
135
+ export interface RelayConfig extends TransportConfig, Omit<ContentScriptConfig, "allFrames"> {
136
+ allFrames?: boolean | RelayAllFrames;
11
137
  method?: RelayMethod;
12
138
  }
13
139
  export type RelayOptions = RelayConfig & EntrypointOptions;
14
140
  export type RelayOptionsMap = Map<string, RelayOptions>;
15
141
  export type RelayEntrypointOptions = Partial<RelayOptions>;
16
142
  export type RelayMainHandler<T extends TransportType> = (relay: T, context: ContentScriptContext, options: RelayEntrypointOptions) => Awaiter<void>;
17
- export interface RelayDefinition<T extends TransportType> extends Omit<TransportDefinition<RelayOptions, T>, "main">, Omit<ContentScriptDefinition, "main">, RelayEntrypointOptions {
143
+ export interface RelayDefinition<T extends TransportType> extends Omit<TransportDefinition<RelayOptions, T>, "main">, Omit<ContentScriptDefinition, "main" | "allFrames">, RelayEntrypointOptions {
18
144
  main?: RelayMainHandler<T>;
19
145
  }
20
146
  export type RelayUnresolvedDefinition<T extends TransportType> = Partial<RelayDefinition<T>>;
147
+ export {};
@@ -4,7 +4,23 @@ var RelayMethod = /* @__PURE__ */ ((RelayMethod2) => {
4
4
  RelayMethod2["Messaging"] = "messaging";
5
5
  return RelayMethod2;
6
6
  })(RelayMethod || {});
7
+ var RelayAllFrames = /* @__PURE__ */ ((RelayAllFrames2) => {
8
+ RelayAllFrames2["Any"] = "any";
9
+ RelayAllFrames2["All"] = "all";
10
+ return RelayAllFrames2;
11
+ })(RelayAllFrames || {});
12
+ var RelayFrameErrorKind = /* @__PURE__ */ ((RelayFrameErrorKind2) => {
13
+ RelayFrameErrorKind2["Remote"] = "remote";
14
+ RelayFrameErrorKind2["Execution"] = "execution";
15
+ RelayFrameErrorKind2["Delivery"] = "delivery";
16
+ RelayFrameErrorKind2["Timeout"] = "timeout";
17
+ RelayFrameErrorKind2["TargetGone"] = "target-gone";
18
+ RelayFrameErrorKind2["Unobservable"] = "unobservable";
19
+ return RelayFrameErrorKind2;
20
+ })(RelayFrameErrorKind || {});
7
21
  export {
22
+ RelayAllFrames,
23
+ RelayFrameErrorKind,
8
24
  RelayGlobalKey,
9
25
  RelayMethod
10
26
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/relay.ts"],"sourcesContent":["import {EntrypointOptions} from \"@typing/entrypoint\";\nimport {ContentScriptConfig, ContentScriptContext, ContentScriptDefinition} from \"@typing/content\";\nimport {TransportConfig, TransportDefinition, TransportType} from \"@typing/transport\";\nimport {Awaiter} from \"@typing/helpers\";\n\nexport const RelayGlobalKey = \"adnbnRelay\";\n\nexport enum RelayMethod {\n Scripting = \"scripting\",\n Messaging = \"messaging\",\n}\n\nexport interface RelayConfig extends TransportConfig, ContentScriptConfig {\n method?: RelayMethod;\n}\n\nexport type RelayOptions = RelayConfig & EntrypointOptions;\n\nexport type RelayOptionsMap = Map<string, RelayOptions>;\n\nexport type RelayEntrypointOptions = Partial<RelayOptions>;\n\nexport type RelayMainHandler<T extends TransportType> = (\n relay: T,\n context: ContentScriptContext,\n options: RelayEntrypointOptions\n) => Awaiter<void>;\n\nexport interface RelayDefinition<T extends TransportType>\n extends\n Omit<TransportDefinition<RelayOptions, T>, \"main\">,\n Omit<ContentScriptDefinition, \"main\">,\n RelayEntrypointOptions {\n main?: RelayMainHandler<T>;\n}\n\nexport type RelayUnresolvedDefinition<T extends TransportType> = Partial<RelayDefinition<T>>;\n"],"mappings":"AAKO,MAAM,iBAAiB;AAEvB,IAAK,cAAL,kBAAKA,iBAAL;AACH,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,eAAY;AAFJ,SAAAA;AAAA,GAAA;","names":["RelayMethod"]}
1
+ {"version":3,"sources":["../../src/types/relay.ts"],"sourcesContent":["import {EntrypointOptions} from \"@typing/entrypoint\";\nimport {ContentScriptConfig, ContentScriptContext, ContentScriptDefinition} from \"@typing/content\";\nimport {TransportConfig, TransportDefinition, TransportType, type TransportProxyTarget} from \"@typing/transport\";\nimport {Awaiter} from \"@typing/helpers\";\nimport type {MessageError} from \"@typing/message\";\nimport type {RelayRegistry} from \"@relay/index\";\n\nexport const RelayGlobalKey = \"adnbnRelay\";\n\nexport enum RelayMethod {\n Scripting = \"scripting\",\n Messaging = \"messaging\",\n}\n\nexport enum RelayAllFrames {\n /**\n * Executes the method in every frame reached by the selected transport and returns one outcome:\n * Scripting prefers a fulfilled result, while Messaging returns the first response.\n *\n * Warning: mutating methods can execute in multiple frames even though only one outcome is returned.\n */\n Any = \"any\",\n\n /** Executes the method in every discovered frame and returns an outcome for each frame. */\n All = \"all\",\n}\n\nexport enum RelayFrameErrorKind {\n Remote = \"remote\",\n Execution = \"execution\",\n Delivery = \"delivery\",\n Timeout = \"timeout\",\n TargetGone = \"target-gone\",\n Unobservable = \"unobservable\",\n}\n\nexport type RelayNonEmptyReadonlyArray<T> = readonly [T, ...T[]];\n\nexport interface RelayExecutionOptions {\n /** Maximum execution time per addressed Messaging frame or for the Inject Script operation. */\n timeoutMs?: number;\n}\n\ninterface RelayTargetBase extends RelayExecutionOptions {\n tabId: number;\n}\n\nexport interface RelayTopFrameOptions extends RelayTargetBase {\n allFrames?: false;\n frameId?: never;\n frameIds?: never;\n documentId?: never;\n documentIds?: never;\n}\n\nexport interface RelayFrameOptions extends RelayTargetBase {\n frameId: number;\n allFrames?: never;\n frameIds?: never;\n documentId?: never;\n documentIds?: never;\n}\n\nexport interface RelayFramesOptions extends RelayTargetBase {\n frameIds: RelayNonEmptyReadonlyArray<number>;\n allFrames?: never;\n frameId?: never;\n documentId?: never;\n documentIds?: never;\n}\n\nexport interface RelayDocumentOptions extends RelayTargetBase {\n documentId: string;\n allFrames?: never;\n frameId?: never;\n frameIds?: never;\n documentIds?: never;\n}\n\nexport interface RelayDocumentsOptions extends RelayTargetBase {\n documentIds: RelayNonEmptyReadonlyArray<string>;\n allFrames?: never;\n frameId?: never;\n frameIds?: never;\n documentId?: never;\n}\n\n/**\n * Broadcasts the call to all frames without requiring an exhaustive frame list and returns one outcome.\n * `true` is an alias for `RelayAllFrames.Any`.\n *\n * Warning: mutating methods can execute in multiple frames even though only one outcome is returned.\n */\nexport interface RelayAnyFramesOptions extends RelayTargetBase {\n allFrames: true | RelayAllFrames.Any;\n frameId?: never;\n frameIds?: never;\n documentId?: never;\n documentIds?: never;\n}\n\nexport interface RelayEveryFrameOptions extends RelayTargetBase {\n allFrames: RelayAllFrames.All;\n frameId?: never;\n frameIds?: never;\n documentId?: never;\n documentIds?: never;\n}\n\nexport type RelayAllFramesOptions = RelayAnyFramesOptions | RelayEveryFrameOptions;\n\nexport type RelayScalarOptions = RelayTopFrameOptions | RelayFrameOptions | RelayDocumentOptions;\n\nexport type RelayBatchOptions = RelayFramesOptions | RelayDocumentsOptions | RelayAllFramesOptions;\n\nexport type RelayCallOptions = RelayScalarOptions | RelayBatchOptions;\n\nexport type RelayAddressTarget =\n | {\n tabId: number;\n frameId: number;\n documentId?: string;\n allFrames?: never;\n }\n | {\n tabId: number;\n frameId?: never;\n documentId: string;\n allFrames?: never;\n };\n\nexport type RelayOperationTarget = {\n tabId: number;\n allFrames: RelayAllFrames;\n frameId?: never;\n documentId?: never;\n};\n\nexport type RelayResultTarget = RelayAddressTarget | RelayOperationTarget;\n\nexport interface RelayFrameError extends MessageError {\n kind: RelayFrameErrorKind;\n}\n\nexport type RelayFrameResult<T> =\n | {\n target: RelayResultTarget;\n status: \"fulfilled\";\n result: T;\n }\n | {\n target: RelayResultTarget;\n status: \"rejected\";\n error: RelayFrameError;\n };\n\nexport type RelayFramesResult<T> = readonly RelayFrameResult<T>[];\n\nexport type RelayBatchRpcProxy<T> = {\n [K in keyof T]: T[K] extends (...args: any[]) => any\n ? (...args: Parameters<T[K]>) => Promise<RelayFramesResult<Awaited<ReturnType<T[K]>>>>\n : T[K] extends object\n ? RelayBatchRpcProxyObject<T[K]>\n : () => Promise<RelayFramesResult<Awaited<T[K]>>>;\n};\n\nexport type RelayBatchRpcProxyObject<T> = (() => Promise<RelayFramesResult<Awaited<T>>>) & RelayBatchRpcProxy<T>;\n\nexport type RelayProxyTarget<N extends keyof RelayRegistry> = TransportProxyTarget<RelayRegistry, N>;\n\nexport type RelayBatchProxyTarget<N extends keyof RelayRegistry> = RelayBatchRpcProxy<RelayRegistry[N]>;\n\nexport interface RelayConfig extends TransportConfig, Omit<ContentScriptConfig, \"allFrames\"> {\n allFrames?: boolean | RelayAllFrames;\n method?: RelayMethod;\n}\n\nexport type RelayOptions = RelayConfig & EntrypointOptions;\n\nexport type RelayOptionsMap = Map<string, RelayOptions>;\n\nexport type RelayEntrypointOptions = Partial<RelayOptions>;\n\nexport type RelayMainHandler<T extends TransportType> = (\n relay: T,\n context: ContentScriptContext,\n options: RelayEntrypointOptions\n) => Awaiter<void>;\n\nexport interface RelayDefinition<T extends TransportType>\n extends\n Omit<TransportDefinition<RelayOptions, T>, \"main\">,\n Omit<ContentScriptDefinition, \"main\" | \"allFrames\">,\n RelayEntrypointOptions {\n main?: RelayMainHandler<T>;\n}\n\nexport type RelayUnresolvedDefinition<T extends TransportType> = Partial<RelayDefinition<T>>;\n"],"mappings":"AAOO,MAAM,iBAAiB;AAEvB,IAAK,cAAL,kBAAKA,iBAAL;AACH,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,eAAY;AAFJ,SAAAA;AAAA,GAAA;AAKL,IAAK,iBAAL,kBAAKC,oBAAL;AAOH,EAAAA,gBAAA,SAAM;AAGN,EAAAA,gBAAA,SAAM;AAVE,SAAAA;AAAA,GAAA;AAaL,IAAK,sBAAL,kBAAKC,yBAAL;AACH,EAAAA,qBAAA,YAAS;AACT,EAAAA,qBAAA,eAAY;AACZ,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,aAAU;AACV,EAAAA,qBAAA,gBAAa;AACb,EAAAA,qBAAA,kBAAe;AANP,SAAAA;AAAA,GAAA;","names":["RelayMethod","RelayAllFrames","RelayFrameErrorKind"]}
@@ -0,0 +1,4 @@
1
+ export type RpcAsyncProxy<T> = {
2
+ [K in keyof T]: T[K] extends (...args: any[]) => any ? (...args: Parameters<T[K]>) => Promise<Awaited<ReturnType<T[K]>>> : T[K] extends object ? RpcAsyncProxyObject<T[K]> : () => Promise<Awaited<T[K]>>;
3
+ };
4
+ export type RpcAsyncProxyObject<T> = (() => Promise<RpcAsyncProxy<T>>) & RpcAsyncProxy<T>;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,7 +1,8 @@
1
1
  import { Required } from "utility-types";
2
2
  import { EntrypointOptions } from "./entrypoint.js";
3
- import { Awaiter, DeepAsyncProxy } from "./helpers.js";
3
+ import { Awaiter } from "./helpers.js";
4
4
  import { MessageSender, MessageSendOptions } from "./message.js";
5
+ import { RpcAsyncProxy } from "./rpc.js";
5
6
  export type TransportType = ((...args: any[]) => Promise<any>) | {
6
7
  [key: string]: any | TransportType;
7
8
  };
@@ -10,7 +11,7 @@ export interface TransportDictionary {
10
11
  }
11
12
  export type TransportName = Extract<keyof TransportDictionary, string>;
12
13
  export type TransportTarget<T extends TransportDictionary, K extends keyof T> = T[K];
13
- export type TransportProxyTarget<T extends TransportDictionary, K extends keyof T> = DeepAsyncProxy<T[K]>;
14
+ export type TransportProxyTarget<T extends TransportDictionary, K extends keyof T> = RpcAsyncProxy<T[K]>;
14
15
  export interface TransportManager {
15
16
  add<K extends TransportName>(name: K, instance: TransportDictionary[K]): this;
16
17
  get<K extends TransportName>(name: K): TransportDictionary[K] | undefined;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adnbn",
3
3
  "type": "module",
4
- "version": "0.8.0",
4
+ "version": "0.9.0",
5
5
  "description": "Addon Bone - Cross-browser web extension framework with shared code base",
6
6
  "homepage": "https://addonbone.com",
7
7
  "author": "Anjey Tsibylskij (https://github.com/atldays)",
@@ -107,7 +107,8 @@
107
107
  "prepublishOnly": "npm run build",
108
108
  "build": "tsup && tsc -p tsconfig.build.json && node ./scripts/copy-dts.js && tsc-alias -p tsconfig.build.json -f -fe .js",
109
109
  "format": "prettier --write .",
110
- "typecheck": "tsc -p tsconfig.json --noEmit",
110
+ "typecheck": "tsc -p tsconfig.json --noEmit && npm run typecheck:tests",
111
+ "typecheck:tests": "tsc -p tsconfig.tests.json --noEmit",
111
112
  "check:node-version": "node ./scripts/check-node-version.js",
112
113
  "test": "npm run build && jest",
113
114
  "test:ci": "npm run test -- --ci --passWithNoTests --coverage",
@@ -126,8 +127,8 @@
126
127
  "release:preview": "release-it --no-github.release --no-npm.publish --no-git.tag --ci"
127
128
  },
128
129
  "dependencies": {
129
- "@addon-core/browser": "^0.7.1",
130
- "@addon-core/inject-script": "^0.3.1",
130
+ "@addon-core/browser": "^0.7.2",
131
+ "@addon-core/inject-script": "^0.5.0",
131
132
  "@addon-core/storage": "^0.7.0",
132
133
  "@rsdoctor/rspack-plugin": "^1.5.1",
133
134
  "@rspack/cli": "^1.7.5",