/push/:msgtoken sendet Push

This commit is contained in:
Georg Reisinger
2019-02-24 02:02:20 +01:00
parent 9a3376702f
commit d8de161f39
603 changed files with 62081 additions and 955 deletions

43
express-server/node_modules/fsevents/src/async.cc generated vendored Normal file
View File

@ -0,0 +1,43 @@
/*
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
** Licensed under MIT License.
*/
void async_propagate(uv_async_t *async) {
if (!async->data) return;
FSEvents *fse = (FSEvents *)async->data;
CFIndex idx, cnt;
fse_event *event;
char pathbuf[1024];
const char *pathptr = NULL;
uv_mutex_lock(&fse->mutex);
cnt = fse->events.size();
for (idx=0; idx<cnt; idx++) {
event = fse->events.at(idx);
if (event == NULL) continue;
pathptr = CFStringGetCStringPtr(event->path, kCFStringEncodingUTF8);
if (!pathptr) CFStringGetCString(event->path, pathbuf, 1024, kCFStringEncodingUTF8);
fse->emitEvent(pathptr ? pathptr : pathbuf, event->flags, event->id);
delete event;
}
if (cnt>0) fse->events.clear();
uv_mutex_unlock(&fse->mutex);
}
void FSEvents::asyncStart() {
if (async.data == this) return;
async.data = this;
uv_async_init(uv_default_loop(), &async, (uv_async_cb) async_propagate);
}
void FSEvents::asyncTrigger() {
if (async.data != this) return;
uv_async_send(&async);
}
void FSEvents::asyncStop() {
if (async.data != this) return;
async.data = NULL;
uv_close((uv_handle_t *) &async, NULL);
}

110
express-server/node_modules/fsevents/src/constants.cc generated vendored Normal file
View File

@ -0,0 +1,110 @@
/*
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
** Licensed under MIT License.
*/
// constants from https://developer.apple.com/library/mac/documentation/Darwin/Reference/FSEvents_Ref/index.html#//apple_ref/doc/constant_group/FSEventStreamEventFlags
#ifndef kFSEventStreamEventFlagNone
#define kFSEventStreamEventFlagNone 0x00000000
#endif
#ifndef kFSEventStreamEventFlagMustScanSubDirs
#define kFSEventStreamEventFlagMustScanSubDirs 0x00000001
#endif
#ifndef kFSEventStreamEventFlagUserDropped
#define kFSEventStreamEventFlagUserDropped 0x00000002
#endif
#ifndef kFSEventStreamEventFlagKernelDropped
#define kFSEventStreamEventFlagKernelDropped 0x00000004
#endif
#ifndef kFSEventStreamEventFlagEventIdsWrapped
#define kFSEventStreamEventFlagEventIdsWrapped 0x00000008
#endif
#ifndef kFSEventStreamEventFlagHistoryDone
#define kFSEventStreamEventFlagHistoryDone 0x00000010
#endif
#ifndef kFSEventStreamEventFlagRootChanged
#define kFSEventStreamEventFlagRootChanged 0x00000020
#endif
#ifndef kFSEventStreamEventFlagMount
#define kFSEventStreamEventFlagMount 0x00000040
#endif
#ifndef kFSEventStreamEventFlagUnmount
#define kFSEventStreamEventFlagUnmount 0x00000080
#endif
#ifndef kFSEventStreamEventFlagItemCreated
#define kFSEventStreamEventFlagItemCreated 0x00000100
#endif
#ifndef kFSEventStreamEventFlagItemRemoved
#define kFSEventStreamEventFlagItemRemoved 0x00000200
#endif
#ifndef kFSEventStreamEventFlagItemInodeMetaMod
#define kFSEventStreamEventFlagItemInodeMetaMod 0x00000400
#endif
#ifndef kFSEventStreamEventFlagItemRenamed
#define kFSEventStreamEventFlagItemRenamed 0x00000800
#endif
#ifndef kFSEventStreamEventFlagItemModified
#define kFSEventStreamEventFlagItemModified 0x00001000
#endif
#ifndef kFSEventStreamEventFlagItemFinderInfoMod
#define kFSEventStreamEventFlagItemFinderInfoMod 0x00002000
#endif
#ifndef kFSEventStreamEventFlagItemChangeOwner
#define kFSEventStreamEventFlagItemChangeOwner 0x00004000
#endif
#ifndef kFSEventStreamEventFlagItemXattrMod
#define kFSEventStreamEventFlagItemXattrMod 0x00008000
#endif
#ifndef kFSEventStreamEventFlagItemIsFile
#define kFSEventStreamEventFlagItemIsFile 0x00010000
#endif
#ifndef kFSEventStreamEventFlagItemIsDir
#define kFSEventStreamEventFlagItemIsDir 0x00020000
#endif
#ifndef kFSEventStreamEventFlagItemIsSymlink
#define kFSEventStreamEventFlagItemIsSymlink 0x00040000
#endif
static v8::Local<v8::Object> Constants() {
v8::Local<v8::Object> object = Nan::New<v8::Object>();
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagNone").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagNone));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMustScanSubDirs").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagMustScanSubDirs));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUserDropped").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagUserDropped));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagKernelDropped").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagKernelDropped));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagEventIdsWrapped").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagEventIdsWrapped));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagHistoryDone").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagHistoryDone));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagRootChanged").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagRootChanged));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagMount").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagMount));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagUnmount").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagUnmount));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemCreated").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemCreated));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRemoved").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemRemoved));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemInodeMetaMod").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemInodeMetaMod));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemRenamed").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemRenamed));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemModified").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemModified));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemFinderInfoMod").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemFinderInfoMod));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemChangeOwner").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemChangeOwner));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemXattrMod").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemXattrMod));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemIsFile").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemIsFile));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemIsDir").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemIsDir));
object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagItemIsSymlink").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagItemIsSymlink));
return object;
}

44
express-server/node_modules/fsevents/src/methods.cc generated vendored Normal file
View File

@ -0,0 +1,44 @@
/*
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
** Licensed under MIT License.
*/
void FSEvents::emitEvent(const char *path, UInt32 flags, UInt64 id) {
Nan::HandleScope handle_scope;
v8::Local<v8::Object> object = handle();
v8::Local<v8::Value> key = Nan::New<v8::String>("handler").ToLocalChecked();
Nan::Callback handler(Nan::To<v8::Function>(Nan::Get(object, key).ToLocalChecked()).ToLocalChecked());
v8::Local<v8::Value> argv[] = {
Nan::New<v8::String>(path).ToLocalChecked(),
Nan::New<v8::Number>(flags),
Nan::New<v8::Number>(id)
};
handler.Call(3, argv, &async_resource);
}
NAN_METHOD(FSEvents::New) {
Nan::Utf8String path(info[0]);
FSEvents *fse = new FSEvents(*path);
fse->Wrap(info.This());
Nan::Set(info.This(), Nan::New<v8::String>("handler").ToLocalChecked(), info[1]);
info.GetReturnValue().Set(info.This());
}
NAN_METHOD(FSEvents::Stop) {
FSEvents* fse = Nan::ObjectWrap::Unwrap<FSEvents>(info.This());
fse->threadStop();
fse->asyncStop();
info.GetReturnValue().Set(info.This());
}
NAN_METHOD(FSEvents::Start) {
FSEvents* fse = Nan::ObjectWrap::Unwrap<FSEvents>(info.This());
fse->asyncStart();
fse->threadStart();
info.GetReturnValue().Set(info.This());
}

27
express-server/node_modules/fsevents/src/storage.cc generated vendored Normal file
View File

@ -0,0 +1,27 @@
/*
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
** Licensed under MIT License.
*/
struct fse_event {
UInt64 id;
UInt32 flags;
CFStringRef path;
fse_event(CFStringRef eventPath, UInt32 eventFlag, UInt64 eventId) {
this->path = eventPath;
this->flags = eventFlag;
this->id = eventId;
if (this->path != NULL)
CFRetain(this->path);
}
~fse_event() {
if (this->path != NULL)
CFRelease(this->path);
}
private:
fse_event(const fse_event&);
void operator=(const fse_event&);
};

71
express-server/node_modules/fsevents/src/thread.cc generated vendored Normal file
View File

@ -0,0 +1,71 @@
/*
** © 2014 by Philipp Dunkel <pip@pipobscure.com>
** Licensed under MIT License.
*/
// constants from https://developer.apple.com/library/mac/documentation/Darwin/Reference/FSEvents_Ref/index.html#//apple_ref/doc/constant_group/FSEventStreamCreateFlags
#ifndef kFSEventStreamCreateFlagNone
#define kFSEventStreamCreateFlagNone 0x00000000
#endif
#ifndef kFSEventStreamCreateFlagUseCFTypes
#define kFSEventStreamCreateFlagUseCFTypes 0x00000001
#endif
#ifndef kFSEventStreamCreateFlagNoDefer
#define kFSEventStreamCreateFlagNoDefer 0x00000002
#endif
#ifndef kFSEventStreamCreateFlagWatchRoot
#define kFSEventStreamCreateFlagWatchRoot 0x00000004
#endif
#ifndef kFSEventStreamCreateFlagIgnoreSelf
#define kFSEventStreamCreateFlagIgnoreSelf 0x00000008
#endif
#ifndef kFSEventStreamCreateFlagFileEvents
#define kFSEventStreamCreateFlagFileEvents 0x00000010
#endif
void FSEvents::threadStart() {
if (threadloop) return;
if (uv_thread_create(&thread, &FSEvents::threadRun, this)) abort();
}
void HandleStreamEvents(ConstFSEventStreamRef stream, void *ctx, size_t numEvents, void *eventPaths, const FSEventStreamEventFlags eventFlags[], const FSEventStreamEventId eventIds[]) {
FSEvents * fse = (FSEvents *)ctx;
size_t idx;
uv_mutex_lock(&fse->mutex);
for (idx=0; idx < numEvents; idx++) {
fse_event *event = new fse_event(
(CFStringRef)CFArrayGetValueAtIndex((CFArrayRef)eventPaths, idx),
eventFlags[idx],
eventIds[idx]
);
fse->events.push_back(event);
}
fse->asyncTrigger();
uv_mutex_unlock(&fse->mutex);
}
void FSEvents::threadRun(void *ctx) {
FSEvents *fse = (FSEvents*)ctx;
FSEventStreamContext context = { 0, ctx, NULL, NULL, NULL };
fse->threadloop = CFRunLoopGetCurrent();
FSEventStreamRef stream = FSEventStreamCreate(NULL, &HandleStreamEvents, &context, fse->paths, kFSEventStreamEventIdSinceNow, (CFAbsoluteTime) 0.1, kFSEventStreamCreateFlagNone | kFSEventStreamCreateFlagWatchRoot | kFSEventStreamCreateFlagFileEvents | kFSEventStreamCreateFlagUseCFTypes);
FSEventStreamScheduleWithRunLoop(stream, fse->threadloop, kCFRunLoopDefaultMode);
FSEventStreamStart(stream);
CFRunLoopRun();
FSEventStreamStop(stream);
FSEventStreamUnscheduleFromRunLoop(stream, fse->threadloop, kCFRunLoopDefaultMode);
FSEventStreamInvalidate(stream);
FSEventStreamRelease(stream);
fse->threadloop = NULL;
}
void FSEvents::threadStop() {
if (!threadloop) return;
CFRunLoopStop(threadloop);
if (uv_thread_join(&thread)) abort();
}