@gjsify/resolve-npm 0.1.6 → 0.1.8
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.
- package/lib/globals-map.mjs +131 -0
- package/lib/index.mjs +35 -0
- package/package.json +9 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map from global identifier → bare-specifier register subpath.
|
|
3
|
+
*
|
|
4
|
+
* Used by the `@gjsify/cli` `--globals` flag (via `@gjsify/esbuild-plugin-gjsify/globals`)
|
|
5
|
+
* to resolve the user's explicit list of globals into the set of `/register`
|
|
6
|
+
* modules that must be injected into the bundle.
|
|
7
|
+
*
|
|
8
|
+
* The register paths use bare specifiers ("fetch/register" rather than
|
|
9
|
+
* "@gjsify/fetch/register") so they go through the normal ALIASES_WEB_FOR_GJS
|
|
10
|
+
* / ALIASES_WEB_FOR_NODE resolution — which means they become no-ops on Node
|
|
11
|
+
* (where native globals already exist) and resolve to the real
|
|
12
|
+
* `@gjsify/<pkg>/register` modules on GJS.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Pre-defined groups of identifiers that can be used as shorthand in `--globals`.
|
|
16
|
+
*
|
|
17
|
+
* - `node` — Node.js core globals: Buffer, Blob, File, process, URL, …
|
|
18
|
+
* - `web` — Web API globals: fetch, crypto, streams, AbortController, events, …
|
|
19
|
+
* - `dom` — DOM/GTK-only globals: document, HTMLCanvasElement, Image, …
|
|
20
|
+
*
|
|
21
|
+
* A group token in `--globals` expands to all individual identifiers in that
|
|
22
|
+
* group before the usual map lookup. Groups can be combined:
|
|
23
|
+
* --globals node,web,dom
|
|
24
|
+
*/
|
|
25
|
+
export const GJS_GLOBALS_GROUPS = {
|
|
26
|
+
node: [
|
|
27
|
+
'Buffer', 'Blob', 'File',
|
|
28
|
+
'process', 'setImmediate', 'clearImmediate', 'queueMicrotask',
|
|
29
|
+
'structuredClone', 'btoa', 'atob', 'URL', 'URLSearchParams',
|
|
30
|
+
],
|
|
31
|
+
web: [
|
|
32
|
+
'fetch', 'Headers', 'Request', 'Response',
|
|
33
|
+
'FormData',
|
|
34
|
+
'ReadableStream', 'WritableStream', 'TransformStream',
|
|
35
|
+
'TextEncoderStream', 'TextDecoderStream',
|
|
36
|
+
'ByteLengthQueuingStrategy', 'CountQueuingStrategy',
|
|
37
|
+
'CompressionStream', 'DecompressionStream',
|
|
38
|
+
'crypto',
|
|
39
|
+
'AbortController', 'AbortSignal',
|
|
40
|
+
'Event', 'EventTarget', 'CustomEvent', 'MessageEvent',
|
|
41
|
+
'ErrorEvent', 'CloseEvent', 'ProgressEvent', 'UIEvent',
|
|
42
|
+
'MouseEvent', 'PointerEvent', 'KeyboardEvent', 'WheelEvent', 'FocusEvent',
|
|
43
|
+
'EventSource',
|
|
44
|
+
'DOMException',
|
|
45
|
+
'performance', 'PerformanceObserver',
|
|
46
|
+
],
|
|
47
|
+
dom: [
|
|
48
|
+
'document', 'Image', 'HTMLCanvasElement', 'HTMLImageElement',
|
|
49
|
+
'HTMLElement', 'MutationObserver', 'ResizeObserver', 'IntersectionObserver',
|
|
50
|
+
],
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export const GJS_GLOBALS_MAP = {
|
|
54
|
+
// --- Node.js globals ------------------------------------------------
|
|
55
|
+
Buffer: '@gjsify/buffer/register',
|
|
56
|
+
process: '@gjsify/node-globals/register',
|
|
57
|
+
setImmediate: '@gjsify/node-globals/register',
|
|
58
|
+
clearImmediate: '@gjsify/node-globals/register',
|
|
59
|
+
queueMicrotask: '@gjsify/node-globals/register',
|
|
60
|
+
structuredClone: '@gjsify/node-globals/register',
|
|
61
|
+
btoa: '@gjsify/node-globals/register',
|
|
62
|
+
atob: '@gjsify/node-globals/register',
|
|
63
|
+
|
|
64
|
+
// --- URL (shared Node + Web) ---------------------------------------
|
|
65
|
+
URL: '@gjsify/node-globals/register',
|
|
66
|
+
URLSearchParams: '@gjsify/node-globals/register',
|
|
67
|
+
|
|
68
|
+
// --- Blob / File (exposed via node:buffer and Web File API) --------
|
|
69
|
+
Blob: '@gjsify/buffer/register',
|
|
70
|
+
File: '@gjsify/buffer/register',
|
|
71
|
+
|
|
72
|
+
// --- Fetch stack ----------------------------------------------------
|
|
73
|
+
fetch: 'fetch/register',
|
|
74
|
+
Headers: 'fetch/register',
|
|
75
|
+
Request: 'fetch/register',
|
|
76
|
+
Response: 'fetch/register',
|
|
77
|
+
|
|
78
|
+
// --- FormData ------------------------------------------------------
|
|
79
|
+
FormData: '@gjsify/web-globals/register',
|
|
80
|
+
|
|
81
|
+
// --- WHATWG Streams ------------------------------------------------
|
|
82
|
+
ReadableStream: 'web-streams/register',
|
|
83
|
+
WritableStream: 'web-streams/register',
|
|
84
|
+
TransformStream: 'web-streams/register',
|
|
85
|
+
TextEncoderStream: 'web-streams/register',
|
|
86
|
+
TextDecoderStream: 'web-streams/register',
|
|
87
|
+
ByteLengthQueuingStrategy: 'web-streams/register',
|
|
88
|
+
CountQueuingStrategy: 'web-streams/register',
|
|
89
|
+
|
|
90
|
+
// --- Compression Streams -------------------------------------------
|
|
91
|
+
CompressionStream: 'compression-streams/register',
|
|
92
|
+
DecompressionStream: 'compression-streams/register',
|
|
93
|
+
|
|
94
|
+
// --- WebCrypto -----------------------------------------------------
|
|
95
|
+
crypto: 'webcrypto/register',
|
|
96
|
+
|
|
97
|
+
// --- Events + Abort ------------------------------------------------
|
|
98
|
+
AbortController: 'abort-controller/register',
|
|
99
|
+
AbortSignal: 'abort-controller/register',
|
|
100
|
+
Event: 'dom-events/register',
|
|
101
|
+
EventTarget: 'dom-events/register',
|
|
102
|
+
CustomEvent: 'dom-events/register',
|
|
103
|
+
MessageEvent: 'dom-events/register',
|
|
104
|
+
ErrorEvent: 'dom-events/register',
|
|
105
|
+
CloseEvent: 'dom-events/register',
|
|
106
|
+
ProgressEvent: 'dom-events/register',
|
|
107
|
+
UIEvent: 'dom-events/register',
|
|
108
|
+
MouseEvent: 'dom-events/register',
|
|
109
|
+
PointerEvent: 'dom-events/register',
|
|
110
|
+
KeyboardEvent: 'dom-events/register',
|
|
111
|
+
WheelEvent: 'dom-events/register',
|
|
112
|
+
FocusEvent: 'dom-events/register',
|
|
113
|
+
EventSource: 'eventsource/register',
|
|
114
|
+
|
|
115
|
+
// --- Performance ---------------------------------------------------
|
|
116
|
+
performance: '@gjsify/web-globals/register',
|
|
117
|
+
PerformanceObserver: '@gjsify/web-globals/register',
|
|
118
|
+
|
|
119
|
+
// --- DOMException --------------------------------------------------
|
|
120
|
+
DOMException: 'dom-exception/register',
|
|
121
|
+
|
|
122
|
+
// --- DOM elements (browser-compat) ---------------------------------
|
|
123
|
+
document: '@gjsify/dom-elements/register',
|
|
124
|
+
Image: '@gjsify/dom-elements/register',
|
|
125
|
+
HTMLCanvasElement: '@gjsify/dom-elements/register',
|
|
126
|
+
HTMLImageElement: '@gjsify/dom-elements/register',
|
|
127
|
+
HTMLElement: '@gjsify/dom-elements/register',
|
|
128
|
+
MutationObserver: '@gjsify/dom-elements/register',
|
|
129
|
+
ResizeObserver: '@gjsify/dom-elements/register',
|
|
130
|
+
IntersectionObserver: '@gjsify/dom-elements/register',
|
|
131
|
+
};
|
package/lib/index.mjs
CHANGED
|
@@ -129,6 +129,7 @@ export const ALIASES_NODE_FOR_GJS = {
|
|
|
129
129
|
|
|
130
130
|
/** Record of Web modules and his replacement for Gjs */
|
|
131
131
|
export const ALIASES_WEB_FOR_GJS = {
|
|
132
|
+
// Bare specifiers (named imports, pure — no side-effects after Stage 2)
|
|
132
133
|
'abort-controller': '@gjsify/abort-controller',
|
|
133
134
|
'compression-streams': '@gjsify/compression-streams',
|
|
134
135
|
'dom-events': '@gjsify/dom-events',
|
|
@@ -142,11 +143,24 @@ export const ALIASES_WEB_FOR_GJS = {
|
|
|
142
143
|
'webgl': '@gjsify/webgl',
|
|
143
144
|
'websocket': '@gjsify/websocket',
|
|
144
145
|
'webstorage': '@gjsify/webstorage',
|
|
146
|
+
|
|
147
|
+
// /register subpaths (side-effect only — opt-in to global registration)
|
|
148
|
+
'abort-controller/register': '@gjsify/abort-controller/register',
|
|
149
|
+
'compression-streams/register': '@gjsify/compression-streams/register',
|
|
150
|
+
'dom-events/register': '@gjsify/dom-events/register',
|
|
151
|
+
'dom-exception/register': '@gjsify/dom-exception/register',
|
|
152
|
+
'eventsource/register': '@gjsify/eventsource/register',
|
|
153
|
+
'fetch/register': '@gjsify/fetch/register',
|
|
154
|
+
'webcrypto/register': '@gjsify/webcrypto/register',
|
|
155
|
+
'web-streams/register': '@gjsify/web-streams/register',
|
|
145
156
|
}
|
|
146
157
|
|
|
147
158
|
/** General record of modules for Node */
|
|
148
159
|
export const ALIASES_GENERAL_FOR_NODE = {
|
|
149
160
|
'@gjsify/node-globals': '@gjsify/empty',
|
|
161
|
+
'@gjsify/node-globals/register': '@gjsify/empty',
|
|
162
|
+
'@gjsify/web-globals': '@gjsify/empty',
|
|
163
|
+
'@gjsify/web-globals/register': '@gjsify/empty',
|
|
150
164
|
}
|
|
151
165
|
|
|
152
166
|
/** Record of Gjs modules (build in or not) and his replacement for Node */
|
|
@@ -156,6 +170,7 @@ export { ALIASES_GJS_FOR_NODE };
|
|
|
156
170
|
|
|
157
171
|
/** Record of Web modules and his replacement for Node */
|
|
158
172
|
export const ALIASES_WEB_FOR_NODE = {
|
|
173
|
+
// Bare specifiers → native re-exports (works for both named and side-effect imports)
|
|
159
174
|
'abort-controller': '@gjsify/abort-controller/globals',
|
|
160
175
|
'compression-streams': '@gjsify/compression-streams/globals',
|
|
161
176
|
'dom-events': '@gjsify/dom-events/globals',
|
|
@@ -168,4 +183,24 @@ export const ALIASES_WEB_FOR_NODE = {
|
|
|
168
183
|
'webgl': '@gjsify/webgl',
|
|
169
184
|
'websocket': '@gjsify/websocket/globals',
|
|
170
185
|
'webstorage': '@gjsify/webstorage',
|
|
186
|
+
|
|
187
|
+
// /register subpaths — no-op on Node (native globals are already set)
|
|
188
|
+
'abort-controller/register': '@gjsify/empty',
|
|
189
|
+
'compression-streams/register': '@gjsify/empty',
|
|
190
|
+
'dom-events/register': '@gjsify/empty',
|
|
191
|
+
'dom-exception/register': '@gjsify/empty',
|
|
192
|
+
'eventsource/register': '@gjsify/empty',
|
|
193
|
+
'fetch/register': '@gjsify/empty',
|
|
194
|
+
'webcrypto/register': '@gjsify/empty',
|
|
195
|
+
'web-streams/register': '@gjsify/empty',
|
|
196
|
+
'@gjsify/abort-controller/register': '@gjsify/empty',
|
|
197
|
+
'@gjsify/compression-streams/register': '@gjsify/empty',
|
|
198
|
+
'@gjsify/dom-events/register': '@gjsify/empty',
|
|
199
|
+
'@gjsify/dom-exception/register': '@gjsify/empty',
|
|
200
|
+
'@gjsify/eventsource/register': '@gjsify/empty',
|
|
201
|
+
'@gjsify/fetch/register': '@gjsify/empty',
|
|
202
|
+
'@gjsify/webcrypto/register': '@gjsify/empty',
|
|
203
|
+
'@gjsify/web-streams/register': '@gjsify/empty',
|
|
204
|
+
'@gjsify/dom-elements/register': '@gjsify/empty',
|
|
205
|
+
'@gjsify/buffer/register': '@gjsify/empty',
|
|
171
206
|
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/resolve-npm",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "Resolve NPM package aliases",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.mjs",
|
|
7
7
|
"module": "lib/index.mjs",
|
|
8
8
|
"types": "lib/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./lib/index.d.ts",
|
|
12
|
+
"default": "./lib/index.mjs"
|
|
13
|
+
},
|
|
14
|
+
"./globals-map": "./lib/globals-map.mjs",
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
|
+
},
|
|
9
17
|
"scripts": {
|
|
10
18
|
"clear": "echo 'nothing to do'",
|
|
11
19
|
"check": "true",
|