atomically 2.0.6 → 2.1.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 (23) hide show
  1. package/.nyc_output/processinfo/3e844113-839b-4b48-a102-297deb37538a.json +1 -0
  2. package/.nyc_output/processinfo/a2b562cc-4021-472c-b0e7-61b08d0856cc.json +1 -0
  3. package/.nyc_output/processinfo/af7432be-6f17-4c42-94eb-ac00c46b95fc.json +1 -0
  4. package/.nyc_output/processinfo/ceeeef50-6926-41c0-91b2-771446718957.json +1 -0
  5. package/.nyc_output/processinfo/e69c4534-8d9f-4c8d-98f1-55020da1bd75.json +1 -0
  6. package/.nyc_output/processinfo/index.json +1 -1
  7. package/.tap/processinfo/{31f68686-f8b2-46c9-8396-cec4c174503f.json → 1139a7eb-c451-490b-a796-93ec17c301b4.json} +78 -78
  8. package/.tap/processinfo/{ffe334aa-c878-4bc5-9396-c307de65d7d1.json → 2f325add-3ccd-4eb0-9a8e-03fcae4dda09.json} +68 -68
  9. package/.tap/processinfo/{6b1e5d9c-140f-477e-8d26-03fd37a4e170.json → 727ff5b3-573d-4552-853f-883cb2c42a43.json} +67 -67
  10. package/.tap/processinfo/{2b8b0882-bdd1-4c3d-9f9e-b892a5578fb9.json → cbbc81f4-251f-4e57-969f-e5e3622d90cd.json} +88 -88
  11. package/dist/index.d.ts +3 -2
  12. package/dist/index.js +9 -0
  13. package/package.json +1 -1
  14. package/.nyc_output/processinfo/06ea27ff-9d6e-44e2-b922-121687bc5661.json +0 -1
  15. package/.nyc_output/processinfo/58e93f70-472d-449b-ac6b-4e640c0aeb02.json +0 -1
  16. package/.nyc_output/processinfo/a4a404bb-72b9-43f0-be83-3d2a65aaec5a.json +0 -1
  17. package/.nyc_output/processinfo/c18f7e70-50ab-4df7-afb5-2c2e27792296.json +0 -1
  18. package/.nyc_output/processinfo/d1b8239a-6e10-4482-af38-f54b9a5f29ee.json +0 -1
  19. /package/.nyc_output/{06ea27ff-9d6e-44e2-b922-121687bc5661.json → 3e844113-839b-4b48-a102-297deb37538a.json} +0 -0
  20. /package/.nyc_output/{58e93f70-472d-449b-ac6b-4e640c0aeb02.json → a2b562cc-4021-472c-b0e7-61b08d0856cc.json} +0 -0
  21. /package/.nyc_output/{a4a404bb-72b9-43f0-be83-3d2a65aaec5a.json → af7432be-6f17-4c42-94eb-ac00c46b95fc.json} +0 -0
  22. /package/.nyc_output/{c18f7e70-50ab-4df7-afb5-2c2e27792296.json → ceeeef50-6926-41c0-91b2-771446718957.json} +0 -0
  23. /package/.nyc_output/{d1b8239a-6e10-4482-af38-f54b9a5f29ee.json → e69c4534-8d9f-4c8d-98f1-55020da1bd75.json} +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2025-10-26T21:31:38.586Z",
2
+ "date": "2025-10-26T22:38:02.930Z",
3
3
  "argv": [
4
4
  "/Users/fabio/.nvm/versions/node/v18.19.0/bin/node",
5
5
  "/Users/fabio/Code/fabiospampinato/atomically/test/concurrency.cjs"
@@ -12,103 +12,94 @@
12
12
  ],
13
13
  "NODE_OPTIONS": "\"--import=file:///Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/processinfo/dist/esm/import.mjs\"",
14
14
  "cwd": "/Users/fabio/Code/fabiospampinato/atomically",
15
- "pid": 44383,
16
- "ppid": 44345,
15
+ "pid": 52147,
16
+ "ppid": 52115,
17
17
  "parent": null,
18
- "uuid": "2b8b0882-bdd1-4c3d-9f9e-b892a5578fb9",
18
+ "uuid": "cbbc81f4-251f-4e57-969f-e5e3622d90cd",
19
19
  "files": [
20
20
  "/Users/fabio/Code/fabiospampinato/atomically/test/concurrency.cjs",
21
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/index.js",
22
21
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/walk-up-path/dist/esm/index.js",
23
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/find-star-match.js",
24
22
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/read-json.js",
23
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/index.js",
24
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/find-star-match.js",
25
25
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/dist/esm/index.js",
26
26
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/glob.js",
27
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/has-magic.js",
28
27
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/ignore.js",
29
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/pattern.js",
30
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/path-scurry/dist/esm/index.js",
31
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/walker.js",
28
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/has-magic.js",
32
29
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@isaacs/brace-expansion/dist/esm/index.js",
33
30
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/dist/esm/assert-valid-pattern.js",
34
31
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/dist/esm/ast.js",
35
32
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/dist/esm/escape.js",
36
33
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/dist/esm/unescape.js",
37
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/lru-cache/dist/esm/index.js",
38
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minipass/dist/esm/index.js",
39
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/processor.js",
34
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/path-scurry/dist/esm/index.js",
35
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/pattern.js",
36
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/walker.js",
40
37
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@isaacs/balanced-match/dist/esm/index.js",
41
38
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/dist/esm/brace-expressions.js",
39
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minipass/dist/esm/index.js",
40
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/processor.js",
41
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/lru-cache/dist/esm/index.js",
42
42
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/loader.mjs",
43
43
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/hooks.mjs",
44
44
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/mock-service-client.js",
45
45
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/mock-service.js",
46
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/index.js",
47
46
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/index.js",
48
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/is-relative-require.js",
49
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/export-line.js",
47
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/index.js",
48
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/resolve-mock-entry-point.js",
50
49
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/munge-mocks.js",
50
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/export-line.js",
51
51
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/service-key.js",
52
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/resolve-mock-entry-point.js",
52
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/is-relative-require.js",
53
53
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/commonjs/service-key.js",
54
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/require-resolve.js",
54
55
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-all-conditional-values.js",
55
56
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-all-conditions.js",
56
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-conditional-value.js",
57
57
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-unique-condition-sets.js",
58
58
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-all-local-imports.js",
59
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-all-exports.js",
60
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/require-resolve.js",
59
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-conditional-value.js",
61
60
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-import.js",
61
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-all-exports.js",
62
62
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/call-site-like.js",
63
63
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/is-windows.js",
64
64
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-conditional-values-list.js",
65
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/errors.js",
66
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/file-exists.js",
65
67
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/read-pkg.js",
68
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/to-file-url.js",
69
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/star-glob.js",
70
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/to-path.js",
66
71
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/find-dep-package.js",
72
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-dependency-export.js",
73
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-package-import.js",
67
74
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-named-exports-list.js",
68
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/to-path.js",
69
75
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-export.js",
70
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-package-import.js",
71
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-dependency-export.js",
72
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/file-exists.js",
73
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/star-glob.js",
74
76
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/parse.js",
75
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/errors.js",
76
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/to-file-url.js",
77
77
  "/Users/fabio/Code/fabiospampinato/atomically/test/atomically.cjs"
78
78
  ],
79
79
  "sources": {
80
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/index.js": [
81
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/index.ts"
82
- ],
83
80
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/walk-up-path/dist/esm/index.js": [
84
81
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/walk-up-path/src/index.ts"
85
82
  ],
86
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/find-star-match.js": [
87
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/find-star-match.ts"
88
- ],
89
83
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/read-json.js": [
90
84
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/read-json.ts"
91
85
  ],
86
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/index.js": [
87
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/index.ts"
88
+ ],
89
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/find-star-match.js": [
90
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/find-star-match.ts"
91
+ ],
92
92
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/dist/esm/index.js": [
93
93
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/src/index.ts"
94
94
  ],
95
95
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/glob.js": [
96
96
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/glob.ts"
97
97
  ],
98
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/has-magic.js": [
99
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/has-magic.ts"
100
- ],
101
98
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/ignore.js": [
102
99
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/ignore.ts"
103
100
  ],
104
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/pattern.js": [
105
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/pattern.ts"
106
- ],
107
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/path-scurry/dist/esm/index.js": [
108
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/path-scurry/src/index.ts"
109
- ],
110
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/walker.js": [
111
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/walker.ts"
101
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/has-magic.js": [
102
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/has-magic.ts"
112
103
  ],
113
104
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@isaacs/brace-expansion/dist/esm/index.js": [
114
105
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@isaacs/brace-expansion/src/index.ts"
@@ -125,14 +116,14 @@
125
116
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/dist/esm/unescape.js": [
126
117
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/src/unescape.ts"
127
118
  ],
128
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/lru-cache/dist/esm/index.js": [
129
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/lru-cache/src/index.ts"
119
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/path-scurry/dist/esm/index.js": [
120
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/path-scurry/src/index.ts"
130
121
  ],
131
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minipass/dist/esm/index.js": [
132
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minipass/src/index.ts"
122
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/pattern.js": [
123
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/pattern.ts"
133
124
  ],
134
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/processor.js": [
135
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/processor.ts"
125
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/walker.js": [
126
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/walker.ts"
136
127
  ],
137
128
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@isaacs/balanced-match/dist/esm/index.js": [
138
129
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@isaacs/balanced-match/src/index.ts"
@@ -140,57 +131,66 @@
140
131
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/dist/esm/brace-expressions.js": [
141
132
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minimatch/src/brace-expressions.ts"
142
133
  ],
134
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minipass/dist/esm/index.js": [
135
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/minipass/src/index.ts"
136
+ ],
137
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/dist/esm/processor.js": [
138
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/glob/src/processor.ts"
139
+ ],
140
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/lru-cache/dist/esm/index.js": [
141
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/lru-cache/src/index.ts"
142
+ ],
143
143
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/mock-service.js": [
144
144
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/src/mock-service.ts"
145
145
  ],
146
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/index.js": [
147
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/index.ts"
148
- ],
149
146
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/index.js": [
150
147
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/src/index.ts"
151
148
  ],
152
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/is-relative-require.js": [
153
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/is-relative-require.ts"
149
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/index.js": [
150
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/index.ts"
154
151
  ],
155
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/export-line.js": [
156
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/src/export-line.ts"
152
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/resolve-mock-entry-point.js": [
153
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/src/resolve-mock-entry-point.ts"
157
154
  ],
158
155
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/munge-mocks.js": [
159
156
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/src/munge-mocks.ts"
160
157
  ],
158
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/export-line.js": [
159
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/src/export-line.ts"
160
+ ],
161
161
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/service-key.js": [
162
162
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/src/service-key.ts"
163
163
  ],
164
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/esm/resolve-mock-entry-point.js": [
165
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/src/resolve-mock-entry-point.ts"
164
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/is-relative-require.js": [
165
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/is-relative-require.ts"
166
166
  ],
167
167
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/dist/commonjs/service-key.js": [
168
168
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/mock/src/service-key-cjs.cts"
169
169
  ],
170
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/require-resolve.js": [
171
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/src/require-resolve.ts"
172
+ ],
170
173
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-all-conditional-values.js": [
171
174
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/get-all-conditional-values.ts"
172
175
  ],
173
176
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-all-conditions.js": [
174
177
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/get-all-conditions.ts"
175
178
  ],
176
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-conditional-value.js": [
177
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-conditional-value.ts"
178
- ],
179
179
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-unique-condition-sets.js": [
180
180
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/get-unique-condition-sets.ts"
181
181
  ],
182
182
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-all-local-imports.js": [
183
183
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-all-local-imports.ts"
184
184
  ],
185
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-all-exports.js": [
186
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-all-exports.ts"
187
- ],
188
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/require-resolve.js": [
189
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/src/require-resolve.ts"
185
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-conditional-value.js": [
186
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-conditional-value.ts"
190
187
  ],
191
188
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-import.js": [
192
189
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-import.ts"
193
190
  ],
191
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-all-exports.js": [
192
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-all-exports.ts"
193
+ ],
194
194
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/call-site-like.js": [
195
195
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/src/call-site-like.ts"
196
196
  ],
@@ -200,46 +200,46 @@
200
200
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-conditional-values-list.js": [
201
201
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/get-conditional-values-list.ts"
202
202
  ],
203
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/errors.js": [
204
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/errors.ts"
205
+ ],
206
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/file-exists.js": [
207
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/file-exists.ts"
208
+ ],
203
209
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/read-pkg.js": [
204
210
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/read-pkg.ts"
205
211
  ],
206
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/find-dep-package.js": [
207
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/find-dep-package.ts"
212
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/to-file-url.js": [
213
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/to-file-url.ts"
208
214
  ],
209
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-named-exports-list.js": [
210
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/get-named-exports-list.ts"
215
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/star-glob.js": [
216
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/star-glob.ts"
211
217
  ],
212
218
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/to-path.js": [
213
219
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/to-path.ts"
214
220
  ],
215
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-export.js": [
216
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-export.ts"
217
- ],
218
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-package-import.js": [
219
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-package-import.ts"
221
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/find-dep-package.js": [
222
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/find-dep-package.ts"
220
223
  ],
221
224
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-dependency-export.js": [
222
225
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-dependency-export.ts"
223
226
  ],
224
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/file-exists.js": [
225
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/file-exists.ts"
227
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-package-import.js": [
228
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-package-import.ts"
226
229
  ],
227
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/star-glob.js": [
228
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/star-glob.ts"
230
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/get-named-exports-list.js": [
231
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/get-named-exports-list.ts"
232
+ ],
233
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/resolve-export.js": [
234
+ "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/resolve-export.ts"
229
235
  ],
230
236
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/dist/esm/parse.js": [
231
237
  "/Users/fabio/Code/fabiospampinato/atomically/node_modules/@tapjs/stack/src/parse.ts"
232
- ],
233
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/errors.js": [
234
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/errors.ts"
235
- ],
236
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/dist/esm/to-file-url.js": [
237
- "/Users/fabio/Code/fabiospampinato/atomically/node_modules/resolve-import/src/to-file-url.ts"
238
238
  ]
239
239
  },
240
- "root": "2b8b0882-bdd1-4c3d-9f9e-b892a5578fb9",
240
+ "root": "cbbc81f4-251f-4e57-969f-e5e3622d90cd",
241
241
  "externalID": "test/concurrency.cjs",
242
242
  "code": 0,
243
243
  "signal": null,
244
- "runtime": 786.237208
244
+ "runtime": 747.5455
245
245
  }
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { Readable } from 'node:stream';
1
2
  import type { Callback, Data, Encoding, Path, ReadOptions, WriteOptions } from './types.js';
2
3
  declare function readFile(filePath: Path, options: Encoding | ReadOptions & {
3
4
  encoding: string;
@@ -7,8 +8,8 @@ declare function readFileSync(filePath: Path, options: Encoding | ReadOptions &
7
8
  encoding: string;
8
9
  }): string;
9
10
  declare function readFileSync(filePath: Path, options?: ReadOptions): Buffer;
10
- declare function writeFile(filePath: Path, data: Data, callback?: Callback): Promise<void>;
11
- declare function writeFile(filePath: Path, data: Data, options?: Encoding | WriteOptions, callback?: Callback): Promise<void>;
11
+ declare function writeFile(filePath: Path, data: Data | Readable, callback?: Callback): Promise<void>;
12
+ declare function writeFile(filePath: Path, data: Data | Readable, options?: Encoding | WriteOptions, callback?: Callback): Promise<void>;
12
13
  declare function writeFileSync(filePath: Path, data: Data, options?: Encoding | WriteOptions): void;
13
14
  export { readFile, readFileSync, writeFile, writeFileSync };
14
15
  export type { Encoding, ReadOptions, WriteOptions };
package/dist/index.js CHANGED
@@ -1,5 +1,8 @@
1
1
  /* IMPORT */
2
+ import { once } from 'node:events';
3
+ import { createWriteStream } from 'node:fs';
2
4
  import path from 'node:path';
5
+ import { Readable } from 'node:stream';
3
6
  import fs from 'stubborn-fs';
4
7
  import { DEFAULT_ENCODING, DEFAULT_FILE_MODE, DEFAULT_FOLDER_MODE, DEFAULT_READ_OPTIONS, DEFAULT_WRITE_OPTIONS, DEFAULT_USER_UID, DEFAULT_USER_GID, DEFAULT_INTERVAL_ASYNC, DEFAULT_TIMEOUT_ASYNC, DEFAULT_TIMEOUT_SYNC, IS_POSIX } from './constants.js';
5
8
  import { isException, isFunction, isString, isUndefined } from './utils/lang.js';
@@ -73,6 +76,12 @@ async function writeFileAsync(filePath, data, options = DEFAULT_WRITE_OPTIONS) {
73
76
  if (isString(data)) {
74
77
  await fs.retry.write(retryOptions)(fd, data, 0, options.encoding || DEFAULT_ENCODING);
75
78
  }
79
+ else if (data instanceof Readable) {
80
+ const writeStream = createWriteStream(tempPath, { fd, autoClose: false });
81
+ const finishPromise = once(writeStream, 'finish');
82
+ data.pipe(writeStream);
83
+ await finishPromise;
84
+ }
76
85
  else if (!isUndefined(data)) {
77
86
  await fs.retry.write(retryOptions)(fd, data, 0, data.length, 0);
78
87
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "repository": "github:fabiospampinato/atomically",
4
4
  "description": "Read and write files atomically and reliably.",
5
5
  "license": "MIT",
6
- "version": "2.0.6",
6
+ "version": "2.1.0",
7
7
  "type": "module",
8
8
  "main": "dist/index.js",
9
9
  "exports": "./dist/index.js",
@@ -1 +0,0 @@
1
- {"parent":"58e93f70-472d-449b-ac6b-4e640c0aeb02","pid":36955,"argv":["/Users/fabio/.nvm/versions/node/v18.19.0/bin/node","/Users/fabio/Code/fabiospampinato/atomically/test/basic.cjs"],"execArgv":[],"cwd":"/Users/fabio/Code/fabiospampinato/atomically","time":1761513266816,"ppid":36954,"coverageFilename":"/Users/fabio/Code/fabiospampinato/atomically/.nyc_output/06ea27ff-9d6e-44e2-b922-121687bc5661.json","externalId":"test/basic.cjs","uuid":"06ea27ff-9d6e-44e2-b922-121687bc5661","files":[]}
@@ -1 +0,0 @@
1
- {"parent":null,"pid":36954,"argv":["/Users/fabio/.nvm/versions/node/v18.19.0/bin/node","/Users/fabio/Code/fabiospampinato/atomically/node_modules/.bin/tap","--no-check-coverage","--no-coverage-report"],"execArgv":[],"cwd":"/Users/fabio/Code/fabiospampinato/atomically","time":1761513266396,"ppid":36923,"coverageFilename":"/Users/fabio/Code/fabiospampinato/atomically/.nyc_output/58e93f70-472d-449b-ac6b-4e640c0aeb02.json","externalId":"","uuid":"58e93f70-472d-449b-ac6b-4e640c0aeb02","files":[]}
@@ -1 +0,0 @@
1
- {"parent":"58e93f70-472d-449b-ac6b-4e640c0aeb02","pid":36957,"argv":["/Users/fabio/.nvm/versions/node/v18.19.0/bin/node","/Users/fabio/Code/fabiospampinato/atomically/test/integration.cjs"],"execArgv":[],"cwd":"/Users/fabio/Code/fabiospampinato/atomically","time":1761513266816,"ppid":36954,"coverageFilename":"/Users/fabio/Code/fabiospampinato/atomically/.nyc_output/a4a404bb-72b9-43f0-be83-3d2a65aaec5a.json","externalId":"test/integration.cjs","uuid":"a4a404bb-72b9-43f0-be83-3d2a65aaec5a","files":[]}
@@ -1 +0,0 @@
1
- {"parent":"58e93f70-472d-449b-ac6b-4e640c0aeb02","pid":36958,"argv":["/Users/fabio/.nvm/versions/node/v18.19.0/bin/node","/Users/fabio/Code/fabiospampinato/atomically/test/atomically.cjs"],"execArgv":[],"cwd":"/Users/fabio/Code/fabiospampinato/atomically","time":1761513266816,"ppid":36954,"coverageFilename":"/Users/fabio/Code/fabiospampinato/atomically/.nyc_output/c18f7e70-50ab-4df7-afb5-2c2e27792296.json","externalId":"test/atomically.cjs","uuid":"c18f7e70-50ab-4df7-afb5-2c2e27792296","files":[]}
@@ -1 +0,0 @@
1
- {"parent":"58e93f70-472d-449b-ac6b-4e640c0aeb02","pid":36956,"argv":["/Users/fabio/.nvm/versions/node/v18.19.0/bin/node","/Users/fabio/Code/fabiospampinato/atomically/test/concurrency.cjs"],"execArgv":[],"cwd":"/Users/fabio/Code/fabiospampinato/atomically","time":1761513266816,"ppid":36954,"coverageFilename":"/Users/fabio/Code/fabiospampinato/atomically/.nyc_output/d1b8239a-6e10-4482-af38-f54b9a5f29ee.json","externalId":"test/concurrency.cjs","uuid":"d1b8239a-6e10-4482-af38-f54b9a5f29ee","files":[]}