bare-module 4.8.0 → 4.8.1

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/index.d.ts ADDED
@@ -0,0 +1,127 @@
1
+ import Buffer from 'bare-buffer'
2
+ import URL from 'bare-url'
3
+ import Bundle from 'bare-bundle'
4
+ import {
5
+ type Builtins,
6
+ type Conditions,
7
+ type ImportsMap,
8
+ type ResolutionsMap
9
+ } from 'bare-module-resolve'
10
+ import Protocol from './lib/protocol'
11
+ import constants from './lib/constants'
12
+
13
+ interface Cache {
14
+ [href: string]: Module
15
+ }
16
+
17
+ interface Attributes {
18
+ type: Lowercase<keyof typeof constants.types>
19
+ }
20
+
21
+ interface Options {
22
+ attributes?: Attributes
23
+ builtins?: Builtins
24
+ cache?: Cache
25
+ conditions?: Conditions
26
+ defaultType?: number
27
+ imports?: ImportsMap
28
+ main?: Module
29
+ protocol?: Protocol
30
+ referrer?: Module
31
+ resolutions?: ResolutionsMap
32
+ type?: number
33
+ }
34
+
35
+ interface LoadOptions extends Options {
36
+ isDynamicImport?: boolean
37
+ isImport?: boolean
38
+ }
39
+
40
+ interface ResolveOptions extends Options {
41
+ isImport?: boolean
42
+ }
43
+
44
+ interface Module {
45
+ readonly builtins: Builtins
46
+ readonly cache: Cache
47
+ readonly conditions: Conditions
48
+ readonly defaultType: number
49
+ readonly dirname: string
50
+ exports: unknown
51
+ readonly filename: string
52
+ readonly id: string
53
+ readonly imports: ImportsMap
54
+ readonly main: Module
55
+ readonly path: string
56
+ readonly protocol: Protocol
57
+ readonly resolutions: ResolutionsMap
58
+ readonly type: number
59
+ readonly url: URL
60
+
61
+ destroy(): void
62
+ }
63
+
64
+ declare class Module {
65
+ static readonly protocol: Protocol
66
+ static readonly cache: Cache
67
+
68
+ static load(url: URL, opts: LoadOptions): Module
69
+ static load(
70
+ url: URL,
71
+ source?: Buffer | string | Bundle | null,
72
+ opts?: LoadOptions
73
+ ): Module
74
+
75
+ static resolve(specifier: string, parentURL: URL, opts?: ResolveOptions): URL
76
+
77
+ static asset(specifier: string, parentURL: URL, opts?: Options): URL
78
+
79
+ constructor(url: URL)
80
+ }
81
+
82
+ declare namespace Module {
83
+ export {
84
+ type Attributes,
85
+ type Cache,
86
+ type Options,
87
+ type LoadOptions,
88
+ type ResolveOptions,
89
+ Protocol,
90
+ Bundle,
91
+ constants
92
+ }
93
+
94
+ export const builtinModules: Module[]
95
+
96
+ export function isBuiltin(): boolean
97
+
98
+ export interface CreateRequireOptions extends Options {
99
+ module?: Module
100
+ }
101
+
102
+ export interface RequireOptions {
103
+ with?: Attributes
104
+ }
105
+
106
+ export interface RequireAddon {
107
+ (specifier?: string, parentURL?: URL): string
108
+ host: string
109
+ resolve: (specifier: string, parentURL?: URL) => unknown
110
+ }
111
+
112
+ export interface Require {
113
+ (parentURL: string | URL, opts?: RequireOptions): unknown
114
+ main: Module
115
+ cache: Cache
116
+ resolve: (specifier: string, parentURL?: URL) => string
117
+ addon: RequireAddon
118
+ asset: (specifier: string, parentURL?: URL) => string
119
+ }
120
+
121
+ export function createRequire(
122
+ parentURL: string | URL,
123
+ opts?: CreateRequireOptions
124
+ ): Require
125
+ }
126
+
127
+ export = Module
package/index.js CHANGED
@@ -390,6 +390,7 @@ module.exports = exports = class Module {
390
390
 
391
391
  if (
392
392
  !ArrayBuffer.isView(source) &&
393
+ !Bundle.isBundle(source) &&
393
394
  typeof source !== 'string' &&
394
395
  source !== null
395
396
  ) {
@@ -907,10 +908,9 @@ Module._extensions['.bundle'] = function (module, source, referrer) {
907
908
 
908
909
  referrer = module
909
910
 
910
- const bundle = (module._bundle = Bundle.from(source).mount(
911
- module._url.href + '/'
912
- ))
911
+ const bundle = Bundle.from(source).mount(module._url.href + '/')
913
912
 
913
+ module._bundle = bundle
914
914
  module._imports = bundle.imports
915
915
  module._resolutions = bundle.resolutions
916
916
 
@@ -0,0 +1,19 @@
1
+ declare const constants: {
2
+ states: {
3
+ EVALUATED: number
4
+ SYNTHESIZED: number
5
+ DESTROYED: number
6
+ }
7
+ types: {
8
+ SCRIPT: number
9
+ MODULE: number
10
+ JSON: number
11
+ BUNDLE: number
12
+ ADDON: number
13
+ BINARY: number
14
+ TEXT: number
15
+ ASSET: number
16
+ }
17
+ }
18
+
19
+ export = constants
@@ -0,0 +1,27 @@
1
+ import URL from 'bare-url'
2
+ import Buffer from 'bare-buffer'
3
+ import { type ImportsMap } from 'bare-module-resolve'
4
+
5
+ interface ModuleProtocol {
6
+ preresolve(specifier: string, parentURL: URL): string
7
+
8
+ postresolve(url: URL): URL
9
+
10
+ resolve(specifier: string, parentURL: URL, imports: ImportsMap): URL
11
+
12
+ exists(url: URL, type: number): boolean
13
+
14
+ read(url: URL): Buffer | string | null
15
+
16
+ addon(url: URL): URL
17
+
18
+ asset(url: URL): URL
19
+
20
+ extend(methods: Partial<ModuleProtocol>): ModuleProtocol
21
+ }
22
+
23
+ declare class ModuleProtocol {
24
+ constructor(methods?: Partial<ModuleProtocol>, context?: ModuleProtocol)
25
+ }
26
+
27
+ export = ModuleProtocol
package/package.json CHANGED
@@ -1,10 +1,17 @@
1
1
  {
2
2
  "name": "bare-module",
3
- "version": "4.8.0",
3
+ "version": "4.8.1",
4
4
  "description": "Module support for JavaScript",
5
- "main": "index.js",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./index.d.ts",
8
+ "default": "./index.js"
9
+ },
10
+ "./package": "./package.json"
11
+ },
6
12
  "files": [
7
13
  "index.js",
14
+ "index.d.ts",
8
15
  "binding.c",
9
16
  "binding.js",
10
17
  "CMakeLists.txt",
@@ -33,9 +40,18 @@
33
40
  "bare-url": "^2.0.1"
34
41
  },
35
42
  "devDependencies": {
43
+ "bare-buffer": "^3.0.2",
36
44
  "brittle": "^3.1.1",
37
45
  "cmake-bare": "^1.1.6",
38
46
  "prettier": "^3.3.3",
39
47
  "prettier-config-standard": "^7.0.0"
48
+ },
49
+ "peerDependencies": {
50
+ "bare-buffer": "*"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "bare-buffer": {
54
+ "optional": true
55
+ }
40
56
  }
41
57
  }