@qqbrowser/qbot-claw-launcher 0.9.32
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/README.md +1 -0
- package/debug.html +440 -0
- package/dist/config.d.ts +15 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +128 -0
- package/dist/index.js.map +1 -0
- package/dist/installer.d.ts +20 -0
- package/dist/installer.d.ts.map +1 -0
- package/dist/installer.js +335 -0
- package/dist/installer.js.map +1 -0
- package/dist/quarantine.d.ts +37 -0
- package/dist/quarantine.d.ts.map +1 -0
- package/dist/quarantine.js +315 -0
- package/dist/quarantine.js.map +1 -0
- package/dist/reportLog.d.ts +28 -0
- package/dist/reportLog.d.ts.map +1 -0
- package/dist/reportLog.js +262 -0
- package/dist/reportLog.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +425 -0
- package/dist/server.js.map +1 -0
- package/dist/service.d.ts +11 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +197 -0
- package/dist/service.js.map +1 -0
- package/dist/state.d.ts +21 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +62 -0
- package/dist/state.js.map +1 -0
- package/dist/utils.d.ts +25 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +101 -0
- package/dist/utils.js.map +1 -0
- package/node_modules/@parcel/watcher/LICENSE +21 -0
- package/node_modules/@parcel/watcher/README.md +136 -0
- package/node_modules/@parcel/watcher/index.d.ts +49 -0
- package/node_modules/@parcel/watcher/index.js +42 -0
- package/node_modules/@parcel/watcher/index.js.flow +48 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/LICENSE +21 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/README.md +738 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/index.js +17 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/lib/constants.js +180 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/lib/parse.js +1085 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/lib/picomatch.js +341 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/lib/scan.js +391 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/lib/utils.js +72 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/package.json +83 -0
- package/node_modules/@parcel/watcher/node_modules/picomatch/posix.js +3 -0
- package/node_modules/@parcel/watcher/package.json +39 -0
- package/node_modules/@parcel/watcher/wrapper.js +74 -0
- package/node_modules/@parcel/watcher-darwin-arm64/LICENSE +21 -0
- package/node_modules/@parcel/watcher-darwin-arm64/README.md +1 -0
- package/node_modules/@parcel/watcher-darwin-arm64/package.json +30 -0
- package/node_modules/@parcel/watcher-darwin-arm64/watcher.node +0 -0
- package/node_modules/fs-xattr/LICENSE +21 -0
- package/node_modules/fs-xattr/build/Makefile +347 -0
- package/node_modules/fs-xattr/build/Release/.deps/Release/obj.target/xattr/src/async.o.d +15 -0
- package/node_modules/fs-xattr/build/Release/.deps/Release/obj.target/xattr/src/error.o.d +12 -0
- package/node_modules/fs-xattr/build/Release/.deps/Release/obj.target/xattr/src/sync.o.d +15 -0
- package/node_modules/fs-xattr/build/Release/.deps/Release/obj.target/xattr/src/util.o.d +12 -0
- package/node_modules/fs-xattr/build/Release/.deps/Release/obj.target/xattr/src/xattr.o.d +14 -0
- package/node_modules/fs-xattr/build/Release/.deps/Release/xattr.node.d +1 -0
- package/node_modules/fs-xattr/build/Release/obj.target/xattr/src/async.o +0 -0
- package/node_modules/fs-xattr/build/Release/obj.target/xattr/src/error.o +0 -0
- package/node_modules/fs-xattr/build/Release/obj.target/xattr/src/sync.o +0 -0
- package/node_modules/fs-xattr/build/Release/obj.target/xattr/src/util.o +0 -0
- package/node_modules/fs-xattr/build/Release/obj.target/xattr/src/xattr.o +0 -0
- package/node_modules/fs-xattr/build/Release/xattr.node +0 -0
- package/node_modules/fs-xattr/build/binding.Makefile +6 -0
- package/node_modules/fs-xattr/build/config.gypi +530 -0
- package/node_modules/fs-xattr/build/gyp-mac-tool +772 -0
- package/node_modules/fs-xattr/build/xattr.target.mk +185 -0
- package/node_modules/fs-xattr/index.d.ts +47 -0
- package/node_modules/fs-xattr/index.js +80 -0
- package/node_modules/fs-xattr/package.json +29 -0
- package/node_modules/fs-xattr/readme.md +101 -0
- package/node_modules/is-extglob/LICENSE +21 -0
- package/node_modules/is-extglob/README.md +107 -0
- package/node_modules/is-extglob/index.js +20 -0
- package/node_modules/is-extglob/package.json +69 -0
- package/node_modules/is-glob/LICENSE +21 -0
- package/node_modules/is-glob/README.md +206 -0
- package/node_modules/is-glob/index.js +150 -0
- package/node_modules/is-glob/package.json +81 -0
- package/package.json +45 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# This file is generated by gyp; do not edit.
|
|
2
|
+
|
|
3
|
+
TOOLSET := target
|
|
4
|
+
TARGET := xattr
|
|
5
|
+
DEFS_Debug := \
|
|
6
|
+
'-DNODE_GYP_MODULE_NAME=xattr' \
|
|
7
|
+
'-DUSING_UV_SHARED=1' \
|
|
8
|
+
'-DUSING_V8_SHARED=1' \
|
|
9
|
+
'-DV8_DEPRECATION_WARNINGS=1' \
|
|
10
|
+
'-D_GLIBCXX_USE_CXX11_ABI=1' \
|
|
11
|
+
'-D_FILE_OFFSET_BITS=64' \
|
|
12
|
+
'-D_DARWIN_USE_64_BIT_INODE=1' \
|
|
13
|
+
'-D_LARGEFILE_SOURCE' \
|
|
14
|
+
'-DOPENSSL_NO_PINSHARED' \
|
|
15
|
+
'-DOPENSSL_THREADS' \
|
|
16
|
+
'-DBUILDING_NODE_EXTENSION' \
|
|
17
|
+
'-DDEBUG' \
|
|
18
|
+
'-D_DEBUG'
|
|
19
|
+
|
|
20
|
+
# Flags passed to all source files.
|
|
21
|
+
CFLAGS_Debug := \
|
|
22
|
+
-O0 \
|
|
23
|
+
-gdwarf-2 \
|
|
24
|
+
-fno-strict-aliasing \
|
|
25
|
+
-mmacosx-version-min=13.5 \
|
|
26
|
+
-arch arm64 \
|
|
27
|
+
-Wall \
|
|
28
|
+
-Wendif-labels \
|
|
29
|
+
-W \
|
|
30
|
+
-Wno-unused-parameter
|
|
31
|
+
|
|
32
|
+
# Flags passed to only C files.
|
|
33
|
+
CFLAGS_C_Debug :=
|
|
34
|
+
|
|
35
|
+
# Flags passed to only C++ files.
|
|
36
|
+
CFLAGS_CC_Debug := \
|
|
37
|
+
-std=gnu++20 \
|
|
38
|
+
-stdlib=libc++ \
|
|
39
|
+
-fno-rtti \
|
|
40
|
+
-fno-exceptions
|
|
41
|
+
|
|
42
|
+
# Flags passed to only ObjC files.
|
|
43
|
+
CFLAGS_OBJC_Debug :=
|
|
44
|
+
|
|
45
|
+
# Flags passed to only ObjC++ files.
|
|
46
|
+
CFLAGS_OBJCC_Debug :=
|
|
47
|
+
|
|
48
|
+
INCS_Debug := \
|
|
49
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/include/node \
|
|
50
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/src \
|
|
51
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/openssl/config \
|
|
52
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/openssl/openssl/include \
|
|
53
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/uv/include \
|
|
54
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/zlib \
|
|
55
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/v8/include
|
|
56
|
+
|
|
57
|
+
DEFS_Release := \
|
|
58
|
+
'-DNODE_GYP_MODULE_NAME=xattr' \
|
|
59
|
+
'-DUSING_UV_SHARED=1' \
|
|
60
|
+
'-DUSING_V8_SHARED=1' \
|
|
61
|
+
'-DV8_DEPRECATION_WARNINGS=1' \
|
|
62
|
+
'-D_GLIBCXX_USE_CXX11_ABI=1' \
|
|
63
|
+
'-D_FILE_OFFSET_BITS=64' \
|
|
64
|
+
'-D_DARWIN_USE_64_BIT_INODE=1' \
|
|
65
|
+
'-D_LARGEFILE_SOURCE' \
|
|
66
|
+
'-DOPENSSL_NO_PINSHARED' \
|
|
67
|
+
'-DOPENSSL_THREADS' \
|
|
68
|
+
'-DBUILDING_NODE_EXTENSION'
|
|
69
|
+
|
|
70
|
+
# Flags passed to all source files.
|
|
71
|
+
CFLAGS_Release := \
|
|
72
|
+
-O3 \
|
|
73
|
+
-gdwarf-2 \
|
|
74
|
+
-fno-strict-aliasing \
|
|
75
|
+
-mmacosx-version-min=13.5 \
|
|
76
|
+
-arch arm64 \
|
|
77
|
+
-Wall \
|
|
78
|
+
-Wendif-labels \
|
|
79
|
+
-W \
|
|
80
|
+
-Wno-unused-parameter
|
|
81
|
+
|
|
82
|
+
# Flags passed to only C files.
|
|
83
|
+
CFLAGS_C_Release :=
|
|
84
|
+
|
|
85
|
+
# Flags passed to only C++ files.
|
|
86
|
+
CFLAGS_CC_Release := \
|
|
87
|
+
-std=gnu++20 \
|
|
88
|
+
-stdlib=libc++ \
|
|
89
|
+
-fno-rtti \
|
|
90
|
+
-fno-exceptions
|
|
91
|
+
|
|
92
|
+
# Flags passed to only ObjC files.
|
|
93
|
+
CFLAGS_OBJC_Release :=
|
|
94
|
+
|
|
95
|
+
# Flags passed to only ObjC++ files.
|
|
96
|
+
CFLAGS_OBJCC_Release :=
|
|
97
|
+
|
|
98
|
+
INCS_Release := \
|
|
99
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/include/node \
|
|
100
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/src \
|
|
101
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/openssl/config \
|
|
102
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/openssl/openssl/include \
|
|
103
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/uv/include \
|
|
104
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/zlib \
|
|
105
|
+
-I/Users/morris/Library/Caches/node-gyp/24.14.0/deps/v8/include
|
|
106
|
+
|
|
107
|
+
OBJS := \
|
|
108
|
+
$(obj).target/$(TARGET)/src/async.o \
|
|
109
|
+
$(obj).target/$(TARGET)/src/error.o \
|
|
110
|
+
$(obj).target/$(TARGET)/src/sync.o \
|
|
111
|
+
$(obj).target/$(TARGET)/src/util.o \
|
|
112
|
+
$(obj).target/$(TARGET)/src/xattr.o
|
|
113
|
+
|
|
114
|
+
# Add to the list of files we specially track dependencies for.
|
|
115
|
+
all_deps += $(OBJS)
|
|
116
|
+
|
|
117
|
+
# CFLAGS et al overrides must be target-local.
|
|
118
|
+
# See "Target-specific Variable Values" in the GNU Make manual.
|
|
119
|
+
$(OBJS): TOOLSET := $(TOOLSET)
|
|
120
|
+
$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE))
|
|
121
|
+
$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE))
|
|
122
|
+
$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE))
|
|
123
|
+
$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE))
|
|
124
|
+
|
|
125
|
+
# Suffix rules, putting all outputs into $(obj).
|
|
126
|
+
|
|
127
|
+
$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.c FORCE_DO_CMD
|
|
128
|
+
@$(call do_cmd,cc,1)
|
|
129
|
+
|
|
130
|
+
# Try building from generated source, too.
|
|
131
|
+
|
|
132
|
+
$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD
|
|
133
|
+
@$(call do_cmd,cc,1)
|
|
134
|
+
|
|
135
|
+
$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD
|
|
136
|
+
@$(call do_cmd,cc,1)
|
|
137
|
+
|
|
138
|
+
# End of this set of suffix rules
|
|
139
|
+
### Rules for final target.
|
|
140
|
+
LDFLAGS_Debug := \
|
|
141
|
+
-undefined dynamic_lookup \
|
|
142
|
+
-Wl,-search_paths_first \
|
|
143
|
+
-mmacosx-version-min=13.5 \
|
|
144
|
+
-arch arm64 \
|
|
145
|
+
-L$(builddir) \
|
|
146
|
+
-stdlib=libc++
|
|
147
|
+
|
|
148
|
+
LIBTOOLFLAGS_Debug := \
|
|
149
|
+
-undefined dynamic_lookup \
|
|
150
|
+
-Wl,-search_paths_first
|
|
151
|
+
|
|
152
|
+
LDFLAGS_Release := \
|
|
153
|
+
-undefined dynamic_lookup \
|
|
154
|
+
-Wl,-search_paths_first \
|
|
155
|
+
-mmacosx-version-min=13.5 \
|
|
156
|
+
-arch arm64 \
|
|
157
|
+
-L$(builddir) \
|
|
158
|
+
-stdlib=libc++
|
|
159
|
+
|
|
160
|
+
LIBTOOLFLAGS_Release := \
|
|
161
|
+
-undefined dynamic_lookup \
|
|
162
|
+
-Wl,-search_paths_first
|
|
163
|
+
|
|
164
|
+
LIBS :=
|
|
165
|
+
|
|
166
|
+
$(builddir)/xattr.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
|
|
167
|
+
$(builddir)/xattr.node: LIBS := $(LIBS)
|
|
168
|
+
$(builddir)/xattr.node: GYP_LIBTOOLFLAGS := $(LIBTOOLFLAGS_$(BUILDTYPE))
|
|
169
|
+
$(builddir)/xattr.node: TOOLSET := $(TOOLSET)
|
|
170
|
+
$(builddir)/xattr.node: $(OBJS) FORCE_DO_CMD
|
|
171
|
+
$(call do_cmd,solink_module)
|
|
172
|
+
|
|
173
|
+
all_deps += $(builddir)/xattr.node
|
|
174
|
+
# Add target alias
|
|
175
|
+
.PHONY: xattr
|
|
176
|
+
xattr: $(builddir)/xattr.node
|
|
177
|
+
|
|
178
|
+
# Short alias for building this executable.
|
|
179
|
+
.PHONY: xattr.node
|
|
180
|
+
xattr.node: $(builddir)/xattr.node
|
|
181
|
+
|
|
182
|
+
# Add executable to "all" target.
|
|
183
|
+
.PHONY: all
|
|
184
|
+
all: $(builddir)/xattr.node
|
|
185
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get extended attribute `attr` from file at `path`.
|
|
3
|
+
*
|
|
4
|
+
* @returns a `Promise` that will resolve with the value of the attribute.
|
|
5
|
+
*/
|
|
6
|
+
export function getAttribute (path: string, attr: string): Promise<Buffer>
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Synchronous version of `getAttribute`.
|
|
10
|
+
*/
|
|
11
|
+
export function getAttributeSync (path: string, attr: string): Buffer
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Set extended attribute `attr` to `value` on file at `path`.
|
|
15
|
+
*
|
|
16
|
+
* @returns a `Promise` that will resolve when the value has been set.
|
|
17
|
+
*/
|
|
18
|
+
export function setAttribute (path: string, attr: string, value: Buffer | string): Promise<void>
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Synchronous version of `setAttribute`.
|
|
22
|
+
*/
|
|
23
|
+
export function setAttributeSync (path: string, attr: string, value: Buffer | string): void
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Remove extended attribute `attr` on file at `path`.
|
|
27
|
+
*
|
|
28
|
+
* @returns a `Promise` that will resolve when the value has been removed.
|
|
29
|
+
*/
|
|
30
|
+
export function removeAttribute (path: string, attr: string): Promise<void>
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Synchronous version of `removeAttribute`.
|
|
34
|
+
*/
|
|
35
|
+
export function removeAttributeSync (path: string, attr: string): void
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* List all attributes on file at `path`.
|
|
39
|
+
*
|
|
40
|
+
* @returns a `Promise` that will resolve with an array of strings, e.g. `['user.linusu.test', 'com.apple.FinderInfo']`.
|
|
41
|
+
*/
|
|
42
|
+
export function listAttributes (path: string): Promise<string[]>
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Synchronous version of `listAttributes`.
|
|
46
|
+
*/
|
|
47
|
+
export function listAttributesSync (path: string): string[]
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { createRequire } from 'node:module'
|
|
2
|
+
|
|
3
|
+
const addon = createRequire(import.meta.url)('./build/Release/xattr')
|
|
4
|
+
|
|
5
|
+
function validateArgument (key, val) {
|
|
6
|
+
switch (key) {
|
|
7
|
+
case 'path':
|
|
8
|
+
if (typeof val === 'string') return val
|
|
9
|
+
throw new TypeError('`path` must be a string')
|
|
10
|
+
case 'attr':
|
|
11
|
+
if (typeof val === 'string') return val
|
|
12
|
+
throw new TypeError('`attr` must be a string')
|
|
13
|
+
case 'value':
|
|
14
|
+
if (typeof val === 'string') return Buffer.from(val)
|
|
15
|
+
if (Buffer.isBuffer(val)) return val
|
|
16
|
+
throw new TypeError('`value` must be a string or buffer')
|
|
17
|
+
default:
|
|
18
|
+
throw new Error(`Unknown argument: ${key}`)
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* Async methods */
|
|
23
|
+
|
|
24
|
+
export function getAttribute (path, attr) {
|
|
25
|
+
path = validateArgument('path', path)
|
|
26
|
+
attr = validateArgument('attr', attr)
|
|
27
|
+
|
|
28
|
+
return addon.get(path, attr)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function setAttribute (path, attr, value) {
|
|
32
|
+
path = validateArgument('path', path)
|
|
33
|
+
attr = validateArgument('attr', attr)
|
|
34
|
+
value = validateArgument('value', value)
|
|
35
|
+
|
|
36
|
+
return addon.set(path, attr, value)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function listAttributes (path) {
|
|
40
|
+
path = validateArgument('path', path)
|
|
41
|
+
|
|
42
|
+
return addon.list(path)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function removeAttribute (path, attr) {
|
|
46
|
+
path = validateArgument('path', path)
|
|
47
|
+
attr = validateArgument('attr', attr)
|
|
48
|
+
|
|
49
|
+
return addon.remove(path, attr)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Sync methods */
|
|
53
|
+
|
|
54
|
+
export function getAttributeSync (path, attr) {
|
|
55
|
+
path = validateArgument('path', path)
|
|
56
|
+
attr = validateArgument('attr', attr)
|
|
57
|
+
|
|
58
|
+
return addon.getSync(path, attr)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function setAttributeSync (path, attr, value) {
|
|
62
|
+
path = validateArgument('path', path)
|
|
63
|
+
attr = validateArgument('attr', attr)
|
|
64
|
+
value = validateArgument('value', value)
|
|
65
|
+
|
|
66
|
+
return addon.setSync(path, attr, value)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function listAttributesSync (path) {
|
|
70
|
+
path = validateArgument('path', path)
|
|
71
|
+
|
|
72
|
+
return addon.listSync(path)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export function removeAttributeSync (path, attr) {
|
|
76
|
+
path = validateArgument('path', path)
|
|
77
|
+
attr = validateArgument('attr', attr)
|
|
78
|
+
|
|
79
|
+
return addon.removeSync(path, attr)
|
|
80
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fs-xattr",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"repository": "LinusU/fs-xattr",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": "./index.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"index.d.ts",
|
|
10
|
+
"index.js",
|
|
11
|
+
"build/"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"test": "standard && mocha && ts-readme-generator --check",
|
|
15
|
+
"lint": "standard"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"fs-temp": "^1.1.2",
|
|
19
|
+
"mocha": "^8.4.0",
|
|
20
|
+
"standard": "^16.0.3",
|
|
21
|
+
"ts-readme-generator": "^0.4.3"
|
|
22
|
+
},
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
|
25
|
+
},
|
|
26
|
+
"os": [
|
|
27
|
+
"!win32"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# fs-xattr
|
|
2
|
+
|
|
3
|
+
Node.js module for manipulating extended attributes.
|
|
4
|
+
|
|
5
|
+
There are already some libraries for this, why use `fs-xattr`?
|
|
6
|
+
|
|
7
|
+
- Very useful errors
|
|
8
|
+
- No limits on value size
|
|
9
|
+
- Clean and easy api
|
|
10
|
+
- Proper asynchronous implementation
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
npm install --save fs-xattr
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
```javascript
|
|
21
|
+
import { getAttribute, setAttribute } from 'fs-xattr'
|
|
22
|
+
|
|
23
|
+
await setAttribute('index.js', 'user.linusu.test', 'Hello, World!')
|
|
24
|
+
|
|
25
|
+
console.log(await getAttribute('index.js', 'user.linusu.test'))
|
|
26
|
+
//=> Hello, World!
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## API
|
|
30
|
+
|
|
31
|
+
### `getAttribute(path, attr)`
|
|
32
|
+
|
|
33
|
+
- `path` (`string`, required)
|
|
34
|
+
- `attr` (`string`, required)
|
|
35
|
+
- returns `Promise<Buffer>` - a `Promise` that will resolve with the value of the attribute.
|
|
36
|
+
|
|
37
|
+
Get extended attribute `attr` from file at `path`.
|
|
38
|
+
|
|
39
|
+
### `getAttributeSync(path, attr)`
|
|
40
|
+
|
|
41
|
+
- `path` (`string`, required)
|
|
42
|
+
- `attr` (`string`, required)
|
|
43
|
+
- returns `Buffer`
|
|
44
|
+
|
|
45
|
+
Synchronous version of `getAttribute`.
|
|
46
|
+
|
|
47
|
+
### `setAttribute(path, attr, value)`
|
|
48
|
+
|
|
49
|
+
- `path` (`string`, required)
|
|
50
|
+
- `attr` (`string`, required)
|
|
51
|
+
- `value` (`Buffer` or `string`, required)
|
|
52
|
+
- returns `Promise<void>` - a `Promise` that will resolve when the value has been set.
|
|
53
|
+
|
|
54
|
+
Set extended attribute `attr` to `value` on file at `path`.
|
|
55
|
+
|
|
56
|
+
### `setAttributeSync(path, attr, value)`
|
|
57
|
+
|
|
58
|
+
- `path` (`string`, required)
|
|
59
|
+
- `attr` (`string`, required)
|
|
60
|
+
- `value` (`Buffer` or `string`, required)
|
|
61
|
+
|
|
62
|
+
Synchronous version of `setAttribute`.
|
|
63
|
+
|
|
64
|
+
### `removeAttribute(path, attr)`
|
|
65
|
+
|
|
66
|
+
- `path` (`string`, required)
|
|
67
|
+
- `attr` (`string`, required)
|
|
68
|
+
- returns `Promise<void>` - a `Promise` that will resolve when the value has been removed.
|
|
69
|
+
|
|
70
|
+
Remove extended attribute `attr` on file at `path`.
|
|
71
|
+
|
|
72
|
+
### `removeAttributeSync(path, attr)`
|
|
73
|
+
|
|
74
|
+
- `path` (`string`, required)
|
|
75
|
+
- `attr` (`string`, required)
|
|
76
|
+
|
|
77
|
+
Synchronous version of `removeAttribute`.
|
|
78
|
+
|
|
79
|
+
### `listAttributes(path)`
|
|
80
|
+
|
|
81
|
+
- `path` (`string`, required)
|
|
82
|
+
- returns `Promise<Array<string>>` - a `Promise` that will resolve with an array of strings, e.g. `['user.linusu.test', 'com.apple.FinderInfo']`.
|
|
83
|
+
|
|
84
|
+
List all attributes on file at `path`.
|
|
85
|
+
|
|
86
|
+
### `listAttributesSync(path)`
|
|
87
|
+
|
|
88
|
+
- `path` (`string`, required)
|
|
89
|
+
- returns `Array<string>`
|
|
90
|
+
|
|
91
|
+
Synchronous version of `listAttributes`.
|
|
92
|
+
|
|
93
|
+
## Namespaces
|
|
94
|
+
|
|
95
|
+
For the large majority of Linux filesystem there are currently 4 supported namespaces (`user`, `trusted`, `security`, and `system`) you can use. Some other systems, like FreeBSD have only 2 (`user` and `system`).
|
|
96
|
+
|
|
97
|
+
Be sure to use a namespace that is appropriate for your supported platforms. You can read more about this in [the "Extended File Attributes" Wikipedia article](https://en.wikipedia.org/wiki/Extended_file_attributes#Implementations).
|
|
98
|
+
|
|
99
|
+
Using a namespace like `com.linusu.test` would work on macOS, but would give you the following error on Debian Linux:
|
|
100
|
+
|
|
101
|
+
> Error \[ENOTSUP]: The file system does not support extended attributes or has the feature disabled.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2014-2016, Jon Schlinkert
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# is-extglob [](https://www.npmjs.com/package/is-extglob) [](https://npmjs.org/package/is-extglob) [](https://travis-ci.org/jonschlinkert/is-extglob)
|
|
2
|
+
|
|
3
|
+
> Returns true if a string has an extglob.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
Install with [npm](https://www.npmjs.com/):
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
$ npm install --save is-extglob
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```js
|
|
16
|
+
var isExtglob = require('is-extglob');
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**True**
|
|
20
|
+
|
|
21
|
+
```js
|
|
22
|
+
isExtglob('?(abc)');
|
|
23
|
+
isExtglob('@(abc)');
|
|
24
|
+
isExtglob('!(abc)');
|
|
25
|
+
isExtglob('*(abc)');
|
|
26
|
+
isExtglob('+(abc)');
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**False**
|
|
30
|
+
|
|
31
|
+
Escaped extglobs:
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
isExtglob('\\?(abc)');
|
|
35
|
+
isExtglob('\\@(abc)');
|
|
36
|
+
isExtglob('\\!(abc)');
|
|
37
|
+
isExtglob('\\*(abc)');
|
|
38
|
+
isExtglob('\\+(abc)');
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Everything else...
|
|
42
|
+
|
|
43
|
+
```js
|
|
44
|
+
isExtglob('foo.js');
|
|
45
|
+
isExtglob('!foo.js');
|
|
46
|
+
isExtglob('*.js');
|
|
47
|
+
isExtglob('**/abc.js');
|
|
48
|
+
isExtglob('abc/*.js');
|
|
49
|
+
isExtglob('abc/(aaa|bbb).js');
|
|
50
|
+
isExtglob('abc/[a-z].js');
|
|
51
|
+
isExtglob('abc/{a,b}.js');
|
|
52
|
+
isExtglob('abc/?.js');
|
|
53
|
+
isExtglob('abc.js');
|
|
54
|
+
isExtglob('abc/def/ghi.js');
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## History
|
|
58
|
+
|
|
59
|
+
**v2.0**
|
|
60
|
+
|
|
61
|
+
Adds support for escaping. Escaped exglobs no longer return true.
|
|
62
|
+
|
|
63
|
+
## About
|
|
64
|
+
|
|
65
|
+
### Related projects
|
|
66
|
+
|
|
67
|
+
* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.")
|
|
68
|
+
* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
|
|
69
|
+
* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.")
|
|
70
|
+
|
|
71
|
+
### Contributing
|
|
72
|
+
|
|
73
|
+
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
|
|
74
|
+
|
|
75
|
+
### Building docs
|
|
76
|
+
|
|
77
|
+
_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
|
|
78
|
+
|
|
79
|
+
To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
|
|
80
|
+
|
|
81
|
+
```sh
|
|
82
|
+
$ npm install -g verb verb-generate-readme && verb
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Running tests
|
|
86
|
+
|
|
87
|
+
Install dev dependencies:
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
$ npm install -d && npm test
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Author
|
|
94
|
+
|
|
95
|
+
**Jon Schlinkert**
|
|
96
|
+
|
|
97
|
+
* [github/jonschlinkert](https://github.com/jonschlinkert)
|
|
98
|
+
* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
|
|
99
|
+
|
|
100
|
+
### License
|
|
101
|
+
|
|
102
|
+
Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
|
|
103
|
+
Released under the [MIT license](https://github.com/jonschlinkert/is-extglob/blob/master/LICENSE).
|
|
104
|
+
|
|
105
|
+
***
|
|
106
|
+
|
|
107
|
+
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* is-extglob <https://github.com/jonschlinkert/is-extglob>
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2014-2016, Jon Schlinkert.
|
|
5
|
+
* Licensed under the MIT License.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
module.exports = function isExtglob(str) {
|
|
9
|
+
if (typeof str !== 'string' || str === '') {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
var match;
|
|
14
|
+
while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) {
|
|
15
|
+
if (match[2]) return true;
|
|
16
|
+
str = str.slice(match.index + match[0].length);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return false;
|
|
20
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "is-extglob",
|
|
3
|
+
"description": "Returns true if a string has an extglob.",
|
|
4
|
+
"version": "2.1.1",
|
|
5
|
+
"homepage": "https://github.com/jonschlinkert/is-extglob",
|
|
6
|
+
"author": "Jon Schlinkert (https://github.com/jonschlinkert)",
|
|
7
|
+
"repository": "jonschlinkert/is-extglob",
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://github.com/jonschlinkert/is-extglob/issues"
|
|
10
|
+
},
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"files": [
|
|
13
|
+
"index.js"
|
|
14
|
+
],
|
|
15
|
+
"main": "index.js",
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=0.10.0"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"test": "mocha"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"gulp-format-md": "^0.1.10",
|
|
24
|
+
"mocha": "^3.0.2"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"bash",
|
|
28
|
+
"braces",
|
|
29
|
+
"check",
|
|
30
|
+
"exec",
|
|
31
|
+
"expression",
|
|
32
|
+
"extglob",
|
|
33
|
+
"glob",
|
|
34
|
+
"globbing",
|
|
35
|
+
"globstar",
|
|
36
|
+
"is",
|
|
37
|
+
"match",
|
|
38
|
+
"matches",
|
|
39
|
+
"pattern",
|
|
40
|
+
"regex",
|
|
41
|
+
"regular",
|
|
42
|
+
"string",
|
|
43
|
+
"test"
|
|
44
|
+
],
|
|
45
|
+
"verb": {
|
|
46
|
+
"toc": false,
|
|
47
|
+
"layout": "default",
|
|
48
|
+
"tasks": [
|
|
49
|
+
"readme"
|
|
50
|
+
],
|
|
51
|
+
"plugins": [
|
|
52
|
+
"gulp-format-md"
|
|
53
|
+
],
|
|
54
|
+
"related": {
|
|
55
|
+
"list": [
|
|
56
|
+
"has-glob",
|
|
57
|
+
"is-glob",
|
|
58
|
+
"micromatch"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"reflinks": [
|
|
62
|
+
"verb",
|
|
63
|
+
"verb-generate-readme"
|
|
64
|
+
],
|
|
65
|
+
"lint": {
|
|
66
|
+
"reflinks": true
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2014-2017, Jon Schlinkert.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|